diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml new file mode 100644 index 000000000..d0262c0c3 --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,120 @@ +# build.yml — the SINGLE-BUILDER CI gate for the doxa-maps bundler. +# +# WHY THIS EXISTS (IDEA-FORGEJO-CICD-BUILD-LOCK-MULTIWRITER): +# Many agents edit + commit source to this repo in PARALLEL. That is safe. What is +# NOT safe is many agents each running `bun run build` into the shared, committed +# web-root (public/): concurrent builds clobber each other's output and race the +# `git add public/` that follows. internal/build-lock.sh makes that STRUCTURALLY +# impossible on ONE machine (an flock mutex); this workflow does the same thing at +# CLUSTER scope — it makes CI the ONE-AND-ONLY builder, and serializes it. +# +# THE CONTRACT for a swarm agent: +# edit files -> git commit -> git push (DONE. never run `bun run build`.) +# The push lands here. This job — and ONLY this job — runs the authoritative build +# and commits the regenerated public/ back. See the handoff doc: +# _qa-cycle/03-deployment-cycle/delegation/HANDOFF-forgejo-cicd-buildgate.md +# +# NOTE ON PATH: Forgejo reads .forgejo/workflows/ (and .gitea/workflows/), NOT +# .github/workflows/. The existing .github/workflows/pages.yml is a GitHub-Pages +# workflow and never runs here; this is its Forgejo graduation. + +name: build-gate + +# Trigger on every push to the source branches. workflow_dispatch lets the Driver +# run it by hand from the Forgejo UI. +on: + push: + branches: + - main + - doxa-maps-plugin-studio + # Source-only edits trigger a build. Skip pushes that touch NOTHING but the + # build output or CI itself — the build-output commit this job makes would + # otherwise re-trigger the job in a loop. + paths-ignore: + - 'public/**' + - '.forgejo/**' + workflow_dispatch: + +# THE HEART OF THE GATE. All builds share ONE concurrency group, so Forgejo runs +# at most one at a time. A push that arrives while a build is running is QUEUED, +# not cancelled and not failed — cancel-in-progress is FALSE on purpose: we want +# every push's source to be built in order, never dropped. This is the flock +# nonblock/queue behaviour of build-lock.sh, expressed as a scheduler primitive. +concurrency: + group: doxa-maps-build + cancel-in-progress: false + +jobs: + build: + # Requires a registered Forgejo Actions runner labelled `ubuntu-latest` + # (docker or host). If none is registered the job stays queued — see the + # handoff doc for the ONE Driver action that registers it. + runs-on: ubuntu-latest + + # The job needs to read the repo AND commit the regenerated public/ back, so + # it needs write. The runner's automatic token carries the repo's scope. + permissions: + contents: write + + steps: + - name: Checkout the pushed source + uses: actions/checkout@v4 + with: + # Full history so the build-output commit is a normal fast-forward. + fetch-depth: 0 + + - name: Install bun + uses: https://github.com/oven-sh/setup-bun@v2 + with: + bun-version: latest + + - name: Install dependencies (locked) + run: bun install --frozen-lockfile + + # THE AUTHORITATIVE BUILD. build:unlocked is the real chain (clean -> token + # -> per-bundle vite -> tree -> drop/parse checks -> verify -> gallery). We + # call :unlocked, NOT `bun run build`, because CI IS the single builder now — + # the local flock mutex would only get in its own way here. The MAPBOX_TOKEN + # secret becomes public/api/maps/token.json (gitignored) so the credential + # reaches the built site without ever entering git history. + - name: Build (authoritative, single-writer) + env: + MAPBOX_TOKEN: ${{ secrets.MAPBOX_TOKEN }} + VITE_MAPBOX_TOKEN: ${{ secrets.MAPBOX_TOKEN }} + BUILD_LOCK_OWNER: forgejo-ci + run: bun run build:unlocked + + # Guards graduated from pages.yml: never publish a broken or credential- + # leaking web-root. A failure here fails the build — nothing is committed. + - name: Assert the token endpoint exists + run: | + test -s public/api/maps/token.json || { + echo "::error::public/api/maps/token.json is missing/empty — set the MAPBOX_TOKEN secret, or every basemap renders blank." + exit 1 + } + + - name: Assert no local credential is being published + run: | + if [ -e public/token.local.js ]; then + echo "::error::public/token.local.js is present in the web-root and must not be committed." + exit 1 + fi + + # Commit the regenerated public/ back to the branch. This is the ONE writer + # of build output in the whole system. If the build produced no change, + # commit nothing (idempotent). The token endpoint is gitignored, so it is + # never staged. The [skip ci]-equivalent is handled by the paths-ignore + # above: a public/-only commit does not re-trigger this job. + - name: Publish the built web-root + run: | + git config user.name "forgejo-ci" + git config user.email "ci@doxa.life" + git add public/ + if git diff --cached --quiet; then + echo "No build-output change — nothing to publish." + exit 0 + fi + git commit -m "build: regenerate public/ from ${GITHUB_SHA:-source}" + # Push back to the branch that triggered us. The runner token authorizes + # this; contents:write is granted above. + git push origin "HEAD:${GITHUB_REF_NAME}" diff --git a/README.md b/README.md index 827ad3d32..6e17edee7 100644 --- a/README.md +++ b/README.md @@ -1,305 +1,169 @@ -# doxa-maps — prayer maps that embed everywhere +# doxa-maps — one build, maps that embed everywhere -> **Bottom line up front.** A global prayer movement stalls when there is only **one** website where people -> can see the task and sign up — today that plateau sits at roughly 600–1,000 people groups covered. The fix is -> not a better single website. It is a map that lives on **thousands** of partner-team websites at once, shows -> the prayer task clearly, changes as people sign up, and carries a **Share** button so every team that receives -> it can pass it on. This bundler builds that map — and every other map you need — as one embeddable file each. +**A Vite bundler that turns each map into a self-contained web component.** One `bun run build` produces a +`doxa-maps/` folder you drop on any host — iframe it, script-embed it, ship it as a mobile app, or open the +whole thing as one SPA. **Same code, every screen.** -## Why embed, not link - -One sign-up site is a bottleneck. A map embedded on a partner team's *own* site multiplies three surfaces at -once: the **prayer surface** (more people see the task), the **information surface** and the **understanding -surface**. And a team that has the map on its own site treats it as its own — ownership becomes stewardship. -Sign-up can still happen in one place; the *map* does not have to. - -## What this trains you to be (Training for Trainers) - -We borrow the language of **Training for Trainers (T4T)** — Ying Kai's method, told in *T4T: A Discipleship -Re-Revolution* (Steve Smith with Ying Kai, 2011; trainer resources at [t4tonline.org](https://t4tonline.org)): -the goal is never one trained person, but trainers who train trainers. This README trains you to be three things: - -1. a **map maker** — you (with your AI agent) build maps on the shared library in this repo; -2. a **map multiplier** — every map you build embeds anywhere and carries a Share button; -3. a **prayer mobilizer** — you run the campaign that multiplies the surface: the map onto the website of - every team you know that is trying to multiply disciples among the unreached, and each of them trained to - pass it on with the same button — **[the Playbook](#the-playbook--start-a-prayer-movement-with-this-map)**. - -Everything below is for the people who build the maps. If you only want to *run the campaign*, jump to the -Playbook; the full walkthrough is [docs/tutorial.md](./docs/tutorial.md). +This README is a **show, don't tell** index. Skim the three tables, then jump to the section you need. --- -## What the bundler is — a JAMstack map bundler for vibe coders +## Index -> **Built by a vibe coder, for vibe coders** — and for map multipliers and prayer mobilizers who -> want every people, in every place, prayed for by name. +### The 5 plugin (app) types — from simplest to full app -**One build turns every map into a self‑contained web component** that embeds anywhere an embed -script or URL works, and every map carries the **Share button** so any team can pass its map to the -next team. **The seemingly impossible part:** the same build also composes all your maps, tables, and -dashboards into a single‑page application that runs as a website, installs as a mobile app, and -embeds on partner sites piece by piece. *Same code, every screen.* +| # | Capability | What it is | Example plugin | Section | +|---|------------|------------|----------------|---------| +| 1 | **Single element** | One folder → one bundle → one custom element. The lightest tier. | `doxa-vision-card` | [§1](#cap-1--single-element) | +| 2 | **Preset element (prop-table)** | ONE `root.vue` rendered N ways by preset props — one plugin, many maps. | `doxa-simple-map` (prayer · engagement · adoption) | [§1](#cap-2--preset-element-prop-table) | +| 3 | **Monolithic / multi-view** | A whole research map, all in one `root.vue`. | `doxa-research-map` | [§1](#cap-3--monolithic-research-map) | +| 4 | **Composite element** (nested-element SPA) | A composite element that nests other elements and wires them via props/events. | `my-upg-100-list` | [§1](#cap-4--composite-element) | +| 5 | **App shell** (nested-SPA) | The full doxa-maps app — every plugin in one deep-linkable page. | the doxa-maps SPA | [§1](#cap-5--app-shell--the-doxa-maps-app) | -

- The composed SPA on desktop — many maps, tables and dashboards in one app - The same SPA, same code, as a phone app -

-

One build, same code: the SPA in a desktop browser and on a phone — many maps, one place.

+### The 5 deployment methods -- **One repo, one library** — every map shares components. Not fifty folders of duplicated spaghetti. -- **`bun run dev`** → a live plugin gallery of every map, each with a copy‑paste embed snippet. -- **`bun run build`** → every map ships as its own self‑contained embeddable file (script tag or iframe — WordPress included), and the same build feeds the SPA and the mobile app. +| # | Method | Status | Section | +|---|--------|--------|---------| +| 1 | **iframe embed** on any site | required | [§2](#deploy-1--iframe-embed) | +| 2 | **Mobile app** (Android / Capacitor) | required | [§2](#deploy-2--mobile-app) | +| 3 | **Direct-JS / research dashboard** (props + events + SRI) | required | [§2](#deploy-3--research-dashboard-direct-js) | +| 4 | **WordPress** (same artifacts, Custom HTML block) | deferred POC | [§3](#3-cli-commands--installs-per-deploy-method) | +| 5 | **Desktop** (Tauri) | deferred POC | [§3](#3-cli-commands--installs-per-deploy-method) | -**You don't write the code.** Point your AI agent at the example maps, describe what you want in plain English, and it builds a new one on the shared library. +### CLI commands + what to install -> ⚠️ **Maps ship without data** — being JAMstack (pure JS), they fetch it (like people groups) from an **API** at runtime ([details](#the-data-caveat)). - ---- - -## Have you ever dreamed of making maps? - -Here's the story. Maybe it's yours too. - -You got into building software right as AI made it possible for anyone to write code. And you had a -vision: **make maps** — every map you could imagine — to advance the Kingdom of God, so that every people -in every place could hear the gospel of Jesus. - -So you started. And it worked… for one map. AI is *great* at writing a single map — a couple thousand -lines of code you can embed on a website. - -But then you wanted a second map. And a fifth. And a fiftieth. And here's the wall you hit: - -- Every new map meant **copying the whole thing** into a new folder — nothing was reusable. -- Your maps grew past 2,000… 5,000… lines of tangled "spaghetti code." -- You ended up with **50 folders, 50 map projects**, scattered across your machine — half of them lost. -- Each one was fragile, glitchy, and difficult to maintain, and harder to form a community around. -- You tried to build the bigger platform — many maps in one app — and the agent got stuck past map one. Somewhere in there, the mobile‑app dream quietly went out the window. - -**If that's you: you built maps for Jesus. I salute you.** Those maps have their place. But you were -missing one thing — a *framework* that lets all your maps live in one place and share reusable pieces. - -That's what this is. Built for communities of map makers who want to make open source maps that can multiply everywhere. And the dream you threw out the window? The SPA here runs on your phone **by design** — same code. - ---- - -## Key terms (don't be afraid of these — you can learn each in one search) - -New to this? Read this table first. You do **not** need to memorize it — just know the words exist and where to learn them. - -| Term | In plain words | Learn more | -|---|---|---| -| **Vibe coder** | Someone who builds with AI writing most of the code. That's who this is for. | — | -| **JAMstack** | A way of building where the front end is just **J**avaScript, **A**PIs, and **M**arkup (HTML/CSS). It runs almost anywhere — including WordPress. | [jamstack.org](https://jamstack.org) | -| **Bundler** | A tool that takes all your code and packs it into a few ready‑to‑ship files. This repo *is* a bundler for maps. | [vite.dev/guide](https://vite.dev/guide/) | -| **Build step** | The one command (`bun run build`) that turns your code into those shippable files. Your agent can run it for you. | — | -| **bun** | A fast, all‑in‑one replacement for `npm` (installs packages, runs scripts). We use it here. | [bun.sh](https://bun.sh) | -| **node modules** | The reusable code packages your project depends on. If you use VUE, and VITE you need Node Modules. It is like installing libraries and dependencies that allow VUE to work. `bun install` downloads them into your doxa-maps folder on your laptop `node_modules/`. | [bun.sh/docs](https://bun.sh/docs/cli/install) | -| **Dev server** | A local preview website (run this command 'bun run dev' after 'bun install') that updates live as you edit. You run it, it let's you see all the maps in one place so you can give your agents feedback, and see changes almost real time when the agent makes edits. It runs at `http://localhost:5173`. | — | -| **Vue / React** | Popular, well‑supported frameworks for building front ends. This bundler is built on **Vue** + **Vite** — commit to learning Vue (if you know React, the concepts transfer). | [vuejs.org](https://vuejs.org) | -| **Web component** | A custom HTML tag (like ``) that works on any page, no framework required. Each of your maps becomes one. | [MDN: Web Components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) | -| **iframe** | A safe window that embeds one site inside another. Simple, isolated. Each map comes with iframe support by default | [MDN: iframe](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) | -| **Shadow DOM** | Lets your map's JavaScript run *directly* inside the host page (not walled off in an iframe) so it can integrate deeply — while keeping its styles from clashing. | [MDN: Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM) | -| **SPA (single‑page application)** | One page that composes several maps together in a layout — a whole multi-map site from one build. | [MDN: SPA](https://developer.mozilla.org/en-US/docs/Glossary/SPA) | -| **CDN** | A URL that serves a file (JavaScript/CSS) to be fetched and run in a browser. When you use Mapbox, you're loading its CDN. Your built maps are served the same way. JAMstack allows these map frontends to run through a CDN, yes they are that modular! Or, you can run them directly in your site, but CDN allows them to embed via iframe onto partner websites easily with a single URL | [MDN: CDN](https://developer.mozilla.org/en-US/docs/Glossary/CDN) | -| **Minify** | The build shrinks your code into compact, hard‑to‑read (but still working) form — smaller and harder to copy. | [MDN: Minification](https://developer.mozilla.org/en-US/docs/Glossary/Minification) | -| **Capacitor** | Wraps your maps app into a real iOS/Android apps, or make a SPA ('single-page application' see above) by joining multiple maps together into a layout, and bundling that SPA into IOS/Android easily — **same code, no Swift, no Flutter, no React Native.** (The Android project ships in this repo; iOS scaffolds the same way on a Mac.) | [capacitorjs.com](https://capacitorjs.com) | -| **Lazy loading** | Only loads each map when it's actually needed, so a page with many maps stays fast. | [web.dev: lazy loading](https://web.dev/articles/lazy-loading) | - ---- - -## What doxa-maps gives you - -- **One repository for all your maps.** Each map is an *application profile* in `plugin-designs//`. -- **A shared library of reusable, parameterized components** (`library/` — the map, the legend, the - controls, the search bar) so your maps stop duplicating code. -- **Room for each map's own custom code** — because real maps always have something unique. -- **Rapid prototyping.** Add a `.vue` app-profile file, rebuild, and it's live. Build *hundreds* of maps from one library. -- **Your agent's happy place.** Everything's in one folder, so your AI agent has all the context it needs to - build the next map from the examples already here. Give your agent the proper context and it will have what it needs to make new maps. The only limit is our fear of new architecture, we can learn JAMstack, and see the use cases, and grow in a new framework of software design that is appropriate for open source maps that need to embed everywhere. - - **The Great Commission's Maps** Everyone needs to work together to fulfill the great commission, and it will not be possible without maps. Allowing map communities to multiply open source maps that can embed onto all partner sites means doxa-maps is built to solve global mobilization problems, not just a map for centralized website. - ---- - -## The parts that make you do a backflip - -- **One build → many embeddable maps.** `bun run build` turns every map into a self‑contained web component - *and* generates a standalone HTML page for each one. -- **Embed anywhere.** Drop a map on your own site, a partner team's site, or WordPress — via an **iframe** - (safe and isolated) *or* via **shadow DOM** (the map's JavaScript runs directly in the page, for deep - integration and advanced features). -- **Compose maps into a single‑page app.** Put several maps into one layout — a whole multi‑map site — and it - **lazy‑loads** each map so it stays fast even when there are many. -- **Turn it into a mobile app.** The same code runs as an **iOS/Android app** via **Capacitor** — no new - language to learn. Design it mobile‑friendly right in your browser (inspect element → switch to a phone - aspect ratio), then wrap it. -- **Your source stays protected.** The build **minifies** your code — it still runs perfectly, but anyone who - grabs it off a partner site gets compact, hard‑to‑read output, not your clean source. -- **Update once, everywhere.** Serve the built maps from a **CDN**, and when you rebuild, every partner site - that embeds a map picks up the latest version when their cache refreshes. - -**One codebase → your own map website · embedded on partner sites · WordPress · mobile app · standalone.** - ---- - -## The Playbook — start a prayer movement with this map - -The learn‑by‑doing use case this bundler was built for. Five steps, trainable to any team: - -1. **List your partner teams.** Build a spreadsheet of every team you know that is working to - multiply disciples among the unreached — their websites, and the contact who can edit each site. -2. **Keep the list in a secure, collaborative CRM — not a loose file.** That list of teams, - contacts, and sites is an **attack surface** in the wrong hands; protect the people on it. - [Disciple.Tools](https://disciple.tools) is an open‑source, multiplayer CRM built exactly for - tracking teams, contacts, and mobilization campaigns — privately. -3. **Commission prayer mobilizers.** Assign real people to work the list — call, network, and ask - each team to put the prayer map on their site and present it to their spiritual family. -4. **Embed everywhere.** Press the map's **Share button**: *Share Link* is the map's own page, - *Add to Your Website* is the embed code — both carry the full URL of whatever host serves your - maps (plus a `utm_source` tag on the generated pages, so every site's traffic is measurable). - Verified places a pasted embed works: team websites and WordPress (Custom HTML block), - Squarespace (Code block — iframes need a Business or Commerce plan), Wix (Add → Embed → HTML - iframe), Google Sites (Insert → Embed → By URL), Notion (`/embed` + the Share Link), and internal - boards with an iframe add-on (e.g. Trello's *Card Frames* Power-Up). Rule of thumb: anywhere that - accepts an HTML snippet or a URL embed, over https. -5. **Train the trainer.** Teach each team to use the Share button to embed the map — then teach - them to train the *next* team the same way. The movement doesn't hang on one mobilization - team: every team that carries the map can multiply it. - -The result: one signup flow, a thousand doorways into it — and a map that visibly changes as -people commit, so every team watches the task shrink on *their own* site. - -## A word before you decide - -This architecture is probably different from what you're used to. **Different doesn't mean worse** — it -means it can make your life better and let you build the maps of your dreams. - -So be honest with yourself. If you don't have big dreams about map‑making, this product might not be for -you — and that's okay. But if you dream of maps that change the world and carry the gospel to places it has -never been, you're going to need **more than a vibe‑coded map**. You'll need a *framework* that supports far -more components than a typical one‑off map. And you'll need a *community*. - -You can't form a community around spaghetti‑coded maps. You **can** form one around a shared framework with a -reusable library — because then people prototype on the same foundation and build something stronger -together, where maps never have to be rewritten from scratch. One problem that hinders the Great Commission, is each worker keeps their maps private source, and don't have a shared map framework to build maps on, with reusable map components in a modern framework like VUE with VITE embeddability support. **Doxa-maps** aims to meet this open source map gap for a global prayer movement which needs more maps, maps, maps! - -## Requirements — the one small wall (and it's worth it) - -Someone once told me: *don't reinvent the wheel — use Vue and Vite instead of hand‑rolling vanilla -JavaScript.* They were right. So here's the honest deal before you start: - -1. **Commit to learning Vue.** This bundler is built on **Vue + Vite** (React skills transfer — - the components you'll touch are Vue). - You don't have to master it — but pick one and lean in. (Afraid you can't learn a new architecture? You - can. The concepts are one search away — that's what the glossary above is for.) -2. **Learn the four basics** (your agent can run all of them): - - `bun install` — get the dependencies - - `bun run dev` — the dev server (live preview) - - `bun run build` — the build step (ship it) - - what `node_modules` are (the downloaded dependencies) -3. **You do *not* need to write the code.** Give your agent access to the example maps in `plugin-designs/` plus - the shared `library/`, describe your map in plain English, and it builds a new map that reuses the library - instead of duplicating spaghetti. The library is for reusable components while the app profiles is for storing custom components that are not reusable, and are specific to that app-profile or map-app. Each map app has custom components that are not reusable and they are not appropriate in the shared library, but if you look at other plugin-designs you will see they store their custom components, as well as their main.vue file for the map in the plugin-designs folder. - -That's the wall. It's small, and everything past it is the maps of your dreams. - ---- - -## Quickstart - -You need [**bun**](https://bun.sh) installed (`bun.lock` is committed, so installs are reproducible). +Install **[Bun](https://bun.sh)** once, then: ```bash bun install # download node_modules (one time) - -bun run dev # the plugin gallery: http://localhost:5173 (or the next free port — read the terminal) - # an auto-generated SPA of every map, grouped by bundle and composition tier, - # each deep-linkable; `bun run smoke:gallery` proves every one of them boots - -bun run build # the build step: every plugin-designs// becomes - # public/doxa-maps//.js + a standalone index.html per map - -bun run serve # preview the BUILT tree (the SPA shell + every embed page) -bun run phone # build → sync → Android APK on a connected phone (Capacitor) +bun run dev # live plugin gallery at http://localhost:5173 +bun run build # build every plugin-designs// → public/doxa-maps/ +bun run serve # preview the built tree +bun run phone # build → Capacitor → Android APK on a connected device ``` -`bun run build` writes everything into **`public/doxa-maps/`** — that's your output folder. Copy it wherever -your site or CDN serves files (for example, a host repo's `public/` directory), and your maps are live. +The full command matrix (per deploy method, with prereqs like the Android SDK / JDK for mobile) lives in +**§3 → [docs/README-SECTION-3-cli-commands.md](./docs/README-SECTION-3-cli-commands.md)**. -### Embed a map - -```html - - - - - - - -``` - -Prefer not to run JavaScript on the host page? **iframe the generated page instead:** -`/doxa-maps///index.html`. Both snippets are pre‑generated for every map in -`public/doxa-maps/manifest.json`. +> **The data caveat:** maps ship **without data**. Being JAMstack, each fetches its people-group data from an +> **API** at runtime, and its Mapbox token from a token endpoint (never baked into the bundle). That is what +> keeps them embeddable everywhere. See [docs/how-to.md](./docs/how-to.md). --- -## The data caveat +## 1. Plugin types — one screenshot each -Read this so nothing surprises you: **the maps ship without their data.** Because they're JAMstack (pure -JavaScript), each map fetches its data — like people‑group information — from an **API** at runtime. That's -what keeps them embeddable everywhere. +Every image below is a real map from this repo's `bun run build` output (`public/doxa-maps/`), captured in a +headless browser. -Your map data has to come from somewhere. Common sources: +### CAP 1 — Single element -- **[Joshua Project](https://joshuaproject.net)** -- **[PeopleGroups.org](https://peoplegroups.org)** -- **A project API.** doxa-maps was originally built to serve **DX**, which runs its own people‑group API - (`https://pray.doxa.life`) covering the unreached people groups these maps were made to pray over. The data - source, the map token, and even the map engine (Mapbox ↔ MapLibre) are **runtime settings** — change them - with **no rebuild**. +*One folder → one bundle → one custom element.* The lightest tier: `plugin-designs/doxa-vision-card/`. No map +engine, mounts instantly — a self-contained "mission vision card." + +![Capability 1 — a single-element plugin (doxa-vision-card)](docs/readme-images/cap1-single-element.png) + +### CAP 2 — Preset element (prop-table) + +*One `root.vue`, many maps.* `plugin-designs/doxa-simple-map/` is a single parameterized profile. A preset +prop-table (`simple-map.instances.json`) renders it three ways — **prayer**, **engagement**, **adoption** — +each a standalone embeddable page. Same code, three maps. + +| Prayer | Engagement | Adoption | +|--------|------------|----------| +| ![Prayer map](docs/readme-images/cap2-prayer.png) | ![Engagement map](docs/readme-images/cap2-engagement.png) | ![Adoption map](docs/readme-images/cap2-adoption.png) | + +*All three come from the **same** `doxa-simple-map` plugin-design folder — differentiated only by preset props.* + +### CAP 3 — Monolithic research map + +*A whole research map, all from one `root.vue`.* `plugin-designs/doxa-research-map/` — the monolithic tier. + +![Capability 3 — the monolithic research map](docs/readme-images/cap3-monolithic-research.png) + +### CAP 4 — Composite element + +*A composite element that nests lower-tier elements and wires them via props/events.* `plugin-designs/my-upg-100-list/` — +the UPG-100 list plugin. The composite (`upg-100-mfe`) plus its list pages: + +| Composite element (`upg-100-mfe`) | List — page 1 | List — page 2 | +|-----------------------------------|---------------|---------------| +| ![UPG-100 composite](docs/readme-images/cap4-upg100-mfe.png) | ![UPG-100 list page 1](docs/readme-images/cap4-upg100-list-page1.png) | ![UPG-100 list page 2](docs/readme-images/cap4-upg100-list-page2.png) | + +### CAP 5 — App shell / the doxa-maps app + +*The top tier: every plugin in one deep-linkable single-page app* — `public/index.html`, generated by the +build. A vertical-tab sidebar groups every plugin by capability (CAP 5 → 1); clicking a row mounts that +plugin. This same SPA is the Capacitor mobile-app entry (see deploy 2). + +![Capability 5 — the doxa-maps SPA (all plugins, one app)](docs/readme-images/cap5-doxa-maps-spa.png) --- -## Docs +## 2. Deployment methods — one screenshot each + +The exact commands + install prereqs for each are in **§3**. These shots show what each method looks like live. + +### Deploy 1 — iframe embed + +*The simplest.* One ` +``` + +URLs are root-relative, so the whole `doxa-maps/` folder is position-independent — +drop it on Cloudflare/Vercel/any static host and every iframe resolves. (For an +external absolute base, set `embedBaseUrl` in the build config before building.) + +### 2. Mobile app — Android / Capacitor *(required)* + +**Install:** Bun · **Android SDK** (`sdkmanager`, `adb` on your PATH) · **JDK 17** +(the Gradle wrapper needs it) · Capacitor (`@capacitor/*` are already devDependencies, +so `bun install` covers them). A connected device or running emulator for install. + +```bash +bun run phone +``` + +`phone` chains the whole path: `apk:debug` (which runs `bun run build`, then +`cap:sync` to copy the web output into the Android project, then `cap:verify`, then +`./gradlew assembleDebug`) and finally `apk:install` (`adb install -r ...`) onto the +device. Run the halves separately if you want to inspect between steps: + +```bash +bun run apk:debug # build the APK only +bun run apk:install # push the built APK to a connected device +``` + +Only Android is scaffolded on this branch (`capacitor/android`, `capacitor.config.json`); +iOS is not set up. + +### 3. Direct-JS / dashboard *(required)* + +**Install:** Bun. + +```bash +bun run build +``` + +Then paste the profile's `embed.script` snippet from `manifest.json` — a ` + + +``` + +The element accepts props / emits events, so it can wire into a surrounding page as a +unified research dashboard (deploy-3 proof). The SRI hash regenerates on every build. + +### 4. WordPress *(deferred POC)* + +No dedicated WordPress build step exists on this branch. WordPress is served by the +**same** artifacts as methods 1 and 3: + +```bash +bun run build +``` + +Then paste either the iframe snippet **or** the ` + + + + +``` + +Prefer not to run JavaScript on the host page? **iframe the generated page instead:** +`/doxa-maps///index.html`. Both snippets are pre‑generated for every map in +`public/doxa-maps/manifest.json`. + +--- + +## The data caveat + +Read this so nothing surprises you: **the maps ship without their data.** Because they're JAMstack (pure +JavaScript), each map fetches its data — like people‑group information — from an **API** at runtime. That's +what keeps them embeddable everywhere. + +Your map data has to come from somewhere. Common sources: + +- **[Joshua Project](https://joshuaproject.net)** +- **[PeopleGroups.org](https://peoplegroups.org)** +- **A project API.** doxa-maps was originally built to serve **DX**, which runs its own people‑group API + (`https://pray.doxa.life`) covering the unreached people groups these maps were made to pray over. The data + source, the map token, and even the map engine (Mapbox ↔ MapLibre) are **runtime settings** — change them + with **no rebuild**. + +--- + +## Docs + +| Read this | When | +|---|---| +| **[docs/why.md](./docs/why.md)** | 2 min — the problem, the idea, one diagram | +| **[docs/tutorial.md](./docs/tutorial.md)** | build your first map, step by step (great to hand to your agent) | +| **[docs/how-to.md](./docs/how-to.md)** | task recipes (embed, data, mobile) | +| **[layouts/README.md](./layouts/README.md)** | the SPA composition machinery (many maps → one app) | +| **[docs/architecture/](./docs/architecture/)** | the deep end — embeddability, app-wrappers, file map | + +--- + +## A note from the developer + +> **Bottom line: maps should be open source, they should run everywhere, and no movement of God has ever +> moved without maps.** + +You found some really cool maps on the internet, didn't you? On discipleship sites, maybe — maps that +inspired you, that made you want to build your own. But the code wasn't available. Or if it was, it wasn't +written to run on WordPress, or on your own site, or across your partner teams' websites. It wasn't +simple. It wasn't modular. It didn't work the way you needed it to. + +That was me too. That's why I built this framework. I love maps — I'm going to build maps until the day I +die — because I want to see the Kingdom of God advance to the places it has never been, and I long to see a +global movement of map‑makers multiplying maps everywhere. + +I want the Great Commission fulfilled in my lifetime, and there is no global movement without map‑making. +Look at Scripture: *Jerusalem, Judea, Samaria, and the ends of the earth* — the book of Acts is a map, all +the way to Rome. Where do you find a movement of God without maps at its white‑hot center? Nowhere. So why +would we lock our maps away and make them closed source? Why should the power to make a map sit in the hands +of a few who never release their code? + +It shouldn't. **This was built to be open source, to serve movements of God** — so the maps can multiply to +every device: WordPress, your own site, an embeddable script on Squarespace, mobile, anywhere an embed can +run. If we want to put map‑making into the hands of every disciple, we need a framework that lets the maps +*go*, lets them be *reusable*, and lets a community build them *together*. + +If you have a vision to reach the globe but you've been stuck vibe‑coding an entire platform alone — with no +open‑source foundation that runs on your site and your partners' sites — that gap isn't your fault, and you +don't have to stay there. You can escape it by adopting a framework that has already been where you are. + +Come build the maps of your dreams. Let's reach every people, in every place. diff --git a/docs/readme-images/cap1-single-element.png b/docs/readme-images/cap1-single-element.png new file mode 100644 index 000000000..1a8c715b8 Binary files /dev/null and b/docs/readme-images/cap1-single-element.png differ diff --git a/docs/readme-images/cap2-adoption.png b/docs/readme-images/cap2-adoption.png new file mode 100644 index 000000000..73ad064cc Binary files /dev/null and b/docs/readme-images/cap2-adoption.png differ diff --git a/docs/readme-images/cap2-engagement.png b/docs/readme-images/cap2-engagement.png new file mode 100644 index 000000000..50f7112a8 Binary files /dev/null and b/docs/readme-images/cap2-engagement.png differ diff --git a/docs/readme-images/cap2-prayer.png b/docs/readme-images/cap2-prayer.png new file mode 100644 index 000000000..e1580f0b4 Binary files /dev/null and b/docs/readme-images/cap2-prayer.png differ diff --git a/docs/readme-images/cap3-monolithic-research.png b/docs/readme-images/cap3-monolithic-research.png new file mode 100644 index 000000000..afab85897 Binary files /dev/null and b/docs/readme-images/cap3-monolithic-research.png differ diff --git a/docs/readme-images/cap4-upg100-list-page1.png b/docs/readme-images/cap4-upg100-list-page1.png new file mode 100644 index 000000000..2c355b0cf Binary files /dev/null and b/docs/readme-images/cap4-upg100-list-page1.png differ diff --git a/docs/readme-images/cap4-upg100-list-page2.png b/docs/readme-images/cap4-upg100-list-page2.png new file mode 100644 index 000000000..086d95bec Binary files /dev/null and b/docs/readme-images/cap4-upg100-list-page2.png differ diff --git a/docs/readme-images/cap4-upg100-mfe.png b/docs/readme-images/cap4-upg100-mfe.png new file mode 100644 index 000000000..969b11102 Binary files /dev/null and b/docs/readme-images/cap4-upg100-mfe.png differ diff --git a/docs/readme-images/cap5-doxa-maps-spa.png b/docs/readme-images/cap5-doxa-maps-spa.png new file mode 100644 index 000000000..cc97bce69 Binary files /dev/null and b/docs/readme-images/cap5-doxa-maps-spa.png differ diff --git a/docs/readme-images/deploy1-iframe.png b/docs/readme-images/deploy1-iframe.png new file mode 100644 index 000000000..ffb861851 Binary files /dev/null and b/docs/readme-images/deploy1-iframe.png differ diff --git a/docs/readme-images/deploy2-mobile-spa.png b/docs/readme-images/deploy2-mobile-spa.png new file mode 100644 index 000000000..d584bdc59 Binary files /dev/null and b/docs/readme-images/deploy2-mobile-spa.png differ diff --git a/docs/readme-images/deploy3-research-dashboard.png b/docs/readme-images/deploy3-research-dashboard.png new file mode 100644 index 000000000..e5de34a57 Binary files /dev/null and b/docs/readme-images/deploy3-research-dashboard.png differ diff --git a/internal/acceptance/big-picture-acceptance.mjs b/internal/acceptance/big-picture-acceptance.mjs new file mode 100644 index 000000000..d891cacfe --- /dev/null +++ b/internal/acceptance/big-picture-acceptance.mjs @@ -0,0 +1,26 @@ +#!/usr/bin/env node +// Big Picture (Cat-4) composite acceptance test — the Gate-1 chain end-to-end. +// Exercises the REAL data flow: header emits research-filter {query,wagfRegion,wagfBlock, +// rop1,religion} -> parent props -> grid's applyDropdownFilters -> groups-filtered {total}. +// Runs against the live people-groups API (the same shape the grid fetches). Exit 1 on any fail. +const API='https://pray.doxa.life/api/people-groups/list?fields=name,slug,wagf_region,wagf_block,country_code,rop1,religion&lang=' +function gridFilter(recs,{query='',wagfRegion='',wagfBlock='',rop1='',religion=''}={}){ + let out=recs + for(const [f,sel] of Object.entries({wagf_region:wagfRegion,wagf_block:wagfBlock,rop1,religion})) + if(sel) out=out.filter(u=>(u[f]||{}).value===sel) + if(query){const q=query.toLowerCase() + out=out.filter(u=>String(u.name||'').toLowerCase().includes(q)|| + ['country_code','rop1','religion','wagf_region','wagf_block'].some(k=>String((u[k]||{}).label||'').toLowerCase().includes(q)))} + return out +} +const r=await fetch(API); const d=await r.json(); const recs=d.posts||d.data||d; const N=recs.length +let pass=0,fail=0 +const t=(name,ok,cnt)=>{ok?pass++:fail++;console.log(` ${ok?'✓':'✗ FAIL'} ${name} -> ${cnt}`)} +t('no filter -> all',gridFilter(recs).length===N,gridFilter(recs).length) +t('Region=Africa',gridFilter(recs,{wagfRegion:'africa'}).every(u=>(u.wagf_region||{}).value==='africa'),gridFilter(recs,{wagfRegion:'africa'}).length) +t('Religion=Islam-Sunni',gridFilter(recs,{religion:'MSN'}).length>0,gridFilter(recs,{religion:'MSN'}).length) +t('Asia+Hinduism (faceted)',gridFilter(recs,{wagfRegion:'asia',religion:'H'}).length>0,gridFilter(recs,{wagfRegion:'asia',religion:'H'}).length) +t("search 'somali'",gridFilter(recs,{query:'somali'}).some(u=>u.name.toLowerCase().includes('somali')),gridFilter(recs,{query:'somali'}).length) +t("search 'a' within Africa",gridFilter(recs,{wagfRegion:'africa',query:'a'}).length>0,gridFilter(recs,{wagfRegion:'africa',query:'a'}).length) +console.log(`\n Big Picture acceptance: ${pass} passed, ${fail} failed (${N} live records)`) +process.exit(fail?1:0) diff --git a/internal/build-lock.sh b/internal/build-lock.sh new file mode 100755 index 000000000..8f2ddf8c5 --- /dev/null +++ b/internal/build-lock.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# build-lock.sh — a first-wins BUILD MUTEX for `bun run build`. +# +# WHY: multiple agents (and RESUMED "idle" agents — a SendMessage revives one) can each run `bun run build` +# into the shared public/ output. Concurrent builds clobber each other (a neighbor's `bun run clean` wipes +# your in-progress output → false "bundle MISSING"). Nothing but coordinator-discipline prevented this — so +# this makes the collision STRUCTURALLY impossible: the FIRST build acquires the lock; a SECOND build that +# tries while it's held FAILS FAST with a clear message instead of corrupting the tree. +# +# This is the local-dev form of IDEA-FORGEJO-CICD-BUILD-LOCK-MULTIWRITER (the CI/CD concurrency mutex) — the +# swarm hit the hazard before that gate, so the primitive is built now. Same contract: first-wins, second +# fails clean, no race. +# +# USAGE: `bun run build` (package.json wires build -> this wrapper -> build:unlocked). Override the wait with +# BUILD_LOCK_WAIT= (default 0 = fail-fast/nonblock; set e.g. 300 to QUEUE behind a running build). +set -euo pipefail + +LOCK_FILE="${BUILD_LOCK_FILE:-public/.build.lock}" +WAIT="${BUILD_LOCK_WAIT:-0}" +mkdir -p "$(dirname "$LOCK_FILE")" + +# fd 9 = the lock handle +exec 9>"$LOCK_FILE" + +if [ "$WAIT" = "0" ]; then + # nonblocking: first-wins, second fails clean + if ! flock -n 9; then + echo "🚫 BUILD LOCK HELD — another build is running (holder: $(cat "$LOCK_FILE" 2>/dev/null || echo '?'))." >&2 + echo " Rebuild refused to avoid a concurrent-build race (would clobber public/). Wait for it to finish" >&2 + echo " and retry, or run with BUILD_LOCK_WAIT=300 to QUEUE behind it." >&2 + exit 75 # EX_TEMPFAIL — 'try again later', distinct from a real build failure + fi +else + echo "⏳ waiting up to ${WAIT}s for the build lock…" >&2 + if ! flock -w "$WAIT" 9; then + echo "🚫 BUILD LOCK still held after ${WAIT}s — giving up (no race caused)." >&2 + exit 75 + fi +fi + +# we hold the lock — stamp who + when, then build +echo "pid=$$ started=$(date -u +%FT%TZ) by=${BUILD_LOCK_OWNER:-$(whoami)}" >&9 +echo "🔒 build lock acquired — running the authoritative build." >&2 +bun run build:unlocked +status=$? +echo "🔓 build done (exit $status) — releasing lock." >&2 +exit $status diff --git a/internal/generate-gallery.mjs b/internal/generate-gallery.mjs index 7c9a7bf65..c34ab0bd1 100644 --- a/internal/generate-gallery.mjs +++ b/internal/generate-gallery.mjs @@ -40,12 +40,45 @@ * * Usage: node internal/generate-gallery.mjs (`bun run gallery` — last step of `bun run build`) */ -import { readFileSync, writeFileSync, existsSync } from 'node:fs' +import { readFileSync, writeFileSync, existsSync, readdirSync } from 'node:fs' import { join, resolve, dirname } from 'node:path' import { fileURLToPath, pathToFileURL } from 'node:url' +import { PROFILE_TIER, TYPE_DISPLAY, detectProfileType } from './plugin-gallery/discover.mjs' const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') +// Composition tier → capability number (5 = app-shell/nested-mfe-spa … 1 = single-element). +// The plugin studio is itself the nested-mfe-spa (capability 5) — the reserved app-shell key. +// cap = 5 - PROFILE_TIER (nested-mfe-spa:0→5 · nested-elements-mfe:1→4 · monolithic:2→3 · +// parameterized:3→2 · single:4→1). Unknown → 1 (single, the safe floor). +export const CAP_OF = (type) => (PROFILE_TIER[type] != null ? 5 - PROFILE_TIER[type] : 1) + +// Build-mode: the manifest carries no composition tier, so read it from source the way the +// dev discovery does (explicit .meta.json → an *.instances.json means parameterized → +// single). Returns { "/": "" }. Pure best-effort: a missing tree +// or unreadable folder just yields {} and every profile falls back to capability 1. +export function readSourceTiers(appDir = join(ROOT, 'plugin-designs')) { + const out = {} + if (!existsSync(appDir)) return out + let dirs = [] + try { dirs = readdirSync(appDir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name) } catch { return out } + for (const bundle of dirs) { + const dir = join(appDir, bundle) + let files = [] + try { files = readdirSync(dir) } catch { continue } + const hasInstances = files.some((f) => /\.instances\.json$/i.test(f)) + for (const f of files) { + if (!f.endsWith('.vue')) continue + const profile = f.replace(/\.vue$/, '') + try { + const t = detectProfileType(dir, profile, '', [], hasInstances) + out[bundle + '/' + profile] = t.type + } catch { /* leave unlisted → capability 1 */ } + } + } + return out +} + // Same fields the tree generator bakes into every leaf page (vite.doxa-maps-build-config.json). export function readBuildConfig() { let cfg = {} @@ -82,11 +115,22 @@ function snip(b, p, x) { // Manifest → compact registry: [{b,s,i,e,p:[{p,e,u,d,em?,in?:[{id,t,a,pr,e,u,em?}]}]}]. // lean = drop every embed snippet the page can re-derive with snip() (the baked fallback); // the live manifest keeps its snippets verbatim. -export function compact(m, lean) { +// tierMap (build mode): { "/": "" } from readSourceTiers, used +// when the manifest profile carries no `type`. c = capability number (1–5); the SPA groups +// and sorts by it (5 → 1). Dev mode passes profiles that already carry `sp.type`. +export function compact(m, lean, tierMap) { + tierMap = tierMap || {} + // Composition tier → capability number, self-contained so the browser copy of this function + // (shipped via src(compact) and re-run on the live manifest) needs no import. 5 = app-shell + // (nested-mfe-spa) … 1 = single. The model may bake `sp.type`; else tierMap resolves it. + var PT = { 'nested-mfe-spa': 0, 'nested-elements-mfe': 1, 'monolithic': 2, 'parameterized': 3, 'single': 4 } + var capFor = function (t) { return PT[t] != null ? 5 - PT[t] : 1 } return (m.bundles || []).map(function (src) { var b = { b: src.bundle, s: src.scriptUrl || '', i: src.integrity || '', e: src.elements || [], p: [] } b.p = (src.profiles || []).map(function (sp) { - var p = { p: sp.profile, e: sp.element || '', u: sp.iframeUrl || '', d: sp.description || '' } + var type = sp.type || tierMap[src.bundle + '/' + sp.profile] || 'single' + var c = capFor(type) + var p = { p: sp.profile, e: sp.element || '', u: sp.iframeUrl || '', d: sp.description || '', c: c } var em = sp.embed || {}, d = snip(b, p, null) if (!lean || em.iframe !== d.iframe || em.script !== d.script) p.em = em var ins = (sp.instances || []).map(function (sx) { @@ -125,7 +169,7 @@ const LADDER_CSS = String.raw`:root{--acc:#1a73e8}@media(prefers-color-scheme:da .explain .ex{color:var(--mut);font-size:12px} @media(max-width:1280px){.ladder{display:none}} ` -const LADDER_HTML = '' +const LADDER_HTML = '' const LADDER_JS = String.raw` ${dev ? LADDER_JS : ''} @@ -444,8 +591,9 @@ function main() { const manifestPath = join(ROOT, 'public', CFG.name, 'manifest.json') if (!existsSync(manifestPath)) { console.error(`[generate-gallery] missing ${manifestPath} — run \`bun run tree\` first`); process.exit(1) } const manifest = JSON.parse(readFileSync(manifestPath, 'utf8')) - const html = renderGallery(manifest, { mode: 'build', title: CFG.title, tree: CFG.name, tokenUrl: CFG.tokenUrl, token: CFG.token, apiBaseUrl: CFG.apiBaseUrl, assetsBaseUrl: CFG.assetsBaseUrl, qaWidget: CFG.qaWidget }) - const baked = compact(manifest, true) + const tierMap = readSourceTiers() // "/" → composition tier (the manifest carries none) + const html = renderGallery(manifest, { mode: 'build', title: CFG.title, tree: CFG.name, tokenUrl: CFG.tokenUrl, token: CFG.token, apiBaseUrl: CFG.apiBaseUrl, assetsBaseUrl: CFG.assetsBaseUrl, qaWidget: CFG.qaWidget, tierMap }) + const baked = compact(manifest, true, tierMap) const nProfiles = baked.reduce((n, b) => n + b.p.length, 0) const nInstances = baked.reduce((n, b) => n + b.p.reduce((k, p) => k + (p.in ? p.in.length : 0), 0), 0) const nOverrides = baked.reduce((n, b) => n + b.p.reduce((k, p) => k + (p.em ? 1 : 0) + (p.in || []).filter(x => x.em).length, 0), 0) diff --git a/internal/generate-tree.mjs b/internal/generate-tree.mjs index 02609153e..14563f494 100644 --- a/internal/generate-tree.mjs +++ b/internal/generate-tree.mjs @@ -149,6 +149,20 @@ function extractHeaderTags(filePath) { return tags } +// A leaf DRAWS A MAP iff its .vue references a map engine. This is the signal that a page +// needs a map peer (Mapbox/MapLibre) + the Mapbox token ladder; a leaf without it is a grid, +// card, chart-table or data-list and must render TOKEN-FREE with NO peer (see mapPageHtml). +// UNLIKE composite-TIER classification (which the codebase refuses to infer from source, see +// discover.detectProfileType), this is an unambiguous POSITIVE dependency check, not a +// heuristic tag guess: a file that imports useMapInstance / touches window.mapboxgl / loads a +// mapbox-gl|maplibre-gl peer unquestionably intends to draw tiles. Whole-file scan (not just +// the header) because these references live in the ` : '' @@ -391,7 +405,38 @@ function mapPageHtml(opts) { // free, no Mapbox account) and SKIPS the token ladder entirely — the map mounts // immediately. Default stays Mapbox, byte-for-byte unchanged. const isMapLibre = !!(config && config.provider === 'maplibre') - const peerBlock = isMapLibre + // DOES THIS LEAF ACTUALLY DRAW A MAP? (isMap, computed per-profile at scan time — a + // leaf whose .vue references a map engine: useMapInstance/useMapProvider, mapbox-gl, + // maplibre-gl, or window.mapboxgl/maplibregl. See scanBundles → isMapLeaf.) + // A leaf that is NOT a map (a grid, a card, a chart table, a data list) must render + // TOKEN-FREE and load NO map peer at all — otherwise a tokenless load hits the token + // ladder, fetch-fails on the token endpoint (e.g. CORS on doxa.life/api/maps/token) + // and NEVER creates the element: the styled #slot stays empty, so maps/dashboards look + // broken to a first-time viewer. This is the CORRECT signal that supersedes the legacy + // provider:'maplibre' hack authors used to force non-maps token-free (people-groups-grid, + // doxa-vision-card, big-picture). `isMap` defaults to true when unspecified so any + // caller that has not yet computed it keeps the original map-gated behaviour. + const drawsMap = isMap === undefined ? true : !!isMap + const notAMap = !drawsMap + // SHELL PAGES ARE TOKEN-FREE. A cap-5 app-shell (nested-mfe-spa, e.g. ) is + // NOT a map — it is chrome that nests OTHER elements. Its nested MAP elements each render in + // their own iframe leaf page, which runs its OWN token ladder. So the shell page itself must + // NOT gate element creation on a Mapbox token: without this, a tokenless load fetch-fails on + // the token endpoint (e.g. CORS on doxa.life/api/maps/token) and NEVER creates the element — + // the styled ladder never appears. Token-free ⇒ mount immediately + load NO Mapbox peer. + // shellOnly WINS over provider: a cap-5 app-shell paints no map itself, so it needs no peer + // AT ALL — even if an instance carries provider:'maplibre' (a legacy way authors forced + // token-free before shellTokenFree existed). Correct signal = the composition tier, not a + // map provider that happens to be set on the shell's config. `notAMap` generalises this to + // EVERY non-map leaf (cap-4 composites + cap-1/2/3 non-map leaves), not just cap-5 shells. + const shellOnly = !!shellTokenFree || notAMap + const tokenFree = isMapLibre || shellOnly + const peerBlock = shellOnly + ? `` + : isMapLibre ? ` @@ -425,7 +470,7 @@ function mapPageHtml(opts) {
-
${isMapLibre ? 'loading map…' : 'loading token…'}
+
${tokenFree ? 'loading…' : 'loading token…'}
${apiScript} @@ -445,8 +490,9 @@ ${apiScript} var slot = document.getElementById('slot'); var status = document.getElementById('status'); var BASE_CONFIG = ${JSON.stringify(pageConfig)}; - // MapLibre pages need NO token: the ladder below is skipped entirely. - var TOKEN_FREE = ${JSON.stringify(isMapLibre)}; + // MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token: + // the ladder below is skipped entirely and the element mounts immediately. + var TOKEN_FREE = ${JSON.stringify(tokenFree)}; var TOKEN_SRC = ${JSON.stringify(tokenUrlExpr)}; var BAKED_TOKEN = ${JSON.stringify(bakedToken || '')}; var DEFAULT_TOKEN_URL = '/api/maps/token'; @@ -567,6 +613,11 @@ function profileHtml(b, profile, tokenUrlExpr, bakedToken) { tokenUrlExpr, bakedToken, integrity: b.integrity, + // A cap-5 app-shell (nested-mfe-spa) is chrome, not a map → token-free (see mapPageHtml). + shellTokenFree: profile.type === 'nested-mfe-spa', + // Whether this leaf actually draws map tiles (computed in scanBundles → isMapLeaf). A + // non-map leaf renders token-free with no map peer; only a real map runs the token ladder. + isMap: profile.isMap, }) } @@ -586,6 +637,11 @@ function instanceHtml(b, profile, inst, tokenUrlExpr, bakedToken) { tokenUrlExpr, bakedToken, integrity: b.integrity, + // Instance pages inherit the profile's shell-ness (an app-shell preset is still token-free). + shellTokenFree: profile.type === 'nested-mfe-spa', + // Instance pages inherit the profile's map-ness: a preset of a non-map leaf is still a + // non-map (token-free, no peer); a preset of a real map still runs the token ladder. + isMap: profile.isMap, }) } @@ -703,12 +759,21 @@ function scanBundles() { // an *.instances.json → parameterized; else single. (detectProfileType, same as the gallery.) const { type: profileType } = detectProfileType(dir, profileName, tag, [], instances.length > 0) + // Does this leaf actually draw map tiles? Composite tiers (cap-4 nested-elements-mfe, + // cap-5 nested-mfe-spa) are chrome that nests OTHER elements — they never paint a map + // themselves (any real map is its own iframe leaf), so they are non-maps regardless of + // source. Leaf tiers (single / parameterized / monolithic) are a map only if their .vue + // references a map engine. This drives the token-gate/peer decision in mapPageHtml. + const composite = profileType === 'nested-elements-mfe' || profileType === 'nested-mfe-spa' + const isMap = composite ? false : isMapLeaf(join(dir, file)) + return { profile: profileName, file, description: description || fileTag || '', element: tag, type: profileType, + isMap, iframeUrl, scriptUrl, embed: { iframe: iframeEmbed, script: scriptEmbed }, diff --git a/internal/install-shell.mjs b/internal/install-shell.mjs index e8e206a95..9969a0d1a 100644 --- a/internal/install-shell.mjs +++ b/internal/install-shell.mjs @@ -39,12 +39,12 @@ const args = process.argv.slice(2) const noToken = args.includes('--no-token') const wrapper = args.find(a => !a.startsWith('--')) || 'app-wrapper-material' -const src = join(ROOT, 'layouts', wrapper) +const src = join(ROOT, 'library', 'layouts', wrapper) const dst = join(ROOT, 'public') if (!existsSync(src)) { console.error(`[install-shell] FAIL — no such wrapper: layouts/${wrapper}`) - console.error(`[install-shell] available: ${readdirSync(join(ROOT, 'layouts')).filter(f => !f.endsWith('.md')).join(', ')}`) + console.error(`[install-shell] available: ${readdirSync(join(ROOT, 'library', 'layouts')).filter(f => !f.endsWith('.md')).join(', ')}`) process.exit(1) } if (!existsSync(join(src, 'index.html'))) { @@ -75,9 +75,9 @@ for (const entry of readdirSync(src)) { const shellSrc = readFileSync(join(src, 'index.html'), 'utf8') const nested = [...shellSrc.matchAll(/from\s+['"]\.\.\/([A-Za-z0-9._-]+)\//g)].map(m => m[1]) for (const layout of new Set(nested)) { - const from = join(ROOT, 'layouts', layout) + const from = join(ROOT, 'library', 'layouts', layout) if (!existsSync(from)) { - console.error(`[install-shell] FAIL — index.html imports ../${layout}/ but layouts/${layout} does not exist.`) + console.error(`[install-shell] FAIL — index.html imports ../${layout}/ but library/layouts/${layout} does not exist.`) process.exit(1) } cpSync(from, join(dst, layout), { recursive: true }) diff --git a/internal/plugin-gallery/dev-plugin.mjs b/internal/plugin-gallery/dev-plugin.mjs index 4eadd3196..337fe7cf3 100644 --- a/internal/plugin-gallery/dev-plugin.mjs +++ b/internal/plugin-gallery/dev-plugin.mjs @@ -64,13 +64,16 @@ export function galleryModel(reg) { const bundles = [...reg].sort((a, b) => a.bundle.localeCompare(b.bundle)).map((b) => { const scriptUrl = `/plugin-designs/${b.bundle}/index.js` const presets = new Map() // profile → its preset instances (empty for every other kind) + const typeOf = new Map() // profile → composition tier machine key (single … nested-mfe-spa) for (const it of b.items) { if (!presets.has(it.profile)) presets.set(it.profile, []) + if (!typeOf.has(it.profile)) typeOf.set(it.profile, it.type) if (it.type === 'parameterized') presets.get(it.profile).push(it) } const profiles = [...presets.keys()].sort().map((profile) => { const p = { profile, file: `${profile}.vue`, description: '', element: b.tag, + type: typeOf.get(profile) || 'single', iframeUrl: link(b.bundle, profile), scriptUrl, embed: { iframe: iframe(`./${b.bundle}/${profile}/index.html`), diff --git a/internal/readme-shots-fix.mjs b/internal/readme-shots-fix.mjs new file mode 100644 index 000000000..1978f1660 --- /dev/null +++ b/internal/readme-shots-fix.mjs @@ -0,0 +1,69 @@ +#!/usr/bin/env node +// Targeted re-capture: cap1 (vision-card WITH token so it renders, not the token-error state) +// and cap5 (SPA deep-linked to a plugin so a map shows, not "choose a map"). +// Retries navigation while concurrent builds churn the tree. +import { chromium } from 'playwright' +import { createServer } from 'node:http' +import { readFile, stat } from 'node:fs/promises' +import { join, extname, resolve, dirname } from 'node:path' +import { fileURLToPath } from 'node:url' + +const HERE = dirname(fileURLToPath(import.meta.url)) +const ROOT = resolve(HERE, '..', 'public') +const OUT = resolve(HERE, '..', 'docs', 'readme-images') +const TYPES = { '.html':'text/html', '.js':'text/javascript', '.mjs':'text/javascript', + '.json':'application/json', '.css':'text/css', '.webp':'image/webp', '.png':'image/png', + '.svg':'image/svg+xml', '.geojson':'application/json', '.csv':'text/csv', '.woff2':'font/woff2' } +const server = createServer(async (req, res) => { + try { let p = join(ROOT, decodeURIComponent(req.url.split('?')[0])) + if ((await stat(p)).isDirectory()) p = join(p, 'index.html') + res.writeHead(200, { 'content-type': TYPES[extname(p)] || 'application/octet-stream' }) + res.end(await readFile(p)) } catch { res.writeHead(404).end('not found') } +}) +await new Promise(r => server.listen(0, '127.0.0.1', r)) +const BASE = `http://127.0.0.1:${server.address().port}` +let TK = '' +try { const r = await fetch('https://doxa.life/api/maps/token', { signal: AbortSignal.timeout(8000) }) + TK = r.ok ? ((await r.json()).token || '') : '' } catch {} +console.log(TK ? `token acquired (${TK.length})` : 'NO token') +const browser = await chromium.launch() + +async function tryShot(name, path, { vp = { width: 1440, height: 900 }, wait = 5000, dsf = 2, before = null, waitFor = null, tries = 8 } = {}) { + for (let t = 1; t <= tries; t++) { + const ctx = await browser.newContext({ viewport: vp, deviceScaleFactor: dsf }) + const page = await ctx.newPage() + let ok = false + // Insert tk into the QUERY, keeping any #hash fragment LAST (else the route breaks). + const hashAt = path.indexOf('#') + const basePath = hashAt >= 0 ? path.slice(0, hashAt) : path + const frag = hashAt >= 0 ? path.slice(hashAt) : '' + const url = BASE + basePath + (basePath.includes('?') ? '&' : '?') + 'tk=' + encodeURIComponent(TK) + frag + try { + const resp = await page.goto(url, { waitUntil: 'load', timeout: 30000 }) + if (resp && resp.status() === 404) throw new Error('404') + if (waitFor) { try { await page.waitForSelector(waitFor, { timeout: 12000 }) } catch {} } + if (before) await before(page) + await page.waitForTimeout(wait) + await page.screenshot({ path: join(OUT, name + '.png') }) + ok = true + console.log(' OK', name, `(try ${t})`) + } catch (e) { console.log(' retry', name, t, e.message.split('\n')[0]) } + finally { await ctx.close() } + if (ok) return true + await new Promise(r => setTimeout(r, 4000)) + } + console.log(' GAVE UP', name) + return false +} + +// cap1: vision-card DEFAULT instance page (TOKEN_FREE=true -> renders the card instantly, no token error). +// Long wait so the aurora backdrop + rotating stat cards fully paint (they animate in). +await tryShot('cap1-single-element', '/doxa-maps/doxa-vision-card/doxa-vision-card/default/index.html', + { wait: 9000 }) + +// cap5: SPA deep-linked to the prayer map instance so a real painted map shows in the right pane. +await tryShot('cap5-doxa-maps-spa', '/index.html#/doxa-simple-map/doxa-simple-map/prayer', + { wait: 11000, waitFor: '#app' }) + +await browser.close(); server.close() +console.log('fix done') diff --git a/internal/readme-shots.mjs b/internal/readme-shots.mjs new file mode 100644 index 000000000..e579604da --- /dev/null +++ b/internal/readme-shots.mjs @@ -0,0 +1,121 @@ +#!/usr/bin/env node +/** + * readme-shots.mjs — capture the README screenshot family from the BUILT tree. + * + * Serves public/ on a local port (same static server shape as smoke.mjs), then + * drives headless chromium to screenshot each capability + deploy surface. + * A live Mapbox token is fetched from https://doxa.life/api/maps/token and passed + * as ?tk= so maps fully paint (network is up). Token-free surfaces (vision-card, + * template) render regardless. + * + * Output: docs/readme-images/*.png + */ +import { chromium } from 'playwright' +import { createServer } from 'node:http' +import { readFile, stat, mkdir } from 'node:fs/promises' +import { join, extname, resolve, dirname } from 'node:path' +import { fileURLToPath } from 'node:url' + +const HERE = dirname(fileURLToPath(import.meta.url)) +const ROOT = resolve(HERE, '..', 'public') +const OUT = resolve(HERE, '..', 'docs', 'readme-images') +await mkdir(OUT, { recursive: true }) + +const TYPES = { '.html':'text/html', '.js':'text/javascript', '.mjs':'text/javascript', + '.json':'application/json', '.css':'text/css', '.webp':'image/webp', '.png':'image/png', + '.svg':'image/svg+xml', '.geojson':'application/json', '.csv':'text/csv', '.woff2':'font/woff2' } + +const server = createServer(async (req, res) => { + try { + let p = join(ROOT, decodeURIComponent(req.url.split('?')[0])) + if ((await stat(p)).isDirectory()) p = join(p, 'index.html') + res.writeHead(200, { 'content-type': TYPES[extname(p)] || 'application/octet-stream' }) + res.end(await readFile(p)) + } catch { res.writeHead(404).end('not found') } +}) +await new Promise(r => server.listen(0, '127.0.0.1', r)) +const BASE = `http://127.0.0.1:${server.address().port}` + +// Live token so maps paint fully. +let TK = '' +try { + const r = await fetch('https://doxa.life/api/maps/token', { signal: AbortSignal.timeout(8000) }) + TK = r.ok ? ((await r.json()).token || '') : '' +} catch {} +console.log(TK ? `token: acquired (${TK.length} chars) — maps will paint` : 'token: NONE — maps token-limited') + +const browser = await chromium.launch() + +// path is relative to the tree root (public/). tk appended unless tokenFree. +async function shot(name, path, { + vp = { width: 1440, height: 900 }, wait = 6000, tokenFree = false, + waitFor = null, before = null, fullPage = false, clip = null, dsf = 2, +} = {}) { + const ctx = await browser.newContext({ viewport: vp, deviceScaleFactor: dsf }) + const page = await ctx.newPage() + const url = BASE + path + (tokenFree ? '' : (path.includes('?') ? '&' : '?') + 'tk=' + encodeURIComponent(TK)) + try { + await page.goto(url, { waitUntil: 'load', timeout: 45000 }) + if (waitFor) { try { await page.waitForSelector(waitFor, { timeout: 15000 }) } catch {} } + if (before) await before(page) + await page.waitForTimeout(wait) + const opts = { path: join(OUT, name + '.png') } + if (fullPage) opts.fullPage = true + if (clip) opts.clip = clip + await page.screenshot(opts) + console.log(' OK', name + '.png', '<-', path) + } catch (e) { + console.log(' ERR', name, e.message.split('\n')[0]) + } finally { await ctx.close() } +} + +// mapbox canvas selector to wait on (leaf pages mount a custom element with a canvas) +const CANVAS = 'canvas' + +// ---- CAP1: single element (token-free vision card) ---- +await shot('cap1-single-element', '/doxa-maps/doxa-vision-card/doxa-vision-card/index.html', + { tokenFree: true, wait: 3500 }) + +// ---- CAP2: prop-table -> 3 shots from ONE root.vue (prayer/engagement/adoption) ---- +await shot('cap2-prayer', '/doxa-maps/doxa-simple-map/doxa-simple-map/prayer/index.html', { waitFor: CANVAS, wait: 8000 }) +await shot('cap2-engagement', '/doxa-maps/doxa-simple-map/doxa-simple-map/engagement/index.html', { waitFor: CANVAS, wait: 8000 }) +await shot('cap2-adoption', '/doxa-maps/doxa-simple-map/doxa-simple-map/adoption/index.html', { waitFor: CANVAS, wait: 8000 }) + +// ---- CAP3: monolithic research map ---- +await shot('cap3-monolithic-research', '/doxa-maps/doxa-research-map/research-map/index.html', { waitFor: CANVAS, wait: 9000 }) + +// ---- CAP4: nested-element SPA (upg-100-mfe is the cat-4 composite; list is the pages) ---- +await shot('cap4-upg100-mfe', '/doxa-maps/my-upg-100-list/upg-100-mfe/index.html', { wait: 8000 }) +await shot('cap4-upg100-list-page1', '/doxa-maps/my-upg-100-list/upg-100-list/index.html', { wait: 7000 }) +// "page 2" — scroll the list down to show a later page of groups +await shot('cap4-upg100-list-page2', '/doxa-maps/my-upg-100-list/upg-100-list/index.html', { + wait: 7000, + before: async (page) => { + try { await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight)) } catch {} + // try clicking a "next" control if one exists + for (const sel of ['button:has-text("Next")', '[aria-label="Next"]', '.pagination-next', 'button.next']) { + try { const el = await page.$(sel); if (el) { await el.click(); break } } catch {} + } + await page.waitForTimeout(1500) + } +}) + +// ---- CAP5: nested SPA — the doxa-maps studio SPA (public/index.html) ---- +await shot('cap5-doxa-maps-spa', '/index.html', { wait: 8000, waitFor: '#app' }) + +// ---- DEPLOY1: iframe embed on a host page ---- +// Build a tiny host page that iframes a real map, serve it inline via data-ish approach: +// simplest = a temp html written into public then screenshot. We instead write a host file. +await shot('deploy1-iframe', '/__readme-iframe-host.html', { wait: 9000 }) + +// ---- DEPLOY2: mobile — the SPA at phone viewport ---- +await shot('deploy2-mobile-spa', '/index.html', + { vp: { width: 390, height: 844 }, wait: 8000, waitFor: '#app', dsf: 3 }) + +// ---- DEPLOY3: research dashboard ---- +await shot('deploy3-research-dashboard', '/doxa-maps/research-dashboard/research-dashboard/index.html', + { waitFor: CANVAS, wait: 10000 }) + +await browser.close() +server.close() +console.log('DONE — shots in docs/readme-images/') diff --git a/library/components/legends/LegendDesktop.vue b/library/components/legends/LegendDesktop.vue index 534aa613f..e06462a67 100644 --- a/library/components/legends/LegendDesktop.vue +++ b/library/components/legends/LegendDesktop.vue @@ -333,12 +333,12 @@ onMounted(() => { if (mapId && e.detail?.mapId && e.detail.mapId !== mapId) return isCollapsed.value = false } - window.addEventListener('doxa:openDesktopLegend', _onOpenDesktopLegend) + window.addEventListener('dxm:openDesktopLegend', _onOpenDesktopLegend) }) onBeforeUnmount(() => { if (_onOpenDesktopLegend) { - window.removeEventListener('doxa:openDesktopLegend', _onOpenDesktopLegend) + window.removeEventListener('dxm:openDesktopLegend', _onOpenDesktopLegend) } }) diff --git a/library/components/map-controls/GeocoderComponent.vue b/library/components/map-controls/GeocoderComponent.vue index 9bd704a71..fb5742def 100644 --- a/library/components/map-controls/GeocoderComponent.vue +++ b/library/components/map-controls/GeocoderComponent.vue @@ -8,7 +8,7 @@ map (default map-control mode) or mounting it into this component's own container (`standalone` mode — search-only, no map required). • Supplementing Mapbox's forward-geocoder results with DOXA people-group, - country, language and religion matches via `useDoxaSearch` (passed as + country, language and religion matches via `useEntitySearch` (passed as the `localGeocoder` option — see Mapbox "custom-geocoder" example). Each DOXA row is rendered with a labeled category tag by the custom `render` callback (renderSuggestion). @@ -64,7 +64,7 @@ + + + + diff --git a/library/components/search/README.md b/library/components/search/README.md new file mode 100644 index 000000000..320e440b3 --- /dev/null +++ b/library/components/search/README.md @@ -0,0 +1,99 @@ +# `@map/components/search` — shared search + filter primitives + +ONE source of truth for the search-bar, the searchable filter-dropdown, and the +fuzzy matcher. Consumed by BOTH plugins so there is **no duplication**: + +- **cap-2** `plugin-designs/people-groups-grid/` — its own header (default) drives the grid. +- **cap-1** `plugin-designs/big-picture/` — the Unified Research Dashboard header + (`BpResearchHeader.vue`) can adopt these to replace its hand-rolled `` + + native ``. + +| Prop | Type | Default | Purpose | +|---------------|--------|------------|--------------------------------------------------------------------| +| `modelValue` | String | `''` | Bound value; supports `v-model`. | +| `placeholder` | String | `'Search…'`| Input placeholder text. | +| `ariaLabel` | String | `'Search'` | Accessible label. | +| `maxWidth` | String | `''` | Optional CSS max-width (e.g. `'480px'`); empty = fill container. | + +| Event | Payload | When | +|---------------------|-------------------|-------------------------------------------------------------| +| `update:modelValue` | `String` | On every input (enables `v-model`). | +| `search` | `{ value }` | On every input; `value` is the raw string (read in-control, so shadow-DOM retargeting never loses it). | + +```vue + + +``` + +--- + +## `FilterDropdown.vue` + +A searchable single-select with per-option counts (the four axes: +Region / Block / People-Group / Religion in the grid; Region / Status in the dashboard). + +| Prop | Type | Required | Default | Purpose | +|---------------|--------|----------|-----------------------|----------------------------------------------| +| `label` | String | yes | — | Control label, e.g. `"Region"`. | +| `name` | String | yes | — | Axis/field key echoed back in events. | +| `options` | Array | no | `[]` | `[{ value, label, count?, type? }]`. | +| `value` | String | no | `''` | Currently-selected value (controlled). | +| `placeholder` | String | no | `'Type to search...'` | In-menu search placeholder. | + +| Event | Payload | When | +|-----------------|----------------------------------|----------------------------| +| `filter-change` | `{ name, value, label, type }` | An option was picked. | +| `filter-clear` | `{ name }` | Selection was cleared. | + +```vue + +``` + +--- + +## `fuzzy.js` + +A zero-dependency Fuse.js-shaped matcher (so no npm dep is added to the shared +`package.json`/`bun.lock`). + +```js +const fuse = new Fuse(list, { + keys: ['name', 'country_code.label', 'religion.label'], // dotted paths + threshold: 0, // 0 = exact substring only; >0 = fuzzy subsequence + minMatchCharLength: 3, // shortest run counted as a match +}) +fuse.search(term) // -> [{ item, matches: [{ key, indices: [[start,end], …] }] }] +``` + +- Empty `term` → every item with `matches: []`. +- `matches[].indices` drive `` wrapping (same shape as + Fuse's `includeMatches`). + +--- + +## Verification (headless) + +- `fuzzy.js`: exact + fuzzy + empty-term contracts asserted via a node harness. +- `SearchBar` / `FilterDropdown`: SSR-mounted (`@vue/server-renderer`) — render icon + + input, trigger + label, and reflect a selected value. +- `bun run build` builds the `people-groups-grid` bundle green consuming these shared + imports (all guards pass). diff --git a/library/components/search/SearchBar.vue b/library/components/search/SearchBar.vue new file mode 100644 index 000000000..1e0855dbd --- /dev/null +++ b/library/components/search/SearchBar.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/library/components/search/fuzzy.js b/library/components/search/fuzzy.js new file mode 100644 index 000000000..27a209ec9 --- /dev/null +++ b/library/components/search/fuzzy.js @@ -0,0 +1,105 @@ +/** + * fuzzy.js — SHARED (@map/components/search/fuzzy.js). + * + * A small, self-contained fuzzy matcher with the SAME public surface consumers + * use from Fuse.js, vendored here so any doxa-maps element ships with NO external + * npm dependency (fuse.js is not a dependency of the doxa-maps bundler, and adding + * one would touch the shared package.json/bun.lock). This is the ONE shared home; + * plugins (people-groups-grid, big-picture, …) import it via + * import Fuse from '@map/components/search/fuzzy.js' + * rather than keeping a local copy. + * + * COPY-ONLY NOTE: the DX-life source (UupgsList.vue) uses `new Fuse(list, opts).search(term)` + * with { keys, threshold, includeMatches, ignoreLocation, minMatchCharLength }. We reproduce + * exactly the parts of that contract the grid relies on: + * - keys: array of dotted paths ('name', 'country_code.label', …) read from each item + * - threshold: 0 = exact substring only; >0 = fuzzy (subsequence) allowed + * - minMatchCharLength: shortest run counted as a match + * - .search(term) -> [{ item, matches:[{ key, indices:[[start,end], …] }] }] + * The `matches[].indices` drive the wrapping in the grid, + * identical in shape to Fuse's includeMatches output. + */ + +function getByPath(obj, path) { + if (!path.includes('.')) return obj == null ? undefined : obj[path] + const [head, ...rest] = path.split('.') + let cur = obj == null ? undefined : obj[head] + for (const k of rest) cur = cur == null ? undefined : cur[k] + return cur +} + +// Contiguous case-insensitive substring match -> the run of [start,end] indices. +function exactIndices(haystack, needle) { + const h = haystack.toLowerCase() + const n = needle.toLowerCase() + const out = [] + let from = 0 + let idx = h.indexOf(n, from) + while (idx !== -1) { + out.push([idx, idx + n.length - 1]) + from = idx + n.length + idx = h.indexOf(n, from) + } + return out +} + +// Fuzzy (subsequence) match: every char of `needle` appears in order in `haystack`. +// Returns the runs of consecutive matched positions, or null if not all chars matched. +function fuzzyIndices(haystack, needle) { + const h = haystack.toLowerCase() + const n = needle.toLowerCase() + const runs = [] + let hi = 0 + let runStart = -1 + let runEnd = -1 + for (let ni = 0; ni < n.length; ni++) { + const ch = n[ni] + let found = -1 + for (let k = hi; k < h.length; k++) { + if (h[k] === ch) { found = k; break } + } + if (found === -1) return null + if (runStart === -1) { runStart = runEnd = found } + else if (found === runEnd + 1) { runEnd = found } + else { runs.push([runStart, runEnd]); runStart = runEnd = found } + hi = found + 1 + } + if (runStart !== -1) runs.push([runStart, runEnd]) + return runs +} + +export default class Fuse { + constructor(list, options = {}) { + this.list = Array.isArray(list) ? list : [] + this.keys = options.keys || [] + this.threshold = typeof options.threshold === 'number' ? options.threshold : 0.4 + this.minMatchCharLength = options.minMatchCharLength || 1 + } + + search(term) { + const q = String(term || '').trim() + if (!q) return this.list.map(item => ({ item, matches: [] })) + if (q.length < this.minMatchCharLength) return [] + const exactOnly = this.threshold === 0 + const results = [] + for (const item of this.list) { + const matches = [] + for (const key of this.keys) { + const raw = getByPath(item, key) + if (typeof raw !== 'string' || !raw) continue + let indices = exactIndices(raw, q) + if (indices.length === 0 && !exactOnly) { + const fz = fuzzyIndices(raw, q) + if (fz) { + // keep only runs at least minMatchCharLength long (mirrors Fuse's minMatch) + const kept = fz.filter(([s, e]) => e - s + 1 >= Math.min(this.minMatchCharLength, q.length)) + if (kept.length) indices = kept + } + } + if (indices.length) matches.push({ key, indices }) + } + if (matches.length) results.push({ item, matches }) + } + return results + } +} diff --git a/library/composables/useGeocoderSearch.js b/library/composables/useGeocoderSearch.js index a3252be96..1ebbc7b47 100644 --- a/library/composables/useGeocoderSearch.js +++ b/library/composables/useGeocoderSearch.js @@ -288,7 +288,7 @@ export function useGeocoderSearch(opts) { handled = true } else if (evt.kind === 'dialect') { // Build a legend-matching dialect key: "familyKey__baseLang__dialect". - // useDoxaSearch threads familyDerived/baseLang/dialectLabel onto the Carmen + // useEntitySearch threads familyDerived/baseLang/dialectLabel onto the Carmen // feature so we can construct the same key the legend's dialectRows compute. const labels = Array.isArray(evt.originalLabels) ? evt.originalLabels : [] const family = evt.familyDerived || '' diff --git a/library/composables/useMapEvents.js b/library/composables/useMapEvents.js index 016032114..a5cc61f60 100644 --- a/library/composables/useMapEvents.js +++ b/library/composables/useMapEvents.js @@ -239,7 +239,7 @@ export function useMapEvents(options = {}) { // On desktop: if legend is collapsed, open it if (!uiStore.isMobile) { // Signal via custom event that the desktop legend can listen to - window.dispatchEvent(new CustomEvent('doxa:openDesktopLegend', { detail: { mapId } })); + window.dispatchEvent(new CustomEvent('dxm:openDesktopLegend', { detail: { mapId } })); } return; // Don't show popup — info is in the legend panel } diff --git a/library/composables/useDoxaSearch.js b/library/composables/useSearch.js similarity index 99% rename from library/composables/useDoxaSearch.js rename to library/composables/useSearch.js index ae34ce1ce..0d0e357c6 100644 --- a/library/composables/useDoxaSearch.js +++ b/library/composables/useSearch.js @@ -1,5 +1,5 @@ /** - * useDoxaSearch.js — Local geocoder search composable + * useSearch.js — Local geocoder search composable * * Supplements the Mapbox Geocoder (which only knows cities/countries) * with results from the local people-groups dataset. Returns matches @@ -7,7 +7,7 @@ * languages, and religions. * * Usage: - * const { search } = useDoxaSearch({ dataStore, dataSourceId }) + * const { search } = useEntitySearch({ dataStore, dataSourceId }) * // Pass `search` as `localGeocoder` option to MapboxGeocoder: * new MapboxGeocoder({ accessToken, localGeocoder: search }) * @@ -504,7 +504,7 @@ function makeAggregateFeature(kind, agg) { * @param {string} [opts.dataSourceId] Source id to read features from. * @returns {{ search: (query:string)=>Array, searchGrouped: (query:string)=>object }} */ -export function useDoxaSearch(opts = {}) { +export function useEntitySearch(opts = {}) { const { dataStore, dataSourceId, getActiveFilter, getActiveContext } = opts // Called during GeocoderComponent setup → useI18n() resolves the per-map @@ -675,4 +675,4 @@ export function useDoxaSearch(opts = {}) { return { search, searchGrouped, index, aggregates } } -export default useDoxaSearch +export default useEntitySearch diff --git a/library/composables/useSelectedPin.js b/library/composables/useSelectedPin.js index a8a40ed93..ca94a2ad6 100644 --- a/library/composables/useSelectedPin.js +++ b/library/composables/useSelectedPin.js @@ -17,21 +17,21 @@ const HIGHLIGHT_LAYER_ID = 'selected-pin-highlight'; */ function createGoMarkerElement(color = GO_ORANGE) { const el = document.createElement("div"); - el.className = "doxa-go-pin-wrapper"; + el.className = "map-go-pin-wrapper"; const gradId = `pinGrad-${Math.random().toString(36).slice(2, 8)}`; el.innerHTML = ` to that component's own styles[] — + but Vue only injects the ROOT custom element's styles[] into the shadow root; a CHILD component's + styles[] are silently dropped (see composables/useShadowStyles.js). This layout is typically + imported as a CHILD of a consumer's root SFC, so its
+
+ + + {{ title }} + +
+ +
+ + +
+ +
+ +
+
+
Loading {{ row.label }}…
+
+ Could not load {{ row.label }}.
{{ hostError[row.key] }} +
+
+ + +
+
+
+
+ + + + + diff --git a/layouts/app-wrapper-material/.gitignore b/library/layouts/app-wrapper-material/.gitignore similarity index 100% rename from layouts/app-wrapper-material/.gitignore rename to library/layouts/app-wrapper-material/.gitignore diff --git a/layouts/app-wrapper-material/assets/brand/doxa-maps-logo-dark-with-text.png b/library/layouts/app-wrapper-material/assets/brand/doxa-maps-logo-dark-with-text.png similarity index 100% rename from layouts/app-wrapper-material/assets/brand/doxa-maps-logo-dark-with-text.png rename to library/layouts/app-wrapper-material/assets/brand/doxa-maps-logo-dark-with-text.png diff --git a/layouts/app-wrapper-material/icons.js b/library/layouts/app-wrapper-material/icons.js similarity index 100% rename from layouts/app-wrapper-material/icons.js rename to library/layouts/app-wrapper-material/icons.js diff --git a/layouts/app-wrapper-material/index.html b/library/layouts/app-wrapper-material/index.html similarity index 100% rename from layouts/app-wrapper-material/index.html rename to library/layouts/app-wrapper-material/index.html diff --git a/layouts/app-wrapper-material/languages.js b/library/layouts/app-wrapper-material/languages.js similarity index 100% rename from layouts/app-wrapper-material/languages.js rename to library/layouts/app-wrapper-material/languages.js diff --git a/layouts/app-wrapper-material/nav.js b/library/layouts/app-wrapper-material/nav.js similarity index 100% rename from layouts/app-wrapper-material/nav.js rename to library/layouts/app-wrapper-material/nav.js diff --git a/layouts/pane-wrapper/pane-wrapper.js b/library/layouts/pane-wrapper/pane-wrapper.js similarity index 100% rename from layouts/pane-wrapper/pane-wrapper.js rename to library/layouts/pane-wrapper/pane-wrapper.js diff --git a/package.json b/package.json index 70af5ece2..120795d5e 100644 --- a/package.json +++ b/package.json @@ -3,11 +3,11 @@ "version": "0.1.0", "license": "Apache-2.0", "private": true, - "description": "A portable bundler that generates embeddable JAMstack maps — one library, many map bundles that embed on any site, compose into a lazy-loaded SPA, or wrap a Capacitor Android/iOS app.", + "description": "A portable bundler that generates embeddable JAMstack maps \u2014 one library, many map bundles that embed on any site, compose into a lazy-loaded SPA, or wrap a Capacitor Android/iOS app.", "type": "module", "scripts": { "dev": "bun x vite", - "build": "bun run clean && bun run token && for d in plugin-designs/*/; do BUNDLE=$(basename \"$d\") bun x vite build || exit 1; done && bun run tree && bun run check:drop && bun run check:drop && bun run check:parse && bun run verify && bun run gallery", + "build": "bash internal/build-lock.sh", "build:watch": "bun x vite build --watch", "preview": "bun x vite preview", "clean": "node internal/clean.mjs", @@ -19,7 +19,7 @@ "verify": "node library/scripts/research/verify-all.mjs", "verify:full": "node library/scripts/research/verify-all.mjs --full", "serve": "python3 -m http.server 4173 --bind 0.0.0.0 --directory public", - "serve:shell": "python3 -m http.server 4174 --bind 0.0.0.0 --directory layouts/app-wrapper-material", + "serve:shell": "python3 -m http.server 4174 --bind 0.0.0.0 --directory library/layouts/app-wrapper-material", "cap:sync": "bunx cap sync android", "cap:verify": "test -f capacitor/android/app/src/main/assets/public/index.html && echo \"OK webDir copied\" || (echo \"FAIL: empty assets/public -> blank white screen. Check webDir.\" && exit 1)", "apk:debug": "bun run build && bun run cap:sync && bun run cap:verify && cd capacitor/android && ./gradlew assembleDebug", @@ -41,7 +41,8 @@ "probe:legend-columns": "node internal/legend-columns-probe.mjs", "sync:dropin": "node internal/sync-dropin.mjs", "deploy:dev": "bun run build && node internal/sync-dropin.mjs --from-config --prune # destination + allowlist come from vite.doxa-maps-build-config.json (dropin.dest / dropin.include); DOXA_DROPIN_DEST= overrides the destination", - "check:public-hygiene": "node internal/public-hygiene-check.mjs" + "check:public-hygiene": "node internal/public-hygiene-check.mjs", + "build:unlocked": "bun run clean && bun run token && for d in plugin-designs/*/; do BUNDLE=$(basename \"$d\") bun x vite build || exit 1; done && bun run tree && bun run check:drop && bun run check:drop && bun run check:parse && bun run verify && bun run gallery" }, "devDependencies": { "@capacitor/android": "7", @@ -66,4 +67,4 @@ "engines": { "node": ">=18.0.0" } -} +} \ No newline at end of file diff --git a/plugin-designs/big-picture/big-picture.instances.json b/plugin-designs/big-picture/big-picture.instances.json new file mode 100644 index 000000000..bdbd69b8a --- /dev/null +++ b/plugin-designs/big-picture/big-picture.instances.json @@ -0,0 +1,21 @@ +{ + "_comment": "Preconfigured instances of the composite . provider:'maplibre' flags each generated standalone page as TOKEN-FREE (see internal/generate-tree.mjs) so the element mounts INSTANTLY with no Mapbox token ladder — correct for this self-contained, mapless Cat-4 dashboard. generate-tree stamps the bundle's HEADLINE tag (bp-big-picture) on every instance page, so all preset instances render the COMPOSITE. The INNER elements (bp-research-header, bp-groups-table) are individually embeddable via their own registered tags + SRI script (see manifest.elements and the staging index.html section 2, which wires them standalone through the DOM).", + "instances": [ + { + "id": "big-picture", + "title": "Big Picture — research header ↔ people-groups grid (composite)", + "props": { "profile": "big-picture", "provider": "maplibre", "instanceId": "bp-big-picture" } + }, + { + "id": "frontier", + "title": "Big Picture — frontier accent", + "props": { + "profile": "big-picture", + "provider": "maplibre", + "instanceId": "bp-big-picture-frontier", + "accent": "#22d3ee", + "title": "Big Picture — Frontier Focus" + } + } + ] +} diff --git a/plugin-designs/big-picture/big-picture.meta.json b/plugin-designs/big-picture/big-picture.meta.json new file mode 100644 index 000000000..c69222a7c --- /dev/null +++ b/plugin-designs/big-picture/big-picture.meta.json @@ -0,0 +1,6 @@ +{ + "_comment": "Declares the composability tier. 'nested-elements-mfe' (display alias 'composite-element') = Capability-4: this plugin's element NESTS other custom elements from the same bundle ( Cat-1 + the REAL cap-2 ) and wires them via props/events (header SHARED SearchBar + 4 FilterDropdowns → grid filter). This explicit meta is the ONLY way a composite tier is declared (discover.mjs never infers it from source). Filename must be .meta.json where profile = the root .vue name (big-picture).", + "type": "nested-elements-mfe", + "composes": ["bp-research-header", "people-groups-grid"], + "label": "Big Picture (research header ↔ real people-groups grid via props/events)" +} diff --git a/plugin-designs/big-picture/big-picture.vue b/plugin-designs/big-picture/big-picture.vue new file mode 100644 index 000000000..3bbf3cf58 --- /dev/null +++ b/plugin-designs/big-picture/big-picture.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/plugin-designs/big-picture/index.html b/plugin-designs/big-picture/index.html new file mode 100644 index 000000000..b8dca8050 --- /dev/null +++ b/plugin-designs/big-picture/index.html @@ -0,0 +1,86 @@ + + + + + + doxa-maps · big-picture staging + + + + + + +
+

big-picture · staging

+

Capability 4 — one folder → one bundle → three custom + elements. The composite <bp-big-picture> stacks the Cat-1 + <bp-research-header> (search + dropdowns) ON TOP of the Cat-2 + <people-groups-grid> (the REAL live grid) and wires them via + props/events: searching / picking a dropdown in the header filters the + grid below it, and the header shows the live matched count. The grid's OWN search + + dropdowns are turned off in the composite (show-search="false") so it is + driven purely by props. Proves deployment method 3 (direct-JS + props/events + SRI).

+ +

1 · The composite dashboard (nested elements wired internally)

+
+
<bp-big-picture> — header event → parent → table props
+
+ +
+
+ +

2 · Direct-JS host-page wiring (each element embedded separately, wired by THIS page)

+
+
host page listens for the header's research-filter event and sets the grid's query/wagf-region/wagf-block/rop1/religion attributes
+
+
+
+
+
+
+
+
+ + + + + + + + diff --git a/plugin-designs/big-picture/index.js b/plugin-designs/big-picture/index.js new file mode 100644 index 000000000..c97746321 --- /dev/null +++ b/plugin-designs/big-picture/index.js @@ -0,0 +1,58 @@ +/** + * big-picture / index.js — Bundle entry (Capability-4 nested-elements-mfe). + * + * ONE folder -> ONE bundle -> THREE custom elements: + * 1. — the COMPOSITE. Nests the research header (top) + the REAL cap-2 + * people-groups grid (below) and wires them via props/events. Registered + * FIRST so discover.mjs (reads the FIRST customElements.define in + * source) treats this as the bundle's headline tag. + * 2. — the Cat-1 SHARED-control header (SearchBar + 4 FilterDropdowns), + * ALSO registered standalone => individually embeddable; drives a grid + * via `research-filter` { query, wagfRegion, wagfBlock, rop1, religion }. + * 3. — the REAL Cat-2 grid (same component the people-groups-grid bundle + * ships — NO fork), ALSO registered standalone. Set + * show-search="false"/show-filters="false" to drive it via props. + * + * All three register in one synchronous tick; the composite is listed first ONLY so discover.mjs + * names the bundle after it. Each element is its own root wrapped with defineCustomElement, so the + * built IIFE renders anywhere HTML+JS runs (the grid fetches live people-groups from pray.doxa.life). + * + * Usage — composite (direct-JS, method 3): + * + * + * + * Usage — header + grid alone, wired by a host page (also method 3): + * + * + * + */ + +import { defineCustomElement } from 'vue' +import BigPicture from './big-picture.vue' +import ResearchHeader from './src/components/BpResearchHeader.vue' +// The REAL cap-2 grid component (no fork) — registered here so it is individually embeddable +// from THIS bundle too, exactly as the people-groups-grid bundle registers it. +import PeopleGroupsGrid from '../people-groups-grid/people-groups-grid.vue' + +const BigPictureElement = defineCustomElement(BigPicture) +const ResearchHeaderElement = defineCustomElement(ResearchHeader) +const PeopleGroupsGridElement = defineCustomElement(PeopleGroupsGrid) + +if (typeof customElements !== 'undefined') { + // Composite FIRST — this is the discover.mjs headline-tag signal. + if (!customElements.get('bp-big-picture')) customElements.define('bp-big-picture', BigPictureElement) + // Nested elements standalone — individually embeddable. + if (!customElements.get('bp-research-header')) customElements.define('bp-research-header', ResearchHeaderElement) + if (!customElements.get('people-groups-grid')) customElements.define('people-groups-grid', PeopleGroupsGridElement) +} + +export default BigPictureElement diff --git a/plugin-designs/big-picture/src/components/BpGroupsTable.vue b/plugin-designs/big-picture/src/components/BpGroupsTable.vue new file mode 100644 index 000000000..9fb666db0 --- /dev/null +++ b/plugin-designs/big-picture/src/components/BpGroupsTable.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/plugin-designs/big-picture/src/components/BpResearchHeader.vue b/plugin-designs/big-picture/src/components/BpResearchHeader.vue new file mode 100644 index 000000000..948bdce99 --- /dev/null +++ b/plugin-designs/big-picture/src/components/BpResearchHeader.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/plugin-designs/big-picture/src/data/people-groups.js b/plugin-designs/big-picture/src/data/people-groups.js new file mode 100644 index 000000000..173bd09ae --- /dev/null +++ b/plugin-designs/big-picture/src/data/people-groups.js @@ -0,0 +1,81 @@ +/** + * people-groups.js — the Big Picture dataset (self-contained, token-free). + * + * Shared by BOTH inner elements of the "Big Picture" Cat-4 plugin: + * - BpGroupsTable.vue (the Cat-2 people-groups PROP-TABLE) renders + filters this. + * - BpResearchHeader.vue (the Cat-1 search/dropdown dashboard header) builds its + * dropdown option lists (regions, reach-status) from this same catalogue. + * + * `region` + `status` are the join keys the header's dropdowns filter on; the header + * pushes {query, region, status} DOWN to the table as props (or a host page drives the + * table's own attributes directly). No remote fetch, no map token — renders instantly. + */ + +export const REGIONS = [ + { id: 'na', name: 'North America' }, + { id: 'sa', name: 'South America' }, + { id: 'eu', name: 'Europe' }, + { id: 'af', name: 'Africa' }, + { id: 'me', name: 'Middle East' }, + { id: 'ca', name: 'Central Asia' }, + { id: 'sas', name: 'South Asia' }, + { id: 'sea', name: 'Southeast Asia' }, + { id: 'ea', name: 'East Asia' }, +] + +// reach-status buckets (the second dropdown facet). `reached` is % believers proxy. +export const STATUSES = [ + { id: 'frontier', name: 'Frontier (<0.1%)' }, + { id: 'unreached', name: 'Unreached (0.1–2%)' }, + { id: 'reached', name: 'Reached (>2%)' }, +] + +export function statusOf(reached) { + return reached < 0.1 ? 'frontier' : reached < 2 ? 'unreached' : 'reached' +} + +export const PEOPLE_GROUPS = [ + { slug: 'hui', name: 'Hui', country: 'China', region: 'ea', population: 11700000, reached: 0.1, jp: 3.1 }, + { slug: 'uyghur', name: 'Uyghur', country: 'China', region: 'ca', population: 11500000, reached: 0.05, jp: 3.2 }, + { slug: 'yadava', name: 'Yadava', country: 'India', region: 'sas', population: 60000000, reached: 0.2, jp: 3.0 }, + { slug: 'shaikh', name: 'Shaikh', country: 'India', region: 'sas', population: 96000000, reached: 0.01, jp: 3.4 }, + { slug: 'brahmin', name: 'Brahmin', country: 'India', region: 'sas', population: 58000000, reached: 0.3, jp: 2.8 }, + { slug: 'bengali', name: 'Bengali', country: 'Bangladesh', region: 'sas', population: 148000000, reached: 0.4, jp: 2.9 }, + { slug: 'javanese', name: 'Javanese', country: 'Indonesia', region: 'sea', population: 96000000, reached: 1.2, jp: 2.6 }, + { slug: 'sundanese', name: 'Sundanese', country: 'Indonesia', region: 'sea', population: 38000000, reached: 0.1, jp: 3.2 }, + { slug: 'thai', name: 'Central Thai', country: 'Thailand', region: 'sea', population: 22000000, reached: 0.5, jp: 2.8 }, + { slug: 'persian', name: 'Persian', country: 'Iran', region: 'me', population: 39000000, reached: 0.4, jp: 2.9 }, + { slug: 'arab-najdi', name: 'Najdi Arab', country: 'Saudi Arabia', region: 'me', population: 11000000, reached: 0.02, jp: 3.4 }, + { slug: 'kurd', name: 'Kurd', country: 'Iraq', region: 'me', population: 8500000, reached: 0.1, jp: 3.1 }, + { slug: 'turk', name: 'Turk', country: 'Turkey', region: 'me', population: 59000000, reached: 0.2, jp: 3.0 }, + { slug: 'kazakh', name: 'Kazakh', country: 'Kazakhstan', region: 'ca', population: 13000000, reached: 0.3, jp: 2.9 }, + { slug: 'uzbek', name: 'Uzbek', country: 'Uzbekistan', region: 'ca', population: 30000000, reached: 0.1, jp: 3.2 }, + { slug: 'somali', name: 'Somali', country: 'Somalia', region: 'af', population: 17000000, reached: 0.05, jp: 3.3 }, + { slug: 'fulani', name: 'Fulani', country: 'Nigeria', region: 'af', population: 38000000, reached: 0.2, jp: 3.1 }, + { slug: 'hausa', name: 'Hausa', country: 'Nigeria', region: 'af', population: 65000000, reached: 0.3, jp: 3.0 }, + { slug: 'berber', name: 'Shilha Berber', country: 'Morocco', region: 'af', population: 9000000, reached: 0.1, jp: 3.1 }, + { slug: 'wolof', name: 'Wolof', country: 'Senegal', region: 'af', population: 6500000, reached: 0.1, jp: 3.2 }, + { slug: 'tibetan', name: 'Tibetan', country: 'China', region: 'ea', population: 6300000, reached: 0.2, jp: 3.1 }, + { slug: 'han-chinese',name: 'Han (Mandarin)', country: 'China', region: 'ea', population: 900000000, reached: 5.1, jp: 2.1 }, + { slug: 'quechua', name: 'Quechua', country: 'Peru', region: 'sa', population: 8000000, reached: 3.0, jp: 2.3 }, + { slug: 'roma', name: 'Roma', country: 'Romania', region: 'eu', population: 3000000, reached: 1.0, jp: 2.6 }, + { slug: 'bosniak', name: 'Bosniak', country: 'Bosnia', region: 'eu', population: 2500000, reached: 0.4, jp: 2.9 }, + { slug: 'navajo', name: 'Navajo', country: 'USA', region: 'na', population: 330000, reached: 4.0, jp: 2.2 }, +] + +export const regionName = (id) => (REGIONS.find(r => r.id === id) || {}).name || id +export const statusName = (id) => (STATUSES.find(s => s.id === id) || {}).name || id + +/** + * The ONE shared filter predicate. Both the header's live-count and the table use it, so + * the count the header shows always matches what the table renders. Pure — no state. + */ +export function filterGroups({ query = '', region = '', status = '' } = {}) { + const q = (query || '').trim().toLowerCase() + return PEOPLE_GROUPS.filter((pg) => { + if (region && pg.region !== region) return false + if (status && statusOf(pg.reached) !== status) return false + if (q && !(`${pg.name} ${pg.country}`.toLowerCase().includes(q))) return false + return true + }) +} diff --git a/plugin-designs/country-posters/countries-map.vue b/plugin-designs/country-posters/countries-map.vue index 744d3964b..32522af07 100644 --- a/plugin-designs/country-posters/countries-map.vue +++ b/plugin-designs/country-posters/countries-map.vue @@ -469,7 +469,7 @@ const geocoderPlaceholder = computed(() => { // Search context (Round 16) — maps the active legend tab to the category the // unified search bar should surface FIRST. The three people-centric color tabs // (prayer / adoption / engagement) share the people-groups context since they -// all paint people-group pins. null → useDoxaSearch uses its default order. +// all paint people-group pins. null → useEntitySearch uses its default order. const TAB_SEARCH_CONTEXT = { 'affinity-blocks': 'people-groups', 'prayer': 'people-groups', diff --git a/plugin-designs/doxa-maps-spa/doxa-maps-spa.instances.json b/plugin-designs/doxa-maps-spa/doxa-maps-spa.instances.json new file mode 100644 index 000000000..c79f09a88 --- /dev/null +++ b/plugin-designs/doxa-maps-spa/doxa-maps-spa.instances.json @@ -0,0 +1,16 @@ +{ + "_comment": "Preconfigured instances of the Cat-5 app-shell . provider:'maplibre' flags each generated standalone page as TOKEN-FREE (see internal/generate-tree.mjs mapPageHtml → TOKEN_FREE) so the app-shell element mounts INSTANTLY — correct because the SHELL ITSELF paints no map (its TABS do, each in its own document/iframe with its own peer + token ladder). Without this flag the generic leaf-page harness gates on a Mapbox token the shell never uses and the element never mounts. The meta.json's type:'nested-mfe-spa' (Cat-5) still wins over the instances' parameterized signal (discover.detectProfileType: explicit meta type takes precedence), so this stays a Cat-5 app-shell, not a Cat-2 preset. tree-base is left to the runtime derivation (the leaf page's own URL → tree root), so no absolute host is baked in — the shell self-locates wherever the tree is served.", + "profile": "doxa-maps-spa", + "instances": [ + { + "id": "app", + "title": "DX-Maps SPA — Big Picture + every research map (app-shell)", + "props": { + "profile": "doxa-maps-spa", + "provider": "maplibre", + "instanceId": "doxa-maps-spa-app", + "title": "DX-Maps" + } + } + ] +} diff --git a/plugin-designs/doxa-maps-spa/doxa-maps-spa.meta.json b/plugin-designs/doxa-maps-spa/doxa-maps-spa.meta.json new file mode 100644 index 000000000..5d123c907 --- /dev/null +++ b/plugin-designs/doxa-maps-spa/doxa-maps-spa.meta.json @@ -0,0 +1,13 @@ +{ + "_comment": "Declares the composability tier. 'nested-mfe-spa' (display alias 'app-shell') = Capability-5: this plugin is the OUTER app-shell of the whole DX-maps app. Its single element renders a VERTICAL-TAB layout that nests the OTHER plugins as its tabs — tab-1 = the Cat-4 Big Picture (mounted directly via its real tag + its built .js, token-free), the other tabs = each production research map, nested as its OWN full SPA via that map's standalone leaf page (iframe, so each map keeps its own peer-engine + Mapbox-token ladder + profile-config and there is NO customElements.define collision — the one-shot-define hazard is avoided by giving each map its own document). This explicit meta is the ONLY way the Cat-5 tier is declared (discover.mjs never infers it). Filename must be .meta.json where profile = the root .vue name (doxa-maps-spa). generate-gallery.readSourceTiers() reads this and bakes capability 5 for the plugin, so it appears in the studio manifest as the app-shell (nested-mfe-spa).", + "type": "nested-mfe-spa", + "composes": [ + "bp-big-picture", + "doxa-research-map", + "doxa-simple-map", + "cities-internet-map", + "gospel-resources-map", + "my-upg-100-list-map" + ], + "label": "DX-Maps SPA (vertical-tab app-shell: Big Picture + every research map)" +} diff --git a/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue b/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue new file mode 100644 index 000000000..4be1ea88f --- /dev/null +++ b/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue @@ -0,0 +1,439 @@ + + + + + + diff --git a/plugin-designs/doxa-maps-spa/index.html b/plugin-designs/doxa-maps-spa/index.html new file mode 100644 index 000000000..e9ee0114e --- /dev/null +++ b/plugin-designs/doxa-maps-spa/index.html @@ -0,0 +1,45 @@ + + + + + + doxa-maps · doxa-maps-spa staging + + + + + + +
+
+

doxa-maps-spa · staging

+

Capability 5 — the app-shell. One element, + <doxa-maps-spa>, is a vertical-tab layout of the whole DX-maps app: + tab 1 = Big Picture (its real <bp-big-picture> + header + people-groups grid, mounted from the built big-picture.js), and the + other tabs are every production research map, each nested as its own full SPA. Switch tabs + with no page reload; each map tab loads lazily on first open.

+
+
+ +
+
+ + + + + diff --git a/plugin-designs/doxa-maps-spa/index.js b/plugin-designs/doxa-maps-spa/index.js new file mode 100644 index 000000000..ac1d33622 --- /dev/null +++ b/plugin-designs/doxa-maps-spa/index.js @@ -0,0 +1,59 @@ +/** + * doxa-maps-spa / index.js — Bundle entry (Capability-5 nested-mfe-spa / app-shell). + * + * ONE folder -> ONE bundle -> ONE custom element: . + * + * is the OUTER app-shell of the whole DX-maps app: a vertical-tab layout whose + * tab-1 is the Cat-4 Big Picture (mounted directly via its real tag + the built + * big-picture.js) and whose other tabs are every production research map, each nested as its OWN + * full SPA via that map's standalone leaf page (iframe). See doxa-maps-spa.vue for the full why. + * + * ★ ONE-SHOT-DEFINE SAFETY: the ONLY tag this bundle registers is . It NEVER + * imports another plugin's components and NEVER re-registers a tag another bundle owns. The + * nested maps register their own tags when THEIR IIFE loads (tab-1 loads big-picture.js at + * runtime; the iframe tabs run each map's own document). So loading this bundle beside any other + * bundle can never collide. + * + * ★ TREE BASE: to find each nested map's .js / leaf page, the shell needs the built tree's root + * URL. We derive it HERE, at IIFE load, from this script's own URL + * (.../doxa-maps/doxa-maps-spa/doxa-maps-spa.js) → two levels up = the tree root. That value is + * provided to the Vue app so the element self-locates from wherever the tree is served (any + * static host, a subpath, file://). A host can still override it with the tree-base="" attribute + * or profile-config.treeBase. + * + * Usage from a host page (direct-JS, deploy-method-3): + * + * + * + * + */ + +import { defineCustomElement } from 'vue' +import DoxaMapsSpa from './doxa-maps-spa.vue' + +// Capture the running + + + + diff --git a/plugin-designs/doxa-vision-card/index.html b/plugin-designs/doxa-vision-card/index.html new file mode 100644 index 000000000..770892360 --- /dev/null +++ b/plugin-designs/doxa-vision-card/index.html @@ -0,0 +1,44 @@ + + + + + + doxa-maps · doxa-vision-card staging + + + + + + +
+

doxa-vision-card · staging

+

Capability 1 — one folder → one bundle → one element. A single, + self-contained vision card: no map, no token, renders instantly. Embeds via + <iframe> or a direct <script> + custom-element tag.

+ +
+
<doxa-vision-card> — single custom element
+
+ +
+
+
+ + + + + diff --git a/plugin-designs/doxa-vision-card/index.js b/plugin-designs/doxa-vision-card/index.js new file mode 100644 index 000000000..bc8727ecf --- /dev/null +++ b/plugin-designs/doxa-vision-card/index.js @@ -0,0 +1,36 @@ +/** + * plugin-designs/doxa-vision-card/index.js + * + * Bundle entry — registers the web component. + * + * Capability-1 (single element) showcase: one folder -> one bundle -> one + * element. Unlike the map bundles (demo-map, doxa-simple-map, …) this does NOT + * go through @map/ProfileLoader.vue — there is nothing to load, no nested SPA, + * no map, no token. The element IS the root component, wrapped directly with + * Vue's defineCustomElement, so the built IIFE is tiny and renders instantly + * anywhere HTML+JS runs (iframe embed or direct-JS embed). + * + * Folder name = bundle name. This folder builds to exactly one output file: + * public/doxa-maps/doxa-vision-card/doxa-vision-card.js + * + * Usage from a host page: + * + * + * + * + */ + +import { defineCustomElement } from 'vue' +import VisionCard from './doxa-vision-card.vue' + +// Root SFC -> custom element. Vue injects the root component's + + +
+

people-groups-grid · staging

+

Capability 2 — a COPY of the DX-life people-groups grid + (UupgsList.vue) migrated into an OWNED custom element + <people-groups-grid>: fuzzy search + four dropdowns (Region / Block / + People-Group / Religion) + faceted counts. Its own controls can be turned off + (show-search="false" / show-filters="false") so a parent header + drives it via props; it emits groups-filtered both as a Vue event and a native + bubbling CustomEvent. Data is fetched from the injected pray-base-url + (default https://pray.doxa.life) — no Nuxt context required.

+ +

1 · Standalone (owns its search + 4 dropdowns)

+
+
<people-groups-grid pray-base-url="https://pray.doxa.life">
+ +
+ +

2 · Externally driven (controls off, host page filters it via props/events)

+
+
+ + + — +
+ +
+
+ + + + + + + diff --git a/plugin-designs/people-groups-grid/index.js b/plugin-designs/people-groups-grid/index.js new file mode 100644 index 000000000..3a5348c98 --- /dev/null +++ b/plugin-designs/people-groups-grid/index.js @@ -0,0 +1,36 @@ +/** + * people-groups-grid / index.js — Bundle entry (Capability-2 prop-table / preset-element). + * + * ONE folder -> ONE bundle -> ONE custom element: . + * + * This is a COPY-ONLY migration of the DX-life people-groups grid (UupgsList.vue) into an + * OWNED, self-contained custom element. It carries the Cat-2 contract: + * - By default it owns its search box + the four filter dropdowns. + * - show-search="false" / show-filters="false" turn those off so a parent header drives it + * via the query / wagf-region / wagf-block / rop1 / religion props. + * - It emits `groups-filtered` (Vue emit + native bubbling CustomEvent) so a host can react. + * + * Usage (direct-JS): + * + * + * + * Usage (externally driven, e.g. inside the Big-Picture Cat-4 shell): + * + * + */ +import { defineCustomElement } from 'vue' +import PeopleGroupsGrid from './people-groups-grid.vue' + +const PeopleGroupsGridElement = defineCustomElement(PeopleGroupsGrid) + +if (typeof customElements !== 'undefined') { + if (!customElements.get('people-groups-grid')) { + customElements.define('people-groups-grid', PeopleGroupsGridElement) + } +} + +export default PeopleGroupsGridElement diff --git a/plugin-designs/people-groups-grid/people-groups-grid.instances.json b/plugin-designs/people-groups-grid/people-groups-grid.instances.json new file mode 100644 index 000000000..9067103d1 --- /dev/null +++ b/plugin-designs/people-groups-grid/people-groups-grid.instances.json @@ -0,0 +1,27 @@ +{ + "_comment": "Preconfigured instances of the Cat-2 prop-table . provider:'maplibre' flags each generated standalone page as TOKEN-FREE (no Mapbox token ladder) since this grid is a fetch-driven list, not a map. Each instance is one preset of the element's props: 'standalone' owns its own search + 4 dropdowns; 'driven' turns its own controls off (show-search/show-filters=false) to be driven by a parent header via props/events.", + "instances": [ + { + "id": "people-groups-grid", + "title": "People Groups Grid — standalone (own search + 4 dropdowns)", + "props": { + "profile": "people-groups-grid", + "provider": "maplibre", + "instanceId": "people-groups-grid", + "pray-base-url": "https://pray.doxa.life" + } + }, + { + "id": "driven", + "title": "People Groups Grid — externally driven (controls off, props/events)", + "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" + } + } + ] +} diff --git a/plugin-designs/people-groups-grid/people-groups-grid.meta.json b/plugin-designs/people-groups-grid/people-groups-grid.meta.json new file mode 100644 index 000000000..a51f89877 --- /dev/null +++ b/plugin-designs/people-groups-grid/people-groups-grid.meta.json @@ -0,0 +1,5 @@ +{ + "_comment": "Declares the composability tier. 'preset-element' (machine key 'parameterized') = Capability-2: this bundle is a PROP-TABLE element that ships preconfigured instances (see people-groups-grid.instances.json) and is driven by props. It is a COPY-ONLY migration of the DX-life people-groups grid (UupgsList.vue) into an owned element, carrying the Cat-2 contract: show-search/show-filters turn its own controls off so a parent can drive it, and it emits groups-filtered. Filename must be .meta.json where profile = the root .vue name (people-groups-grid).", + "type": "preset-element", + "label": "People Groups Grid (Cat-2 prop-table: search + 4 dropdowns + faceted counts; show-search/show-filters + groups-filtered)" +} diff --git a/plugin-designs/people-groups-grid/people-groups-grid.vue b/plugin-designs/people-groups-grid/people-groups-grid.vue new file mode 100644 index 000000000..f52a6c5fc --- /dev/null +++ b/plugin-designs/people-groups-grid/people-groups-grid.vue @@ -0,0 +1,570 @@ + + + + + diff --git a/plugin-designs/people-groups-grid/src/countries.js b/plugin-designs/people-groups-grid/src/countries.js new file mode 100644 index 000000000..897cda433 --- /dev/null +++ b/plugin-designs/people-groups-grid/src/countries.js @@ -0,0 +1,18 @@ +/** + * countries.js — a self-contained slugifier for country links, so the grid needs + * NO Nuxt `~~/config/countries-meta` import (unavailable outside the DX-life app). + * + * COPY-ONLY NOTE: DX-life's countrySlug(code, label) prefers a canonical English name + * from a master map; here we slugify the provided label (already the localized/English + * country label the API returns) or fall back to the code. The link target base is a + * prop (researchUrl) so the host controls where country links point. + */ +export function countrySlug(code, fallbackLabel) { + const src = String(fallbackLabel || code || '').trim() + return src + .toLowerCase() + .normalize('NFD') + .replace(/[\u0300-\u036f]/g, '') // strip combining diacritics + .replace(/[^a-z0-9]+/g, '-') // any run of non-alphanumerics -> single hyphen + .replace(/^-+|-+$/g, '') // trim leading/trailing hyphens +} diff --git a/plugin-designs/plugin-studio/plugin-studio.meta.json b/plugin-designs/plugin-studio/plugin-studio.meta.json index 91f580940..154448fa2 100644 --- a/plugin-designs/plugin-studio/plugin-studio.meta.json +++ b/plugin-designs/plugin-studio/plugin-studio.meta.json @@ -11,7 +11,6 @@ "my-upg-100-list-map", "doxa-vision-card", "all-people-groups", - "unified-research-dashboard", "research-dashboard" ], "label": "Plugin Studio (cap-5 developer studio: every element by capability 5 -> 1)" diff --git a/plugin-designs/plugin-studio/plugin-studio.vue b/plugin-designs/plugin-studio/plugin-studio.vue index 2d766f5b7..d3e943aca 100644 --- a/plugin-designs/plugin-studio/plugin-studio.vue +++ b/plugin-designs/plugin-studio/plugin-studio.vue @@ -24,91 +24,156 @@ The tab manifest is fetched at runtime from the built tree's manifest.json (so the studio stays correct as bundles change), grouped by capability via the manifest's baked tier; a compact baked fallback keeps it working under file:// or if the fetch fails. treeBase is derived by index.js - from the running diff --git a/plugin-designs/research-dashboard/src/components/dashboards/DashboardSearchHeader.vue b/plugin-designs/research-dashboard/src/components/dashboards/DashboardSearchHeader.vue index 27101f475..3bbf6b88e 100644 --- a/plugin-designs/research-dashboard/src/components/dashboards/DashboardSearchHeader.vue +++ b/plugin-designs/research-dashboard/src/components/dashboards/DashboardSearchHeader.vue @@ -20,11 +20,11 @@ * zero panel edits — a new input source plugging into the bus. * * DATA (DASH-FIX-8): the geocoder's local suggestions come from the injected `dataStore` - * (useDoxaSearch reads dataStore.sources[searchSourceId].features). The dashboard loads its + * (useEntitySearch reads dataStore.sources[searchSourceId].features). The dashboard loads its * rows into its OWN store (useDashboardData), so useDashboardShell now ALSO normalizes those * already-fetched rows through the SAME DataSourceManager the map profiles use and exposes * them as a shared `dataStore` under `searchSourceId` (provided here via inject). That makes - * useDoxaSearch build an IDENTICAL index → the dashboard bars produce the SAME suggestions as + * useEntitySearch build an IDENTICAL index → the dashboard bars produce the SAME suggestions as * research-map, with no second network request. The bar → composable → bus wiring below is * independent of that and is what this kit proves. */ @@ -39,7 +39,7 @@ const cfg = inject('dashboardConfig', {}) const mapboxToken = inject('mapboxToken', ref('')) // The source id the shell keyed its DataSourceManager-normalized features under // (dataStore.sources[searchSourceId].features). Passed to each GeocoderComponent -// as :data-source-id so useDoxaSearch reads that exact source — mirrors how the +// as :data-source-id so useEntitySearch reads that exact source — mirrors how the // map profiles wire :data-source-id="dataSource" (DASH-FIX-2). const searchSourceId = inject('searchSourceId', '') diff --git a/plugin-designs/research-dashboard/src/composables/useDashboardShell.js b/plugin-designs/research-dashboard/src/composables/useDashboardShell.js index 20b75145b..a828c1f58 100644 --- a/plugin-designs/research-dashboard/src/composables/useDashboardShell.js +++ b/plugin-designs/research-dashboard/src/composables/useDashboardShell.js @@ -170,11 +170,11 @@ export function useDashboardShell(config) { useHashSync(bus) // ── dataStore adapter (GAP B) — DataSourceManager-normalized (DASH-FIX-2) ── - // The header's GeocoderComponent bars (DOXA-LIB-3) run useDoxaSearch over an + // The header's GeocoderComponent bars (DOXA-LIB-3) run useEntitySearch over an // injected `dataStore` to surface local people-group / country / language / // religion / affinity-bloc / cluster / region suggestions. The MAP profiles get // that dataStore from useMapData, which normalizes each raw API row through - // DataSourceManager — producing the rich feature shape useDoxaSearch.buildIndex + // DataSourceManager — producing the rich feature shape useEntitySearch.buildIndex // reads (countryName, affinityBlock[+Label], cluster[+Label], peopleGroup[+Label], // wagfRegion/wagfBlock[+Label], religion[+Name], language, _raw). // @@ -184,7 +184,7 @@ export function useDashboardShell(config) { // never populated and the dashboard dropdown read WORSE than research-map's. // FIX: normalize the dashboard's already-loaded raw rows through the SAME // DataSourceManager the map uses (reusing the rows we already fetched — no second - // network request), so useDoxaSearch builds an IDENTICAL index and the dropdown + // network request), so useEntitySearch builds an IDENTICAL index and the dropdown // results CLONE research-map's. Keyed under the active source id + provided as // `searchSourceId` so the bars pass :data-source-id (mirrors research-map's // geocoder wiring, GeocoderComponent :data-source-id). @@ -204,8 +204,8 @@ export function useDashboardShell(config) { dsm.normalizeData(searchSourceCfg) return dsm.normalizedData }) - // Shape matches what useDoxaSearch expects: dataStore.sources[id].features. - // `features` is a getter over the computed so useDoxaSearch's reactive index + // Shape matches what useEntitySearch expects: dataStore.sources[id].features. + // `features` is a getter over the computed so useEntitySearch's reactive index // rebuilds when the rows load. const dataStore = { sources: { [searchSourceId]: { get features() { return geoFeatures.value } } } } diff --git a/plugin-designs/template-bundle/README.md b/plugin-designs/template-bundle/README.md index 52e15e68e..85ceb3e5a 100644 --- a/plugin-designs/template-bundle/README.md +++ b/plugin-designs/template-bundle/README.md @@ -1,9 +1,40 @@ -# template-bundle — copy this to start a new map +# template-bundle — copy this to start a new plugin + +**This folder is the STARTER. Copy it to make a new plugin. That's the whole idea.** Your starting point. **Copy this folder, then build your map inside the copy** — don't start from blank. It's a tiny working bundle (two trivial profiles that render a colored box, no Mapbox, no data) plus a `src/` sandbox laid out for your real code. +## In plain English (read this first) + +If you've never touched this repo, here are the only 4 words you need: + +| Word | Plain-English meaning | +|---|---| +| **plugin / bundle** | One folder = one plugin. It compiles into a **single `.js` file** you can paste onto any web page. "Bundle" and "plugin" mean the same thing here — the folder you copy. | +| **profile** | One `.vue` file inside the folder = one **screen** (one map). A bundle can hold one profile or many. You pick which screen shows at embed time with a `profile` name. | +| **root.vue** | Each profile IS a normal Vue component — it's the "root" (the top of the tree) for that one screen. The filename (minus `.vue`) is the profile's name. Everything that screen draws hangs off this one file. | +| **`src/`** | Your private sandbox — your own colors, components, and helpers. Nothing in here can affect another plugin. Shared building blocks live in `library/` (imported as `@map/…`) and you never edit those. | + +**Make a new plugin in 2 moves:** + +```bash +# 1. copy this starter to a new name +cp -r plugin-designs/template-bundle plugin-designs/my-plugin + +# 2. build (the ONE command) +bun run build # → public/doxa-maps/my-plugin/my-plugin.js (your paste-anywhere plugin) +``` + +Then rename the tag + profile strings (the "exactly four things" list below) so your copy has its +own name, and rebuild. That's it — the build auto-detects your new folder, compiles it to one `.js` +custom element, and lists it in the gallery. + +> Proven: a copy of this folder (`cp -r` + rename the 4 strings) runs `bun run build` and emits a +> working `` custom element `.js` bundle that passes every build guard. If it builds for +> the starter, it builds for your copy. + ## Two zones — know which one a file is in | Zone | What | Edit it? | diff --git a/public/.build.lock b/public/.build.lock new file mode 100644 index 000000000..ed2d19156 --- /dev/null +++ b/public/.build.lock @@ -0,0 +1 @@ +pid=2772678 started=2026-09-19T17:20:24Z by=lk10x diff --git a/public/assets/vendor/vue/vue.global.prod.js b/public/assets/vendor/vue/vue.global.prod.js deleted file mode 100644 index ff520d88c..000000000 --- a/public/assets/vendor/vue/vue.global.prod.js +++ /dev/null @@ -1,14 +0,0 @@ -/** -* vue v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,d,h,f,p,g,m;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,k=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),C=e=>e.startsWith("onUpdate:"),T=Object.assign,w=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},A=Object.prototype.hasOwnProperty,N=(e,t)=>A.call(e,t),E=Array.isArray,I=e=>"function"==typeof e,R=e=>"string"==typeof e,O=e=>"symbol"==typeof e,M=e=>null!==e&&"object"==typeof e,P=e=>(M(e)||I(e))&&I(e.then)&&I(e.catch),F=Object.prototype.toString,L=e=>R(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,$=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),D=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),V=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},j=/-\w/g,B=V(e=>e.replace(j,e=>e.slice(1).toUpperCase())),U=/\B([A-Z])/g,H=V(e=>e.replace(U,"-$1").toLowerCase()),q=V(e=>e.charAt(0).toUpperCase()+e.slice(1)),W=V(e=>e?`on${q(e)}`:""),K=(e,t)=>!Object.is(e,t),z=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},G=e=>{let t=parseFloat(e);return isNaN(t)?e:t},X=e=>{let t=R(e)?Number(e):0/0;return isNaN(t)?e:t},Q=()=>i||(i="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),Z=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function Y(e){if(E(e)){let t={};for(let n=0;n{if(e){let n=e.split(et);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ei(e){let t="";if(R(e))t=e;else if(E(e))for(let n=0;ned(e,t))}let ef=e=>!!(e&&!0===e.__v_isRef),ep=e=>R(e)?e:null==e?"":E(e)||M(e)&&(e.toString===F||!I(e.toString))?ef(e)?ep(e.value):JSON.stringify(e,eg,2):String(e),eg=(e,t)=>{let n;if(ef(t))return eg(e,t.value);if("[object Map]"===(n=t,F.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[em(t,r)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,F.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>em(e))};else{if(O(t))return em(t);let e;if(M(t)&&!E(t)&&"[object Object]"!==(e=t,F.call(e)))return String(t)}}return t},em=(e,t="")=>{var n;return O(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class ev{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&l&&(l.active?(this.parent=l,this.index=(l.scopes||(l.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e0&&0==--this._on){if(l===this)l=this.prevScope;else{let e=l;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){let t,n;for(this._active=!1,t=0,n=this.effects.length;t0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ek(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eC(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),eA(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function eT(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ew(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ew(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eM)||(e.globalVersion=eM,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!eT(e))))return;e.flags|=2;let t=e.dep,n=s,r=eN;s=e,eN=!0;try{ek(e);let n=e.fn(e._value);(0===t.version||K(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eN=r,eC(e),e.flags&=-3}}function eA(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)eA(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eN=!0,eE=[];function eI(){eE.push(eN),eN=!1}function eR(){let e=eE.pop();eN=void 0===e||e}function eO(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eM=0;class eP{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eF{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!s||!eN||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eP(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eM++,this.notify(e)}notify(e){e_++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{ex()}}}let eL=new WeakMap,e$=Symbol(""),eD=Symbol(""),eV=Symbol("");function ej(e,t,n){if(eN&&s){let t=eL.get(e);t||eL.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eF),r.map=t,r.key=n),r.track()}}function eB(e,t,n,r,i,l){let s=eL.get(e);if(!s)return void eM++;let o=e=>{e&&e.trigger()};if(e_++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&L(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eV||!O(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eV)),t){case"add":if(i)l&&o(s.get("length"));else{let t;o(s.get(e$));"[object Map]"===(t=e,F.call(t))&&o(s.get(eD))}break;case"delete":if(!i){let t;o(s.get(e$));"[object Map]"===(t=e,F.call(t))&&o(s.get(eD))}break;case"set":let a;"[object Map]"===(a=e,F.call(a))&&o(s.get(e$))}}ex()}function eU(e){let t=tv(e);return t===e?t:(ej(t,"iterate",eV),tg(e)?t:t.map(tb))}function eH(e){return ej(e=tv(e),"iterate",eV),e}function eq(e,t){return tp(e)?tf(e)?t_(tb(t)):t_(t):tb(t)}let eW={__proto__:null,[Symbol.iterator](){return eK(this,Symbol.iterator,e=>eq(this,e))},concat(...e){return eU(this).concat(...e.map(e=>E(e)?eU(e):e))},entries(){return eK(this,"entries",e=>(e[1]=eq(this,e[1]),e))},every(e,t){return eJ(this,"every",e,t,void 0,arguments)},filter(e,t){return eJ(this,"filter",e,t,e=>e.map(e=>eq(this,e)),arguments)},find(e,t){return eJ(this,"find",e,t,e=>eq(this,e),arguments)},findIndex(e,t){return eJ(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eJ(this,"findLast",e,t,e=>eq(this,e),arguments)},findLastIndex(e,t){return eJ(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eJ(this,"forEach",e,t,void 0,arguments)},includes(...e){return eX(this,"includes",e)},indexOf(...e){return eX(this,"indexOf",e)},join(e){return eU(this).join(e)},lastIndexOf(...e){return eX(this,"lastIndexOf",e)},map(e,t){return eJ(this,"map",e,t,void 0,arguments)},pop(){return eQ(this,"pop")},push(...e){return eQ(this,"push",e)},reduce(e,...t){return eG(this,"reduce",e,t)},reduceRight(e,...t){return eG(this,"reduceRight",e,t)},shift(){return eQ(this,"shift")},some(e,t){return eJ(this,"some",e,t,void 0,arguments)},splice(...e){return eQ(this,"splice",e)},toReversed(){return eU(this).toReversed()},toSorted(e){return eU(this).toSorted(e)},toSpliced(...e){return eU(this).toSpliced(...e)},unshift(...e){return eQ(this,"unshift",e)},values(){return eK(this,"values",e=>eq(this,e))}};function eK(e,t,n){let r=eH(e),i=r[t]();return r===e||tg(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}let ez=Array.prototype;function eJ(e,t,n,r,i,l){let s=eH(e),o=s!==e&&!tg(e),a=s[t];if(a!==ez[t]){let t=a.apply(e,l);return o?tb(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,eq(e,t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eG(e,t,n,r){let i=eH(e),l=i!==e&&!tg(e),s=n,o=!1;i!==e&&(l?(o=0===r.length,s=function(t,r,i){return o&&(o=!1,t=eq(e,t)),n.call(this,t,eq(e,r),i,e)}):n.length>3&&(s=function(t,r,i){return n.call(this,t,r,i,e)}));let a=i[t](s,...r);return o?eq(e,a):a}function eX(e,t,n){let r=tv(e);ej(r,"iterate",eV);let i=r[t](...n);return(-1===i||!1===i)&&tm(n[0])?(n[0]=tv(n[0]),r[t](...n)):i}function eQ(e,t,n=[]){eI(),e_++;let r=tv(e)[t].apply(e,n);return ex(),eR(),r}let eZ=y("__proto__,__v_isRef,__isVue"),eY=new Set((((Object.getOwnPropertyNames(Symbol)).filter(e=>"arguments"!==e&&"caller"!==e)).map(e=>Symbol[e])).filter(O));function e0(e){O(e)||(e=String(e));let t=tv(this);return ej(t,"has",e),t.hasOwnProperty(e)}class e1{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?ta:to:i?ts:tl).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eW[t]))return e;if("hasOwnProperty"===t)return e0}let s=Reflect.get(e,t,tS(e)?e:n);if((O(t)?eY.has(t):eZ(t))||(r||ej(e,"get",t),i))return s;if(tS(s)){let e=l&&L(t)?s:s.value;return r&&M(e)?td(e):e}return M(s)?r?td(s):tc(s):s}}class e2 extends e1{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],l=E(e)&&L(t);if(!this._isShallow){let e=tp(i);if(tg(n)||tp(n)||(i=tv(i),n=tv(n)),!l&&tS(i)&&!tS(n))if(e)return!0;else return i.value=n,!0}let s=l?Number(t)e;function e7(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function te(e,t){let n,r=(T(n={get(n){let r=this.__v_raw,i=tv(r),l=tv(n);e||(K(n,l)&&ej(i,"get",n),ej(i,"get",l));let{has:s}=Reflect.getPrototypeOf(i),o=t?e9:e?t_:tb;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||ej(tv(t),"iterate",e$),t.size},has(t){let n=this.__v_raw,r=tv(n),i=tv(t);return e||(K(t,i)&&ej(r,"has",t),ej(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tv(l),o=t?e9:e?t_:tb;return e||ej(s,"iterate",e$),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}},e?{add:e7("add"),set:e7("set"),delete:e7("delete"),clear:e7("clear")}:{add(e){let n=tv(this),r=Reflect.getPrototypeOf(n),i=tv(e),l=t||tg(e)||tp(e)?e:i;return r.has.call(n,l)||K(e,l)&&r.has.call(n,e)||K(i,l)&&r.has.call(n,i)||(n.add(l),eB(n,"add",l,l)),this},set(e,n){t||tg(n)||tp(n)||(n=tv(n));let r=tv(this),{has:i,get:l}=Reflect.getPrototypeOf(r),s=i.call(r,e);s||(e=tv(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?K(n,o)&&eB(r,"set",e,n):eB(r,"add",e,n),this},delete(e){let t=tv(this),{has:n,get:r}=Reflect.getPrototypeOf(t),i=n.call(t,e);i||(e=tv(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eB(t,"delete",e,void 0),l},clear(){let e=tv(this),t=0!==e.size,n=e.clear();return t&&eB(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i,l=this.__v_raw,s=tv(l),o="[object Map]"===(i=s,F.call(i)),a="entries"===r||r===Symbol.iterator&&o,c=l[r](...n),u=t?e9:e?t_:tb;return e||ej(s,"iterate","keys"===r&&o?eD:e$),T(Object.create(c),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}}})}}),n);return(t,n,i)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(N(r,n)&&n in t?r:t,n,i)}let tt={get:te(!1,!1)},tn={get:te(!1,!0)},tr={get:te(!0,!1)},ti={get:te(!0,!0)},tl=new WeakMap,ts=new WeakMap,to=new WeakMap,ta=new WeakMap;function tc(e){return tp(e)?e:th(e,!1,e6,tt,tl)}function tu(e){return th(e,!1,e8,tn,ts)}function td(e){return th(e,!0,e4,tr,to)}function th(e,t,n,r,i){let l;if(!M(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let s=i.get(e);if(s)return s;let o=function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((l=e,F.call(l)).slice(8,-1));if(0===o)return e;let a=new Proxy(e,2===o?r:n);return i.set(e,a),a}function tf(e){return tp(e)?tf(e.__v_raw):!!(e&&e.__v_isReactive)}function tp(e){return!!(e&&e.__v_isReadonly)}function tg(e){return!!(e&&e.__v_isShallow)}function tm(e){return!!e&&!!e.__v_raw}function tv(e){let t=e&&e.__v_raw;return t?tv(t):e}function ty(e){return!N(e,"__v_skip")&&Object.isExtensible(e)&&J(e,"__v_skip",!0),e}let tb=e=>M(e)?tc(e):e,t_=e=>M(e)?td(e):e;function tS(e){return!!e&&!0===e.__v_isRef}function tx(e){return tC(e,!1)}function tk(e){return tC(e,!0)}function tC(e,t){return tS(e)?e:new tT(e,t)}class tT{constructor(e,t){this.dep=new eF,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tv(e),this._value=t?e:tb(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tg(e)||tp(e);K(e=n?e:tv(e),t)&&(this._rawValue=e,this._value=n?e:tb(e),this.dep.trigger())}}function tw(e){return tS(e)?e.value:e}let tA={get:(e,t,n)=>"__v_raw"===t?e:tw(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return tS(i)&&!tS(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tN(e){return tf(e)?e:new Proxy(e,tA)}class tE{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new eF,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tI(e){return new tE(e)}class tR{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=O(t)?t:String(t),this._raw=tv(e);let r=!0,i=e;if(!E(e)||O(this._key)||!L(this._key))do r=!tm(i)||tg(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=tw(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&tS(this._raw[this._key])){let t=this._object[this._key];if(tS(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eL.get(e))&&n.get(t)}}class tO{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}class tM{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eF(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eM-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return eS(this,!0),!0}get value(){let e=this.dep.track();return ew(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tP={},tF=new WeakMap;function tL(e,t=!1,n=g){if(n){let t=tF.get(n);t||tF.set(n,t=[]),t.push(e)}}function t$(e,t=1/0,n){if(t<=0||!M(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,tS(e))t$(e.value,t,n);else if(E(e))for(let r=0;r{t$(e,t,n)});else{let r;if("[object Object]"===(r=e,F.call(r))){for(let r in e)t$(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&t$(e[r],t,n)}}}return e}function tD(e,t,n,r){try{return r?e(...r):e()}catch(e){tj(e,t,n)}}function tV(e,t,n,r){if(I(e)){let i=tD(e,t,n,r);return i&&P(i)&&i.catch(e=>{tj(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l=t0(n)?tB.push(e):tB.splice(function(e){let t=tU+1,n=tB.length;for(;t>>1,i=tB[r],l=t0(i);lt0(e)-t0(t));if(tH.length=0,tq){for(let t=0;tnull==e.id?2&e.flags?-1:1/0:e.id,t1=null,t2=null;function t3(e){let t=t1;return t1=e,t2=e&&e.type.__scopeId||null,t}function t6(e,t=t1,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&ia(-1);let l=t3(t),s=ir.length;try{i=e(...n)}finally{for(let e=ir.length;e>s;e--)is();t3(l),r._d&&ia(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function t4(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;s1)return n&&I(t)?t.call(r&&r.proxy):t}}let t9=Symbol.for("v-scx");function t7(e,t){return ne(e,null,{flush:"sync"})}function ne(e,t,n=b){let{flush:r}=n,i=T({},n),s=iE;i.call=(e,t,n)=>tV(e,s,t,n);let o=!1;return"post"===r?i.scheduler=e=>{rz(e,s&&s.suspense)}:"sync"!==r&&(o=!0,i.scheduler=(e,t)=>{t?e():tG(e)}),i.augmentJob=e=>{t&&(e.flags|=4),o&&(e.flags|=2,s&&(e.id=s.uid,e.i=s))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:d,augmentJob:h,call:f}=n,p=e=>c?e:tg(e)||!1===c||0===c?t$(e,1):t$(e),m=!1,y=!1;if(tS(e)?(i=()=>e.value,m=tg(e)):tf(e)?(i=()=>p(e),m=!0):E(e)?(y=!0,m=e.some(e=>tf(e)||tg(e)),i=()=>e.map(e=>tS(e)?e.value:tf(e)?p(e):I(e)?f?f(e,2):e():void 0)):i=I(e)?t?f?()=>f(e,2):e:()=>{if(s){eI();try{s()}finally{eR()}}let t=g;g=r;try{return f?f(e,3,[o]):e(o)}finally{g=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>t$(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&w(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{let n=e(...t);return x(),n}}let k=y?Array(e.length).fill(tP):tP,C=e=>{if(1&r.flags&&(r.dirty||e))if(t){let n=r.run();if(e||c||m||(y?n.some((e,t)=>K(e,k[t])):K(n,k))){s&&s();let e=g;g=r;try{let e=[n,k===tP?void 0:y&&k[0]===tP?[]:k,o];k=n,f?f(t,3,e):t(...e)}finally{g=e}}}else r.run()};return h&&h(C),(r=new eb(i)).scheduler=d?()=>d(C,!1):C,o=e=>tL(e,!1,r),s=r.onStop=()=>{let e=tF.get(r);if(e){if(f)f(e,4);else for(let t of e)t();tF.delete(r)}},t?a?C(!0):k=r.run():d?d(C.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,i)}function nt(e,t,n){let r,i=this.proxy,l=R(e)?e.includes(".")?nn(i,e):()=>i[e]:e.bind(i,i);I(t)?r=t:(r=t.handler,n=t);let s=iR(this),o=ne(l,r.bind(i),n);return s(),o}function nn(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;ee&&(e.disabled||""===e.disabled),ns=e=>"u">typeof SVGElement&&e instanceof SVGElement,no=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,na=(e,t)=>{let n=e&&e.to;return R(n)?t?t(n):null:n};function nc(e,t,n,{o:{insert:r},m:i},l=2){0===l&&r(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:c,props:u}=e,d=2===l;if(d&&r(s,t,n),!nr.has(e)&&(!d||nl(u))&&16&a)for(let e=0;e{e.isMounted=!0}),n4(()=>{e.isUnmounting=!0}),e}let ng=[Function,Array],nm={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ng,onEnter:ng,onAfterEnter:ng,onEnterCancelled:ng,onBeforeLeave:ng,onLeave:ng,onAfterLeave:ng,onLeaveCancelled:ng,onBeforeAppear:ng,onAppear:ng,onAfterAppear:ng,onAppearCancelled:ng},nv=e=>{let t=e.subTree;return t.component?nv(t.component):t};function ny(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==ie){t=n;break}}return t}let nb={name:"BaseTransition",props:nm,setup(e,{slots:t}){let n=iI(),r=np();return()=>{let i=t.default&&nT(t.default(),!0),l=i&&i.length?ny(i):n.subTree?iS():void 0;if(!l)return;let s=tv(e),{mode:o}=s;if(r.isLeaving)return nx(l);let a=nk(l);if(!a)return nx(l);let c=nS(a,s,r,n,e=>c=e);a.type!==ie&&nC(a,c);let u=n.subTree&&nk(n.subTree);if(u&&u.type!==ie&&!ih(u,a)&&nv(n).type!==ie){let e=nS(u,s,r,n);if(nC(u,e),"out-in"===o&&a.type!==ie)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nx(l);"in-out"===o&&a.type!==ie?e.delayLeave=(e,t,n)=>{n_(r,u)[String(u.key)]=u,e[nh]=()=>{t(),e[nh]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function n_(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function nS(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:h,onLeave:f,onAfterLeave:p,onLeaveCancelled:g,onBeforeAppear:m,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=n_(n,e),k=(e,t)=>{e&&tV(e,r,9,t)},C=(e,t)=>{let n=t[1];k(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=m||a;t[nh]&&t[nh](!0);let i=x[S];i&&ih(e,i)&&i.el[nh]&&i.el[nh](),k(r,[t])},enter(t){if(x[S]===e)return;let r=c,i=u,s=d;if(!n.isMounted)if(!l)return;else r=y||c,i=b||u,s=_||d;let o=!1;t[nf]=e=>{o||(o=!0,e?k(s,[t]):k(i,[t]),T.delayedLeave&&T.delayedLeave(),t[nf]=void 0)};let a=t[nf].bind(null,!1);r?C(r,[t,a]):a()},leave(t,r){let i=String(e.key);if(t[nf]&&t[nf](!0),n.isUnmounting)return r();k(h,[t]);let l=!1;t[nh]=n=>{l||(l=!0,r(),n?k(g,[t]):k(p,[t]),t[nh]=void 0,x[i]===e&&delete x[i])};let s=t[nh].bind(null,!1);x[i]=e,f?C(f,[t,s]):s()},clone(e){let l=nS(e,t,n,r,i);return i&&i(l),l}};return T}function nx(e){if(nK(e))return(e=ib(e)).children=null,e}function nk(e){if(!nK(e))return e.type.__isTeleport&&e.children?ny(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&I(n.default))return n.default()}}function nC(e,t){if(6&e.shapeFlag&&e.component){e.transition=t;let n=e.component.subTree;nC(n.type.__isTeleport&&nk(n)||n,t)}else 128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nT(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enI(e,t&&(E(t)?t[l]:t),n,r,i));if(nq(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nI(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?ij(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,d=o.setupState,h=tv(d),f=d===b?x:e=>!nN(u,e)&&N(h,e),p=(e,t)=>!(t&&nN(u,t));if(null!=c&&c!==a&&(nR(t),R(c)?(u[c]=null,f(c)&&(d[c]=null)):tS(c)&&(p(c,t.k)&&(c.value=null),t.k&&(u[t.k]=null))),I(a))tD(a,o,12,[s,u]);else{let t=R(a),r=tS(a);if(t||r){let o=()=>{if(e.f){let n=t?f(a)?d[a]:u[a]:p()||!e.k?a.value:u[e.k];if(i)E(n)&&w(n,l);else if(E(n))n.includes(l)||n.push(l);else if(t)u[a]=[l],f(a)&&(d[a]=u[a]);else{let t=[l];p(a,e.k)&&(a.value=t),e.k&&(u[e.k]=t)}}else t?(u[a]=s,f(a)&&(d[a]=s)):r&&(p(a,e.k)&&(a.value=s),e.k&&(u[e.k]=s))};if(s){let t=()=>{o(),nE.delete(e)};t.id=-1,nE.set(e,t),rz(t,n)}else nR(e),o()}}}function nR(e){let t=nE.get(e);t&&(t.flags|=8,nE.delete(e))}let nO=!1,nM=()=>{nO||(console.error("Hydration completed but contains mismatches."),nO=!0)},nP=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nF=e=>8===e.nodeType;function nL(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nF(n)&&"["===n.data,x=()=>p(n,r,o,c,b,S),{type:k,ref:C,shapeFlag:T,patchFlag:w}=r,A=n.nodeType;r.el=n,-2===w&&(_=!1,r.dynamicChildren=null);let N=null;switch(k){case r7:3!==A?""===r.children?(a(r.el=i(""),s(n),n),N=n):N=x():(n.data!==r.children&&(nM(),n.data=r.children),N=l(n));break;case ie:y(n)?(N=l(n),m(r.el=n.content.firstChild,n,o)):N=8!==A||S?x():l(n);break;case it:if(S&&(A=(n=l(n)).nodeType),1===A||3===A){N=n;let e=!r.children.length;for(let t=0;t{s=s||!!t.dynamicChildren;let{type:a,dynamicProps:c,props:u,patchFlag:d,shapeFlag:f,dirs:p,transition:g}=t,b="input"===a||"option"===a,_=!!c;if(b||_||-1!==d){let a;p&&t4(t,null,n,"created");let T=!1;if(y(e)){T=rZ(null,g)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(T){let e=r.getAttribute("class");e&&(r.$cls=e),g.beforeEnter(r)}m(r,e,n),t.el=e=r}if(16&f&&!(u&&(u.innerHTML||u.textContent))){let r=h(e.firstChild,t,e,n,i,l,s);for(r&&!nj(e,1)&&nM();r;){let e=r;r=r.nextSibling,o(e)}}else if(8&f){let n=t.children;` -`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,` -`)&&(nj(e,0)||nM(),e.textContent=t.children)}if(u){if(b||_||!s||48&d){let t=e.tagName.includes("-"),i=e.namespaceURI.includes("svg")?"svg":e.namespaceURI.includes("MathML")?"mathml":void 0;for(let l in u)if(b&&(l.endsWith("value")||"indeterminate"===l)||k(l)&&!$(l)||"."===l[0]||t&&!$(l)||c&&c.includes(l)){var S,x,C;if(S=e,x=l,C=u[l],n$.has(x)&&S.getAttribute(x)===(null==C?null:`${C}`))continue;r(e,l,null,u[l],i,n)}}else if(u.onClick)r(e,"onClick",null,u.onClick,void 0,n);else if(4&d&&tf(u.style))for(let e in u.style)u.style[e]}(a=u&&u.onVnodeBeforeMount)&&iw(a,n,t),p&&t4(t,null,n,"beforeMount"),((a=u&&u.onVnodeMounted)||p||T)&&r8(()=>{a&&iw(a,n,t),T&&g.enter(e),p&&t4(t,null,n,"mounted")},i)}return e.nextSibling},h=(e,t,r,s,o,c,d)=>{d=d||!!t.dynamicChildren;let h=t.children,f=h.length,p=!1;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=s(e),f=h(l(e),t,d,n,r,i,o);return f&&nF(f)&&"]"===f.data?l(t.anchor=f):(nM(),a(t.anchor=c("]"),d,f),f)},p=(e,t,r,i,a,c)=>{var u,d,h;if(u=e,d=t,nj(u.parentElement,1)||1===(h=u).nodeType&&nB(h.getAttribute(nD),1)||function({props:e}){let t=e&&e[nD];return"string"==typeof t&&nB(t,1)}(d)||nM(),t.el=null,c){let t=g(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let f=l(e),p=s(e);return o(e),n(null,t,p,f,r,i,nP(p),a),r&&(r.vnode.el=t.el,rP(r,t.el)),f},g=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nF(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},m=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),tY(),t._vnode=e;return}u(t.firstChild,e,null,null,null),tY(),t._vnode=e},u]}let n$=new Set(["src","srcset","href","poster"]),nD="data-allow-mismatch",nV={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nj(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nD);)e=e.parentElement;return nB(e&&e.getAttribute(nD),t)}function nB(e,t){if(null==e)return!1;{if(""===e)return!0;let n=e.split(",");return!!(0===t&&n.includes("children"))||n.includes(nV[t])}}let nU=Q().requestIdleCallback||(e=>setTimeout(e,1)),nH=Q().cancelIdleCallback||(e=>clearTimeout(e)),nq=e=>!!e.type.__asyncLoader;function nW(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=iv(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nK=e=>e.type.__isKeepAlive;function nz(e,t){let n;if(E(e))return e.some(e=>nz(e,t));if(R(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,F.call(n))&&(e.lastIndex=0,e.test(t))}function nJ(e,t){nX(e,"a",t)}function nG(e,t){nX(e,"da",t)}function nX(e,t,n=iE){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nY(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nK(e.parent.vnode)&&function(e,t,n,r){let i=nY(t,e,r,!0);n8(()=>{w(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nQ(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nZ(e){return 128&e.shapeFlag?e.ssContent:e}function nY(e,t,n=iE,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eI();let i=iR(n),l=tV(t,n,e,r);return i(),eR(),l});return r?i.unshift(l):i.push(l),l}}let n0=e=>(t,n=iE)=>{iP&&"sp"!==e||nY(e,(...e)=>t(...e),n)},n1=n0("bm"),n2=n0("m"),n3=n0("bu"),n6=n0("u"),n4=n0("bum"),n8=n0("um"),n5=n0("sp"),n9=n0("rtg"),n7=n0("rtc");function re(e,t=iE){nY("ec",e,t)}let rt="components",rn=Symbol.for("v-ndc");function rr(e,t,n=!0,r=!1){let i=t1||iE;if(i){let n=i.type;if(e===rt){let e=iB(n,!1);if(e&&(e===t||e===B(t)||e===q(B(t))))return n}let l=ri(i[e]||n[e],t)||ri(i.appContext[e],t);return!l&&r?n:l}}function ri(e,t){return e&&(e[t]||e[B(t)]||e[q(B(t))])}let rl=e=>e?iM(e)?ij(e):rl(e.parent):null,rs=T(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>rl(e.parent),$root:e=>rl(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>rp(e),$forceUpdate:e=>e.f||(e.f=()=>{tG(e.update)}),$nextTick:e=>e.n||(e.n=tJ.bind(e.proxy)),$watch:e=>nt.bind(e)}),ro=(e,t)=>e!==b&&!e.__isScriptSetup&&N(e,t),ra={get({_:e},t){let n,r;if("__v_skip"===t)return!0;let{ctx:i,setupState:l,data:s,props:o,accessCache:a,type:c,appContext:u}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return s[t];case 4:return i[t];case 3:return o[t]}else{if(ro(l,t))return a[t]=1,l[t];if(s!==b&&N(s,t))return a[t]=2,s[t];if(N(o,t))return a[t]=3,o[t];if(i!==b&&N(i,t))return a[t]=4,i[t];rh&&(a[t]=0)}}let d=rs[t];return d?("$attrs"===t&&ej(e.attrs,"get",""),d(e)):(n=c.__cssModules)&&(n=n[t])?n:i!==b&&N(i,t)?(a[t]=4,i[t]):N(r=u.config.globalProperties,t)?r[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return ro(i,t)?(i[t]=n,!0):r!==b&&N(r,t)?(r[t]=n,!0):!N(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:l,type:s}},o){let a;return!!(n[o]||e!==b&&"$"!==o[0]&&N(e,o)||ro(t,o)||N(l,o)||N(r,o)||N(rs,o)||N(i.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:N(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rc=T({},ra,{get(e,t){if(t!==Symbol.unscopables)return ra.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!Z(t)});function ru(e){let t=iI();return t.setupContext||(t.setupContext=iV(t))}function rd(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let rh=!0;function rf(e,t,n){tV(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function rp(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rg(t,e,o,!0)),rg(t,n,o)):t=n,M(n)&&s.set(n,t),t}function rg(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rg(e,l,n,!0),i&&i.forEach(t=>rg(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=rm[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let rm={data:rv,props:rS,emits:rS,methods:r_,computed:r_,beforeCreate:rb,created:rb,beforeMount:rb,mounted:rb,beforeUpdate:rb,updated:rb,beforeDestroy:rb,beforeUnmount:rb,destroyed:rb,unmounted:rb,activated:rb,deactivated:rb,errorCaptured:rb,serverPrefetch:rb,components:r_,directives:r_,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rb(e[r],t[r]);return n},provide:rv,inject:function(e,t){return r_(ry(e),ry(t))}};function rv(e,t){return t?e?function(){return T(I(e)?e.call(this,this):e,I(t)?t.call(this,this):t)}:t:e}function ry(e){if(E(e)){let t={};for(let n=0;n"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${B(t)}Modifiers`]||e[`${H(t)}Modifiers`];function rw(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rT(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>R(e)?e.trim():e)),o.number&&(l=l.map(G)));let a=i[r=W(t)]||i[r=W(B(t))];!a&&s&&(a=i[r=W(H(t))]),a&&tV(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tV(c,e,6,l)}}let rA=new WeakMap;function rN(e,t){return!!e&&!!k(t)&&(N(e,(t="Once"===(t=t.slice(2))?t:t.replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||N(e,H(t))||N(e,t))}function rE(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:d,renderCache:h,props:f,data:p,setupState:g,ctx:m,inheritAttrs:y}=e,b=t3(e);try{if(4&i.shapeFlag){let e=s||l;t=ix(d.call(e,e,h,f,g,p,m)),n=c}else t=ix(r.length>1?r(f,{attrs:c,slots:a,emit:u}):r(f,null)),n=r.props?c:rI(c)}catch(n){ir.length=0,tj(n,e,1),t=iv(ie)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(C)&&(n=rR(n,o)),_=ib(_,n,!1,!0))}return i.dirs&&((_=ib(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nC(_.type.__isTeleport&&nk(_)||_,i.transition),t=_,t3(b),t}let rI=e=>{let t;for(let n in e)("class"===n||"style"===n||k(n))&&((t||(t={}))[n]=e[n]);return t},rR=(e,t)=>{let n={};for(let r in e)C(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function rO(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;iObject.getPrototypeOf(e)===rF;function r$(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if($(a))continue;let u=t[a];l&&N(l,c=B(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rN(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tv(n),r=i||b;for(let i=0;i"_"===e||"_ctx"===e||"$stable"===e,rU=e=>E(e)?e.map(ix):[ix(e)],rH=(e,t,n)=>{if(t._n)return t;let r=t6((...e)=>rU(t(...e)),n);return r._c=!1,r},rq=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rB(n))continue;let i=e[n];if(I(i))t[n]=rH(n,i,r);else if(null!=i){let e=rU(i);t[n]=()=>e}}},rW=(e,t)=>{let n=rU(t);e.slots.default=()=>n},rK=(e,t,n)=>{for(let r in t)(n||!rB(r))&&(e[r]=t[r])},rz=r8;function rJ(e){return rG(e,nL)}function rG(e,t){var n;let r,i;Q().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:d,setText:h,setElementText:f,parentNode:p,nextSibling:g,setScopeId:m=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ih(e,t)&&(r=es(e),et(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:d}=t;switch(c){case r7:k(e,t,n,r);break;case ie:C(e,t,n,r);break;case it:null==e&&w(t,n,r,s);break;case r9:j(e,t,n,r,i,l,s,o,a);break;default:1&d?A(e,t,n,r,i,l,s,o,a):6&d?U(e,t,n,r,i,l,s,o,a):64&d?c.process(e,t,n,r,i,l,s,o,a,ec):128&d&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nI(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nI(e.ref,null,l,e,!0)},k=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&h(n,t.children)}},C=(e,t,n,r)=>{null==e?l(t.el=d(t.children||""),n,r):t.el=e.el},w=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},A=(e,t,n,r,i,l,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)R(t,n,r,i,l,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),L(e,t,i,l,s,o,a)}finally{n&&n._endPatch()}}},R=(e,t,n,r,i,s,c,u)=>{let d,h,{props:p,shapeFlag:g,transition:m,dirs:y}=e;if(d=e.el=a(e.type,s,p&&p.is,p),8&g?f(d,e.children):16&g&&F(e.children,d,null,r,i,rX(e,s),c,u),y&&t4(e,null,r,"created"),O(d,e,e.scopeId,c,r),p){for(let e in p)"value"===e||$(e)||o(d,e,null,p[e],s,r);"value"in p&&o(d,"value",null,p.value,s),(h=p.onVnodeBeforeMount)&&iw(h,r,e)}y&&t4(e,null,r,"beforeMount");let b=rZ(i,m);b&&m.beforeEnter(d),l(d,t,n),((h=p&&p.onVnodeMounted)||b||y)&&rz(()=>{h&&iw(h,r,e),b&&m.enter(d),y&&t4(e,null,r,"mounted")},i)},O=(e,t,n,r,i)=>{if(n&&m(e,n),r)for(let t=0;t{for(let c=a;c{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:h}=t;u|=16&e.patchFlag;let p=e.props||b,g=t.props||b;if(n&&rQ(n,!1),(a=g.onVnodeBeforeUpdate)&&iw(a,n,t,e),h&&t4(t,e,n,"beforeUpdate"),n&&rQ(n,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(u=0,s=!1,d=null),(p.innerHTML&&null==g.innerHTML||p.textContent&&null==g.textContent)&&f(c,""),d?D(e.dynamicChildren,d,c,n,r,rX(t,i),l):s||X(e,t,c,null,n,r,rX(t,i),l,!1),u>0){if(16&u)V(c,p,g,n,i);else if(2&u&&p.class!==g.class&&o(c,"class",null,g.class,i),4&u&&o(c,"style",p.style,g.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&iw(a,n,t,e),h&&t4(t,e,n,"updated")},r)},D=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==b)for(let l in t)$(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if($(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},j=(e,t,n,r,i,s,o,a,u)=>{let d=t.el=e?e.el:c(""),h=t.anchor=e?e.anchor:c(""),{patchFlag:f,dynamicChildren:p,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(l(d,n,r),l(h,n,r),F(t.children||[],n,h,i,s,o,a,u)):f>0&&64&f&&p&&e.dynamicChildren&&e.dynamicChildren.length===p.length?(D(e.dynamicChildren,p,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rY(e,t,!0)):X(e,t,n,h,i,s,o,a,u)},U=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):q(t,n,r,i,l,s,a):W(e,t,a)},q=(e,t,n,r,i,l,s)=>{var o,a,c;let d,h,f,p=(o=e,a=r,c=i,d=o.type,h=(a?a.appContext:o.appContext)||iA,(f={uid:iN++,vnode:o,type:d,parent:a,appContext:h,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ev(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:a?a.provides:Object.create(h.provides),ids:a?a.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rV:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!I(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return M(t)&&i.set(t,_),_;if(E(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),M(t)&&i.set(t,o),o):(M(t)&&i.set(t,null),null)}(d,h),emit:null,emitted:null,propsDefaults:b,inheritAttrs:d.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:c,suspenseId:c?c.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null}).ctx={_:f},f.root=a?a.root:f,f.emit=rw.bind(null,f),o.ce&&o.ce(f),e.component=f);if(nK(e)&&(p.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iM(e);!function(e,t,n,r=!1){let i={},l=Object.create(rF);for(let n in e.propsDefaults=Object.create(null),r$(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tu(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t);var s=n||t;let o=e.slots=Object.create(rF);if(32&e.vnode.shapeFlag){let e=i._;e?(rK(o,i,s),s&&J(o,"_",e,!0)):rq(i,o)}else i&&rW(e,i);l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ra);let{setup:r}=n;if(r){eI();let n=e.setupContext=r.length>1?iV(e):null,i=iR(e),l=tD(r,e,0,[e.props,n]),s=P(l);if(eR(),i(),(s||e.sp)&&!nq(e)&&nA(e),s){if(l.then(iO,iO),t)return l.then(n=>{u(!0);try{iF(e,n,t)}finally{u(!1)}}).catch(t=>{tj(t,e,0)});e.asyncDep=l}else iF(e,l,t)}else i$(e,t)}(e,t),t&&u(!1)}(p,!1,s),p.asyncDep){if(i&&i.registerDep(p,K,s),!e.el){let r=p.subTree=iv(ie);C(null,r,t,n),e.placeholder=r.el}}else K(p,e,t,n,i,l,s)},W=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||rO(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?rO(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t{e.scope.on();let a=e.effect=new eb(()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:a,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,G(e,n,o)),t.asyncDep.then(()=>{rz(()=>{e.isUnmounted||c()},l)});return}}let d=n;rQ(e,!1),n?(n.el=u.el,G(e,n,o)):n=u,r&&z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&iw(t,a,n,u),rQ(e,!0);let h=rE(e),f=e.subTree;e.subTree=h,x(f,h,p(f.el),es(f),e,l,s),n.el=h.el,null===d&&rP(e,h.el),i&&rz(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rz(()=>iw(t,a,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:d,parent:h,root:f,type:p}=e,g=nq(t);if(rQ(e,!1),u&&z(u),!g&&(o=c&&c.onVnodeBeforeMount)&&iw(o,h,t),rQ(e,!0),a&&i){let t=()=>{e.subTree=rE(e),i(a,e.subTree,e,l,null)};g&&p.__asyncHydrate?p.__asyncHydrate(a,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let i=e.subTree=rE(e);x(null,i,n,r,e,l,s),t.el=i.el}if(d&&rz(d,l),!g&&(o=c&&c.onVnodeMounted)){let e=t;rz(()=>iw(o,h,e),l)}(256&t.shapeFlag||h&&nq(h.vnode)&&256&h.vnode.shapeFlag)&&e.a&&rz(e.a,l),e.isMounted=!0,t=n=r=null}});e.scope.off();let c=e.update=a.run.bind(a),u=e.job=a.runIfDirty.bind(a);u.i=e,u.id=e.uid,a.scheduler=()=>tG(u),rQ(e,!0),c()},G=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tv(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rK(i,t,n):(l=!t.$stable,rq(t,i)),s=t}else t&&(rW(e,t),s={default:1});if(l)for(let e in i)rB(e)||null!=s[e]||delete i[e]})(e,t.children,n),eI(),tZ(e),eR()},X=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:h,shapeFlag:p}=t;if(h>0){if(128&h)return void Y(c,d,n,r,i,l,s,o,a);else if(256&h)return void Z(c,d,n,r,i,l,s,o,a)}8&p?(16&u&&el(c,i,l),d!==c&&f(n,d)):16&u?16&p?Y(c,d,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&f(n,""),16&p&&F(d,n,r,i,l,s,o,a))},Z=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,d=t.length,h=Math.min(u,d);for(c=0;cd?el(e,i,l,!0,!1,h):F(t,n,r,i,l,s,o,a,h)},Y=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,d=e.length-1,h=u-1;for(;c<=d&&c<=h;){let r=e[c],u=t[c]=a?ik(t[c]):ix(t[c]);if(ih(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=d&&c<=h;){let r=e[d],c=t[h]=a?ik(t[h]):ix(t[h]);if(ih(r,c))x(r,c,n,null,i,l,s,o,a);else break;d--,h--}if(c>d){if(c<=h){let e=h+1,d=eh)for(;c<=d;)et(e[c],i,l,!0),c++;else{let f,p=c,g=c,m=new Map;for(c=g;c<=h;c++){let e=t[c]=a?ik(t[c]):ix(t[c]);null!=e.key&&m.set(e.key,c)}let y=0,b=h-g+1,S=!1,k=0,C=Array(b);for(c=0;c=b){et(u,i,l,!0);continue}if(null!=u.key)r=m.get(u.key);else for(f=g;f<=h;f++)if(0===C[f-g]&&ih(u,t[f])){r=f;break}void 0===r?et(u,i,l,!0):(C[r-g]=c+1,r>=k?k=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t>1]]0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(C):_;for(f=T.length-1,c=b-1;c>=0;c--){let e=g+c,d=t[e],h=t[e+1],p=e+1{let{el:o,type:a,transition:c,children:u,shapeFlag:d}=e;if(6&d)return void ee(e.component.subTree,t,n,r);if(128&d)return void e.suspense.move(t,n,r);if(64&d)return void a.move(e,t,n,ec);if(a===r9){l(o,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=g(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&d&&c)if(0===r)c.persisted&&!o[nh]?l(o,t,n):(c.beforeEnter(o),l(o,t,n),rz(()=>c.enter(o),i));else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},d=()=>{let e=o._isLeaving||!!o[nh];o._isLeaving&&o[nh](!0),c.persisted&&!e?u():r(o,()=>{u(),a&&a()})};i?i(o,u,d):d()}else l(o,t,n)},et=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:d,patchFlag:h,dirs:f,cacheIndex:p,memo:g}=e;if(-2===h&&(i=!1),null!=a&&(eI(),nI(a,null,n,e,!0),eR()),null!=p&&(t.renderCache[p]=void 0),256&d)return void t.ctx.deactivate(e);let m=1&d&&f,y=!nq(e);if(y&&(l=o&&o.onVnodeBeforeUnmount)&&iw(l,t,e),6&d)ei(e.component,n,r);else{if(128&d)return void e.suspense.unmount(n,r);m&&t4(e,null,t,"beforeUnmount"),64&d?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==r9||h>0&&64&h)?el(u,t,n,!1,!0):(s===r9&&384&h||!i&&16&d)&&el(c,t,n),r&&en(e)}let b=null!=g&&null==p;(y&&(l=o&&o.onVnodeUnmounted)||m||b)&&rz(()=>{l&&iw(l,t,e),m&&t4(e,null,t,"unmounted"),b&&(e.el=null)},n)},en=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===r9)return void er(n,r);if(t===it)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=g(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;r0(a),r0(c),r&&z(r),i.stop(),l&&(l.flags|=8,et(s,e,t,n)),o&&rz(o,t),rz(()=>{e.isUnmounted=!0},t)},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=g(e.anchor||e.el),n=t&&t[ni];return n?g(n):t},eo=!1,ea=(e,t,n)=>{let r;null==e?t._vnode&&(et(t._vnode,null,null,!0),r=t._vnode.component):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,tZ(r),tY(),eo=!1)},ec={p:x,um:et,m:ee,r:en,mt:q,mc:F,pc:X,pbc:D,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){I(e)||(e=T({},e)),null==t||M(t)||(t=null);let r=rx(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:rk++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:iW,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&I(e.install)?(i.add(e),e.install(o,...t)):I(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||iv(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,ij(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tV(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=rC;rC=o;try{return e()}finally{rC=t}}};return o})}}function rX({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rQ({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rZ(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rY(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;ee.__isSuspense,r2=0;function r3(e,t){let n=e.props&&e.props[t];I(n)&&n()}function r6(e,t,n,r,i,l,s,o,a,c,u=!1){var d;let h,f,{p:p,m:g,um:m,n:y,o:{parentNode:b,remove:_}}=c,S=null!=(h=(d=e).props&&d.props.suspensible)&&!1!==h;S&&t&&t.pendingBranch&&(f=t.pendingId,t.deps++);let x=e.props?X(e.props.timeout):void 0,k=l,C={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:r2++,timeout:"number"==typeof x?x:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u,isInFallback:d}=C,h=!1;if(C.isHydrating)C.isHydrating=!1;else if(!e){h=i&&s.transition&&"out-in"===s.transition.mode;let e=!1;h&&(i.transition.afterLeave=()=>{o===C.pendingId&&(g(s,u,l!==k||e?l:y(i),0),tQ(a),d&&r.ssFallback&&(r.ssFallback.el=null))}),i&&!C.isFallbackMountPending&&(b(i.el)===u&&(l=y(i),e=!0),m(i,c,C,!0),!h&&d&&r.ssFallback&&rz(()=>r.ssFallback.el=null,C)),h||g(s,u,l,0)}C.isFallbackMountPending=!1,r5(C,s),C.pendingBranch=null,C.isInFallback=!1;let p=C.parent,_=!1;for(;p;){if(p.pendingBranch){for(let e=0;e{if(C.isFallbackMountPending=!1,!C.isInFallback)return;let e=C.vnode.ssFallback;p(null,e,i,s,r,null,l,o,a),r5(C,e)},u=e.transition&&"out-in"===e.transition.mode;u&&(C.isFallbackMountPending=!0,n.transition.afterLeave=c),C.isInFallback=!0,m(n,r,null,!0),u||c()},move(e,t,n){C.activeBranch&&g(C.activeBranch,e,t,n),C.container=e},next:()=>C.activeBranch&&y(C.activeBranch),registerDep(e,t,n){let r=!!C.pendingBranch;r&&C.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tj(t,e,0)}).then(l=>{if(e.isUnmounted||C.isUnmounted||C.pendingId!==e.suspenseId)return;iO(),e.asyncResolved=!0;let{vnode:o}=e;iF(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,b(i||e.subTree.el),i?null:y(e.subTree),C,s,n),a&&(o.placeholder=null,_(a)),rP(e,o.el),r&&0==--C.deps&&C.resolve()})},unmount(e,t){C.isUnmounted=!0,C.activeBranch&&m(C.activeBranch,n,e,t),C.pendingBranch&&m(C.pendingBranch,n,e,t)}};return C}function r4(e){let t;if(I(e)){let n=io&&e._c;n&&(e._d=!1,il()),e=e(),n&&(e._d=!0,t=ii,is())}return E(e)&&(e=function(e){let t;for(let n=0;nt!==e)),e}function r8(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):tQ(e)}function r5(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,rP(r,i))}let r9=Symbol.for("v-fgt"),r7=Symbol.for("v-txt"),ie=Symbol.for("v-cmt"),it=Symbol.for("v-stc"),ir=[],ii=null;function il(e=!1){ir.push(ii=e?null:[])}function is(){ir.pop(),ii=ir[ir.length-1]||null}let io=1;function ia(e,t=!1){io+=e,e<0&&ii&&t&&(ii.hasOnce=!0)}function ic(e){return e.dynamicChildren=io>0?ii||_:null,is(),io>0&&ii&&ii.push(e),e}function iu(e,t,n,r,i){return ic(iv(e,t,n,r,i,!0))}function id(e){return!!e&&!0===e.__v_isVNode}function ih(e,t){return e.type===t.type&&e.key===t.key}let ip=({key:e})=>null!=e?e:null,ig=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?R(e)||tS(e)||I(e)?{i:t1,r:e,k:t,f:!!n}:e:null);function im(e,t=null,n=null,r=0,i=null,l=+(e!==r9),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ip(t),ref:t&&ig(t),scopeId:t2,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t1};return o?(iC(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=R(n)?8:16),io>0&&!s&&ii&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&ii.push(a),a}let iv=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==rn||(e=ie),id(e)){let r=ib(e,t,!0);return n&&iC(r,n),io>0&&!l&&ii&&(6&r.shapeFlag?ii[ii.indexOf(e)]=r:ii.push(r)),r.patchFlag=-2,r}if(I(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=iy(t);e&&!R(e)&&(t.class=ei(e)),M(n)&&(tm(n)&&!E(n)&&(n=T({},n)),t.style=Y(n))}let o=R(e)?1:r1(e)?128:e.__isTeleport?64:M(e)?4:2*!!I(e);return im(e,t,n,r,i,o,l,!0)};function iy(e){return e?tm(e)||rL(e)?T({},e):e:null}function ib(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?iT(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&ip(c),ref:t&&t.ref?n&&l?E(l)?l.concat(ig(t)):[l,ig(t)]:ig(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==r9?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ib(e.ssContent),ssFallback:e.ssFallback&&ib(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nC(u,a.clone(u)),u}function i_(e=" ",t=0){return iv(r7,null,e,t)}function iS(e="",t=!1){return t?(il(),iu(ie,null,e)):iv(ie,null,e)}function ix(e){return null==e||"boolean"==typeof e?iv(ie):E(e)?iv(r9,null,e.slice()):id(e)?ik(e):iv(r7,null,String(e))}function ik(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:ib(e)}function iC(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),iC(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rL(t)?3===r&&t1&&(1===t1.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t1}else if(I(t)){if(65&r)return void iC(e,{default:t});t={default:t,_ctx:t1},n=32}else t=String(t),64&r?(n=16,t=[i_(t)]):n=8;e.children=t,e.shapeFlag|=n}function iT(...e){let t={};for(let n=0;niE||t1;c=e=>{iE=e},u=e=>{iP=e};let iR=e=>{let t=iE;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iO=()=>{iE&&iE.scope.off(),c(null)};function iM(e){return 4&e.vnode.shapeFlag}let iP=!1;function iF(e,t,n){I(t)?e.render=t:M(t)&&(e.setupState=tN(t)),i$(e,n)}function iL(e){d=e,h=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rc))}}function i$(e,t,n){let r=e.type;if(!e.render){if(!t&&d&&!r.render){let t=r.template||rp(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=d(t,o)}}e.render=r.render||S,h&&h(e)}{let t=iR(e);eI();try{!function(e){let t=rp(e),n=e.proxy,r=e.ctx;rh=!1,t.beforeCreate&&rf(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:d,mounted:h,beforeUpdate:f,updated:p,activated:g,deactivated:m,beforeUnmount:y,unmounted:b,render:_,renderTracked:x,renderTriggered:k,errorCaptured:C,serverPrefetch:T,expose:w,inheritAttrs:A,components:N,directives:O}=t;if(c&&function(e,t){for(let n in E(e)&&(e=ry(e)),e){let r,i=e[n];tS(r=M(i)?"default"in i?t5(i.from||n,i.default,!0):t5(i.from||n):t5(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r),s)for(let e in s){let t=s[e];I(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);M(t)&&(e.data=tc(t))}if(rh=!0,l)for(let e in l){let t=l[e],i=I(t)?t.bind(n,n):I(t.get)?t.get.bind(n,n):S,s=iU({get:i,set:!I(t)&&I(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){let l=i.includes(".")?nn(r,i):()=>r[i];if(R(t)){let e=n[t];I(e)&&ne(l,e,void 0)}else if(I(t))ne(l,t.bind(r),void 0);else if(M(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=I(t.handler)?t.handler.bind(r):n[t.handler];I(e)&&ne(l,e,t)}}(o[e],r,n,e);if(a){let e=I(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{t8(t,e[t])})}function P(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&rf(u,e,"c"),P(n1,d),P(n2,h),P(n3,f),P(n6,p),P(nJ,g),P(nG,m),P(re,C),P(n7,x),P(n9,k),P(n4,y),P(n8,b),P(n5,T),E(w))if(w.length){let t=e.exposed||(e.exposed={});w.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===S&&(e.render=_),null!=A&&(e.inheritAttrs=A),N&&(e.components=N),O&&(e.directives=O)}(e)}finally{eR(),t()}}}let iD={get:(e,t)=>(ej(e,"get",""),e[t])};function iV(e){return{attrs:new Proxy(e.attrs,iD),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function ij(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tN(ty(e.exposed)),{get:(t,n)=>n in t?t[n]:n in rs?rs[n](e):void 0,has:(e,t)=>t in e||t in rs})):e.proxy}function iB(e,t=!0){return I(e)?e.displayName||e.name:e.name||t&&e.__name}let iU=(e,t)=>(function(e,t=!1){let n,r;return I(e)?n=e:(n=e.get,r=e.set),new tM(n,r,t)})(e,iP);function iH(e,t,n){try{ia(-1);let r=arguments.length;if(2!==r)return r>3?n=Array.prototype.slice.call(arguments,2):3===r&&id(n)&&(n=[n]),iv(e,t,n);if(!M(t)||E(t))return iv(e,null,t);if(id(t))return iv(e,null,[t]);return iv(e,t)}finally{ia(1)}}function iq(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&ii&&ii.push(e),!0}let iW="3.5.42",iK="u">typeof window&&window.trustedTypes;if(iK)try{m=iK.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iz=m?e=>m.createHTML(e):e=>e,iJ="u">typeof document?document:null,iG=iJ&&iJ.createElement("template"),iX={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i="svg"===t?iJ.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iJ.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iJ.createElement(e,{is:n}):iJ.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iJ.createTextNode(e),createComment:e=>iJ.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iJ.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iG.innerHTML=iz("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=iG.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},iQ="transition",iZ="animation",iY=Symbol("_vtc"),i0={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},i1=T({},nm,i0),i2=((t=(e,{slots:t})=>iH(nb,i4(e),t)).displayName="Transition",t.props=i1,t),i3=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i6=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i4(e){let t={};for(let n in e)n in i0||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:f=`${n}-leave-to`}=e,p=function(e){if(null==e)return null;{if(M(e))return[function(e){return X(e)}(e.enter),function(e){return X(e)}(e.leave)];let t=function(e){return X(e)}(e);return[t,t]}}(i),g=p&&p[0],m=p&&p[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:k=y,onAppear:C=b,onAppearCancelled:w=_}=t,A=(e,t,n,r)=>{e._enterCancelled=r,i5(e,t?u:o),i5(e,t?c:s),n&&n()},N=(e,t)=>{e._isLeaving=!1,i5(e,d),i5(e,f),i5(e,h),t&&t()},E=e=>(t,n)=>{let i=e?C:b,s=()=>A(t,e,n);i3(i,[t,s]),i9(()=>{i5(t,e?a:l),i8(t,e?u:o),i6(i)||le(t,r,g,s)})};return T(t,{onBeforeEnter(e){i3(y,[e]),i8(e,l),i8(e,s)},onBeforeAppear(e){i3(k,[e]),i8(e,a),i8(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>N(e,t);i8(e,d),e._enterCancelled?(i8(e,h),li(e)):(li(e),i8(e,h)),i9(()=>{e._isLeaving&&(i5(e,d),i8(e,f),i6(S)||le(e,r,m,n))}),i3(S,[e,n])},onEnterCancelled(e){A(e,!1,void 0,!0),i3(_,[e])},onAppearCancelled(e){A(e,!0,void 0,!0),i3(w,[e])},onLeaveCancelled(e){N(e),i3(x,[e])}})}function i8(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iY]||(e[iY]=new Set)).add(t)}function i5(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iY];n&&(n.delete(t),n.size||(e[iY]=void 0))}function i9(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i7=0;function le(e,t,n,r){let i=e._endId=++i7,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=lt(e,t);if(!s)return r();let c=s+"end",u=0,d=()=>{e.removeEventListener(c,h),l()},h=t=>{t.target===e&&++u>=a&&d()};setTimeout(()=>{u(n[e]||"").split(", "),i=r(`${iQ}Delay`),l=r(`${iQ}Duration`),s=ln(i,l),o=r(`${iZ}Delay`),a=r(`${iZ}Duration`),c=ln(o,a),u=null,d=0,h=0;t===iQ?s>0&&(u=iQ,d=s,h=l.length):t===iZ?c>0&&(u=iZ,d=c,h=a.length):h=(u=(d=Math.max(s,c))>0?s>c?iQ:iZ:null)?u===iQ?l.length:a.length:0;let f=u===iQ&&/\b(?:transform|all)(?:,|$)/.test(r(`${iQ}Property`).toString());return{type:u,timeout:d,propCount:h,hasTransform:f}}function ln(e,t){for(;e.lengthlr(t)+lr(e[n])))}function lr(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function li(e){return(e?e.ownerDocument:document).body.offsetHeight}let ll=Symbol("_vod"),ls=Symbol("_vsh");function lo(e,t){e.style.display=t?e[ll]:"none",e[ls]=!t}let la=Symbol("");function lc(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[la]=i}}let lu=/(?:^|;)\s*display\s*:/,ld=/\s*!important$/;function lh(e,t,n){if(E(n))n.forEach(n=>lh(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))ld.test(n)?e.setProperty(t,n.replace(ld,""),"important"):e.setProperty(t,n);else{let r=function(e,t){let n=lp[t];if(n)return n;let r=B(t);if("filter"!==r&&r in e)return lp[t]=r;r=q(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),lT=(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o;let t;o=r,(t=e[iY])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=R(n),l=!1;if(n&&!i){if(t)if(R(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&lh(r,t,"")}else for(let e in t)null==n[e]&&lh(r,e,"");for(let i in n){var s,o,a,c;"display"===i&&(l=!0);let u=n[i];null!=u?(s=e,o=i,a=!R(t)&&t?t[i]:void 0,c=u,"TEXTAREA"===s.tagName&&("width"===o||"height"===o)&&R(c)&&a===c||lh(r,i,u)):lh(r,i,"")}}else if(i){if(t!==n){let e=r[la];e&&(n+=";"+e),r.cssText=n,l=lu.test(n)}}else t&&e.removeAttribute("style");ll in e&&(e[ll]=l?r.display:"",e[ls]&&(r.display="none"))}(e,n,r):k(t)?C(t)||function(e,t,n,r=null){let i=e[lb]||(e[lb]={}),l=i[t];if(n&&l)l.value=n;else{let[a,c]=function(e){let t,n;for(;(n=e.match(l_))&&!lS.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[":"===e[2]?e.slice(3):H(e.slice(2)),t]}(t);if(n){var s,o;let l;ly(e,a,i[t]=(s=n,o=r,(l=e=>{if(e._vts){if(e._vts<=l.attached)return}else e._vts=Date.now();let t=l.value;if(E(t)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let r=t.slice(),i=[e];for(let t=0;tlx=0),lx=Date.now()),l),c)}else l&&(e.removeEventListener(a,l,c),i[t]=void 0)}}(e,t,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&lC(t)&&I(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lC(t)&&R(n))&&t in e}(e,t,r,s))?e._isVueCE&&(function(e,t){let n=e._def.props;if(!n)return!1;let r=B(t);return Array.isArray(n)?n.some(e=>B(e)===r):Object.keys(n).some(e=>B(e)===r)}(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!R(r)))?lv(e,B(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),lm(e,t,r,s)):(lv(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||lm(e,t,r,s,l,"value"!==t))},lw={};function lA(e,t,n){let r,i=nw(e,t);"[object Object]"===(r=i,F.call(r))&&(i=T({},i,t));class l extends lE{constructor(e){super(i,e,n)}}return l.def=i,l}let lN="u">typeof HTMLElement?HTMLElement:class{};class lE extends lN{constructor(e,t={},n=l9){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==l9?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(T({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.assignedSlot||e.parentNode||e.host);)if(e instanceof lE){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tJ(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let e=0;e{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=X(this._props[e])),(n||(n=Object.create(null)))[B(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;if(t)return this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}),this._pendingResolve;e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)N(this,e)||Object.defineProperty(this,e,{get:()=>tw(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(B))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lw,r=B(e);t&&this._numberProps&&this._numberProps[r]&&(n=X(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(this._dirty=!0,t===lw?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(H(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(H(e),t+""):t||this.removeAttribute(H(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l5(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=iv(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],F.call(n))?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),H(e)!==e&&t(H(e),n)},this._setParent()}),t}_applyStyles(e,t,n){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let r=this._nonce,i=this.shadowRoot,l=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i),s=null;for(let o=e.length-1;o>=0;o--){let a=document.createElement("style");r&&a.setAttribute("nonce",r),a.textContent=e[o],i.insertBefore(a,s||l),s=a,0===o&&(n||this._styleAnchors.set(this._def,a),t&&this._styleAnchors.set(t,a))}}_getStyleAnchor(e){if(!e)return null;let t=this._styleAnchors.get(e);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(e),null)}_getRootStyleInsertionAnchor(e){for(let t=0;t{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[iY];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display="none";let l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=lt(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lL),n.forEach(l$);let r=n.filter(lD);li(i.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;i8(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lM]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",i),n[lM]=null,i5(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tv(e),o=i4(s),a=s.tag||r9;if(n=[],r)for(let e=0;eMath.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${r/s}px,${i/o}px)`,n.transitionDuration="0s",e}}function lV(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let lj=e=>{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>z(t,e):t};function lB(e){e.target.composing=!0}function lU(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lH=Symbol("_assign"),lq=Symbol("_initialValue");function lW(e,t,n){return t&&(e=e.trim()),n&&(e=G(e)),e}let lK={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e.parentNode&&("text"===e.type?e[lq]=e.defaultValue.replace(/[\r\n]/g,""):"textarea"===e.type&&(e[lq]=e.defaultValue.replace(/\r\n?/g,` -`))),e[lH]=lj(i);let l=r||i.props&&"number"===i.props.type;ly(e,t?"change":"input",t=>{t.target.composing||e[lH](lW(e.value,n,l))}),(n||l)&&ly(e,"change",()=>{e.value=lW(e.value,n,l)}),t||(ly(e,"compositionstart",lB),ly(e,"compositionend",lU),ly(e,"change",lU))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let i=e[lq];delete e[lq],void 0!==i&&("text"===e.type||"textarea"===e.type)&&e.value!==i?e[lH](lW(e.value,n,r)):e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lH]=lj(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?G(e.value):e.value,a=null==t?"":t;if(o===a)return;let c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a)||(e.value=a)}},lz={deep:!0,created(e,t,n){e[lH]=lj(n),ly(e,"change",()=>{let t=e._modelValue,n=lZ(e),r=e.checked,i=e[lH];if(E(t)){let e=eh(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else{let l;if("[object Set]"===(l=t,F.call(l))){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lY(e,r))}})},mounted:lJ,beforeUpdate(e,t,n){e[lH]=lj(n),lJ(e,t,n)}};function lJ(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=eh(t,r.props.value)>-1;else{let l;if("[object Set]"===(l=t,F.call(l)))i=t.has(r.props.value);else{if(t===n)return;i=ed(t,lY(e,!0))}}e.checked!==i&&(e.checked=i)}let lG={created(e,{value:t},n){e.checked=ed(t,n.props.value),e[lH]=lj(n),ly(e,"change",()=>{e[lH](lZ(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lH]=lj(r),t!==n&&(e.checked=ed(t,r.props.value))}},lX={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,ly(e,"change",()=>{let t,r=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?G(lZ(e)):lZ(e)),i=e.multiple,l=i?"[object Set]"===(t=e._modelValue,F.call(t))?new Set(r):r:r[0],s=e._pendingValue=[i,i?E(l)?r.slice():r:l];try{e[lH](l)}finally{tJ(()=>{e._pendingValue===s&&(e._pendingValue=void 0)})}}),e[lH]=lj(r)},mounted(e,{value:t}){lQ(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[lH]=lj(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,n&&n[0]===e.multiple&&function(e,t,n){let r;if(!n||E(e))return ed(e,t);if("[object Set]"===(r=e,F.call(r))){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}return!1}(t,n[1],n[0])||lQ(e,t)}};function lQ(e,t){let n,r=e.multiple,i=E(t);if(!r||i||"[object Set]"===(n=t,F.call(n))){for(let n=0,l=e.options.length;nString(e)===String(s)):l.selected=eh(t,s)>-1}else l.selected=t.has(s);else if(ed(lZ(l),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}r||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lZ(e){return"_value"in e?e._value:e.value}function lY(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function l0(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lX;case"TEXTAREA":return lK;default:switch(t){case"checkbox":return lz;case"radio":return lG;default:return lK}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let l1=["ctrl","shift","alt","meta"],l2={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>l1.some(n=>e[`${n}Key`]&&!t.includes(n))},l3={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},l6=T({patchProp:lT},iX),l4=!1;function l8(){return f=l4?f:rJ(l6),l4=!0,f}let l5=(...e)=>{(f||(f=rG(l6))).render(...e)},l9=(...e)=>{let t=(f||(f=rG(l6))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=st(e);if(!r)return;let i=t._component;I(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,se(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l7=(...e)=>{let t=l8().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=st(e);if(t)return n(t,!0,se(t))},t};function se(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function st(e){return R(e)?document.querySelector(e):e}let sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sd=Symbol(""),sh=Symbol(""),sf=Symbol(""),sp=Symbol(""),sg=Symbol(""),sm=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sk=Symbol(""),sC=Symbol(""),sT=Symbol(""),sw=Symbol(""),sA=Symbol(""),sN=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sM=Symbol(""),sP=Symbol(""),sF=Symbol(""),sL=Symbol(""),s$=Symbol(""),sD=Symbol(""),sV=Symbol(""),sj=Symbol(""),sB={[sn]:"Fragment",[sr]:"Teleport",[si]:"Suspense",[sl]:"KeepAlive",[ss]:"BaseTransition",[so]:"openBlock",[sa]:"createBlock",[sc]:"createElementBlock",[su]:"createVNode",[sd]:"createElementVNode",[sh]:"createCommentVNode",[sf]:"createTextVNode",[sp]:"createStaticVNode",[sg]:"resolveComponent",[sm]:"resolveDynamicComponent",[sv]:"resolveDirective",[sy]:"resolveFilter",[sb]:"withDirectives",[s_]:"renderList",[sS]:"renderSlot",[sx]:"createSlots",[sk]:"toDisplayString",[sC]:"mergeProps",[sT]:"normalizeClass",[sw]:"normalizeStyle",[sA]:"normalizeProps",[sN]:"guardReactiveProps",[sE]:"toHandlers",[sI]:"camelize",[sR]:"capitalize",[sO]:"toHandlerKey",[sM]:"setBlockTracking",[sP]:"pushScopeId",[sF]:"popScopeId",[sL]:"withCtx",[s$]:"unref",[sD]:"isRef",[sV]:"withMemo",[sj]:"isMemoSame"},sU={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function sH(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=sU){var d,h,f,p;return e&&(o?(e.helper(so),e.helper((d=e.inSSR,h=c,d||h?sa:sc))):e.helper((f=e.inSSR,p=c,f||p?su:sd)),s&&e.helper(sb)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sq(e,t=sU){return{type:17,loc:t,elements:e}}function sW(e,t=sU){return{type:15,loc:t,properties:e}}function sK(e,t){return{type:16,loc:sU,key:R(e)?sz(e,!0):e,value:t}}function sz(e,t=!1,n=sU,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sJ(e,t=sU){return{type:8,loc:t,children:e}}function sG(e,t=[],n=sU){return{type:14,loc:n,callee:e,arguments:t}}function sX(e,t,n=!1,r=!1,i=sU){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function sQ(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:sU}}function sZ(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?su:sd)),t(so),t((l=e.isComponent,r||l?sa:sc))}}let sY=new Uint8Array([123,123]),s0=new Uint8Array([125,125]);function s1(e){return e>=97&&e<=122||e>=65&&e<=90}function s2(e){return 32===e||10===e||9===e||12===e||13===e}function s3(e){return 47===e||62===e||s2(e)}function s6(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function oe(e){switch(e){case"Teleport":case"teleport":return sr;case"Suspense":case"suspense":return si;case"KeepAlive":case"keep-alive":return sl;case"BaseTransition":case"base-transition":return ss}}let ot=/^$|^\d|[^\$\w\xA0-\uFFFF]/,on=/[A-Za-z_$\xA0-\uFFFF]/,or=/[\.\?\w$\xA0-\uFFFF]/,oi=/\s+[.[]\s*|\s*[.[]\s+/g,ol=e=>4===e.type?e.content:e.loc.source,os=e=>{let t=ol(e).trim().replace(oi,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/;function oa(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function o_(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let oS=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function ox(e){for(let t=0;t0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:s8,onWarn:s5,comments:!1,prefixIdentifiers:!1},ow=oT,oA=null,oN="",oE=null,oI=null,oR="",oO=-1,oM=-1,oP=0,oF=!1,oL=null,o$=[],oD=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sY,this.delimiterClose=s0,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sY,this.delimiterClose=s0}getPos(e){let t=1,n=e+1,r=this.newlines.length,i=-1;if(r>100){let t=-1,n=r;for(;t+1>>1;this.newlines[r]=0;t--)if(e>this.newlines[t]){i=t;break}return i>=0&&(t=i+2,n=e-this.newlines[i]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?s3(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||s2(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===s4.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(o$,{onerr:o0,ontext(e,t){oH(oB(e,t),e,t)},ontextentity(e,t,n){oH(e,t,n)},oninterpolation(e,t){if(oF)return oH(oB(e,t),e,t);let n=e+oD.delimiterOpen.length,r=t-oD.delimiterClose.length;for(;s2(oN.charCodeAt(n));)n++;for(;s2(oN.charCodeAt(r-1));)r--;let i=oB(n,r);i.includes("&")&&(i=ow.decodeEntities(i,!1)),oX({type:5,content:oY(i,!1,oQ(n,r)),loc:oQ(e,t)})},onopentagname(e,t){let n=oB(e,t);oE={type:1,tag:n,ns:ow.getNamespace(n,o$[0],ow.ns),tagType:0,props:[],children:[],loc:oQ(e-1,t),codegenNode:void 0}},onopentagend(e){oU(e)},onclosetag(e,t){let n=oB(e,t);if(!ow.isVoidTag(n)){let r=!1;for(let e=0;e0&&o$[0].loc.start.offset;for(let n=0;n<=e;n++)oq(o$.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){oE&&oI&&(oZ(oI.loc,t),0!==e&&(oR.includes("&")&&(oR=ow.decodeEntities(oR,!0)),6===oI.type?("class"===oI.name&&(oR=oG(oR).trim()),oI.value={type:2,content:oR,loc:1===e?oQ(oO,oM):oQ(oO-1,oM+1)},oD.inSFCRoot&&"template"===oE.tag&&"lang"===oI.name&&oR&&"html"!==oR&&oD.enterRCDATA(s6("{let i=t.start.offset+n,l=i+e.length;return oY(e,!1,oQ(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oj,"").trim(),c=i.indexOf(a),u=a.match(oV);if(u){let e;a=a.replace(oV,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(oI.exp)))),(7!==oI.type||"pre"!==oI.name)&&oE.props.push(oI)),oR="",oO=oM=-1},oncomment(e,t){ow.comments&&oX({type:3,content:oB(e,t),loc:oQ(e-4,t+3)})},onend(){let e=oN.length;for(let t=0;t64&&n<91||oe(e)||ow.isBuiltInComponent&&ow.isBuiltInComponent(e)||ow.isNativeTag&&!ow.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oK=new Set(["if","else","else-if","for","slot"]),oz=/\r\n/g;function oJ(e){let t="preserve"!==ow.whitespace,n=!1;for(let r=0;r3!==e.type);return 1!==t.length||1!==t[0].type||og(t[0])?null:t[0]}function o2(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=o6(e,t);if(0===c)return n.set(e,0),0;c1)for(let i=0;i{l--};for(;lt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(of))return;let l=[];for(let s=0;s`${sB[e]}: _${sB[e]}`;function ae(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sg:sv);for(let n=0;n3;t.push("["),n&&t.indent(),an(e,t,n),n&&t.deindent(),t.push("]")}function an(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([a,c,u,i,h]),t),l(")"),p&&l(")"),f&&(l(", "),ar(f,t),l(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:r,pure:i}=t,l=R(e.callee)?e.callee:r(e.callee);i&&n(o9),n(l+"(",-2,e),an(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(a||o)&&(n("{"),r()),s?(a&&n("return "),E(s)?at(s,t):ar(s,t)):o&&ar(o,t),(a||o)&&(i(),n("}")),c&&n(")")}(e,t);break;case 19:!function(e,t){let{test:n,consequent:r,alternate:i,newline:l}=e,{push:s,indent:o,deindent:a,newline:c}=t;if(4===n.type){let e,r=(e=n.content,!!ot.test(e));r&&s("("),ai(n,t),r&&s(")")}else s("("),ar(n,t),s(")");l&&o(),t.indentLevel++,l||s(" "),s("? "),ar(r,t),t.indentLevel--,l&&c(),l||s(" "),s(": ");let u=19===i.type;!u&&t.indentLevel++,ar(i,t),!u&&t.indentLevel--,l&&a(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:r,indent:i,deindent:l,newline:s}=t,{needPauseTracking:o,needArraySpread:a}=e;a&&n("[...("),n(`_cache[${e.index}] || (`),o&&(i(),n(`${r(sM)}(-1`),e.inVOnce&&n(", true"),n("),"),s(),n("(")),n(`_cache[${e.index}] = `),ar(e.value,t),o&&(n(`).cacheIndex = ${e.index},`),s(),n(`${r(sM)}(1),`),s(),n(`_cache[${e.index}]`),l()),n(")"),a&&n(")]")}(e,t);break;case 21:an(e.body,t,!0,!1)}}function ai(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function al(e,t){for(let n=0;n(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s9(28,t.loc)),t.exp=sz("true",!1,r)}if("if"===t.name){var i;let l=ao(e,t),s={type:9,loc:oQ((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&oC(s)){n.removeNode(s);continue}if(s&&9===s.type){("else-if"===t.name||"else"===t.name)&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s9(30,e.loc)),n.removeNode();let i=ao(e,t);s.branches.push(i);let l=r&&r(s,i,!1);o8(i,n),l&&l(),n.currentNode=null}else n.onError(s9(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=aa(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=aa(t,s+e.branches.length-1,n)}}));function ao(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!oa(e,"for")?e.children:[e],userKey:oc(e,"key"),isTemplateIf:n}}function aa(e,t,n){return e.condition?sQ(e.condition,ac(e,t,n),sG(n.helper(sh),['""',"true"])):ac(e,t,n)}function ac(e,t,n){let{helper:r}=n,i=sK("key",sz(`${t}`,!1,sU,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return sH(n,r(sn),sW([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return oy(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sV?e.arguments[1].returns:e;return 13===t.type&&sZ(t,n),oy(t,i,n),e}}let au=o5("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s9(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s9(32,t.loc));ad(i);let{scopes:l}=n,{source:s,value:o,key:a,index:c}=i,u={type:11,loc:t.loc,source:s,valueAlias:o,keyAlias:a,objectIndexAlias:c,parseResult:i,children:op(e)?e.children:[e]};n.replaceNode(u),l.vFor++;let d=r&&r(u);return()=>{l.vFor--,d&&d()}}(e,t,n,t=>{let l=sG(r(s_),[t.source]),s=op(e),o=oa(e,"memo"),a=oc(e,"key",!1,!0);a&&a.type;let c=a&&(6===a.type?a.value?sz(a.value.content,!0):void 0:a.exp),u=c?sK("key",c):null,d=4===t.source.type&&t.source.constType>0,h=d?64:a?128:256;return t.codegenNode=sH(n,r(sn),void 0,l,h,void 0,void 0,!0,!d,!1,e.loc),()=>{var a,h,f,p,g,m,y,b,_;let S,{children:x}=t,k=1!==x.length||1!==x[0].type,C=og(e)?e:s&&1===e.children.length&&og(e.children[0])?e.children[0]:null;if(C)S=C.codegenNode,s&&u&&oy(S,u,n);else if(k)S=sH(n,r(sn),u?sW([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{S=x[0].codegenNode,s&&u&&oy(S,u,n);let e=!d||!0===S.isBlockRequired;S.isBlock!==e&&(S.isBlock?(i(so),i((h=n.inSSR,f=S.isComponent,h||f?sa:sc))):i((p=n.inSSR,g=S.isComponent,p||g?su:sd))),(S.isBlock=e,S.isBlock)?(r(so),r((m=n.inSSR,y=S.isComponent,m||y?sa:sc))):(r((b=n.inSSR,_=S.isComponent,b||_?su:sd)),S.needsPatch&&(S.patchFlag=(null!=(a=S.patchFlag)?a:0)|512))}if(o){let e=sX(ah(t.parseResult,[sz("_cached")]));e.body={type:21,body:[sJ(["const _memo = (",o.exp,")"]),sJ(["if (_cached && _cached.el",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sj)}(_cached, _memo)) return _cached`]),sJ(["const _item = ",S]),sz("_item.memo = _memo"),sz("return _item")],loc:sU},l.arguments.push(e,sz("_cache"),sz(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sX(ah(t.parseResult),S,!0))}})});function ad(e,t){e.finalized||(e.finalized=!0)}function ah({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sz("_".repeat(t+1),!1))}let af=sz("undefined",!1),ap=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=oa(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function ag(e,t,n){let r=[sK("name",e),sK("fn",t)];return null!=n&&r.push(sK("key",sz(String(n),!0))),sW(r)}let am=new WeakMap,av=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=a_(r),l=oc(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sz(l.value.content,!0):(e=l.exp)||(e=sz("is",!1,l.arg.loc)),e)return sG(t.helper(sm),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=oe(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sg),t.components.add(r),o_(r,"component"))}(e,t):`"${o}"`,d=M(u)&&u.callee===sm,h=0,f=!1,p=!1,g=d||u===sr||u===si||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ay(e,t,void 0,c,d);n=r.props,h=r.patchFlag,l=r.dynamicPropNames,f=r.needsPatch,p=r.isBlockRequired;let i=r.directives;s=i&&i.length?sq(i.map(e=>(function(e,t){let n=[],r=am.get(e);r?n.push(t.helperString(r)):(t.helper(sv),t.directives.add(e.name),n.push(o_(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sz("true",!1,i);n.push(sW(e.modifiers.map(e=>sK(e,t)),i))}return sq(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(g=!0)}if(e.children.length>0)if(u===sl&&(g=!0,h|=1024),c&&u!==sr&&u!==sl){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sX(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sL);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=oa(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s7(e)&&(o=!0),l.push(sK(e||sz("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],h=new Set,f=0;for(let e=0;esK("default",n(e,void 0,t,i));c?d.length&&!d.every(ok)&&(u?t.onError(s9(39,d[0].loc)):l.push(e(void 0,d))):l.push(e(void 0,r))}let p=o?2:!function e(t){for(let n=0;n0,p=!1,g=!1,m=0,y=!1,b=!1,_=!1,S=!1,x=!1,C=!1,T=[],w=e=>{u.length&&(d.push(sW(ab(u),a)),u=[]),e&&d.push(e)},A=()=>{t.scopes.vFor>0&&u.push(sK(sz("ref_for",!0),sz("true")))},N=({key:e,value:n})=>{if(s7(e)){let l=e.content,s=k(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!$(l)&&(S=!0),s&&$(l)&&(C=!0),"ref"===l&&(y=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&o2(n,t)>0||("class"===l?b=!0:"style"===l?_=!0:"ref"===l||"key"===l||T.includes(l)||T.push(l),r&&("class"===l||"style"===l)&&!T.includes(l)&&T.push(l))}else x=!0};for(let i=0;i"prop"===e.content)&&(m|=32);let k=t.directiveTransforms[n];if(k){let{props:n,needRuntime:r}=k(s,e,t);l||n.forEach(N),S&&i&&!s7(i)?w(sW(n,a)):u.push(...n),r&&(h.push(s),O(r)&&am.set(s,r))}else!D(n)&&(h.push(s),f&&(p=!0,g=!0))}}d.length?(w(),s=d.length>1?sG(t.helper(sC),d,a):d[0]):u.length&&(s=sW(ab(u),a)),x?m|=16:(b&&!r&&(m|=2),_&&!r&&(m|=4),T.length&&(m|=8),S&&(m|=32));let E=(0===m||32===m)&&(y||C||h.length>0);if(!p&&E&&(m|=512),!t.inSSR&&s)switch(s.type){case 15:let I=-1,R=-1,M=!1;for(let e=0;e{if(og(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t0){let{props:r,directives:l}=ay(e,t,i,!1,!1);n=r,l.length&&t.onError(s9(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sX([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sG(t.helper(sS),s,r)}},ax=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sz(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?W(B(e)):`on:${e}`,!0,o.loc)}else i=sJ([`${n.helperString(sO)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sO)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=os(a),n=!(t||(e=a,oo.test(ol(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sJ([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sK(i,a||sz("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},ak=(e,t,n)=>{let{modifiers:r}=e,i=e.arg,{exp:l}=e;return l&&4===l.type&&!l.content.trim()&&(l=void 0),4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=i.content?`${i.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===i.type?i.isStatic?i.content=B(i.content):i.content=`${n.helperString(sI)}(${i.content})`:(i.children.unshift(`${n.helperString(sI)}(`),i.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&aC(i,"."),r.some(e=>"attr"===e.content)&&aC(i,"^")),{props:[sK(i,l)]}},aC=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},aT=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e{if(1===e.type&&oa(e,"once",!0)&&!aw.has(e)&&!t.inVOnce&&!t.inSSR)return aw.add(e),t.inVOnce=!0,t.helper(sM),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},aN=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s9(41,e.loc)),aE();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a||"literal-const"===a||"setup-const"===a)return i.loc,aE();if(!o.trim()||!os(i))return n.onError(s9(42,i.loc)),aE();let c=l||sz("modelValue",!0),u=l?s7(l)?`onUpdate:${B(l.content)}`:sJ(['"onUpdate:" + ',l]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";r=sJ([`${d} => ((`,i,") = $event)"]);let h=[sK(c,e.exp),sK(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(ot.test(e)?JSON.stringify(e):e)+": true").join(", "),n=l?s7(l)?`${l.content}Modifiers`:sJ([l,' + "Modifiers"']):"modelModifiers";h.push(sK(n,sz(`{ ${t} }`,!1,e.loc,2)))}return aE(h)};function aE(e=[]){return{props:e}}let aI=new WeakSet,aR=(e,t)=>{if(1===e.type){let n=oa(e,"memo");if(!(!n||aI.has(e))&&!t.inSSR)return aI.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sZ(r,t),e.codegenNode=sG(t.helper(sV),[n.exp,sX(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},aO=(e,t)=>{if(1===e.type){for(let n of e.props)if(7===n.type&&"bind"===n.name&&(!n.exp||4===n.exp.type&&!n.exp.content.trim())&&n.arg){let e=n.arg;if(4===e.type&&e.isStatic){let t=B(e.content);(on.test(t[0])||"-"===t[0])&&(n.exp=sz(t,!1,e.loc))}else t.onError(s9(53,e.loc)),n.exp=sz("",!0,e.loc)}}},aM=Symbol(""),aP=Symbol(""),aF=Symbol(""),aL=Symbol(""),a$=Symbol(""),aD=Symbol(""),aV=Symbol(""),aj=Symbol(""),aB=Symbol(""),aU=Symbol("");Object.getOwnPropertySymbols(r={[aM]:"vModelRadio",[aP]:"vModelCheckbox",[aF]:"vModelText",[aL]:"vModelSelect",[a$]:"vModelDynamic",[aD]:"withModifiers",[aV]:"withKeys",[aj]:"vShow",[aB]:"Transition",[aU]:"TransitionGroup"}).forEach(e=>{sB[e]=r[e]});let aH={parseMode:"html",isVoidTag:ea,isNativeTag:e=>el(e)||es(e)||eo(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(p||(p=document.createElement("div")),t)?(p.innerHTML=`
`,p.children[0].getAttribute("foo")):(p.innerHTML=e,p.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aB:"TransitionGroup"===e||"transition-group"===e?aU:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},aq=y("passive,once,capture"),aW=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aK=y("left,right"),az=y("onkeyup,onkeydown,onkeypress"),aJ=(e,t)=>s7(e)&&"onclick"===e.content.toLowerCase()?sz(t,!0):4!==e.type?sJ(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aG=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aX=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sz("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sz(JSON.stringify(er(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aQ={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s9(54,i)),t.children.length&&(n.onError(s9(55,i)),t.children.length=0),{props:[sK(sz("innerHTML",!0,i),r||sz("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s9(56,i)),t.children.length&&(n.onError(s9(57,i)),t.children.length=0),{props:[sK(sz("textContent",!0),r?o2(r,n)>0?r:sG(n.helperString(sk),[r],i):sz("",!0))]}},model:(e,t,n)=>{let r=aN(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s9(59,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aF,o=!1;if("input"===i||l){let r=oc(t,"type");if(r){if(7===r.type)s=a$;else if(r.value)switch(r.value.content){case"radio":s=aM;break;case"checkbox":s=aP;break;case"file":o=!0,n.onError(s9(60,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=a$)}else"select"===i&&(s=aL);o||(r.needRuntime=n.helper(s))}else n.onError(s9(58,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>ax(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n)=>{let r=[],i=[],l=[];for(let n=0;n{let{exp:r,loc:i}=e;return r||n.onError(s9(62,i)),{props:[],needRuntime:n.helper(aj)}}},aZ=Object.create(null);function aY(e,t){if(!R(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aZ[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);!i.isCustomElement&&"u">typeof customElements&&(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){var n;let r,i=t.onError||s8,l="module"===t.mode;!0===t.prefixIdentifiers?i(s9(48)):l&&i(s9(49)),t.cacheHandlers&&i(s9(50)),t.scopeId&&!l&&i(s9(51));let s=T({},t,{prefixIdentifiers:!1}),o=R(e)?function(e,t){if(oD.reset(),oE=null,oI=null,oR="",oO=-1,oM=-1,o$.length=0,oN=e,ow=T({},oT),t){let e;for(e in t)null!=t[e]&&(ow[e]=t[e])}oD.mode="html"===ow.parseMode?1:2*("sfc"===ow.parseMode),oD.inXML=1===ow.ns||2===ow.ns;let n=t&&t.delimiters;n&&(oD.delimiterOpen=s6(n[0]),oD.delimiterClose=s6(n[1]));let r=oA=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:sU}}([],e);return oD.parse(oN),r.loc=oQ(0,e.length),r.children=oJ(r.children),oA=null,r}(e,s):e,[a,c]=[[aO,aA,as,aR,au,aS,av,ap,aT],{on:ax,bind:ak,model:aN}];return r=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:d=[],scopeId:h=null,slotted:f=!0,ssr:p=!1,inSSR:g=!1,ssrCssVars:m="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:k=s8,onWarn:C=s5,compatConfig:T}){let w=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),A={filename:t,selfName:w&&q(B(w[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:d,scopeId:h,slotted:f,ssr:p,inSSR:g,ssrCssVars:m,bindingMetadata:y,inline:_,isTS:x,onError:k,onWarn:C,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,vForMemoKeyedNodes:new WeakSet,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=A.helpers.get(e)||0;return A.helpers.set(e,t+1),e},removeHelper(e){let t=A.helpers.get(e);if(t){let n=t-1;n?A.helpers.set(e,n):A.helpers.delete(e)}},helperString:e=>`_${sB[A.helper(e)]}`,replaceNode(e){A.parent.children[A.childIndex]=A.currentNode=e},removeNode(e){let t=A.parent.children,n=e?t.indexOf(e):A.currentNode?A.childIndex:-1;e&&e!==A.currentNode?A.childIndex>n&&(A.childIndex--,A.onNodeRemoved()):(A.currentNode=null,A.onNodeRemoved()),A.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){R(e)&&(e=sz(e)),A.hoists.push(e);let t=sz(`_hoisted_${A.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:sU}}(A.cached.length,e,t,n);return A.cached.push(r),r}};return A}(o,n=T({},s,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:T({},c,t.directiveTransforms||{})})),o8(o,r),n.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&o6(a,r)>=2){let t=o4(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:o2(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(o,void 0,r,!!o1(o)),n.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=o1(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sZ(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=sH(t,n(sn),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(o,r),o.helpers=new Set([...r.helpers.keys()]),o.components=[...r.components],o.directives=[...r.directives],o.imports=r.imports,o.hoists=r.hoists,o.temps=r.temps,o.cached=r.cached,o.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:h=!1}){let f={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:h,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${sB[e]}`,push(e,t=-2,n){f.code+=e},indent(){p(++f.indentLevel)},deindent(e=!1){e?--f.indentLevel:p(--f.indentLevel)},newline(){p(f.indentLevel)}};function p(e){f.push(` -`+" ".repeat(e),0)}return f}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,ssr:c}=n,u=Array.from(e.helpers),d=u.length>0,h=!l&&"module"!==r;!function(e,t){let{push:n,newline:r,runtimeGlobalName:i}=t,l=Array.from(e.helpers);if(l.length>0&&(n(`const _Vue = ${i} -`,-1),e.hoists.length)){let e=[su,sd,sh,sf,sp].filter(e=>l.includes(e)).map(o7).join(", ");n(`const { ${e} } = _Vue -`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(ae(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` -`,0),a()),c||i("return "),e.codegenNode?ar(e.codegenNode,n):i("null"),h&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(o,s)}(e,T({},aH,t,{nodeTransforms:[aG,...aX,...t.nodeTransforms||[]],directiveTransforms:T({},aQ,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aZ[n]=s}return iL(aY),e.BaseTransition=nb,e.BaseTransitionPropsValidators=nm,e.Comment=ie,e.DeprecationTypes=null,e.EffectScope=ev,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=r9,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iI(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:d}}}=r,h=d("div");function f(e){nQ(e),u(e,n,o,!0)}function p(e){i.forEach((t,n)=>{let r=iB(nq(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&g(n)})}function g(e){let t=i.get(e);!t||s&&ih(t,s)?s&&nQ(s):f(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),rz(()=>{l.isDeactivated=!1,l.a&&z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&iw(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;r0(t.m),r0(t.a),c(e,h,null,1,o),rz(()=>{t.da&&z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&iw(n,t.parent,e),t.isDeactivated=!0},o)},ne(()=>[e.include,e.exclude],([e,t])=>{e&&p(t=>nz(e,t)),t&&p(e=>!nz(t,e))},{flush:"post",deep:!0});let m=null,y=()=>{null!=m&&(r1(n.subTree.type)?rz(()=>{let e=nZ(n.subTree);e.component&&i.set(m,e)},n.subTree.suspense):i.set(m,nZ(n.subTree)))};return n2(y),n6(y),n4(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nZ(t);if(e.type===i.type&&e.key===i.key){nQ(i);let e=i.component.da;e&&rz(e,r);return}f(e)})}),()=>{if(m=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!id(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nZ(r);if(o.type===ie)return s=null,o;let a=o.type,c=iB(nq(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:d,max:h}=e;if(u&&(!c||!nz(u,c))||d&&c&&nz(d,c))return o.shapeFlag&=-257,s=o,r;let f=null==o.key?a:o.key,p=i.get(f);return o.el&&(o=ib(o),128&r.shapeFlag&&(r.ssContent=o)),m=f,p?(o.el=p.el,o.component=p.component,o.transition&&nC(o,o.transition),o.shapeFlag|=512,l.delete(f),l.add(f)):(l.add(f),h&&l.size>parseInt(h,10)&&g(l.values().next().value)),o.shapeFlag|=256,s=o,r1(r.type)?r:o}}},e.ReactiveEffect=eb,e.Static=it,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e)!function(e,t,n,r,i,l,s,o,a){let{p:c,o:{createElement:u}}=a,d=u("div"),h=e.suspense=r6(e,i,r,t,d,n,l,s,o,a);c(null,h.pendingBranch=e.ssContent,d,null,r,h,l,s),h.deps>0?(r3(e,"onPending"),r3(e,"onFallback"),c(null,e.ssFallback,t,n,r,null,l,s),r5(h,e.ssFallback)):h.resolve(!1,!0)}(t,n,r,i,l,s,o,a,c);else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;let h=t.ssContent,f=t.ssFallback,{activeBranch:p,pendingBranch:g,isInFallback:m,isHydrating:y}=d;if(g)d.pendingBranch=h,ih(g,h)?(a(g,h,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():!m||y||d.isFallbackMountPending||(a(p,f,n,r,i,null,l,s,o),r5(d,f))):(d.pendingId=r2++,y?(d.isHydrating=!1,d.activeBranch=g):c(g,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),m?(a(null,h,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():d.isFallbackMountPending||(a(p,f,n,r,i,null,l,s,o),r5(d,f))):p&&ih(p,h)?(a(p,h,n,r,i,d,l,s,o),d.resolve(!0)):(a(null,h,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0&&d.resolve()));else if(p&&ih(p,h))a(p,h,n,r,i,d,l,s,o),r5(d,h);else if(r3(t,"onPending"),d.pendingBranch=h,512&h.shapeFlag?d.pendingId=h.component.suspenseId:d.pendingId=r2++,a(null,h,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0)d.resolve();else{let{timeout:e,pendingId:t}=d;e>0?setTimeout(()=>{d.pendingId===t&&d.fallback(f)},e):0===e&&d.fallback(f)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r6(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r4(r?n.default:n),e.ssFallback=r?r4(n.fallback):iv(ie)}},e.Teleport={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:d,pbc:h,o:{insert:f,querySelector:p,createText:g,parentNode:m}}=c,y=nl(t.props),{dynamicChildren:b}=t,_=(e,t,n)=>{16&e.shapeFlag&&u(e.children,t,n,i,l,s,o,a)},S=(e=t)=>{let n=nl(e.props),r=e.target=na(e.props,p),l=nd(r,e,g,f);r&&("svg"!==s&&ns(r)?s="svg":"mathml"!==s&&no(r)&&(s="mathml"),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(_(e,r,l),nu(e,!1)))},x=e=>{let t=()=>{if(nr.get(e)===t){if(nr.delete(e),nl(e.props)){let t=m(e.el)||n;_(e,t,e.anchor),nu(e,!0)}S(e)}};nr.set(e,t),rz(t,l)};if(null==e){let e,i=t.el=g(""),s=t.anchor=g("");if(f(i,n,r),f(s,n,r),(e=t.props)&&(e.defer||""===e.defer)||l&&l.pendingBranch)return void x(t);y&&(_(t,n,s),nu(t,!0)),S()}else{t.el=e.el;let r=t.anchor=e.anchor,u=nr.get(e);if(u){u.flags|=8,nr.delete(e),x(t);return}t.targetStart=e.targetStart;let f=t.target=e.target,g=t.targetAnchor=e.targetAnchor,m=nl(e.props),_=m?n:f,S=m?r:g;if("svg"===s||ns(f)?s="svg":("mathml"===s||no(f))&&(s="mathml"),b?(h(e.dynamicChildren,b,_,i,l,s,o),rY(e,t,!0)):a||d(e,t,_,S,i,l,s,o,!1),y)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):nc(t,n,r,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=na(t.props,p);e&&(t.target=e,nc(t,e,null,c,0))}else m&&nc(t,f,g,c,1);nu(t,y)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:d,props:h}=e,f=nl(h),p=l||!f,g=nr.get(e);if(g&&(g.flags|=8,nr.delete(e)),d&&(i(c),i(u)),l&&i(a),!g&&(f||d)&&16&s)for(let e=0;ee[r]});return n},e.createRenderer=function(e){return rG(e)},e.createSSRApp=l7,e.createSlots=function(e,t){for(let n=0;n{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=iv(it,null,e);return n.staticCount=t,n},e.createTextVNode=i_,e.createVNode=iv,e.customRef=tI,e.defineAsyncComponent=function(e){let t;I(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,d=0,h=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((d++,u=null,h())),()=>n(e),d+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nw({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(e,n,r){let i=e.isConnected,l=!1;(n.bu||(n.bu=[])).push(()=>l=!0);let o=()=>{l||e.parentNode&&(!i||e.isConnected)&&r()},a=s?()=>{let t=s(o,t=>(function(e,t){if(nF(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nF(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:o;t?a():h().then(()=>!n.isUnmounted&&a())},get __asyncResolved(){return t},setup(){let e,n,s=iE;if(nA(s),t)return()=>nW(t,s);let c=e=>{u=null,tj(e,s,13,!i)};if(a&&s.suspense)return h().then(e=>()=>nW(e,s)).catch(e=>(c(e),()=>i?iv(i,{error:e}):null));let d=tx(!1),f=tx(),p=tx(!!l);return n8(()=>{null!=e&&clearTimeout(e),null!=n&&clearTimeout(n)}),l&&(n=setTimeout(()=>{s.isUnmounted||(p.value=!1)},l)),null!=o&&(e=setTimeout(()=>{if(!s.isUnmounted&&!d.value&&!f.value){let e=Error(`Async component timed out after ${o}ms.`);c(e),f.value=e}},o)),h().then(()=>{!s.isUnmounted&&(d.value=!0,s.parent&&nK(s.parent.vnode)&&s.parent.update())}).catch(e=>{if(s.isUnmounted){u=null;return}c(e),f.value=e}),()=>d.value&&t?nW(t,s):f.value&&i?iv(i,{error:f.value}):r&&!p.value?nW(r,s):void 0}})},e.defineComponent=nw,e.defineCustomElement=lA,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lA(e,t,l7),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof eb&&(e=e.effect.fn);let n=new eb(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new ev(e)},e.getCurrentInstance=iI,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return g},e.getTransitionRawChildren=nT,e.guardReactiveProps=iy,e.h=iH,e.handleError=tj,e.hasInjectionContext=function(){return!!(iI()||rC)},e.hydrate=(...e)=>{l8().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nU(t,{timeout:e});return()=>nH(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{R(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t0&&r0&&n0&&ir.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=t5,e.isMemoSame=iq,e.isProxy=tm,e.isReactive=tf,e.isReadonly=tp,e.isRef=tS,e.isRuntimeOnly=()=>!d,e.isShallow=tg,e.isVNode=id,e.markRaw=ty,e.mergeDefaults=function(e,t){let n=rd(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||I(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},rd(e),rd(t)):e||t},e.mergeProps=iT,e.nextTick=tJ,e.nodeOps=iX,e.normalizeClass=ei,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!R(t)&&(e.class=ei(t)),n&&(e.style=Y(n)),e},e.normalizeStyle=Y,e.onActivated=nJ,e.onBeforeMount=n1,e.onBeforeUnmount=n4,e.onBeforeUpdate=n3,e.onDeactivated=nG,e.onErrorCaptured=re,e.onMounted=n2,e.onRenderTracked=n7,e.onRenderTriggered=n9,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n5,e.onUnmounted=n8,e.onUpdated=n6,e.onWatcherCleanup=tL,e.openBlock=il,e.patchProp=lT,e.popScopeId=function(){t2=null},e.provide=t8,e.proxyRefs=tN,e.pushScopeId=function(e){t2=e},e.queuePostFlushCb=tQ,e.reactive=tc,e.readonly=td,e.ref=tx,e.registerRuntimeCompiler=iL,e.render=l5,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||R(e)){let n=s&&tf(e),r=!1,o=!1;n&&(r=!tg(e),o=tp(e),e=eH(e)),i=Array(e.length);for(let n=0,s=e.length;nt(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r0;return"default"!==t&&(e.name=t),il(),iu(r9,null,[iv("slot",e,r&&r())],i?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);let a=ir.length;il();try{let i=o&&function e(t){return t.some(t=>!id(t)||t.type!==ie&&(t.type!==r9||!!e(t.children)))?t:null}(o(n)),a=n.key||l||i&&i.key;s=iu(r9,{key:(a&&!O(a)?a:`_${t}`)+(!i&&r?"_fb":"")},i||(r?r():[]),i&&1===e._?64:-2)}catch(e){for(let e=ir.length;e>a;e--)is();throw e}finally{o&&o._c&&(o._d=!0)}return!i&&s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),s},e.resolveComponent=function(e,t){return rr(rt,e,!0,t)||e},e.resolveDirective=function(e){return rr("directives",e)},e.resolveDynamicComponent=function(e){return R(e)?rr(rt,e,!1)||e:e||rn},e.resolveFilter=null,e.resolveTransitionHooks=nS,e.setBlockTracking=ia,e.setDevtoolsHook=S,e.setTransitionHooks=nC,e.shallowReactive=tu,e.shallowReadonly=function(e){return th(e,!0,e5,ti,ta)},e.shallowRef=tk,e.ssrContextKey=t9,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ep,e.toHandlerKey=W,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:W(r)]=e[r];return n},e.toRaw=tv,e.toRef=function(e,t,n){if(tS(e))return e;if(I(e))return new tO(e);if(!M(e)||!(arguments.length>1))return tx(e);return new tR(e,t,n)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=new tR(e,n,void 0);return t},e.toValue=function(e){return I(e)?e():tw(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tw,e.useAttrs=function(){return ru().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iI();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>lc(e,n))},r=()=>{let r=e(t.proxy);t.ce?lc(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)lc(t.el,n);else if(t.type===r9)t.children.forEach(t=>e(t,n));else if(t.type===it){let{el:e,anchor:r}=t;for(;e&&(lc(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};n3(()=>{tQ(r)}),n2(()=>{ne(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n8(()=>e.disconnect())})},e.useHost=lI,e.useId=function(){let e=iI();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iI(),i=B(t),l=H(t),s=rT(e,i),o=tI((s,o)=>{let a,c,u=b;return t7(()=>{let t=e[i];K(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!K(s,a)&&!(u!==b&&K(e,u)))return;let d=r.vnode.props,h=!!(d&&(t in d||i in d||l in d)&&(`onUpdate:${t}`in d||`onUpdate:${i}`in d||`onUpdate:${l}`in d));h||(a=e,o()),r.emit(`update:${t}`,s),K(e,u)&&(K(e,s)&&!K(s,c)||h&&u!==b&&!K(s,a))&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lI();return e&&e.shadowRoot},e.useSlots=function(){return ru().slots},e.useTemplateRef=function(e){let t=iI(),n=tk(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=np,e.vModelCheckbox=lz,e.vModelDynamic={created(e,t,n){l0(e,t,n,null,"created")},mounted(e,t,n){l0(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){l0(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){l0(e,t,n,r,"updated")}},e.vModelRadio=lG,e.vModelSelect=lX,e.vModelText=lK,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[ll]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):lo(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),lo(e,!0),r.enter(e)):r.leave(e,()=>{lo(e,!1)}):lo(e,t))},beforeUnmount(e,{value:t}){lo(e,t)}},e.version=iW,e.warn=S,e.watch=function(e,t,n){return ne(e,t,n)},e.watchEffect=function(e,t){return ne(e,null,t)},e.watchPostEffect=function(e,t){return ne(e,null,{flush:"post"})},e.watchSyncEffect=t7,e.withAsyncContext=function(e){let t=iI(),n=iP,r=e();iO(),n&&u(!1);let i=()=>{iR(t),n&&u(!0)},l=()=>{iI()!==t&&t.scope.off(),iO(),n&&u(!1)};return P(r)&&(r=r.catch(e=>{throw i(),Promise.resolve().then(()=>Promise.resolve().then(l)),e})),[r,()=>{i(),Promise.resolve().then(l)}]},e.withCtx=t6,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t1)return e;let n=ij(t1),r=e.dirs||(e.dirs=[]);for(let e=0;e{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=H(n.key);if(t.some(e=>e===r||l3[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iq(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;et6,e}({}); 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 a58d189bd..4eac120df 100644 --- a/public/doxa-maps/all-people-groups/all-people-groups.js +++ b/public/doxa-maps/all-people-groups/all-people-groups.js @@ -1,5 +1,4 @@ -(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".profile-loader[data-v-50211124]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;position:relative}.profile-error[data-v-50211124]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}")),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})(); -(function(){"use strict";var ea=typeof document<"u"?document.currentScript:null;const gb="modulepreload",db=function(e){return"/"+e},fb={},_c=function(t,n,o){let a=Promise.resolve();function s(i){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=i,window.dispatchEvent(r),!r.defaultPrevented)throw i}return a.then(i=>{for(const r of i||[])r.status==="rejected"&&s(r.reason);return t().catch(s)})};/** +(function(){"use strict";var ea=typeof document<"u"?document.currentScript:null;const db="modulepreload",fb=function(e){return"/"+e},pb={},_c=function(t,n,o){let a=Promise.resolve();function s(i){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=i,window.dispatchEvent(r),!r.defaultPrevented)throw i}return a.then(i=>{for(const r of i||[])r.status==="rejected"&&s(r.reason);return t().catch(s)})};/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT @@ -7,14 +6,14 @@ * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let $e;class Bs{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&$e&&($e.active?(this.parent=$e,this.index=($e.scopes||($e.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t0&&--this._on===0){if($e===this)$e=this.prevScope;else{let t=$e;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(Pn){let t=Pn;for(Pn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function qs(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Hs(e){let t,n=e.depsTail,o=n;for(;o;){const a=o.prevDep;o.version===-1?(o===n&&(n=a),ga(o),Pc(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=a}e.deps=t,e.depsTail=n}function ua(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vs(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vs(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ua(e))))return;e.flags|=2;const t=e.dep,n=be,o=Qe;be=e,Qe=!0;try{qs(e);const a=e.fn(e._value);(t.version===0||lt(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{be=n,Qe=o,Hs(e),e.flags&=-3}}function ga(e,t=!1){const{dep:n,prevSub:o,nextSub:a}=e;if(o&&(o.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)ga(s,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Pc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Qe=!0;const Ws=[];function ct(){Ws.push(Qe),Qe=!1}function ut(){const e=Ws.pop();Qe=e===void 0?!0:e}function Ys(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=be;be=void 0;try{t()}finally{be=n}}}let In=0;class Ic{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class da{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!be||!Qe||be===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==be)n=this.activeLink=new Ic(be,this),be.deps?(n.prevDep=be.depsTail,be.depsTail.nextDep=n,be.depsTail=n):be.deps=be.depsTail=n,Js(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=be.depsTail,n.nextDep=void 0,be.depsTail.nextDep=n,be.depsTail=n,be.deps===n&&(be.deps=o)}return n}trigger(t){this.version++,In++,this.notify(t)}notify(t){la();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ca()}}}function Js(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)Js(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const po=new WeakMap,Zt=Symbol(""),fa=Symbol(""),Mn=Symbol("");function De(e,t,n){if(Qe&&be){let o=po.get(e);o||po.set(e,o=new Map);let a=o.get(n);a||(o.set(n,a=new da),a.map=o,a.key=n),a.track()}}function yt(e,t,n,o,a,s){const i=po.get(e);if(!i){In++;return}const r=l=>{l&&l.trigger()};if(la(),t==="clear")i.forEach(r);else{const l=Z(e),c=l&&ro(n);if(l&&n==="length"){const u=Number(o);i.forEach((f,b)=>{(b==="length"||b===Mn||!Ve(b)&&b>=u)&&r(f)})}else switch((n!==void 0||i.has(void 0))&&r(i.get(n)),c&&r(i.get(Mn)),t){case"add":l?c&&r(i.get("length")):(r(i.get(Zt)),Ot(e)&&r(i.get(fa)));break;case"delete":l||(r(i.get(Zt)),Ot(e)&&r(i.get(fa)));break;case"set":Ot(e)&&r(i.get(Zt));break}}ca()}function Mc(e,t){const n=po.get(e);return n&&n.get(t)}function gn(e){const t=ie(e);return t===e?t:(De(t,"iterate",Mn),Ge(e)?t:t.map(et))}function ho(e){return De(e=ie(e),"iterate",Mn),e}function gt(e,t){return vt(e)?dn(St(e)?et(t):t):et(t)}const Dc={__proto__:null,[Symbol.iterator](){return pa(this,Symbol.iterator,e=>gt(this,e))},concat(...e){return gn(this).concat(...e.map(t=>Z(t)?gn(t):t))},entries(){return pa(this,"entries",e=>(e[1]=gt(this,e[1]),e))},every(e,t){return At(this,"every",e,t,void 0,arguments)},filter(e,t){return At(this,"filter",e,t,n=>n.map(o=>gt(this,o)),arguments)},find(e,t){return At(this,"find",e,t,n=>gt(this,n),arguments)},findIndex(e,t){return At(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return At(this,"findLast",e,t,n=>gt(this,n),arguments)},findLastIndex(e,t){return At(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return At(this,"forEach",e,t,void 0,arguments)},includes(...e){return ha(this,"includes",e)},indexOf(...e){return ha(this,"indexOf",e)},join(e){return gn(this).join(e)},lastIndexOf(...e){return ha(this,"lastIndexOf",e)},map(e,t){return At(this,"map",e,t,void 0,arguments)},pop(){return Dn(this,"pop")},push(...e){return Dn(this,"push",e)},reduce(e,...t){return Xs(this,"reduce",e,t)},reduceRight(e,...t){return Xs(this,"reduceRight",e,t)},shift(){return Dn(this,"shift")},some(e,t){return At(this,"some",e,t,void 0,arguments)},splice(...e){return Dn(this,"splice",e)},toReversed(){return gn(this).toReversed()},toSorted(e){return gn(this).toSorted(e)},toSpliced(...e){return gn(this).toSpliced(...e)},unshift(...e){return Dn(this,"unshift",e)},values(){return pa(this,"values",e=>gt(this,e))}};function pa(e,t,n){const o=ho(e),a=o[t]();return o!==e&&!Ge(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=n(s.value)),s}),a}const Rc=Array.prototype;function At(e,t,n,o,a,s){const i=ho(e),r=i!==e&&!Ge(e),l=i[t];if(l!==Rc[t]){const f=l.apply(e,s);return r?et(f):f}let c=n;i!==e&&(r?c=function(f,b){return n.call(this,gt(e,f),b,e)}:n.length>2&&(c=function(f,b){return n.call(this,f,b,e)}));const u=l.call(i,c,o);return r&&a?a(u):u}function Xs(e,t,n,o){const a=ho(e),s=a!==e&&!Ge(e);let i=n,r=!1;a!==e&&(s?(r=o.length===0,i=function(c,u,f){return r&&(r=!1,c=gt(e,c)),n.call(this,c,gt(e,u),f,e)}):n.length>3&&(i=function(c,u,f){return n.call(this,c,u,f,e)}));const l=a[t](i,...o);return r?gt(e,l):l}function ha(e,t,n){const o=ie(e);De(o,"iterate",Mn);const a=o[t](...n);return(a===-1||a===!1)&&So(n[0])?(n[0]=ie(n[0]),o[t](...n)):a}function Dn(e,t,n=[]){ct(),la();const o=ie(e)[t].apply(e,n);return ca(),ut(),o}const Fc=ta("__proto__,__v_isRef,__isVue"),Zs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ve));function Oc(e){Ve(e)||(e=String(e));const t=ie(this);return De(t,"has",e),t.hasOwnProperty(e)}class Qs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const a=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!a;if(n==="__v_isReadonly")return a;if(n==="__v_isShallow")return s;if(n==="__v_raw")return o===(a?s?si:ai:s?oi:ni).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=Z(t);if(!a){let l;if(i&&(l=Dc[n]))return l;if(n==="hasOwnProperty")return Oc}const r=Reflect.get(t,n,ve(t)?t:o);if((Ve(n)?Zs.has(n):Fc(n))||(a||De(t,"get",n),s))return r;if(ve(r)){const l=i&&ro(n)?r:r.value;return a&&ce(l)?ba(l):l}return ce(r)?a?ba(r):yo(r):r}}class ei extends Qs{constructor(t=!1){super(!1,t)}set(t,n,o,a){let s=t[n];const i=Z(t)&&ro(n);if(!this._isShallow){const c=vt(s);if(!Ge(o)&&!vt(o)&&(s=ie(s),o=ie(o)),!i&&ve(s)&&!ve(o))return c||(s.value=o),!0}const r=i?Number(n)e,mo=e=>Reflect.getPrototypeOf(e);function Uc(e,t,n){return function(...o){const a=this.__v_raw,s=ie(a),i=Ot(s),r=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=a[e](...o),u=n?ma:t?dn:et;return!t&&De(s,"iterate",l?fa:Zt),ke(Object.create(c),{next(){const{value:f,done:b}=c.next();return b?{value:f,done:b}:{value:r?[u(f[0]),u(f[1])]:u(f),done:b}}})}}function bo(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Gc(e,t){const n={get(a){const s=this.__v_raw,i=ie(s),r=ie(a);e||(lt(a,r)&&De(i,"get",a),De(i,"get",r));const{has:l}=mo(i),c=t?ma:e?dn:et;if(l.call(i,a))return c(s.get(a));if(l.call(i,r))return c(s.get(r));s!==i&&s.get(a)},get size(){const a=this.__v_raw;return!e&&De(ie(a),"iterate",Zt),a.size},has(a){const s=this.__v_raw,i=ie(s),r=ie(a);return e||(lt(a,r)&&De(i,"has",a),De(i,"has",r)),a===r?s.has(a):s.has(a)||s.has(r)},forEach(a,s){const i=this,r=i.__v_raw,l=ie(r),c=t?ma:e?dn:et;return!e&&De(l,"iterate",Zt),r.forEach((u,f)=>a.call(s,c(u),c(f),i))}};return ke(n,e?{add:bo("add"),set:bo("set"),delete:bo("delete"),clear:bo("clear")}:{add(a){const s=ie(this),i=mo(s),r=ie(a),l=!t&&!Ge(a)&&!vt(a)?r:a;return i.has.call(s,l)||lt(a,l)&&i.has.call(s,a)||lt(r,l)&&i.has.call(s,r)||(s.add(l),yt(s,"add",l,l)),this},set(a,s){!t&&!Ge(s)&&!vt(s)&&(s=ie(s));const i=ie(this),{has:r,get:l}=mo(i);let c=r.call(i,a);c||(a=ie(a),c=r.call(i,a));const u=l.call(i,a);return i.set(a,s),c?lt(s,u)&&yt(i,"set",a,s):yt(i,"add",a,s),this},delete(a){const s=ie(this),{has:i,get:r}=mo(s);let l=i.call(s,a);l||(a=ie(a),l=i.call(s,a)),r&&r.call(s,a);const c=s.delete(a);return l&&yt(s,"delete",a,void 0),c},clear(){const a=ie(this),s=a.size!==0,i=a.clear();return s&&yt(a,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(a=>{n[a]=Uc(a,e,t)}),n}function _o(e,t){const n=Gc(e,t);return(o,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?o:Reflect.get(le(n,a)&&a in o?n:o,a,s)}const zc={get:_o(!1,!1)},qc={get:_o(!1,!0)},Hc={get:_o(!0,!1)},Vc={get:_o(!0,!0)},ni=new WeakMap,oi=new WeakMap,ai=new WeakMap,si=new WeakMap;function Wc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function yo(e){return vt(e)?e:Ao(e,!1,xc,zc,ni)}function Yc(e){return Ao(e,!1,Bc,qc,oi)}function ba(e){return Ao(e,!0,jc,Hc,ai)}function hb(e){return Ao(e,!0,Kc,Vc,si)}function Ao(e,t,n,o,a){if(!ce(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const i=Wc(Ac(e));if(i===0)return e;const r=new Proxy(e,i===2?o:n);return a.set(e,r),r}function St(e){return vt(e)?St(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function Ge(e){return!!(e&&e.__v_isShallow)}function So(e){return e?!!e.__v_raw:!1}function ie(e){const t=e&&e.__v_raw;return t?ie(t):e}function Rn(e){return!le(e,"__v_skip")&&Object.isExtensible(e)&&Ms(e,"__v_skip",!0),e}const et=e=>ce(e)?yo(e):e,dn=e=>ce(e)?ba(e):e;function ve(e){return e?e.__v_isRef===!0:!1}function pe(e){return ii(e,!1)}function _a(e){return ii(e,!0)}function ii(e,t){return ve(e)?e:new Jc(e,t)}class Jc{constructor(t,n){this.dep=new da,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ie(t),this._value=n?t:et(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Ge(t)||vt(t);t=o?t:ie(t),lt(t,n)&&(this._rawValue=t,this._value=o?t:et(t),this.dep.trigger())}}function vo(e){return ve(e)?e.value:e}const Xc={get:(e,t,n)=>t==="__v_raw"?e:vo(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const a=e[t];return ve(a)&&!ve(n)?(a.value=n,!0):Reflect.set(e,t,n,o)}};function ri(e){return St(e)?e:new Proxy(e,Xc)}function Zc(e){const t=Z(e)?new Array(e.length):{};for(const n in e)t[n]=eu(e,n);return t}class Qc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Ve(n)?n:String(n),this._raw=ie(t);let a=!0,s=t;if(!Z(t)||Ve(this._key)||!ro(this._key))do a=!So(s)||Ge(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=vo(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ve(this._raw[this._key])){const n=this._object[this._key];if(ve(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Mc(this._raw,this._key)}}function eu(e,t,n){return new Qc(e,t,n)}class tu{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new da(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&be!==this)return zs(this,!0),!0}get value(){const t=this.dep.track();return Vs(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function nu(e,t,n=!1){let o,a;return te(e)?o=e:(o=e.get,a=e.set),new tu(o,a,n)}const ko={},To=new WeakMap;let Qt;function ou(e,t=!1,n=Qt){if(n){let o=To.get(n);o||To.set(n,o=[]),o.push(e)}}function au(e,t,n=me){const{immediate:o,deep:a,once:s,scheduler:i,augmentJob:r,call:l}=n,c=h=>a?h:Ge(h)||a===!1||a===0?xt(h,1):xt(h);let u,f,b,v,E=!1,A=!1;if(ve(e)?(f=()=>e.value,E=Ge(e)):St(e)?(f=()=>c(e),E=!0):Z(e)?(A=!0,E=e.some(h=>St(h)||Ge(h)),f=()=>e.map(h=>{if(ve(h))return h.value;if(St(h))return c(h);if(te(h))return l?l(h,2):h()})):te(e)?t?f=l?()=>l(e,2):e:f=()=>{if(b){ct();try{b()}finally{ut()}}const h=Qt;Qt=u;try{return l?l(e,3,[v]):e(v)}finally{Qt=h}}:f=rt,t&&a){const h=f,T=a===!0?1/0:a;f=()=>xt(h(),T)}const R=Ks(),M=()=>{u.stop(),R&&R.active&&na(R.effects,u)};if(s&&t){const h=t;t=(...T)=>{const C=h(...T);return M(),C}}let L=A?new Array(e.length).fill(ko):ko;const y=h=>{if(!(!(u.flags&1)||!u.dirty&&!h))if(t){const T=u.run();if(h||a||E||(A?T.some((C,I)=>lt(C,L[I])):lt(T,L))){b&&b();const C=Qt;Qt=u;try{const I=[T,L===ko?void 0:A&&L[0]===ko?[]:L,v];L=T,l?l(t,3,I):t(...I)}finally{Qt=C}}}else u.run()};return r&&r(y),u=new Us(f),u.scheduler=i?()=>i(y,!1):y,v=h=>ou(h,!1,u),b=u.onStop=()=>{const h=To.get(u);if(h){if(l)l(h,4);else for(const T of h)T();To.delete(u)}},t?o?y(!0):L=u.run():i?i(y.bind(null,!0),!0):u.run(),M.pause=u.pause.bind(u),M.resume=u.resume.bind(u),M.stop=M,M}function xt(e,t=1/0,n){if(t<=0||!ce(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ve(e))xt(e.value,t,n);else if(Z(e))for(let o=0;o{xt(o,t,n)});else if(io(e)){for(const o in e)xt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&xt(e[o],t,n)}return e}/** +**/let $e;class Bs{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&$e&&($e.active?(this.parent=$e,this.index=($e.scopes||($e.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t0&&--this._on===0){if($e===this)$e=this.prevScope;else{let t=$e;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(Pn){let t=Pn;for(Pn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function qs(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Hs(e){let t,n=e.depsTail,o=n;for(;o;){const a=o.prevDep;o.version===-1?(o===n&&(n=a),ga(o),Pc(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=a}e.deps=t,e.depsTail=n}function ua(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vs(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vs(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ua(e))))return;e.flags|=2;const t=e.dep,n=be,o=Qe;be=e,Qe=!0;try{qs(e);const a=e.fn(e._value);(t.version===0||lt(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{be=n,Qe=o,Hs(e),e.flags&=-3}}function ga(e,t=!1){const{dep:n,prevSub:o,nextSub:a}=e;if(o&&(o.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)ga(s,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Pc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Qe=!0;const Ws=[];function ct(){Ws.push(Qe),Qe=!1}function ut(){const e=Ws.pop();Qe=e===void 0?!0:e}function Ys(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=be;be=void 0;try{t()}finally{be=n}}}let In=0;class Ic{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class da{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!be||!Qe||be===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==be)n=this.activeLink=new Ic(be,this),be.deps?(n.prevDep=be.depsTail,be.depsTail.nextDep=n,be.depsTail=n):be.deps=be.depsTail=n,Js(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=be.depsTail,n.nextDep=void 0,be.depsTail.nextDep=n,be.depsTail=n,be.deps===n&&(be.deps=o)}return n}trigger(t){this.version++,In++,this.notify(t)}notify(t){la();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ca()}}}function Js(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)Js(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const po=new WeakMap,Zt=Symbol(""),fa=Symbol(""),Mn=Symbol("");function De(e,t,n){if(Qe&&be){let o=po.get(e);o||po.set(e,o=new Map);let a=o.get(n);a||(o.set(n,a=new da),a.map=o,a.key=n),a.track()}}function yt(e,t,n,o,a,s){const i=po.get(e);if(!i){In++;return}const r=l=>{l&&l.trigger()};if(la(),t==="clear")i.forEach(r);else{const l=Z(e),c=l&&ro(n);if(l&&n==="length"){const u=Number(o);i.forEach((f,b)=>{(b==="length"||b===Mn||!Ve(b)&&b>=u)&&r(f)})}else switch((n!==void 0||i.has(void 0))&&r(i.get(n)),c&&r(i.get(Mn)),t){case"add":l?c&&r(i.get("length")):(r(i.get(Zt)),Ot(e)&&r(i.get(fa)));break;case"delete":l||(r(i.get(Zt)),Ot(e)&&r(i.get(fa)));break;case"set":Ot(e)&&r(i.get(Zt));break}}ca()}function Mc(e,t){const n=po.get(e);return n&&n.get(t)}function gn(e){const t=ie(e);return t===e?t:(De(t,"iterate",Mn),Ge(e)?t:t.map(et))}function ho(e){return De(e=ie(e),"iterate",Mn),e}function gt(e,t){return vt(e)?dn(St(e)?et(t):t):et(t)}const Dc={__proto__:null,[Symbol.iterator](){return pa(this,Symbol.iterator,e=>gt(this,e))},concat(...e){return gn(this).concat(...e.map(t=>Z(t)?gn(t):t))},entries(){return pa(this,"entries",e=>(e[1]=gt(this,e[1]),e))},every(e,t){return At(this,"every",e,t,void 0,arguments)},filter(e,t){return At(this,"filter",e,t,n=>n.map(o=>gt(this,o)),arguments)},find(e,t){return At(this,"find",e,t,n=>gt(this,n),arguments)},findIndex(e,t){return At(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return At(this,"findLast",e,t,n=>gt(this,n),arguments)},findLastIndex(e,t){return At(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return At(this,"forEach",e,t,void 0,arguments)},includes(...e){return ha(this,"includes",e)},indexOf(...e){return ha(this,"indexOf",e)},join(e){return gn(this).join(e)},lastIndexOf(...e){return ha(this,"lastIndexOf",e)},map(e,t){return At(this,"map",e,t,void 0,arguments)},pop(){return Dn(this,"pop")},push(...e){return Dn(this,"push",e)},reduce(e,...t){return Xs(this,"reduce",e,t)},reduceRight(e,...t){return Xs(this,"reduceRight",e,t)},shift(){return Dn(this,"shift")},some(e,t){return At(this,"some",e,t,void 0,arguments)},splice(...e){return Dn(this,"splice",e)},toReversed(){return gn(this).toReversed()},toSorted(e){return gn(this).toSorted(e)},toSpliced(...e){return gn(this).toSpliced(...e)},unshift(...e){return Dn(this,"unshift",e)},values(){return pa(this,"values",e=>gt(this,e))}};function pa(e,t,n){const o=ho(e),a=o[t]();return o!==e&&!Ge(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=n(s.value)),s}),a}const Rc=Array.prototype;function At(e,t,n,o,a,s){const i=ho(e),r=i!==e&&!Ge(e),l=i[t];if(l!==Rc[t]){const f=l.apply(e,s);return r?et(f):f}let c=n;i!==e&&(r?c=function(f,b){return n.call(this,gt(e,f),b,e)}:n.length>2&&(c=function(f,b){return n.call(this,f,b,e)}));const u=l.call(i,c,o);return r&&a?a(u):u}function Xs(e,t,n,o){const a=ho(e),s=a!==e&&!Ge(e);let i=n,r=!1;a!==e&&(s?(r=o.length===0,i=function(c,u,f){return r&&(r=!1,c=gt(e,c)),n.call(this,c,gt(e,u),f,e)}):n.length>3&&(i=function(c,u,f){return n.call(this,c,u,f,e)}));const l=a[t](i,...o);return r?gt(e,l):l}function ha(e,t,n){const o=ie(e);De(o,"iterate",Mn);const a=o[t](...n);return(a===-1||a===!1)&&So(n[0])?(n[0]=ie(n[0]),o[t](...n)):a}function Dn(e,t,n=[]){ct(),la();const o=ie(e)[t].apply(e,n);return ca(),ut(),o}const Fc=ta("__proto__,__v_isRef,__isVue"),Zs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ve));function Oc(e){Ve(e)||(e=String(e));const t=ie(this);return De(t,"has",e),t.hasOwnProperty(e)}class Qs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const a=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!a;if(n==="__v_isReadonly")return a;if(n==="__v_isShallow")return s;if(n==="__v_raw")return o===(a?s?si:ai:s?oi:ni).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=Z(t);if(!a){let l;if(i&&(l=Dc[n]))return l;if(n==="hasOwnProperty")return Oc}const r=Reflect.get(t,n,ve(t)?t:o);if((Ve(n)?Zs.has(n):Fc(n))||(a||De(t,"get",n),s))return r;if(ve(r)){const l=i&&ro(n)?r:r.value;return a&&ce(l)?ba(l):l}return ce(r)?a?ba(r):yo(r):r}}class ei extends Qs{constructor(t=!1){super(!1,t)}set(t,n,o,a){let s=t[n];const i=Z(t)&&ro(n);if(!this._isShallow){const c=vt(s);if(!Ge(o)&&!vt(o)&&(s=ie(s),o=ie(o)),!i&&ve(s)&&!ve(o))return c||(s.value=o),!0}const r=i?Number(n)e,mo=e=>Reflect.getPrototypeOf(e);function Uc(e,t,n){return function(...o){const a=this.__v_raw,s=ie(a),i=Ot(s),r=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=a[e](...o),u=n?ma:t?dn:et;return!t&&De(s,"iterate",l?fa:Zt),ke(Object.create(c),{next(){const{value:f,done:b}=c.next();return b?{value:f,done:b}:{value:r?[u(f[0]),u(f[1])]:u(f),done:b}}})}}function bo(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Gc(e,t){const n={get(a){const s=this.__v_raw,i=ie(s),r=ie(a);e||(lt(a,r)&&De(i,"get",a),De(i,"get",r));const{has:l}=mo(i),c=t?ma:e?dn:et;if(l.call(i,a))return c(s.get(a));if(l.call(i,r))return c(s.get(r));s!==i&&s.get(a)},get size(){const a=this.__v_raw;return!e&&De(ie(a),"iterate",Zt),a.size},has(a){const s=this.__v_raw,i=ie(s),r=ie(a);return e||(lt(a,r)&&De(i,"has",a),De(i,"has",r)),a===r?s.has(a):s.has(a)||s.has(r)},forEach(a,s){const i=this,r=i.__v_raw,l=ie(r),c=t?ma:e?dn:et;return!e&&De(l,"iterate",Zt),r.forEach((u,f)=>a.call(s,c(u),c(f),i))}};return ke(n,e?{add:bo("add"),set:bo("set"),delete:bo("delete"),clear:bo("clear")}:{add(a){const s=ie(this),i=mo(s),r=ie(a),l=!t&&!Ge(a)&&!vt(a)?r:a;return i.has.call(s,l)||lt(a,l)&&i.has.call(s,a)||lt(r,l)&&i.has.call(s,r)||(s.add(l),yt(s,"add",l,l)),this},set(a,s){!t&&!Ge(s)&&!vt(s)&&(s=ie(s));const i=ie(this),{has:r,get:l}=mo(i);let c=r.call(i,a);c||(a=ie(a),c=r.call(i,a));const u=l.call(i,a);return i.set(a,s),c?lt(s,u)&&yt(i,"set",a,s):yt(i,"add",a,s),this},delete(a){const s=ie(this),{has:i,get:r}=mo(s);let l=i.call(s,a);l||(a=ie(a),l=i.call(s,a)),r&&r.call(s,a);const c=s.delete(a);return l&&yt(s,"delete",a,void 0),c},clear(){const a=ie(this),s=a.size!==0,i=a.clear();return s&&yt(a,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(a=>{n[a]=Uc(a,e,t)}),n}function _o(e,t){const n=Gc(e,t);return(o,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?o:Reflect.get(le(n,a)&&a in o?n:o,a,s)}const zc={get:_o(!1,!1)},qc={get:_o(!1,!0)},Hc={get:_o(!0,!1)},Vc={get:_o(!0,!0)},ni=new WeakMap,oi=new WeakMap,ai=new WeakMap,si=new WeakMap;function Wc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function yo(e){return vt(e)?e:Ao(e,!1,xc,zc,ni)}function Yc(e){return Ao(e,!1,Bc,qc,oi)}function ba(e){return Ao(e,!0,jc,Hc,ai)}function mb(e){return Ao(e,!0,Kc,Vc,si)}function Ao(e,t,n,o,a){if(!ce(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const i=Wc(Ac(e));if(i===0)return e;const r=new Proxy(e,i===2?o:n);return a.set(e,r),r}function St(e){return vt(e)?St(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function Ge(e){return!!(e&&e.__v_isShallow)}function So(e){return e?!!e.__v_raw:!1}function ie(e){const t=e&&e.__v_raw;return t?ie(t):e}function Rn(e){return!le(e,"__v_skip")&&Object.isExtensible(e)&&Ms(e,"__v_skip",!0),e}const et=e=>ce(e)?yo(e):e,dn=e=>ce(e)?ba(e):e;function ve(e){return e?e.__v_isRef===!0:!1}function pe(e){return ii(e,!1)}function _a(e){return ii(e,!0)}function ii(e,t){return ve(e)?e:new Jc(e,t)}class Jc{constructor(t,n){this.dep=new da,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ie(t),this._value=n?t:et(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Ge(t)||vt(t);t=o?t:ie(t),lt(t,n)&&(this._rawValue=t,this._value=o?t:et(t),this.dep.trigger())}}function vo(e){return ve(e)?e.value:e}const Xc={get:(e,t,n)=>t==="__v_raw"?e:vo(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const a=e[t];return ve(a)&&!ve(n)?(a.value=n,!0):Reflect.set(e,t,n,o)}};function ri(e){return St(e)?e:new Proxy(e,Xc)}function Zc(e){const t=Z(e)?new Array(e.length):{};for(const n in e)t[n]=eu(e,n);return t}class Qc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Ve(n)?n:String(n),this._raw=ie(t);let a=!0,s=t;if(!Z(t)||Ve(this._key)||!ro(this._key))do a=!So(s)||Ge(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=vo(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ve(this._raw[this._key])){const n=this._object[this._key];if(ve(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Mc(this._raw,this._key)}}function eu(e,t,n){return new Qc(e,t,n)}class tu{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new da(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&be!==this)return zs(this,!0),!0}get value(){const t=this.dep.track();return Vs(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function nu(e,t,n=!1){let o,a;return te(e)?o=e:(o=e.get,a=e.set),new tu(o,a,n)}const ko={},To=new WeakMap;let Qt;function ou(e,t=!1,n=Qt){if(n){let o=To.get(n);o||To.set(n,o=[]),o.push(e)}}function au(e,t,n=me){const{immediate:o,deep:a,once:s,scheduler:i,augmentJob:r,call:l}=n,c=h=>a?h:Ge(h)||a===!1||a===0?xt(h,1):xt(h);let u,f,b,v,E=!1,A=!1;if(ve(e)?(f=()=>e.value,E=Ge(e)):St(e)?(f=()=>c(e),E=!0):Z(e)?(A=!0,E=e.some(h=>St(h)||Ge(h)),f=()=>e.map(h=>{if(ve(h))return h.value;if(St(h))return c(h);if(te(h))return l?l(h,2):h()})):te(e)?t?f=l?()=>l(e,2):e:f=()=>{if(b){ct();try{b()}finally{ut()}}const h=Qt;Qt=u;try{return l?l(e,3,[v]):e(v)}finally{Qt=h}}:f=rt,t&&a){const h=f,T=a===!0?1/0:a;f=()=>xt(h(),T)}const R=Ks(),M=()=>{u.stop(),R&&R.active&&na(R.effects,u)};if(s&&t){const h=t;t=(...T)=>{const C=h(...T);return M(),C}}let L=A?new Array(e.length).fill(ko):ko;const y=h=>{if(!(!(u.flags&1)||!u.dirty&&!h))if(t){const T=u.run();if(h||a||E||(A?T.some((C,I)=>lt(C,L[I])):lt(T,L))){b&&b();const C=Qt;Qt=u;try{const I=[T,L===ko?void 0:A&&L[0]===ko?[]:L,v];L=T,l?l(t,3,I):t(...I)}finally{Qt=C}}}else u.run()};return r&&r(y),u=new Us(f),u.scheduler=i?()=>i(y,!1):y,v=h=>ou(h,!1,u),b=u.onStop=()=>{const h=To.get(u);if(h){if(l)l(h,4);else for(const T of h)T();To.delete(u)}},t?o?y(!0):L=u.run():i?i(y.bind(null,!0),!0):u.run(),M.pause=u.pause.bind(u),M.resume=u.resume.bind(u),M.stop=M,M}function xt(e,t=1/0,n){if(t<=0||!ce(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ve(e))xt(e.value,t,n);else if(Z(e))for(let o=0;o{xt(o,t,n)});else if(io(e)){for(const o in e)xt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&xt(e[o],t,n)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Fn=[];let ya=!1;function mb(e,...t){if(ya)return;ya=!0,ct();const n=Fn.length?Fn[Fn.length-1].component:null,o=n&&n.appContext.config.warnHandler,a=su();if(o)fn(o,n,11,[e+t.map(s=>{var i,r;return(r=(i=s.toString)==null?void 0:i.call(s))!=null?r:JSON.stringify(s)}).join(""),n&&n.proxy,a.map(({vnode:s})=>`at <${ar(n,s.type)}>`).join(` +**/const Fn=[];let ya=!1;function bb(e,...t){if(ya)return;ya=!0,ct();const n=Fn.length?Fn[Fn.length-1].component:null,o=n&&n.appContext.config.warnHandler,a=su();if(o)fn(o,n,11,[e+t.map(s=>{var i,r;return(r=(i=s.toString)==null?void 0:i.call(s))!=null?r:JSON.stringify(s)}).join(""),n&&n.proxy,a.map(({vnode:s})=>`at <${ar(n,s.type)}>`).join(` `),a]);else{const s=[`[Vue warn]: ${e}`,...t];a.length&&s.push(` `,...iu(a)),console.warn(...s)}ut(),ya=!1}function su(){let e=Fn[Fn.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function iu(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` -`],...ru(n))}),t}function ru({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,a=` at <${ar(e.component,e.type,o)}`,s=">"+n;return e.props?[a,...lu(e.props),s]:[a+s]}function lu(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...li(o,e[o]))}),n.length>3&&t.push(" ..."),t}function li(e,t,n){return Ae(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:ve(t)?(t=li(e,ie(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):te(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=ie(t),n?t:[`${e}=`,t])}function fn(e,t,n,o){try{return o?e(...o):e()}catch(a){On(a,t,n)}}function tt(e,t,n,o){if(te(e)){const a=fn(e,t,n,o);return a&&Ps(a)&&a.catch(s=>{On(s,t,n)}),a}if(Z(e)){const a=[];for(let s=0;s>>1,a=Re[o],s=xn(a);s=xn(n)?Re.push(e):Re.splice(uu(t),0,e),e.flags|=1,ui()}}function ui(){$o||($o=ci.then(fi))}function gu(e){if(!Z(e))jt&&e.id===-1?jt.splice(hn+1,0,e):e.flags&1||(pn.push(e),e.flags|=1);else for(let t=0;txn(n)-xn(o));if(pn.length=0,jt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function fi(e){try{for(dt=0;dt{o._d&&Ro(-1);const s=Eo(t),i=an.length;let r;try{r=e(...a)}finally{for(let l=an.length;l>i;l--)Ji();Eo(s),o._d&&Ro(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function en(e,t,n,o){const a=e.dirs,s=t&&t.dirs;for(let i=0;i1)return n&&te(t)?t.call(o&&o.proxy):t}}function fu(){return!!(Ct()||nn)}const pu=Symbol.for("v-scx"),hu=()=>Fe(pu);function mu(e,t){return va(e,null,t)}function tn(e,t,n){return va(e,t,n)}function va(e,t,n=me){const{immediate:o,deep:a,flush:s,once:i}=n,r=ke({},n),l=t&&o||!t&&s!=="post";let c;if(_n){if(s==="sync"){const v=hu();c=v.__watcherHandles||(v.__watcherHandles=[])}else if(!l){const v=()=>{};return v.stop=rt,v.resume=rt,v.pause=rt,v}}const u=Pe;r.call=(v,E,A)=>tt(v,u,E,A);let f=!1;s==="post"?r.scheduler=v=>{Ke(v,u&&u.suspense)}:s!=="sync"&&(f=!0,r.scheduler=(v,E)=>{E?v():Sa(v)}),r.augmentJob=v=>{t&&(v.flags|=4),f&&(v.flags|=2,u&&(v.id=u.uid,v.i=u))};const b=au(e,t,r);return _n&&(c?c.push(b):l&&b()),b}function bu(e,t,n){const o=this.proxy,a=Ae(e)?e.includes(".")?hi(o,e):()=>o[e]:e.bind(o,o);let s;te(t)?s=t:(s=t.handler,n=t);const i=Yn(this),r=va(a,s.bind(o),n);return i(),r}function hi(e,t){const n=t.split(".");return()=>{let o=e;for(let a=0;ae.__isTeleport,ka=Symbol("_leaveCb");function yu(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Tt){t=n;break}}return t}function mi(e){if(!wo(e))return Lo(e.type)&&e.children?yu(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&te(n.default))return n.default()}}function Ta(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Ta(Lo(n.type)&&mi(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function jn(e,t){return te(e)?ke({name:e.name},t,{setup:e}):e}function $a(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function bi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Co=new WeakMap;function Bn(e,t,n,o,a=!1){if(Z(e)){e.forEach((A,R)=>Bn(A,t&&(Z(t)?t[R]:t),n,o,a));return}if(Kn(o)&&!a){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Bn(e,t,n,o.component.subTree);return}const s=o.shapeFlag&4?Fa(o.component):o.el,i=a?null:s,{i:r,r:l}=e,c=t&&t.r,u=r.refs===me?r.refs={}:r.refs,f=r.setupState,b=ie(f),v=f===me?Ns:A=>bi(u,A)?!1:le(b,A),E=(A,R)=>!(R&&bi(u,R));if(c!=null&&c!==l){if(_i(t),Ae(c))u[c]=null,v(c)&&(f[c]=null);else if(ve(c)){const A=t;E(c,A.k)&&(c.value=null),A.k&&(u[A.k]=null)}}if(te(l))fn(l,r,12,[i,u]);else{const A=Ae(l),R=ve(l);if(A||R){const M=()=>{if(e.f){const L=A?v(l)?f[l]:u[l]:E()||!e.k?l.value:u[e.k];if(a)Z(L)&&na(L,s);else if(Z(L))L.includes(s)||L.push(s);else if(A)u[l]=[s],v(l)&&(f[l]=u[l]);else{const y=[s];E(l,e.k)&&(l.value=y),e.k&&(u[e.k]=y)}}else A?(u[l]=i,v(l)&&(f[l]=i)):R&&(E(l,e.k)&&(l.value=i),e.k&&(u[e.k]=i))};if(i){const L=()=>{M(),Co.delete(e)};L.id=-1,Co.set(e,L),Ke(L,n)}else _i(e),M()}}}function _i(e){const t=Co.get(e);t&&(t.flags|=8,Co.delete(e))}const yi=e=>e.nodeType===8;uo().requestIdleCallback,uo().cancelIdleCallback;function Au(e,t){if(yi(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(yi(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const Kn=e=>!!e.type.__asyncLoader;function Su(e){te(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:a=200,hydrate:s,timeout:i,suspensible:r=!0,onError:l}=e;let c=null,u,f=0;const b=()=>(f++,c=null,v()),v=()=>{let E;return c||(E=c=t().catch(A=>{if(A=A instanceof Error?A:new Error(String(A)),l)return new Promise((R,M)=>{l(A,()=>R(b()),()=>M(A),f+1)});throw A}).then(A=>E!==c&&c?c:(A&&(A.__esModule||A[Symbol.toStringTag]==="Module")&&(A=A.default),u=A,A)))};return jn({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(E,A,R){const M=E.isConnected;let L=!1;(A.bu||(A.bu=[])).push(()=>L=!0);const y=()=>{L||!E.parentNode||M&&!E.isConnected||R()},h=s?()=>{const T=s(y,C=>Au(E,C));T&&(A.bum||(A.bum=[])).push(T)}:y;u?h():v().then(()=>!A.isUnmounted&&h())},get __asyncResolved(){return u},setup(){const E=Pe;if($a(E),u)return()=>No(u,E);const A=T=>{c=null,On(T,E,13,!o)};if(r&&E.suspense||_n)return v().then(T=>()=>No(T,E)).catch(T=>(A(T),()=>o?Ne(o,{error:T}):null));const R=pe(!1),M=pe(),L=pe(!!a);let y,h;return Io(()=>{y!=null&&clearTimeout(y),h!=null&&clearTimeout(h)}),a&&(h=setTimeout(()=>{E.isUnmounted||(L.value=!1)},a)),i!=null&&(y=setTimeout(()=>{if(!E.isUnmounted&&!R.value&&!M.value){const T=new Error(`Async component timed out after ${i}ms.`);A(T),M.value=T}},i)),v().then(()=>{E.isUnmounted||(R.value=!0,E.parent&&wo(E.parent.vnode)&&E.parent.update())}).catch(T=>{if(E.isUnmounted){c=null;return}A(T),M.value=T}),()=>{if(R.value&&u)return No(u,E);if(M.value&&o)return Ne(o,{error:M.value});if(n&&!L.value)return No(n,E)}}})}function No(e,t){const{ref:n,props:o,children:a,ce:s}=t.vnode,i=Ne(e,o,a);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const wo=e=>e.type.__isKeepAlive;function vu(e,t){Ai(e,"a",t)}function ku(e,t){Ai(e,"da",t)}function Ai(e,t,n=Pe){const o=e.__wdc||(e.__wdc=()=>{let a=n;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Po(t,o,n),n){let a=n.parent;for(;a&&a.parent;)wo(a.parent.vnode)&&Tu(o,t,n,a),a=a.parent}}function Tu(e,t,n,o){const a=Po(t,e,o,!0);Io(()=>{na(o[t],a)},n)}function Po(e,t,n=Pe,o=!1){if(n){const a=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{ct();const r=Yn(n),l=tt(t,n,e,i);return r(),ut(),l});return o?a.unshift(s):a.push(s),s}}const kt=e=>(t,n=Pe)=>{(!_n||e==="sp")&&Po(e,(...o)=>t(...o),n)},Si=kt("bm"),Un=kt("m"),$u=kt("bu"),Eu=kt("u"),Ea=kt("bum"),Io=kt("um"),Lu=kt("sp"),Cu=kt("rtg"),Nu=kt("rtc");function wu(e,t=Pe){Po("ec",e,t)}const Pu="components",vi=Symbol.for("v-ndc");function ki(e){return Ae(e)?Iu(Pu,e,!1)||e:e||vi}function Iu(e,t,n=!0,o=!1){const a=nt||Pe;if(a){const s=a.type;{const r=or(s,!1);if(r&&(r===t||r===Ce(t)||r===co(Ce(t))))return s}const i=Ti(a[e]||s[e],t)||Ti(a.appContext[e],t);return!i&&o?s:i}}function Ti(e,t){return e&&(e[t]||e[Ce(t)]||e[co(Ce(t))])}function Mu(e,t,n,o){let a;const s=n,i=Z(e);if(i||Ae(e)){const r=i&&St(e);let l=!1,c=!1;r&&(l=!Ge(e),c=vt(e),e=ho(e)),a=new Array(e.length);for(let u=0,f=e.length;ut(r,l,void 0,s));else{const r=Object.keys(e);a=new Array(r.length);for(let l=0,c=r.length;le?er(e)?Fa(e):La(e.parent):null,Gn=ke(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>La(e.parent),$root:e=>La(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ci(e),$forceUpdate:e=>e.f||(e.f=()=>{Sa(e.update)}),$nextTick:e=>e.n||(e.n=Aa.bind(e.proxy)),$watch:e=>bu.bind(e)}),Ca=(e,t)=>e!==me&&!e.__isScriptSetup&&le(e,t),Du={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:a,props:s,accessCache:i,type:r,appContext:l}=e;if(t[0]!=="$"){const b=i[t];if(b!==void 0)switch(b){case 1:return o[t];case 2:return a[t];case 4:return n[t];case 3:return s[t]}else{if(Ca(o,t))return i[t]=1,o[t];if(a!==me&&le(a,t))return i[t]=2,a[t];if(le(s,t))return i[t]=3,s[t];if(n!==me&&le(n,t))return i[t]=4,n[t];Na&&(i[t]=0)}}const c=Gn[t];let u,f;if(c)return t==="$attrs"&&De(e.attrs,"get",""),c(e);if((u=r.__cssModules)&&(u=u[t]))return u;if(n!==me&&le(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,le(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:a,ctx:s}=e;return Ca(a,t)?(a[t]=n,!0):o!==me&&le(o,t)?(o[t]=n,!0):le(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:a,props:s,type:i}},r){let l;return!!(n[r]||e!==me&&r[0]!=="$"&&le(e,r)||Ca(t,r)||le(s,r)||le(o,r)||le(Gn,r)||le(a.config.globalProperties,r)||(l=i.__cssModules)&&l[r])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:le(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function $i(e){return Z(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Na=!0;function Ru(e){const t=Ci(e),n=e.proxy,o=e.ctx;Na=!1,t.beforeCreate&&Ei(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:i,watch:r,provide:l,inject:c,created:u,beforeMount:f,mounted:b,beforeUpdate:v,updated:E,activated:A,deactivated:R,beforeDestroy:M,beforeUnmount:L,destroyed:y,unmounted:h,render:T,renderTracked:C,renderTriggered:I,errorCaptured:F,serverPrefetch:S,expose:W,inheritAttrs:ae,components:H,directives:ee,filters:Y}=t;if(c&&Fu(c,o,null),i)for(const B in i){const V=i[B];te(V)&&(o[B]=V.bind(n))}if(a){const B=a.call(n,n);ce(B)&&(e.data=yo(B))}if(Na=!0,s)for(const B in s){const V=s[B],X=te(V)?V.bind(n,n):te(V.get)?V.get.bind(n,n):rt,ue=!te(V)&&te(V.set)?V.set.bind(n):rt,de=he({get:X,set:ue});Object.defineProperty(o,B,{enumerable:!0,configurable:!0,get:()=>de.value,set:fe=>de.value=fe})}if(r)for(const B in r)Li(r[B],o,n,B);if(l){const B=te(l)?l.call(n):l;Reflect.ownKeys(B).forEach(V=>{ft(V,B[V])})}u&&Ei(u,e,"c");function j(B,V){Z(V)?V.forEach(X=>B(X.bind(n))):V&&B(V.bind(n))}if(j(Si,f),j(Un,b),j($u,v),j(Eu,E),j(vu,A),j(ku,R),j(wu,F),j(Nu,C),j(Cu,I),j(Ea,L),j(Io,h),j(Lu,S),Z(W))if(W.length){const B=e.exposed||(e.exposed={});W.forEach(V=>{Object.defineProperty(B,V,{get:()=>n[V],set:X=>n[V]=X,enumerable:!0})})}else e.exposed||(e.exposed={});T&&e.render===rt&&(e.render=T),ae!=null&&(e.inheritAttrs=ae),H&&(e.components=H),ee&&(e.directives=ee),S&&$a(e)}function Fu(e,t,n=rt){Z(e)&&(e=wa(e));for(const o in e){const a=e[o];let s;ce(a)?"default"in a?s=Fe(a.from||o,a.default,!0):s=Fe(a.from||o):s=Fe(a),ve(s)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[o]=s}}function Ei(e,t,n){tt(Z(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Li(e,t,n,o){let a=o.includes(".")?hi(n,o):()=>n[o];if(Ae(e)){const s=t[e];te(s)&&tn(a,s)}else if(te(e))tn(a,e.bind(n));else if(ce(e))if(Z(e))e.forEach(s=>Li(s,t,n,o));else{const s=te(e.handler)?e.handler.bind(n):t[e.handler];te(s)&&tn(a,s,e)}}function Ci(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,r=s.get(t);let l;return r?l=r:!a.length&&!n&&!o?l=t:(l={},a.length&&a.forEach(c=>Mo(l,c,i,!0)),Mo(l,t,i)),ce(t)&&s.set(t,l),l}function Mo(e,t,n,o=!1){const{mixins:a,extends:s}=t;s&&Mo(e,s,n,!0),a&&a.forEach(i=>Mo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const r=Ou[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}const Ou={data:Ni,props:wi,emits:wi,methods:zn,computed:zn,beforeCreate:Oe,created:Oe,beforeMount:Oe,mounted:Oe,beforeUpdate:Oe,updated:Oe,beforeDestroy:Oe,beforeUnmount:Oe,destroyed:Oe,unmounted:Oe,activated:Oe,deactivated:Oe,errorCaptured:Oe,serverPrefetch:Oe,components:zn,directives:zn,watch:ju,provide:Ni,inject:xu};function Ni(e,t){return t?e?function(){return ke(te(e)?e.call(this,this):e,te(t)?t.call(this,this):t)}:t:e}function xu(e,t){return zn(wa(e),wa(t))}function wa(e){if(Z(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ce(t)}Modifiers`]||e[`${We(t)}Modifiers`];function Gu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||me;let a=n;const s=t.startsWith("update:"),i=s&&Uu(o,t.slice(7));i&&(i.trim&&(a=n.map(u=>Ae(u)?u.trim():u)),i.number&&(a=a.map(kc)));let r,l=o[r=oa(t)]||o[r=oa(Ce(t))];!l&&s&&(l=o[r=oa(We(t))]),l&&tt(l,e,6,a);const c=o[r+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,tt(c,e,6,a)}}const zu=new WeakMap;function Ii(e,t,n=!1){const o=n?zu:t.emitsCache,a=o.get(e);if(a!==void 0)return a;const s=e.emits;let i={},r=!1;if(!te(e)){const l=c=>{const u=Ii(c,t,!0);u&&(r=!0,ke(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!r?(ce(e)&&o.set(e,null),null):(Z(s)?s.forEach(l=>i[l]=null):ke(i,s),ce(e)&&o.set(e,i),i)}function Do(e,t){return!e||!oo(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),le(e,t[0].toLowerCase()+t.slice(1))||le(e,We(t))||le(e,t))}function bb(){}function Mi(e){const{type:t,vnode:n,proxy:o,withProxy:a,propsOptions:[s],slots:i,attrs:r,emit:l,render:c,renderCache:u,props:f,data:b,setupState:v,ctx:E,inheritAttrs:A}=e,R=Eo(e);let M,L;try{if(n.shapeFlag&4){const h=a||o,T=h;M=pt(c.call(T,h,u,f,v,b,E)),L=r}else{const h=t;M=pt(h.length>1?h(f,{attrs:r,slots:i,emit:l}):h(f,null)),L=t.props?r:qu(r)}}catch(h){an.length=0,On(h,e,1),M=Ne(Tt)}let y=M;if(L&&A!==!1){const h=Object.keys(L),{shapeFlag:T}=y;h.length&&T&7&&(s&&h.some(ao)&&(L=Hu(L,s)),y=mn(y,L,!1,!0))}if(n.dirs&&(y=mn(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition){const h=Lo(y.type)&&mi(y)||y;Ta(h,n.transition)}return M=y,Eo(R),M}const qu=e=>{let t;for(const n in e)(n==="class"||n==="style"||oo(n))&&((t||(t={}))[n]=e[n]);return t},Hu=(e,t)=>{const n={};for(const o in e)(!ao(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Vu(e,t,n){const{props:o,children:a,component:s}=e,{props:i,children:r,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Di(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(Fi),xi=e=>Object.getPrototypeOf(e)===Fi;function Yu(e,t,n,o=!1){const a={},s=Oi();e.propsDefaults=Object.create(null),ji(e,t,a,s);for(const i in e.propsOptions[0])i in a||(a[i]=void 0);n?e.props=o?a:Yc(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function Ju(e,t,n,o){const{props:a,attrs:s,vnode:{patchFlag:i}}=e,r=ie(a),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[b,v]=Bi(f,t,!0);ke(i,b),v&&r.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return ce(e)&&o.set(e,un),un;if(Z(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Ma=e=>Z(e)?e.map(pt):[pt(e)],Zu=(e,t,n)=>{if(t._n)return t;const o=du((...a)=>Ma(t(...a)),n);return o._c=!1,o},Ui=(e,t,n)=>{const o=e._ctx;for(const a in e){if(Ia(a))continue;const s=e[a];if(te(s))t[a]=Zu(a,s,o);else if(s!=null){const i=Ma(s);t[a]=()=>i}}},Gi=(e,t)=>{const n=Ma(t);e.slots.default=()=>n},zi=(e,t,n)=>{for(const o in t)(n||!Ia(o))&&(e[o]=t[o])},Qu=(e,t,n)=>{const o=e.slots=Oi();if(e.vnode.shapeFlag&32){const a=t._;a?(zi(o,t,n),n&&Ms(o,"_",a,!0)):Ui(t,o)}else t&&Gi(e,t)},eg=(e,t,n)=>{const{vnode:o,slots:a}=e;let s=!0,i=me;if(o.shapeFlag&32){const r=t._;r?n&&r===1?s=!1:zi(a,t,n):(s=!t.$stable,Ui(t,a)),i=t}else t&&(Gi(e,t),i={default:1});if(s)for(const r in a)!Ia(r)&&i[r]==null&&delete a[r]},Ke=sg;function tg(e){return ng(e)}function ng(e,t){const n=uo();n.__VUE__=!0;const{insert:o,remove:a,patchProp:s,createElement:i,createText:r,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:b,setScopeId:v=rt,insertStaticContent:E}=e,A=(p,_,m,N=null,x=null,O=null,G=void 0,U=null,g=!!_.dynamicChildren)=>{if(p===_)return;p&&!Vn(p,_)&&(N=Rt(p),fe(p,x,O,!0),p=null),_.patchFlag===-2&&(g=!1,_.dynamicChildren=null);const{type:d,ref:$,shapeFlag:w}=_;switch(d){case qn:R(p,_,m,N);break;case Tt:M(p,_,m,N);break;case Ra:p==null&&L(_,m,N,G);break;case Ye:H(p,_,m,N,x,O,G,U,g);break;default:w&1?T(p,_,m,N,x,O,G,U,g):w&6?ee(p,_,m,N,x,O,G,U,g):(w&64||w&128)&&d.process(p,_,m,N,x,O,G,U,g,Ze)}$!=null&&x?Bn($,p&&p.ref,O,_||p,!_):$==null&&p&&p.ref!=null&&Bn(p.ref,null,O,p,!0)},R=(p,_,m,N)=>{if(p==null)o(_.el=r(_.children),m,N);else{const x=_.el=p.el;_.children!==p.children&&c(x,_.children)}},M=(p,_,m,N)=>{p==null?o(_.el=l(_.children||""),m,N):_.el=p.el},L=(p,_,m,N)=>{[p.el,p.anchor]=E(p.children,_,m,N,p.el,p.anchor)},y=({el:p,anchor:_},m,N)=>{let x;for(;p&&p!==_;)x=b(p),o(p,m,N),p=x;o(_,m,N)},h=({el:p,anchor:_})=>{let m;for(;p&&p!==_;)m=b(p),a(p),p=m;a(_)},T=(p,_,m,N,x,O,G,U,g)=>{if(_.type==="svg"?G="svg":_.type==="math"&&(G="mathml"),p==null)C(_,m,N,x,O,G,U,g);else{const d=p.el&&p.el._isVueCE?p.el:null;try{d&&d._beginPatch(),S(p,_,x,O,G,U,g)}finally{d&&d._endPatch()}}},C=(p,_,m,N,x,O,G,U)=>{let g,d;const{props:$,shapeFlag:w,transition:z,dirs:K}=p;if(g=p.el=i(p.type,O,$&&$.is,$),w&8?u(g,p.children):w&16&&F(p.children,g,null,N,x,Da(p,O),G,U),K&&en(p,null,N,"created"),I(g,p,p.scopeId,G,N),$){for(const P in $)P!=="value"&&!Cn(P)&&s(g,P,null,$[P],O,N);"value"in $&&s(g,"value",null,$.value,O),(d=$.onVnodeBeforeMount)&&ht(d,N,p)}K&&en(p,null,N,"beforeMount");const k=og(x,z);k&&z.beforeEnter(g),o(g,_,m),((d=$&&$.onVnodeMounted)||k||K)&&Ke(()=>{try{d&&ht(d,N,p),k&&z.enter(g),K&&en(p,null,N,"mounted")}finally{}},x)},I=(p,_,m,N,x)=>{if(m&&v(p,m),N)for(let O=0;O{for(let d=g;d{const U=_.el=p.el;let{patchFlag:g,dynamicChildren:d,dirs:$}=_;g|=p.patchFlag&16;const w=p.props||me,z=_.props||me;let K;if(m&&on(m,!1),(K=z.onVnodeBeforeUpdate)&&ht(K,m,_,p),$&&en(_,p,m,"beforeUpdate"),m&&on(m,!0),d&&(!p.dynamicChildren||p.dynamicChildren.length!==d.length)&&(g=0,G=!1,d=null),(w.innerHTML&&z.innerHTML==null||w.textContent&&z.textContent==null)&&u(U,""),d?W(p.dynamicChildren,d,U,m,N,Da(_,x),O):G||V(p,_,U,null,m,N,Da(_,x),O,!1),g>0){if(g&16)ae(U,w,z,m,x);else if(g&2&&w.class!==z.class&&s(U,"class",null,z.class,x),g&4&&s(U,"style",w.style,z.style,x),g&8){const k=_.dynamicProps;for(let P=0;P{K&&ht(K,m,_,p),$&&en(_,p,m,"updated")},N)},W=(p,_,m,N,x,O,G)=>{for(let U=0;U<_.length;U++){const g=p[U],d=_[U],$=g.el&&(g.type===Ye||!Vn(g,d)||g.shapeFlag&198)?f(g.el):m;A(g,d,$,null,N,x,O,G,!0)}},ae=(p,_,m,N,x)=>{if(_!==m){if(_!==me)for(const O in _)!Cn(O)&&!(O in m)&&s(p,O,_[O],null,x,N);for(const O in m){if(Cn(O))continue;const G=m[O],U=_[O];G!==U&&O!=="value"&&s(p,O,U,G,x,N)}"value"in m&&s(p,"value",_.value,m.value,x)}},H=(p,_,m,N,x,O,G,U,g)=>{const d=_.el=p?p.el:r(""),$=_.anchor=p?p.anchor:r("");let{patchFlag:w,dynamicChildren:z,slotScopeIds:K}=_;K&&(U=U?U.concat(K):K),p==null?(o(d,m,N),o($,m,N),F(_.children||[],m,$,x,O,G,U,g)):w>0&&w&64&&z&&p.dynamicChildren&&p.dynamicChildren.length===z.length?(W(p.dynamicChildren,z,m,x,O,G,U),(_.key!=null||x&&_===x.subTree)&&qi(p,_,!0)):V(p,_,m,$,x,O,G,U,g)},ee=(p,_,m,N,x,O,G,U,g)=>{_.slotScopeIds=U,p==null?_.shapeFlag&512?x.ctx.activate(_,m,N,G,g):Y(_,m,N,x,O,G,g):D(p,_,g)},Y=(p,_,m,N,x,O,G)=>{const U=p.component=gg(p,N,x);if(wo(p)&&(U.ctx.renderer=Ze),dg(U,!1,G),U.asyncDep){if(x&&x.registerDep(U,j,G),!p.el){const g=U.subTree=Ne(Tt);M(null,g,_,m),p.placeholder=g.el}}else j(U,p,_,m,x,O,G)},D=(p,_,m)=>{const N=_.component=p.component;if(Vu(p,_,m))if(N.asyncDep&&!N.asyncResolved){B(N,_,m);return}else N.next=_,N.update();else _.el=p.el,N.vnode=_},j=(p,_,m,N,x,O,G)=>{const U=()=>{if(p.isMounted){let{next:w,bu:z,u:K,parent:k,vnode:P}=p;{const Me=Hi(p);if(Me){w&&(w.el=P.el,B(p,w,G)),Me.asyncDep.then(()=>{Ke(()=>{p.isUnmounted||d()},x)});return}}let J=w,oe;on(p,!1),w?(w.el=P.el,B(p,w,G)):w=P,z&&aa(z),(oe=w.props&&w.props.onVnodeBeforeUpdate)&&ht(oe,k,w,P),on(p,!0);const ye=Mi(p),Be=p.subTree;p.subTree=ye,A(Be,ye,f(Be.el),Rt(Be),p,x,O),w.el=ye.el,J===null&&Wu(p,ye.el),K&&Ke(K,x),(oe=w.props&&w.props.onVnodeUpdated)&&Ke(()=>ht(oe,k,w,P),x)}else{let w;const{el:z,props:K}=_,{bm:k,m:P,parent:J,root:oe,type:ye}=p,Be=Kn(_);on(p,!1),k&&aa(k),!Be&&(w=K&&K.onVnodeBeforeMount)&&ht(w,J,_),on(p,!0);{oe.ce&&oe.ce._hasShadowRoot()&&oe.ce._injectChildStyle(ye,p.parent?p.parent.type:void 0);const Me=p.subTree=Mi(p);A(null,Me,m,N,p,x,O),_.el=Me.el}if(P&&Ke(P,x),!Be&&(w=K&&K.onVnodeMounted)){const Me=_;Ke(()=>ht(w,J,Me),x)}(_.shapeFlag&256||J&&Kn(J.vnode)&&J.vnode.shapeFlag&256)&&p.a&&Ke(p.a,x),p.isMounted=!0,_=m=N=null}};p.scope.on();const g=p.effect=new Us(U);p.scope.off();const d=p.update=g.run.bind(g),$=p.job=g.runIfDirty.bind(g);$.i=p,$.id=p.uid,g.scheduler=()=>Sa($),on(p,!0),d()},B=(p,_,m)=>{_.component=p;const N=p.vnode.props;p.vnode=_,p.next=null,Ju(p,_.props,N,m),eg(p,_.children,m),ct(),gi(p),ut()},V=(p,_,m,N,x,O,G,U,g=!1)=>{const d=p&&p.children,$=p?p.shapeFlag:0,w=_.children,{patchFlag:z,shapeFlag:K}=_;if(z>0){if(z&128){ue(d,w,m,N,x,O,G,U,g);return}else if(z&256){X(d,w,m,N,x,O,G,U,g);return}}K&8?($&16&&it(d,x,O),w!==d&&u(m,w)):$&16?K&16?ue(d,w,m,N,x,O,G,U,g):it(d,x,O,!0):($&8&&u(m,""),K&16&&F(w,m,N,x,O,G,U,g))},X=(p,_,m,N,x,O,G,U,g)=>{p=p||un,_=_||un;const d=p.length,$=_.length,w=Math.min(d,$);let z;for(z=0;z$?it(p,x,O,!0,!1,w):F(_,m,N,x,O,G,U,g,w)},ue=(p,_,m,N,x,O,G,U,g)=>{let d=0;const $=_.length;let w=p.length-1,z=$-1;for(;d<=w&&d<=z;){const K=p[d],k=_[d]=g?Lt(_[d]):pt(_[d]);if(Vn(K,k))A(K,k,m,null,x,O,G,U,g);else break;d++}for(;d<=w&&d<=z;){const K=p[w],k=_[z]=g?Lt(_[z]):pt(_[z]);if(Vn(K,k))A(K,k,m,null,x,O,G,U,g);else break;w--,z--}if(d>w){if(d<=z){const K=z+1,k=K<$?_[K].el:N;for(;d<=z;)A(null,_[d]=g?Lt(_[d]):pt(_[d]),m,k,x,O,G,U,g),d++}}else if(d>z)for(;d<=w;)fe(p[d],x,O,!0),d++;else{const K=d,k=d,P=new Map;for(d=k;d<=z;d++){const He=_[d]=g?Lt(_[d]):pt(_[d]);He.key!=null&&P.set(He.key,d)}let J,oe=0;const ye=z-k+1;let Be=!1,Me=0;const cn=new Array(ye);for(d=0;d=ye){fe(He,x,O,!0);continue}let _t;if(He.key!=null)_t=P.get(He.key);else for(J=k;J<=z;J++)if(cn[J-k]===0&&Vn(He,_[J])){_t=J;break}_t===void 0?fe(He,x,O,!0):(cn[_t-k]=d+1,_t>=Me?Me=_t:Be=!0,A(He,_[_t],m,null,x,O,G,U,g),oe++)}const Cs=Be?ag(cn):un;for(J=Cs.length-1,d=ye-1;d>=0;d--){const He=k+d,_t=_[He],mc=_[He+1],bc=He+1<$?mc.el||Wi(mc):N;cn[d]===0?A(null,_t,m,bc,x,O,G,U,g):Be&&(J<0||d!==Cs[J]?de(_t,m,bc,2):J--)}}},de=(p,_,m,N,x=null)=>{const{el:O,type:G,transition:U,children:g,shapeFlag:d}=p;if(d&6){de(p.component.subTree,_,m,N);return}if(d&128){p.suspense.move(_,m,N);return}if(d&64){G.move(p,_,m,Ze);return}if(G===Ye){o(O,_,m);for(let w=0;wU.enter(O),x));else{const{leave:w,delayLeave:z,afterLeave:K}=U,k=()=>{p.ctx.isUnmounted?a(O):o(O,_,m)},P=()=>{const J=O._isLeaving||!!O[ka];O._isLeaving&&O[ka](!0),U.persisted&&!J?k():w(O,()=>{k(),K&&K()})};z?z(O,k,P):P()}else o(O,_,m)},fe=(p,_,m,N=!1,x=!1)=>{const{type:O,props:G,ref:U,children:g,dynamicChildren:d,shapeFlag:$,patchFlag:w,dirs:z,cacheIndex:K,memo:k}=p;if(w===-2&&(x=!1),U!=null&&(ct(),Bn(U,null,m,p,!0),ut()),K!=null&&(_.renderCache[K]=void 0),$&256){_.ctx.deactivate(p);return}const P=$&1&&z,J=!Kn(p);let oe;if(J&&(oe=G&&G.onVnodeBeforeUnmount)&&ht(oe,_,p),$&6)ln(p.component,m,N);else{if($&128){p.suspense.unmount(m,N);return}P&&en(p,null,_,"beforeUnmount"),$&64?p.type.remove(p,_,m,Ze,N):d&&!d.hasOnce&&(O!==Ye||w>0&&w&64)?it(d,_,m,!1,!0):(O===Ye&&w&384||!x&&$&16)&&it(g,_,m),N&&je(p)}const ye=k!=null&&K==null;(J&&(oe=G&&G.onVnodeUnmounted)||P||ye)&&Ke(()=>{oe&&ht(oe,_,p),P&&en(p,null,_,"unmounted"),ye&&(p.el=null)},m)},je=p=>{const{type:_,el:m,anchor:N,transition:x}=p;if(_===Ye){Yt(m,N);return}if(_===Ra){h(p);return}const O=()=>{a(m),x&&!x.persisted&&x.afterLeave&&x.afterLeave()};if(p.shapeFlag&1&&x&&!x.persisted){const{leave:G,delayLeave:U}=x,g=()=>G(m,O);U?U(p.el,O,g):g()}else O()},Yt=(p,_)=>{let m;for(;p!==_;)m=b(p),a(p),p=m;a(_)},ln=(p,_,m)=>{const{bum:N,scope:x,job:O,subTree:G,um:U,m:g,a:d}=p;Vi(g),Vi(d),N&&aa(N),x.stop(),O&&(O.flags|=8,fe(G,p,_,m)),U&&Ke(U,_),Ke(()=>{p.isUnmounted=!0},_)},it=(p,_,m,N=!1,x=!1,O=0)=>{for(let G=O;G{if(p.shapeFlag&6)return Rt(p.component.subTree);if(p.shapeFlag&128)return p.suspense.next();const _=b(p.anchor||p.el),m=_&&_[_u];return m?b(m):_};let Ft=!1;const Jt=(p,_,m)=>{let N;p==null?_._vnode&&(fe(_._vnode,null,null,!0),N=_._vnode.component):A(_._vnode||null,p,_,null,null,null,m),_._vnode=p,Ft||(Ft=!0,gi(N),di(),Ft=!1)},Ze={p:A,um:fe,m:de,r:je,mt:Y,mc:F,pc:V,pbc:W,n:Rt,o:e};return{render:Jt,hydrate:void 0,createApp:Ku(Jt)}}function Da({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function on({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function og(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function qi(e,t,n=!1){const o=e.children,a=t.children;if(Z(o)&&Z(a))for(let s=0;s>1,e[n[r]]0&&(t[o]=n[s-1]),n[s]=o)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function Hi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Hi(t)}function Vi(e){if(e)for(let t=0;te.__isSuspense;function sg(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):gu(e)}const Ye=Symbol.for("v-fgt"),qn=Symbol.for("v-txt"),Tt=Symbol.for("v-cmt"),Ra=Symbol.for("v-stc"),an=[];let ze=null;function qe(e=!1){an.push(ze=e?null:[])}function Ji(){an.pop(),ze=an[an.length-1]||null}let Hn=1;function Ro(e,t=!1){Hn+=e,e<0&&ze&&t&&(ze.hasOnce=!0)}function Xi(e){return e.dynamicChildren=Hn>0?ze||un:null,Ji(),Hn>0&&ze&&ze.push(e),e}function $t(e,t,n,o,a,s){return Xi(Ee(e,t,n,o,a,s,!0))}function Fo(e,t,n,o,a){return Xi(Ne(e,t,n,o,a,!0))}function Oo(e){return e?e.__v_isVNode===!0:!1}function Vn(e,t){return e.type===t.type&&e.key===t.key}const Zi=({key:e})=>e??null,xo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ae(e)||ve(e)||te(e)?{i:nt,r:e,k:t,f:!!n}:e:null);function Ee(e,t=null,n=null,o=0,a=null,s=e===Ye?0:1,i=!1,r=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Zi(t),ref:t&&xo(t),scopeId:pi,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:nt};return r?(jo(l,n),s&128&&e.normalize(l)):n&&(l.shapeFlag|=Ae(n)?8:16),Hn>0&&!i&&ze&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&ze.push(l),l}const Ne=ig;function ig(e,t=null,n=null,o=0,a=null,s=!1){if((!e||e===vi)&&(e=Tt),Oo(e)){const r=mn(e,t,!0);return n&&jo(r,n),Hn>0&&!s&&ze&&(r.shapeFlag&6?ze[ze.indexOf(e)]=r:ze.push(r)),r.patchFlag=-2,r}if(_g(e)&&(e=e.__vccOpts),t){t=rg(t);let{class:r,style:l}=t;r&&!Ae(r)&&(t.class=Nn(r)),ce(l)&&(So(l)&&!Z(l)&&(l=ke({},l)),t.style=go(l))}const i=Ae(e)?1:Yi(e)?128:Lo(e)?64:ce(e)?4:te(e)?2:0;return Ee(e,t,n,o,a,i,s,!0)}function rg(e){return e?So(e)||xi(e)?ke({},e):e:null}function mn(e,t,n=!1,o=!1){const{props:a,ref:s,patchFlag:i,children:r,transition:l}=e,c=t?lg(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Zi(c),ref:t&&t.ref?n&&s?Z(s)?s.concat(xo(t)):[s,xo(t)]:xo(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ye?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&mn(e.ssContent),ssFallback:e.ssFallback&&mn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&Ta(u,l.clone(u)),u}function Et(e=" ",t=0){return Ne(qn,null,e,t)}function bn(e="",t=!1){return t?(qe(),Fo(Tt,null,e)):Ne(Tt,null,e)}function pt(e){return e==null||typeof e=="boolean"?Ne(Tt):Z(e)?Ne(Ye,null,e.slice()):Oo(e)?Lt(e):Ne(qn,null,String(e))}function Lt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:mn(e)}function jo(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(Z(t))n=16;else if(typeof t=="object")if(o&65){const a=t.default;a&&(a._c&&(a._d=!1),jo(e,a()),a._c&&(a._d=!0));return}else{n=32;const a=t._;!a&&!xi(t)?t._ctx=nt:a===3&&nt&&(nt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(te(t)){if(o&65){jo(e,{default:t});return}t={default:t,_ctx:nt},n=32}else t=String(t),o&64?(n=16,t=[Et(t)]):n=8;e.children=t,e.shapeFlag|=n}function lg(...e){const t={};for(let n=0;nPe||nt;let Bo,Wn;{const e=uo(),t=(n,o)=>{let a;return(a=e[n])||(a=e[n]=[]),a.push(o),s=>{a.length>1?a.forEach(i=>i(s)):a[0](s)}};Bo=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),Wn=t("__VUE_SSR_SETTERS__",n=>_n=n)}const Yn=e=>{const t=Pe;return Bo(e),e.scope.on(),()=>{e.scope.off(),Bo(t)}},Qi=()=>{Pe&&Pe.scope.off(),Bo(null)};function er(e){return e.vnode.shapeFlag&4}let _n=!1;function dg(e,t=!1,n=!1){t&&Wn(t);const{props:o,children:a}=e.vnode,s=er(e);Yu(e,o,s,t),Qu(e,a,n||t);const i=s?fg(e,t):void 0;return t&&Wn(!1),i}function fg(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Du);const{setup:o}=n;if(o){ct();const a=e.setupContext=o.length>1?hg(e):null,s=Yn(e),i=fn(o,e,0,[e.props,a]),r=Ps(i);if(ut(),s(),(r||e.sp)&&!Kn(e)&&$a(e),r){if(i.then(Qi,Qi),t)return i.then(l=>{Wn(!0);try{tr(e,l,t)}finally{Wn(!1)}}).catch(l=>{On(l,e,0)});e.asyncDep=i}else tr(e,i)}else nr(e)}function tr(e,t,n){te(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ce(t)&&(e.setupState=ri(t)),nr(e)}function nr(e,t,n){const o=e.type;e.render||(e.render=o.render||rt);{const a=Yn(e);ct();try{Ru(e)}finally{ut(),a()}}}const pg={get(e,t){return De(e,"get",""),e[t]}};function hg(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,pg),slots:e.slots,emit:e.emit,expose:t}}function Fa(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ri(Rn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Gn)return Gn[n](e)},has(t,n){return n in t||n in Gn}})):e.proxy}const mg=/(?:^|[-_])\w/g,bg=e=>e.replace(mg,t=>t.toUpperCase()).replace(/[-_]/g,"");function or(e,t=!0){return te(e)?e.displayName||e.name:e.name||t&&e.__name}function ar(e,t,n=!1){let o=or(t);if(!o&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(o=a[1])}if(!o&&e){const a=s=>{for(const i in s)if(s[i]===t)return i};o=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return o?bg(o):n?"App":"Anonymous"}function _g(e){return te(e)&&"__vccOpts"in e}const he=(e,t)=>nu(e,t,_n);function sr(e,t,n){try{Ro(-1);const o=arguments.length;return o===2?ce(t)&&!Z(t)?Oo(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Oo(n)&&(n=[n]),Ne(e,t,n))}finally{Ro(1)}}const yg="3.5.42";/** +`],...ru(n))}),t}function ru({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,a=` at <${ar(e.component,e.type,o)}`,s=">"+n;return e.props?[a,...lu(e.props),s]:[a+s]}function lu(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...li(o,e[o]))}),n.length>3&&t.push(" ..."),t}function li(e,t,n){return Ae(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:ve(t)?(t=li(e,ie(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):te(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=ie(t),n?t:[`${e}=`,t])}function fn(e,t,n,o){try{return o?e(...o):e()}catch(a){On(a,t,n)}}function tt(e,t,n,o){if(te(e)){const a=fn(e,t,n,o);return a&&Ps(a)&&a.catch(s=>{On(s,t,n)}),a}if(Z(e)){const a=[];for(let s=0;s>>1,a=Re[o],s=xn(a);s=xn(n)?Re.push(e):Re.splice(uu(t),0,e),e.flags|=1,ui()}}function ui(){$o||($o=ci.then(fi))}function gu(e){if(!Z(e))jt&&e.id===-1?jt.splice(hn+1,0,e):e.flags&1||(pn.push(e),e.flags|=1);else for(let t=0;txn(n)-xn(o));if(pn.length=0,jt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function fi(e){try{for(dt=0;dt{o._d&&Ro(-1);const s=Eo(t),i=an.length;let r;try{r=e(...a)}finally{for(let l=an.length;l>i;l--)Ji();Eo(s),o._d&&Ro(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function en(e,t,n,o){const a=e.dirs,s=t&&t.dirs;for(let i=0;i1)return n&&te(t)?t.call(o&&o.proxy):t}}function fu(){return!!(Ct()||nn)}const pu=Symbol.for("v-scx"),hu=()=>Fe(pu);function mu(e,t){return va(e,null,t)}function tn(e,t,n){return va(e,t,n)}function va(e,t,n=me){const{immediate:o,deep:a,flush:s,once:i}=n,r=ke({},n),l=t&&o||!t&&s!=="post";let c;if(_n){if(s==="sync"){const v=hu();c=v.__watcherHandles||(v.__watcherHandles=[])}else if(!l){const v=()=>{};return v.stop=rt,v.resume=rt,v.pause=rt,v}}const u=Pe;r.call=(v,E,A)=>tt(v,u,E,A);let f=!1;s==="post"?r.scheduler=v=>{Ke(v,u&&u.suspense)}:s!=="sync"&&(f=!0,r.scheduler=(v,E)=>{E?v():Sa(v)}),r.augmentJob=v=>{t&&(v.flags|=4),f&&(v.flags|=2,u&&(v.id=u.uid,v.i=u))};const b=au(e,t,r);return _n&&(c?c.push(b):l&&b()),b}function bu(e,t,n){const o=this.proxy,a=Ae(e)?e.includes(".")?hi(o,e):()=>o[e]:e.bind(o,o);let s;te(t)?s=t:(s=t.handler,n=t);const i=Yn(this),r=va(a,s.bind(o),n);return i(),r}function hi(e,t){const n=t.split(".");return()=>{let o=e;for(let a=0;ae.__isTeleport,ka=Symbol("_leaveCb");function yu(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Tt){t=n;break}}return t}function mi(e){if(!wo(e))return Lo(e.type)&&e.children?yu(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&te(n.default))return n.default()}}function Ta(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Ta(Lo(n.type)&&mi(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function jn(e,t){return te(e)?ke({name:e.name},t,{setup:e}):e}function $a(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function bi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Co=new WeakMap;function Bn(e,t,n,o,a=!1){if(Z(e)){e.forEach((A,R)=>Bn(A,t&&(Z(t)?t[R]:t),n,o,a));return}if(Kn(o)&&!a){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Bn(e,t,n,o.component.subTree);return}const s=o.shapeFlag&4?Fa(o.component):o.el,i=a?null:s,{i:r,r:l}=e,c=t&&t.r,u=r.refs===me?r.refs={}:r.refs,f=r.setupState,b=ie(f),v=f===me?Ns:A=>bi(u,A)?!1:le(b,A),E=(A,R)=>!(R&&bi(u,R));if(c!=null&&c!==l){if(_i(t),Ae(c))u[c]=null,v(c)&&(f[c]=null);else if(ve(c)){const A=t;E(c,A.k)&&(c.value=null),A.k&&(u[A.k]=null)}}if(te(l))fn(l,r,12,[i,u]);else{const A=Ae(l),R=ve(l);if(A||R){const M=()=>{if(e.f){const L=A?v(l)?f[l]:u[l]:E()||!e.k?l.value:u[e.k];if(a)Z(L)&&na(L,s);else if(Z(L))L.includes(s)||L.push(s);else if(A)u[l]=[s],v(l)&&(f[l]=u[l]);else{const y=[s];E(l,e.k)&&(l.value=y),e.k&&(u[e.k]=y)}}else A?(u[l]=i,v(l)&&(f[l]=i)):R&&(E(l,e.k)&&(l.value=i),e.k&&(u[e.k]=i))};if(i){const L=()=>{M(),Co.delete(e)};L.id=-1,Co.set(e,L),Ke(L,n)}else _i(e),M()}}}function _i(e){const t=Co.get(e);t&&(t.flags|=8,Co.delete(e))}const yi=e=>e.nodeType===8;uo().requestIdleCallback,uo().cancelIdleCallback;function Au(e,t){if(yi(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(yi(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const Kn=e=>!!e.type.__asyncLoader;function Su(e){te(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:a=200,hydrate:s,timeout:i,suspensible:r=!0,onError:l}=e;let c=null,u,f=0;const b=()=>(f++,c=null,v()),v=()=>{let E;return c||(E=c=t().catch(A=>{if(A=A instanceof Error?A:new Error(String(A)),l)return new Promise((R,M)=>{l(A,()=>R(b()),()=>M(A),f+1)});throw A}).then(A=>E!==c&&c?c:(A&&(A.__esModule||A[Symbol.toStringTag]==="Module")&&(A=A.default),u=A,A)))};return jn({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(E,A,R){const M=E.isConnected;let L=!1;(A.bu||(A.bu=[])).push(()=>L=!0);const y=()=>{L||!E.parentNode||M&&!E.isConnected||R()},h=s?()=>{const T=s(y,C=>Au(E,C));T&&(A.bum||(A.bum=[])).push(T)}:y;u?h():v().then(()=>!A.isUnmounted&&h())},get __asyncResolved(){return u},setup(){const E=Pe;if($a(E),u)return()=>No(u,E);const A=T=>{c=null,On(T,E,13,!o)};if(r&&E.suspense||_n)return v().then(T=>()=>No(T,E)).catch(T=>(A(T),()=>o?Ne(o,{error:T}):null));const R=pe(!1),M=pe(),L=pe(!!a);let y,h;return Io(()=>{y!=null&&clearTimeout(y),h!=null&&clearTimeout(h)}),a&&(h=setTimeout(()=>{E.isUnmounted||(L.value=!1)},a)),i!=null&&(y=setTimeout(()=>{if(!E.isUnmounted&&!R.value&&!M.value){const T=new Error(`Async component timed out after ${i}ms.`);A(T),M.value=T}},i)),v().then(()=>{E.isUnmounted||(R.value=!0,E.parent&&wo(E.parent.vnode)&&E.parent.update())}).catch(T=>{if(E.isUnmounted){c=null;return}A(T),M.value=T}),()=>{if(R.value&&u)return No(u,E);if(M.value&&o)return Ne(o,{error:M.value});if(n&&!L.value)return No(n,E)}}})}function No(e,t){const{ref:n,props:o,children:a,ce:s}=t.vnode,i=Ne(e,o,a);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const wo=e=>e.type.__isKeepAlive;function vu(e,t){Ai(e,"a",t)}function ku(e,t){Ai(e,"da",t)}function Ai(e,t,n=Pe){const o=e.__wdc||(e.__wdc=()=>{let a=n;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Po(t,o,n),n){let a=n.parent;for(;a&&a.parent;)wo(a.parent.vnode)&&Tu(o,t,n,a),a=a.parent}}function Tu(e,t,n,o){const a=Po(t,e,o,!0);Io(()=>{na(o[t],a)},n)}function Po(e,t,n=Pe,o=!1){if(n){const a=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{ct();const r=Yn(n),l=tt(t,n,e,i);return r(),ut(),l});return o?a.unshift(s):a.push(s),s}}const kt=e=>(t,n=Pe)=>{(!_n||e==="sp")&&Po(e,(...o)=>t(...o),n)},Si=kt("bm"),Un=kt("m"),$u=kt("bu"),Eu=kt("u"),Ea=kt("bum"),Io=kt("um"),Lu=kt("sp"),Cu=kt("rtg"),Nu=kt("rtc");function wu(e,t=Pe){Po("ec",e,t)}const Pu="components",vi=Symbol.for("v-ndc");function ki(e){return Ae(e)?Iu(Pu,e,!1)||e:e||vi}function Iu(e,t,n=!0,o=!1){const a=nt||Pe;if(a){const s=a.type;{const r=or(s,!1);if(r&&(r===t||r===Ce(t)||r===co(Ce(t))))return s}const i=Ti(a[e]||s[e],t)||Ti(a.appContext[e],t);return!i&&o?s:i}}function Ti(e,t){return e&&(e[t]||e[Ce(t)]||e[co(Ce(t))])}function Mu(e,t,n,o){let a;const s=n,i=Z(e);if(i||Ae(e)){const r=i&&St(e);let l=!1,c=!1;r&&(l=!Ge(e),c=vt(e),e=ho(e)),a=new Array(e.length);for(let u=0,f=e.length;ut(r,l,void 0,s));else{const r=Object.keys(e);a=new Array(r.length);for(let l=0,c=r.length;le?er(e)?Fa(e):La(e.parent):null,Gn=ke(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>La(e.parent),$root:e=>La(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ci(e),$forceUpdate:e=>e.f||(e.f=()=>{Sa(e.update)}),$nextTick:e=>e.n||(e.n=Aa.bind(e.proxy)),$watch:e=>bu.bind(e)}),Ca=(e,t)=>e!==me&&!e.__isScriptSetup&&le(e,t),Du={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:a,props:s,accessCache:i,type:r,appContext:l}=e;if(t[0]!=="$"){const b=i[t];if(b!==void 0)switch(b){case 1:return o[t];case 2:return a[t];case 4:return n[t];case 3:return s[t]}else{if(Ca(o,t))return i[t]=1,o[t];if(a!==me&&le(a,t))return i[t]=2,a[t];if(le(s,t))return i[t]=3,s[t];if(n!==me&&le(n,t))return i[t]=4,n[t];Na&&(i[t]=0)}}const c=Gn[t];let u,f;if(c)return t==="$attrs"&&De(e.attrs,"get",""),c(e);if((u=r.__cssModules)&&(u=u[t]))return u;if(n!==me&&le(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,le(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:a,ctx:s}=e;return Ca(a,t)?(a[t]=n,!0):o!==me&&le(o,t)?(o[t]=n,!0):le(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:a,props:s,type:i}},r){let l;return!!(n[r]||e!==me&&r[0]!=="$"&&le(e,r)||Ca(t,r)||le(s,r)||le(o,r)||le(Gn,r)||le(a.config.globalProperties,r)||(l=i.__cssModules)&&l[r])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:le(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function $i(e){return Z(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Na=!0;function Ru(e){const t=Ci(e),n=e.proxy,o=e.ctx;Na=!1,t.beforeCreate&&Ei(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:i,watch:r,provide:l,inject:c,created:u,beforeMount:f,mounted:b,beforeUpdate:v,updated:E,activated:A,deactivated:R,beforeDestroy:M,beforeUnmount:L,destroyed:y,unmounted:h,render:T,renderTracked:C,renderTriggered:I,errorCaptured:F,serverPrefetch:S,expose:W,inheritAttrs:ae,components:H,directives:ee,filters:Y}=t;if(c&&Fu(c,o,null),i)for(const B in i){const V=i[B];te(V)&&(o[B]=V.bind(n))}if(a){const B=a.call(n,n);ce(B)&&(e.data=yo(B))}if(Na=!0,s)for(const B in s){const V=s[B],X=te(V)?V.bind(n,n):te(V.get)?V.get.bind(n,n):rt,ue=!te(V)&&te(V.set)?V.set.bind(n):rt,de=he({get:X,set:ue});Object.defineProperty(o,B,{enumerable:!0,configurable:!0,get:()=>de.value,set:fe=>de.value=fe})}if(r)for(const B in r)Li(r[B],o,n,B);if(l){const B=te(l)?l.call(n):l;Reflect.ownKeys(B).forEach(V=>{ft(V,B[V])})}u&&Ei(u,e,"c");function j(B,V){Z(V)?V.forEach(X=>B(X.bind(n))):V&&B(V.bind(n))}if(j(Si,f),j(Un,b),j($u,v),j(Eu,E),j(vu,A),j(ku,R),j(wu,F),j(Nu,C),j(Cu,I),j(Ea,L),j(Io,h),j(Lu,S),Z(W))if(W.length){const B=e.exposed||(e.exposed={});W.forEach(V=>{Object.defineProperty(B,V,{get:()=>n[V],set:X=>n[V]=X,enumerable:!0})})}else e.exposed||(e.exposed={});T&&e.render===rt&&(e.render=T),ae!=null&&(e.inheritAttrs=ae),H&&(e.components=H),ee&&(e.directives=ee),S&&$a(e)}function Fu(e,t,n=rt){Z(e)&&(e=wa(e));for(const o in e){const a=e[o];let s;ce(a)?"default"in a?s=Fe(a.from||o,a.default,!0):s=Fe(a.from||o):s=Fe(a),ve(s)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[o]=s}}function Ei(e,t,n){tt(Z(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Li(e,t,n,o){let a=o.includes(".")?hi(n,o):()=>n[o];if(Ae(e)){const s=t[e];te(s)&&tn(a,s)}else if(te(e))tn(a,e.bind(n));else if(ce(e))if(Z(e))e.forEach(s=>Li(s,t,n,o));else{const s=te(e.handler)?e.handler.bind(n):t[e.handler];te(s)&&tn(a,s,e)}}function Ci(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,r=s.get(t);let l;return r?l=r:!a.length&&!n&&!o?l=t:(l={},a.length&&a.forEach(c=>Mo(l,c,i,!0)),Mo(l,t,i)),ce(t)&&s.set(t,l),l}function Mo(e,t,n,o=!1){const{mixins:a,extends:s}=t;s&&Mo(e,s,n,!0),a&&a.forEach(i=>Mo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const r=Ou[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}const Ou={data:Ni,props:wi,emits:wi,methods:zn,computed:zn,beforeCreate:Oe,created:Oe,beforeMount:Oe,mounted:Oe,beforeUpdate:Oe,updated:Oe,beforeDestroy:Oe,beforeUnmount:Oe,destroyed:Oe,unmounted:Oe,activated:Oe,deactivated:Oe,errorCaptured:Oe,serverPrefetch:Oe,components:zn,directives:zn,watch:ju,provide:Ni,inject:xu};function Ni(e,t){return t?e?function(){return ke(te(e)?e.call(this,this):e,te(t)?t.call(this,this):t)}:t:e}function xu(e,t){return zn(wa(e),wa(t))}function wa(e){if(Z(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ce(t)}Modifiers`]||e[`${We(t)}Modifiers`];function Gu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||me;let a=n;const s=t.startsWith("update:"),i=s&&Uu(o,t.slice(7));i&&(i.trim&&(a=n.map(u=>Ae(u)?u.trim():u)),i.number&&(a=a.map(kc)));let r,l=o[r=oa(t)]||o[r=oa(Ce(t))];!l&&s&&(l=o[r=oa(We(t))]),l&&tt(l,e,6,a);const c=o[r+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,tt(c,e,6,a)}}const zu=new WeakMap;function Ii(e,t,n=!1){const o=n?zu:t.emitsCache,a=o.get(e);if(a!==void 0)return a;const s=e.emits;let i={},r=!1;if(!te(e)){const l=c=>{const u=Ii(c,t,!0);u&&(r=!0,ke(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!r?(ce(e)&&o.set(e,null),null):(Z(s)?s.forEach(l=>i[l]=null):ke(i,s),ce(e)&&o.set(e,i),i)}function Do(e,t){return!e||!oo(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),le(e,t[0].toLowerCase()+t.slice(1))||le(e,We(t))||le(e,t))}function _b(){}function Mi(e){const{type:t,vnode:n,proxy:o,withProxy:a,propsOptions:[s],slots:i,attrs:r,emit:l,render:c,renderCache:u,props:f,data:b,setupState:v,ctx:E,inheritAttrs:A}=e,R=Eo(e);let M,L;try{if(n.shapeFlag&4){const h=a||o,T=h;M=pt(c.call(T,h,u,f,v,b,E)),L=r}else{const h=t;M=pt(h.length>1?h(f,{attrs:r,slots:i,emit:l}):h(f,null)),L=t.props?r:qu(r)}}catch(h){an.length=0,On(h,e,1),M=Ne(Tt)}let y=M;if(L&&A!==!1){const h=Object.keys(L),{shapeFlag:T}=y;h.length&&T&7&&(s&&h.some(ao)&&(L=Hu(L,s)),y=mn(y,L,!1,!0))}if(n.dirs&&(y=mn(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition){const h=Lo(y.type)&&mi(y)||y;Ta(h,n.transition)}return M=y,Eo(R),M}const qu=e=>{let t;for(const n in e)(n==="class"||n==="style"||oo(n))&&((t||(t={}))[n]=e[n]);return t},Hu=(e,t)=>{const n={};for(const o in e)(!ao(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Vu(e,t,n){const{props:o,children:a,component:s}=e,{props:i,children:r,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Di(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(Fi),xi=e=>Object.getPrototypeOf(e)===Fi;function Yu(e,t,n,o=!1){const a={},s=Oi();e.propsDefaults=Object.create(null),ji(e,t,a,s);for(const i in e.propsOptions[0])i in a||(a[i]=void 0);n?e.props=o?a:Yc(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function Ju(e,t,n,o){const{props:a,attrs:s,vnode:{patchFlag:i}}=e,r=ie(a),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[b,v]=Bi(f,t,!0);ke(i,b),v&&r.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return ce(e)&&o.set(e,un),un;if(Z(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Ma=e=>Z(e)?e.map(pt):[pt(e)],Zu=(e,t,n)=>{if(t._n)return t;const o=du((...a)=>Ma(t(...a)),n);return o._c=!1,o},Ui=(e,t,n)=>{const o=e._ctx;for(const a in e){if(Ia(a))continue;const s=e[a];if(te(s))t[a]=Zu(a,s,o);else if(s!=null){const i=Ma(s);t[a]=()=>i}}},Gi=(e,t)=>{const n=Ma(t);e.slots.default=()=>n},zi=(e,t,n)=>{for(const o in t)(n||!Ia(o))&&(e[o]=t[o])},Qu=(e,t,n)=>{const o=e.slots=Oi();if(e.vnode.shapeFlag&32){const a=t._;a?(zi(o,t,n),n&&Ms(o,"_",a,!0)):Ui(t,o)}else t&&Gi(e,t)},eg=(e,t,n)=>{const{vnode:o,slots:a}=e;let s=!0,i=me;if(o.shapeFlag&32){const r=t._;r?n&&r===1?s=!1:zi(a,t,n):(s=!t.$stable,Ui(t,a)),i=t}else t&&(Gi(e,t),i={default:1});if(s)for(const r in a)!Ia(r)&&i[r]==null&&delete a[r]},Ke=sg;function tg(e){return ng(e)}function ng(e,t){const n=uo();n.__VUE__=!0;const{insert:o,remove:a,patchProp:s,createElement:i,createText:r,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:b,setScopeId:v=rt,insertStaticContent:E}=e,A=(p,_,m,N=null,x=null,O=null,G=void 0,U=null,g=!!_.dynamicChildren)=>{if(p===_)return;p&&!Vn(p,_)&&(N=Rt(p),fe(p,x,O,!0),p=null),_.patchFlag===-2&&(g=!1,_.dynamicChildren=null);const{type:d,ref:$,shapeFlag:w}=_;switch(d){case qn:R(p,_,m,N);break;case Tt:M(p,_,m,N);break;case Ra:p==null&&L(_,m,N,G);break;case Ye:H(p,_,m,N,x,O,G,U,g);break;default:w&1?T(p,_,m,N,x,O,G,U,g):w&6?ee(p,_,m,N,x,O,G,U,g):(w&64||w&128)&&d.process(p,_,m,N,x,O,G,U,g,Ze)}$!=null&&x?Bn($,p&&p.ref,O,_||p,!_):$==null&&p&&p.ref!=null&&Bn(p.ref,null,O,p,!0)},R=(p,_,m,N)=>{if(p==null)o(_.el=r(_.children),m,N);else{const x=_.el=p.el;_.children!==p.children&&c(x,_.children)}},M=(p,_,m,N)=>{p==null?o(_.el=l(_.children||""),m,N):_.el=p.el},L=(p,_,m,N)=>{[p.el,p.anchor]=E(p.children,_,m,N,p.el,p.anchor)},y=({el:p,anchor:_},m,N)=>{let x;for(;p&&p!==_;)x=b(p),o(p,m,N),p=x;o(_,m,N)},h=({el:p,anchor:_})=>{let m;for(;p&&p!==_;)m=b(p),a(p),p=m;a(_)},T=(p,_,m,N,x,O,G,U,g)=>{if(_.type==="svg"?G="svg":_.type==="math"&&(G="mathml"),p==null)C(_,m,N,x,O,G,U,g);else{const d=p.el&&p.el._isVueCE?p.el:null;try{d&&d._beginPatch(),S(p,_,x,O,G,U,g)}finally{d&&d._endPatch()}}},C=(p,_,m,N,x,O,G,U)=>{let g,d;const{props:$,shapeFlag:w,transition:z,dirs:K}=p;if(g=p.el=i(p.type,O,$&&$.is,$),w&8?u(g,p.children):w&16&&F(p.children,g,null,N,x,Da(p,O),G,U),K&&en(p,null,N,"created"),I(g,p,p.scopeId,G,N),$){for(const P in $)P!=="value"&&!Cn(P)&&s(g,P,null,$[P],O,N);"value"in $&&s(g,"value",null,$.value,O),(d=$.onVnodeBeforeMount)&&ht(d,N,p)}K&&en(p,null,N,"beforeMount");const k=og(x,z);k&&z.beforeEnter(g),o(g,_,m),((d=$&&$.onVnodeMounted)||k||K)&&Ke(()=>{try{d&&ht(d,N,p),k&&z.enter(g),K&&en(p,null,N,"mounted")}finally{}},x)},I=(p,_,m,N,x)=>{if(m&&v(p,m),N)for(let O=0;O{for(let d=g;d{const U=_.el=p.el;let{patchFlag:g,dynamicChildren:d,dirs:$}=_;g|=p.patchFlag&16;const w=p.props||me,z=_.props||me;let K;if(m&&on(m,!1),(K=z.onVnodeBeforeUpdate)&&ht(K,m,_,p),$&&en(_,p,m,"beforeUpdate"),m&&on(m,!0),d&&(!p.dynamicChildren||p.dynamicChildren.length!==d.length)&&(g=0,G=!1,d=null),(w.innerHTML&&z.innerHTML==null||w.textContent&&z.textContent==null)&&u(U,""),d?W(p.dynamicChildren,d,U,m,N,Da(_,x),O):G||V(p,_,U,null,m,N,Da(_,x),O,!1),g>0){if(g&16)ae(U,w,z,m,x);else if(g&2&&w.class!==z.class&&s(U,"class",null,z.class,x),g&4&&s(U,"style",w.style,z.style,x),g&8){const k=_.dynamicProps;for(let P=0;P{K&&ht(K,m,_,p),$&&en(_,p,m,"updated")},N)},W=(p,_,m,N,x,O,G)=>{for(let U=0;U<_.length;U++){const g=p[U],d=_[U],$=g.el&&(g.type===Ye||!Vn(g,d)||g.shapeFlag&198)?f(g.el):m;A(g,d,$,null,N,x,O,G,!0)}},ae=(p,_,m,N,x)=>{if(_!==m){if(_!==me)for(const O in _)!Cn(O)&&!(O in m)&&s(p,O,_[O],null,x,N);for(const O in m){if(Cn(O))continue;const G=m[O],U=_[O];G!==U&&O!=="value"&&s(p,O,U,G,x,N)}"value"in m&&s(p,"value",_.value,m.value,x)}},H=(p,_,m,N,x,O,G,U,g)=>{const d=_.el=p?p.el:r(""),$=_.anchor=p?p.anchor:r("");let{patchFlag:w,dynamicChildren:z,slotScopeIds:K}=_;K&&(U=U?U.concat(K):K),p==null?(o(d,m,N),o($,m,N),F(_.children||[],m,$,x,O,G,U,g)):w>0&&w&64&&z&&p.dynamicChildren&&p.dynamicChildren.length===z.length?(W(p.dynamicChildren,z,m,x,O,G,U),(_.key!=null||x&&_===x.subTree)&&qi(p,_,!0)):V(p,_,m,$,x,O,G,U,g)},ee=(p,_,m,N,x,O,G,U,g)=>{_.slotScopeIds=U,p==null?_.shapeFlag&512?x.ctx.activate(_,m,N,G,g):Y(_,m,N,x,O,G,g):D(p,_,g)},Y=(p,_,m,N,x,O,G)=>{const U=p.component=gg(p,N,x);if(wo(p)&&(U.ctx.renderer=Ze),dg(U,!1,G),U.asyncDep){if(x&&x.registerDep(U,j,G),!p.el){const g=U.subTree=Ne(Tt);M(null,g,_,m),p.placeholder=g.el}}else j(U,p,_,m,x,O,G)},D=(p,_,m)=>{const N=_.component=p.component;if(Vu(p,_,m))if(N.asyncDep&&!N.asyncResolved){B(N,_,m);return}else N.next=_,N.update();else _.el=p.el,N.vnode=_},j=(p,_,m,N,x,O,G)=>{const U=()=>{if(p.isMounted){let{next:w,bu:z,u:K,parent:k,vnode:P}=p;{const Me=Hi(p);if(Me){w&&(w.el=P.el,B(p,w,G)),Me.asyncDep.then(()=>{Ke(()=>{p.isUnmounted||d()},x)});return}}let J=w,oe;on(p,!1),w?(w.el=P.el,B(p,w,G)):w=P,z&&aa(z),(oe=w.props&&w.props.onVnodeBeforeUpdate)&&ht(oe,k,w,P),on(p,!0);const ye=Mi(p),Be=p.subTree;p.subTree=ye,A(Be,ye,f(Be.el),Rt(Be),p,x,O),w.el=ye.el,J===null&&Wu(p,ye.el),K&&Ke(K,x),(oe=w.props&&w.props.onVnodeUpdated)&&Ke(()=>ht(oe,k,w,P),x)}else{let w;const{el:z,props:K}=_,{bm:k,m:P,parent:J,root:oe,type:ye}=p,Be=Kn(_);on(p,!1),k&&aa(k),!Be&&(w=K&&K.onVnodeBeforeMount)&&ht(w,J,_),on(p,!0);{oe.ce&&oe.ce._hasShadowRoot()&&oe.ce._injectChildStyle(ye,p.parent?p.parent.type:void 0);const Me=p.subTree=Mi(p);A(null,Me,m,N,p,x,O),_.el=Me.el}if(P&&Ke(P,x),!Be&&(w=K&&K.onVnodeMounted)){const Me=_;Ke(()=>ht(w,J,Me),x)}(_.shapeFlag&256||J&&Kn(J.vnode)&&J.vnode.shapeFlag&256)&&p.a&&Ke(p.a,x),p.isMounted=!0,_=m=N=null}};p.scope.on();const g=p.effect=new Us(U);p.scope.off();const d=p.update=g.run.bind(g),$=p.job=g.runIfDirty.bind(g);$.i=p,$.id=p.uid,g.scheduler=()=>Sa($),on(p,!0),d()},B=(p,_,m)=>{_.component=p;const N=p.vnode.props;p.vnode=_,p.next=null,Ju(p,_.props,N,m),eg(p,_.children,m),ct(),gi(p),ut()},V=(p,_,m,N,x,O,G,U,g=!1)=>{const d=p&&p.children,$=p?p.shapeFlag:0,w=_.children,{patchFlag:z,shapeFlag:K}=_;if(z>0){if(z&128){ue(d,w,m,N,x,O,G,U,g);return}else if(z&256){X(d,w,m,N,x,O,G,U,g);return}}K&8?($&16&&it(d,x,O),w!==d&&u(m,w)):$&16?K&16?ue(d,w,m,N,x,O,G,U,g):it(d,x,O,!0):($&8&&u(m,""),K&16&&F(w,m,N,x,O,G,U,g))},X=(p,_,m,N,x,O,G,U,g)=>{p=p||un,_=_||un;const d=p.length,$=_.length,w=Math.min(d,$);let z;for(z=0;z$?it(p,x,O,!0,!1,w):F(_,m,N,x,O,G,U,g,w)},ue=(p,_,m,N,x,O,G,U,g)=>{let d=0;const $=_.length;let w=p.length-1,z=$-1;for(;d<=w&&d<=z;){const K=p[d],k=_[d]=g?Lt(_[d]):pt(_[d]);if(Vn(K,k))A(K,k,m,null,x,O,G,U,g);else break;d++}for(;d<=w&&d<=z;){const K=p[w],k=_[z]=g?Lt(_[z]):pt(_[z]);if(Vn(K,k))A(K,k,m,null,x,O,G,U,g);else break;w--,z--}if(d>w){if(d<=z){const K=z+1,k=K<$?_[K].el:N;for(;d<=z;)A(null,_[d]=g?Lt(_[d]):pt(_[d]),m,k,x,O,G,U,g),d++}}else if(d>z)for(;d<=w;)fe(p[d],x,O,!0),d++;else{const K=d,k=d,P=new Map;for(d=k;d<=z;d++){const He=_[d]=g?Lt(_[d]):pt(_[d]);He.key!=null&&P.set(He.key,d)}let J,oe=0;const ye=z-k+1;let Be=!1,Me=0;const cn=new Array(ye);for(d=0;d=ye){fe(He,x,O,!0);continue}let _t;if(He.key!=null)_t=P.get(He.key);else for(J=k;J<=z;J++)if(cn[J-k]===0&&Vn(He,_[J])){_t=J;break}_t===void 0?fe(He,x,O,!0):(cn[_t-k]=d+1,_t>=Me?Me=_t:Be=!0,A(He,_[_t],m,null,x,O,G,U,g),oe++)}const Cs=Be?ag(cn):un;for(J=Cs.length-1,d=ye-1;d>=0;d--){const He=k+d,_t=_[He],mc=_[He+1],bc=He+1<$?mc.el||Wi(mc):N;cn[d]===0?A(null,_t,m,bc,x,O,G,U,g):Be&&(J<0||d!==Cs[J]?de(_t,m,bc,2):J--)}}},de=(p,_,m,N,x=null)=>{const{el:O,type:G,transition:U,children:g,shapeFlag:d}=p;if(d&6){de(p.component.subTree,_,m,N);return}if(d&128){p.suspense.move(_,m,N);return}if(d&64){G.move(p,_,m,Ze);return}if(G===Ye){o(O,_,m);for(let w=0;wU.enter(O),x));else{const{leave:w,delayLeave:z,afterLeave:K}=U,k=()=>{p.ctx.isUnmounted?a(O):o(O,_,m)},P=()=>{const J=O._isLeaving||!!O[ka];O._isLeaving&&O[ka](!0),U.persisted&&!J?k():w(O,()=>{k(),K&&K()})};z?z(O,k,P):P()}else o(O,_,m)},fe=(p,_,m,N=!1,x=!1)=>{const{type:O,props:G,ref:U,children:g,dynamicChildren:d,shapeFlag:$,patchFlag:w,dirs:z,cacheIndex:K,memo:k}=p;if(w===-2&&(x=!1),U!=null&&(ct(),Bn(U,null,m,p,!0),ut()),K!=null&&(_.renderCache[K]=void 0),$&256){_.ctx.deactivate(p);return}const P=$&1&&z,J=!Kn(p);let oe;if(J&&(oe=G&&G.onVnodeBeforeUnmount)&&ht(oe,_,p),$&6)ln(p.component,m,N);else{if($&128){p.suspense.unmount(m,N);return}P&&en(p,null,_,"beforeUnmount"),$&64?p.type.remove(p,_,m,Ze,N):d&&!d.hasOnce&&(O!==Ye||w>0&&w&64)?it(d,_,m,!1,!0):(O===Ye&&w&384||!x&&$&16)&&it(g,_,m),N&&je(p)}const ye=k!=null&&K==null;(J&&(oe=G&&G.onVnodeUnmounted)||P||ye)&&Ke(()=>{oe&&ht(oe,_,p),P&&en(p,null,_,"unmounted"),ye&&(p.el=null)},m)},je=p=>{const{type:_,el:m,anchor:N,transition:x}=p;if(_===Ye){Yt(m,N);return}if(_===Ra){h(p);return}const O=()=>{a(m),x&&!x.persisted&&x.afterLeave&&x.afterLeave()};if(p.shapeFlag&1&&x&&!x.persisted){const{leave:G,delayLeave:U}=x,g=()=>G(m,O);U?U(p.el,O,g):g()}else O()},Yt=(p,_)=>{let m;for(;p!==_;)m=b(p),a(p),p=m;a(_)},ln=(p,_,m)=>{const{bum:N,scope:x,job:O,subTree:G,um:U,m:g,a:d}=p;Vi(g),Vi(d),N&&aa(N),x.stop(),O&&(O.flags|=8,fe(G,p,_,m)),U&&Ke(U,_),Ke(()=>{p.isUnmounted=!0},_)},it=(p,_,m,N=!1,x=!1,O=0)=>{for(let G=O;G{if(p.shapeFlag&6)return Rt(p.component.subTree);if(p.shapeFlag&128)return p.suspense.next();const _=b(p.anchor||p.el),m=_&&_[_u];return m?b(m):_};let Ft=!1;const Jt=(p,_,m)=>{let N;p==null?_._vnode&&(fe(_._vnode,null,null,!0),N=_._vnode.component):A(_._vnode||null,p,_,null,null,null,m),_._vnode=p,Ft||(Ft=!0,gi(N),di(),Ft=!1)},Ze={p:A,um:fe,m:de,r:je,mt:Y,mc:F,pc:V,pbc:W,n:Rt,o:e};return{render:Jt,hydrate:void 0,createApp:Ku(Jt)}}function Da({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function on({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function og(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function qi(e,t,n=!1){const o=e.children,a=t.children;if(Z(o)&&Z(a))for(let s=0;s>1,e[n[r]]0&&(t[o]=n[s-1]),n[s]=o)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function Hi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Hi(t)}function Vi(e){if(e)for(let t=0;te.__isSuspense;function sg(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):gu(e)}const Ye=Symbol.for("v-fgt"),qn=Symbol.for("v-txt"),Tt=Symbol.for("v-cmt"),Ra=Symbol.for("v-stc"),an=[];let ze=null;function qe(e=!1){an.push(ze=e?null:[])}function Ji(){an.pop(),ze=an[an.length-1]||null}let Hn=1;function Ro(e,t=!1){Hn+=e,e<0&&ze&&t&&(ze.hasOnce=!0)}function Xi(e){return e.dynamicChildren=Hn>0?ze||un:null,Ji(),Hn>0&&ze&&ze.push(e),e}function $t(e,t,n,o,a,s){return Xi(Ee(e,t,n,o,a,s,!0))}function Fo(e,t,n,o,a){return Xi(Ne(e,t,n,o,a,!0))}function Oo(e){return e?e.__v_isVNode===!0:!1}function Vn(e,t){return e.type===t.type&&e.key===t.key}const Zi=({key:e})=>e??null,xo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ae(e)||ve(e)||te(e)?{i:nt,r:e,k:t,f:!!n}:e:null);function Ee(e,t=null,n=null,o=0,a=null,s=e===Ye?0:1,i=!1,r=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Zi(t),ref:t&&xo(t),scopeId:pi,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:nt};return r?(jo(l,n),s&128&&e.normalize(l)):n&&(l.shapeFlag|=Ae(n)?8:16),Hn>0&&!i&&ze&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&ze.push(l),l}const Ne=ig;function ig(e,t=null,n=null,o=0,a=null,s=!1){if((!e||e===vi)&&(e=Tt),Oo(e)){const r=mn(e,t,!0);return n&&jo(r,n),Hn>0&&!s&&ze&&(r.shapeFlag&6?ze[ze.indexOf(e)]=r:ze.push(r)),r.patchFlag=-2,r}if(_g(e)&&(e=e.__vccOpts),t){t=rg(t);let{class:r,style:l}=t;r&&!Ae(r)&&(t.class=Nn(r)),ce(l)&&(So(l)&&!Z(l)&&(l=ke({},l)),t.style=go(l))}const i=Ae(e)?1:Yi(e)?128:Lo(e)?64:ce(e)?4:te(e)?2:0;return Ee(e,t,n,o,a,i,s,!0)}function rg(e){return e?So(e)||xi(e)?ke({},e):e:null}function mn(e,t,n=!1,o=!1){const{props:a,ref:s,patchFlag:i,children:r,transition:l}=e,c=t?lg(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Zi(c),ref:t&&t.ref?n&&s?Z(s)?s.concat(xo(t)):[s,xo(t)]:xo(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ye?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&mn(e.ssContent),ssFallback:e.ssFallback&&mn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&Ta(u,l.clone(u)),u}function Et(e=" ",t=0){return Ne(qn,null,e,t)}function bn(e="",t=!1){return t?(qe(),Fo(Tt,null,e)):Ne(Tt,null,e)}function pt(e){return e==null||typeof e=="boolean"?Ne(Tt):Z(e)?Ne(Ye,null,e.slice()):Oo(e)?Lt(e):Ne(qn,null,String(e))}function Lt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:mn(e)}function jo(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(Z(t))n=16;else if(typeof t=="object")if(o&65){const a=t.default;a&&(a._c&&(a._d=!1),jo(e,a()),a._c&&(a._d=!0));return}else{n=32;const a=t._;!a&&!xi(t)?t._ctx=nt:a===3&&nt&&(nt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(te(t)){if(o&65){jo(e,{default:t});return}t={default:t,_ctx:nt},n=32}else t=String(t),o&64?(n=16,t=[Et(t)]):n=8;e.children=t,e.shapeFlag|=n}function lg(...e){const t={};for(let n=0;nPe||nt;let Bo,Wn;{const e=uo(),t=(n,o)=>{let a;return(a=e[n])||(a=e[n]=[]),a.push(o),s=>{a.length>1?a.forEach(i=>i(s)):a[0](s)}};Bo=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),Wn=t("__VUE_SSR_SETTERS__",n=>_n=n)}const Yn=e=>{const t=Pe;return Bo(e),e.scope.on(),()=>{e.scope.off(),Bo(t)}},Qi=()=>{Pe&&Pe.scope.off(),Bo(null)};function er(e){return e.vnode.shapeFlag&4}let _n=!1;function dg(e,t=!1,n=!1){t&&Wn(t);const{props:o,children:a}=e.vnode,s=er(e);Yu(e,o,s,t),Qu(e,a,n||t);const i=s?fg(e,t):void 0;return t&&Wn(!1),i}function fg(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Du);const{setup:o}=n;if(o){ct();const a=e.setupContext=o.length>1?hg(e):null,s=Yn(e),i=fn(o,e,0,[e.props,a]),r=Ps(i);if(ut(),s(),(r||e.sp)&&!Kn(e)&&$a(e),r){if(i.then(Qi,Qi),t)return i.then(l=>{Wn(!0);try{tr(e,l,t)}finally{Wn(!1)}}).catch(l=>{On(l,e,0)});e.asyncDep=i}else tr(e,i)}else nr(e)}function tr(e,t,n){te(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ce(t)&&(e.setupState=ri(t)),nr(e)}function nr(e,t,n){const o=e.type;e.render||(e.render=o.render||rt);{const a=Yn(e);ct();try{Ru(e)}finally{ut(),a()}}}const pg={get(e,t){return De(e,"get",""),e[t]}};function hg(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,pg),slots:e.slots,emit:e.emit,expose:t}}function Fa(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ri(Rn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Gn)return Gn[n](e)},has(t,n){return n in t||n in Gn}})):e.proxy}const mg=/(?:^|[-_])\w/g,bg=e=>e.replace(mg,t=>t.toUpperCase()).replace(/[-_]/g,"");function or(e,t=!0){return te(e)?e.displayName||e.name:e.name||t&&e.__name}function ar(e,t,n=!1){let o=or(t);if(!o&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(o=a[1])}if(!o&&e){const a=s=>{for(const i in s)if(s[i]===t)return i};o=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return o?bg(o):n?"App":"Anonymous"}function _g(e){return te(e)&&"__vccOpts"in e}const he=(e,t)=>nu(e,t,_n);function sr(e,t,n){try{Ro(-1);const o=arguments.length;return o===2?ce(t)&&!Z(t)?Oo(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Oo(n)&&(n=[n]),Ne(e,t,n))}finally{Ro(1)}}const yg="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT @@ -67,9 +66,9 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(l,c)=>s.value?(qe(),$t("div",{key:0,class:Nn(["pin-hint",{dark:o.value}]),role:"status"},[Ee("span",em,[c[0]||(c[0]=Ee("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Et(" "+Xt(a.value)+" ",1),Ee("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:r},"×")])],2)):bn("",!0)}};let nm=0;const om=za("ui",{state:()=>({_storeInstanceId:++nm,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(n=>n.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const n=this.isDarkTheme;document.documentElement.setAttribute("data-theme",n?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:n="info",duration:o=this.toastDuration,action:a=null,persistent:s=!1}=e,i={id:this.nextToastId++,message:t,type:n,duration:o,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(i),!s&&o>0&&setTimeout(()=>{this.removeToast(i.id)},o),i.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(n=>n.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(n=>{for(const o of n)this.updateWindowSize(o.contentRect.width,o.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",n.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",n=>{this.reducedMotion=n.matches,document.documentElement.setAttribute("data-reduced-motion",n.matches)}))}}}),am=za("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,n={}){let o=1.5;n.zoom!==void 0?o=n.zoom:t&&typeof t.getZoom=="function"&&(o=t.getZoom());let a=[0,0];if(n.center)a=n.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const n=this.maps[e];n&&Object.assign(n,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),sm=za("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const n=await t();this.sources[e]=Rn({features:n,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(n){console.error(`[dataStore] Failed to load source "${e}":`,n),this.loadingStates[e]={isLoading:!1,error:n}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Rn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var n;return((n=e.sources[t])==null?void 0:n.features)??null},isLoading:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.isLoading)??!1},getError:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.error)??null}}}),Gl={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},im=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},rm={class:"profile-loader"},lm={key:0,class:"profile-error"},cm={key:1,class:"profile-error"},um=im({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var y;const n=e,o=he(()=>{if(!n.profileConfig)return null;try{return JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}}),a=he(()=>{var h;return((h=o.value)==null?void 0:h.profile)||null}),s=he(()=>{var h;return((h=o.value)==null?void 0:h.tk)||""}),i=he(()=>{var h;return((h=o.value)==null?void 0:h.dataSource)||Gl.activeSource||"doxa-csv"}),r=he(()=>{var h;return((h=o.value)==null?void 0:h.colorSet)||"default"}),l=he(()=>!1),c=he(()=>{var h;return((h=o.value)==null?void 0:h.pinHint)!==!1}),u=he(()=>{var T,C;const h=(((T=o.value)==null?void 0:T.locale)||((C=o.value)==null?void 0:C.lang)||"").split("-")[0].toLowerCase();return Kl.includes(h)?h:""}),f=Fe("appI18n",null);mu(()=>{u.value&&f&&(f.global.locale.value=u.value)});const b=he(()=>{var h,T;return u.value||((T=(h=f==null?void 0:f.global)==null?void 0:h.locale)==null?void 0:T.value)||"en"}),v=he(()=>{var h;return((h=o.value)==null?void 0:h.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),E=Fe("profileModules",null);if(!E)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const A=he(()=>{if(!a.value)return null;const h=`./${a.value}.vue`;return E[h]?Su(E[h]):(console.error(`[ProfileLoader] Profile not found: "${a.value}". Available:`,Object.keys(E)),null)});ft("mapboxToken",s),ft("dataSource",i),ft("colorSet",r),ft("profileConfig",o),ft("instanceId",v),ft("lang",b);const R=om(),M=am(),L=sm();try{const h=typeof localStorage<"u"?localStorage.getItem("theme"):null;h&&((y=R.setTheme)==null||y.call(R,h))}catch{}return ft("uiStore",R),ft("mapStore",M),ft("dataStore",L),(h,T)=>(qe(),$t("div",rm,[o.value?A.value?(qe(),Fo(ki(A.value),{key:2})):(qe(),$t("div",cm,[Ee("p",null,[T[1]||(T[1]=Et("⚠️ Profile ",-1)),Ee("strong",null,'"'+Xt(a.value)+'"',1),T[2]||(T[2]=Et(" not found.",-1))])])):(qe(),$t("div",lm,[...T[0]||(T[0]=[Ee("p",null,[Et("⚠️ "),Ee("strong",null,"doxa-map"),Et(": missing or invalid "),Ee("code",null,"profile-config"),Et(" prop.")],-1),Ee("p",null,[Et("Example: "),Ee("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),A.value&&l.value?(qe(),Fo(ki(vo(null)),{key:3})):bn("",!0),A.value&&c.value?(qe(),Fo(tm,{key:4})):bn("",!0)]))}},[["__scopeId","data-v-50211124"]]),gm=Object.assign({"./all-people-groups.vue":()=>_c(()=>Promise.resolve().then(()=>ub),void 0)}),dm=Gg(um,{configureApp(e){e.use(Yg());const t=Zh();e.use(t),e.provide("appI18n",t),e.provide("profileModules",gm)}});typeof customElements<"u"&&!customElements.get("all-people-groups")&&customElements.define("all-people-groups",dm);const fm="rgba(120, 128, 134, 0.28)",zl="36px",ql=()=>{};function pm(e,t={}){const{enabled:n=!0}=t;if(!n||!e)return ql;const o=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!o.length)return ql;const a=L=>L.classList.contains("map-scroll-edge--left");for(const L of o)L.style.background=`linear-gradient(${a(L)?"to right":"to left"}, ${fm} ${zl}, transparent ${zl})`,L.style.opacity="0",L.style.transition="opacity 0.16s ease",L.style.userSelect="none",L.style.webkitUserSelect="none";const s=L=>{L.style.opacity="1"},i=L=>{L.style.opacity="0"},r=()=>o.find(L=>!a(L))||null,l=new Set;let c=!1,u=null;const f=()=>{for(const L of o)l.has(L)||i(L)},b=()=>{const L=r();L&&(s(L),u&&clearTimeout(u),u=setTimeout(f,250))},v=()=>b(),E=L=>{if(!(L.touches&&L.touches.length===1))return;const y=L.target;y&&y.classList&&y.classList.contains("map-scroll-edge")||b()},A=()=>{u&&clearTimeout(u),f()};e.addEventListener("wheel",v,{passive:!0}),e.addEventListener("touchmove",E,{passive:!0}),e.addEventListener("touchend",A,{passive:!0}),e.addEventListener("touchcancel",A,{passive:!0});const R=()=>{c||b()};typeof window<"u"&&window.addEventListener("scroll",R,{passive:!0});const M=[];for(const L of o){const y=()=>{l.add(L),s(L)},h=()=>{l.delete(L),i(L)},T=()=>{c=!0,s(L)},C=()=>{c=!1,i(L)};L.addEventListener("mouseenter",y),L.addEventListener("mouseleave",h),L.addEventListener("touchstart",T,{passive:!0}),L.addEventListener("touchend",C,{passive:!0}),M.push(()=>{L.removeEventListener("mouseenter",y),L.removeEventListener("mouseleave",h),L.removeEventListener("touchstart",T),L.removeEventListener("touchend",C)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",v),e.removeEventListener("touchmove",E),e.removeEventListener("touchend",A),e.removeEventListener("touchcancel",A),typeof window<"u"&&window.removeEventListener("scroll",R);for(const y of M)y();for(const y of o)i(y)}}const hm=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["research-dashboard"]}].map(e=>[e.id,e]));function mm(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0};const n=hm[e];return n?t==="maplibre"?{style:n.maplibre,lightPreset:void 0}:{style:n.mapbox,lightPreset:n.lightPreset}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0}:{style:void 0,lightPreset:void 0}}const $n={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function Hl(e){if(typeof window>"u")return;const t=window,n=()=>{try{const o=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");o&&(o.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",n),n();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const bm=$n.mapbox.css,_m="https://tiles.openfreemap.org/styles/liberty";function gs(e){var n;const t=((n=$n[e])==null?void 0:n.global)||$n.mapbox.global;return typeof window<"u"?window[t]:void 0}async function ym(e){const t=$n[e]||$n.mapbox;if(gs(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const o=document.createElement("link");o.rel="stylesheet",o.href=t.css,document.head.appendChild(o)}const n=document.querySelector(`script[src="${t.js}"]`);if(n){if(gs(e))return;await new Promise(o=>{n.addEventListener("load",o,{once:!0}),n.addEventListener("error",o,{once:!0})});return}await new Promise((o,a)=>{const s=document.createElement("script");s.src=t.js,s.async=!1,s.addEventListener("load",o,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function Am(e,t){const n=e.getRootNode();if(!(n instanceof ShadowRoot))return;const o=i=>new Promise(r=>setTimeout(r,i)),a=n.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(i=>{a.addEventListener("load",i,{once:!0}),a.addEventListener("error",i,{once:!0})}),o(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,await Promise.race([new Promise(i=>{s.addEventListener("load",i,{once:!0}),s.addEventListener("error",i,{once:!0}),n.prepend(s)}),o(2e3)])}function Sm(e){return typeof e=="string"&&/^https?:\/\//.test(e)?e:_m}const vm=85.0511,Vl=-2,km=0,Tm=-60;function Wl(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function $m(e,t,n,o){if(!e||e<=0||!t||t<=0)return km;const a=Math.log2(e/512),s=Wl(o)-Wl(vm),i=Math.log2(t/(512*s)),r=Math.max(a,i);return Math.max(Vl,Math.min(r,(n??18)-1))}function Em({containerRef:e,accessToken:t,style:n,config:o=void 0,provider:a="mapbox",center:s=[20,10],zoom:i=2,minZoom:r=void 0,maxZoom:l=18,pitch:c=0,bearing:u=0,renderWorldCopies:f=!0,showEdgeBorders:b=!0,southCutoff:v=Tm,maxBounds:E=void 0}){const A=_a(null),R=pe(!1);let M=null,L=null;const y=a==="maplibre";async function h(){var j;const I=mm(n,a).style||n;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}await ym(a);const F=gs(a);if(!F){console.error(`[useMapInstance] ${y?"maplibregl":"mapboxgl"} is not available. Add the ${y?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(!y){if(!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}await Am(e.value,y?$n.maplibre.css:bm),await new Promise(B=>requestAnimationFrame(B));const S=e.value,W=S.clientWidth,ae=S.clientHeight;if(W===0||ae===0){console.error(`[useMapInstance] Container has ZERO dimensions (${W}×${ae}). Map will be invisible. Check that parent elements have CSS sizing.`);let B=S.parentElement,V=0;for(;B&&V<5;)B=B.parentElement,V++}const H=t;y||(F.accessToken=H);const ee=()=>typeof window<"u"&&window.innerWidth>=1024,Y=(B,V)=>{if(!ee())return Vl;const X=$m(B,V,l,v);return typeof r=="number"?Math.max(r,X):X},D=Y(S.clientWidth,S.clientHeight);if(y){A.value=new F.Map({container:e.value,style:Sm(I),center:s,zoom:i,minZoom:D,maxZoom:l,pitch:c,bearing:u,dragRotate:!1,renderWorldCopies:f,...E?{maxBounds:E}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Hl(A.value);try{e.value.__doxaMap=A.value}catch{}}else{const B=typeof o=="function"?o():o;A.value=new F.Map({accessToken:H,container:e.value,style:I,...B?{config:B}:{},center:s,zoom:i,minZoom:D,maxZoom:l,pitch:c,bearing:u,dragRotate:!1,touchPitch:!1,renderWorldCopies:f,...E?{maxBounds:E}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Hl(A.value);try{e.value.__doxaMap=A.value}catch{}}try{A.value.touchZoomRotate.disableRotation()}catch{}L=pm(((j=e.value)==null?void 0:j.parentElement)||null,{enabled:b}),M=()=>{const B=A.value;if(!B)return;const V=Y(S.clientWidth,S.clientHeight);B.setMinZoom(V),B.getZoom(){requestAnimationFrame(()=>{var B;(B=A.value)==null||B.resize(),A.value&&A.value.setMinZoom(Y(S.clientWidth,S.clientHeight)),R.value=!0})})}function T(){A.value&&(M&&(A.value.off("resize",M),typeof window<"u"&&(window.removeEventListener("resize",M),window.removeEventListener("orientationchange",M)),M=null),L&&(L(),L=null),A.value.remove(),A.value=null,R.value=!1)}return{map:A,isMapReady:R,initializeMap:h,destroy:T}}const Lm=["mapbox","maplibre"],Yl="mapbox";function Cm(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function Nm(e){const t=Cm(e),n=t==null?void 0:t.provider,o=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(n||o||a||Yl).toLowerCase().trim();return Lm.includes(s)?s:Yl}const Jl="doxa-prayed-local",wm=7*24*60*60*1e3;function Pm(){try{const e=localStorage.getItem(Jl);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function Im(e){try{localStorage.setItem(Jl,JSON.stringify(e))}catch{}}function Mm(){const e=Date.now(),t=Pm();let n=!1;for(const[o,a]of Object.entries(t))(typeof a!="number"||e-a>wm)&&(delete t[o],n=!0);return n&&Im(t),new Set(Object.keys(t))}function Dm(e){const t=Mm();return!t.size||!Array.isArray(e)?e:e.map(n=>(Number(n&&n.peoplePraying)||0)>0||!n||!t.has(n.slug)?n:{...n,peoplePraying:1})}const Ht={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"},Xl={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"},ds="languageFamily",Rm="#000000",Vt={"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","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Fm=Vt;function fs(e){return Vt[e]||Rm}const Om=(()=>{const e=n=>String(n||"").toLowerCase().trim(),t={};for(const n of Object.keys(Vt))t[e(n)]=n;return t})();function ps(e){if(!e)return"Unknown";const t=String(e).trim();return Om[t.toLowerCase()]||t}function Zl(e){var t;return fs(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function hs(){const e=["match",["get",ds]];return Object.entries(Vt).forEach(([t,n])=>{e.push(t,n)}),e.push("#95a5a6"),e}const Ql=hs,xm=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Fm,PALETTE:Vt,PROPERTY_KEY:ds,applyColor:hs,buildColorExpression:Ql,canonicalFamilyName:ps,default:{name:"Language Family",propertyKey:ds,palette:Vt,colors:Vt,getColor:Zl,applyColor:hs,buildColorExpression:Ql,getLanguageFamilyColor:fs,canonicalFamilyName:ps},defaultFamilyColor:"#95a5a6",getColor:Zl,getLanguageFamilyColor:fs,languageFamilyColors:Vt},Symbol.toStringTag,{value:"Module"})),ec="adoptionStatus",Mt={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},jm=Mt,ms={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Bm=ms;function tc(e){var o;const t=e.adoptionStatus??((o=e._raw)==null?void 0:o.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Mt.hasAdoption:Mt.notAdopted}function bs({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Mt.hasAdoption,["==",t,1],Mt.hasAdoption,Mt.notAdopted]}const nc=bs,Km=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:jm,ADOPTION_LABELS:Bm,LABELS:ms,PALETTE:Mt,PROPERTY_KEY:ec,applyColor:bs,buildColorExpression:nc,default:{name:"Adoption Progress",propertyKey:ec,palette:Mt,colors:Mt,labels:ms,getColor:tc,applyColor:bs,buildColorExpression:nc},getColor:tc},Symbol.toStringTag,{value:"Module"})),oc="engagementStatus",Dt={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Um=Dt,_s={notEngaged:"Unengaged",hasEngagement:"Engaged"},Gm=_s;function ac(e){var o;const t=e.engagementStatus??((o=e._raw)==null?void 0:o.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Dt.hasEngagement:Dt.notEngaged}function ys({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Dt.hasEngagement,["==",t,1],Dt.hasEngagement,Dt.notEngaged]}const sc=ys,zm=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Um,ENGAGEMENT_LABELS:Gm,LABELS:_s,PALETTE:Dt,PROPERTY_KEY:oc,applyColor:ys,buildColorExpression:sc,default:{name:"Engagement Progress",propertyKey:oc,palette:Dt,colors:Dt,labels:_s,getColor:ac,applyColor:ys,buildColorExpression:sc},getColor:ac},Symbol.toStringTag,{value:"Module"})),ic="peoplePraying",Zo=144,Wt={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},qm=Wt,As={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},Hm=As;function Qo(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,n=Number(t)||0;return n>=Zo?"fullPrayer":n>0?"hasPrayer":"noPrayer"}function Ss(e){return Wt[Qo(e)]}function rc(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;return t!==null&&t>0}function lc(e){return Qo(e)==="fullPrayer"}function cc(e){return Ss(e)}function vs({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Zo],Wt.fullPrayer,[">",t,0],Wt.hasPrayer,Wt.noPrayer]}const uc=vs,Vm=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Zo,LABELS:As,PALETTE:Wt,PRAYER_COLORS:qm,PRAYER_LABELS:Hm,PROPERTY_KEY:ic,applyColor:vs,buildColorExpression:uc,checkHasFullPrayer:lc,checkHasPrayer:rc,default:{name:"Prayer Progress",propertyKey:ic,palette:Wt,colors:Wt,labels:As,threshold:Zo,getColor:cc,applyColor:vs,buildColorExpression:uc,getPrayerLevel:Qo,getPrayerColor:Ss,checkHasPrayer:rc,checkHasFullPrayer:lc},getColor:cc,getPrayerColor:Ss,getPrayerLevel:Qo},Symbol.toStringTag,{value:"Module"})),gc="religion",ks="#94a3b8",Ts={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Xe={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function dc(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Ts[t]?t:"U"}function fc(e){var n,o,a;const t=(e==null?void 0:e.religion)||((o=(n=e==null?void 0:e._raw)==null?void 0:n.religion)==null?void 0:o.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return Xe[dc(t)]||ks}function $s(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Xe.C,"M",Xe.M,"H",Xe.H,"B",Xe.B,"E",Xe.E,"J",Xe.J,"S",Xe.S,"N",Xe.N,"O",Xe.O,ks]}const pc=$s,Wm=Object.assign({"./adoption.js":Km,"./engagement.js":zm,"./language-family.js":xm,"./prayer-progress.js":Vm,"./religion.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Xe,PROPERTY_KEY:gc,RELIGION_FAMILIES:Ts,applyColor:$s,buildColorExpression:pc,default:{name:"Religion",propertyKey:gc,palette:Xe,families:Ts,getColor:fc,applyColor:$s,buildColorExpression:pc,fallback:ks},getColor:fc,getReligionFamily:dc},Symbol.toStringTag,{value:"Module"}))}),Ym=e=>e.replace(/-([a-z0-9])/g,(t,n)=>n.toUpperCase()),Jm=e=>e.replace(/-/g,"_").toUpperCase(),Xm={...{STATUS:"status",CUSTOM:"custom"}};function Zm(e){for(const t of Object.keys(e).sort()){const n=t.split("/").pop().replace(/\.js$/,"");if(n.startsWith("_")||n.startsWith(".")||!e[t].default)continue;const a=Ym(n);Xm[Jm(n)]=a}}Zm(Wm);function Es(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const Qm=[[/ sign language$/i,"Sign Language"]];function eb(e){var r,l;const t=Es(e.languageFamily);if(t)return t;const n=String(((l=(r=e._raw)==null?void 0:r.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(n&&Xl[n])return Xl[n];const o=Es(e.language||e.primary_language);if(!o||typeof o!="string")return"";const a=o.trim(),s=a.split(",").map(c=>c.trim()).filter(Boolean);if(s.length>=2){const c=[...s].reverse().join(" ");if(Ht[c])return Ht[c];if(s.length>=3){const u=[s[1],s[0]].join(" ");if(Ht[u])return Ht[u]}}if(Ht[a])return Ht[a];const i=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(i!==a&&Ht[i])return Ht[i];for(const[c,u]of Qm)if(c.test(a))return u;return""}function tb(e){const{mapId:t="unknown",dataSourceId:n="doxa-csv",dataSourceManager:o=null,dataStore:a=null,markRaw:s=I=>I}=e;o||console.error("useMapData: dataSourceManager is required!");const i=pe(!1),r=pe(null),l=pe(!1),c=pe([]),u=pe([]),f=pe(null),b=pe([]),v=pe([]),E=pe([]),A=pe(null);async function R(){if(!o)throw new Error("dataSourceManager is required for useMapData");i.value=!0,r.value=null;try{if(await o.init(),a&&a.hasSourceData&&a.hasSourceData(n)){const D=a.getSourceData(n);u.value=s(D.normalizedData||[])}else{const D=await o.setActiveSource(n);for(const j of D){const B=Es(j.language||j.primary_language);B&&(j.language=B);const V=eb(j);j.languageFamily=ps(V)}u.value=s(D),a&&a.cacheSourceData&&a.cacheSourceData(n,{normalizedData:D,timestamp:Date.now()})}c.value=s(Dm(u.value.map(D=>({id:D.uniqueId,slug:D.slug||"",rop3:D.peopleGroupId,peopleId3:D.peopleId3,name:D.name,language:D.language,languageFamily:D.languageFamily,country:D.country,population:D.population,status:D.engagementStatus||D.status,latitude:D.latitude,longitude:D.longitude,lng:D.longitude,lat:D.latitude,description:D.description,imageUrl:D.imageUrl,doxaRegion:D.doxaRegion||D.wagfRegion||"",peoplePraying:D.peoplePraying??null,_normalized:D}))));const I=o.getDataByLanguageFamily();b.value=Object.entries(I).map(([D,j])=>{const B=j.reduce((V,X)=>{const ue=parseInt(X.population)||0;return V+ue},0);return{name:D,count:j.length,peopleGroupCount:j.length,population:B,groups:j}}).sort((D,j)=>j.count-D.count);const F=o.getDataByRegion();v.value=Object.entries(F).map(([D,j])=>{const B=j.reduce((V,X)=>{const ue=parseInt(X.population)||0;return V+ue},0);return{name:D,count:j.length,peopleGroupCount:j.length,population:B,groups:j}}).sort((D,j)=>D.name.localeCompare(j.name));const S={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach(D=>{const j=parseInt(D.population)||0;let B=!1;D.bible==="Available"&&(S.bible.count++,S.bible.population+=j,S.bible.groups.push(D),B=!0),D.jesusFilm==="Available"&&(S.jesusFilm.count++,S.jesusFilm.population+=j,S.jesusFilm.groups.push(D),B=!0),D.radio==="Available"&&(S.radio.count++,S.radio.population+=j,S.radio.groups.push(D),B=!0),D.gospel==="Available"&&(S.gospel.count++,S.gospel.population+=j,S.gospel.groups.push(D),B=!0),D.audio==="Available"&&(S.audio.count++,S.audio.population+=j,S.audio.groups.push(D),B=!0),D.stories==="Available"&&(S.stories.count++,S.stories.population+=j,S.stories.groups.push(D),B=!0),B?(S.hasResources.count++,S.hasResources.population+=j,S.hasResources.groups.push(D)):(S.noResources.count++,S.noResources.population+=j,S.noResources.groups.push(D))});const W=u.value.length,ae=u.value.reduce((D,j)=>D+(parseInt(j.population)||0),0),H={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},ee={bible:{count:W-S.bible.count,population:ae-S.bible.population},jesusFilm:{count:W-S.jesusFilm.count,population:ae-S.jesusFilm.population},radio:{count:W-S.radio.count,population:ae-S.radio.population},gospel:{count:W-S.gospel.count,population:ae-S.gospel.population},audio:{count:W-S.audio.count,population:ae-S.audio.population},stories:{count:W-S.stories.count,population:ae-S.stories.population}},Y="#2c3e50";return E.value=[{name:H.bible,key:"bible",count:S.bible.count,population:S.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:ee.bible.count,population:ee.bible.population,color:Y}]},{name:H.jesusFilm,key:"jesusFilm",count:S.jesusFilm.count,population:S.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:ee.jesusFilm.count,population:ee.jesusFilm.population,color:Y}]},{name:H.radio,key:"radio",count:S.radio.count,population:S.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:ee.radio.count,population:ee.radio.population,color:Y}]},{name:H.gospel,key:"gospel",count:S.gospel.count,population:S.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:ee.gospel.count,population:ee.gospel.population,color:Y}]},{name:H.audio,key:"audio",count:S.audio.count,population:S.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:ee.audio.count,population:ee.audio.population,color:Y}]},{name:H.stories,key:"stories",count:S.stories.count,population:S.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:ee.stories.count,population:ee.stories.population,color:Y}]},{name:H.hasResources,key:"hasResources",count:S.hasResources.count,population:S.hasResources.population,isParent:!0,children:[{name:H.noResources,key:"noResources",count:S.noResources.count,population:S.noResources.population,color:Y}]}],A.value=o.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:b.value,doxaRegionsData:v.value,resourcesData:E.value,stats:A.value}}catch(I){throw console.error(`Failed to load data for map "${t}":`,I),r.value=I.message||"Failed to load data",I}finally{i.value=!1}}async function M(){var I,F,S;try{const W={},ae=u.value||[];for(const H of ae){const ee=H.countryIso||((F=(I=H._raw)==null?void 0:I.country_code)==null?void 0:F.value)||"",Y=(S=H._raw)==null?void 0:S.wagf_region,D=H.doxaRegion||H.wagfRegion||(Y&&typeof Y=="object"?Y.value:"")||"";ee&&D&&!W[ee]&&(W[ee]=D)}return f.value={isoToRegion:W},f.value}catch(W){throw console.error(`Error building regions data for map "${t}":`,W),r.value=W.message||"Failed to build regions",W}}function L(){return o?o.getDataByLanguageFamily():{}}function y(){return o?o.getDataByRegion():{}}function h(I){return L()[I]||[]}function T(I){return y()[I]||[]}function C(){c.value=[],u.value=[],f.value=null,b.value=[],v.value=[],E.value=[],A.value=null,l.value=!1,r.value=null}return{isLoading:i,isInitialized:l,error:r,peopleGroups:c,normalizedPeopleGroups:u,regionsData:f,languageFamiliesData:b,doxaRegionsData:v,resourcesData:E,stats:A,loadData:R,loadRegionsData:M,getDataByLanguageFamily:L,getDataByRegion:y,getPeopleGroupsByFamily:h,getPeopleGroupsByRegion:T,clearData:C}}const Ls={};function nb(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:ea&&ea.tagName.toUpperCase()==="SCRIPT"&&ea.src||new URL("all-people-groups.js",document.baseURI).href}<"u"&&(Ls==null?void 0:Ls.VITE_API_BASE_URL)||""}class hc{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=Gl,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var n,o;return(o=(n=this.sourcesConfig)==null?void 0:n.sources)==null?void 0:o[t]}async setActiveSource(t){const n=this.getSourceConfig(t);if(!n)throw new Error(`Source not found: ${t}`);if(this.activeSource=n,this.cacheEnabled&&this.cache.has(t)){const o=this.cache.get(t);return this.normalizedData=o.normalizedData,this.dataByUniqueId=o.dataByUniqueId,this.normalizedData}return n.type==="csv"?await this.loadCSVData(n):n.type==="api"?await this.loadAPIData(n):n.type==="rest-api"&&await this.loadRestApiData(n),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const n=[],o=[];let a="",s=!1,i=[],r=!0;for(let l=0;ls.value?(qe(),$t("div",{key:0,class:Nn(["pin-hint",{dark:o.value}]),role:"status"},[Ee("span",em,[c[0]||(c[0]=Ee("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Et(" "+Xt(a.value)+" ",1),Ee("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:r},"×")])],2)):bn("",!0)}};let nm=0;const om=za("ui",{state:()=>({_storeInstanceId:++nm,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(n=>n.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const n=this.isDarkTheme;document.documentElement.setAttribute("data-theme",n?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:n="info",duration:o=this.toastDuration,action:a=null,persistent:s=!1}=e,i={id:this.nextToastId++,message:t,type:n,duration:o,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(i),!s&&o>0&&setTimeout(()=>{this.removeToast(i.id)},o),i.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(n=>n.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(n=>{for(const o of n)this.updateWindowSize(o.contentRect.width,o.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",n.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",n=>{this.reducedMotion=n.matches,document.documentElement.setAttribute("data-reduced-motion",n.matches)}))}}}),am=za("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,n={}){let o=1.5;n.zoom!==void 0?o=n.zoom:t&&typeof t.getZoom=="function"&&(o=t.getZoom());let a=[0,0];if(n.center)a=n.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const n=this.maps[e];n&&Object.assign(n,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),sm=za("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const n=await t();this.sources[e]=Rn({features:n,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(n){console.error(`[dataStore] Failed to load source "${e}":`,n),this.loadingStates[e]={isLoading:!1,error:n}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Rn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var n;return((n=e.sources[t])==null?void 0:n.features)??null},isLoading:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.isLoading)??!1},getError:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.error)??null}}}),Gl={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},im=".profile-loader[data-v-50211124]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;position:relative}.profile-error[data-v-50211124]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",rm=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},lm={class:"profile-loader"},cm={key:0,class:"profile-error"},um={key:1,class:"profile-error"},gm=rm({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var y;const n=e,o=he(()=>{if(!n.profileConfig)return null;try{return JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}}),a=he(()=>{var h;return((h=o.value)==null?void 0:h.profile)||null}),s=he(()=>{var h;return((h=o.value)==null?void 0:h.tk)||""}),i=he(()=>{var h;return((h=o.value)==null?void 0:h.dataSource)||Gl.activeSource||"doxa-csv"}),r=he(()=>{var h;return((h=o.value)==null?void 0:h.colorSet)||"default"}),l=he(()=>!1),c=he(()=>{var h;return((h=o.value)==null?void 0:h.pinHint)!==!1}),u=he(()=>{var T,C;const h=(((T=o.value)==null?void 0:T.locale)||((C=o.value)==null?void 0:C.lang)||"").split("-")[0].toLowerCase();return Kl.includes(h)?h:""}),f=Fe("appI18n",null);mu(()=>{u.value&&f&&(f.global.locale.value=u.value)});const b=he(()=>{var h,T;return u.value||((T=(h=f==null?void 0:f.global)==null?void 0:h.locale)==null?void 0:T.value)||"en"}),v=he(()=>{var h;return((h=o.value)==null?void 0:h.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),E=Fe("profileModules",null);if(!E)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const A=he(()=>{if(!a.value)return null;const h=`./${a.value}.vue`;return E[h]?Su(E[h]):(console.error(`[ProfileLoader] Profile not found: "${a.value}". Available:`,Object.keys(E)),null)});ft("mapboxToken",s),ft("dataSource",i),ft("colorSet",r),ft("profileConfig",o),ft("instanceId",v),ft("lang",b);const R=om(),M=am(),L=sm();try{const h=typeof localStorage<"u"?localStorage.getItem("theme"):null;h&&((y=R.setTheme)==null||y.call(R,h))}catch{}return ft("uiStore",R),ft("mapStore",M),ft("dataStore",L),(h,T)=>(qe(),$t("div",lm,[o.value?A.value?(qe(),Fo(ki(A.value),{key:2})):(qe(),$t("div",um,[Ee("p",null,[T[1]||(T[1]=Et("⚠️ Profile ",-1)),Ee("strong",null,'"'+Xt(a.value)+'"',1),T[2]||(T[2]=Et(" not found.",-1))])])):(qe(),$t("div",cm,[...T[0]||(T[0]=[Ee("p",null,[Et("⚠️ "),Ee("strong",null,"doxa-map"),Et(": missing or invalid "),Ee("code",null,"profile-config"),Et(" prop.")],-1),Ee("p",null,[Et("Example: "),Ee("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),A.value&&l.value?(qe(),Fo(ki(vo(null)),{key:3})):bn("",!0),A.value&&c.value?(qe(),Fo(tm,{key:4})):bn("",!0)]))}},[["styles",[im]],["__scopeId","data-v-50211124"]]),dm=Object.assign({"./all-people-groups.vue":()=>_c(()=>Promise.resolve().then(()=>gb),void 0)}),fm=Gg(gm,{configureApp(e){e.use(Yg());const t=Zh();e.use(t),e.provide("appI18n",t),e.provide("profileModules",dm)}});typeof customElements<"u"&&!customElements.get("all-people-groups")&&customElements.define("all-people-groups",fm);const pm="rgba(120, 128, 134, 0.28)",zl="36px",ql=()=>{};function hm(e,t={}){const{enabled:n=!0}=t;if(!n||!e)return ql;const o=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!o.length)return ql;const a=L=>L.classList.contains("map-scroll-edge--left");for(const L of o)L.style.background=`linear-gradient(${a(L)?"to right":"to left"}, ${pm} ${zl}, transparent ${zl})`,L.style.opacity="0",L.style.transition="opacity 0.16s ease",L.style.userSelect="none",L.style.webkitUserSelect="none";const s=L=>{L.style.opacity="1"},i=L=>{L.style.opacity="0"},r=()=>o.find(L=>!a(L))||null,l=new Set;let c=!1,u=null;const f=()=>{for(const L of o)l.has(L)||i(L)},b=()=>{const L=r();L&&(s(L),u&&clearTimeout(u),u=setTimeout(f,250))},v=()=>b(),E=L=>{if(!(L.touches&&L.touches.length===1))return;const y=L.target;y&&y.classList&&y.classList.contains("map-scroll-edge")||b()},A=()=>{u&&clearTimeout(u),f()};e.addEventListener("wheel",v,{passive:!0}),e.addEventListener("touchmove",E,{passive:!0}),e.addEventListener("touchend",A,{passive:!0}),e.addEventListener("touchcancel",A,{passive:!0});const R=()=>{c||b()};typeof window<"u"&&window.addEventListener("scroll",R,{passive:!0});const M=[];for(const L of o){const y=()=>{l.add(L),s(L)},h=()=>{l.delete(L),i(L)},T=()=>{c=!0,s(L)},C=()=>{c=!1,i(L)};L.addEventListener("mouseenter",y),L.addEventListener("mouseleave",h),L.addEventListener("touchstart",T,{passive:!0}),L.addEventListener("touchend",C,{passive:!0}),M.push(()=>{L.removeEventListener("mouseenter",y),L.removeEventListener("mouseleave",h),L.removeEventListener("touchstart",T),L.removeEventListener("touchend",C)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",v),e.removeEventListener("touchmove",E),e.removeEventListener("touchend",A),e.removeEventListener("touchcancel",A),typeof window<"u"&&window.removeEventListener("scroll",R);for(const y of M)y();for(const y of o)i(y)}}const mm=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["research-dashboard"]}].map(e=>[e.id,e]));function bm(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0};const n=mm[e];return n?t==="maplibre"?{style:n.maplibre,lightPreset:void 0}:{style:n.mapbox,lightPreset:n.lightPreset}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0}:{style:void 0,lightPreset:void 0}}const $n={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function Hl(e){if(typeof window>"u")return;const t=window,n=()=>{try{const o=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");o&&(o.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",n),n();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const _m=$n.mapbox.css,ym="https://tiles.openfreemap.org/styles/liberty";function gs(e){var n;const t=((n=$n[e])==null?void 0:n.global)||$n.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Am(e){const t=$n[e]||$n.mapbox;if(gs(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const o=document.createElement("link");o.rel="stylesheet",o.href=t.css,document.head.appendChild(o)}const n=document.querySelector(`script[src="${t.js}"]`);if(n){if(gs(e))return;await new Promise(o=>{n.addEventListener("load",o,{once:!0}),n.addEventListener("error",o,{once:!0})});return}await new Promise((o,a)=>{const s=document.createElement("script");s.src=t.js,s.async=!1,s.addEventListener("load",o,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function Sm(e,t){const n=e.getRootNode();if(!(n instanceof ShadowRoot))return;const o=i=>new Promise(r=>setTimeout(r,i)),a=n.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(i=>{a.addEventListener("load",i,{once:!0}),a.addEventListener("error",i,{once:!0})}),o(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,await Promise.race([new Promise(i=>{s.addEventListener("load",i,{once:!0}),s.addEventListener("error",i,{once:!0}),n.prepend(s)}),o(2e3)])}function vm(e){return typeof e=="string"&&/^https?:\/\//.test(e)?e:ym}const km=85.0511,Vl=-2,Tm=0,$m=-60;function Wl(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Em(e,t,n,o){if(!e||e<=0||!t||t<=0)return Tm;const a=Math.log2(e/512),s=Wl(o)-Wl(km),i=Math.log2(t/(512*s)),r=Math.max(a,i);return Math.max(Vl,Math.min(r,(n??18)-1))}function Lm({containerRef:e,accessToken:t,style:n,config:o=void 0,provider:a="mapbox",center:s=[20,10],zoom:i=2,minZoom:r=void 0,maxZoom:l=18,pitch:c=0,bearing:u=0,renderWorldCopies:f=!0,showEdgeBorders:b=!0,southCutoff:v=$m,maxBounds:E=void 0}){const A=_a(null),R=pe(!1);let M=null,L=null;const y=a==="maplibre";async function h(){var j;const I=bm(n,a).style||n;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}await Am(a);const F=gs(a);if(!F){console.error(`[useMapInstance] ${y?"maplibregl":"mapboxgl"} is not available. Add the ${y?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(!y){if(!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}await Sm(e.value,y?$n.maplibre.css:_m),await new Promise(B=>requestAnimationFrame(B));const S=e.value,W=S.clientWidth,ae=S.clientHeight;if(W===0||ae===0){console.error(`[useMapInstance] Container has ZERO dimensions (${W}×${ae}). Map will be invisible. Check that parent elements have CSS sizing.`);let B=S.parentElement,V=0;for(;B&&V<5;)B=B.parentElement,V++}const H=t;y||(F.accessToken=H);const ee=()=>typeof window<"u"&&window.innerWidth>=1024,Y=(B,V)=>{if(!ee())return Vl;const X=Em(B,V,l,v);return typeof r=="number"?Math.max(r,X):X},D=Y(S.clientWidth,S.clientHeight);if(y){A.value=new F.Map({container:e.value,style:vm(I),center:s,zoom:i,minZoom:D,maxZoom:l,pitch:c,bearing:u,dragRotate:!1,renderWorldCopies:f,...E?{maxBounds:E}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Hl(A.value);try{e.value.__doxaMap=A.value}catch{}}else{const B=typeof o=="function"?o():o;A.value=new F.Map({accessToken:H,container:e.value,style:I,...B?{config:B}:{},center:s,zoom:i,minZoom:D,maxZoom:l,pitch:c,bearing:u,dragRotate:!1,touchPitch:!1,renderWorldCopies:f,...E?{maxBounds:E}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Hl(A.value);try{e.value.__doxaMap=A.value}catch{}}try{A.value.touchZoomRotate.disableRotation()}catch{}L=hm(((j=e.value)==null?void 0:j.parentElement)||null,{enabled:b}),M=()=>{const B=A.value;if(!B)return;const V=Y(S.clientWidth,S.clientHeight);B.setMinZoom(V),B.getZoom(){requestAnimationFrame(()=>{var B;(B=A.value)==null||B.resize(),A.value&&A.value.setMinZoom(Y(S.clientWidth,S.clientHeight)),R.value=!0})})}function T(){A.value&&(M&&(A.value.off("resize",M),typeof window<"u"&&(window.removeEventListener("resize",M),window.removeEventListener("orientationchange",M)),M=null),L&&(L(),L=null),A.value.remove(),A.value=null,R.value=!1)}return{map:A,isMapReady:R,initializeMap:h,destroy:T}}const Cm=["mapbox","maplibre"],Yl="mapbox";function Nm(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function wm(e){const t=Nm(e),n=t==null?void 0:t.provider,o=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(n||o||a||Yl).toLowerCase().trim();return Cm.includes(s)?s:Yl}const Jl="doxa-prayed-local",Pm=7*24*60*60*1e3;function Im(){try{const e=localStorage.getItem(Jl);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function Mm(e){try{localStorage.setItem(Jl,JSON.stringify(e))}catch{}}function Dm(){const e=Date.now(),t=Im();let n=!1;for(const[o,a]of Object.entries(t))(typeof a!="number"||e-a>Pm)&&(delete t[o],n=!0);return n&&Mm(t),new Set(Object.keys(t))}function Rm(e){const t=Dm();return!t.size||!Array.isArray(e)?e:e.map(n=>(Number(n&&n.peoplePraying)||0)>0||!n||!t.has(n.slug)?n:{...n,peoplePraying:1})}const Ht={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"},Xl={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"},ds="languageFamily",Fm="#000000",Vt={"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","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Om=Vt;function fs(e){return Vt[e]||Fm}const xm=(()=>{const e=n=>String(n||"").toLowerCase().trim(),t={};for(const n of Object.keys(Vt))t[e(n)]=n;return t})();function ps(e){if(!e)return"Unknown";const t=String(e).trim();return xm[t.toLowerCase()]||t}function Zl(e){var t;return fs(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function hs(){const e=["match",["get",ds]];return Object.entries(Vt).forEach(([t,n])=>{e.push(t,n)}),e.push("#95a5a6"),e}const Ql=hs,jm=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Om,PALETTE:Vt,PROPERTY_KEY:ds,applyColor:hs,buildColorExpression:Ql,canonicalFamilyName:ps,default:{name:"Language Family",propertyKey:ds,palette:Vt,colors:Vt,getColor:Zl,applyColor:hs,buildColorExpression:Ql,getLanguageFamilyColor:fs,canonicalFamilyName:ps},defaultFamilyColor:"#95a5a6",getColor:Zl,getLanguageFamilyColor:fs,languageFamilyColors:Vt},Symbol.toStringTag,{value:"Module"})),ec="adoptionStatus",Mt={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Bm=Mt,ms={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Km=ms;function tc(e){var o;const t=e.adoptionStatus??((o=e._raw)==null?void 0:o.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Mt.hasAdoption:Mt.notAdopted}function bs({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Mt.hasAdoption,["==",t,1],Mt.hasAdoption,Mt.notAdopted]}const nc=bs,Um=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Bm,ADOPTION_LABELS:Km,LABELS:ms,PALETTE:Mt,PROPERTY_KEY:ec,applyColor:bs,buildColorExpression:nc,default:{name:"Adoption Progress",propertyKey:ec,palette:Mt,colors:Mt,labels:ms,getColor:tc,applyColor:bs,buildColorExpression:nc},getColor:tc},Symbol.toStringTag,{value:"Module"})),oc="engagementStatus",Dt={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Gm=Dt,_s={notEngaged:"Unengaged",hasEngagement:"Engaged"},zm=_s;function ac(e){var o;const t=e.engagementStatus??((o=e._raw)==null?void 0:o.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Dt.hasEngagement:Dt.notEngaged}function ys({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Dt.hasEngagement,["==",t,1],Dt.hasEngagement,Dt.notEngaged]}const sc=ys,qm=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Gm,ENGAGEMENT_LABELS:zm,LABELS:_s,PALETTE:Dt,PROPERTY_KEY:oc,applyColor:ys,buildColorExpression:sc,default:{name:"Engagement Progress",propertyKey:oc,palette:Dt,colors:Dt,labels:_s,getColor:ac,applyColor:ys,buildColorExpression:sc},getColor:ac},Symbol.toStringTag,{value:"Module"})),ic="peoplePraying",Zo=144,Wt={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Hm=Wt,As={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},Vm=As;function Qo(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,n=Number(t)||0;return n>=Zo?"fullPrayer":n>0?"hasPrayer":"noPrayer"}function Ss(e){return Wt[Qo(e)]}function rc(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;return t!==null&&t>0}function lc(e){return Qo(e)==="fullPrayer"}function cc(e){return Ss(e)}function vs({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Zo],Wt.fullPrayer,[">",t,0],Wt.hasPrayer,Wt.noPrayer]}const uc=vs,Wm=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Zo,LABELS:As,PALETTE:Wt,PRAYER_COLORS:Hm,PRAYER_LABELS:Vm,PROPERTY_KEY:ic,applyColor:vs,buildColorExpression:uc,checkHasFullPrayer:lc,checkHasPrayer:rc,default:{name:"Prayer Progress",propertyKey:ic,palette:Wt,colors:Wt,labels:As,threshold:Zo,getColor:cc,applyColor:vs,buildColorExpression:uc,getPrayerLevel:Qo,getPrayerColor:Ss,checkHasPrayer:rc,checkHasFullPrayer:lc},getColor:cc,getPrayerColor:Ss,getPrayerLevel:Qo},Symbol.toStringTag,{value:"Module"})),gc="religion",ks="#94a3b8",Ts={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Xe={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function dc(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Ts[t]?t:"U"}function fc(e){var n,o,a;const t=(e==null?void 0:e.religion)||((o=(n=e==null?void 0:e._raw)==null?void 0:n.religion)==null?void 0:o.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return Xe[dc(t)]||ks}function $s(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Xe.C,"M",Xe.M,"H",Xe.H,"B",Xe.B,"E",Xe.E,"J",Xe.J,"S",Xe.S,"N",Xe.N,"O",Xe.O,ks]}const pc=$s,Ym=Object.assign({"./adoption.js":Um,"./engagement.js":qm,"./language-family.js":jm,"./prayer-progress.js":Wm,"./religion.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Xe,PROPERTY_KEY:gc,RELIGION_FAMILIES:Ts,applyColor:$s,buildColorExpression:pc,default:{name:"Religion",propertyKey:gc,palette:Xe,families:Ts,getColor:fc,applyColor:$s,buildColorExpression:pc,fallback:ks},getColor:fc,getReligionFamily:dc},Symbol.toStringTag,{value:"Module"}))}),Jm=e=>e.replace(/-([a-z0-9])/g,(t,n)=>n.toUpperCase()),Xm=e=>e.replace(/-/g,"_").toUpperCase(),Zm={...{STATUS:"status",CUSTOM:"custom"}};function Qm(e){for(const t of Object.keys(e).sort()){const n=t.split("/").pop().replace(/\.js$/,"");if(n.startsWith("_")||n.startsWith(".")||!e[t].default)continue;const a=Jm(n);Zm[Xm(n)]=a}}Qm(Ym);function Es(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const eb=[[/ sign language$/i,"Sign Language"]];function tb(e){var r,l;const t=Es(e.languageFamily);if(t)return t;const n=String(((l=(r=e._raw)==null?void 0:r.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(n&&Xl[n])return Xl[n];const o=Es(e.language||e.primary_language);if(!o||typeof o!="string")return"";const a=o.trim(),s=a.split(",").map(c=>c.trim()).filter(Boolean);if(s.length>=2){const c=[...s].reverse().join(" ");if(Ht[c])return Ht[c];if(s.length>=3){const u=[s[1],s[0]].join(" ");if(Ht[u])return Ht[u]}}if(Ht[a])return Ht[a];const i=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(i!==a&&Ht[i])return Ht[i];for(const[c,u]of eb)if(c.test(a))return u;return""}function nb(e){const{mapId:t="unknown",dataSourceId:n="doxa-csv",dataSourceManager:o=null,dataStore:a=null,markRaw:s=I=>I}=e;o||console.error("useMapData: dataSourceManager is required!");const i=pe(!1),r=pe(null),l=pe(!1),c=pe([]),u=pe([]),f=pe(null),b=pe([]),v=pe([]),E=pe([]),A=pe(null);async function R(){if(!o)throw new Error("dataSourceManager is required for useMapData");i.value=!0,r.value=null;try{if(await o.init(),a&&a.hasSourceData&&a.hasSourceData(n)){const D=a.getSourceData(n);u.value=s(D.normalizedData||[])}else{const D=await o.setActiveSource(n);for(const j of D){const B=Es(j.language||j.primary_language);B&&(j.language=B);const V=tb(j);j.languageFamily=ps(V)}u.value=s(D),a&&a.cacheSourceData&&a.cacheSourceData(n,{normalizedData:D,timestamp:Date.now()})}c.value=s(Rm(u.value.map(D=>({id:D.uniqueId,slug:D.slug||"",rop3:D.peopleGroupId,peopleId3:D.peopleId3,name:D.name,language:D.language,languageFamily:D.languageFamily,country:D.country,population:D.population,status:D.engagementStatus||D.status,latitude:D.latitude,longitude:D.longitude,lng:D.longitude,lat:D.latitude,description:D.description,imageUrl:D.imageUrl,doxaRegion:D.doxaRegion||D.wagfRegion||"",peoplePraying:D.peoplePraying??null,_normalized:D}))));const I=o.getDataByLanguageFamily();b.value=Object.entries(I).map(([D,j])=>{const B=j.reduce((V,X)=>{const ue=parseInt(X.population)||0;return V+ue},0);return{name:D,count:j.length,peopleGroupCount:j.length,population:B,groups:j}}).sort((D,j)=>j.count-D.count);const F=o.getDataByRegion();v.value=Object.entries(F).map(([D,j])=>{const B=j.reduce((V,X)=>{const ue=parseInt(X.population)||0;return V+ue},0);return{name:D,count:j.length,peopleGroupCount:j.length,population:B,groups:j}}).sort((D,j)=>D.name.localeCompare(j.name));const S={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach(D=>{const j=parseInt(D.population)||0;let B=!1;D.bible==="Available"&&(S.bible.count++,S.bible.population+=j,S.bible.groups.push(D),B=!0),D.jesusFilm==="Available"&&(S.jesusFilm.count++,S.jesusFilm.population+=j,S.jesusFilm.groups.push(D),B=!0),D.radio==="Available"&&(S.radio.count++,S.radio.population+=j,S.radio.groups.push(D),B=!0),D.gospel==="Available"&&(S.gospel.count++,S.gospel.population+=j,S.gospel.groups.push(D),B=!0),D.audio==="Available"&&(S.audio.count++,S.audio.population+=j,S.audio.groups.push(D),B=!0),D.stories==="Available"&&(S.stories.count++,S.stories.population+=j,S.stories.groups.push(D),B=!0),B?(S.hasResources.count++,S.hasResources.population+=j,S.hasResources.groups.push(D)):(S.noResources.count++,S.noResources.population+=j,S.noResources.groups.push(D))});const W=u.value.length,ae=u.value.reduce((D,j)=>D+(parseInt(j.population)||0),0),H={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},ee={bible:{count:W-S.bible.count,population:ae-S.bible.population},jesusFilm:{count:W-S.jesusFilm.count,population:ae-S.jesusFilm.population},radio:{count:W-S.radio.count,population:ae-S.radio.population},gospel:{count:W-S.gospel.count,population:ae-S.gospel.population},audio:{count:W-S.audio.count,population:ae-S.audio.population},stories:{count:W-S.stories.count,population:ae-S.stories.population}},Y="#2c3e50";return E.value=[{name:H.bible,key:"bible",count:S.bible.count,population:S.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:ee.bible.count,population:ee.bible.population,color:Y}]},{name:H.jesusFilm,key:"jesusFilm",count:S.jesusFilm.count,population:S.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:ee.jesusFilm.count,population:ee.jesusFilm.population,color:Y}]},{name:H.radio,key:"radio",count:S.radio.count,population:S.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:ee.radio.count,population:ee.radio.population,color:Y}]},{name:H.gospel,key:"gospel",count:S.gospel.count,population:S.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:ee.gospel.count,population:ee.gospel.population,color:Y}]},{name:H.audio,key:"audio",count:S.audio.count,population:S.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:ee.audio.count,population:ee.audio.population,color:Y}]},{name:H.stories,key:"stories",count:S.stories.count,population:S.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:ee.stories.count,population:ee.stories.population,color:Y}]},{name:H.hasResources,key:"hasResources",count:S.hasResources.count,population:S.hasResources.population,isParent:!0,children:[{name:H.noResources,key:"noResources",count:S.noResources.count,population:S.noResources.population,color:Y}]}],A.value=o.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:b.value,doxaRegionsData:v.value,resourcesData:E.value,stats:A.value}}catch(I){throw console.error(`Failed to load data for map "${t}":`,I),r.value=I.message||"Failed to load data",I}finally{i.value=!1}}async function M(){var I,F,S;try{const W={},ae=u.value||[];for(const H of ae){const ee=H.countryIso||((F=(I=H._raw)==null?void 0:I.country_code)==null?void 0:F.value)||"",Y=(S=H._raw)==null?void 0:S.wagf_region,D=H.doxaRegion||H.wagfRegion||(Y&&typeof Y=="object"?Y.value:"")||"";ee&&D&&!W[ee]&&(W[ee]=D)}return f.value={isoToRegion:W},f.value}catch(W){throw console.error(`Error building regions data for map "${t}":`,W),r.value=W.message||"Failed to build regions",W}}function L(){return o?o.getDataByLanguageFamily():{}}function y(){return o?o.getDataByRegion():{}}function h(I){return L()[I]||[]}function T(I){return y()[I]||[]}function C(){c.value=[],u.value=[],f.value=null,b.value=[],v.value=[],E.value=[],A.value=null,l.value=!1,r.value=null}return{isLoading:i,isInitialized:l,error:r,peopleGroups:c,normalizedPeopleGroups:u,regionsData:f,languageFamiliesData:b,doxaRegionsData:v,resourcesData:E,stats:A,loadData:R,loadRegionsData:M,getDataByLanguageFamily:L,getDataByRegion:y,getPeopleGroupsByFamily:h,getPeopleGroupsByRegion:T,clearData:C}}const Ls={};function ob(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:ea&&ea.tagName.toUpperCase()==="SCRIPT"&&ea.src||new URL("all-people-groups.js",document.baseURI).href}<"u"&&(Ls==null?void 0:Ls.VITE_API_BASE_URL)||""}class hc{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=Gl,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var n,o;return(o=(n=this.sourcesConfig)==null?void 0:n.sources)==null?void 0:o[t]}async setActiveSource(t){const n=this.getSourceConfig(t);if(!n)throw new Error(`Source not found: ${t}`);if(this.activeSource=n,this.cacheEnabled&&this.cache.has(t)){const o=this.cache.get(t);return this.normalizedData=o.normalizedData,this.dataByUniqueId=o.dataByUniqueId,this.normalizedData}return n.type==="csv"?await this.loadCSVData(n):n.type==="api"?await this.loadAPIData(n):n.type==="rest-api"&&await this.loadRestApiData(n),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const n=[],o=[];let a="",s=!1,i=[],r=!0;for(let l=0;l0){if(i.push(a.trim()),a="",r)o.push(...i),r=!1;else if(i.length>1){const f={};o.forEach((b,v)=>{f[b]=i[v]||""}),n.push(f)}i=[]}}else a+=c}if((a||i.length>0)&&(i.push(a.trim()),!r&&i.length>1)){const l={};o.forEach((c,u)=>{l[c]=i[u]||""}),n.push(l)}return{headers:o,data:n}}async loadCSVData(t){try{const o=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:s}=this.parseCSV(o);return this.rawData=s,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(n){throw console.error("Failed to load CSV data:",n),n}}validateFieldMappings(t,n,o){const a=new Set(n.map(i=>i.trim())),s=[];for(const[i,r]of Object.entries(t||{}))if(Array.isArray(r))for(const l of r)a.has(l)||s.push({systemField:i,sourceField:l,isComposite:!0});else r&&!a.has(r)&&s.push({systemField:i,sourceField:r,isComposite:!1});s.length>0&&console.warn(`[DataSourceManager] ${o}: missing CSV columns:`,s)}async loadAPIData(t){try{const o=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(o)?o:o.posts||o.data||o.peopleGroups||o.results||[],this.normalizeData(t),this.normalizedData}catch(n){throw console.error("Failed to load API data:",n),n}}async loadRestApiData(t){var l,c;const n=nb(),o=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",s=[];a&&s.push(`fields=${a}`);const i={...t.queryParams||{}};this.locale&&(i.lang=this.locale);for(const[u,f]of Object.entries(i))s.push(`${u}=${encodeURIComponent(f)}`);const r=`${n}${o}?${s.join("&")}`;try{const u=await fetch(r);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const f=u.headers.get("content-type")||"";if(!f.includes("application/json"))throw new Error(`API returned "${f}" instead of JSON. Server at ${n} may be down or misconfigured.`);const b=await u.json();return this.rawData=Array.isArray(b)?b:b.posts||b.data||b.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const n=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const o of this.rawData){const a={};for(const[l,c]of Object.entries(n))if(Array.isArray(c)){const u=c.map(f=>this.getFieldValue(o,f));a[l]=u.join("_")}else a[l]=this.getFieldValue(o,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const s=a.engagementStatus;s!=null&&(typeof s=="object"&&"value"in s?(a.engagementStatusLabel=s.label||s.value,a.engagementStatus=s.value==="engaged"):a.engagementStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const i=a.adoptionStatus;i!=null&&(a.adoptionStatus=i===!0||i===1||i==="1"||i==="true"||typeof i=="object"&&!!(i!=null&&i.value)||typeof i=="number"&&i>0||typeof i=="string"&&parseInt(i,10)>0);const r=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of r){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=o,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,n){if(!n)return"";if(t[n]!==void 0)return t[n];const o=n.trim();if(t[o]!==void 0)return t[o];for(const a of Object.keys(t))if(a.trim()===o||a.includes(o)||o.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const n=String(t).replace(/,/g,"").trim(),o=parseInt(n,10);return isNaN(o)?0:o}getImageUrl(t,n){if(!n)return"";const o=n.placeholderUrl||"",a=t[n.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:o}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,n,o=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)n.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(n=>{n.languageFamily&&t.add(n.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(n=>{const o=n.languageFamily||"Unknown";t[o]||(t[o]=[]),t[o].push(n)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(n=>{const o=n.doxaRegion||"Unknown";t[o]||(t[o]=[]),t[o].push(n)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new hc;const ob={class:"apg-root"},ab={key:0,class:"apg-loading"},sb={key:1,class:"apg-error"},ib={key:2,class:"apg-legend"},rb={class:"apg-legend-sub"},lb=["onClick"],cb={class:"apg-count"},ub=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"all-people-groups",setup(e){var ee;Ul(` +`&&l++,a||i.length>0){if(i.push(a.trim()),a="",r)o.push(...i),r=!1;else if(i.length>1){const f={};o.forEach((b,v)=>{f[b]=i[v]||""}),n.push(f)}i=[]}}else a+=c}if((a||i.length>0)&&(i.push(a.trim()),!r&&i.length>1)){const l={};o.forEach((c,u)=>{l[c]=i[u]||""}),n.push(l)}return{headers:o,data:n}}async loadCSVData(t){try{const o=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:s}=this.parseCSV(o);return this.rawData=s,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(n){throw console.error("Failed to load CSV data:",n),n}}validateFieldMappings(t,n,o){const a=new Set(n.map(i=>i.trim())),s=[];for(const[i,r]of Object.entries(t||{}))if(Array.isArray(r))for(const l of r)a.has(l)||s.push({systemField:i,sourceField:l,isComposite:!0});else r&&!a.has(r)&&s.push({systemField:i,sourceField:r,isComposite:!1});s.length>0&&console.warn(`[DataSourceManager] ${o}: missing CSV columns:`,s)}async loadAPIData(t){try{const o=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(o)?o:o.posts||o.data||o.peopleGroups||o.results||[],this.normalizeData(t),this.normalizedData}catch(n){throw console.error("Failed to load API data:",n),n}}async loadRestApiData(t){var l,c;const n=ob(),o=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",s=[];a&&s.push(`fields=${a}`);const i={...t.queryParams||{}};this.locale&&(i.lang=this.locale);for(const[u,f]of Object.entries(i))s.push(`${u}=${encodeURIComponent(f)}`);const r=`${n}${o}?${s.join("&")}`;try{const u=await fetch(r);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const f=u.headers.get("content-type")||"";if(!f.includes("application/json"))throw new Error(`API returned "${f}" instead of JSON. Server at ${n} may be down or misconfigured.`);const b=await u.json();return this.rawData=Array.isArray(b)?b:b.posts||b.data||b.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const n=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const o of this.rawData){const a={};for(const[l,c]of Object.entries(n))if(Array.isArray(c)){const u=c.map(f=>this.getFieldValue(o,f));a[l]=u.join("_")}else a[l]=this.getFieldValue(o,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const s=a.engagementStatus;s!=null&&(typeof s=="object"&&"value"in s?(a.engagementStatusLabel=s.label||s.value,a.engagementStatus=s.value==="engaged"):a.engagementStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const i=a.adoptionStatus;i!=null&&(a.adoptionStatus=i===!0||i===1||i==="1"||i==="true"||typeof i=="object"&&!!(i!=null&&i.value)||typeof i=="number"&&i>0||typeof i=="string"&&parseInt(i,10)>0);const r=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of r){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=o,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,n){if(!n)return"";if(t[n]!==void 0)return t[n];const o=n.trim();if(t[o]!==void 0)return t[o];for(const a of Object.keys(t))if(a.trim()===o||a.includes(o)||o.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const n=String(t).replace(/,/g,"").trim(),o=parseInt(n,10);return isNaN(o)?0:o}getImageUrl(t,n){if(!n)return"";const o=n.placeholderUrl||"",a=t[n.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:o}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,n,o=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)n.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(n=>{n.languageFamily&&t.add(n.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(n=>{const o=n.languageFamily||"Unknown";t[o]||(t[o]=[]),t[o].push(n)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(n=>{const o=n.doxaRegion||"Unknown";t[o]||(t[o]=[]),t[o].push(n)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new hc;const ab={class:"apg-root"},sb={key:0,class:"apg-loading"},ib={key:1,class:"apg-error"},rb={key:2,class:"apg-legend"},lb={class:"apg-legend-sub"},cb=["onClick"],ub={class:"apg-count"},gb=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"all-people-groups",setup(e){var ee;Ul(` .apg-root { position:absolute;inset:0;overflow:hidden; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif; } .apg-canvas { position:absolute;inset:0; } @@ -100,10 +99,10 @@ .apg-pop .meta { color:#4b5563;margin-top:4px; } .apg-pop a { display:inline-block;margin-top:7px;font-weight:700;color:#b45309;text-decoration:none; } .apg-pop a:hover { text-decoration:underline; } -`,"all-people-groups");const t=Fe("profileConfig"),n=Fe("mapboxToken"),o=Fe("dataSource"),a=Fe("dataStore"),s=Fe("mapStore"),i=Nm(t),r=he(()=>{var Y;return String(((Y=t==null?void 0:t.value)==null?void 0:Y.assetsBase)||"/assets").replace(/\/+$/,"")}),l=[{id:"doxa",label:"DOXA people groups",color:"#111827"},{id:"frontier",label:"Frontier — nothing started",color:"#e74c3c"},{id:"unreached",label:"Unreached — work beginning",color:"#f1c40f"},{id:"reached",label:"Reached — church is there",color:"#2ecc71"}],c=Object.fromEntries(l.map(Y=>[Y.id,Y.color])),u=pe({doxa:0,frontier:0,unreached:0,reached:0});function f(Y,D){if(D.has(String(Y.ROP3Code||"")))return"doxa";const j=Number(Y.GSEC);return!Number.isFinite(j)||j<=1?"frontier":j<=3?"unreached":"reached"}function b(){var j;let Y="";try{Y=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const D=(j=t==null?void 0:t.value)==null?void 0:j.utmSource;return encodeURIComponent(String(Y||D||"agwm"))}const v=pe(null),E=pe(!1),A=pe(null),{map:R,initializeMap:M,destroy:L}=Em({containerRef:v,accessToken:n.value,provider:i,style:((ee=t==null?void 0:t.value)==null?void 0:ee.style)??"ink",center:[20,12],zoom:1.6}),y=new hc,h=tb({mapId:"all-people-groups",dataSourceId:o.value,dataSourceManager:y,dataStore:a,markRaw:Y=>Y});let T=[],C=new Map;function I(Y){return String(Y??"").replace(/[&<>"']/g,D=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[D])}async function F(){const[Y,D]=await Promise.all([fetch(`${r.value}/people-groups/people-groups-slim.json`).then(X=>{if(!X.ok)throw new Error(`people-groups-slim.json ${X.status}`);return X.json()}),h.loadData().then(()=>h.normalizedPeopleGroups.value||[]).catch(X=>(console.warn("[all-people-groups] DOXA overlay unavailable (map still renders by GSEC):",X),[]))]),j=new Set;for(const X of D){const ue=String(X.peopleGroupId||X.rop3||"");ue&&(j.add(ue),C.has(ue)||C.set(ue,{slug:X.slug||"",name:X.name||""}))}const B=[],V={doxa:0,frontier:0,unreached:0,reached:0};for(const X of Y.rows||[]){const ue=Number(X.Lat),de=Number(X.Long);if(!Number.isFinite(ue)||!Number.isFinite(de)||ue===0&&de===0)continue;const fe=f(X,j);V[fe]++,B.push({type:"Feature",geometry:{type:"Point",coordinates:[de,ue]},properties:{name:X.Name||"",country:X.CountryName||"",population:Number(X.Population)||0,gsec:X.GSEC,evangelical:X.EvangelicalLevel||"",language:X.LanguageName||"",religion:X.ReligionName||"",rop3:String(X.ROP3Code||""),category:fe}})}return u.value=V,T=B,{type:"FeatureCollection",features:B}}function S(Y){const D=R.value;D.addSource("apg",{type:"geojson",data:Y}),D.addLayer({id:"apg-pins",type:"circle",source:"apg",paint:{"circle-color":["match",["get","category"],"doxa",c.doxa,"frontier",c.frontier,"unreached",c.unreached,c.reached],"circle-stroke-color":"#ffffff","circle-stroke-width":["interpolate",["linear"],["zoom"],0,.4,6,.8,12,1.1],"circle-stroke-opacity":.85,"circle-radius":["interpolate",["linear"],["zoom"],0,2.2,4,3.4,8,6,12,9],"circle-opacity":.92,"circle-sort-key":["match",["get","category"],"doxa",4,"frontier",3,"unreached",2,1]}}),D.on("mouseenter","apg-pins",()=>{D.getCanvas().style.cursor="pointer"}),D.on("mouseleave","apg-pins",()=>{D.getCanvas().style.cursor=""}),D.on("click","apg-pins",j=>{const B=j.features&&j.features[0];if(!B)return;const V=B.properties,X=V.category==="doxa"?C.get(V.rop3):null,ue=l.find(je=>je.id===V.category),de=X&&X.slug?`Pray for them →`:"",fe=i==="maplibre"?window.maplibregl:window.mapboxgl;new fe.Popup({closeButton:!0,maxWidth:"290px"}).setLngLat(j.lngLat).setHTML(`
+`,"all-people-groups");const t=Fe("profileConfig"),n=Fe("mapboxToken"),o=Fe("dataSource"),a=Fe("dataStore"),s=Fe("mapStore"),i=wm(t),r=he(()=>{var Y;return String(((Y=t==null?void 0:t.value)==null?void 0:Y.assetsBase)||"/assets").replace(/\/+$/,"")}),l=[{id:"doxa",label:"DOXA people groups",color:"#111827"},{id:"frontier",label:"Frontier — nothing started",color:"#e74c3c"},{id:"unreached",label:"Unreached — work beginning",color:"#f1c40f"},{id:"reached",label:"Reached — church is there",color:"#2ecc71"}],c=Object.fromEntries(l.map(Y=>[Y.id,Y.color])),u=pe({doxa:0,frontier:0,unreached:0,reached:0});function f(Y,D){if(D.has(String(Y.ROP3Code||"")))return"doxa";const j=Number(Y.GSEC);return!Number.isFinite(j)||j<=1?"frontier":j<=3?"unreached":"reached"}function b(){var j;let Y="";try{Y=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const D=(j=t==null?void 0:t.value)==null?void 0:j.utmSource;return encodeURIComponent(String(Y||D||"agwm"))}const v=pe(null),E=pe(!1),A=pe(null),{map:R,initializeMap:M,destroy:L}=Lm({containerRef:v,accessToken:n.value,provider:i,style:((ee=t==null?void 0:t.value)==null?void 0:ee.style)??"ink",center:[20,12],zoom:1.6}),y=new hc,h=nb({mapId:"all-people-groups",dataSourceId:o.value,dataSourceManager:y,dataStore:a,markRaw:Y=>Y});let T=[],C=new Map;function I(Y){return String(Y??"").replace(/[&<>"']/g,D=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[D])}async function F(){const[Y,D]=await Promise.all([fetch(`${r.value}/people-groups/people-groups-slim.json`).then(X=>{if(!X.ok)throw new Error(`people-groups-slim.json ${X.status}`);return X.json()}),h.loadData().then(()=>h.normalizedPeopleGroups.value||[]).catch(X=>(console.warn("[all-people-groups] DOXA overlay unavailable (map still renders by GSEC):",X),[]))]),j=new Set;for(const X of D){const ue=String(X.peopleGroupId||X.rop3||"");ue&&(j.add(ue),C.has(ue)||C.set(ue,{slug:X.slug||"",name:X.name||""}))}const B=[],V={doxa:0,frontier:0,unreached:0,reached:0};for(const X of Y.rows||[]){const ue=Number(X.Lat),de=Number(X.Long);if(!Number.isFinite(ue)||!Number.isFinite(de)||ue===0&&de===0)continue;const fe=f(X,j);V[fe]++,B.push({type:"Feature",geometry:{type:"Point",coordinates:[de,ue]},properties:{name:X.Name||"",country:X.CountryName||"",population:Number(X.Population)||0,gsec:X.GSEC,evangelical:X.EvangelicalLevel||"",language:X.LanguageName||"",religion:X.ReligionName||"",rop3:String(X.ROP3Code||""),category:fe}})}return u.value=V,T=B,{type:"FeatureCollection",features:B}}function S(Y){const D=R.value;D.addSource("apg",{type:"geojson",data:Y}),D.addLayer({id:"apg-pins",type:"circle",source:"apg",paint:{"circle-color":["match",["get","category"],"doxa",c.doxa,"frontier",c.frontier,"unreached",c.unreached,c.reached],"circle-stroke-color":"#ffffff","circle-stroke-width":["interpolate",["linear"],["zoom"],0,.4,6,.8,12,1.1],"circle-stroke-opacity":.85,"circle-radius":["interpolate",["linear"],["zoom"],0,2.2,4,3.4,8,6,12,9],"circle-opacity":.92,"circle-sort-key":["match",["get","category"],"doxa",4,"frontier",3,"unreached",2,1]}}),D.on("mouseenter","apg-pins",()=>{D.getCanvas().style.cursor="pointer"}),D.on("mouseleave","apg-pins",()=>{D.getCanvas().style.cursor=""}),D.on("click","apg-pins",j=>{const B=j.features&&j.features[0];if(!B)return;const V=B.properties,X=V.category==="doxa"?C.get(V.rop3):null,ue=l.find(je=>je.id===V.category),de=X&&X.slug?`Pray for them →`:"",fe=i==="maplibre"?window.maplibregl:window.mapboxgl;new fe.Popup({closeButton:!0,maxWidth:"290px"}).setLngLat(j.lngLat).setHTML(`
${I(V.name)} ${I(ue.label.split(" — ")[0])}
${I(V.country)} · pop ${Number(V.population).toLocaleString()}
${I(V.evangelical||"GSEC "+V.gsec)}
${I(V.language)}${V.religion?" · "+I(V.religion):""}
${de} -
`).addTo(D)})}const W=pe(null);function ae(Y){const D=R.value;if(!D||!D.getLayer("apg-pins"))return;if(W.value===Y){W.value=null,D.setFilter("apg-pins",null),D.fitBounds([[-170,-55],[179,72]],{padding:20,duration:900});return}W.value=Y,D.setFilter("apg-pins",["==",["get","category"],Y]);let j=180,B=85,V=-180,X=-85,ue=0;for(const de of T){if(de.properties.category!==Y)continue;const[fe,je]=de.geometry.coordinates;feV&&(V=fe),jeX&&(X=je),ue++}ue&&D.fitBounds([[j,B],[V,X]],{padding:60,duration:900,maxZoom:6})}Un(async()=>{const Y=F().catch(D=>(A.value=String((D==null?void 0:D.message)||D),null));try{await M()}catch(D){A.value=String((D==null?void 0:D.message)||D);return}if(!R.value){A.value="Map failed to initialize — check token and container";return}R.value.once("style.load",async()=>{var D;try{const j=await Y;if(!j)return;try{R.value.setProjection("mercator")}catch{}S(j),(D=s==null?void 0:s.registerMap)==null||D.call(s,"all-people-groups",R.value),E.value=!0}catch(j){A.value=String((j==null?void 0:j.message)||j)}})}),Ea(()=>{var Y;(Y=s==null?void 0:s.unregisterMap)==null||Y.call(s,"all-people-groups"),L()});const H=he(()=>u.value.doxa+u.value.frontier+u.value.unreached+u.value.reached);return(Y,D)=>(qe(),$t("div",ob,[!E.value&&!A.value?(qe(),$t("div",ab,"Loading every people group…")):bn("",!0),A.value?(qe(),$t("div",sb,"The map could not be loaded. "+Xt(A.value),1)):bn("",!0),Ee("div",{ref_key:"mapContainer",ref:v,class:"apg-canvas"},null,512),E.value?(qe(),$t("div",ib,[D[0]||(D[0]=Ee("div",{class:"apg-legend-title"},"All People Groups",-1)),Ee("div",rb,Xt(H.value.toLocaleString())+" group–country locations",1),(qe(),$t(Ye,null,Mu(l,j=>Ee("div",{key:j.id,class:Nn(["apg-row",{active:W.value===j.id}]),onClick:B=>ae(j.id)},[Ee("span",{class:"apg-dot",style:go({background:j.color})},null,4),Et(" "+Xt(j.label)+" ",1),Ee("span",cb,Xt((u.value[j.id]||0).toLocaleString()),1)],10,lb)),64)),D[1]||(D[1]=Ee("div",{class:"apg-hint"},"Click a row to see all of them · click again for everything",-1))])):bn("",!0)]))}}},Symbol.toStringTag,{value:"Module"}))})(); +
`).addTo(D)})}const W=pe(null);function ae(Y){const D=R.value;if(!D||!D.getLayer("apg-pins"))return;if(W.value===Y){W.value=null,D.setFilter("apg-pins",null),D.fitBounds([[-170,-55],[179,72]],{padding:20,duration:900});return}W.value=Y,D.setFilter("apg-pins",["==",["get","category"],Y]);let j=180,B=85,V=-180,X=-85,ue=0;for(const de of T){if(de.properties.category!==Y)continue;const[fe,je]=de.geometry.coordinates;feV&&(V=fe),jeX&&(X=je),ue++}ue&&D.fitBounds([[j,B],[V,X]],{padding:60,duration:900,maxZoom:6})}Un(async()=>{const Y=F().catch(D=>(A.value=String((D==null?void 0:D.message)||D),null));try{await M()}catch(D){A.value=String((D==null?void 0:D.message)||D);return}if(!R.value){A.value="Map failed to initialize — check token and container";return}R.value.once("style.load",async()=>{var D;try{const j=await Y;if(!j)return;try{R.value.setProjection("mercator")}catch{}S(j),(D=s==null?void 0:s.registerMap)==null||D.call(s,"all-people-groups",R.value),E.value=!0}catch(j){A.value=String((j==null?void 0:j.message)||j)}})}),Ea(()=>{var Y;(Y=s==null?void 0:s.unregisterMap)==null||Y.call(s,"all-people-groups"),L()});const H=he(()=>u.value.doxa+u.value.frontier+u.value.unreached+u.value.reached);return(Y,D)=>(qe(),$t("div",ab,[!E.value&&!A.value?(qe(),$t("div",sb,"Loading every people group…")):bn("",!0),A.value?(qe(),$t("div",ib,"The map could not be loaded. "+Xt(A.value),1)):bn("",!0),Ee("div",{ref_key:"mapContainer",ref:v,class:"apg-canvas"},null,512),E.value?(qe(),$t("div",rb,[D[0]||(D[0]=Ee("div",{class:"apg-legend-title"},"All People Groups",-1)),Ee("div",lb,Xt(H.value.toLocaleString())+" group–country locations",1),(qe(),$t(Ye,null,Mu(l,j=>Ee("div",{key:j.id,class:Nn(["apg-row",{active:W.value===j.id}]),onClick:B=>ae(j.id)},[Ee("span",{class:"apg-dot",style:go({background:j.color})},null,4),Et(" "+Xt(j.label)+" ",1),Ee("span",ub,Xt((u.value[j.id]||0).toLocaleString()),1)],10,cb)),64)),D[1]||(D[1]=Ee("div",{class:"apg-hint"},"Click a row to see all of them · click again for everything",-1))])):bn("",!0)]))}}},Symbol.toStringTag,{value:"Module"}))})(); 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 64261aac5..f6b87f760 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":15,"profileCount":24,"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-VnRTqY3/t5lbgoQvvPvGL/2nao4p7xqW54pHP7dLBbBpKyl6xRf27sOMpjmyHN1K","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 src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-VnRTqY3/t5lbgoQvvPvGL/2nao4p7xqW54pHP7dLBbBpKyl6xRf27sOMpjmyHN1K\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\"}'>\u003c/all-people-groups>"},"bundle":"all-people-groups"}]}]}; + + + + + + diff --git a/public/doxa-maps/big-picture/big-picture/frontier/index.html b/public/doxa-maps/big-picture/big-picture/frontier/index.html new file mode 100644 index 000000000..e8c42e786 --- /dev/null +++ b/public/doxa-maps/big-picture/big-picture/frontier/index.html @@ -0,0 +1,150 @@ + + + + + + Big Picture — frontier accent · big-picture + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/big-picture/big-picture/index.html b/public/doxa-maps/big-picture/big-picture/index.html new file mode 100644 index 000000000..0f343e39c --- /dev/null +++ b/public/doxa-maps/big-picture/big-picture/index.html @@ -0,0 +1,150 @@ + + + + + + big-picture · big-picture + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/big-picture/index.html b/public/doxa-maps/big-picture/index.html new file mode 100644 index 000000000..04376eda2 --- /dev/null +++ b/public/doxa-maps/big-picture/index.html @@ -0,0 +1,371 @@ + + + + + + doxa-maps + + + + + +
+

doxa-maps / big-picture

+
big-picture — one bundle, its profiles as paste-anywhere maps
+
+
loading…
+ +
+ +
+
+ + + + + diff --git a/public/doxa-maps/cities-internet/cities-internet.js b/public/doxa-maps/cities-internet/cities-internet.js index 34e1038bc..8f5411db2 100644 --- a/public/doxa-maps/cities-internet/cities-internet.js +++ b/public/doxa-maps/cities-internet/cities-internet.js @@ -1,5 +1,4 @@ -(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".profile-loader[data-v-50211124]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;position:relative}.profile-error[data-v-50211124]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}")),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})(); -(function(){"use strict";var ir=typeof document<"u"?document.currentScript:null;const y_="modulepreload",v_=function(e){return"/"+e},w_={},ar=function(t,n,o){let s=Promise.resolve();function r(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&r(a.reason);return t().catch(r)})};/** +(function(){"use strict";var ir=typeof document<"u"?document.currentScript:null;const v_="modulepreload",w_=function(e){return"/"+e},k_={},ar=function(t,n,o){let s=Promise.resolve();function r(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&r(a.reason);return t().catch(r)})};/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT @@ -7,14 +6,14 @@ * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Se;class Fs{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Se&&(Se.active?(this.parent=Se,this.index=(Se.scopes||(Se.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t0&&--this._on===0){if(Se===this)Se=this.prevScope;else{let t=Se;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(Dn){let t=Dn;for(Dn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Mn;){let t=Mn;for(Mn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function Bs(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Rs(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),br(o),Jl(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function _r(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ws(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ws(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Bn)||(e.globalVersion=Bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_r(e))))return;e.flags|=2;const t=e.dep,n=ye,o=rt;ye=e,rt=!0;try{Bs(e);const s=e.fn(e._value);(t.version===0||ht(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ye=n,rt=o,Rs(e),e.flags&=-3}}function br(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)br(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Jl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let rt=!0;const Us=[];function gt(){Us.push(rt),rt=!1}function mt(){const e=Us.pop();rt=e===void 0?!0:e}function js(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ye;ye=void 0;try{t()}finally{ye=n}}}let Bn=0;class Zl{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class yr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ye||!rt||ye===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ye)n=this.activeLink=new Zl(ye,this),ye.deps?(n.prevDep=ye.depsTail,ye.depsTail.nextDep=n,ye.depsTail=n):ye.deps=ye.depsTail=n,Gs(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=ye.depsTail,n.nextDep=void 0,ye.depsTail.nextDep=n,ye.depsTail=n,ye.deps===n&&(ye.deps=o)}return n}trigger(t){this.version++,Bn++,this.notify(t)}notify(t){gr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{mr()}}}function Gs(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)Gs(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const vo=new WeakMap,rn=Symbol(""),vr=Symbol(""),Rn=Symbol("");function Ue(e,t,n){if(rt&&ye){let o=vo.get(e);o||vo.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new yr),s.map=o,s.key=n),s.track()}}function At(e,t,n,o,s,r){const i=vo.get(e);if(!i){Bn++;return}const a=l=>{l&&l.trigger()};if(gr(),t==="clear")i.forEach(a);else{const l=Q(e),c=l&&go(n);if(l&&n==="length"){const u=Number(o);i.forEach((f,h)=>{(h==="length"||h===Rn||!Ke(h)&&h>=u)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),c&&a(i.get(Rn)),t){case"add":l?c&&a(i.get("length")):(a(i.get(rn)),Gt(e)&&a(i.get(vr)));break;case"delete":l||(a(i.get(rn)),Gt(e)&&a(i.get(vr)));break;case"set":Gt(e)&&a(i.get(rn));break}}mr()}function Ql(e,t){const n=vo.get(e);return n&&n.get(t)}function mn(e){const t=ue(e);return t===e?t:(Ue(t,"iterate",Rn),Xe(e)?t:t.map(st))}function wo(e){return Ue(e=ue(e),"iterate",Rn),e}function _t(e,t){return Lt(e)?bn(Tt(e)?st(t):t):st(t)}const ec={__proto__:null,[Symbol.iterator](){return wr(this,Symbol.iterator,e=>_t(this,e))},concat(...e){return mn(this).concat(...e.map(t=>Q(t)?mn(t):t))},entries(){return wr(this,"entries",e=>(e[1]=_t(this,e[1]),e))},every(e,t){return Et(this,"every",e,t,void 0,arguments)},filter(e,t){return Et(this,"filter",e,t,n=>n.map(o=>_t(this,o)),arguments)},find(e,t){return Et(this,"find",e,t,n=>_t(this,n),arguments)},findIndex(e,t){return Et(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Et(this,"findLast",e,t,n=>_t(this,n),arguments)},findLastIndex(e,t){return Et(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Et(this,"forEach",e,t,void 0,arguments)},includes(...e){return kr(this,"includes",e)},indexOf(...e){return kr(this,"indexOf",e)},join(e){return mn(this).join(e)},lastIndexOf(...e){return kr(this,"lastIndexOf",e)},map(e,t){return Et(this,"map",e,t,void 0,arguments)},pop(){return Wn(this,"pop")},push(...e){return Wn(this,"push",e)},reduce(e,...t){return Ys(this,"reduce",e,t)},reduceRight(e,...t){return Ys(this,"reduceRight",e,t)},shift(){return Wn(this,"shift")},some(e,t){return Et(this,"some",e,t,void 0,arguments)},splice(...e){return Wn(this,"splice",e)},toReversed(){return mn(this).toReversed()},toSorted(e){return mn(this).toSorted(e)},toSpliced(...e){return mn(this).toSpliced(...e)},unshift(...e){return Wn(this,"unshift",e)},values(){return wr(this,"values",e=>_t(this,e))}};function wr(e,t,n){const o=wo(e),s=o[t]();return o!==e&&!Xe(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const tc=Array.prototype;function Et(e,t,n,o,s,r){const i=wo(e),a=i!==e&&!Xe(e),l=i[t];if(l!==tc[t]){const f=l.apply(e,r);return a?st(f):f}let c=n;i!==e&&(a?c=function(f,h){return n.call(this,_t(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const u=l.call(i,c,o);return a&&s?s(u):u}function Ys(e,t,n,o){const s=wo(e),r=s!==e&&!Xe(e);let i=n,a=!1;s!==e&&(r?(a=o.length===0,i=function(c,u,f){return a&&(a=!1,c=_t(e,c)),n.call(this,c,_t(e,u),f,e)}):n.length>3&&(i=function(c,u,f){return n.call(this,c,u,f,e)}));const l=s[t](i,...o);return a?_t(e,l):l}function kr(e,t,n){const o=ue(e);Ue(o,"iterate",Rn);const s=o[t](...n);return(s===-1||s===!1)&&Ao(n[0])?(n[0]=ue(n[0]),o[t](...n)):s}function Wn(e,t,n=[]){gt(),gr();const o=ue(e)[t].apply(e,n);return mr(),mt(),o}const nc=lr("__proto__,__v_isRef,__isVue"),Vs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ke));function oc(e){Ke(e)||(e=String(e));const t=ue(this);return Ue(t,"has",e),t.hasOwnProperty(e)}class Hs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return o===(s?r?Zs:Js:r?Xs:Ks).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=Q(t);if(!s){let l;if(i&&(l=ec[n]))return l;if(n==="hasOwnProperty")return oc}const a=Reflect.get(t,n,Ne(t)?t:o);if((Ke(n)?Vs.has(n):nc(n))||(s||Ue(t,"get",n),r))return a;if(Ne(a)){const l=i&&go(n)?a:a.value;return s&&ge(l)?Or(l):l}return ge(a)?s?Or(a):No(a):a}}class qs extends Hs{constructor(t=!1){super(!1,t)}set(t,n,o,s){let r=t[n];const i=Q(t)&&go(n);if(!this._isShallow){const c=Lt(r);if(!Xe(o)&&!Lt(o)&&(r=ue(r),o=ue(o)),!i&&Ne(r)&&!Ne(o))return c||(r.value=o),!0}const a=i?Number(n)e,ko=e=>Reflect.getPrototypeOf(e);function lc(e,t,n){return function(...o){const s=this.__v_raw,r=ue(s),i=Gt(r),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...o),u=n?$r:t?bn:st;return!t&&Ue(r,"iterate",l?vr:rn),Ce(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:a?[u(f[0]),u(f[1])]:u(f),done:h}}})}}function $o(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function cc(e,t){const n={get(s){const r=this.__v_raw,i=ue(r),a=ue(s);e||(ht(s,a)&&Ue(i,"get",s),Ue(i,"get",a));const{has:l}=ko(i),c=t?$r:e?bn:st;if(l.call(i,s))return c(r.get(s));if(l.call(i,a))return c(r.get(a));r!==i&&r.get(s)},get size(){const s=this.__v_raw;return!e&&Ue(ue(s),"iterate",rn),s.size},has(s){const r=this.__v_raw,i=ue(r),a=ue(s);return e||(ht(s,a)&&Ue(i,"has",s),Ue(i,"has",a)),s===a?r.has(s):r.has(s)||r.has(a)},forEach(s,r){const i=this,a=i.__v_raw,l=ue(a),c=t?$r:e?bn:st;return!e&&Ue(l,"iterate",rn),a.forEach((u,f)=>s.call(r,c(u),c(f),i))}};return Ce(n,e?{add:$o("add"),set:$o("set"),delete:$o("delete"),clear:$o("clear")}:{add(s){const r=ue(this),i=ko(r),a=ue(s),l=!t&&!Xe(s)&&!Lt(s)?a:s;return i.has.call(r,l)||ht(s,l)&&i.has.call(r,s)||ht(a,l)&&i.has.call(r,a)||(r.add(l),At(r,"add",l,l)),this},set(s,r){!t&&!Xe(r)&&!Lt(r)&&(r=ue(r));const i=ue(this),{has:a,get:l}=ko(i);let c=a.call(i,s);c||(s=ue(s),c=a.call(i,s));const u=l.call(i,s);return i.set(s,r),c?ht(r,u)&&At(i,"set",s,r):At(i,"add",s,r),this},delete(s){const r=ue(this),{has:i,get:a}=ko(r);let l=i.call(r,s);l||(s=ue(s),l=i.call(r,s)),a&&a.call(r,s);const c=r.delete(s);return l&&At(r,"delete",s,void 0),c},clear(){const s=ue(this),r=s.size!==0,i=s.clear();return r&&At(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=lc(s,e,t)}),n}function Oo(e,t){const n=cc(e,t);return(o,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(fe(n,s)&&s in o?n:o,s,r)}const uc={get:Oo(!1,!1)},pc={get:Oo(!1,!0)},dc={get:Oo(!0,!1)},fc={get:Oo(!0,!0)},Ks=new WeakMap,Xs=new WeakMap,Js=new WeakMap,Zs=new WeakMap;function hc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function No(e){return Lt(e)?e:Co(e,!1,rc,uc,Ks)}function gc(e){return Co(e,!1,ic,pc,Xs)}function Or(e){return Co(e,!0,sc,dc,Js)}function $_(e){return Co(e,!0,ac,fc,Zs)}function Co(e,t,n,o,s){if(!ge(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=s.get(e);if(r)return r;const i=hc(Wl(e));if(i===0)return e;const a=new Proxy(e,i===2?o:n);return s.set(e,a),a}function Tt(e){return Lt(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function Lt(e){return!!(e&&e.__v_isReadonly)}function Xe(e){return!!(e&&e.__v_isShallow)}function Ao(e){return e?!!e.__v_raw:!1}function ue(e){const t=e&&e.__v_raw;return t?ue(t):e}function _n(e){return!fe(e,"__v_skip")&&Object.isExtensible(e)&&Cs(e,"__v_skip",!0),e}const st=e=>ge(e)?No(e):e,bn=e=>ge(e)?Or(e):e;function Ne(e){return e?e.__v_isRef===!0:!1}function ie(e){return Qs(e,!1)}function Eo(e){return Qs(e,!0)}function Qs(e,t){return Ne(e)?e:new mc(e,t)}class mc{constructor(t,n){this.dep=new yr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ue(t),this._value=n?t:st(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Xe(t)||Lt(t);t=o?t:ue(t),ht(t,n)&&(this._rawValue=t,this._value=o?t:st(t),this.dep.trigger())}}function Je(e){return Ne(e)?e.value:e}const _c={get:(e,t,n)=>t==="__v_raw"?e:Je(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Ne(s)&&!Ne(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function ei(e){return Tt(e)?e:new Proxy(e,_c)}function bc(e){const t=Q(e)?new Array(e.length):{};for(const n in e)t[n]=vc(e,n);return t}class yc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Ke(n)?n:String(n),this._raw=ue(t);let s=!0,r=t;if(!Q(t)||Ke(this._key)||!go(this._key))do s=!Ao(r)||Xe(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Je(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ne(this._raw[this._key])){const n=this._object[this._key];if(Ne(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Ql(this._raw,this._key)}}function vc(e,t,n){return new yc(e,t,n)}class wc{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new yr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ye!==this)return Ds(this,!0),!0}get value(){const t=this.dep.track();return Ws(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function kc(e,t,n=!1){let o,s;return ne(e)?o=e:(o=e.get,s=e.set),new wc(o,s,n)}const To={},Lo=new WeakMap;let sn;function $c(e,t=!1,n=sn){if(n){let o=Lo.get(n);o||Lo.set(n,o=[]),o.push(e)}}function Oc(e,t,n=_e){const{immediate:o,deep:s,once:r,scheduler:i,augmentJob:a,call:l}=n,c=m=>s?m:Xe(m)||s===!1||s===0?St(m,1):St(m);let u,f,h,_,w=!1,$=!1;if(Ne(e)?(f=()=>e.value,w=Xe(e)):Tt(e)?(f=()=>c(e),w=!0):Q(e)?($=!0,w=e.some(m=>Tt(m)||Xe(m)),f=()=>e.map(m=>{if(Ne(m))return m.value;if(Tt(m))return c(m);if(ne(m))return l?l(m,2):m()})):ne(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){gt();try{h()}finally{mt()}}const m=sn;sn=u;try{return l?l(e,3,[_]):e(_)}finally{sn=m}}:f=ft,t&&s){const m=f,C=s===!0?1/0:s;f=()=>St(m(),C)}const I=xs(),N=()=>{u.stop(),I&&I.active&&cr(I.effects,u)};if(r&&t){const m=t;t=(...C)=>{const S=m(...C);return N(),S}}let L=$?new Array(e.length).fill(To):To;const b=m=>{if(!(!(u.flags&1)||!u.dirty&&!m))if(t){const C=u.run();if(m||s||w||($?C.some((S,v)=>ht(S,L[v])):ht(C,L))){h&&h();const S=sn;sn=u;try{const v=[C,L===To?void 0:$&&L[0]===To?[]:L,_];L=C,l?l(t,3,v):t(...v)}finally{sn=S}}}else u.run()};return a&&a(b),u=new Ps(f),u.scheduler=i?()=>i(b,!1):b,_=m=>$c(m,!1,u),h=u.onStop=()=>{const m=Lo.get(u);if(m){if(l)l(m,4);else for(const C of m)C();Lo.delete(u)}},t?o?b(!0):L=u.run():i?i(b.bind(null,!0),!0):u.run(),N.pause=u.pause.bind(u),N.resume=u.resume.bind(u),N.stop=N,N}function St(e,t=1/0,n){if(t<=0||!ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ne(e))St(e.value,t,n);else if(Q(e))for(let o=0;o{St(o,t,n)});else if(ho(e)){for(const o in e)St(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&St(e[o],t,n)}return e}/** +**/let Se;class Fs{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Se&&(Se.active?(this.parent=Se,this.index=(Se.scopes||(Se.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t0&&--this._on===0){if(Se===this)Se=this.prevScope;else{let t=Se;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(Dn){let t=Dn;for(Dn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Mn;){let t=Mn;for(Mn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function Bs(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Rs(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),br(o),Jl(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function _r(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ws(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ws(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Bn)||(e.globalVersion=Bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_r(e))))return;e.flags|=2;const t=e.dep,n=ye,o=rt;ye=e,rt=!0;try{Bs(e);const s=e.fn(e._value);(t.version===0||ht(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ye=n,rt=o,Rs(e),e.flags&=-3}}function br(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)br(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Jl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let rt=!0;const Us=[];function gt(){Us.push(rt),rt=!1}function mt(){const e=Us.pop();rt=e===void 0?!0:e}function js(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ye;ye=void 0;try{t()}finally{ye=n}}}let Bn=0;class Zl{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class yr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ye||!rt||ye===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ye)n=this.activeLink=new Zl(ye,this),ye.deps?(n.prevDep=ye.depsTail,ye.depsTail.nextDep=n,ye.depsTail=n):ye.deps=ye.depsTail=n,Gs(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=ye.depsTail,n.nextDep=void 0,ye.depsTail.nextDep=n,ye.depsTail=n,ye.deps===n&&(ye.deps=o)}return n}trigger(t){this.version++,Bn++,this.notify(t)}notify(t){gr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{mr()}}}function Gs(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)Gs(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const vo=new WeakMap,rn=Symbol(""),vr=Symbol(""),Rn=Symbol("");function Ue(e,t,n){if(rt&&ye){let o=vo.get(e);o||vo.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new yr),s.map=o,s.key=n),s.track()}}function At(e,t,n,o,s,r){const i=vo.get(e);if(!i){Bn++;return}const a=l=>{l&&l.trigger()};if(gr(),t==="clear")i.forEach(a);else{const l=Q(e),c=l&&go(n);if(l&&n==="length"){const u=Number(o);i.forEach((f,h)=>{(h==="length"||h===Rn||!Ke(h)&&h>=u)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),c&&a(i.get(Rn)),t){case"add":l?c&&a(i.get("length")):(a(i.get(rn)),Gt(e)&&a(i.get(vr)));break;case"delete":l||(a(i.get(rn)),Gt(e)&&a(i.get(vr)));break;case"set":Gt(e)&&a(i.get(rn));break}}mr()}function Ql(e,t){const n=vo.get(e);return n&&n.get(t)}function mn(e){const t=ue(e);return t===e?t:(Ue(t,"iterate",Rn),Xe(e)?t:t.map(st))}function wo(e){return Ue(e=ue(e),"iterate",Rn),e}function _t(e,t){return Lt(e)?bn(Tt(e)?st(t):t):st(t)}const ec={__proto__:null,[Symbol.iterator](){return wr(this,Symbol.iterator,e=>_t(this,e))},concat(...e){return mn(this).concat(...e.map(t=>Q(t)?mn(t):t))},entries(){return wr(this,"entries",e=>(e[1]=_t(this,e[1]),e))},every(e,t){return Et(this,"every",e,t,void 0,arguments)},filter(e,t){return Et(this,"filter",e,t,n=>n.map(o=>_t(this,o)),arguments)},find(e,t){return Et(this,"find",e,t,n=>_t(this,n),arguments)},findIndex(e,t){return Et(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Et(this,"findLast",e,t,n=>_t(this,n),arguments)},findLastIndex(e,t){return Et(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Et(this,"forEach",e,t,void 0,arguments)},includes(...e){return kr(this,"includes",e)},indexOf(...e){return kr(this,"indexOf",e)},join(e){return mn(this).join(e)},lastIndexOf(...e){return kr(this,"lastIndexOf",e)},map(e,t){return Et(this,"map",e,t,void 0,arguments)},pop(){return Wn(this,"pop")},push(...e){return Wn(this,"push",e)},reduce(e,...t){return Ys(this,"reduce",e,t)},reduceRight(e,...t){return Ys(this,"reduceRight",e,t)},shift(){return Wn(this,"shift")},some(e,t){return Et(this,"some",e,t,void 0,arguments)},splice(...e){return Wn(this,"splice",e)},toReversed(){return mn(this).toReversed()},toSorted(e){return mn(this).toSorted(e)},toSpliced(...e){return mn(this).toSpliced(...e)},unshift(...e){return Wn(this,"unshift",e)},values(){return wr(this,"values",e=>_t(this,e))}};function wr(e,t,n){const o=wo(e),s=o[t]();return o!==e&&!Xe(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const tc=Array.prototype;function Et(e,t,n,o,s,r){const i=wo(e),a=i!==e&&!Xe(e),l=i[t];if(l!==tc[t]){const f=l.apply(e,r);return a?st(f):f}let c=n;i!==e&&(a?c=function(f,h){return n.call(this,_t(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const u=l.call(i,c,o);return a&&s?s(u):u}function Ys(e,t,n,o){const s=wo(e),r=s!==e&&!Xe(e);let i=n,a=!1;s!==e&&(r?(a=o.length===0,i=function(c,u,f){return a&&(a=!1,c=_t(e,c)),n.call(this,c,_t(e,u),f,e)}):n.length>3&&(i=function(c,u,f){return n.call(this,c,u,f,e)}));const l=s[t](i,...o);return a?_t(e,l):l}function kr(e,t,n){const o=ue(e);Ue(o,"iterate",Rn);const s=o[t](...n);return(s===-1||s===!1)&&Ao(n[0])?(n[0]=ue(n[0]),o[t](...n)):s}function Wn(e,t,n=[]){gt(),gr();const o=ue(e)[t].apply(e,n);return mr(),mt(),o}const nc=lr("__proto__,__v_isRef,__isVue"),Vs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ke));function oc(e){Ke(e)||(e=String(e));const t=ue(this);return Ue(t,"has",e),t.hasOwnProperty(e)}class Hs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return o===(s?r?Zs:Js:r?Xs:Ks).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=Q(t);if(!s){let l;if(i&&(l=ec[n]))return l;if(n==="hasOwnProperty")return oc}const a=Reflect.get(t,n,Ne(t)?t:o);if((Ke(n)?Vs.has(n):nc(n))||(s||Ue(t,"get",n),r))return a;if(Ne(a)){const l=i&&go(n)?a:a.value;return s&&ge(l)?Or(l):l}return ge(a)?s?Or(a):No(a):a}}class qs extends Hs{constructor(t=!1){super(!1,t)}set(t,n,o,s){let r=t[n];const i=Q(t)&&go(n);if(!this._isShallow){const c=Lt(r);if(!Xe(o)&&!Lt(o)&&(r=ue(r),o=ue(o)),!i&&Ne(r)&&!Ne(o))return c||(r.value=o),!0}const a=i?Number(n)e,ko=e=>Reflect.getPrototypeOf(e);function lc(e,t,n){return function(...o){const s=this.__v_raw,r=ue(s),i=Gt(r),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...o),u=n?$r:t?bn:st;return!t&&Ue(r,"iterate",l?vr:rn),Ce(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:a?[u(f[0]),u(f[1])]:u(f),done:h}}})}}function $o(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function cc(e,t){const n={get(s){const r=this.__v_raw,i=ue(r),a=ue(s);e||(ht(s,a)&&Ue(i,"get",s),Ue(i,"get",a));const{has:l}=ko(i),c=t?$r:e?bn:st;if(l.call(i,s))return c(r.get(s));if(l.call(i,a))return c(r.get(a));r!==i&&r.get(s)},get size(){const s=this.__v_raw;return!e&&Ue(ue(s),"iterate",rn),s.size},has(s){const r=this.__v_raw,i=ue(r),a=ue(s);return e||(ht(s,a)&&Ue(i,"has",s),Ue(i,"has",a)),s===a?r.has(s):r.has(s)||r.has(a)},forEach(s,r){const i=this,a=i.__v_raw,l=ue(a),c=t?$r:e?bn:st;return!e&&Ue(l,"iterate",rn),a.forEach((u,f)=>s.call(r,c(u),c(f),i))}};return Ce(n,e?{add:$o("add"),set:$o("set"),delete:$o("delete"),clear:$o("clear")}:{add(s){const r=ue(this),i=ko(r),a=ue(s),l=!t&&!Xe(s)&&!Lt(s)?a:s;return i.has.call(r,l)||ht(s,l)&&i.has.call(r,s)||ht(a,l)&&i.has.call(r,a)||(r.add(l),At(r,"add",l,l)),this},set(s,r){!t&&!Xe(r)&&!Lt(r)&&(r=ue(r));const i=ue(this),{has:a,get:l}=ko(i);let c=a.call(i,s);c||(s=ue(s),c=a.call(i,s));const u=l.call(i,s);return i.set(s,r),c?ht(r,u)&&At(i,"set",s,r):At(i,"add",s,r),this},delete(s){const r=ue(this),{has:i,get:a}=ko(r);let l=i.call(r,s);l||(s=ue(s),l=i.call(r,s)),a&&a.call(r,s);const c=r.delete(s);return l&&At(r,"delete",s,void 0),c},clear(){const s=ue(this),r=s.size!==0,i=s.clear();return r&&At(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=lc(s,e,t)}),n}function Oo(e,t){const n=cc(e,t);return(o,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(fe(n,s)&&s in o?n:o,s,r)}const uc={get:Oo(!1,!1)},pc={get:Oo(!1,!0)},dc={get:Oo(!0,!1)},fc={get:Oo(!0,!0)},Ks=new WeakMap,Xs=new WeakMap,Js=new WeakMap,Zs=new WeakMap;function hc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function No(e){return Lt(e)?e:Co(e,!1,rc,uc,Ks)}function gc(e){return Co(e,!1,ic,pc,Xs)}function Or(e){return Co(e,!0,sc,dc,Js)}function O_(e){return Co(e,!0,ac,fc,Zs)}function Co(e,t,n,o,s){if(!ge(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=s.get(e);if(r)return r;const i=hc(Wl(e));if(i===0)return e;const a=new Proxy(e,i===2?o:n);return s.set(e,a),a}function Tt(e){return Lt(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function Lt(e){return!!(e&&e.__v_isReadonly)}function Xe(e){return!!(e&&e.__v_isShallow)}function Ao(e){return e?!!e.__v_raw:!1}function ue(e){const t=e&&e.__v_raw;return t?ue(t):e}function _n(e){return!fe(e,"__v_skip")&&Object.isExtensible(e)&&Cs(e,"__v_skip",!0),e}const st=e=>ge(e)?No(e):e,bn=e=>ge(e)?Or(e):e;function Ne(e){return e?e.__v_isRef===!0:!1}function ie(e){return Qs(e,!1)}function Eo(e){return Qs(e,!0)}function Qs(e,t){return Ne(e)?e:new mc(e,t)}class mc{constructor(t,n){this.dep=new yr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ue(t),this._value=n?t:st(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Xe(t)||Lt(t);t=o?t:ue(t),ht(t,n)&&(this._rawValue=t,this._value=o?t:st(t),this.dep.trigger())}}function Je(e){return Ne(e)?e.value:e}const _c={get:(e,t,n)=>t==="__v_raw"?e:Je(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Ne(s)&&!Ne(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function ei(e){return Tt(e)?e:new Proxy(e,_c)}function bc(e){const t=Q(e)?new Array(e.length):{};for(const n in e)t[n]=vc(e,n);return t}class yc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Ke(n)?n:String(n),this._raw=ue(t);let s=!0,r=t;if(!Q(t)||Ke(this._key)||!go(this._key))do s=!Ao(r)||Xe(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Je(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ne(this._raw[this._key])){const n=this._object[this._key];if(Ne(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Ql(this._raw,this._key)}}function vc(e,t,n){return new yc(e,t,n)}class wc{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new yr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ye!==this)return Ds(this,!0),!0}get value(){const t=this.dep.track();return Ws(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function kc(e,t,n=!1){let o,s;return ne(e)?o=e:(o=e.get,s=e.set),new wc(o,s,n)}const To={},Lo=new WeakMap;let sn;function $c(e,t=!1,n=sn){if(n){let o=Lo.get(n);o||Lo.set(n,o=[]),o.push(e)}}function Oc(e,t,n=_e){const{immediate:o,deep:s,once:r,scheduler:i,augmentJob:a,call:l}=n,c=m=>s?m:Xe(m)||s===!1||s===0?St(m,1):St(m);let u,f,h,_,w=!1,$=!1;if(Ne(e)?(f=()=>e.value,w=Xe(e)):Tt(e)?(f=()=>c(e),w=!0):Q(e)?($=!0,w=e.some(m=>Tt(m)||Xe(m)),f=()=>e.map(m=>{if(Ne(m))return m.value;if(Tt(m))return c(m);if(ne(m))return l?l(m,2):m()})):ne(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){gt();try{h()}finally{mt()}}const m=sn;sn=u;try{return l?l(e,3,[_]):e(_)}finally{sn=m}}:f=ft,t&&s){const m=f,C=s===!0?1/0:s;f=()=>St(m(),C)}const I=xs(),N=()=>{u.stop(),I&&I.active&&cr(I.effects,u)};if(r&&t){const m=t;t=(...C)=>{const S=m(...C);return N(),S}}let L=$?new Array(e.length).fill(To):To;const b=m=>{if(!(!(u.flags&1)||!u.dirty&&!m))if(t){const C=u.run();if(m||s||w||($?C.some((S,v)=>ht(S,L[v])):ht(C,L))){h&&h();const S=sn;sn=u;try{const v=[C,L===To?void 0:$&&L[0]===To?[]:L,_];L=C,l?l(t,3,v):t(...v)}finally{sn=S}}}else u.run()};return a&&a(b),u=new Ps(f),u.scheduler=i?()=>i(b,!1):b,_=m=>$c(m,!1,u),h=u.onStop=()=>{const m=Lo.get(u);if(m){if(l)l(m,4);else for(const C of m)C();Lo.delete(u)}},t?o?b(!0):L=u.run():i?i(b.bind(null,!0),!0):u.run(),N.pause=u.pause.bind(u),N.resume=u.resume.bind(u),N.stop=N,N}function St(e,t=1/0,n){if(t<=0||!ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ne(e))St(e.value,t,n);else if(Q(e))for(let o=0;o{St(o,t,n)});else if(ho(e)){for(const o in e)St(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&St(e[o],t,n)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Un=[];let Nr=!1;function O_(e,...t){if(Nr)return;Nr=!0,gt();const n=Un.length?Un[Un.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=Nc();if(o)yn(o,n,11,[e+t.map(r=>{var i,a;return(a=(i=r.toString)==null?void 0:i.call(r))!=null?a:JSON.stringify(r)}).join(""),n&&n.proxy,s.map(({vnode:r})=>`at <${Qi(n,r.type)}>`).join(` +**/const Un=[];let Nr=!1;function N_(e,...t){if(Nr)return;Nr=!0,gt();const n=Un.length?Un[Un.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=Nc();if(o)yn(o,n,11,[e+t.map(r=>{var i,a;return(a=(i=r.toString)==null?void 0:i.call(r))!=null?a:JSON.stringify(r)}).join(""),n&&n.proxy,s.map(({vnode:r})=>`at <${Qi(n,r.type)}>`).join(` `),s]);else{const r=[`[Vue warn]: ${e}`,...t];s.length&&r.push(` `,...Cc(s)),console.warn(...r)}mt(),Nr=!1}function Nc(){let e=Un[Un.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function Cc(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` -`],...Ac(n))}),t}function Ac({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,s=` at <${Qi(e.component,e.type,o)}`,r=">"+n;return e.props?[s,...Ec(e.props),r]:[s+r]}function Ec(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...ti(o,e[o]))}),n.length>3&&t.push(" ..."),t}function ti(e,t,n){return be(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:Ne(t)?(t=ti(e,ue(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):ne(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=ue(t),n?t:[`${e}=`,t])}function yn(e,t,n,o){try{return o?e(...o):e()}catch(s){jn(s,t,n)}}function it(e,t,n,o){if(ne(e)){const s=yn(e,t,n,o);return s&&Os(s)&&s.catch(r=>{jn(r,t,n)}),s}if(Q(e)){const s=[];for(let r=0;r>>1,s=je[o],r=Gn(s);r=Gn(n)?je.push(e):je.splice(Lc(t),0,e),e.flags|=1,oi()}}function oi(){So||(So=ni.then(ii))}function Sc(e){if(!Q(e))Yt&&e.id===-1?Yt.splice(wn+1,0,e):e.flags&1||(vn.push(e),e.flags|=1);else for(let t=0;tGn(n)-Gn(o));if(vn.length=0,Yt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function ii(e){try{for(bt=0;bt{o._d&&Go(-1);const r=Fo(t),i=Ft.length;let a;try{a=e(...s)}finally{for(let l=Ft.length;l>i;l--)Yr();Fo(r),o._d&&Go(1)}return a};return o._n=!0,o._c=!0,o._d=!0,o}function Ic(e,t){if(De===null)return e;const n=qo(De),o=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&ne(t)?t.call(o&&o.proxy):t}}function Fc(){return!!(Pt()||cn)}const xc=Symbol.for("v-scx"),Pc=()=>Ge(xc);function Mc(e,t){return Ar(e,null,t)}function yt(e,t,n){return Ar(e,t,n)}function Ar(e,t,n=_e){const{immediate:o,deep:s,flush:r,once:i}=n,a=Ce({},n),l=t&&o||!t&&r!=="post";let c;if(Nn){if(r==="sync"){const _=Pc();c=_.__watcherHandles||(_.__watcherHandles=[])}else if(!l){const _=()=>{};return _.stop=ft,_.resume=ft,_.pause=ft,_}}const u=Be;a.call=(_,w,$)=>it(_,u,w,$);let f=!1;r==="post"?a.scheduler=_=>{Ve(_,u&&u.suspense)}:r!=="sync"&&(f=!0,a.scheduler=(_,w)=>{w?_():Cr(_)}),a.augmentJob=_=>{t&&(_.flags|=4),f&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const h=Oc(e,t,a);return Nn&&(c?c.push(h):l&&h()),h}function Dc(e,t,n){const o=this.proxy,s=be(e)?e.includes(".")?li(o,e):()=>o[e]:e.bind(o,o);let r;ne(t)?r=t:(r=t.handler,n=t);const i=eo(this),a=Ar(s,r.bind(o),n);return i(),a}function li(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;se.__isTeleport,ln=e=>e&&(e.disabled||e.disabled===""),Bc=e=>e&&(e.defer||e.defer===""),ui=e=>typeof SVGElement<"u"&&e instanceof SVGElement,pi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Er=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Rc={name:"Teleport",__isTeleport:!0,process(e,t,n,o,s,r,i,a,l,c){const{mc:u,pc:f,pbc:h,o:{insert:_,querySelector:w,createText:$,createComment:I,parentNode:N}}=c,L=ln(t.props);let{dynamicChildren:b}=t;const m=(v,O,E)=>{v.shapeFlag&16&&u(v.children,O,E,s,r,i,a,l)},C=(v=t)=>{const O=ln(v.props),E=v.target=Er(v.props,w),X=Tr(E,v,$,_);E&&(i!=="svg"&&ui(E)?i="svg":i!=="mathml"&&pi(E)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(E),O||(m(v,E,X),Yn(v,!1)))},S=v=>{const O=()=>{if(Ht.get(v)===O){if(Ht.delete(v),ln(v.props)){const E=N(v.el)||n;m(v,E,v.anchor),Yn(v,!0)}C(v)}};Ht.set(v,O),Ve(O,r)};if(e==null){const v=t.el=$(""),O=t.anchor=$("");if(_(v,n,o),_(O,n,o),Bc(t.props)||r&&r.pendingBranch){S(t);return}L&&(m(t,n,O),Yn(t,!0)),C()}else{t.el=e.el;const v=t.anchor=e.anchor,O=Ht.get(e);if(O){O.flags|=8,Ht.delete(e),S(t);return}t.targetStart=e.targetStart;const E=t.target=e.target,X=t.targetAnchor=e.targetAnchor,te=ln(e.props),H=te?n:E,se=te?v:X;if(i==="svg"||ui(E)?i="svg":(i==="mathml"||pi(E))&&(i="mathml"),b?(h(e.dynamicChildren,b,H,s,r,i,a),jr(e,t,!0)):l||f(e,t,H,se,s,r,i,a,!1),L)te?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Po(t,n,v,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const he=Er(t.props,w);he&&(t.target=he,Po(t,he,null,c,0))}else te&&Po(t,E,X,c,1);Yn(t,L)}},remove(e,t,n,{um:o,o:{remove:s}},r){const{shapeFlag:i,children:a,anchor:l,targetStart:c,targetAnchor:u,target:f,props:h}=e,_=ln(h),w=r||!_,$=Ht.get(e);if($&&($.flags|=8,Ht.delete(e)),f&&(s(c),s(u)),r&&s(l),!$&&(_||f)&&i&16)for(let I=0;I1){for(const n of e)if(n.type!==vt){t=n;break}}return t}function di(e){if(!Bo(e))return xo(e.type)&&e.children?jc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ne(n.default))return n.default()}}function Sr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Sr(xo(n.type)&&di(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vn(e,t){return ne(e)?Ce({name:e.name},t,{setup:e}):e}function Ir(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function fi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Mo=new WeakMap;function Hn(e,t,n,o,s=!1){if(Q(e)){e.forEach(($,I)=>Hn($,t&&(Q(t)?t[I]:t),n,o,s));return}if(kn(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Hn(e,t,n,o.component.subTree);return}const r=o.shapeFlag&4?qo(o.component):o.el,i=s?null:r,{i:a,r:l}=e,c=t&&t.r,u=a.refs===_e?a.refs={}:a.refs,f=a.setupState,h=ue(f),_=f===_e?ks:$=>fi(u,$)?!1:fe(h,$),w=($,I)=>!(I&&fi(u,I));if(c!=null&&c!==l){if(hi(t),be(c))u[c]=null,_(c)&&(f[c]=null);else if(Ne(c)){const $=t;w(c,$.k)&&(c.value=null),$.k&&(u[$.k]=null)}}if(ne(l))yn(l,a,12,[i,u]);else{const $=be(l),I=Ne(l);if($||I){const N=()=>{if(e.f){const L=$?_(l)?f[l]:u[l]:w()||!e.k?l.value:u[e.k];if(s)Q(L)&&cr(L,r);else if(Q(L))L.includes(r)||L.push(r);else if($)u[l]=[r],_(l)&&(f[l]=u[l]);else{const b=[r];w(l,e.k)&&(l.value=b),e.k&&(u[e.k]=b)}}else $?(u[l]=i,_(l)&&(f[l]=i)):I&&(w(l,e.k)&&(l.value=i),e.k&&(u[e.k]=i))};if(i){const L=()=>{N(),Mo.delete(e)};L.id=-1,Mo.set(e,L),Ve(L,n)}else hi(e),N()}}}function hi(e){const t=Mo.get(e);t&&(t.flags|=8,Mo.delete(e))}const gi=e=>e.nodeType===8;bo().requestIdleCallback,bo().cancelIdleCallback;function Gc(e,t){if(gi(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(gi(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const kn=e=>!!e.type.__asyncLoader;function Yc(e){ne(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:s=200,hydrate:r,timeout:i,suspensible:a=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,_()),_=()=>{let w;return c||(w=c=t().catch($=>{if($=$ instanceof Error?$:new Error(String($)),l)return new Promise((I,N)=>{l($,()=>I(h()),()=>N($),f+1)});throw $}).then($=>w!==c&&c?c:($&&($.__esModule||$[Symbol.toStringTag]==="Module")&&($=$.default),u=$,$)))};return Vn({name:"AsyncComponentWrapper",__asyncLoader:_,__asyncHydrate(w,$,I){const N=w.isConnected;let L=!1;($.bu||($.bu=[])).push(()=>L=!0);const b=()=>{L||!w.parentNode||N&&!w.isConnected||I()},m=r?()=>{const C=r(b,S=>Gc(w,S));C&&($.bum||($.bum=[])).push(C)}:b;u?m():_().then(()=>!$.isUnmounted&&m())},get __asyncResolved(){return u},setup(){const w=Be;if(Ir(w),u)return()=>Do(u,w);const $=C=>{c=null,jn(C,w,13,!o)};if(a&&w.suspense||Nn)return _().then(C=>()=>Do(C,w)).catch(C=>($(C),()=>o?ve(o,{error:C}):null));const I=ie(!1),N=ie(),L=ie(!!s);let b,m;return Wo(()=>{b!=null&&clearTimeout(b),m!=null&&clearTimeout(m)}),s&&(m=setTimeout(()=>{w.isUnmounted||(L.value=!1)},s)),i!=null&&(b=setTimeout(()=>{if(!w.isUnmounted&&!I.value&&!N.value){const C=new Error(`Async component timed out after ${i}ms.`);$(C),N.value=C}},i)),_().then(()=>{w.isUnmounted||(I.value=!0,w.parent&&Bo(w.parent.vnode)&&w.parent.update())}).catch(C=>{if(w.isUnmounted){c=null;return}$(C),N.value=C}),()=>{if(I.value&&u)return Do(u,w);if(N.value&&o)return ve(o,{error:N.value});if(n&&!L.value)return Do(n,w)}}})}function Do(e,t){const{ref:n,props:o,children:s,ce:r}=t.vnode,i=ve(e,o,s);return i.ref=n,i.ce=r,delete t.vnode.ce,i}const Bo=e=>e.type.__isKeepAlive;function Vc(e,t){mi(e,"a",t)}function Hc(e,t){mi(e,"da",t)}function mi(e,t,n=Be){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ro(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Bo(s.parent.vnode)&&qc(o,t,n,s),s=s.parent}}function qc(e,t,n,o){const s=Ro(t,e,o,!0);Wo(()=>{cr(o[t],s)},n)}function Ro(e,t,n=Be,o=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{gt();const a=eo(n),l=it(t,n,e,i);return a(),mt(),l});return o?s.unshift(r):s.push(r),r}}const It=e=>(t,n=Be)=>{(!Nn||e==="sp")&&Ro(e,(...o)=>t(...o),n)},_i=It("bm"),qt=It("m"),zc=It("bu"),Kc=It("u"),$n=It("bum"),Wo=It("um"),Xc=It("sp"),Jc=It("rtg"),Zc=It("rtc");function Qc(e,t=Be){Ro("ec",e,t)}const eu="components",bi=Symbol.for("v-ndc");function yi(e){return be(e)?tu(eu,e,!1)||e:e||bi}function tu(e,t,n=!0,o=!1){const s=De||Be;if(s){const r=s.type;{const a=Zi(r,!1);if(a&&(a===t||a===xe(t)||a===_o(xe(t))))return r}const i=vi(s[e]||r[e],t)||vi(s.appContext[e],t);return!i&&o?r:i}}function vi(e,t){return e&&(e[t]||e[xe(t)]||e[_o(xe(t))])}function lt(e,t,n,o){let s;const r=n,i=Q(e);if(i||be(e)){const a=i&&Tt(e);let l=!1,c=!1;a&&(l=!Xe(e),c=Lt(e),e=wo(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(a,l,void 0,r));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,c=a.length;l0;return Y(),Qe(pe,null,[ve("slot",c,o)],u?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const a=Ft.length;Y();let l;try{const c=i&&wi(i(n)),u=n.key||r||c&&c.key;l=Qe(pe,{key:(u&&!Ke(u)?u:`_${t}`)+(!c&&o?"_fb":"")},c||(o?o():[]),c&&e._===1?64:-2)}catch(c){for(let u=Ft.length;u>a;u--)Yr();throw c}finally{i&&i._c&&(i._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function wi(e){return e.some(t=>Jn(t)?!(t.type===vt||t.type===pe&&!wi(t.children)):!0)?e:null}const xr=e=>e?Ki(e)?qo(e):xr(e.parent):null,qn=Ce(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>xr(e.parent),$root:e=>xr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ni(e),$forceUpdate:e=>e.f||(e.f=()=>{Cr(e.update)}),$nextTick:e=>e.n||(e.n=Io.bind(e.proxy)),$watch:e=>Dc.bind(e)}),Pr=(e,t)=>e!==_e&&!e.__isScriptSetup&&fe(e,t),nu={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:r,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(Pr(o,t))return i[t]=1,o[t];if(s!==_e&&fe(s,t))return i[t]=2,s[t];if(fe(r,t))return i[t]=3,r[t];if(n!==_e&&fe(n,t))return i[t]=4,n[t];Mr&&(i[t]=0)}}const c=qn[t];let u,f;if(c)return t==="$attrs"&&Ue(e.attrs,"get",""),c(e);if((u=a.__cssModules)&&(u=u[t]))return u;if(n!==_e&&fe(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,fe(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;return Pr(s,t)?(s[t]=n,!0):o!==_e&&fe(o,t)?(o[t]=n,!0):fe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,props:r,type:i}},a){let l;return!!(n[a]||e!==_e&&a[0]!=="$"&&fe(e,a)||Pr(t,a)||fe(r,a)||fe(o,a)||fe(qn,a)||fe(s.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:fe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ki(e){return Q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Mr=!0;function ou(e){const t=Ni(e),n=e.proxy,o=e.ctx;Mr=!1,t.beforeCreate&&$i(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:_,updated:w,activated:$,deactivated:I,beforeDestroy:N,beforeUnmount:L,destroyed:b,unmounted:m,render:C,renderTracked:S,renderTriggered:v,errorCaptured:O,serverPrefetch:E,expose:X,inheritAttrs:te,components:H,directives:se,filters:he}=t;if(c&&ru(c,o,null),i)for(const q in i){const le=i[q];ne(le)&&(o[q]=le.bind(n))}if(s){const q=s.call(n,n);ge(q)&&(e.data=No(q))}if(Mr=!0,r)for(const q in r){const le=r[q],Ee=ne(le)?le.bind(n,n):ne(le.get)?le.get.bind(n,n):ft,Nt=!ne(le)&&ne(le.set)?le.set.bind(n):ft,Fe=re({get:Ee,set:Nt});Object.defineProperty(o,q,{enumerable:!0,configurable:!0,get:()=>Fe.value,set:Me=>Fe.value=Me})}if(a)for(const q in a)Oi(a[q],o,n,q);if(l){const q=ne(l)?l.call(n):l;Reflect.ownKeys(q).forEach(le=>{at(le,q[le])})}u&&$i(u,e,"c");function W(q,le){Q(le)?le.forEach(Ee=>q(Ee.bind(n))):le&&q(le.bind(n))}if(W(_i,f),W(qt,h),W(zc,_),W(Kc,w),W(Vc,$),W(Hc,I),W(Qc,O),W(Zc,S),W(Jc,v),W($n,L),W(Wo,m),W(Xc,E),Q(X))if(X.length){const q=e.exposed||(e.exposed={});X.forEach(le=>{Object.defineProperty(q,le,{get:()=>n[le],set:Ee=>n[le]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});C&&e.render===ft&&(e.render=C),te!=null&&(e.inheritAttrs=te),H&&(e.components=H),se&&(e.directives=se),E&&Ir(e)}function ru(e,t,n=ft){Q(e)&&(e=Dr(e));for(const o in e){const s=e[o];let r;ge(s)?"default"in s?r=Ge(s.from||o,s.default,!0):r=Ge(s.from||o):r=Ge(s),Ne(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[o]=r}}function $i(e,t,n){it(Q(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Oi(e,t,n,o){let s=o.includes(".")?li(n,o):()=>n[o];if(be(e)){const r=t[e];ne(r)&&yt(s,r)}else if(ne(e))yt(s,e.bind(n));else if(ge(e))if(Q(e))e.forEach(r=>Oi(r,t,n,o));else{const r=ne(e.handler)?e.handler.bind(n):t[e.handler];ne(r)&&yt(s,r,e)}}function Ni(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,a=r.get(t);let l;return a?l=a:!s.length&&!n&&!o?l=t:(l={},s.length&&s.forEach(c=>Uo(l,c,i,!0)),Uo(l,t,i)),ge(t)&&r.set(t,l),l}function Uo(e,t,n,o=!1){const{mixins:s,extends:r}=t;r&&Uo(e,r,n,!0),s&&s.forEach(i=>Uo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const a=su[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const su={data:Ci,props:Ai,emits:Ai,methods:zn,computed:zn,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:zn,directives:zn,watch:au,provide:Ci,inject:iu};function Ci(e,t){return t?e?function(){return Ce(ne(e)?e.call(this,this):e,ne(t)?t.call(this,this):t)}:t:e}function iu(e,t){return zn(Dr(e),Dr(t))}function Dr(e){if(Q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xe(t)}Modifiers`]||e[`${tt(t)}Modifiers`];function pu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||_e;let s=n;const r=t.startsWith("update:"),i=r&&uu(o,t.slice(7));i&&(i.trim&&(s=n.map(u=>be(u)?u.trim():u)),i.number&&(s=s.map(Gl)));let a,l=o[a=ur(t)]||o[a=ur(xe(t))];!l&&r&&(l=o[a=ur(tt(t))]),l&&it(l,e,6,s);const c=o[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,it(c,e,6,s)}}const du=new WeakMap;function Ti(e,t,n=!1){const o=n?du:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const r=e.emits;let i={},a=!1;if(!ne(e)){const l=c=>{const u=Ti(c,t,!0);u&&(a=!0,Ce(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!a?(ge(e)&&o.set(e,null),null):(Q(r)?r.forEach(l=>i[l]=null):Ce(i,r),ge(e)&&o.set(e,i),i)}function jo(e,t){return!e||!uo(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),fe(e,t[0].toLowerCase()+t.slice(1))||fe(e,tt(t))||fe(e,t))}function N_(){}function Li(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[r],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:f,data:h,setupState:_,ctx:w,inheritAttrs:$}=e,I=Fo(e);let N,L;try{if(n.shapeFlag&4){const m=s||o,C=m;N=wt(c.call(C,m,u,f,_,h,w)),L=a}else{const m=t;N=wt(m.length>1?m(f,{attrs:a,slots:i,emit:l}):m(f,null)),L=t.props?a:fu(a)}}catch(m){Ft.length=0,jn(m,e,1),N=ve(vt)}let b=N;if(L&&$!==!1){const m=Object.keys(L),{shapeFlag:C}=b;m.length&&C&7&&(r&&m.some(po)&&(L=hu(L,r)),b=On(b,L,!1,!0))}if(n.dirs&&(b=On(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition){const m=xo(b.type)&&di(b)||b;Sr(m,n.transition)}return N=b,Fo(I),N}const fu=e=>{let t;for(const n in e)(n==="class"||n==="style"||uo(n))&&((t||(t={}))[n]=e[n]);return t},hu=(e,t)=>{const n={};for(const o in e)(!po(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function gu(e,t,n){const{props:o,children:s,component:r}=e,{props:i,children:a,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Si(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(Fi),Pi=e=>Object.getPrototypeOf(e)===Fi;function _u(e,t,n,o=!1){const s={},r=xi();e.propsDefaults=Object.create(null),Mi(e,t,s,r);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=o?s:gc(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function bu(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:i}}=e,a=ue(s),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,_]=Di(f,t,!0);Ce(i,h),_&&a.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return ge(e)&&o.set(e,gn),gn;if(Q(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Wr=e=>Q(e)?e.map(wt):[wt(e)],vu=(e,t,n)=>{if(t._n)return t;const o=Vt((...s)=>Wr(t(...s)),n);return o._c=!1,o},Ri=(e,t,n)=>{const o=e._ctx;for(const s in e){if(Rr(s))continue;const r=e[s];if(ne(r))t[s]=vu(s,r,o);else if(r!=null){const i=Wr(r);t[s]=()=>i}}},Wi=(e,t)=>{const n=Wr(t);e.slots.default=()=>n},Ui=(e,t,n)=>{for(const o in t)(n||!Rr(o))&&(e[o]=t[o])},wu=(e,t,n)=>{const o=e.slots=xi();if(e.vnode.shapeFlag&32){const s=t._;s?(Ui(o,t,n),n&&Cs(o,"_",s,!0)):Ri(t,o)}else t&&Wi(e,t)},ku=(e,t,n)=>{const{vnode:o,slots:s}=e;let r=!0,i=_e;if(o.shapeFlag&32){const a=t._;a?n&&a===1?r=!1:Ui(s,t,n):(r=!t.$stable,Ri(t,s)),i=t}else t&&(Wi(e,t),i={default:1});if(r)for(const a in s)!Rr(a)&&i[a]==null&&delete s[a]},Ve=Au;function $u(e){return Ou(e)}function Ou(e,t){const n=bo();n.__VUE__=!0;const{insert:o,remove:s,patchProp:r,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:_=ft,insertStaticContent:w}=e,$=(g,k,y,F=null,B=null,D=null,j=void 0,U=null,p=!!k.dynamicChildren)=>{if(g===k)return;g&&!Zn(g,k)&&(F=Ut(g),Me(g,B,D,!0),g=null),k.patchFlag===-2&&(p=!1,k.dynamicChildren=null);const{type:d,ref:T,shapeFlag:x}=k;switch(d){case Kn:I(g,k,y,F);break;case vt:N(g,k,y,F);break;case Gr:g==null&&L(k,y,F,j);break;case pe:H(g,k,y,F,B,D,j,U,p);break;default:x&1?C(g,k,y,F,B,D,j,U,p):x&6?se(g,k,y,F,B,D,j,U,p):(x&64||x&128)&&d.process(g,k,y,F,B,D,j,U,p,ot)}T!=null&&B?Hn(T,g&&g.ref,D,k||g,!k):T==null&&g&&g.ref!=null&&Hn(g.ref,null,D,g,!0)},I=(g,k,y,F)=>{if(g==null)o(k.el=a(k.children),y,F);else{const B=k.el=g.el;k.children!==g.children&&c(B,k.children)}},N=(g,k,y,F)=>{g==null?o(k.el=l(k.children||""),y,F):k.el=g.el},L=(g,k,y,F)=>{[g.el,g.anchor]=w(g.children,k,y,F,g.el,g.anchor)},b=({el:g,anchor:k},y,F)=>{let B;for(;g&&g!==k;)B=h(g),o(g,y,F),g=B;o(k,y,F)},m=({el:g,anchor:k})=>{let y;for(;g&&g!==k;)y=h(g),s(g),g=y;s(k)},C=(g,k,y,F,B,D,j,U,p)=>{if(k.type==="svg"?j="svg":k.type==="math"&&(j="mathml"),g==null)S(k,y,F,B,D,j,U,p);else{const d=g.el&&g.el._isVueCE?g.el:null;try{d&&d._beginPatch(),E(g,k,B,D,j,U,p)}finally{d&&d._endPatch()}}},S=(g,k,y,F,B,D,j,U)=>{let p,d;const{props:T,shapeFlag:x,transition:G,dirs:R}=g;if(p=g.el=i(g.type,D,T&&T.is,T),x&8?u(p,g.children):x&16&&O(g.children,p,null,F,B,Ur(g,D),j,U),R&&an(g,null,F,"created"),v(p,g,g.scopeId,j,F),T){for(const M in T)M!=="value"&&!xn(M)&&r(p,M,null,T[M],D,F);"value"in T&&r(p,"value",null,T.value,D),(d=T.onVnodeBeforeMount)&&kt(d,F,g)}R&&an(g,null,F,"beforeMount");const A=Nu(B,G);A&&G.beforeEnter(p),o(p,k,y),((d=T&&T.onVnodeMounted)||A||R)&&Ve(()=>{try{d&&kt(d,F,g),A&&G.enter(p),R&&an(g,null,F,"mounted")}finally{}},B)},v=(g,k,y,F,B)=>{if(y&&_(g,y),F)for(let D=0;D{for(let d=p;d{const U=k.el=g.el;let{patchFlag:p,dynamicChildren:d,dirs:T}=k;p|=g.patchFlag&16;const x=g.props||_e,G=k.props||_e;let R;if(y&&un(y,!1),(R=G.onVnodeBeforeUpdate)&&kt(R,y,k,g),T&&an(k,g,y,"beforeUpdate"),y&&un(y,!0),d&&(!g.dynamicChildren||g.dynamicChildren.length!==d.length)&&(p=0,j=!1,d=null),(x.innerHTML&&G.innerHTML==null||x.textContent&&G.textContent==null)&&u(U,""),d?X(g.dynamicChildren,d,U,y,F,Ur(k,B),D):j||le(g,k,U,null,y,F,Ur(k,B),D,!1),p>0){if(p&16)te(U,x,G,y,B);else if(p&2&&x.class!==G.class&&r(U,"class",null,G.class,B),p&4&&r(U,"style",x.style,G.style,B),p&8){const A=k.dynamicProps;for(let M=0;M{R&&kt(R,y,k,g),T&&an(k,g,y,"updated")},F)},X=(g,k,y,F,B,D,j)=>{for(let U=0;U{if(k!==y){if(k!==_e)for(const D in k)!xn(D)&&!(D in y)&&r(g,D,k[D],null,B,F);for(const D in y){if(xn(D))continue;const j=y[D],U=k[D];j!==U&&D!=="value"&&r(g,D,U,j,B,F)}"value"in y&&r(g,"value",k.value,y.value,B)}},H=(g,k,y,F,B,D,j,U,p)=>{const d=k.el=g?g.el:a(""),T=k.anchor=g?g.anchor:a("");let{patchFlag:x,dynamicChildren:G,slotScopeIds:R}=k;R&&(U=U?U.concat(R):R),g==null?(o(d,y,F),o(T,y,F),O(k.children||[],y,T,B,D,j,U,p)):x>0&&x&64&&G&&g.dynamicChildren&&g.dynamicChildren.length===G.length?(X(g.dynamicChildren,G,y,B,D,j,U),(k.key!=null||B&&k===B.subTree)&&jr(g,k,!0)):le(g,k,y,T,B,D,j,U,p)},se=(g,k,y,F,B,D,j,U,p)=>{k.slotScopeIds=U,g==null?k.shapeFlag&512?B.ctx.activate(k,y,F,j,p):he(k,y,F,B,D,j,p):K(g,k,p)},he=(g,k,y,F,B,D,j)=>{const U=g.component=Fu(g,F,B);if(Bo(g)&&(U.ctx.renderer=ot),xu(U,!1,j),U.asyncDep){if(B&&B.registerDep(U,W,j),!g.el){const p=U.subTree=ve(vt);N(null,p,k,y),g.placeholder=p.el}}else W(U,g,k,y,B,D,j)},K=(g,k,y)=>{const F=k.component=g.component;if(gu(g,k,y))if(F.asyncDep&&!F.asyncResolved){q(F,k,y);return}else F.next=k,F.update();else k.el=g.el,F.vnode=k},W=(g,k,y,F,B,D,j)=>{const U=()=>{if(g.isMounted){let{next:x,bu:G,u:R,parent:A,vnode:M}=g;{const We=ji(g);if(We){x&&(x.el=M.el,q(g,x,j)),We.asyncDep.then(()=>{Ve(()=>{g.isUnmounted||d()},B)});return}}let J=x,ae;un(g,!1),x?(x.el=M.el,q(g,x,j)):x=M,G&&pr(G),(ae=x.props&&x.props.onVnodeBeforeUpdate)&&kt(ae,A,x,M),un(g,!0);const ke=Li(g),qe=g.subTree;g.subTree=ke,$(qe,ke,f(qe.el),Ut(qe),g,B,D),x.el=ke.el,J===null&&mu(g,ke.el),R&&Ve(R,B),(ae=x.props&&x.props.onVnodeUpdated)&&Ve(()=>kt(ae,A,x,M),B)}else{let x;const{el:G,props:R}=k,{bm:A,m:M,parent:J,root:ae,type:ke}=g,qe=kn(k);un(g,!1),A&&pr(A),!qe&&(x=R&&R.onVnodeBeforeMount)&&kt(x,J,k),un(g,!0);{ae.ce&&ae.ce._hasShadowRoot()&&ae.ce._injectChildStyle(ke,g.parent?g.parent.type:void 0);const We=g.subTree=Li(g);$(null,We,y,F,g,B,D),k.el=We.el}if(M&&Ve(M,B),!qe&&(x=R&&R.onVnodeMounted)){const We=k;Ve(()=>kt(x,J,We),B)}(k.shapeFlag&256||J&&kn(J.vnode)&&J.vnode.shapeFlag&256)&&g.a&&Ve(g.a,B),g.isMounted=!0,k=y=F=null}};g.scope.on();const p=g.effect=new Ps(U);g.scope.off();const d=g.update=p.run.bind(p),T=g.job=p.runIfDirty.bind(p);T.i=g,T.id=g.uid,p.scheduler=()=>Cr(T),un(g,!0),d()},q=(g,k,y)=>{k.component=g;const F=g.vnode.props;g.vnode=k,g.next=null,bu(g,k.props,F,y),ku(g,k.children,y),gt(),ri(g),mt()},le=(g,k,y,F,B,D,j,U,p=!1)=>{const d=g&&g.children,T=g?g.shapeFlag:0,x=k.children,{patchFlag:G,shapeFlag:R}=k;if(G>0){if(G&128){Nt(d,x,y,F,B,D,j,U,p);return}else if(G&256){Ee(d,x,y,F,B,D,j,U,p);return}}R&8?(T&16&&dt(d,B,D),x!==d&&u(y,x)):T&16?R&16?Nt(d,x,y,F,B,D,j,U,p):dt(d,B,D,!0):(T&8&&u(y,""),R&16&&O(x,y,F,B,D,j,U,p))},Ee=(g,k,y,F,B,D,j,U,p)=>{g=g||gn,k=k||gn;const d=g.length,T=k.length,x=Math.min(d,T);let G;for(G=0;GT?dt(g,B,D,!0,!1,x):O(k,y,F,B,D,j,U,p,x)},Nt=(g,k,y,F,B,D,j,U,p)=>{let d=0;const T=k.length;let x=g.length-1,G=T-1;for(;d<=x&&d<=G;){const R=g[d],A=k[d]=p?xt(k[d]):wt(k[d]);if(Zn(R,A))$(R,A,y,null,B,D,j,U,p);else break;d++}for(;d<=x&&d<=G;){const R=g[x],A=k[G]=p?xt(k[G]):wt(k[G]);if(Zn(R,A))$(R,A,y,null,B,D,j,U,p);else break;x--,G--}if(d>x){if(d<=G){const R=G+1,A=RG)for(;d<=x;)Me(g[d],B,D,!0),d++;else{const R=d,A=d,M=new Map;for(d=A;d<=G;d++){const et=k[d]=p?xt(k[d]):wt(k[d]);et.key!=null&&M.set(et.key,d)}let J,ae=0;const ke=G-A+1;let qe=!1,We=0;const hn=new Array(ke);for(d=0;d=ke){Me(et,B,D,!0);continue}let Ct;if(et.key!=null)Ct=M.get(et.key);else for(J=A;J<=G;J++)if(hn[J-A]===0&&Zn(et,k[J])){Ct=J;break}Ct===void 0?Me(et,B,D,!0):(hn[Ct-A]=d+1,Ct>=We?We=Ct:qe=!0,$(et,k[Ct],y,null,B,D,j,U,p),ae++)}const ws=qe?Cu(hn):gn;for(J=ws.length-1,d=ke-1;d>=0;d--){const et=A+d,Ct=k[et],Dl=k[et+1],Bl=et+1{const{el:D,type:j,transition:U,children:p,shapeFlag:d}=g;if(d&6){Fe(g.component.subTree,k,y,F);return}if(d&128){g.suspense.move(k,y,F);return}if(d&64){j.move(g,k,y,ot);return}if(j===pe){o(D,k,y);for(let x=0;xU.enter(D),B));else{const{leave:x,delayLeave:G,afterLeave:R}=U,A=()=>{g.ctx.isUnmounted?s(D):o(D,k,y)},M=()=>{const J=D._isLeaving||!!D[Lr];D._isLeaving&&D[Lr](!0),U.persisted&&!J?A():x(D,()=>{A(),R&&R()})};G?G(D,A,M):M()}else o(D,k,y)},Me=(g,k,y,F=!1,B=!1)=>{const{type:D,props:j,ref:U,children:p,dynamicChildren:d,shapeFlag:T,patchFlag:x,dirs:G,cacheIndex:R,memo:A}=g;if(x===-2&&(B=!1),U!=null&&(gt(),Hn(U,null,y,g,!0),mt()),R!=null&&(k.renderCache[R]=void 0),T&256){k.ctx.deactivate(g);return}const M=T&1&&G,J=!kn(g);let ae;if(J&&(ae=j&&j.onVnodeBeforeUnmount)&&kt(ae,k,g),T&6)fn(g.component,y,F);else{if(T&128){g.suspense.unmount(y,F);return}M&&an(g,null,k,"beforeUnmount"),T&64?g.type.remove(g,k,y,ot,F):d&&!d.hasOnce&&(D!==pe||x>0&&x&64)?dt(d,k,y,!1,!0):(D===pe&&x&384||!B&&T&16)&&dt(p,k,y),F&&tn(g)}const ke=A!=null&&R==null;(J&&(ae=j&&j.onVnodeUnmounted)||M||ke)&&Ve(()=>{ae&&kt(ae,k,g),M&&an(g,null,k,"unmounted"),ke&&(g.el=null)},y)},tn=g=>{const{type:k,el:y,anchor:F,transition:B}=g;if(k===pe){nn(y,F);return}if(k===Gr){m(g);return}const D=()=>{s(y),B&&!B.persisted&&B.afterLeave&&B.afterLeave()};if(g.shapeFlag&1&&B&&!B.persisted){const{leave:j,delayLeave:U}=B,p=()=>j(y,D);U?U(g.el,D,p):p()}else D()},nn=(g,k)=>{let y;for(;g!==k;)y=h(g),s(g),g=y;s(k)},fn=(g,k,y)=>{const{bum:F,scope:B,job:D,subTree:j,um:U,m:p,a:d}=g;Gi(p),Gi(d),F&&pr(F),B.stop(),D&&(D.flags|=8,Me(j,g,k,y)),U&&Ve(U,k),Ve(()=>{g.isUnmounted=!0},k)},dt=(g,k,y,F=!1,B=!1,D=0)=>{for(let j=D;j{if(g.shapeFlag&6)return Ut(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const k=h(g.anchor||g.el),y=k&&k[ci];return y?h(y):k};let jt=!1;const on=(g,k,y)=>{let F;g==null?k._vnode&&(Me(k._vnode,null,null,!0),F=k._vnode.component):$(k._vnode||null,g,k,null,null,null,y),k._vnode=g,jt||(jt=!0,ri(F),si(),jt=!1)},ot={p:$,um:Me,m:Fe,r:tn,mt:he,mc:O,pc:le,pbc:X,n:Ut,o:e};return{render:on,hydrate:void 0,createApp:cu(on)}}function Ur({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function un({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Nu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function jr(e,t,n=!1){const o=e.children,s=t.children;if(Q(o)&&Q(s))for(let r=0;r>1,e[n[a]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}function ji(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ji(t)}function Gi(e){if(e)for(let t=0;te.__isSuspense;function Au(e,t){t&&t.pendingBranch?Q(e)?t.effects.push(...e):t.effects.push(e):Sc(e)}const pe=Symbol.for("v-fgt"),Kn=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Gr=Symbol.for("v-stc"),Ft=[];let Ze=null;function Y(e=!1){Ft.push(Ze=e?null:[])}function Yr(){Ft.pop(),Ze=Ft[Ft.length-1]||null}let Xn=1;function Go(e,t=!1){Xn+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Hi(e){return e.dynamicChildren=Xn>0?Ze||gn:null,Yr(),Xn>0&&Ze&&Ze.push(e),e}function z(e,t,n,o,s,r){return Hi(P(e,t,n,o,s,r,!0))}function Qe(e,t,n,o,s){return Hi(ve(e,t,n,o,s,!0))}function Jn(e){return e?e.__v_isVNode===!0:!1}function Zn(e,t){return e.type===t.type&&e.key===t.key}const qi=({key:e})=>e??null,Yo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Ne(e)||ne(e)?{i:De,r:e,k:t,f:!!n}:e:null);function P(e,t=null,n=null,o=0,s=null,r=e===pe?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qi(t),ref:t&&Yo(t),scopeId:ai,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:De};return a?(Vo(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=be(n)?8:16),Xn>0&&!i&&Ze&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ze.push(l),l}const ve=Eu;function Eu(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===bi)&&(e=vt),Jn(e)){const a=On(e,t,!0);return n&&Vo(a,n),Xn>0&&!r&&Ze&&(a.shapeFlag&6?Ze[Ze.indexOf(e)]=a:Ze.push(a)),a.patchFlag=-2,a}if(Wu(e)&&(e=e.__vccOpts),t){t=Tu(t);let{class:a,style:l}=t;a&&!be(a)&&(t.class=Te(a)),ge(l)&&(Ao(l)&&!Q(l)&&(l=Ce({},l)),t.style=Pn(l))}const i=be(e)?1:Vi(e)?128:xo(e)?64:ge(e)?4:ne(e)?2:0;return P(e,t,n,o,s,i,r,!0)}function Tu(e){return e?Ao(e)||Pi(e)?Ce({},e):e:null}function On(e,t,n=!1,o=!1){const{props:s,ref:r,patchFlag:i,children:a,transition:l}=e,c=t?Lu(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&qi(c),ref:t&&t.ref?n&&r?Q(r)?r.concat(Yo(t)):[r,Yo(t)]:Yo(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pe?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&On(e.ssContent),ssFallback:e.ssFallback&&On(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&Sr(u,l.clone(u)),u}function $e(e=" ",t=0){return ve(Kn,null,e,t)}function Le(e="",t=!1){return t?(Y(),Qe(vt,null,e)):ve(vt,null,e)}function wt(e){return e==null||typeof e=="boolean"?ve(vt):Q(e)?ve(pe,null,e.slice()):Jn(e)?xt(e):ve(Kn,null,String(e))}function xt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:On(e)}function Vo(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(Q(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),Vo(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Pi(t)?t._ctx=De:s===3&&De&&(De.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(ne(t)){if(o&65){Vo(e,{default:t});return}t={default:t,_ctx:De},n=32}else t=String(t),o&64?(n=16,t=[$e(t)]):n=8;e.children=t,e.shapeFlag|=n}function Lu(...e){const t={};for(let n=0;nBe||De;let Ho,Qn;{const e=bo(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),r=>{s.length>1?s.forEach(i=>i(r)):s[0](r)}};Ho=t("__VUE_INSTANCE_SETTERS__",n=>Be=n),Qn=t("__VUE_SSR_SETTERS__",n=>Nn=n)}const eo=e=>{const t=Be;return Ho(e),e.scope.on(),()=>{e.scope.off(),Ho(t)}},zi=()=>{Be&&Be.scope.off(),Ho(null)};function Ki(e){return e.vnode.shapeFlag&4}let Nn=!1;function xu(e,t=!1,n=!1){t&&Qn(t);const{props:o,children:s}=e.vnode,r=Ki(e);_u(e,o,r,t),wu(e,s,n||t);const i=r?Pu(e,t):void 0;return t&&Qn(!1),i}function Pu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,nu);const{setup:o}=n;if(o){gt();const s=e.setupContext=o.length>1?Du(e):null,r=eo(e),i=yn(o,e,0,[e.props,s]),a=Os(i);if(mt(),r(),(a||e.sp)&&!kn(e)&&Ir(e),a){if(i.then(zi,zi),t)return i.then(l=>{Qn(!0);try{Xi(e,l,t)}finally{Qn(!1)}}).catch(l=>{jn(l,e,0)});e.asyncDep=i}else Xi(e,i)}else Ji(e)}function Xi(e,t,n){ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=ei(t)),Ji(e)}function Ji(e,t,n){const o=e.type;e.render||(e.render=o.render||ft);{const s=eo(e);gt();try{ou(e)}finally{mt(),s()}}}const Mu={get(e,t){return Ue(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Mu),slots:e.slots,emit:e.emit,expose:t}}function qo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ei(_n(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in qn)return qn[n](e)},has(t,n){return n in t||n in qn}})):e.proxy}const Bu=/(?:^|[-_])\w/g,Ru=e=>e.replace(Bu,t=>t.toUpperCase()).replace(/[-_]/g,"");function Zi(e,t=!0){return ne(e)?e.displayName||e.name:e.name||t&&e.__name}function Qi(e,t,n=!1){let o=Zi(t);if(!o&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(o=s[1])}if(!o&&e){const s=r=>{for(const i in r)if(r[i]===t)return i};o=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return o?Ru(o):n?"App":"Anonymous"}function Wu(e){return ne(e)&&"__vccOpts"in e}const re=(e,t)=>kc(e,t,Nn);function ea(e,t,n){try{Go(-1);const o=arguments.length;return o===2?ge(t)&&!Q(t)?Jn(t)?ve(e,null,[t]):ve(e,t):ve(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Jn(n)&&(n=[n]),ve(e,t,n))}finally{Go(1)}}const Uu="3.5.42";/** +`],...Ac(n))}),t}function Ac({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,s=` at <${Qi(e.component,e.type,o)}`,r=">"+n;return e.props?[s,...Ec(e.props),r]:[s+r]}function Ec(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...ti(o,e[o]))}),n.length>3&&t.push(" ..."),t}function ti(e,t,n){return be(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:Ne(t)?(t=ti(e,ue(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):ne(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=ue(t),n?t:[`${e}=`,t])}function yn(e,t,n,o){try{return o?e(...o):e()}catch(s){jn(s,t,n)}}function it(e,t,n,o){if(ne(e)){const s=yn(e,t,n,o);return s&&Os(s)&&s.catch(r=>{jn(r,t,n)}),s}if(Q(e)){const s=[];for(let r=0;r>>1,s=je[o],r=Gn(s);r=Gn(n)?je.push(e):je.splice(Lc(t),0,e),e.flags|=1,oi()}}function oi(){So||(So=ni.then(ii))}function Sc(e){if(!Q(e))Yt&&e.id===-1?Yt.splice(wn+1,0,e):e.flags&1||(vn.push(e),e.flags|=1);else for(let t=0;tGn(n)-Gn(o));if(vn.length=0,Yt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function ii(e){try{for(bt=0;bt{o._d&&Go(-1);const r=Fo(t),i=Ft.length;let a;try{a=e(...s)}finally{for(let l=Ft.length;l>i;l--)Yr();Fo(r),o._d&&Go(1)}return a};return o._n=!0,o._c=!0,o._d=!0,o}function Ic(e,t){if(De===null)return e;const n=qo(De),o=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&ne(t)?t.call(o&&o.proxy):t}}function Fc(){return!!(Pt()||cn)}const xc=Symbol.for("v-scx"),Pc=()=>Ge(xc);function Mc(e,t){return Ar(e,null,t)}function yt(e,t,n){return Ar(e,t,n)}function Ar(e,t,n=_e){const{immediate:o,deep:s,flush:r,once:i}=n,a=Ce({},n),l=t&&o||!t&&r!=="post";let c;if(Nn){if(r==="sync"){const _=Pc();c=_.__watcherHandles||(_.__watcherHandles=[])}else if(!l){const _=()=>{};return _.stop=ft,_.resume=ft,_.pause=ft,_}}const u=Be;a.call=(_,w,$)=>it(_,u,w,$);let f=!1;r==="post"?a.scheduler=_=>{Ve(_,u&&u.suspense)}:r!=="sync"&&(f=!0,a.scheduler=(_,w)=>{w?_():Cr(_)}),a.augmentJob=_=>{t&&(_.flags|=4),f&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const h=Oc(e,t,a);return Nn&&(c?c.push(h):l&&h()),h}function Dc(e,t,n){const o=this.proxy,s=be(e)?e.includes(".")?li(o,e):()=>o[e]:e.bind(o,o);let r;ne(t)?r=t:(r=t.handler,n=t);const i=eo(this),a=Ar(s,r.bind(o),n);return i(),a}function li(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;se.__isTeleport,ln=e=>e&&(e.disabled||e.disabled===""),Bc=e=>e&&(e.defer||e.defer===""),ui=e=>typeof SVGElement<"u"&&e instanceof SVGElement,pi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Er=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Rc={name:"Teleport",__isTeleport:!0,process(e,t,n,o,s,r,i,a,l,c){const{mc:u,pc:f,pbc:h,o:{insert:_,querySelector:w,createText:$,createComment:I,parentNode:N}}=c,L=ln(t.props);let{dynamicChildren:b}=t;const m=(v,O,E)=>{v.shapeFlag&16&&u(v.children,O,E,s,r,i,a,l)},C=(v=t)=>{const O=ln(v.props),E=v.target=Er(v.props,w),X=Tr(E,v,$,_);E&&(i!=="svg"&&ui(E)?i="svg":i!=="mathml"&&pi(E)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(E),O||(m(v,E,X),Yn(v,!1)))},S=v=>{const O=()=>{if(Ht.get(v)===O){if(Ht.delete(v),ln(v.props)){const E=N(v.el)||n;m(v,E,v.anchor),Yn(v,!0)}C(v)}};Ht.set(v,O),Ve(O,r)};if(e==null){const v=t.el=$(""),O=t.anchor=$("");if(_(v,n,o),_(O,n,o),Bc(t.props)||r&&r.pendingBranch){S(t);return}L&&(m(t,n,O),Yn(t,!0)),C()}else{t.el=e.el;const v=t.anchor=e.anchor,O=Ht.get(e);if(O){O.flags|=8,Ht.delete(e),S(t);return}t.targetStart=e.targetStart;const E=t.target=e.target,X=t.targetAnchor=e.targetAnchor,te=ln(e.props),H=te?n:E,se=te?v:X;if(i==="svg"||ui(E)?i="svg":(i==="mathml"||pi(E))&&(i="mathml"),b?(h(e.dynamicChildren,b,H,s,r,i,a),jr(e,t,!0)):l||f(e,t,H,se,s,r,i,a,!1),L)te?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Po(t,n,v,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const he=Er(t.props,w);he&&(t.target=he,Po(t,he,null,c,0))}else te&&Po(t,E,X,c,1);Yn(t,L)}},remove(e,t,n,{um:o,o:{remove:s}},r){const{shapeFlag:i,children:a,anchor:l,targetStart:c,targetAnchor:u,target:f,props:h}=e,_=ln(h),w=r||!_,$=Ht.get(e);if($&&($.flags|=8,Ht.delete(e)),f&&(s(c),s(u)),r&&s(l),!$&&(_||f)&&i&16)for(let I=0;I1){for(const n of e)if(n.type!==vt){t=n;break}}return t}function di(e){if(!Bo(e))return xo(e.type)&&e.children?jc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ne(n.default))return n.default()}}function Sr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Sr(xo(n.type)&&di(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vn(e,t){return ne(e)?Ce({name:e.name},t,{setup:e}):e}function Ir(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function fi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Mo=new WeakMap;function Hn(e,t,n,o,s=!1){if(Q(e)){e.forEach(($,I)=>Hn($,t&&(Q(t)?t[I]:t),n,o,s));return}if(kn(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Hn(e,t,n,o.component.subTree);return}const r=o.shapeFlag&4?qo(o.component):o.el,i=s?null:r,{i:a,r:l}=e,c=t&&t.r,u=a.refs===_e?a.refs={}:a.refs,f=a.setupState,h=ue(f),_=f===_e?ks:$=>fi(u,$)?!1:fe(h,$),w=($,I)=>!(I&&fi(u,I));if(c!=null&&c!==l){if(hi(t),be(c))u[c]=null,_(c)&&(f[c]=null);else if(Ne(c)){const $=t;w(c,$.k)&&(c.value=null),$.k&&(u[$.k]=null)}}if(ne(l))yn(l,a,12,[i,u]);else{const $=be(l),I=Ne(l);if($||I){const N=()=>{if(e.f){const L=$?_(l)?f[l]:u[l]:w()||!e.k?l.value:u[e.k];if(s)Q(L)&&cr(L,r);else if(Q(L))L.includes(r)||L.push(r);else if($)u[l]=[r],_(l)&&(f[l]=u[l]);else{const b=[r];w(l,e.k)&&(l.value=b),e.k&&(u[e.k]=b)}}else $?(u[l]=i,_(l)&&(f[l]=i)):I&&(w(l,e.k)&&(l.value=i),e.k&&(u[e.k]=i))};if(i){const L=()=>{N(),Mo.delete(e)};L.id=-1,Mo.set(e,L),Ve(L,n)}else hi(e),N()}}}function hi(e){const t=Mo.get(e);t&&(t.flags|=8,Mo.delete(e))}const gi=e=>e.nodeType===8;bo().requestIdleCallback,bo().cancelIdleCallback;function Gc(e,t){if(gi(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(gi(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const kn=e=>!!e.type.__asyncLoader;function Yc(e){ne(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:s=200,hydrate:r,timeout:i,suspensible:a=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,_()),_=()=>{let w;return c||(w=c=t().catch($=>{if($=$ instanceof Error?$:new Error(String($)),l)return new Promise((I,N)=>{l($,()=>I(h()),()=>N($),f+1)});throw $}).then($=>w!==c&&c?c:($&&($.__esModule||$[Symbol.toStringTag]==="Module")&&($=$.default),u=$,$)))};return Vn({name:"AsyncComponentWrapper",__asyncLoader:_,__asyncHydrate(w,$,I){const N=w.isConnected;let L=!1;($.bu||($.bu=[])).push(()=>L=!0);const b=()=>{L||!w.parentNode||N&&!w.isConnected||I()},m=r?()=>{const C=r(b,S=>Gc(w,S));C&&($.bum||($.bum=[])).push(C)}:b;u?m():_().then(()=>!$.isUnmounted&&m())},get __asyncResolved(){return u},setup(){const w=Be;if(Ir(w),u)return()=>Do(u,w);const $=C=>{c=null,jn(C,w,13,!o)};if(a&&w.suspense||Nn)return _().then(C=>()=>Do(C,w)).catch(C=>($(C),()=>o?ve(o,{error:C}):null));const I=ie(!1),N=ie(),L=ie(!!s);let b,m;return Wo(()=>{b!=null&&clearTimeout(b),m!=null&&clearTimeout(m)}),s&&(m=setTimeout(()=>{w.isUnmounted||(L.value=!1)},s)),i!=null&&(b=setTimeout(()=>{if(!w.isUnmounted&&!I.value&&!N.value){const C=new Error(`Async component timed out after ${i}ms.`);$(C),N.value=C}},i)),_().then(()=>{w.isUnmounted||(I.value=!0,w.parent&&Bo(w.parent.vnode)&&w.parent.update())}).catch(C=>{if(w.isUnmounted){c=null;return}$(C),N.value=C}),()=>{if(I.value&&u)return Do(u,w);if(N.value&&o)return ve(o,{error:N.value});if(n&&!L.value)return Do(n,w)}}})}function Do(e,t){const{ref:n,props:o,children:s,ce:r}=t.vnode,i=ve(e,o,s);return i.ref=n,i.ce=r,delete t.vnode.ce,i}const Bo=e=>e.type.__isKeepAlive;function Vc(e,t){mi(e,"a",t)}function Hc(e,t){mi(e,"da",t)}function mi(e,t,n=Be){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ro(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Bo(s.parent.vnode)&&qc(o,t,n,s),s=s.parent}}function qc(e,t,n,o){const s=Ro(t,e,o,!0);Wo(()=>{cr(o[t],s)},n)}function Ro(e,t,n=Be,o=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{gt();const a=eo(n),l=it(t,n,e,i);return a(),mt(),l});return o?s.unshift(r):s.push(r),r}}const It=e=>(t,n=Be)=>{(!Nn||e==="sp")&&Ro(e,(...o)=>t(...o),n)},_i=It("bm"),qt=It("m"),zc=It("bu"),Kc=It("u"),$n=It("bum"),Wo=It("um"),Xc=It("sp"),Jc=It("rtg"),Zc=It("rtc");function Qc(e,t=Be){Ro("ec",e,t)}const eu="components",bi=Symbol.for("v-ndc");function yi(e){return be(e)?tu(eu,e,!1)||e:e||bi}function tu(e,t,n=!0,o=!1){const s=De||Be;if(s){const r=s.type;{const a=Zi(r,!1);if(a&&(a===t||a===xe(t)||a===_o(xe(t))))return r}const i=vi(s[e]||r[e],t)||vi(s.appContext[e],t);return!i&&o?r:i}}function vi(e,t){return e&&(e[t]||e[xe(t)]||e[_o(xe(t))])}function lt(e,t,n,o){let s;const r=n,i=Q(e);if(i||be(e)){const a=i&&Tt(e);let l=!1,c=!1;a&&(l=!Xe(e),c=Lt(e),e=wo(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(a,l,void 0,r));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,c=a.length;l0;return Y(),Qe(pe,null,[ve("slot",c,o)],u?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const a=Ft.length;Y();let l;try{const c=i&&wi(i(n)),u=n.key||r||c&&c.key;l=Qe(pe,{key:(u&&!Ke(u)?u:`_${t}`)+(!c&&o?"_fb":"")},c||(o?o():[]),c&&e._===1?64:-2)}catch(c){for(let u=Ft.length;u>a;u--)Yr();throw c}finally{i&&i._c&&(i._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function wi(e){return e.some(t=>Jn(t)?!(t.type===vt||t.type===pe&&!wi(t.children)):!0)?e:null}const xr=e=>e?Ki(e)?qo(e):xr(e.parent):null,qn=Ce(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>xr(e.parent),$root:e=>xr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ni(e),$forceUpdate:e=>e.f||(e.f=()=>{Cr(e.update)}),$nextTick:e=>e.n||(e.n=Io.bind(e.proxy)),$watch:e=>Dc.bind(e)}),Pr=(e,t)=>e!==_e&&!e.__isScriptSetup&&fe(e,t),nu={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:r,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(Pr(o,t))return i[t]=1,o[t];if(s!==_e&&fe(s,t))return i[t]=2,s[t];if(fe(r,t))return i[t]=3,r[t];if(n!==_e&&fe(n,t))return i[t]=4,n[t];Mr&&(i[t]=0)}}const c=qn[t];let u,f;if(c)return t==="$attrs"&&Ue(e.attrs,"get",""),c(e);if((u=a.__cssModules)&&(u=u[t]))return u;if(n!==_e&&fe(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,fe(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;return Pr(s,t)?(s[t]=n,!0):o!==_e&&fe(o,t)?(o[t]=n,!0):fe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,props:r,type:i}},a){let l;return!!(n[a]||e!==_e&&a[0]!=="$"&&fe(e,a)||Pr(t,a)||fe(r,a)||fe(o,a)||fe(qn,a)||fe(s.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:fe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ki(e){return Q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Mr=!0;function ou(e){const t=Ni(e),n=e.proxy,o=e.ctx;Mr=!1,t.beforeCreate&&$i(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:_,updated:w,activated:$,deactivated:I,beforeDestroy:N,beforeUnmount:L,destroyed:b,unmounted:m,render:C,renderTracked:S,renderTriggered:v,errorCaptured:O,serverPrefetch:E,expose:X,inheritAttrs:te,components:H,directives:se,filters:he}=t;if(c&&ru(c,o,null),i)for(const q in i){const le=i[q];ne(le)&&(o[q]=le.bind(n))}if(s){const q=s.call(n,n);ge(q)&&(e.data=No(q))}if(Mr=!0,r)for(const q in r){const le=r[q],Ee=ne(le)?le.bind(n,n):ne(le.get)?le.get.bind(n,n):ft,Nt=!ne(le)&&ne(le.set)?le.set.bind(n):ft,Fe=re({get:Ee,set:Nt});Object.defineProperty(o,q,{enumerable:!0,configurable:!0,get:()=>Fe.value,set:Me=>Fe.value=Me})}if(a)for(const q in a)Oi(a[q],o,n,q);if(l){const q=ne(l)?l.call(n):l;Reflect.ownKeys(q).forEach(le=>{at(le,q[le])})}u&&$i(u,e,"c");function W(q,le){Q(le)?le.forEach(Ee=>q(Ee.bind(n))):le&&q(le.bind(n))}if(W(_i,f),W(qt,h),W(zc,_),W(Kc,w),W(Vc,$),W(Hc,I),W(Qc,O),W(Zc,S),W(Jc,v),W($n,L),W(Wo,m),W(Xc,E),Q(X))if(X.length){const q=e.exposed||(e.exposed={});X.forEach(le=>{Object.defineProperty(q,le,{get:()=>n[le],set:Ee=>n[le]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});C&&e.render===ft&&(e.render=C),te!=null&&(e.inheritAttrs=te),H&&(e.components=H),se&&(e.directives=se),E&&Ir(e)}function ru(e,t,n=ft){Q(e)&&(e=Dr(e));for(const o in e){const s=e[o];let r;ge(s)?"default"in s?r=Ge(s.from||o,s.default,!0):r=Ge(s.from||o):r=Ge(s),Ne(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[o]=r}}function $i(e,t,n){it(Q(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Oi(e,t,n,o){let s=o.includes(".")?li(n,o):()=>n[o];if(be(e)){const r=t[e];ne(r)&&yt(s,r)}else if(ne(e))yt(s,e.bind(n));else if(ge(e))if(Q(e))e.forEach(r=>Oi(r,t,n,o));else{const r=ne(e.handler)?e.handler.bind(n):t[e.handler];ne(r)&&yt(s,r,e)}}function Ni(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,a=r.get(t);let l;return a?l=a:!s.length&&!n&&!o?l=t:(l={},s.length&&s.forEach(c=>Uo(l,c,i,!0)),Uo(l,t,i)),ge(t)&&r.set(t,l),l}function Uo(e,t,n,o=!1){const{mixins:s,extends:r}=t;r&&Uo(e,r,n,!0),s&&s.forEach(i=>Uo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const a=su[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const su={data:Ci,props:Ai,emits:Ai,methods:zn,computed:zn,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:zn,directives:zn,watch:au,provide:Ci,inject:iu};function Ci(e,t){return t?e?function(){return Ce(ne(e)?e.call(this,this):e,ne(t)?t.call(this,this):t)}:t:e}function iu(e,t){return zn(Dr(e),Dr(t))}function Dr(e){if(Q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xe(t)}Modifiers`]||e[`${tt(t)}Modifiers`];function pu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||_e;let s=n;const r=t.startsWith("update:"),i=r&&uu(o,t.slice(7));i&&(i.trim&&(s=n.map(u=>be(u)?u.trim():u)),i.number&&(s=s.map(Gl)));let a,l=o[a=ur(t)]||o[a=ur(xe(t))];!l&&r&&(l=o[a=ur(tt(t))]),l&&it(l,e,6,s);const c=o[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,it(c,e,6,s)}}const du=new WeakMap;function Ti(e,t,n=!1){const o=n?du:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const r=e.emits;let i={},a=!1;if(!ne(e)){const l=c=>{const u=Ti(c,t,!0);u&&(a=!0,Ce(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!a?(ge(e)&&o.set(e,null),null):(Q(r)?r.forEach(l=>i[l]=null):Ce(i,r),ge(e)&&o.set(e,i),i)}function jo(e,t){return!e||!uo(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),fe(e,t[0].toLowerCase()+t.slice(1))||fe(e,tt(t))||fe(e,t))}function C_(){}function Li(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[r],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:f,data:h,setupState:_,ctx:w,inheritAttrs:$}=e,I=Fo(e);let N,L;try{if(n.shapeFlag&4){const m=s||o,C=m;N=wt(c.call(C,m,u,f,_,h,w)),L=a}else{const m=t;N=wt(m.length>1?m(f,{attrs:a,slots:i,emit:l}):m(f,null)),L=t.props?a:fu(a)}}catch(m){Ft.length=0,jn(m,e,1),N=ve(vt)}let b=N;if(L&&$!==!1){const m=Object.keys(L),{shapeFlag:C}=b;m.length&&C&7&&(r&&m.some(po)&&(L=hu(L,r)),b=On(b,L,!1,!0))}if(n.dirs&&(b=On(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition){const m=xo(b.type)&&di(b)||b;Sr(m,n.transition)}return N=b,Fo(I),N}const fu=e=>{let t;for(const n in e)(n==="class"||n==="style"||uo(n))&&((t||(t={}))[n]=e[n]);return t},hu=(e,t)=>{const n={};for(const o in e)(!po(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function gu(e,t,n){const{props:o,children:s,component:r}=e,{props:i,children:a,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Si(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(Fi),Pi=e=>Object.getPrototypeOf(e)===Fi;function _u(e,t,n,o=!1){const s={},r=xi();e.propsDefaults=Object.create(null),Mi(e,t,s,r);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=o?s:gc(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function bu(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:i}}=e,a=ue(s),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,_]=Di(f,t,!0);Ce(i,h),_&&a.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return ge(e)&&o.set(e,gn),gn;if(Q(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Wr=e=>Q(e)?e.map(wt):[wt(e)],vu=(e,t,n)=>{if(t._n)return t;const o=Vt((...s)=>Wr(t(...s)),n);return o._c=!1,o},Ri=(e,t,n)=>{const o=e._ctx;for(const s in e){if(Rr(s))continue;const r=e[s];if(ne(r))t[s]=vu(s,r,o);else if(r!=null){const i=Wr(r);t[s]=()=>i}}},Wi=(e,t)=>{const n=Wr(t);e.slots.default=()=>n},Ui=(e,t,n)=>{for(const o in t)(n||!Rr(o))&&(e[o]=t[o])},wu=(e,t,n)=>{const o=e.slots=xi();if(e.vnode.shapeFlag&32){const s=t._;s?(Ui(o,t,n),n&&Cs(o,"_",s,!0)):Ri(t,o)}else t&&Wi(e,t)},ku=(e,t,n)=>{const{vnode:o,slots:s}=e;let r=!0,i=_e;if(o.shapeFlag&32){const a=t._;a?n&&a===1?r=!1:Ui(s,t,n):(r=!t.$stable,Ri(t,s)),i=t}else t&&(Wi(e,t),i={default:1});if(r)for(const a in s)!Rr(a)&&i[a]==null&&delete s[a]},Ve=Au;function $u(e){return Ou(e)}function Ou(e,t){const n=bo();n.__VUE__=!0;const{insert:o,remove:s,patchProp:r,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:_=ft,insertStaticContent:w}=e,$=(g,k,y,F=null,B=null,D=null,j=void 0,U=null,p=!!k.dynamicChildren)=>{if(g===k)return;g&&!Zn(g,k)&&(F=Ut(g),Me(g,B,D,!0),g=null),k.patchFlag===-2&&(p=!1,k.dynamicChildren=null);const{type:d,ref:T,shapeFlag:x}=k;switch(d){case Kn:I(g,k,y,F);break;case vt:N(g,k,y,F);break;case Gr:g==null&&L(k,y,F,j);break;case pe:H(g,k,y,F,B,D,j,U,p);break;default:x&1?C(g,k,y,F,B,D,j,U,p):x&6?se(g,k,y,F,B,D,j,U,p):(x&64||x&128)&&d.process(g,k,y,F,B,D,j,U,p,ot)}T!=null&&B?Hn(T,g&&g.ref,D,k||g,!k):T==null&&g&&g.ref!=null&&Hn(g.ref,null,D,g,!0)},I=(g,k,y,F)=>{if(g==null)o(k.el=a(k.children),y,F);else{const B=k.el=g.el;k.children!==g.children&&c(B,k.children)}},N=(g,k,y,F)=>{g==null?o(k.el=l(k.children||""),y,F):k.el=g.el},L=(g,k,y,F)=>{[g.el,g.anchor]=w(g.children,k,y,F,g.el,g.anchor)},b=({el:g,anchor:k},y,F)=>{let B;for(;g&&g!==k;)B=h(g),o(g,y,F),g=B;o(k,y,F)},m=({el:g,anchor:k})=>{let y;for(;g&&g!==k;)y=h(g),s(g),g=y;s(k)},C=(g,k,y,F,B,D,j,U,p)=>{if(k.type==="svg"?j="svg":k.type==="math"&&(j="mathml"),g==null)S(k,y,F,B,D,j,U,p);else{const d=g.el&&g.el._isVueCE?g.el:null;try{d&&d._beginPatch(),E(g,k,B,D,j,U,p)}finally{d&&d._endPatch()}}},S=(g,k,y,F,B,D,j,U)=>{let p,d;const{props:T,shapeFlag:x,transition:G,dirs:R}=g;if(p=g.el=i(g.type,D,T&&T.is,T),x&8?u(p,g.children):x&16&&O(g.children,p,null,F,B,Ur(g,D),j,U),R&&an(g,null,F,"created"),v(p,g,g.scopeId,j,F),T){for(const M in T)M!=="value"&&!xn(M)&&r(p,M,null,T[M],D,F);"value"in T&&r(p,"value",null,T.value,D),(d=T.onVnodeBeforeMount)&&kt(d,F,g)}R&&an(g,null,F,"beforeMount");const A=Nu(B,G);A&&G.beforeEnter(p),o(p,k,y),((d=T&&T.onVnodeMounted)||A||R)&&Ve(()=>{try{d&&kt(d,F,g),A&&G.enter(p),R&&an(g,null,F,"mounted")}finally{}},B)},v=(g,k,y,F,B)=>{if(y&&_(g,y),F)for(let D=0;D{for(let d=p;d{const U=k.el=g.el;let{patchFlag:p,dynamicChildren:d,dirs:T}=k;p|=g.patchFlag&16;const x=g.props||_e,G=k.props||_e;let R;if(y&&un(y,!1),(R=G.onVnodeBeforeUpdate)&&kt(R,y,k,g),T&&an(k,g,y,"beforeUpdate"),y&&un(y,!0),d&&(!g.dynamicChildren||g.dynamicChildren.length!==d.length)&&(p=0,j=!1,d=null),(x.innerHTML&&G.innerHTML==null||x.textContent&&G.textContent==null)&&u(U,""),d?X(g.dynamicChildren,d,U,y,F,Ur(k,B),D):j||le(g,k,U,null,y,F,Ur(k,B),D,!1),p>0){if(p&16)te(U,x,G,y,B);else if(p&2&&x.class!==G.class&&r(U,"class",null,G.class,B),p&4&&r(U,"style",x.style,G.style,B),p&8){const A=k.dynamicProps;for(let M=0;M{R&&kt(R,y,k,g),T&&an(k,g,y,"updated")},F)},X=(g,k,y,F,B,D,j)=>{for(let U=0;U{if(k!==y){if(k!==_e)for(const D in k)!xn(D)&&!(D in y)&&r(g,D,k[D],null,B,F);for(const D in y){if(xn(D))continue;const j=y[D],U=k[D];j!==U&&D!=="value"&&r(g,D,U,j,B,F)}"value"in y&&r(g,"value",k.value,y.value,B)}},H=(g,k,y,F,B,D,j,U,p)=>{const d=k.el=g?g.el:a(""),T=k.anchor=g?g.anchor:a("");let{patchFlag:x,dynamicChildren:G,slotScopeIds:R}=k;R&&(U=U?U.concat(R):R),g==null?(o(d,y,F),o(T,y,F),O(k.children||[],y,T,B,D,j,U,p)):x>0&&x&64&&G&&g.dynamicChildren&&g.dynamicChildren.length===G.length?(X(g.dynamicChildren,G,y,B,D,j,U),(k.key!=null||B&&k===B.subTree)&&jr(g,k,!0)):le(g,k,y,T,B,D,j,U,p)},se=(g,k,y,F,B,D,j,U,p)=>{k.slotScopeIds=U,g==null?k.shapeFlag&512?B.ctx.activate(k,y,F,j,p):he(k,y,F,B,D,j,p):K(g,k,p)},he=(g,k,y,F,B,D,j)=>{const U=g.component=Fu(g,F,B);if(Bo(g)&&(U.ctx.renderer=ot),xu(U,!1,j),U.asyncDep){if(B&&B.registerDep(U,W,j),!g.el){const p=U.subTree=ve(vt);N(null,p,k,y),g.placeholder=p.el}}else W(U,g,k,y,B,D,j)},K=(g,k,y)=>{const F=k.component=g.component;if(gu(g,k,y))if(F.asyncDep&&!F.asyncResolved){q(F,k,y);return}else F.next=k,F.update();else k.el=g.el,F.vnode=k},W=(g,k,y,F,B,D,j)=>{const U=()=>{if(g.isMounted){let{next:x,bu:G,u:R,parent:A,vnode:M}=g;{const We=ji(g);if(We){x&&(x.el=M.el,q(g,x,j)),We.asyncDep.then(()=>{Ve(()=>{g.isUnmounted||d()},B)});return}}let J=x,ae;un(g,!1),x?(x.el=M.el,q(g,x,j)):x=M,G&&pr(G),(ae=x.props&&x.props.onVnodeBeforeUpdate)&&kt(ae,A,x,M),un(g,!0);const ke=Li(g),qe=g.subTree;g.subTree=ke,$(qe,ke,f(qe.el),Ut(qe),g,B,D),x.el=ke.el,J===null&&mu(g,ke.el),R&&Ve(R,B),(ae=x.props&&x.props.onVnodeUpdated)&&Ve(()=>kt(ae,A,x,M),B)}else{let x;const{el:G,props:R}=k,{bm:A,m:M,parent:J,root:ae,type:ke}=g,qe=kn(k);un(g,!1),A&&pr(A),!qe&&(x=R&&R.onVnodeBeforeMount)&&kt(x,J,k),un(g,!0);{ae.ce&&ae.ce._hasShadowRoot()&&ae.ce._injectChildStyle(ke,g.parent?g.parent.type:void 0);const We=g.subTree=Li(g);$(null,We,y,F,g,B,D),k.el=We.el}if(M&&Ve(M,B),!qe&&(x=R&&R.onVnodeMounted)){const We=k;Ve(()=>kt(x,J,We),B)}(k.shapeFlag&256||J&&kn(J.vnode)&&J.vnode.shapeFlag&256)&&g.a&&Ve(g.a,B),g.isMounted=!0,k=y=F=null}};g.scope.on();const p=g.effect=new Ps(U);g.scope.off();const d=g.update=p.run.bind(p),T=g.job=p.runIfDirty.bind(p);T.i=g,T.id=g.uid,p.scheduler=()=>Cr(T),un(g,!0),d()},q=(g,k,y)=>{k.component=g;const F=g.vnode.props;g.vnode=k,g.next=null,bu(g,k.props,F,y),ku(g,k.children,y),gt(),ri(g),mt()},le=(g,k,y,F,B,D,j,U,p=!1)=>{const d=g&&g.children,T=g?g.shapeFlag:0,x=k.children,{patchFlag:G,shapeFlag:R}=k;if(G>0){if(G&128){Nt(d,x,y,F,B,D,j,U,p);return}else if(G&256){Ee(d,x,y,F,B,D,j,U,p);return}}R&8?(T&16&&dt(d,B,D),x!==d&&u(y,x)):T&16?R&16?Nt(d,x,y,F,B,D,j,U,p):dt(d,B,D,!0):(T&8&&u(y,""),R&16&&O(x,y,F,B,D,j,U,p))},Ee=(g,k,y,F,B,D,j,U,p)=>{g=g||gn,k=k||gn;const d=g.length,T=k.length,x=Math.min(d,T);let G;for(G=0;GT?dt(g,B,D,!0,!1,x):O(k,y,F,B,D,j,U,p,x)},Nt=(g,k,y,F,B,D,j,U,p)=>{let d=0;const T=k.length;let x=g.length-1,G=T-1;for(;d<=x&&d<=G;){const R=g[d],A=k[d]=p?xt(k[d]):wt(k[d]);if(Zn(R,A))$(R,A,y,null,B,D,j,U,p);else break;d++}for(;d<=x&&d<=G;){const R=g[x],A=k[G]=p?xt(k[G]):wt(k[G]);if(Zn(R,A))$(R,A,y,null,B,D,j,U,p);else break;x--,G--}if(d>x){if(d<=G){const R=G+1,A=RG)for(;d<=x;)Me(g[d],B,D,!0),d++;else{const R=d,A=d,M=new Map;for(d=A;d<=G;d++){const et=k[d]=p?xt(k[d]):wt(k[d]);et.key!=null&&M.set(et.key,d)}let J,ae=0;const ke=G-A+1;let qe=!1,We=0;const hn=new Array(ke);for(d=0;d=ke){Me(et,B,D,!0);continue}let Ct;if(et.key!=null)Ct=M.get(et.key);else for(J=A;J<=G;J++)if(hn[J-A]===0&&Zn(et,k[J])){Ct=J;break}Ct===void 0?Me(et,B,D,!0):(hn[Ct-A]=d+1,Ct>=We?We=Ct:qe=!0,$(et,k[Ct],y,null,B,D,j,U,p),ae++)}const ws=qe?Cu(hn):gn;for(J=ws.length-1,d=ke-1;d>=0;d--){const et=A+d,Ct=k[et],Dl=k[et+1],Bl=et+1{const{el:D,type:j,transition:U,children:p,shapeFlag:d}=g;if(d&6){Fe(g.component.subTree,k,y,F);return}if(d&128){g.suspense.move(k,y,F);return}if(d&64){j.move(g,k,y,ot);return}if(j===pe){o(D,k,y);for(let x=0;xU.enter(D),B));else{const{leave:x,delayLeave:G,afterLeave:R}=U,A=()=>{g.ctx.isUnmounted?s(D):o(D,k,y)},M=()=>{const J=D._isLeaving||!!D[Lr];D._isLeaving&&D[Lr](!0),U.persisted&&!J?A():x(D,()=>{A(),R&&R()})};G?G(D,A,M):M()}else o(D,k,y)},Me=(g,k,y,F=!1,B=!1)=>{const{type:D,props:j,ref:U,children:p,dynamicChildren:d,shapeFlag:T,patchFlag:x,dirs:G,cacheIndex:R,memo:A}=g;if(x===-2&&(B=!1),U!=null&&(gt(),Hn(U,null,y,g,!0),mt()),R!=null&&(k.renderCache[R]=void 0),T&256){k.ctx.deactivate(g);return}const M=T&1&&G,J=!kn(g);let ae;if(J&&(ae=j&&j.onVnodeBeforeUnmount)&&kt(ae,k,g),T&6)fn(g.component,y,F);else{if(T&128){g.suspense.unmount(y,F);return}M&&an(g,null,k,"beforeUnmount"),T&64?g.type.remove(g,k,y,ot,F):d&&!d.hasOnce&&(D!==pe||x>0&&x&64)?dt(d,k,y,!1,!0):(D===pe&&x&384||!B&&T&16)&&dt(p,k,y),F&&tn(g)}const ke=A!=null&&R==null;(J&&(ae=j&&j.onVnodeUnmounted)||M||ke)&&Ve(()=>{ae&&kt(ae,k,g),M&&an(g,null,k,"unmounted"),ke&&(g.el=null)},y)},tn=g=>{const{type:k,el:y,anchor:F,transition:B}=g;if(k===pe){nn(y,F);return}if(k===Gr){m(g);return}const D=()=>{s(y),B&&!B.persisted&&B.afterLeave&&B.afterLeave()};if(g.shapeFlag&1&&B&&!B.persisted){const{leave:j,delayLeave:U}=B,p=()=>j(y,D);U?U(g.el,D,p):p()}else D()},nn=(g,k)=>{let y;for(;g!==k;)y=h(g),s(g),g=y;s(k)},fn=(g,k,y)=>{const{bum:F,scope:B,job:D,subTree:j,um:U,m:p,a:d}=g;Gi(p),Gi(d),F&&pr(F),B.stop(),D&&(D.flags|=8,Me(j,g,k,y)),U&&Ve(U,k),Ve(()=>{g.isUnmounted=!0},k)},dt=(g,k,y,F=!1,B=!1,D=0)=>{for(let j=D;j{if(g.shapeFlag&6)return Ut(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const k=h(g.anchor||g.el),y=k&&k[ci];return y?h(y):k};let jt=!1;const on=(g,k,y)=>{let F;g==null?k._vnode&&(Me(k._vnode,null,null,!0),F=k._vnode.component):$(k._vnode||null,g,k,null,null,null,y),k._vnode=g,jt||(jt=!0,ri(F),si(),jt=!1)},ot={p:$,um:Me,m:Fe,r:tn,mt:he,mc:O,pc:le,pbc:X,n:Ut,o:e};return{render:on,hydrate:void 0,createApp:cu(on)}}function Ur({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function un({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Nu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function jr(e,t,n=!1){const o=e.children,s=t.children;if(Q(o)&&Q(s))for(let r=0;r>1,e[n[a]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}function ji(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ji(t)}function Gi(e){if(e)for(let t=0;te.__isSuspense;function Au(e,t){t&&t.pendingBranch?Q(e)?t.effects.push(...e):t.effects.push(e):Sc(e)}const pe=Symbol.for("v-fgt"),Kn=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Gr=Symbol.for("v-stc"),Ft=[];let Ze=null;function Y(e=!1){Ft.push(Ze=e?null:[])}function Yr(){Ft.pop(),Ze=Ft[Ft.length-1]||null}let Xn=1;function Go(e,t=!1){Xn+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Hi(e){return e.dynamicChildren=Xn>0?Ze||gn:null,Yr(),Xn>0&&Ze&&Ze.push(e),e}function z(e,t,n,o,s,r){return Hi(P(e,t,n,o,s,r,!0))}function Qe(e,t,n,o,s){return Hi(ve(e,t,n,o,s,!0))}function Jn(e){return e?e.__v_isVNode===!0:!1}function Zn(e,t){return e.type===t.type&&e.key===t.key}const qi=({key:e})=>e??null,Yo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Ne(e)||ne(e)?{i:De,r:e,k:t,f:!!n}:e:null);function P(e,t=null,n=null,o=0,s=null,r=e===pe?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qi(t),ref:t&&Yo(t),scopeId:ai,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:De};return a?(Vo(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=be(n)?8:16),Xn>0&&!i&&Ze&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ze.push(l),l}const ve=Eu;function Eu(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===bi)&&(e=vt),Jn(e)){const a=On(e,t,!0);return n&&Vo(a,n),Xn>0&&!r&&Ze&&(a.shapeFlag&6?Ze[Ze.indexOf(e)]=a:Ze.push(a)),a.patchFlag=-2,a}if(Wu(e)&&(e=e.__vccOpts),t){t=Tu(t);let{class:a,style:l}=t;a&&!be(a)&&(t.class=Te(a)),ge(l)&&(Ao(l)&&!Q(l)&&(l=Ce({},l)),t.style=Pn(l))}const i=be(e)?1:Vi(e)?128:xo(e)?64:ge(e)?4:ne(e)?2:0;return P(e,t,n,o,s,i,r,!0)}function Tu(e){return e?Ao(e)||Pi(e)?Ce({},e):e:null}function On(e,t,n=!1,o=!1){const{props:s,ref:r,patchFlag:i,children:a,transition:l}=e,c=t?Lu(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&qi(c),ref:t&&t.ref?n&&r?Q(r)?r.concat(Yo(t)):[r,Yo(t)]:Yo(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pe?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&On(e.ssContent),ssFallback:e.ssFallback&&On(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&Sr(u,l.clone(u)),u}function $e(e=" ",t=0){return ve(Kn,null,e,t)}function Le(e="",t=!1){return t?(Y(),Qe(vt,null,e)):ve(vt,null,e)}function wt(e){return e==null||typeof e=="boolean"?ve(vt):Q(e)?ve(pe,null,e.slice()):Jn(e)?xt(e):ve(Kn,null,String(e))}function xt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:On(e)}function Vo(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(Q(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),Vo(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Pi(t)?t._ctx=De:s===3&&De&&(De.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(ne(t)){if(o&65){Vo(e,{default:t});return}t={default:t,_ctx:De},n=32}else t=String(t),o&64?(n=16,t=[$e(t)]):n=8;e.children=t,e.shapeFlag|=n}function Lu(...e){const t={};for(let n=0;nBe||De;let Ho,Qn;{const e=bo(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),r=>{s.length>1?s.forEach(i=>i(r)):s[0](r)}};Ho=t("__VUE_INSTANCE_SETTERS__",n=>Be=n),Qn=t("__VUE_SSR_SETTERS__",n=>Nn=n)}const eo=e=>{const t=Be;return Ho(e),e.scope.on(),()=>{e.scope.off(),Ho(t)}},zi=()=>{Be&&Be.scope.off(),Ho(null)};function Ki(e){return e.vnode.shapeFlag&4}let Nn=!1;function xu(e,t=!1,n=!1){t&&Qn(t);const{props:o,children:s}=e.vnode,r=Ki(e);_u(e,o,r,t),wu(e,s,n||t);const i=r?Pu(e,t):void 0;return t&&Qn(!1),i}function Pu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,nu);const{setup:o}=n;if(o){gt();const s=e.setupContext=o.length>1?Du(e):null,r=eo(e),i=yn(o,e,0,[e.props,s]),a=Os(i);if(mt(),r(),(a||e.sp)&&!kn(e)&&Ir(e),a){if(i.then(zi,zi),t)return i.then(l=>{Qn(!0);try{Xi(e,l,t)}finally{Qn(!1)}}).catch(l=>{jn(l,e,0)});e.asyncDep=i}else Xi(e,i)}else Ji(e)}function Xi(e,t,n){ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=ei(t)),Ji(e)}function Ji(e,t,n){const o=e.type;e.render||(e.render=o.render||ft);{const s=eo(e);gt();try{ou(e)}finally{mt(),s()}}}const Mu={get(e,t){return Ue(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Mu),slots:e.slots,emit:e.emit,expose:t}}function qo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ei(_n(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in qn)return qn[n](e)},has(t,n){return n in t||n in qn}})):e.proxy}const Bu=/(?:^|[-_])\w/g,Ru=e=>e.replace(Bu,t=>t.toUpperCase()).replace(/[-_]/g,"");function Zi(e,t=!0){return ne(e)?e.displayName||e.name:e.name||t&&e.__name}function Qi(e,t,n=!1){let o=Zi(t);if(!o&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(o=s[1])}if(!o&&e){const s=r=>{for(const i in r)if(r[i]===t)return i};o=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return o?Ru(o):n?"App":"Anonymous"}function Wu(e){return ne(e)&&"__vccOpts"in e}const re=(e,t)=>kc(e,t,Nn);function ea(e,t,n){try{Go(-1);const o=arguments.length;return o===2?ge(t)&&!Q(t)?Jn(t)?ve(e,null,[t]):ve(e,t):ve(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Jn(n)&&(n=[n]),ve(e,t,n))}finally{Go(1)}}const Uu="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT @@ -67,7 +66,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(l,c)=>r.value?(Y(),z("div",{key:0,class:Te(["pin-hint",{dark:o.value}]),role:"status"},[P("span",Ng,[c[0]||(c[0]=P("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),$e(" "+Z(s.value)+" ",1),P("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:a},"×")])],2)):Le("",!0)}};let Ag=0;const Eg=Zr("ui",{state:()=>({_storeInstanceId:++Ag,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(n=>n.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const n=this.isDarkTheme;document.documentElement.setAttribute("data-theme",n?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:n="info",duration:o=this.toastDuration,action:s=null,persistent:r=!1}=e,i={id:this.nextToastId++,message:t,type:n,duration:o,action:s,persistent:r,createdAt:Date.now()};return this.toasts.push(i),!r&&o>0&&setTimeout(()=>{this.removeToast(i.id)},o),i.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(n=>n.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(n=>{for(const o of n)this.updateWindowSize(o.contentRect.width,o.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",n.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",n=>{this.reducedMotion=n.matches,document.documentElement.setAttribute("data-reduced-motion",n.matches)}))}}}),Tg=Zr("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,n={}){let o=1.5;n.zoom!==void 0?o=n.zoom:t&&typeof t.getZoom=="function"&&(o=t.getZoom());let s=[0,0];if(n.center)s=n.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(s=[r.lng,r.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:s,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const n=this.maps[e];n&&Object.assign(n,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Lg=Zr("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const n=await t();this.sources[e]=_n({features:n,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(n){console.error(`[dataStore] Failed to load source "${e}":`,n),this.loadingStates[e]={isLoading:!1,error:n}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=_n({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var n;return((n=e.sources[t])==null?void 0:n.features)??null},isLoading:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.isLoading)??!1},getError:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.error)??null}}}),Sg={activeSource:"pray-tools"},Ig=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},Fg={class:"profile-loader"},xg={key:0,class:"profile-error"},Pg={key:1,class:"profile-error"},Mg=Ig({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var b;const n=e,o=re(()=>{if(!n.profileConfig)return null;try{return JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}}),s=re(()=>{var m;return((m=o.value)==null?void 0:m.profile)||null}),r=re(()=>{var m;return((m=o.value)==null?void 0:m.tk)||""}),i=re(()=>{var m;return((m=o.value)==null?void 0:m.dataSource)||Sg.activeSource}),a=re(()=>{var m;return((m=o.value)==null?void 0:m.colorSet)||"default"}),l=re(()=>!1),c=re(()=>{var m;return((m=o.value)==null?void 0:m.pinHint)!==!1}),u=re(()=>{var C,S;const m=(((C=o.value)==null?void 0:C.locale)||((S=o.value)==null?void 0:S.lang)||"").split("-")[0].toLowerCase();return Ml.includes(m)?m:""}),f=Ge("appI18n",null);Mc(()=>{u.value&&f&&(f.global.locale.value=u.value)});const h=re(()=>{var m,C;return u.value||((C=(m=f==null?void 0:f.global)==null?void 0:m.locale)==null?void 0:C.value)||"en"}),_=re(()=>{var m;return((m=o.value)==null?void 0:m.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),w=Ge("profileModules",null);if(!w)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const $=re(()=>{if(!s.value)return null;const m=`./${s.value}.vue`;return w[m]?Yc(w[m]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(w)),null)});at("mapboxToken",r),at("dataSource",i),at("colorSet",a),at("profileConfig",o),at("instanceId",_),at("lang",h);const I=Eg(),N=Tg(),L=Lg();try{const m=typeof localStorage<"u"?localStorage.getItem("theme"):null;m&&((b=I.setTheme)==null||b.call(I,m))}catch{}return at("uiStore",I),at("mapStore",N),at("dataStore",L),(m,C)=>(Y(),z("div",Fg,[o.value?$.value?(Y(),Qe(yi($.value),{key:2})):(Y(),z("div",Pg,[P("p",null,[C[1]||(C[1]=$e("⚠️ Profile ",-1)),P("strong",null,'"'+Z(s.value)+'"',1),C[2]||(C[2]=$e(" not found.",-1))])])):(Y(),z("div",xg,[...C[0]||(C[0]=[P("p",null,[$e("⚠️ "),P("strong",null,"doxa-map"),$e(": missing or invalid "),P("code",null,"profile-config"),$e(" prop.")],-1),P("p",null,[$e("Example: "),P("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),$.value&&l.value?(Y(),Qe(yi(Je(null)),{key:3})):Le("",!0),$.value&&c.value?(Y(),Qe(Cg,{key:4})):Le("",!0)]))}},[["__scopeId","data-v-50211124"]]),Dg=Object.assign({"./connectivity-list.vue":()=>ar(()=>Promise.resolve().then(()=>em),void 0),"./connectivity-map.vue":()=>ar(()=>Promise.resolve().then(()=>Km),void 0),"./data-tables.vue":()=>ar(()=>Promise.resolve().then(()=>b_),void 0)});function Bg(){return pp(Mg,{configureApp(e){e.use(vp()),e.use($g()),e.provide("profileModules",Dg)}})}const Rg=Bg();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",Rg));const Wg={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},Ug={class:"ci-tot"},jg={class:"ci-chip"},Gg={class:"ci-chip"},Yg={class:"ci-chip"},Vg={class:"ci-chip"},Hg=["onClick"],qg={class:"sec-name"},zg={class:"sec-meta"},Kg={class:"r-name"},Xg={class:"r-sub"},Jg={class:"r-num"},Zg={class:"r-sub"},Qg={class:"r-num"},em=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=Ge("profileConfig",ie(null)),n=re(()=>{var f;return((f=t.value)==null?void 0:f.isDark)===!0}),o=re(()=>Wg.countries||[]),s=re(()=>{const f=new Map;for(const h of o.value){const _=h.region||"Other";f.has(_)||f.set(_,[]),f.get(_).push(h)}return[...f.entries()].map(([h,_])=>({name:h,items:_.slice().sort((w,$)=>$.people_groups-w.people_groups),groups:_.reduce((w,$)=>w+$.people_groups,0),unknown:_.filter(w=>w.internet_access==="unknown").length})).sort((h,_)=>_.groups-h.groups)}),r=ie({}),i=f=>!!r.value[f],a=f=>{r.value={...r.value,[f]:!r.value[f]}},l=re(()=>{const f=o.value;return{countries:f.length,resolved:f.filter(h=>h.internet_access!=="unknown").length,unknown:f.filter(h=>h.internet_access==="unknown").length,low:f.filter(h=>h.internet_access==="no").length}}),c=f=>f==="yes"?"ok":f==="partial"?"mid":f==="no"?"low":"unk",u=f=>f==="yes"?"connected":f==="partial"?"partial":f==="no"?"low":"unknown";return Wt(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(f,h)=>(Y(),z("div",{class:Te(["ci",{"is-dark":n.value}])},[h[1]||(h[1]=P("h2",{class:"ci-h"},"Cities with Internet",-1)),h[2]||(h[2]=P("p",{class:"ci-sub"},[$e(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),P("strong",null,"unknown means unmeasured, never assumed"),$e(". ")],-1)),P("div",Ug,[P("span",jg,Z(l.value.countries)+" countries",1),P("span",Gg,Z(l.value.resolved)+" measured",1),P("span",Yg,Z(l.value.unknown)+" unknown",1),P("span",Vg,Z(l.value.low)+" low-connectivity",1)]),(Y(!0),z(pe,null,lt(s.value,_=>(Y(),z("section",{key:_.name,class:"sec"},[P("button",{type:"button",class:"sec-head",onClick:w=>a(_.name)},[P("span",{class:Te(["sec-caret",{open:!i(_.name)}])},"▶",2),P("h3",qg,Z(_.name),1),P("span",zg,[$e(Z(_.items.length)+" countries · "+Z(_.groups.toLocaleString())+" people groups ",1),_.unknown?(Y(),z(pe,{key:0},[$e(" · "+Z(_.unknown)+" unmeasured",1)],64)):Le("",!0)])],8,Hg),Ic(P("div",null,[(Y(!0),z(pe,null,lt(_.items,w=>(Y(),z("div",{key:w.iso3,class:"row"},[P("div",null,[P("div",Kg,Z(w.country),1),P("div",Xg,[$e(Z(w.people_groups)+" people groups · "+Z(w.clusters)+" locations ",1),w.multi?(Y(),z(pe,{key:0},[$e(" · "+Z(w.multi)+" population centres",1)],64)):Le("",!0)])]),P("div",Jg,[w.internet_pct!==null&&w.internet_pct!==void 0?(Y(),z(pe,{key:0},[$e(Z(w.internet_pct)+"% ",1),P("div",Zg,Z(w.internet_year),1)],64)):(Y(),z(pe,{key:1},[$e("—")],64))]),P("div",Qg,[w.mobile_per_100!==null&&w.mobile_per_100!==void 0?(Y(),z(pe,{key:0},[$e(Z(w.mobile_per_100)+" ",1),h[0]||(h[0]=P("div",{class:"r-sub"},"mob/100",-1))],64)):(Y(),z(pe,{key:1},[$e("—")],64))]),P("span",{class:Te(["pill",c(w.internet_access)])},Z(u(w.internet_access)),3)]))),128))],512),[[qu,!i(_.name)]])]))),128)),h[3]||(h[3]=P("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),bs={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function tm(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:n=!0,basemap:o=!0}=t,s=document.createElement("div");s.className="doxa-attribution mapboxgl-ctrl",s.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];n&&r.push(bs.boundaries),o&&(r.push(bs.mapbox),r.push(bs.osm)),s.innerHTML=r.map(a=>`${a.label}`).join(" · ");const i={onAdd:()=>s,onRemove:()=>{s.parentNode&&s.parentNode.removeChild(s)},getDefaultPosition:()=>"bottom-right"};return e.addControl(i,"bottom-right"),i}const nm={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=ie(null);return at("mapToolbar",{el:t}),Wt(` +`,"pin-hint"),(l,c)=>r.value?(Y(),z("div",{key:0,class:Te(["pin-hint",{dark:o.value}]),role:"status"},[P("span",Ng,[c[0]||(c[0]=P("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),$e(" "+Z(s.value)+" ",1),P("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:a},"×")])],2)):Le("",!0)}};let Ag=0;const Eg=Zr("ui",{state:()=>({_storeInstanceId:++Ag,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(n=>n.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const n=this.isDarkTheme;document.documentElement.setAttribute("data-theme",n?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:n="info",duration:o=this.toastDuration,action:s=null,persistent:r=!1}=e,i={id:this.nextToastId++,message:t,type:n,duration:o,action:s,persistent:r,createdAt:Date.now()};return this.toasts.push(i),!r&&o>0&&setTimeout(()=>{this.removeToast(i.id)},o),i.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(n=>n.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(n=>{for(const o of n)this.updateWindowSize(o.contentRect.width,o.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",n.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",n=>{this.reducedMotion=n.matches,document.documentElement.setAttribute("data-reduced-motion",n.matches)}))}}}),Tg=Zr("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,n={}){let o=1.5;n.zoom!==void 0?o=n.zoom:t&&typeof t.getZoom=="function"&&(o=t.getZoom());let s=[0,0];if(n.center)s=n.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(s=[r.lng,r.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:s,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const n=this.maps[e];n&&Object.assign(n,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Lg=Zr("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const n=await t();this.sources[e]=_n({features:n,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(n){console.error(`[dataStore] Failed to load source "${e}":`,n),this.loadingStates[e]={isLoading:!1,error:n}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=_n({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var n;return((n=e.sources[t])==null?void 0:n.features)??null},isLoading:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.isLoading)??!1},getError:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.error)??null}}}),Sg={activeSource:"pray-tools"},Ig=".profile-loader[data-v-50211124]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;position:relative}.profile-error[data-v-50211124]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Fg=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},xg={class:"profile-loader"},Pg={key:0,class:"profile-error"},Mg={key:1,class:"profile-error"},Dg=Fg({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var b;const n=e,o=re(()=>{if(!n.profileConfig)return null;try{return JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}}),s=re(()=>{var m;return((m=o.value)==null?void 0:m.profile)||null}),r=re(()=>{var m;return((m=o.value)==null?void 0:m.tk)||""}),i=re(()=>{var m;return((m=o.value)==null?void 0:m.dataSource)||Sg.activeSource}),a=re(()=>{var m;return((m=o.value)==null?void 0:m.colorSet)||"default"}),l=re(()=>!1),c=re(()=>{var m;return((m=o.value)==null?void 0:m.pinHint)!==!1}),u=re(()=>{var C,S;const m=(((C=o.value)==null?void 0:C.locale)||((S=o.value)==null?void 0:S.lang)||"").split("-")[0].toLowerCase();return Ml.includes(m)?m:""}),f=Ge("appI18n",null);Mc(()=>{u.value&&f&&(f.global.locale.value=u.value)});const h=re(()=>{var m,C;return u.value||((C=(m=f==null?void 0:f.global)==null?void 0:m.locale)==null?void 0:C.value)||"en"}),_=re(()=>{var m;return((m=o.value)==null?void 0:m.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),w=Ge("profileModules",null);if(!w)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const $=re(()=>{if(!s.value)return null;const m=`./${s.value}.vue`;return w[m]?Yc(w[m]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(w)),null)});at("mapboxToken",r),at("dataSource",i),at("colorSet",a),at("profileConfig",o),at("instanceId",_),at("lang",h);const I=Eg(),N=Tg(),L=Lg();try{const m=typeof localStorage<"u"?localStorage.getItem("theme"):null;m&&((b=I.setTheme)==null||b.call(I,m))}catch{}return at("uiStore",I),at("mapStore",N),at("dataStore",L),(m,C)=>(Y(),z("div",xg,[o.value?$.value?(Y(),Qe(yi($.value),{key:2})):(Y(),z("div",Mg,[P("p",null,[C[1]||(C[1]=$e("⚠️ Profile ",-1)),P("strong",null,'"'+Z(s.value)+'"',1),C[2]||(C[2]=$e(" not found.",-1))])])):(Y(),z("div",Pg,[...C[0]||(C[0]=[P("p",null,[$e("⚠️ "),P("strong",null,"doxa-map"),$e(": missing or invalid "),P("code",null,"profile-config"),$e(" prop.")],-1),P("p",null,[$e("Example: "),P("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),$.value&&l.value?(Y(),Qe(yi(Je(null)),{key:3})):Le("",!0),$.value&&c.value?(Y(),Qe(Cg,{key:4})):Le("",!0)]))}},[["styles",[Ig]],["__scopeId","data-v-50211124"]]),Bg=Object.assign({"./connectivity-list.vue":()=>ar(()=>Promise.resolve().then(()=>tm),void 0),"./connectivity-map.vue":()=>ar(()=>Promise.resolve().then(()=>Xm),void 0),"./data-tables.vue":()=>ar(()=>Promise.resolve().then(()=>y_),void 0)});function Rg(){return pp(Dg,{configureApp(e){e.use(vp()),e.use($g()),e.provide("profileModules",Bg)}})}const Wg=Rg();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",Wg));const Ug={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},jg={class:"ci-tot"},Gg={class:"ci-chip"},Yg={class:"ci-chip"},Vg={class:"ci-chip"},Hg={class:"ci-chip"},qg=["onClick"],zg={class:"sec-name"},Kg={class:"sec-meta"},Xg={class:"r-name"},Jg={class:"r-sub"},Zg={class:"r-num"},Qg={class:"r-sub"},em={class:"r-num"},tm=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=Ge("profileConfig",ie(null)),n=re(()=>{var f;return((f=t.value)==null?void 0:f.isDark)===!0}),o=re(()=>Ug.countries||[]),s=re(()=>{const f=new Map;for(const h of o.value){const _=h.region||"Other";f.has(_)||f.set(_,[]),f.get(_).push(h)}return[...f.entries()].map(([h,_])=>({name:h,items:_.slice().sort((w,$)=>$.people_groups-w.people_groups),groups:_.reduce((w,$)=>w+$.people_groups,0),unknown:_.filter(w=>w.internet_access==="unknown").length})).sort((h,_)=>_.groups-h.groups)}),r=ie({}),i=f=>!!r.value[f],a=f=>{r.value={...r.value,[f]:!r.value[f]}},l=re(()=>{const f=o.value;return{countries:f.length,resolved:f.filter(h=>h.internet_access!=="unknown").length,unknown:f.filter(h=>h.internet_access==="unknown").length,low:f.filter(h=>h.internet_access==="no").length}}),c=f=>f==="yes"?"ok":f==="partial"?"mid":f==="no"?"low":"unk",u=f=>f==="yes"?"connected":f==="partial"?"partial":f==="no"?"low":"unknown";return Wt(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(f,h)=>(Y(),z("div",{class:Te(["ci",{"is-dark":n.value}])},[h[1]||(h[1]=P("h2",{class:"ci-h"},"Cities with Internet",-1)),h[2]||(h[2]=P("p",{class:"ci-sub"},[$e(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),P("strong",null,"unknown means unmeasured, never assumed"),$e(". ")],-1)),P("div",jg,[P("span",Gg,Z(l.value.countries)+" countries",1),P("span",Yg,Z(l.value.resolved)+" measured",1),P("span",Vg,Z(l.value.unknown)+" unknown",1),P("span",Hg,Z(l.value.low)+" low-connectivity",1)]),(Y(!0),z(pe,null,lt(s.value,_=>(Y(),z("section",{key:_.name,class:"sec"},[P("button",{type:"button",class:"sec-head",onClick:w=>a(_.name)},[P("span",{class:Te(["sec-caret",{open:!i(_.name)}])},"▶",2),P("h3",zg,Z(_.name),1),P("span",Kg,[$e(Z(_.items.length)+" countries · "+Z(_.groups.toLocaleString())+" people groups ",1),_.unknown?(Y(),z(pe,{key:0},[$e(" · "+Z(_.unknown)+" unmeasured",1)],64)):Le("",!0)])],8,qg),Ic(P("div",null,[(Y(!0),z(pe,null,lt(_.items,w=>(Y(),z("div",{key:w.iso3,class:"row"},[P("div",null,[P("div",Xg,Z(w.country),1),P("div",Jg,[$e(Z(w.people_groups)+" people groups · "+Z(w.clusters)+" locations ",1),w.multi?(Y(),z(pe,{key:0},[$e(" · "+Z(w.multi)+" population centres",1)],64)):Le("",!0)])]),P("div",Zg,[w.internet_pct!==null&&w.internet_pct!==void 0?(Y(),z(pe,{key:0},[$e(Z(w.internet_pct)+"% ",1),P("div",Qg,Z(w.internet_year),1)],64)):(Y(),z(pe,{key:1},[$e("—")],64))]),P("div",em,[w.mobile_per_100!==null&&w.mobile_per_100!==void 0?(Y(),z(pe,{key:0},[$e(Z(w.mobile_per_100)+" ",1),h[0]||(h[0]=P("div",{class:"r-sub"},"mob/100",-1))],64)):(Y(),z(pe,{key:1},[$e("—")],64))]),P("span",{class:Te(["pill",c(w.internet_access)])},Z(u(w.internet_access)),3)]))),128))],512),[[qu,!i(_.name)]])]))),128)),h[3]||(h[3]=P("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),bs={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function nm(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:n=!0,basemap:o=!0}=t,s=document.createElement("div");s.className="doxa-attribution mapboxgl-ctrl",s.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];n&&r.push(bs.boundaries),o&&(r.push(bs.mapbox),r.push(bs.osm)),s.innerHTML=r.map(a=>`${a.label}`).join(" · ");const i={onAdd:()=>s,onRemove:()=>{s.parentNode&&s.parentNode.removeChild(s)},getDefaultPosition:()=>"bottom-right"};return e.addControl(i,"bottom-right"),i}const om={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=ie(null);return at("mapToolbar",{el:t}),Wt(` .map-toolbar { position: absolute; top: 6px; @@ -84,7 +83,7 @@ .map-toolbar { top: 72px; gap: 6px; } .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } } -`,"map-toolbar"),(n,o)=>(Y(),z("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Fr(n.$slots,"default")],2))}},om=["title","disabled"],co={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Wt(` +`,"map-toolbar"),(n,o)=>(Y(),z("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Fr(n.$slots,"default")],2))}},rm=["title","disabled"],co={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Wt(` .mcb{ width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); background:#fff; @@ -108,7 +107,7 @@ .mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);} .mcb.dark.active{background:#4e594f;color:#92b195;} @media(max-width:767px){.mcb{width:36px;height:36px;}} -`,"map-control-button"),(t,n)=>(Y(),z("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,disabled:e.disabled,onClick:n[0]||(n[0]=o=>t.$emit("click"))},[Fr(t.$slots,"default")],10,om))}},rm={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;(s=n.map)==null||s.zoomIn()}return(s,r)=>(Y(),Qe(co,{"is-dark":e.isDark,title:Je(t)("buttons.zoomIn"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[P("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","title"]))}},sm={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;(s=n.map)==null||s.zoomOut()}return(s,r)=>(Y(),Qe(co,{"is-dark":e.isDark,title:Je(t)("buttons.zoomOut"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[P("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","title"]))}},im={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=en(),n=e;function o(){var r;(r=n.map)==null||r.flyTo({center:n.center,zoom:n.zoom,duration:1200})}function s(){if(n.map){if(typeof navigator>"u"||!navigator.geolocation){o();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:i,latitude:a}=r.coords;Number.isFinite(i)&&Number.isFinite(a)?n.map.flyTo({center:[i,a],zoom:n.userZoom,duration:1500}):o()},()=>o(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,i)=>(Y(),Qe(co,{"is-dark":e.isDark,title:Je(t)("buttons.resetView"),onClick:s},{default:Vt(()=>[...i[0]||(i[0]=[P("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[P("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},am={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},lm={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},cm={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:n}=en(),o=e,s=t,r=ie(!1);let i=null,a=null,l=null,c=null,u=null,f=null,h=null,_=null,w=null,$=null,I=null,N=0,L=0,b=null,m=null;function C(){if(typeof document>"u")return!1;const K=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(K)||K.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function S(){var K,W,q;return((q=(W=(K=o.mapContainer)==null?void 0:K.getRootNode)==null?void 0:W.call(K))==null?void 0:q.host)??null}function v(){var W,q;const K=(q=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:q.call(W);return document.fullscreenElement||document.webkitFullscreenElement||(K&&K instanceof ShadowRoot?K.fullscreenElement:null)||null}function O(K){const W=K.requestFullscreen||K.webkitRequestFullscreen;if(!W)return Promise.reject(new Error("Fullscreen API unavailable"));const q=W.call(K);return q&&typeof q.then=="function"?q:Promise.resolve()}function E(){const K=document.exitFullscreen||document.webkitExitFullscreen;if(!K)return Promise.reject(new Error("Fullscreen API unavailable"));const W=K.call(document);return W&&typeof W.then=="function"?W:Promise.resolve()}function X(){const K=S();if(!K)return!1;if(l=K,a=K.style.cssText,K.style.position="fixed",K.style.top="0",K.style.left="0",K.style.right="0",K.style.bottom="0",K.style.width="100vw",K.style.height="100vh",K.style.height="100dvh",K.style.zIndex="2147483647",K.style.margin="0",K.style.borderRadius="0",K.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){N=window.scrollY||window.pageYOffset||0,L=window.scrollX||window.pageXOffset||0;const W=document.body,q=document.documentElement;c=W?W.style.overflow:null,u=q?q.style.overflow:null,f=W?W.style.position:null,h=W?W.style.top:null,_=W?W.style.left:null,w=W?W.style.width:null,$=W?W.style.touchAction:null,I=q?q.style.touchAction:null,q&&(q.style.overflow="hidden",q.style.touchAction="none"),W&&(W.style.overflow="hidden",W.style.position="fixed",W.style.top=`-${N}px`,W.style.left=`-${L}px`,W.style.width="100%",W.style.touchAction="none"),b=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},m=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},document.addEventListener("touchmove",b,{passive:!1,capture:!0}),document.addEventListener("wheel",m,{passive:!1,capture:!0})}return!0}function te(){if(l){if(l.style.cssText=a||"",l=null,a=null,typeof document<"u"){const K=document.body,W=document.documentElement;K&&(K.style.overflow=c??"",K.style.position=f??"",K.style.top=h??"",K.style.left=_??"",K.style.width=w??"",K.style.touchAction=$??""),W&&(W.style.overflow=u??"",W.style.touchAction=I??""),b&&(document.removeEventListener("touchmove",b,{capture:!0}),b=null),m&&(document.removeEventListener("wheel",m,{capture:!0}),m=null),typeof window<"u"&&(N||L)&&window.scrollTo(L,N)}c=null,u=null,f=null,h=null,_=null,w=null,$=null,I=null,N=0,L=0}}function H(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function se(){if(!C()){r.value?(te(),r.value=!1,s("change",!1)):X()&&(r.value=!0,s("change",!0)),H();return}if(v())E().then(()=>{r.value=!1,s("change",!1)}).catch(()=>{});else{const W=S()??document.documentElement;O(W).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{O(document.documentElement).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{})})}}function he(){r.value=!!v(),s("change",r.value)}return qt(()=>{var W,q;document.addEventListener("fullscreenchange",he),document.addEventListener("webkitfullscreenchange",he);const K=(q=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:q.call(W);K instanceof ShadowRoot&&(i=K,K.addEventListener("fullscreenchange",he),K.addEventListener("webkitfullscreenchange",he))}),$n(()=>{document.removeEventListener("fullscreenchange",he),document.removeEventListener("webkitfullscreenchange",he),i&&(i.removeEventListener("fullscreenchange",he),i.removeEventListener("webkitfullscreenchange",he),i=null),l&&te()}),(K,W)=>(Y(),Qe(co,{"is-dark":e.isDark,active:r.value,title:Je(n)("buttons.toggleFullscreen"),onClick:se},{default:Vt(()=>[r.value?(Y(),z("svg",lm,[...W[1]||(W[1]=[P("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(Y(),z("svg",am,[...W[0]||(W[0]=[P("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},um=ir&&ir.tagName.toUpperCase()==="SCRIPT"&&ir.src||new URL("cities-internet.js",document.baseURI).href,ys=e=>String(e||"").trim().replace(/\/+$/,"");function pm(){try{const t=String(um||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function dm(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return ys(t);if(typeof window<"u"){const n=window.MAP_EMBED_BASE_URL;if(typeof n=="string"&&n.trim())return ys(n)}return ys(pm()||"")}function fm({shareUrl:e,embedPath:t,profileConfig:n}={}){const o=n||null,s=typeof window<"u",r=e||(o==null?void 0:o.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const i=String(t||(o==null?void 0:o.shareEmbedPath)||"").trim();if(i){if(/^https?:\/\//i.test(i))return i;if(i.startsWith("/"))return s?window.location.origin+i:i;const a=dm(o),l=i.replace(/^\.\//,"");if(a)return a+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}const hm=["aria-label"],gm={class:"mcm-header"},mm={class:"mcm-title"},_m={class:"mcm-body"},bm=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",vs="doxa-map-menu-open",ym={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Wt(` +`,"map-control-button"),(t,n)=>(Y(),z("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,disabled:e.disabled,onClick:n[0]||(n[0]=o=>t.$emit("click"))},[Fr(t.$slots,"default")],10,rm))}},sm={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;(s=n.map)==null||s.zoomIn()}return(s,r)=>(Y(),Qe(co,{"is-dark":e.isDark,title:Je(t)("buttons.zoomIn"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[P("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","title"]))}},im={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;(s=n.map)==null||s.zoomOut()}return(s,r)=>(Y(),Qe(co,{"is-dark":e.isDark,title:Je(t)("buttons.zoomOut"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[P("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","title"]))}},am={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=en(),n=e;function o(){var r;(r=n.map)==null||r.flyTo({center:n.center,zoom:n.zoom,duration:1200})}function s(){if(n.map){if(typeof navigator>"u"||!navigator.geolocation){o();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:i,latitude:a}=r.coords;Number.isFinite(i)&&Number.isFinite(a)?n.map.flyTo({center:[i,a],zoom:n.userZoom,duration:1500}):o()},()=>o(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,i)=>(Y(),Qe(co,{"is-dark":e.isDark,title:Je(t)("buttons.resetView"),onClick:s},{default:Vt(()=>[...i[0]||(i[0]=[P("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[P("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},lm={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},cm={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},um={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:n}=en(),o=e,s=t,r=ie(!1);let i=null,a=null,l=null,c=null,u=null,f=null,h=null,_=null,w=null,$=null,I=null,N=0,L=0,b=null,m=null;function C(){if(typeof document>"u")return!1;const K=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(K)||K.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function S(){var K,W,q;return((q=(W=(K=o.mapContainer)==null?void 0:K.getRootNode)==null?void 0:W.call(K))==null?void 0:q.host)??null}function v(){var W,q;const K=(q=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:q.call(W);return document.fullscreenElement||document.webkitFullscreenElement||(K&&K instanceof ShadowRoot?K.fullscreenElement:null)||null}function O(K){const W=K.requestFullscreen||K.webkitRequestFullscreen;if(!W)return Promise.reject(new Error("Fullscreen API unavailable"));const q=W.call(K);return q&&typeof q.then=="function"?q:Promise.resolve()}function E(){const K=document.exitFullscreen||document.webkitExitFullscreen;if(!K)return Promise.reject(new Error("Fullscreen API unavailable"));const W=K.call(document);return W&&typeof W.then=="function"?W:Promise.resolve()}function X(){const K=S();if(!K)return!1;if(l=K,a=K.style.cssText,K.style.position="fixed",K.style.top="0",K.style.left="0",K.style.right="0",K.style.bottom="0",K.style.width="100vw",K.style.height="100vh",K.style.height="100dvh",K.style.zIndex="2147483647",K.style.margin="0",K.style.borderRadius="0",K.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){N=window.scrollY||window.pageYOffset||0,L=window.scrollX||window.pageXOffset||0;const W=document.body,q=document.documentElement;c=W?W.style.overflow:null,u=q?q.style.overflow:null,f=W?W.style.position:null,h=W?W.style.top:null,_=W?W.style.left:null,w=W?W.style.width:null,$=W?W.style.touchAction:null,I=q?q.style.touchAction:null,q&&(q.style.overflow="hidden",q.style.touchAction="none"),W&&(W.style.overflow="hidden",W.style.position="fixed",W.style.top=`-${N}px`,W.style.left=`-${L}px`,W.style.width="100%",W.style.touchAction="none"),b=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},m=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},document.addEventListener("touchmove",b,{passive:!1,capture:!0}),document.addEventListener("wheel",m,{passive:!1,capture:!0})}return!0}function te(){if(l){if(l.style.cssText=a||"",l=null,a=null,typeof document<"u"){const K=document.body,W=document.documentElement;K&&(K.style.overflow=c??"",K.style.position=f??"",K.style.top=h??"",K.style.left=_??"",K.style.width=w??"",K.style.touchAction=$??""),W&&(W.style.overflow=u??"",W.style.touchAction=I??""),b&&(document.removeEventListener("touchmove",b,{capture:!0}),b=null),m&&(document.removeEventListener("wheel",m,{capture:!0}),m=null),typeof window<"u"&&(N||L)&&window.scrollTo(L,N)}c=null,u=null,f=null,h=null,_=null,w=null,$=null,I=null,N=0,L=0}}function H(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function se(){if(!C()){r.value?(te(),r.value=!1,s("change",!1)):X()&&(r.value=!0,s("change",!0)),H();return}if(v())E().then(()=>{r.value=!1,s("change",!1)}).catch(()=>{});else{const W=S()??document.documentElement;O(W).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{O(document.documentElement).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{})})}}function he(){r.value=!!v(),s("change",r.value)}return qt(()=>{var W,q;document.addEventListener("fullscreenchange",he),document.addEventListener("webkitfullscreenchange",he);const K=(q=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:q.call(W);K instanceof ShadowRoot&&(i=K,K.addEventListener("fullscreenchange",he),K.addEventListener("webkitfullscreenchange",he))}),$n(()=>{document.removeEventListener("fullscreenchange",he),document.removeEventListener("webkitfullscreenchange",he),i&&(i.removeEventListener("fullscreenchange",he),i.removeEventListener("webkitfullscreenchange",he),i=null),l&&te()}),(K,W)=>(Y(),Qe(co,{"is-dark":e.isDark,active:r.value,title:Je(n)("buttons.toggleFullscreen"),onClick:se},{default:Vt(()=>[r.value?(Y(),z("svg",cm,[...W[1]||(W[1]=[P("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(Y(),z("svg",lm,[...W[0]||(W[0]=[P("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},pm=ir&&ir.tagName.toUpperCase()==="SCRIPT"&&ir.src||new URL("cities-internet.js",document.baseURI).href,ys=e=>String(e||"").trim().replace(/\/+$/,"");function dm(){try{const t=String(pm||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function fm(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return ys(t);if(typeof window<"u"){const n=window.MAP_EMBED_BASE_URL;if(typeof n=="string"&&n.trim())return ys(n)}return ys(dm()||"")}function hm({shareUrl:e,embedPath:t,profileConfig:n}={}){const o=n||null,s=typeof window<"u",r=e||(o==null?void 0:o.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const i=String(t||(o==null?void 0:o.shareEmbedPath)||"").trim();if(i){if(/^https?:\/\//i.test(i))return i;if(i.startsWith("/"))return s?window.location.origin+i:i;const a=fm(o),l=i.replace(/^\.\//,"");if(a)return a+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}const gm=["aria-label"],mm={class:"mcm-header"},_m={class:"mcm-title"},bm={class:"mcm-body"},ym=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",vs="doxa-map-menu-open",vm={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Wt(` .mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box; background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45); color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px; @@ -124,7 +123,7 @@ .mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} .mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} .mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;} -`,"map-control-menu");const n=e,o=t,s=Ge("mapToolbar",null),r=ie(null),i=ie(null),a=ie({});function l(){var O;const _=(O=s==null?void 0:s.el)==null?void 0:O.value,w=r.value;if(!_||!w){a.value={};return}const $=w.getBoundingClientRect(),I=_.getBoundingClientRect(),N=(I.left+I.right)/2>($.left+$.right)/2,L=8,b=12,m=N?$.right-I.left+L:I.right-$.left+L,C=Math.max(200,Math.min(n.width,$.width-m-b)),S=Math.max(0,I.top-$.top);let v=Math.max(120,$.height-S-b);n.matchToolbar&&(v=Math.max(120,Math.min(v,I.height))),n.maxHeight&&(v=Math.min(v,n.maxHeight)),a.value={top:`${Math.round(S)}px`,[N?"right":"left"]:`${Math.round(m)}px`,width:`${Math.round(C)}px`,maxHeight:`${Math.round(v)}px`,...n.height?{height:`${Math.round(Math.min(n.height,v))}px`}:{}}}function c(_){n.open&&_.detail!==i.value&&o("close")}yt(()=>n.open,async _=>{var w;if(_){await Io(),l();try{(w=r.value)==null||w.dispatchEvent(new CustomEvent(vs,{detail:i.value}))}catch{}}});function u(){n.open&&l()}function f(_){_.key==="Escape"&&n.open&&o("close")}function h(_){var $;if(!n.open)return;const w=_.composedPath?_.composedPath():[_.target];i.value&&w.includes(i.value)||($=s==null?void 0:s.el)!=null&&$.value&&w.includes(s.el.value)||w.some(I=>{var N,L,b,m;return((L=(N=I==null?void 0:I.classList)==null?void 0:N.contains)==null?void 0:L.call(N,"mapboxgl-canvas"))||((m=(b=I==null?void 0:I.classList)==null?void 0:b.contains)==null?void 0:m.call(b,"maplibregl-canvas"))})&&o("close")}return qt(()=>{var _,w,$;r.value=((w=(_=s==null?void 0:s.el)==null?void 0:_.value)==null?void 0:w.closest(bm))||null,($=r.value)==null||$.addEventListener(vs,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",f)}),$n(()=>{var _;(_=r.value)==null||_.removeEventListener(vs,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",f)}),(_,w)=>(Y(),Qe(Uc,{to:r.value,disabled:!r.value},[e.open?(Y(),z("div",{key:0,ref_key:"el",ref:i,class:Te(["mcm",{light:!e.isDark}]),style:Pn(a.value),role:"dialog","aria-label":e.title},[P("div",gm,[P("span",mm,Z(e.title),1),P("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:w[0]||(w[0]=$=>o("close"))},[...w[1]||(w[1]=[P("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[P("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),P("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),P("div",_m,[Fr(_.$slots,"default")])],14,hm)):Le("",!0)],8,["to","disabled"]))}},vm={class:"share-steps"},wm={class:"share-tabs"},km={key:0,class:"share-body"},$m={class:"share-url-box"},Om={class:"share-url-text"},Nm={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Cm={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Am={key:1,class:"share-body"},Em={class:"share-size-pills"},Tm=["onClick"],Lm={class:"share-code-box"},Sm={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Im={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Fm={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Wt(` +`,"map-control-menu");const n=e,o=t,s=Ge("mapToolbar",null),r=ie(null),i=ie(null),a=ie({});function l(){var O;const _=(O=s==null?void 0:s.el)==null?void 0:O.value,w=r.value;if(!_||!w){a.value={};return}const $=w.getBoundingClientRect(),I=_.getBoundingClientRect(),N=(I.left+I.right)/2>($.left+$.right)/2,L=8,b=12,m=N?$.right-I.left+L:I.right-$.left+L,C=Math.max(200,Math.min(n.width,$.width-m-b)),S=Math.max(0,I.top-$.top);let v=Math.max(120,$.height-S-b);n.matchToolbar&&(v=Math.max(120,Math.min(v,I.height))),n.maxHeight&&(v=Math.min(v,n.maxHeight)),a.value={top:`${Math.round(S)}px`,[N?"right":"left"]:`${Math.round(m)}px`,width:`${Math.round(C)}px`,maxHeight:`${Math.round(v)}px`,...n.height?{height:`${Math.round(Math.min(n.height,v))}px`}:{}}}function c(_){n.open&&_.detail!==i.value&&o("close")}yt(()=>n.open,async _=>{var w;if(_){await Io(),l();try{(w=r.value)==null||w.dispatchEvent(new CustomEvent(vs,{detail:i.value}))}catch{}}});function u(){n.open&&l()}function f(_){_.key==="Escape"&&n.open&&o("close")}function h(_){var $;if(!n.open)return;const w=_.composedPath?_.composedPath():[_.target];i.value&&w.includes(i.value)||($=s==null?void 0:s.el)!=null&&$.value&&w.includes(s.el.value)||w.some(I=>{var N,L,b,m;return((L=(N=I==null?void 0:I.classList)==null?void 0:N.contains)==null?void 0:L.call(N,"mapboxgl-canvas"))||((m=(b=I==null?void 0:I.classList)==null?void 0:b.contains)==null?void 0:m.call(b,"maplibregl-canvas"))})&&o("close")}return qt(()=>{var _,w,$;r.value=((w=(_=s==null?void 0:s.el)==null?void 0:_.value)==null?void 0:w.closest(ym))||null,($=r.value)==null||$.addEventListener(vs,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",f)}),$n(()=>{var _;(_=r.value)==null||_.removeEventListener(vs,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",f)}),(_,w)=>(Y(),Qe(Uc,{to:r.value,disabled:!r.value},[e.open?(Y(),z("div",{key:0,ref_key:"el",ref:i,class:Te(["mcm",{light:!e.isDark}]),style:Pn(a.value),role:"dialog","aria-label":e.title},[P("div",mm,[P("span",_m,Z(e.title),1),P("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:w[0]||(w[0]=$=>o("close"))},[...w[1]||(w[1]=[P("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[P("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),P("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),P("div",bm,[Fr(_.$slots,"default")])],14,gm)):Le("",!0)],8,["to","disabled"]))}},wm={class:"share-steps"},km={class:"share-tabs"},$m={key:0,class:"share-body"},Om={class:"share-url-box"},Nm={class:"share-url-text"},Cm={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Am={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Em={key:1,class:"share-body"},Tm={class:"share-size-pills"},Lm=["onClick"],Sm={class:"share-code-box"},Im={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Fm={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},xm={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Wt(` .share-wrap{position:relative;display:inline-block;border-radius:50%;} .share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none; background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b); @@ -377,4 +376,4 @@ border-color:rgba(46,164,79,0.30); color:#2ea44f; } -`,"share-button");const{t,tm:n,rt:o}=en(),s=e,r=ie(null),i=ie(!1),a=ie(null),l=ie(null),c=ie("link"),u=ie(!1),f=ie(!1),h=ie("medium"),_={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},w=Ge("profileConfig",null),$=re(()=>fm({embedPath:s.embedPath,profileConfig:Je(w)||null})),I=re(()=>{const S=_[h.value].height;return''});function N(){i.value=!i.value,i.value&&(c.value="link",u.value=!1,f.value=!1)}function L(){i.value=!1}async function b(S){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(S),!0}catch{}try{const v=document.createElement("textarea");v.value=S,v.setAttribute("readonly",""),v.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(v),v.select();const O=document.execCommand("copy");return document.body.removeChild(v),O}catch{return!1}}async function m(){await b($.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function C(){await b(I.value)&&(f.value=!0,setTimeout(()=>{f.value=!1},2e3))}return(S,v)=>(Y(),z("div",{ref_key:"rootEl",ref:r,class:"share-wrap"},[ve(co,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:i.value,title:Je(t)("buttons.share"),onClick:N},{default:Vt(()=>[...v[2]||(v[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"]),ve(ym,{open:i.value,title:Je(t)("buttons.share"),"is-dark":e.isDark,onClose:L},{default:Vt(()=>[P("div",{ref_key:"popoverEl",ref:a,class:Te(["share-pop",{light:!e.isDark}])},[P("ul",vm,[(Y(!0),z(pe,null,lt(Je(n)("buttons.shareSteps"),(O,E)=>(Y(),z("li",{key:E},Z(Je(o)(O)),1))),128))]),P("div",wm,[P("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:v[0]||(v[0]=O=>c.value="link")},"Embed link",2),P("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:v[1]||(v[1]=O=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(Y(),z("div",km,[P("div",$m,[P("div",Om,Z($.value),1)]),P("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:m},[u.value?(Y(),z("svg",Cm,[...v[4]||(v[4]=[P("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(Y(),z("svg",Nm,[...v[3]||(v[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)])])),$e(" "+Z(u.value?"Copied!":"Copy Link"),1)],2)])):Le("",!0),c.value==="embed"?(Y(),z("div",Am,[v[7]||(v[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",Em,[(Y(),z(pe,null,lt(_,(O,E)=>P("button",{key:E,class:Te(["share-size-pill",{active:h.value===E}]),onClick:X=>h.value=E},Z(O.label),11,Tm)),64))]),P("div",Lm,Z(I.value),1),P("button",{class:Te(["share-secondary-btn",{copied:f.value}]),onClick:C},[f.value?(Y(),z("svg",Im,[...v[6]||(v[6]=[P("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(Y(),z("svg",Sm,[...v[5]||(v[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)])])),$e(" "+Z(f.value?"Copied!":"Copy Code"),1)],2)])):Le("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},xm={class:"gm-legend"},Pm={class:"gm-keys"},Mm={key:1,class:"gm-err"},Dm={key:2,class:"gm-sheet"},Bm={class:"gm-sh-head"},Rm={class:"gm-sh-name"},Wm={key:0,class:"gm-ai"},Um={class:"gm-stat"},jm={class:"gm-stat"},Gm={class:"gm-stat"},Ym={class:"gm-stat"},Vm={class:"gm-stat"},Hm={key:1,class:"gm-list"},qm={class:"gm-list-h"},zm={key:2,class:"gm-list"},Km=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-map",setup(e){const t=Ge("profileConfig",ie(null)),n=re(()=>{var N;return((N=t.value)==null?void 0:N.isDark)===!0}),o=re(()=>{var N;return((N=t.value)==null?void 0:N.tk)||window.DOXA_TOKEN||""}),s=re(()=>{var N;return String(((N=t.value)==null?void 0:N.assetsBase)||"./assets").replace(/\/+$/,"")}),r=ie(null),i=Eo(null),a=ie([]),l=ie(null),c=ie(!0),u=ie(null),f=[{id:"yes",label:"connected 60%+",color:"#10b981"},{id:"partial",label:"partial 25–59%",color:"#e8c15a"},{id:"no",label:"low, under 25%",color:"#b42318"},{id:"unknown",label:"not measured",color:"#9aa2ad"}],h=N=>(f.find(L=>L.id===N)||{}).color||"#9aa2ad",_=re(()=>{const N={};for(const L of a.value)N[L.iso3]=L;return N});async function w(){const[N,L]=await Promise.all([fetch(`${s.value}/tables/internet-by-country.json`).then(b=>b.json()),fetch(`${s.value}/boundaries/world-adm0.geojson`).then(b=>b.json())]);return a.value=N.countries||[],L}function $(N,L){const b=_.value,C={type:"FeatureCollection",features:(L.features||[]).map(S=>{var E;const v=(E=S.properties)==null?void 0:E.iso3,O=b[v];return{type:"Feature",properties:{iso3:v,band:(O==null?void 0:O.band)||"none",color:O?h(O.band):"rgba(0,0,0,0)",hasData:!!O},geometry:S.geometry}})};if(N.getSource("ci-src")){N.getSource("ci-src").setData(C);return}N.addSource("ci-src",{type:"geojson",data:C}),N.addLayer({id:"ci-fill",type:"fill",source:"ci-src",paint:{"fill-color":["get","color"],"fill-opacity":["case",["get","hasData"],.72,0]}}),N.addLayer({id:"ci-line",type:"line",source:"ci-src",paint:{"line-color":"rgba(255,255,255,0.5)","line-width":.5}}),N.on("click","ci-fill",S=>{var O,E,X;const v=(X=(E=(O=S.features)==null?void 0:O[0])==null?void 0:E.properties)==null?void 0:X.iso3;v&&_.value[v]&&(l.value=_.value[v])}),N.on("mouseenter","ci-fill",()=>{N.getCanvas().style.cursor="pointer"}),N.on("mouseleave","ci-fill",()=>{N.getCanvas().style.cursor=""})}qt(async()=>{const N=window.mapboxgl;if(!N||!r.value){u.value="mapbox-gl not loaded";return}try{const L=await w(),b=new N.Map({container:r.value,style:n.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11",accessToken:o.value,center:[42,18],zoom:1.3,projection:"mercator",attributionControl:!1});i.value=_n(b),tm(b,{boundaries:!0}),b.once("load",()=>$(b,L))}catch(L){u.value=String(L.message||L)}}),$n(()=>{var N;try{(N=i.value)==null||N.remove()}catch{}});const I=N=>(Number(N)||0).toLocaleString();return Wt(".gm{position:absolute;inset:0;overflow:hidden}.gm-map{position:absolute;inset:0}.gm-legend{position:absolute;top:8px;left:8px;right:8px;z-index:4;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}.gm-key{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.gm-sw{width:12px;height:12px;border-radius:3px;flex:none}.gm-caveat{margin-top:5px;font-size:10.5px;opacity:.72;line-height:1.4}.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}@media(min-width:700px){.gm-sheet{left:auto;right:14px;bottom:14px;width:330px;border-radius:12px}}.is-dark .gm-sheet{background:#132019;color:#e5e7eb}.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gm-sh-name{font-weight:800;font-size:15px}.gm-ai{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:7px 9px;border-radius:8px;font-size:11px;line-height:1.35;background:rgba(180,120,0,.12);color:#7a4f00;border:1px solid rgba(180,120,0,.25)}.is-dark .gm-ai{background:rgba(255,200,80,.10);color:#f0cf88;border-color:rgba(255,200,80,.22)}.gm-ai-x{margin-left:auto;flex:none;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;color:inherit;opacity:.7;padding:0 2px}.gm-ai-x:hover{opacity:1}.gm-x{margin-left:auto;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;font:600 12px inherit;padding:6px 12px;border-radius:8px;cursor:pointer;min-height:34px}.gm-stat{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.07);font-variant-numeric:tabular-nums}.is-dark .gm-stat{border-bottom-color:rgba(255,255,255,.09)}.gm-stat b{font-weight:700}.gm-list{margin-top:9px}.gm-list-h{font-weight:700;font-size:12px;margin-bottom:3px}.gm-list ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5}.gm-note{margin-top:9px;font-size:11px;line-height:1.5;opacity:.75}.gm-err{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:13px;opacity:.7}","doxa-connectivity-map"),(N,L)=>(Y(),z("div",{class:Te(["gm",{"is-dark":n.value}])},[P("div",{ref_key:"mapEl",ref:r,class:"gm-map"},null,512),i.value?(Y(),Qe(nm,{key:0},{default:Vt(()=>[ve(rm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(sm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(im,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(cm,{"map-container":r.value,"is-dark":n.value},null,8,["map-container","is-dark"]),ve(Fm,{"is-dark":n.value,"embed-path":"cities-internet/connectivity-map/index.html"},null,8,["is-dark"])]),_:1})):Le("",!0),P("div",xm,[L[2]||(L[2]=P("div",{class:"gm-title"},"Internet access where unengaged people groups live",-1)),P("div",Pm,[(Y(),z(pe,null,lt(f,b=>P("span",{key:b.id,class:"gm-key"},[P("i",{class:"gm-sw",style:Pn({background:b.color})},null,4),$e(Z(b.label),1)])),64))]),L[3]||(L[3]=P("div",{class:"gm-caveat"}," NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country. ",-1))]),u.value?(Y(),z("div",Mm,Z(u.value),1)):Le("",!0),l.value?(Y(),z("div",Dm,[P("div",Bm,[P("span",Rm,Z(l.value.country),1),P("button",{type:"button",class:"gm-x",onClick:L[0]||(L[0]=b=>l.value=null)},"Close")]),c.value?(Y(),z("div",Wm,[L[4]||(L[4]=P("span",null,"Data was found by AI deep research — it is subject to false information.",-1)),P("button",{type:"button",class:"gm-ai-x",onClick:L[1]||(L[1]=b=>c.value=!1),"aria-label":"Dismiss"},"×")])):Le("",!0),P("div",Um,[L[5]||(L[5]=P("span",null,"Internet users",-1)),P("b",null,Z(l.value.internet_pct!=null?l.value.internet_pct+"%":"unknown"),1)]),P("div",jm,[L[6]||(L[6]=P("span",null,"Measured",-1)),P("b",null,Z(l.value.internet_year||"—"),1)]),P("div",Gm,[L[7]||(L[7]=P("span",null,"Mobile per 100",-1)),P("b",null,Z(l.value.mobile_per_100??"—"),1)]),P("div",Ym,[L[8]||(L[8]=P("span",null,"People groups",-1)),P("b",null,Z(I(l.value.people_groups)),1)]),P("div",Vm,[L[9]||(L[9]=P("span",null,"Top platform",-1)),P("b",null,[$e(Z(l.value.top_platform||"unknown"),1),l.value.top_platform_pct?(Y(),z(pe,{key:0},[$e(" · "+Z(l.value.top_platform_pct)+"%",1)],64)):Le("",!0)])]),l.value.carriers&&l.value.carriers.length?(Y(),z("div",Hm,[P("div",qm,"Carriers & ISPs ("+Z(l.value.carrier_count)+")",1),P("ul",null,[(Y(!0),z(pe,null,lt(l.value.carriers,(b,m)=>(Y(),z("li",{key:m},Z(b),1))),128))])])):Le("",!0),l.value.platforms&&l.value.platforms.length?(Y(),z("div",zm,[L[10]||(L[10]=P("div",{class:"gm-list-h"},"Social platforms",-1)),P("ul",null,[(Y(!0),z(pe,null,lt(l.value.platforms,(b,m)=>(Y(),z("li",{key:m},Z(b.name)+" · "+Z(b.pct)+"%",1))),128))])])):Le("",!0),L[11]||(L[11]=P("p",{class:"gm-note"}," National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification. ",-1))])):Le("",!0)],2))}}},Symbol.toStringTag,{value:"Module"})),Xm={class:"dt-head"},Jm={class:"dt-title"},Zm={class:"dt-count"},Qm={key:0,class:"dt-grain"},e_={class:"dt-actions"},t_={key:0,class:"dt-err"},n_={class:"dt-wrap"},o_={class:"dt-hint"},r_={class:"dt-sheet",role:"dialog","aria-label":"Row detail"},s_={class:"dt-sheet-head"},i_={class:"dt-dl"},a_=["href"],l_={key:1},c_={key:2},u_={key:2,class:"dt-caveats"},p_={class:"dt-cav-k"},d_={__name:"DataTable",props:{table:{type:Object,required:!0},assetsBase:{type:String,default:"./assets"},isDark:{type:Boolean,default:!1},height:{type:String,default:"560px"},frozen:{type:Number,default:1},pageSize:{type:Number,default:50}},emits:["row-click"],setup(e,{emit:t}){const n=e,o=t,s=ie(!1),r=ie(null),i=ie(null),a=Eo(null),l=ie(null),c=ie(!1),u=re(()=>String(n.assetsBase||"./assets").replace(/\/+$/,"")),f=re(()=>{var v;return((v=n.table)==null?void 0:v.meta)||{}}),h=re(()=>{var v;return(((v=n.table)==null?void 0:v.rows)||[]).length}),_=re(()=>Object.entries(f.value).filter(([v,O])=>typeof O=="string"&&/caveat|meaning|note|boundary|measures|does_not/i.test(v)).map(([v,O])=>({key:v.replace(/_/g," "),text:O})));let w=null;function $(){return window.Tabulator?Promise.resolve(window.Tabulator):w||(w=new Promise((v,O)=>{const E=document.createElement("script");E.src=`${u.value}/vendor/tabulator/tabulator.min.js`,E.onload=()=>v(window.Tabulator),E.onerror=()=>O(new Error("Tabulator failed to load — is public/assets/vendor/tabulator/ present?")),document.head.appendChild(E)}),w)}async function I(v){if(!(!v||v.querySelector("style[data-tabulator]")))try{const O=await fetch(`${u.value}/vendor/tabulator/tabulator.min.css`);if(!O.ok)return;const E=document.createElement("style");E.setAttribute("data-tabulator",""),E.textContent=await O.text(),v.appendChild(E)}catch{}}function N(v){var te,H;if(!i.value)return;s.value=typeof window<"u"&&window.innerWidth<700;const O=((te=n.table)==null?void 0:te.columns)||[],X=(s.value?O.slice(0,3):O).map((se,he)=>({title:se.title,field:se.field,headerFilter:se.type==="boolean"?"tickCross":"input",headerFilterPlaceholder:"filter…",sorter:se.type==="number"?"number":se.type==="boolean"?"boolean":"string",formatter:se.type==="boolean"?"tickCross":void 0,.../_url$/.test(se.field)?{formatter:"link",formatterParams:{target:"_blank",label:()=>"open"}}:{},frozen:!s.value&&he{r.value=he.getData(),o("row-click",he.getData())}),a.value.on("tableBuilt",()=>{c.value=!0})}const L=v=>{var O,E;return((E=(((O=n.table)==null?void 0:O.columns)||[]).find(X=>X.field===v))==null?void 0:E.title)||v.replace(/_/g," ")},b=v=>typeof v=="string"&&v.includes(", ")&&v.length>40?v.split(", "):null,m=v=>typeof v=="string"&&/^https?:\/\//.test(v),C=re(()=>r.value?Object.entries(r.value).filter(([,v])=>v!==""&&v!==null&&v!==void 0):[]);function S(v){var O;try{(O=a.value)==null||O.download(v,`${(f.value.title||"table").replace(/\W+/g,"-").toLowerCase()}.${v}`)}catch(E){l.value=String(E.message||E)}}return qt(async()=>{var v,O;try{await I((O=(v=i.value)==null?void 0:v.getRootNode)==null?void 0:O.call(v)),N(await $())}catch(E){l.value=String(E.message||E)}}),$n(()=>{var v;try{(v=a.value)==null||v.destroy()}catch{}}),yt(()=>n.table,()=>{var v,O;try{(O=a.value)==null||O.replaceData(((v=n.table)==null?void 0:v.rows)||[])}catch{}}),Wt(".dt,.dt *{box-sizing:border-box}.dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.dt-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.dt-title{font-size:15px;font-weight:700;margin:0}.dt-count{font-size:11.5px;opacity:.6;font-variant-numeric:tabular-nums}.dt-grain{font-size:11px;opacity:.55}.dt-actions{margin-left:auto;display:flex;gap:6px}.dt-btn{font:600 11.5px inherit;padding:5px 11px;border-radius:6px;cursor:pointer;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-btn:hover{background:rgba(0,0,0,.05)}.dt-err{padding:10px 12px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.dt-caveats{margin-top:10px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.04);font-size:11.5px;line-height:1.6;opacity:.85}.is-dark .dt-caveats{background:rgba(255,255,255,.06)}.dt-cav-k{font-weight:700;text-transform:capitalize}.dt-scrim{position:fixed;inset:0;z-index:1200;background:rgba(8,12,16,.55);display:flex;align-items:flex-end;justify-content:center}@media(min-width:700px){.dt-scrim{align-items:center}}.dt-sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:16px 18px 26px;box-shadow:0 -6px 30px rgba(0,0,0,.3)}@media(min-width:700px){.dt-sheet{border-radius:14px}}.is-dark .dt-sheet{background:#132019;color:#e5e7eb}.dt-sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid rgba(0,0,0,.10);font-size:15px}.dt-close{margin-left:auto;font:600 12px inherit;padding:7px 14px;border-radius:8px;cursor:pointer;min-height:36px;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-dl{display:grid;grid-template-columns:minmax(96px,34%) 1fr;gap:7px 12px;margin:0;font-size:12.5px}.dt-dl dt{font-weight:700;opacity:.72;text-transform:capitalize}.dt-dl dd{margin:0;word-break:break-word}.dt-dl ul{margin:0;padding-left:16px}.dt-dl a{color:#0b7a5b;font-weight:600}.dt-hint{font-size:11px;opacity:.6;margin:6px 0 0}.dt-wrap{width:100%;overflow:hidden;border:1px solid rgba(0,0,0,.10);border-radius:8px}.is-dark .dt-wrap{border-color:rgba(255,255,255,.12)}","doxa-data-table"),(v,O)=>{var E,X;return Y(),z("div",{class:Te(["dt",{"is-dark":e.isDark}])},[P("div",Xm,[P("h3",Jm,Z(f.value.title||"Data"),1),P("span",Zm,Z(h.value.toLocaleString())+" rows",1),f.value.grain?(Y(),z("span",Qm,"· "+Z(f.value.grain),1)):Le("",!0),P("span",e_,[P("button",{type:"button",class:"dt-btn",onClick:O[0]||(O[0]=te=>S("csv"))},"CSV"),P("button",{type:"button",class:"dt-btn",onClick:O[1]||(O[1]=te=>S("json"))},"JSON")])]),l.value?(Y(),z("div",t_,Z(l.value),1)):Le("",!0),P("div",n_,[P("div",{ref_key:"host",ref:i},null,512)]),P("p",o_,"Tap any row for its full detail"+Z(s.value?"":" — every field, including the lists the table flattens")+".",1),r.value?(Y(),z("div",{key:1,class:"dt-scrim",onClick:O[3]||(O[3]=gp(te=>r.value=null,["self"]))},[P("div",r_,[P("div",s_,[P("strong",null,Z(r.value[(X=(((E=e.table)==null?void 0:E.columns)||[])[0])==null?void 0:X.field]||"Detail"),1),P("button",{type:"button",class:"dt-close",onClick:O[2]||(O[2]=te=>r.value=null)},"Close")]),P("dl",i_,[(Y(!0),z(pe,null,lt(C.value,([te,H])=>(Y(),z(pe,{key:te},[P("dt",null,Z(L(te)),1),P("dd",null,[m(H)?(Y(),z("a",{key:0,href:H,target:"_blank",rel:"noopener"},Z(H),9,a_)):b(H)?(Y(),z("ul",l_,[(Y(!0),z(pe,null,lt(b(H),(se,he)=>(Y(),z("li",{key:he},Z(se),1))),128))])):(Y(),z("span",c_,Z(H===!0?"yes":H===!1?"no":H),1))])],64))),128))])])])):Le("",!0),_.value.length?(Y(),z("div",u_,[(Y(!0),z(pe,null,lt(_.value,te=>(Y(),z("div",{key:te.key},[P("span",p_,Z(te.key)+":",1),$e(" "+Z(te.text),1)]))),128))])):Le("",!0)],2)}}},f_={class:"ct-tabs"},h_=["onClick"],g_={key:0,class:"ct-n"},m_={key:0,class:"ct-err"},__={key:1,class:"ct-load"},b_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"data-tables",setup(e){const t=Ge("profileConfig",ie(null)),n=re(()=>{var h;return((h=t.value)==null?void 0:h.isDark)===!0}),o=re(()=>{var h;return String(((h=t.value)==null?void 0:h.assetsBase)||"./assets").replace(/\/+$/,"")}),s=[{id:"cities",label:"Key Cities",file:"key-cities"},{id:"internet",label:"Connectivity",file:"country-connectivity"},{id:"operators",label:"ISPs & Carriers",file:"network-operators"},{id:"social",label:"Social Platforms",file:"social-platforms"},{id:"messaging",label:"Messaging Apps",file:"messaging-channels"}],r=ie("cities"),i=re(()=>s.find(h=>h.id===r.value)||s[0]),a=ie({}),l=ie(!1),c=ie(null);async function u(h){if(!a.value[h]){l.value=!0,c.value=null;try{const _=await fetch(`${o.value}/tables/${h}.json`);if(!_.ok)throw new Error(`table not found (${_.status})`);a.value={...a.value,[h]:await _.json()}}catch(_){c.value=String(_.message||_)}finally{l.value=!1}}}yt(i,h=>h&&u(h.file),{immediate:!0});const f=re(()=>{var h;return a.value[(h=i.value)==null?void 0:h.file]||null});return Wt(".ct{position:absolute;inset:0;overflow-y:auto;padding:18px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ct.is-dark{background:#0a1410;color:#e5e7eb}.ct-h{margin:0 0 4px;font-size:18px;font-weight:700}.ct-sub{margin:0 0 14px;font-size:12.5px;opacity:.72;line-height:1.5}.ct-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.ct-tab{font:600 12px inherit;padding:7px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit}.ct-tab.on{background:#10b981;border-color:#10b981;color:#04241a}.ct-load{padding:22px;text-align:center;font-size:12.5px;opacity:.6}.ct-err{padding:11px 13px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.ct-n{font-size:10.5px;opacity:.6;margin-left:5px;font-variant-numeric:tabular-nums}","doxa-cities-tables"),(h,_)=>(Y(),z("div",{class:Te(["ct",{"is-dark":n.value}])},[_[0]||(_[0]=P("h2",{class:"ct-h"},"Cities Data",-1)),_[1]||(_[1]=P("p",{class:"ct-sub"}," Where the unengaged people groups live — and what reaches them. Sort, filter and export any table; each carries its own sources and limits. ",-1)),P("div",f_,[(Y(),z(pe,null,lt(s,w=>P("button",{key:w.id,type:"button",class:Te(["ct-tab",{on:r.value===w.id}]),onClick:$=>r.value=w.id},[$e(Z(w.label),1),a.value[w.file]?(Y(),z("span",g_,Z((a.value[w.file].rows||[]).length.toLocaleString()),1)):Le("",!0)],10,h_)),64))]),c.value?(Y(),z("div",m_,Z(c.value),1)):f.value?(Y(),Qe(d_,{key:i.value.id,table:f.value,"assets-base":o.value,"is-dark":n.value,height:"600px"},null,8,["table","assets-base","is-dark"])):(Y(),z("div",__,"Loading "+Z(i.value.label)+"…",1))],2))}}},Symbol.toStringTag,{value:"Module"}))})(); +`,"share-button");const{t,tm:n,rt:o}=en(),s=e,r=ie(null),i=ie(!1),a=ie(null),l=ie(null),c=ie("link"),u=ie(!1),f=ie(!1),h=ie("medium"),_={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},w=Ge("profileConfig",null),$=re(()=>hm({embedPath:s.embedPath,profileConfig:Je(w)||null})),I=re(()=>{const S=_[h.value].height;return''});function N(){i.value=!i.value,i.value&&(c.value="link",u.value=!1,f.value=!1)}function L(){i.value=!1}async function b(S){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(S),!0}catch{}try{const v=document.createElement("textarea");v.value=S,v.setAttribute("readonly",""),v.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(v),v.select();const O=document.execCommand("copy");return document.body.removeChild(v),O}catch{return!1}}async function m(){await b($.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function C(){await b(I.value)&&(f.value=!0,setTimeout(()=>{f.value=!1},2e3))}return(S,v)=>(Y(),z("div",{ref_key:"rootEl",ref:r,class:"share-wrap"},[ve(co,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:i.value,title:Je(t)("buttons.share"),onClick:N},{default:Vt(()=>[...v[2]||(v[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"]),ve(vm,{open:i.value,title:Je(t)("buttons.share"),"is-dark":e.isDark,onClose:L},{default:Vt(()=>[P("div",{ref_key:"popoverEl",ref:a,class:Te(["share-pop",{light:!e.isDark}])},[P("ul",wm,[(Y(!0),z(pe,null,lt(Je(n)("buttons.shareSteps"),(O,E)=>(Y(),z("li",{key:E},Z(Je(o)(O)),1))),128))]),P("div",km,[P("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:v[0]||(v[0]=O=>c.value="link")},"Embed link",2),P("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:v[1]||(v[1]=O=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(Y(),z("div",$m,[P("div",Om,[P("div",Nm,Z($.value),1)]),P("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:m},[u.value?(Y(),z("svg",Am,[...v[4]||(v[4]=[P("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(Y(),z("svg",Cm,[...v[3]||(v[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)])])),$e(" "+Z(u.value?"Copied!":"Copy Link"),1)],2)])):Le("",!0),c.value==="embed"?(Y(),z("div",Em,[v[7]||(v[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",Tm,[(Y(),z(pe,null,lt(_,(O,E)=>P("button",{key:E,class:Te(["share-size-pill",{active:h.value===E}]),onClick:X=>h.value=E},Z(O.label),11,Lm)),64))]),P("div",Sm,Z(I.value),1),P("button",{class:Te(["share-secondary-btn",{copied:f.value}]),onClick:C},[f.value?(Y(),z("svg",Fm,[...v[6]||(v[6]=[P("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(Y(),z("svg",Im,[...v[5]||(v[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)])])),$e(" "+Z(f.value?"Copied!":"Copy Code"),1)],2)])):Le("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Pm={class:"gm-legend"},Mm={class:"gm-keys"},Dm={key:1,class:"gm-err"},Bm={key:2,class:"gm-sheet"},Rm={class:"gm-sh-head"},Wm={class:"gm-sh-name"},Um={key:0,class:"gm-ai"},jm={class:"gm-stat"},Gm={class:"gm-stat"},Ym={class:"gm-stat"},Vm={class:"gm-stat"},Hm={class:"gm-stat"},qm={key:1,class:"gm-list"},zm={class:"gm-list-h"},Km={key:2,class:"gm-list"},Xm=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-map",setup(e){const t=Ge("profileConfig",ie(null)),n=re(()=>{var N;return((N=t.value)==null?void 0:N.isDark)===!0}),o=re(()=>{var N;return((N=t.value)==null?void 0:N.tk)||window.DOXA_TOKEN||""}),s=re(()=>{var N;return String(((N=t.value)==null?void 0:N.assetsBase)||"./assets").replace(/\/+$/,"")}),r=ie(null),i=Eo(null),a=ie([]),l=ie(null),c=ie(!0),u=ie(null),f=[{id:"yes",label:"connected 60%+",color:"#10b981"},{id:"partial",label:"partial 25–59%",color:"#e8c15a"},{id:"no",label:"low, under 25%",color:"#b42318"},{id:"unknown",label:"not measured",color:"#9aa2ad"}],h=N=>(f.find(L=>L.id===N)||{}).color||"#9aa2ad",_=re(()=>{const N={};for(const L of a.value)N[L.iso3]=L;return N});async function w(){const[N,L]=await Promise.all([fetch(`${s.value}/tables/internet-by-country.json`).then(b=>b.json()),fetch(`${s.value}/boundaries/world-adm0.geojson`).then(b=>b.json())]);return a.value=N.countries||[],L}function $(N,L){const b=_.value,C={type:"FeatureCollection",features:(L.features||[]).map(S=>{var E;const v=(E=S.properties)==null?void 0:E.iso3,O=b[v];return{type:"Feature",properties:{iso3:v,band:(O==null?void 0:O.band)||"none",color:O?h(O.band):"rgba(0,0,0,0)",hasData:!!O},geometry:S.geometry}})};if(N.getSource("ci-src")){N.getSource("ci-src").setData(C);return}N.addSource("ci-src",{type:"geojson",data:C}),N.addLayer({id:"ci-fill",type:"fill",source:"ci-src",paint:{"fill-color":["get","color"],"fill-opacity":["case",["get","hasData"],.72,0]}}),N.addLayer({id:"ci-line",type:"line",source:"ci-src",paint:{"line-color":"rgba(255,255,255,0.5)","line-width":.5}}),N.on("click","ci-fill",S=>{var O,E,X;const v=(X=(E=(O=S.features)==null?void 0:O[0])==null?void 0:E.properties)==null?void 0:X.iso3;v&&_.value[v]&&(l.value=_.value[v])}),N.on("mouseenter","ci-fill",()=>{N.getCanvas().style.cursor="pointer"}),N.on("mouseleave","ci-fill",()=>{N.getCanvas().style.cursor=""})}qt(async()=>{const N=window.mapboxgl;if(!N||!r.value){u.value="mapbox-gl not loaded";return}try{const L=await w(),b=new N.Map({container:r.value,style:n.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11",accessToken:o.value,center:[42,18],zoom:1.3,projection:"mercator",attributionControl:!1});i.value=_n(b),nm(b,{boundaries:!0}),b.once("load",()=>$(b,L))}catch(L){u.value=String(L.message||L)}}),$n(()=>{var N;try{(N=i.value)==null||N.remove()}catch{}});const I=N=>(Number(N)||0).toLocaleString();return Wt(".gm{position:absolute;inset:0;overflow:hidden}.gm-map{position:absolute;inset:0}.gm-legend{position:absolute;top:8px;left:8px;right:8px;z-index:4;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}.gm-key{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.gm-sw{width:12px;height:12px;border-radius:3px;flex:none}.gm-caveat{margin-top:5px;font-size:10.5px;opacity:.72;line-height:1.4}.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}@media(min-width:700px){.gm-sheet{left:auto;right:14px;bottom:14px;width:330px;border-radius:12px}}.is-dark .gm-sheet{background:#132019;color:#e5e7eb}.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gm-sh-name{font-weight:800;font-size:15px}.gm-ai{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:7px 9px;border-radius:8px;font-size:11px;line-height:1.35;background:rgba(180,120,0,.12);color:#7a4f00;border:1px solid rgba(180,120,0,.25)}.is-dark .gm-ai{background:rgba(255,200,80,.10);color:#f0cf88;border-color:rgba(255,200,80,.22)}.gm-ai-x{margin-left:auto;flex:none;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;color:inherit;opacity:.7;padding:0 2px}.gm-ai-x:hover{opacity:1}.gm-x{margin-left:auto;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;font:600 12px inherit;padding:6px 12px;border-radius:8px;cursor:pointer;min-height:34px}.gm-stat{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.07);font-variant-numeric:tabular-nums}.is-dark .gm-stat{border-bottom-color:rgba(255,255,255,.09)}.gm-stat b{font-weight:700}.gm-list{margin-top:9px}.gm-list-h{font-weight:700;font-size:12px;margin-bottom:3px}.gm-list ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5}.gm-note{margin-top:9px;font-size:11px;line-height:1.5;opacity:.75}.gm-err{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:13px;opacity:.7}","doxa-connectivity-map"),(N,L)=>(Y(),z("div",{class:Te(["gm",{"is-dark":n.value}])},[P("div",{ref_key:"mapEl",ref:r,class:"gm-map"},null,512),i.value?(Y(),Qe(om,{key:0},{default:Vt(()=>[ve(sm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(im,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(am,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(um,{"map-container":r.value,"is-dark":n.value},null,8,["map-container","is-dark"]),ve(xm,{"is-dark":n.value,"embed-path":"cities-internet/connectivity-map/index.html"},null,8,["is-dark"])]),_:1})):Le("",!0),P("div",Pm,[L[2]||(L[2]=P("div",{class:"gm-title"},"Internet access where unengaged people groups live",-1)),P("div",Mm,[(Y(),z(pe,null,lt(f,b=>P("span",{key:b.id,class:"gm-key"},[P("i",{class:"gm-sw",style:Pn({background:b.color})},null,4),$e(Z(b.label),1)])),64))]),L[3]||(L[3]=P("div",{class:"gm-caveat"}," NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country. ",-1))]),u.value?(Y(),z("div",Dm,Z(u.value),1)):Le("",!0),l.value?(Y(),z("div",Bm,[P("div",Rm,[P("span",Wm,Z(l.value.country),1),P("button",{type:"button",class:"gm-x",onClick:L[0]||(L[0]=b=>l.value=null)},"Close")]),c.value?(Y(),z("div",Um,[L[4]||(L[4]=P("span",null,"Data was found by AI deep research — it is subject to false information.",-1)),P("button",{type:"button",class:"gm-ai-x",onClick:L[1]||(L[1]=b=>c.value=!1),"aria-label":"Dismiss"},"×")])):Le("",!0),P("div",jm,[L[5]||(L[5]=P("span",null,"Internet users",-1)),P("b",null,Z(l.value.internet_pct!=null?l.value.internet_pct+"%":"unknown"),1)]),P("div",Gm,[L[6]||(L[6]=P("span",null,"Measured",-1)),P("b",null,Z(l.value.internet_year||"—"),1)]),P("div",Ym,[L[7]||(L[7]=P("span",null,"Mobile per 100",-1)),P("b",null,Z(l.value.mobile_per_100??"—"),1)]),P("div",Vm,[L[8]||(L[8]=P("span",null,"People groups",-1)),P("b",null,Z(I(l.value.people_groups)),1)]),P("div",Hm,[L[9]||(L[9]=P("span",null,"Top platform",-1)),P("b",null,[$e(Z(l.value.top_platform||"unknown"),1),l.value.top_platform_pct?(Y(),z(pe,{key:0},[$e(" · "+Z(l.value.top_platform_pct)+"%",1)],64)):Le("",!0)])]),l.value.carriers&&l.value.carriers.length?(Y(),z("div",qm,[P("div",zm,"Carriers & ISPs ("+Z(l.value.carrier_count)+")",1),P("ul",null,[(Y(!0),z(pe,null,lt(l.value.carriers,(b,m)=>(Y(),z("li",{key:m},Z(b),1))),128))])])):Le("",!0),l.value.platforms&&l.value.platforms.length?(Y(),z("div",Km,[L[10]||(L[10]=P("div",{class:"gm-list-h"},"Social platforms",-1)),P("ul",null,[(Y(!0),z(pe,null,lt(l.value.platforms,(b,m)=>(Y(),z("li",{key:m},Z(b.name)+" · "+Z(b.pct)+"%",1))),128))])])):Le("",!0),L[11]||(L[11]=P("p",{class:"gm-note"}," National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification. ",-1))])):Le("",!0)],2))}}},Symbol.toStringTag,{value:"Module"})),Jm={class:"dt-head"},Zm={class:"dt-title"},Qm={class:"dt-count"},e_={key:0,class:"dt-grain"},t_={class:"dt-actions"},n_={key:0,class:"dt-err"},o_={class:"dt-wrap"},r_={class:"dt-hint"},s_={class:"dt-sheet",role:"dialog","aria-label":"Row detail"},i_={class:"dt-sheet-head"},a_={class:"dt-dl"},l_=["href"],c_={key:1},u_={key:2},p_={key:2,class:"dt-caveats"},d_={class:"dt-cav-k"},f_={__name:"DataTable",props:{table:{type:Object,required:!0},assetsBase:{type:String,default:"./assets"},isDark:{type:Boolean,default:!1},height:{type:String,default:"560px"},frozen:{type:Number,default:1},pageSize:{type:Number,default:50}},emits:["row-click"],setup(e,{emit:t}){const n=e,o=t,s=ie(!1),r=ie(null),i=ie(null),a=Eo(null),l=ie(null),c=ie(!1),u=re(()=>String(n.assetsBase||"./assets").replace(/\/+$/,"")),f=re(()=>{var v;return((v=n.table)==null?void 0:v.meta)||{}}),h=re(()=>{var v;return(((v=n.table)==null?void 0:v.rows)||[]).length}),_=re(()=>Object.entries(f.value).filter(([v,O])=>typeof O=="string"&&/caveat|meaning|note|boundary|measures|does_not/i.test(v)).map(([v,O])=>({key:v.replace(/_/g," "),text:O})));let w=null;function $(){return window.Tabulator?Promise.resolve(window.Tabulator):w||(w=new Promise((v,O)=>{const E=document.createElement("script");E.src=`${u.value}/vendor/tabulator/tabulator.min.js`,E.onload=()=>v(window.Tabulator),E.onerror=()=>O(new Error("Tabulator failed to load — is public/assets/vendor/tabulator/ present?")),document.head.appendChild(E)}),w)}async function I(v){if(!(!v||v.querySelector("style[data-tabulator]")))try{const O=await fetch(`${u.value}/vendor/tabulator/tabulator.min.css`);if(!O.ok)return;const E=document.createElement("style");E.setAttribute("data-tabulator",""),E.textContent=await O.text(),v.appendChild(E)}catch{}}function N(v){var te,H;if(!i.value)return;s.value=typeof window<"u"&&window.innerWidth<700;const O=((te=n.table)==null?void 0:te.columns)||[],X=(s.value?O.slice(0,3):O).map((se,he)=>({title:se.title,field:se.field,headerFilter:se.type==="boolean"?"tickCross":"input",headerFilterPlaceholder:"filter…",sorter:se.type==="number"?"number":se.type==="boolean"?"boolean":"string",formatter:se.type==="boolean"?"tickCross":void 0,.../_url$/.test(se.field)?{formatter:"link",formatterParams:{target:"_blank",label:()=>"open"}}:{},frozen:!s.value&&he{r.value=he.getData(),o("row-click",he.getData())}),a.value.on("tableBuilt",()=>{c.value=!0})}const L=v=>{var O,E;return((E=(((O=n.table)==null?void 0:O.columns)||[]).find(X=>X.field===v))==null?void 0:E.title)||v.replace(/_/g," ")},b=v=>typeof v=="string"&&v.includes(", ")&&v.length>40?v.split(", "):null,m=v=>typeof v=="string"&&/^https?:\/\//.test(v),C=re(()=>r.value?Object.entries(r.value).filter(([,v])=>v!==""&&v!==null&&v!==void 0):[]);function S(v){var O;try{(O=a.value)==null||O.download(v,`${(f.value.title||"table").replace(/\W+/g,"-").toLowerCase()}.${v}`)}catch(E){l.value=String(E.message||E)}}return qt(async()=>{var v,O;try{await I((O=(v=i.value)==null?void 0:v.getRootNode)==null?void 0:O.call(v)),N(await $())}catch(E){l.value=String(E.message||E)}}),$n(()=>{var v;try{(v=a.value)==null||v.destroy()}catch{}}),yt(()=>n.table,()=>{var v,O;try{(O=a.value)==null||O.replaceData(((v=n.table)==null?void 0:v.rows)||[])}catch{}}),Wt(".dt,.dt *{box-sizing:border-box}.dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.dt-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.dt-title{font-size:15px;font-weight:700;margin:0}.dt-count{font-size:11.5px;opacity:.6;font-variant-numeric:tabular-nums}.dt-grain{font-size:11px;opacity:.55}.dt-actions{margin-left:auto;display:flex;gap:6px}.dt-btn{font:600 11.5px inherit;padding:5px 11px;border-radius:6px;cursor:pointer;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-btn:hover{background:rgba(0,0,0,.05)}.dt-err{padding:10px 12px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.dt-caveats{margin-top:10px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.04);font-size:11.5px;line-height:1.6;opacity:.85}.is-dark .dt-caveats{background:rgba(255,255,255,.06)}.dt-cav-k{font-weight:700;text-transform:capitalize}.dt-scrim{position:fixed;inset:0;z-index:1200;background:rgba(8,12,16,.55);display:flex;align-items:flex-end;justify-content:center}@media(min-width:700px){.dt-scrim{align-items:center}}.dt-sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:16px 18px 26px;box-shadow:0 -6px 30px rgba(0,0,0,.3)}@media(min-width:700px){.dt-sheet{border-radius:14px}}.is-dark .dt-sheet{background:#132019;color:#e5e7eb}.dt-sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid rgba(0,0,0,.10);font-size:15px}.dt-close{margin-left:auto;font:600 12px inherit;padding:7px 14px;border-radius:8px;cursor:pointer;min-height:36px;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-dl{display:grid;grid-template-columns:minmax(96px,34%) 1fr;gap:7px 12px;margin:0;font-size:12.5px}.dt-dl dt{font-weight:700;opacity:.72;text-transform:capitalize}.dt-dl dd{margin:0;word-break:break-word}.dt-dl ul{margin:0;padding-left:16px}.dt-dl a{color:#0b7a5b;font-weight:600}.dt-hint{font-size:11px;opacity:.6;margin:6px 0 0}.dt-wrap{width:100%;overflow:hidden;border:1px solid rgba(0,0,0,.10);border-radius:8px}.is-dark .dt-wrap{border-color:rgba(255,255,255,.12)}","doxa-data-table"),(v,O)=>{var E,X;return Y(),z("div",{class:Te(["dt",{"is-dark":e.isDark}])},[P("div",Jm,[P("h3",Zm,Z(f.value.title||"Data"),1),P("span",Qm,Z(h.value.toLocaleString())+" rows",1),f.value.grain?(Y(),z("span",e_,"· "+Z(f.value.grain),1)):Le("",!0),P("span",t_,[P("button",{type:"button",class:"dt-btn",onClick:O[0]||(O[0]=te=>S("csv"))},"CSV"),P("button",{type:"button",class:"dt-btn",onClick:O[1]||(O[1]=te=>S("json"))},"JSON")])]),l.value?(Y(),z("div",n_,Z(l.value),1)):Le("",!0),P("div",o_,[P("div",{ref_key:"host",ref:i},null,512)]),P("p",r_,"Tap any row for its full detail"+Z(s.value?"":" — every field, including the lists the table flattens")+".",1),r.value?(Y(),z("div",{key:1,class:"dt-scrim",onClick:O[3]||(O[3]=gp(te=>r.value=null,["self"]))},[P("div",s_,[P("div",i_,[P("strong",null,Z(r.value[(X=(((E=e.table)==null?void 0:E.columns)||[])[0])==null?void 0:X.field]||"Detail"),1),P("button",{type:"button",class:"dt-close",onClick:O[2]||(O[2]=te=>r.value=null)},"Close")]),P("dl",a_,[(Y(!0),z(pe,null,lt(C.value,([te,H])=>(Y(),z(pe,{key:te},[P("dt",null,Z(L(te)),1),P("dd",null,[m(H)?(Y(),z("a",{key:0,href:H,target:"_blank",rel:"noopener"},Z(H),9,l_)):b(H)?(Y(),z("ul",c_,[(Y(!0),z(pe,null,lt(b(H),(se,he)=>(Y(),z("li",{key:he},Z(se),1))),128))])):(Y(),z("span",u_,Z(H===!0?"yes":H===!1?"no":H),1))])],64))),128))])])])):Le("",!0),_.value.length?(Y(),z("div",p_,[(Y(!0),z(pe,null,lt(_.value,te=>(Y(),z("div",{key:te.key},[P("span",d_,Z(te.key)+":",1),$e(" "+Z(te.text),1)]))),128))])):Le("",!0)],2)}}},h_={class:"ct-tabs"},g_=["onClick"],m_={key:0,class:"ct-n"},__={key:0,class:"ct-err"},b_={key:1,class:"ct-load"},y_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"data-tables",setup(e){const t=Ge("profileConfig",ie(null)),n=re(()=>{var h;return((h=t.value)==null?void 0:h.isDark)===!0}),o=re(()=>{var h;return String(((h=t.value)==null?void 0:h.assetsBase)||"./assets").replace(/\/+$/,"")}),s=[{id:"cities",label:"Key Cities",file:"key-cities"},{id:"internet",label:"Connectivity",file:"country-connectivity"},{id:"operators",label:"ISPs & Carriers",file:"network-operators"},{id:"social",label:"Social Platforms",file:"social-platforms"},{id:"messaging",label:"Messaging Apps",file:"messaging-channels"}],r=ie("cities"),i=re(()=>s.find(h=>h.id===r.value)||s[0]),a=ie({}),l=ie(!1),c=ie(null);async function u(h){if(!a.value[h]){l.value=!0,c.value=null;try{const _=await fetch(`${o.value}/tables/${h}.json`);if(!_.ok)throw new Error(`table not found (${_.status})`);a.value={...a.value,[h]:await _.json()}}catch(_){c.value=String(_.message||_)}finally{l.value=!1}}}yt(i,h=>h&&u(h.file),{immediate:!0});const f=re(()=>{var h;return a.value[(h=i.value)==null?void 0:h.file]||null});return Wt(".ct{position:absolute;inset:0;overflow-y:auto;padding:18px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ct.is-dark{background:#0a1410;color:#e5e7eb}.ct-h{margin:0 0 4px;font-size:18px;font-weight:700}.ct-sub{margin:0 0 14px;font-size:12.5px;opacity:.72;line-height:1.5}.ct-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.ct-tab{font:600 12px inherit;padding:7px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit}.ct-tab.on{background:#10b981;border-color:#10b981;color:#04241a}.ct-load{padding:22px;text-align:center;font-size:12.5px;opacity:.6}.ct-err{padding:11px 13px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.ct-n{font-size:10.5px;opacity:.6;margin-left:5px;font-variant-numeric:tabular-nums}","doxa-cities-tables"),(h,_)=>(Y(),z("div",{class:Te(["ct",{"is-dark":n.value}])},[_[0]||(_[0]=P("h2",{class:"ct-h"},"Cities Data",-1)),_[1]||(_[1]=P("p",{class:"ct-sub"}," Where the unengaged people groups live — and what reaches them. Sort, filter and export any table; each carries its own sources and limits. ",-1)),P("div",h_,[(Y(),z(pe,null,lt(s,w=>P("button",{key:w.id,type:"button",class:Te(["ct-tab",{on:r.value===w.id}]),onClick:$=>r.value=w.id},[$e(Z(w.label),1),a.value[w.file]?(Y(),z("span",m_,Z((a.value[w.file].rows||[]).length.toLocaleString()),1)):Le("",!0)],10,g_)),64))]),c.value?(Y(),z("div",__,Z(c.value),1)):f.value?(Y(),Qe(f_,{key:i.value.id,table:f.value,"assets-base":o.value,"is-dark":n.value,height:"600px"},null,8,["table","assets-base","is-dark"])):(Y(),z("div",b_,"Loading "+Z(i.value.label)+"…",1))],2))}}},Symbol.toStringTag,{value:"Module"}))})(); diff --git a/public/doxa-maps/cities-internet/connectivity-list/index.html b/public/doxa-maps/cities-internet/connectivity-list/index.html index 19c1743e7..8a726e268 100644 --- a/public/doxa-maps/cities-internet/connectivity-list/index.html +++ b/public/doxa-maps/cities-internet/connectivity-list/index.html @@ -5,13 +5,10 @@ connectivity-list · cities-internet - - - - - - + -`,t}function r_(e={}){const{getMap:t=()=>null,getActivePinColor:o=null}=e,n=Te("uiStore");let a=null,r=null;const s=o??Te("getActivePinColor",null);let i=rs;function l(){const m=t();m&&(m.getLayer(Vo)||m.getSource("language-families")&&m.addLayer({id:Vo,type:"circle",source:"language-families",paint:{"circle-radius":["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],"circle-color":i,...Wa(m),"circle-opacity":1,"circle-stroke-width":2,"circle-stroke-color":"#FFFFFF","circle-stroke-opacity":1},filter:["==",["get","uniqueId"],"__none__"]}))}function c(){a||(a=a_(rs))}function u(m,v){const g=t();g&&(c(),r&&r.remove(),r=new mapboxgl.Marker({element:a,anchor:"bottom",offset:[0,0]}).setLngLat([m,v]).addTo(g))}function f(){r&&(r.remove(),r=null)}function b(m){var p,_;const v=t();if(!v)return;if(m&&(i=(s==null?void 0:s(m.properties))??rs),l(),v.getLayer(Vo)&&(v.setPaintProperty(Vo,"circle-color",i),Xp(v)&&v.setPaintProperty(Vo,"circle-emissive-strength",1)),!m){v.getLayer(Vo)&&v.setFilter(Vo,["==",["get","uniqueId"],"__none__"]),f();return}const g=((p=m.properties)==null?void 0:p.uniqueId)||"__none__",y=(_=m.geometry)==null?void 0:_.coordinates;if(!y)return;v.getLayer(Vo)&&v.setFilter(Vo,["==",["get","uniqueId"],g]);const[d,h]=y;u(d,h)}De(()=>n.selectedPeopleGroup,m=>{b(m)});function k(){l()}function x(){f(),a=null}return{initialize:k,cleanup:x,updateSelectedPin:b}}const ss="doxa-country-outline",Ya="doxa-country-outline-line",s_="mapbox://mapbox.country-boundaries-v1",i_="country_boundaries";function l_(e,t){if(!e)return"";const o=Array.isArray(t)?t:[],n=Array.isArray(e.memberIds)?e.memberIds.map(String):[],a=new Set(n);let r=n.length?o.find(s=>a.has(String(s.uniqueId??s.id??s.slug??""))):null;if(!r){const s=String(e.label??"").toLowerCase();r=o.find(i=>String(i.countryName??i.country??"").toLowerCase()===s)}return String((r==null?void 0:r.countryIso)??"").trim().toUpperCase()}function c_(e){return["all",["==",["get","iso_3166_1_alpha_3"],e],["any",["==",["get","worldview"],"all"],["in","US",["get","worldview"]]]]}function u_(e,t={}){const o=t.lineColor??"#2563eb",n=t.lineWidth??2.5,a=t.lineOpacity??.8;function r(){const i=typeof e=="function"?e():null;if(i)try{i.getLayer(Ya)&&i.removeLayer(Ya),i.getSource(ss)&&i.removeSource(ss)}catch{}}function s(i){const l=String(i||"").trim().toUpperCase();if(l.length!==3)return;const c=typeof e=="function"?e():null;if(!c)return;const u=c_(l);if(c.getLayer(Ya))try{c.setFilter(Ya,u);return}catch{}r();try{c.addSource(ss,{type:"vector",url:s_}),c.addLayer({id:Ya,type:"line",source:ss,"source-layer":i_,filter:u,layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":o,"line-width":n,"line-opacity":a,"line-emissive-strength":1}})}catch{}}return{showCountry:s,clearCountry:r}}const tg="doxa-prayed-local",d_=7*24*60*60*1e3;function og(){try{const e=localStorage.getItem(tg);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function ng(e){try{localStorage.setItem(tg,JSON.stringify(e))}catch{}}function p_(){const e=Date.now(),t=og();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>d_)&&(delete t[n],o=!0);return o&&ng(t),new Set(Object.keys(t))}function g_(e){if(!e)return;const t=og();t[e]=Date.now(),ng(t);try{window.dispatchEvent(new CustomEvent("doxa:prayed-locally",{detail:{slug:e}}))}catch{}}function f_(e){const t=p_();return!t.size||!Array.isArray(e)?e:e.map(o=>(Number(o&&o.peoplePraying)||0)>0||!o||!t.has(o.slug)?o:{...o,peoplePraying:1})}const ag={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"};function pl(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const h_=[[/ sign language$/i,"Sign Language"]];function m_(e){var i,l;const t=pl(e.languageFamily);if(t)return t;const o=String(((l=(i=e._raw)==null?void 0:i.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(o&&ag[o])return ag[o];const n=pl(e.language||e.primary_language);if(!n||typeof n!="string")return"";const a=n.trim(),r=a.split(",").map(c=>c.trim()).filter(Boolean);if(r.length>=2){const c=[...r].reverse().join(" ");if(qe[c])return qe[c];if(r.length>=3){const u=[r[1],r[0]].join(" ");if(qe[u])return qe[u]}}if(qe[a])return qe[a];const s=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(s!==a&&qe[s])return qe[s];for(const[c,u]of h_)if(c.test(a))return u;return""}function b_(e){const{mapId:t="unknown",dataSourceId:o="doxa-csv",dataSourceManager:n=null,dataStore:a=null,markRaw:r=L=>L}=e;n||console.error("useMapData: dataSourceManager is required!");const s=le(!1),i=le(null),l=le(!1),c=le([]),u=le([]),f=le(null),b=le([]),k=le([]),x=le([]),m=le(null);async function v(){if(!n)throw new Error("dataSourceManager is required for useMapData");s.value=!0,i.value=null;try{if(await n.init(),a&&a.hasSourceData&&a.hasSourceData(o)){const $=a.getSourceData(o);u.value=r($.normalizedData||[])}else{const $=await n.setActiveSource(o);for(const T of $){const N=pl(T.language||T.primary_language);N&&(T.language=N);const q=m_(T);T.languageFamily=ns(q)}u.value=r($),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:$,timestamp:Date.now()})}c.value=r(f_(u.value.map($=>({id:$.uniqueId,slug:$.slug||"",rop3:$.peopleGroupId,peopleId3:$.peopleId3,name:$.name,language:$.language,languageFamily:$.languageFamily,country:$.country,population:$.population,status:$.engagementStatus||$.status,latitude:$.latitude,longitude:$.longitude,lng:$.longitude,lat:$.latitude,description:$.description,imageUrl:$.imageUrl,doxaRegion:$.doxaRegion||$.wagfRegion||"",peoplePraying:$.peoplePraying??null,_normalized:$}))));const L=n.getDataByLanguageFamily();b.value=Object.entries(L).map(([$,T])=>{const N=T.reduce((q,ce)=>{const ee=parseInt(ce.population)||0;return q+ee},0);return{name:$,count:T.length,peopleGroupCount:T.length,population:N,groups:T}}).sort(($,T)=>T.count-$.count);const R=n.getDataByRegion();k.value=Object.entries(R).map(([$,T])=>{const N=T.reduce((q,ce)=>{const ee=parseInt(ce.population)||0;return q+ee},0);return{name:$,count:T.length,peopleGroupCount:T.length,population:N,groups:T}}).sort(($,T)=>$.name.localeCompare(T.name));const S={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach($=>{const T=parseInt($.population)||0;let N=!1;$.bible==="Available"&&(S.bible.count++,S.bible.population+=T,S.bible.groups.push($),N=!0),$.jesusFilm==="Available"&&(S.jesusFilm.count++,S.jesusFilm.population+=T,S.jesusFilm.groups.push($),N=!0),$.radio==="Available"&&(S.radio.count++,S.radio.population+=T,S.radio.groups.push($),N=!0),$.gospel==="Available"&&(S.gospel.count++,S.gospel.population+=T,S.gospel.groups.push($),N=!0),$.audio==="Available"&&(S.audio.count++,S.audio.population+=T,S.audio.groups.push($),N=!0),$.stories==="Available"&&(S.stories.count++,S.stories.population+=T,S.stories.groups.push($),N=!0),N?(S.hasResources.count++,S.hasResources.population+=T,S.hasResources.groups.push($)):(S.noResources.count++,S.noResources.population+=T,S.noResources.groups.push($))});const z=u.value.length,j=u.value.reduce(($,T)=>$+(parseInt(T.population)||0),0),O={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},D={bible:{count:z-S.bible.count,population:j-S.bible.population},jesusFilm:{count:z-S.jesusFilm.count,population:j-S.jesusFilm.population},radio:{count:z-S.radio.count,population:j-S.radio.population},gospel:{count:z-S.gospel.count,population:j-S.gospel.population},audio:{count:z-S.audio.count,population:j-S.audio.population},stories:{count:z-S.stories.count,population:j-S.stories.population}},M="#2c3e50";return x.value=[{name:O.bible,key:"bible",count:S.bible.count,population:S.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:D.bible.count,population:D.bible.population,color:M}]},{name:O.jesusFilm,key:"jesusFilm",count:S.jesusFilm.count,population:S.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:D.jesusFilm.count,population:D.jesusFilm.population,color:M}]},{name:O.radio,key:"radio",count:S.radio.count,population:S.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:D.radio.count,population:D.radio.population,color:M}]},{name:O.gospel,key:"gospel",count:S.gospel.count,population:S.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:D.gospel.count,population:D.gospel.population,color:M}]},{name:O.audio,key:"audio",count:S.audio.count,population:S.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:D.audio.count,population:D.audio.population,color:M}]},{name:O.stories,key:"stories",count:S.stories.count,population:S.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:D.stories.count,population:D.stories.population,color:M}]},{name:O.hasResources,key:"hasResources",count:S.hasResources.count,population:S.hasResources.population,isParent:!0,children:[{name:O.noResources,key:"noResources",count:S.noResources.count,population:S.noResources.population,color:M}]}],m.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:b.value,doxaRegionsData:k.value,resourcesData:x.value,stats:m.value}}catch(L){throw console.error(`Failed to load data for map "${t}":`,L),i.value=L.message||"Failed to load data",L}finally{s.value=!1}}async function g(){var L,R,S;try{const z={},j=u.value||[];for(const O of j){const D=O.countryIso||((R=(L=O._raw)==null?void 0:L.country_code)==null?void 0:R.value)||"",M=(S=O._raw)==null?void 0:S.wagf_region,$=O.doxaRegion||O.wagfRegion||(M&&typeof M=="object"?M.value:"")||"";D&&$&&!z[D]&&(z[D]=$)}return f.value={isoToRegion:z},f.value}catch(z){throw console.error(`Error building regions data for map "${t}":`,z),i.value=z.message||"Failed to build regions",z}}function y(){return n?n.getDataByLanguageFamily():{}}function d(){return n?n.getDataByRegion():{}}function h(L){return y()[L]||[]}function p(L){return d()[L]||[]}function _(){c.value=[],u.value=[],f.value=null,b.value=[],k.value=[],x.value=[],m.value=null,l.value=!1,i.value=null}return{isLoading:s,isInitialized:l,error:i,peopleGroups:c,normalizedPeopleGroups:u,regionsData:f,languageFamiliesData:b,doxaRegionsData:k,resourcesData:x,stats:m,loadData:v,loadRegionsData:g,getDataByLanguageFamily:y,getDataByRegion:d,getPeopleGroupsByFamily:h,getPeopleGroupsByRegion:p,clearData:_}}function y_(e){const{map:t,geocoderRef:o,clustering:n,mapStore:a,uiStore:r,mapLayers:s,pplrInstance:i,onSemanticTreeSelect:l,switchTab:c,activeTabId:u,clearAllHighlights:f,clearCountryHighlight:b,mapId:k,supportedKinds:x,legendRouters:m={},peopleGroupResult:v,busAdapter:g}=e,y=e.filterLayerId||"language-family-pins";let d=!1;function h(){var $,T,N,q,ce;d=!0;const D=(T=($=o.value)==null?void 0:$.geocoder)==null?void 0:T.value;(N=D==null?void 0:D.clear)==null||N.call(D);const M=(D==null?void 0:D._inputEl)||((ce=(q=D==null?void 0:D.container)==null?void 0:q.querySelector)==null?void 0:ce.call(q,"input.mapboxgl-ctrl-geocoder--input"));if(M){M.value="";try{M.dispatchEvent(new Event("input",{bubbles:!0}))}catch{}}d=!1}function p(D,M){const $=`${y}-hitbox`;if(D!=null&&D.getLayer($))try{D.setFilter($,M)}catch{}}function _(){typeof window>"u"||typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:reveal-selected",{detail:{mapId:k}}))}const L={country:"countryName","language-family":"languageFamily",language:"language",dialect:"language",religion:"religionName",region:"doxaRegion","affinity-bloc":"affinityBlock",cluster:"cluster","people-group":"peopleGroup"};function R(D,M,$){var T,N,q;if(D.kind==="language")return["any",["==",["get",M],$],["==",["slice",["get",M],0,$.length+1],$+","],["in"," "+$,["get",M]]];if(D.kind==="dialect"){const ce=Array.isArray(D.originalLabels)?D.originalLabels:[];return ce.length===1?["==",["get",M],ce[0]]:ce.length>1?["in",["get",M],["literal",ce]]:["==",["get",M],$]}else if(D.kind==="affinity-bloc"){const ce=D.blocCode||((T=D.properties)==null?void 0:T.blocCode)||"";return ce?["==",["get","affinityBlock"],ce]:["==",["get","affinityBlockLabel"],$]}else if(D.kind==="cluster"){const ce=D.clusterCode||((N=D.properties)==null?void 0:N.clusterCode)||"",ee=D.blocCode||((q=D.properties)==null?void 0:q.blocCode)||"";return ce&&ee?["all",["==",["get","affinityBlock"],ee],["==",["get","cluster"],ce]]:["==",["get","clusterLabel"],$]}else return["==",["get",M],$]}function S(D){if(!D||x&&!x.includes(D.kind))return null;const M=L[D.kind]||null,$=D.label;return!M||$==null||$===""?null:{kind:D.kind,value:$,property:M,expr:R(D,M,$)}}function z(D){var T,N,q,ce;if(!D)return;b==null||b();const M=de(t),$=((T=D.properties)==null?void 0:T.id)||((N=D.properties)==null?void 0:N.uniqueId)||null;if((q=r==null?void 0:r.selectPeopleGroup)==null||q.call(r,{...D,properties:{...D.properties,uniqueId:$}}),M&&$!=null&&M.getLayer(y)){const ee=["==",["get","uniqueId"],$];try{M.setFilter(y,null)}catch{}p(M,ee),M.setPaintProperty(y,"circle-opacity",["case",ee,1,0]),M.setPaintProperty(y,"circle-stroke-opacity",["case",ee,1,0]),M.getLayer(`${y}-shadow`)&&M.setPaintProperty(`${y}-shadow`,"circle-opacity",["case",ee,1,0]),(ce=s==null?void 0:s.syncGlowFilter)==null||ce.call(s,ee)}}function j(D){var ce;if(g){const ee=S(D);if(!ee)return;g.aggregate(ee,D);return}const M=de(t);if(!D||!M||!M.getLayer(y)||x&&!x.includes(D.kind))return;D.kind!=="country"&&(b==null||b());const $=S(D);if(!$)return;const{property:T,value:N}=$;try{M.setFilter(y,$.expr)}catch{}n.setSelectionFilter({property:T,value:N});let q=!1;if(D.kind==="language-family"||D.kind==="family")a.selectFamily(D.label),a.setActiveLegendTab("family"),q=!0;else if(D.kind==="language")a.selectLanguage(D.label),a.setActiveLegendTab("language"),q=!0;else if(D.kind==="dialect"){const ee=Array.isArray(D.originalLabels)?D.originalLabels:[],oe=D.familyDerived||"",H=D.baseLang||"",pe=D.dialectLabel||"",we=`${oe}__${H}__${pe}`;(ce=a.selectDialect)==null||ce.call(a,{key:we,originalLabels:ee}),a.setActiveLegendTab("dialect"),q=!0}else if(D.kind==="affinity-bloc"||D.kind==="cluster"||D.kind==="people-group"){let ee=null;if(D.kind==="affinity-bloc"){const oe=D.blocCode||"";ee={id:`bloc:${oe}`,label:D.label,depth:0,filter:oe?["==",["get","affinityBlock"],oe]:null}}else if(D.kind==="cluster"){const oe=D.blocCode||"",H=D.clusterCode||"";ee={id:`cluster:${oe}__${H}`,label:D.label,depth:1,filter:H?["==",["get","cluster"],H]:null}}else if(D.kind==="people-group"){const oe=D.blocCode||"",H=D.clusterCode||"",pe=D.peopleGroupCode||"";ee={id:`pg:${oe}__${H}__${pe}`,label:D.label,depth:2,filter:pe?["==",["get","peopleGroup"],pe]:null}}if(ee&&ee.filter){const oe=()=>{try{M.setFilter(y,null)}catch{}l(ee),i&&i.selection&&(i.selection.value=ee)};u.value!=="affinity-blocks"?(c("affinity-blocks"),jt(oe)):oe()}q=!0}else m[D.kind]&&(m[D.kind](D,{map:M,filterLayerId:y,clearGeocoder:h,emitLegendReveal:_,property:T,value:N}),q=!0);q&&(h(),_())}function O(){var M,$,T;if(g){g.clear();return}if(d)return;b==null||b();const D=de(t);a.selectedRegion&&((M=a.selectRegion)==null||M.call(a,null)),a.selectedResource&&(($=a.selectResource)==null||$.call(a,null)),D&&D.getLayer(y)?f(D):(a.selectFamily(null),a.selectLanguage(null),(T=a.selectDialect)==null||T.call(a,null),n.setSelectionFilter(null))}return{onPeopleGroupResult:g?D=>g.peopleGroup(D):v||z,onAggregateResult:j,onClear:O,clearGeocoderProgrammatic:h}}const gl={};function fl(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Nn&&Nn.tagName.toUpperCase()==="SCRIPT"&&Nn.src||new URL("country-posters.js",document.baseURI).href}<"u"&&(gl==null?void 0:gl.VITE_API_BASE_URL)||""}const hl=le(0),is=le(0),ls=le(0),ml=le(!1),bl=le(!1),yl=le(null);let Xa=null;async function v_(){if(!ml.value)return Xa||(bl.value=!0,yl.value=null,Xa=(async()=>{var e,t;try{const o=((e=Sn==null?void 0:Sn.sources)==null?void 0:e[Sn.activeSource])||{},n=fl(),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();hl.value=Number(s.total||0),is.value=Number(s.total_with_prayer_committed??s.total_with_prayer??0),ls.value=Number(s.total_with_100_committed??s.total_with_full_prayer??0),ml.value=!0}catch(o){yl.value=o&&o.message?o.message:String(o)}finally{bl.value=!1,Xa=null}})(),Xa)}function __(){return{total:hl,withPrayer:is,withFullPrayer:ls,loaded:ml,loading:bl,error:yl,load:v_,noPrayerCount:()=>Math.max(0,hl.value-is.value),hasPrayerCount:()=>Math.max(0,is.value-ls.value),fullPrayerCount:()=>ls.value}}function x_(e){return(e==null?void 0:e.properties)||e||{}}function cs(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function k_(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(qe[n])return qe[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(qe[a])return qe[a]}}if(qe[e])return qe[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&qe[o]?qe[o]:null}const w_=[[/ sign language$/i,"Sign Language"]];function A_(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function S_(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function L_(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=cs(t),n=ns(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=cs(a);if(r){const u=String(r).trim(),f=k_(u);if(f)return f;for(const[b,k]of w_)if(b.test(u))return k}return"Unknown"}function C_(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=cs(t);if(s)return String(s).trim()}const o=e.primary_language??e.primaryLanguage??e.language,n=cs(o);return n&&String(n).trim()||"— Unknown —"}function E_(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 $_(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 T_(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function P_(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 N_(e,t){return t.peopleGroupCount!==e.peopleGroupCount?t.peopleGroupCount-e.peopleGroupCount:(t.population||0)-(e.population||0)}function us(e,t){return(t.population||0)!==(e.population||0)?(t.population||0)-(e.population||0):t.peopleGroupCount-e.peopleGroupCount}function vl(e,t={}){t.aggregator;const o=Fn({});function n(m){return!!o[m]}function a(m){o[m]=!o[m]}function r(m){const v=new Set(Array.isArray(m)?m:[]);for(const g of Object.keys(o))v.has(g)||(o[g]=!1);for(const g of v)o[g]=!0}const s=Q(()=>{const m=(e==null?void 0:e.value)||[],v=new Map;for(const g of m){const y=x_(g),d=L_(y),h=C_(y),p=A_(h),_=S_(h),L=E_(y),R=$_(g,y),S=T_(g,y),z=P_(g,y);let j=v.get(d);j||(j={key:d,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},v.set(d,j)),j.peopleGroupCount+=1,j.population+=L,R!=null&&j.pinIds.push(R),z&&j.coords.push(z),S&&!j.clusterId&&(j.clusterId=S);let O=j.languages.get(p);if(O||(O={key:p,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},j.languages.set(p,O)),O.peopleGroupCount+=1,O.population+=L,R!=null&&O.pinIds.push(R),z&&O.coords.push(z),S&&!O.clusterId&&(O.clusterId=S),_){let D=O.dialects.get(_);D?D.originalLabels.add(h):(D={key:_,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([h])},O.dialects.set(_,D)),D.peopleGroupCount+=1,D.population+=L,R!=null&&D.pinIds.push(R),z&&D.coords.push(z)}}return v}),i=t.showAllKnown!==!1,l=Q(()=>{const m=s.value,v=[],g=new Set;for(const y of m.values())v.push({key:y.key,label:y.key,color:so(y.key),peopleGroupCount:y.peopleGroupCount,population:y.population,kind:y.clusterId?"cluster":"family",clusterId:y.clusterId||void 0,pinIds:y.pinIds,coords:y.coords}),g.add(y.key);if(i)for(const y of Object.keys(Mp))g.has(y)||v.push({key:y,label:y,color:so(y),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return v.sort(N_),v});function c(m){const v=s.value.get(m);if(!v)return[];const g=[];for(const y of v.languages.values())g.push({key:`${m}__${y.key}`,label:y.key,color:so(m),peopleGroupCount:y.peopleGroupCount,population:y.population,kind:y.clusterId?"cluster":"language",familyKey:m,clusterId:y.clusterId||void 0,pinIds:y.pinIds,coords:y.coords,hasDialects:y.dialects.size>0});return g.sort(us),g}function u(m){const v=m.indexOf("__");if(v<0)return[];const g=m.slice(0,v),y=m.slice(v+2),d=s.value.get(g);if(!d)return[];const h=d.languages.get(y);if(!h)return[];const p=[];for(const _ of h.dialects.values())p.push({key:`${m}__${_.key}`,label:`${y}, ${_.key}`,dialectOnly:_.key,color:so(g),peopleGroupCount:_.peopleGroupCount,population:_.population,kind:"dialect",languageKey:y,familyKey:g,pinIds:_.pinIds,coords:_.coords,originalLabels:Array.from(_.originalLabels)});return p.sort(us),p}const f=Q(()=>{const m=s.value,v=[];for(const g of m.values())for(const y of g.languages.values())v.push({key:`${g.key}__${y.key}`,label:y.key,color:so(g.key),peopleGroupCount:y.peopleGroupCount,population:y.population,kind:y.clusterId?"cluster":"language",familyKey:g.key,clusterId:y.clusterId||void 0,pinIds:y.pinIds,coords:y.coords,hasDialects:y.dialects.size>0});return v.sort(us),v}),b=Q(()=>{const m=s.value,v=[];for(const g of m.values())for(const y of g.languages.values())for(const d of y.dialects.values())v.push({key:`${g.key}__${y.key}__${d.key}`,label:`${y.key}, ${d.key}`,dialectOnly:d.key,color:so(g.key),peopleGroupCount:d.peopleGroupCount,population:d.population,kind:"dialect",languageKey:y.key,familyKey:g.key,pinIds:d.pinIds,coords:d.coords,originalLabels:Array.from(d.originalLabels)});return v.sort(us),v});function k(m){let v=m;if(typeof m=="string"&&(v=l.value.find(y=>y.key===m),!v))return;const g={kind:v.kind,pinIds:v.pinIds||[],coords:v.coords||[]};v.kind==="family"&&(g.familyKey=v.label),v.kind==="language"&&(g.languageKey=v.label,g.familyKey=v.familyKey),v.kind==="dialect"&&(g.dialectKey=v.key,g.dialectOnly=v.dialectOnly||v.label,g.languageKey=v.languageKey,g.familyKey=v.familyKey,g.originalLabels=v.originalLabels||[]),v.kind==="cluster"&&(g.clusterId=v.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:g}))}const x=Q(()=>{const m=s.value,v=[];for(const g of m.values()){const y=so(g.key),d=[];for(const p of g.languages.values()){p.key&&p.key!=="— Unknown —"&&d.push(p.key);for(const _ of p.dialects.values())for(const L of _.originalLabels)L&&d.push(L)}const h={id:`fam:${g.key}`,label:g.key,color:y,count:g.peopleGroupCount,pop:g.population,filter:d.length>0?["any",["==",["get","languageFamily"],g.key],["in",["get","language"],["literal",Array.from(new Set(d))]]]:["==",["get","languageFamily"],g.key],children:[]};for(const p of g.languages.values()){const _=p.key,L={id:`lang:${g.key}__${_}`,label:_,color:y,count:p.peopleGroupCount,pop:p.population,filter:["any",["==",["get","language"],_],["==",["slice",["get","language"],0,_.length+1],_+","],["in"," "+_,["get","language"]]],children:[]};for(const R of p.dialects.values()){const S=Array.from(R.originalLabels);L.children.push({id:`dial:${g.key}__${_}__${R.key}`,label:`${_}, ${R.key}`,color:y,count:R.peopleGroupCount,pop:R.population,filter:S.length===1?["==",["get","language"],S[0]]:["in",["get","language"],["literal",S]],originalLabels:S,children:[]})}h.children.push(L)}v.push(h)}return v.sort((g,y)=>y.pop-g.pop||y.count-g.count),v});return{rows:l,languageRows:f,dialectRows:b,langTree:x,toggle:a,isExpanded:n,setExpansionToOnly:r,childRowsFor:c,dialectRowsFor:u,highlight:k}}const M_=[];function I_(){const e=wo(Xn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function R_(){const e=wo(Xn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function F_(){const e=wo(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 En(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 rg=100;function O_(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 _l(e){return t=>{const o=O_(t);return e==="fullPrayer"?o>=rg:e==="hasPrayer"?o>0&&o0||typeof t=="string"&&parseInt(t,10)>0}function ig(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 D_={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 ea(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function B_(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function G_(e){return(Number(e)||0).toLocaleString()}function Ja(e,t={}){const o=Te("dataStore"),n=Te("uiStore"),a=Te("mapStore"),{t:r}=ht(),s=__();s.load();const i=Q(()=>{if(ea(e.value)==="religion")return"Religion";const g=D_[e.value];return g?r(g):""}),l=Q(()=>ea(e.value)==="affinity-blocs"?M_:[{key:"count",label:r("legend.columns.upgs"),width:48},{key:"population",label:r("legend.columns.population"),width:48}]),c=Q(()=>{const v=ea(e.value);return v==="prayer"?n.prayerFilter:v==="engagement"?n.engagementFilter:v==="adoption"?n.adoptionFilter:v==="language-families"?a.selectedFamily:v==="doxa-regions"?a.selectedRegion:v==="gospel-resources"?a.selectedResource:v==="religion"?n.religionFilter:null});function u(v){const g=ea(e.value);g==="prayer"?n.setPrayerFilter(n.prayerFilter===v?null:v):g==="engagement"?n.setEngagementFilter(n.engagementFilter===v?null:v):g==="adoption"?n.setAdoptionFilter(n.adoptionFilter===v?null:v):g==="language-families"?a.selectFamily(a.selectedFamily===v?null:v):g==="doxa-regions"?a.selectRegion(a.selectedRegion===v?null:v):g==="gospel-resources"?a.selectResource(a.selectedResource===v?null:v):g==="religion"&&n.setReligionFilter(n.religionFilter===v?null:v)}const f=Q(()=>{var g,y,d,h;const v=ea(e.value);if(v==="prayer"){const p=En(o,_l("noPrayer")),_=En(o,_l("hasPrayer")),L=En(o,_l("fullPrayer")),R=s.loaded.value,S=R?s.noPrayerCount():p.count,z=R?s.hasPrayerCount():_.count,j=R?s.fullPrayerCount():L.count;return[{key:"noPrayer",label:r("legend.prayer.needsPrayer"),color:Ln.noPrayer,count:S,population:p.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:r("legend.prayer.hasPrayer"),color:Ln.hasPrayer,count:z,population:_.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:r("legend.prayer.fullPrayerCoverage"),color:Ln.fullPrayer,count:j,population:L.population,filterKey:"fullPrayer"}]}]}if(v==="engagement"){const p=En(o,L=>!sg(L)),_=En(o,L=>sg(L));return[{key:"notEngaged",label:r("legend.engagement.needsEngagement"),color:Ji.notEngaged,count:p.count,population:p.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:r("legend.engagement.hasEngagement"),color:Ji.hasEngagement,count:_.count,population:_.population,filterKey:"hasEngagement"}]}]}if(v==="adoption"){const p=En(o,L=>!ig(L)),_=En(o,L=>ig(L));return[{key:"notAdopted",label:r("legend.adoption.needsAdoption"),color:Wi.notAdopted,count:p.count,population:p.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:r("legend.adoption.hasAdoption"),color:Wi.hasAdoption,count:_.count,population:_.population,filterKey:"hasAdoption"}]}]}if(v==="religion"){const p={},L=Object.values(o.sources||{}).flatMap(z=>(z==null?void 0:z.features)||[]);for(const z of L){const j=z.properties||z,O=j.religion||((y=(g=j._raw)==null?void 0:g.religion)==null?void 0:y.value)||((d=j._raw)==null?void 0:d.religion)||"",D=qa(O);p[D]||(p[D]={count:0,population:0}),p[D].count+=1,p[D].population+=parseInt(j.population||((h=j._raw)==null?void 0:h.Population)||0)||0}const R=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const z of R)delete p[z];return Object.keys(p).sort((z,j)=>z==="C"?-1:j==="C"?1:p[j].population-p[z].population).map(z=>({key:z,label:Cn[z]||"Unknown",color:Kt[z]||"#94a3b8",count:p[z].count,population:p[z].population,filterKey:z,children:[]}))}if(v==="language-families")return(o.languageFamiliesData||[]).map(p=>({key:p.name,label:p.name,color:so(p.name),count:p.count,population:p.population,filterKey:p.name,children:[]}));if(v==="language-family"){const _={value:Object.values(o.sources||{}).flatMap(R=>(R==null?void 0:R.features)||[])},{rows:L}=vl(_);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(v==="doxa-regions"){const p=R_();return(o.doxaRegionsData||[]).map(_=>({key:_.name,label:_.name,color:p[_.name]||"#999",count:_.count,population:_.population,filterKey:_.name,children:[]}))}if(v==="gospel-resources"){const p=I_(),_=(p==null?void 0:p.palette)??{},L=(p==null?void 0:p.names)??{},R=o.resourcesData||[];return Object.keys(_).map(S=>{const z=R.find(j=>j.key===S);return{key:S,label:L[S]||S,color:_[S],count:(z==null?void 0:z.count)||0,population:(z==null?void 0:z.population)||0,filterKey:S,children:((z==null?void 0:z.children)||[]).map(j=>({key:j.key,label:j.name||j.key,color:j.color||_[S],count:j.count||0,population:j.population||0,filterKey:j.key}))}})}if(v==="affinity-blocs"){const p=F_();return Object.keys(p).sort().map(_=>({key:_,label:_,color:p[_],filterKey:_,children:[]}))}return[]});function b(v,g){return v.reduce((y,d)=>{var p;let h=d[g]||0;return(p=d.children)!=null&&p.length&&(h+=b(d.children,g)),y+h},0)}const k=Q(()=>b(f.value,"count")),x=Q(()=>b(f.value,"population")),m=Q(()=>{if(ea(e.value)!=="prayer")return null;const v=f.value[0];if(!v)return null;const g=(v.children||[]).find(L=>L.key==="hasPrayer"),y=(v.children||[]).find(L=>L.key==="fullPrayer"),d=Number(v.count)||0,h=Number(g==null?void 0:g.count)||0,p=Number(y==null?void 0:y.count)||0,_=(Number(g==null?void 0:g.population)||0)+(Number(y==null?void 0:y.population)||0);return{covered:h+p,total:k.value,coveredPopulation:_,totalPopulation:x.value,segments:[{key:"fullPrayer",label:(y==null?void 0:y.label)??r("legend.prayer.fullPrayerCoverage"),count:p,color:Ln.fullPrayer},{key:"hasPrayer",label:(g==null?void 0:g.label)??r("legend.prayer.hasPrayer"),count:h,color:Ln.hasPrayer},{key:"noPrayer",label:v.label,count:d,color:Ln.noPrayer}]}});return{items:f,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:k,totalPopulation:x,progress:m,fmtPop:B_,fmtCount:G_}}class lg{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=Sn,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",r=!1,s=[],i=!0;for(let l=0;lnull,getActivePinColor:o=null}=e,n=Te("uiStore");let a=null,r=null;const s=o??Te("getActivePinColor",null);let i=rs;function l(){const m=t();m&&(m.getLayer(Vo)||m.getSource("language-families")&&m.addLayer({id:Vo,type:"circle",source:"language-families",paint:{"circle-radius":["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],"circle-color":i,...Wa(m),"circle-opacity":1,"circle-stroke-width":2,"circle-stroke-color":"#FFFFFF","circle-stroke-opacity":1},filter:["==",["get","uniqueId"],"__none__"]}))}function c(){a||(a=r_(rs))}function u(m,v){const g=t();g&&(c(),r&&r.remove(),r=new mapboxgl.Marker({element:a,anchor:"bottom",offset:[0,0]}).setLngLat([m,v]).addTo(g))}function f(){r&&(r.remove(),r=null)}function b(m){var p,_;const v=t();if(!v)return;if(m&&(i=(s==null?void 0:s(m.properties))??rs),l(),v.getLayer(Vo)&&(v.setPaintProperty(Vo,"circle-color",i),Xp(v)&&v.setPaintProperty(Vo,"circle-emissive-strength",1)),!m){v.getLayer(Vo)&&v.setFilter(Vo,["==",["get","uniqueId"],"__none__"]),f();return}const g=((p=m.properties)==null?void 0:p.uniqueId)||"__none__",y=(_=m.geometry)==null?void 0:_.coordinates;if(!y)return;v.getLayer(Vo)&&v.setFilter(Vo,["==",["get","uniqueId"],g]);const[d,h]=y;u(d,h)}De(()=>n.selectedPeopleGroup,m=>{b(m)});function k(){l()}function x(){f(),a=null}return{initialize:k,cleanup:x,updateSelectedPin:b}}const ss="doxa-country-outline",Ya="doxa-country-outline-line",i_="mapbox://mapbox.country-boundaries-v1",l_="country_boundaries";function c_(e,t){if(!e)return"";const o=Array.isArray(t)?t:[],n=Array.isArray(e.memberIds)?e.memberIds.map(String):[],a=new Set(n);let r=n.length?o.find(s=>a.has(String(s.uniqueId??s.id??s.slug??""))):null;if(!r){const s=String(e.label??"").toLowerCase();r=o.find(i=>String(i.countryName??i.country??"").toLowerCase()===s)}return String((r==null?void 0:r.countryIso)??"").trim().toUpperCase()}function u_(e){return["all",["==",["get","iso_3166_1_alpha_3"],e],["any",["==",["get","worldview"],"all"],["in","US",["get","worldview"]]]]}function d_(e,t={}){const o=t.lineColor??"#2563eb",n=t.lineWidth??2.5,a=t.lineOpacity??.8;function r(){const i=typeof e=="function"?e():null;if(i)try{i.getLayer(Ya)&&i.removeLayer(Ya),i.getSource(ss)&&i.removeSource(ss)}catch{}}function s(i){const l=String(i||"").trim().toUpperCase();if(l.length!==3)return;const c=typeof e=="function"?e():null;if(!c)return;const u=u_(l);if(c.getLayer(Ya))try{c.setFilter(Ya,u);return}catch{}r();try{c.addSource(ss,{type:"vector",url:i_}),c.addLayer({id:Ya,type:"line",source:ss,"source-layer":l_,filter:u,layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":o,"line-width":n,"line-opacity":a,"line-emissive-strength":1}})}catch{}}return{showCountry:s,clearCountry:r}}const tg="doxa-prayed-local",p_=7*24*60*60*1e3;function og(){try{const e=localStorage.getItem(tg);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function ng(e){try{localStorage.setItem(tg,JSON.stringify(e))}catch{}}function g_(){const e=Date.now(),t=og();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>p_)&&(delete t[n],o=!0);return o&&ng(t),new Set(Object.keys(t))}function f_(e){if(!e)return;const t=og();t[e]=Date.now(),ng(t);try{window.dispatchEvent(new CustomEvent("doxa:prayed-locally",{detail:{slug:e}}))}catch{}}function h_(e){const t=g_();return!t.size||!Array.isArray(e)?e:e.map(o=>(Number(o&&o.peoplePraying)||0)>0||!o||!t.has(o.slug)?o:{...o,peoplePraying:1})}const ag={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"};function pl(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const m_=[[/ sign language$/i,"Sign Language"]];function b_(e){var i,l;const t=pl(e.languageFamily);if(t)return t;const o=String(((l=(i=e._raw)==null?void 0:i.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(o&&ag[o])return ag[o];const n=pl(e.language||e.primary_language);if(!n||typeof n!="string")return"";const a=n.trim(),r=a.split(",").map(c=>c.trim()).filter(Boolean);if(r.length>=2){const c=[...r].reverse().join(" ");if(qe[c])return qe[c];if(r.length>=3){const u=[r[1],r[0]].join(" ");if(qe[u])return qe[u]}}if(qe[a])return qe[a];const s=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(s!==a&&qe[s])return qe[s];for(const[c,u]of m_)if(c.test(a))return u;return""}function y_(e){const{mapId:t="unknown",dataSourceId:o="doxa-csv",dataSourceManager:n=null,dataStore:a=null,markRaw:r=L=>L}=e;n||console.error("useMapData: dataSourceManager is required!");const s=le(!1),i=le(null),l=le(!1),c=le([]),u=le([]),f=le(null),b=le([]),k=le([]),x=le([]),m=le(null);async function v(){if(!n)throw new Error("dataSourceManager is required for useMapData");s.value=!0,i.value=null;try{if(await n.init(),a&&a.hasSourceData&&a.hasSourceData(o)){const E=a.getSourceData(o);u.value=r(E.normalizedData||[])}else{const E=await n.setActiveSource(o);for(const T of E){const N=pl(T.language||T.primary_language);N&&(T.language=N);const q=b_(T);T.languageFamily=ns(q)}u.value=r(E),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:E,timestamp:Date.now()})}c.value=r(h_(u.value.map(E=>({id:E.uniqueId,slug:E.slug||"",rop3:E.peopleGroupId,peopleId3:E.peopleId3,name:E.name,language:E.language,languageFamily:E.languageFamily,country:E.country,population:E.population,status:E.engagementStatus||E.status,latitude:E.latitude,longitude:E.longitude,lng:E.longitude,lat:E.latitude,description:E.description,imageUrl:E.imageUrl,doxaRegion:E.doxaRegion||E.wagfRegion||"",peoplePraying:E.peoplePraying??null,_normalized:E}))));const L=n.getDataByLanguageFamily();b.value=Object.entries(L).map(([E,T])=>{const N=T.reduce((q,ce)=>{const ee=parseInt(ce.population)||0;return q+ee},0);return{name:E,count:T.length,peopleGroupCount:T.length,population:N,groups:T}}).sort((E,T)=>T.count-E.count);const R=n.getDataByRegion();k.value=Object.entries(R).map(([E,T])=>{const N=T.reduce((q,ce)=>{const ee=parseInt(ce.population)||0;return q+ee},0);return{name:E,count:T.length,peopleGroupCount:T.length,population:N,groups:T}}).sort((E,T)=>E.name.localeCompare(T.name));const S={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach(E=>{const T=parseInt(E.population)||0;let N=!1;E.bible==="Available"&&(S.bible.count++,S.bible.population+=T,S.bible.groups.push(E),N=!0),E.jesusFilm==="Available"&&(S.jesusFilm.count++,S.jesusFilm.population+=T,S.jesusFilm.groups.push(E),N=!0),E.radio==="Available"&&(S.radio.count++,S.radio.population+=T,S.radio.groups.push(E),N=!0),E.gospel==="Available"&&(S.gospel.count++,S.gospel.population+=T,S.gospel.groups.push(E),N=!0),E.audio==="Available"&&(S.audio.count++,S.audio.population+=T,S.audio.groups.push(E),N=!0),E.stories==="Available"&&(S.stories.count++,S.stories.population+=T,S.stories.groups.push(E),N=!0),N?(S.hasResources.count++,S.hasResources.population+=T,S.hasResources.groups.push(E)):(S.noResources.count++,S.noResources.population+=T,S.noResources.groups.push(E))});const z=u.value.length,j=u.value.reduce((E,T)=>E+(parseInt(T.population)||0),0),O={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},D={bible:{count:z-S.bible.count,population:j-S.bible.population},jesusFilm:{count:z-S.jesusFilm.count,population:j-S.jesusFilm.population},radio:{count:z-S.radio.count,population:j-S.radio.population},gospel:{count:z-S.gospel.count,population:j-S.gospel.population},audio:{count:z-S.audio.count,population:j-S.audio.population},stories:{count:z-S.stories.count,population:j-S.stories.population}},M="#2c3e50";return x.value=[{name:O.bible,key:"bible",count:S.bible.count,population:S.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:D.bible.count,population:D.bible.population,color:M}]},{name:O.jesusFilm,key:"jesusFilm",count:S.jesusFilm.count,population:S.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:D.jesusFilm.count,population:D.jesusFilm.population,color:M}]},{name:O.radio,key:"radio",count:S.radio.count,population:S.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:D.radio.count,population:D.radio.population,color:M}]},{name:O.gospel,key:"gospel",count:S.gospel.count,population:S.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:D.gospel.count,population:D.gospel.population,color:M}]},{name:O.audio,key:"audio",count:S.audio.count,population:S.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:D.audio.count,population:D.audio.population,color:M}]},{name:O.stories,key:"stories",count:S.stories.count,population:S.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:D.stories.count,population:D.stories.population,color:M}]},{name:O.hasResources,key:"hasResources",count:S.hasResources.count,population:S.hasResources.population,isParent:!0,children:[{name:O.noResources,key:"noResources",count:S.noResources.count,population:S.noResources.population,color:M}]}],m.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:b.value,doxaRegionsData:k.value,resourcesData:x.value,stats:m.value}}catch(L){throw console.error(`Failed to load data for map "${t}":`,L),i.value=L.message||"Failed to load data",L}finally{s.value=!1}}async function g(){var L,R,S;try{const z={},j=u.value||[];for(const O of j){const D=O.countryIso||((R=(L=O._raw)==null?void 0:L.country_code)==null?void 0:R.value)||"",M=(S=O._raw)==null?void 0:S.wagf_region,E=O.doxaRegion||O.wagfRegion||(M&&typeof M=="object"?M.value:"")||"";D&&E&&!z[D]&&(z[D]=E)}return f.value={isoToRegion:z},f.value}catch(z){throw console.error(`Error building regions data for map "${t}":`,z),i.value=z.message||"Failed to build regions",z}}function y(){return n?n.getDataByLanguageFamily():{}}function d(){return n?n.getDataByRegion():{}}function h(L){return y()[L]||[]}function p(L){return d()[L]||[]}function _(){c.value=[],u.value=[],f.value=null,b.value=[],k.value=[],x.value=[],m.value=null,l.value=!1,i.value=null}return{isLoading:s,isInitialized:l,error:i,peopleGroups:c,normalizedPeopleGroups:u,regionsData:f,languageFamiliesData:b,doxaRegionsData:k,resourcesData:x,stats:m,loadData:v,loadRegionsData:g,getDataByLanguageFamily:y,getDataByRegion:d,getPeopleGroupsByFamily:h,getPeopleGroupsByRegion:p,clearData:_}}function v_(e){const{map:t,geocoderRef:o,clustering:n,mapStore:a,uiStore:r,mapLayers:s,pplrInstance:i,onSemanticTreeSelect:l,switchTab:c,activeTabId:u,clearAllHighlights:f,clearCountryHighlight:b,mapId:k,supportedKinds:x,legendRouters:m={},peopleGroupResult:v,busAdapter:g}=e,y=e.filterLayerId||"language-family-pins";let d=!1;function h(){var E,T,N,q,ce;d=!0;const D=(T=(E=o.value)==null?void 0:E.geocoder)==null?void 0:T.value;(N=D==null?void 0:D.clear)==null||N.call(D);const M=(D==null?void 0:D._inputEl)||((ce=(q=D==null?void 0:D.container)==null?void 0:q.querySelector)==null?void 0:ce.call(q,"input.mapboxgl-ctrl-geocoder--input"));if(M){M.value="";try{M.dispatchEvent(new Event("input",{bubbles:!0}))}catch{}}d=!1}function p(D,M){const E=`${y}-hitbox`;if(D!=null&&D.getLayer(E))try{D.setFilter(E,M)}catch{}}function _(){typeof window>"u"||typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:reveal-selected",{detail:{mapId:k}}))}const L={country:"countryName","language-family":"languageFamily",language:"language",dialect:"language",religion:"religionName",region:"doxaRegion","affinity-bloc":"affinityBlock",cluster:"cluster","people-group":"peopleGroup"};function R(D,M,E){var T,N,q;if(D.kind==="language")return["any",["==",["get",M],E],["==",["slice",["get",M],0,E.length+1],E+","],["in"," "+E,["get",M]]];if(D.kind==="dialect"){const ce=Array.isArray(D.originalLabels)?D.originalLabels:[];return ce.length===1?["==",["get",M],ce[0]]:ce.length>1?["in",["get",M],["literal",ce]]:["==",["get",M],E]}else if(D.kind==="affinity-bloc"){const ce=D.blocCode||((T=D.properties)==null?void 0:T.blocCode)||"";return ce?["==",["get","affinityBlock"],ce]:["==",["get","affinityBlockLabel"],E]}else if(D.kind==="cluster"){const ce=D.clusterCode||((N=D.properties)==null?void 0:N.clusterCode)||"",ee=D.blocCode||((q=D.properties)==null?void 0:q.blocCode)||"";return ce&&ee?["all",["==",["get","affinityBlock"],ee],["==",["get","cluster"],ce]]:["==",["get","clusterLabel"],E]}else return["==",["get",M],E]}function S(D){if(!D||x&&!x.includes(D.kind))return null;const M=L[D.kind]||null,E=D.label;return!M||E==null||E===""?null:{kind:D.kind,value:E,property:M,expr:R(D,M,E)}}function z(D){var T,N,q,ce;if(!D)return;b==null||b();const M=de(t),E=((T=D.properties)==null?void 0:T.id)||((N=D.properties)==null?void 0:N.uniqueId)||null;if((q=r==null?void 0:r.selectPeopleGroup)==null||q.call(r,{...D,properties:{...D.properties,uniqueId:E}}),M&&E!=null&&M.getLayer(y)){const ee=["==",["get","uniqueId"],E];try{M.setFilter(y,null)}catch{}p(M,ee),M.setPaintProperty(y,"circle-opacity",["case",ee,1,0]),M.setPaintProperty(y,"circle-stroke-opacity",["case",ee,1,0]),M.getLayer(`${y}-shadow`)&&M.setPaintProperty(`${y}-shadow`,"circle-opacity",["case",ee,1,0]),(ce=s==null?void 0:s.syncGlowFilter)==null||ce.call(s,ee)}}function j(D){var ce;if(g){const ee=S(D);if(!ee)return;g.aggregate(ee,D);return}const M=de(t);if(!D||!M||!M.getLayer(y)||x&&!x.includes(D.kind))return;D.kind!=="country"&&(b==null||b());const E=S(D);if(!E)return;const{property:T,value:N}=E;try{M.setFilter(y,E.expr)}catch{}n.setSelectionFilter({property:T,value:N});let q=!1;if(D.kind==="language-family"||D.kind==="family")a.selectFamily(D.label),a.setActiveLegendTab("family"),q=!0;else if(D.kind==="language")a.selectLanguage(D.label),a.setActiveLegendTab("language"),q=!0;else if(D.kind==="dialect"){const ee=Array.isArray(D.originalLabels)?D.originalLabels:[],oe=D.familyDerived||"",H=D.baseLang||"",pe=D.dialectLabel||"",we=`${oe}__${H}__${pe}`;(ce=a.selectDialect)==null||ce.call(a,{key:we,originalLabels:ee}),a.setActiveLegendTab("dialect"),q=!0}else if(D.kind==="affinity-bloc"||D.kind==="cluster"||D.kind==="people-group"){let ee=null;if(D.kind==="affinity-bloc"){const oe=D.blocCode||"";ee={id:`bloc:${oe}`,label:D.label,depth:0,filter:oe?["==",["get","affinityBlock"],oe]:null}}else if(D.kind==="cluster"){const oe=D.blocCode||"",H=D.clusterCode||"";ee={id:`cluster:${oe}__${H}`,label:D.label,depth:1,filter:H?["==",["get","cluster"],H]:null}}else if(D.kind==="people-group"){const oe=D.blocCode||"",H=D.clusterCode||"",pe=D.peopleGroupCode||"";ee={id:`pg:${oe}__${H}__${pe}`,label:D.label,depth:2,filter:pe?["==",["get","peopleGroup"],pe]:null}}if(ee&&ee.filter){const oe=()=>{try{M.setFilter(y,null)}catch{}l(ee),i&&i.selection&&(i.selection.value=ee)};u.value!=="affinity-blocks"?(c("affinity-blocks"),jt(oe)):oe()}q=!0}else m[D.kind]&&(m[D.kind](D,{map:M,filterLayerId:y,clearGeocoder:h,emitLegendReveal:_,property:T,value:N}),q=!0);q&&(h(),_())}function O(){var M,E,T;if(g){g.clear();return}if(d)return;b==null||b();const D=de(t);a.selectedRegion&&((M=a.selectRegion)==null||M.call(a,null)),a.selectedResource&&((E=a.selectResource)==null||E.call(a,null)),D&&D.getLayer(y)?f(D):(a.selectFamily(null),a.selectLanguage(null),(T=a.selectDialect)==null||T.call(a,null),n.setSelectionFilter(null))}return{onPeopleGroupResult:g?D=>g.peopleGroup(D):v||z,onAggregateResult:j,onClear:O,clearGeocoderProgrammatic:h}}const gl={};function fl(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Nn&&Nn.tagName.toUpperCase()==="SCRIPT"&&Nn.src||new URL("country-posters.js",document.baseURI).href}<"u"&&(gl==null?void 0:gl.VITE_API_BASE_URL)||""}const hl=le(0),is=le(0),ls=le(0),ml=le(!1),bl=le(!1),yl=le(null);let Xa=null;async function __(){if(!ml.value)return Xa||(bl.value=!0,yl.value=null,Xa=(async()=>{var e,t;try{const o=((e=Sn==null?void 0:Sn.sources)==null?void 0:e[Sn.activeSource])||{},n=fl(),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();hl.value=Number(s.total||0),is.value=Number(s.total_with_prayer_committed??s.total_with_prayer??0),ls.value=Number(s.total_with_100_committed??s.total_with_full_prayer??0),ml.value=!0}catch(o){yl.value=o&&o.message?o.message:String(o)}finally{bl.value=!1,Xa=null}})(),Xa)}function x_(){return{total:hl,withPrayer:is,withFullPrayer:ls,loaded:ml,loading:bl,error:yl,load:__,noPrayerCount:()=>Math.max(0,hl.value-is.value),hasPrayerCount:()=>Math.max(0,is.value-ls.value),fullPrayerCount:()=>ls.value}}function k_(e){return(e==null?void 0:e.properties)||e||{}}function cs(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function w_(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(qe[n])return qe[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(qe[a])return qe[a]}}if(qe[e])return qe[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&qe[o]?qe[o]:null}const A_=[[/ sign language$/i,"Sign Language"]];function S_(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function L_(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function C_(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=cs(t),n=ns(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=cs(a);if(r){const u=String(r).trim(),f=w_(u);if(f)return f;for(const[b,k]of A_)if(b.test(u))return k}return"Unknown"}function $_(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=cs(t);if(s)return String(s).trim()}const o=e.primary_language??e.primaryLanguage??e.language,n=cs(o);return n&&String(n).trim()||"— Unknown —"}function E_(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 T_(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 P_(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function N_(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 M_(e,t){return t.peopleGroupCount!==e.peopleGroupCount?t.peopleGroupCount-e.peopleGroupCount:(t.population||0)-(e.population||0)}function us(e,t){return(t.population||0)!==(e.population||0)?(t.population||0)-(e.population||0):t.peopleGroupCount-e.peopleGroupCount}function vl(e,t={}){t.aggregator;const o=Fn({});function n(m){return!!o[m]}function a(m){o[m]=!o[m]}function r(m){const v=new Set(Array.isArray(m)?m:[]);for(const g of Object.keys(o))v.has(g)||(o[g]=!1);for(const g of v)o[g]=!0}const s=Q(()=>{const m=(e==null?void 0:e.value)||[],v=new Map;for(const g of m){const y=k_(g),d=C_(y),h=$_(y),p=S_(h),_=L_(h),L=E_(y),R=T_(g,y),S=P_(g,y),z=N_(g,y);let j=v.get(d);j||(j={key:d,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},v.set(d,j)),j.peopleGroupCount+=1,j.population+=L,R!=null&&j.pinIds.push(R),z&&j.coords.push(z),S&&!j.clusterId&&(j.clusterId=S);let O=j.languages.get(p);if(O||(O={key:p,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},j.languages.set(p,O)),O.peopleGroupCount+=1,O.population+=L,R!=null&&O.pinIds.push(R),z&&O.coords.push(z),S&&!O.clusterId&&(O.clusterId=S),_){let D=O.dialects.get(_);D?D.originalLabels.add(h):(D={key:_,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([h])},O.dialects.set(_,D)),D.peopleGroupCount+=1,D.population+=L,R!=null&&D.pinIds.push(R),z&&D.coords.push(z)}}return v}),i=t.showAllKnown!==!1,l=Q(()=>{const m=s.value,v=[],g=new Set;for(const y of m.values())v.push({key:y.key,label:y.key,color:so(y.key),peopleGroupCount:y.peopleGroupCount,population:y.population,kind:y.clusterId?"cluster":"family",clusterId:y.clusterId||void 0,pinIds:y.pinIds,coords:y.coords}),g.add(y.key);if(i)for(const y of Object.keys(Mp))g.has(y)||v.push({key:y,label:y,color:so(y),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return v.sort(M_),v});function c(m){const v=s.value.get(m);if(!v)return[];const g=[];for(const y of v.languages.values())g.push({key:`${m}__${y.key}`,label:y.key,color:so(m),peopleGroupCount:y.peopleGroupCount,population:y.population,kind:y.clusterId?"cluster":"language",familyKey:m,clusterId:y.clusterId||void 0,pinIds:y.pinIds,coords:y.coords,hasDialects:y.dialects.size>0});return g.sort(us),g}function u(m){const v=m.indexOf("__");if(v<0)return[];const g=m.slice(0,v),y=m.slice(v+2),d=s.value.get(g);if(!d)return[];const h=d.languages.get(y);if(!h)return[];const p=[];for(const _ of h.dialects.values())p.push({key:`${m}__${_.key}`,label:`${y}, ${_.key}`,dialectOnly:_.key,color:so(g),peopleGroupCount:_.peopleGroupCount,population:_.population,kind:"dialect",languageKey:y,familyKey:g,pinIds:_.pinIds,coords:_.coords,originalLabels:Array.from(_.originalLabels)});return p.sort(us),p}const f=Q(()=>{const m=s.value,v=[];for(const g of m.values())for(const y of g.languages.values())v.push({key:`${g.key}__${y.key}`,label:y.key,color:so(g.key),peopleGroupCount:y.peopleGroupCount,population:y.population,kind:y.clusterId?"cluster":"language",familyKey:g.key,clusterId:y.clusterId||void 0,pinIds:y.pinIds,coords:y.coords,hasDialects:y.dialects.size>0});return v.sort(us),v}),b=Q(()=>{const m=s.value,v=[];for(const g of m.values())for(const y of g.languages.values())for(const d of y.dialects.values())v.push({key:`${g.key}__${y.key}__${d.key}`,label:`${y.key}, ${d.key}`,dialectOnly:d.key,color:so(g.key),peopleGroupCount:d.peopleGroupCount,population:d.population,kind:"dialect",languageKey:y.key,familyKey:g.key,pinIds:d.pinIds,coords:d.coords,originalLabels:Array.from(d.originalLabels)});return v.sort(us),v});function k(m){let v=m;if(typeof m=="string"&&(v=l.value.find(y=>y.key===m),!v))return;const g={kind:v.kind,pinIds:v.pinIds||[],coords:v.coords||[]};v.kind==="family"&&(g.familyKey=v.label),v.kind==="language"&&(g.languageKey=v.label,g.familyKey=v.familyKey),v.kind==="dialect"&&(g.dialectKey=v.key,g.dialectOnly=v.dialectOnly||v.label,g.languageKey=v.languageKey,g.familyKey=v.familyKey,g.originalLabels=v.originalLabels||[]),v.kind==="cluster"&&(g.clusterId=v.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:g}))}const x=Q(()=>{const m=s.value,v=[];for(const g of m.values()){const y=so(g.key),d=[];for(const p of g.languages.values()){p.key&&p.key!=="— Unknown —"&&d.push(p.key);for(const _ of p.dialects.values())for(const L of _.originalLabels)L&&d.push(L)}const h={id:`fam:${g.key}`,label:g.key,color:y,count:g.peopleGroupCount,pop:g.population,filter:d.length>0?["any",["==",["get","languageFamily"],g.key],["in",["get","language"],["literal",Array.from(new Set(d))]]]:["==",["get","languageFamily"],g.key],children:[]};for(const p of g.languages.values()){const _=p.key,L={id:`lang:${g.key}__${_}`,label:_,color:y,count:p.peopleGroupCount,pop:p.population,filter:["any",["==",["get","language"],_],["==",["slice",["get","language"],0,_.length+1],_+","],["in"," "+_,["get","language"]]],children:[]};for(const R of p.dialects.values()){const S=Array.from(R.originalLabels);L.children.push({id:`dial:${g.key}__${_}__${R.key}`,label:`${_}, ${R.key}`,color:y,count:R.peopleGroupCount,pop:R.population,filter:S.length===1?["==",["get","language"],S[0]]:["in",["get","language"],["literal",S]],originalLabels:S,children:[]})}h.children.push(L)}v.push(h)}return v.sort((g,y)=>y.pop-g.pop||y.count-g.count),v});return{rows:l,languageRows:f,dialectRows:b,langTree:x,toggle:a,isExpanded:n,setExpansionToOnly:r,childRowsFor:c,dialectRowsFor:u,highlight:k}}const I_=[];function R_(){const e=wo(Xn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function F_(){const e=wo(Xn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function O_(){const e=wo(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 $n(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 rg=100;function D_(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 _l(e){return t=>{const o=D_(t);return e==="fullPrayer"?o>=rg:e==="hasPrayer"?o>0&&o0||typeof t=="string"&&parseInt(t,10)>0}function ig(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 B_={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 ea(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function G_(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function j_(e){return(Number(e)||0).toLocaleString()}function Ja(e,t={}){const o=Te("dataStore"),n=Te("uiStore"),a=Te("mapStore"),{t:r}=ht(),s=x_();s.load();const i=Q(()=>{if(ea(e.value)==="religion")return"Religion";const g=B_[e.value];return g?r(g):""}),l=Q(()=>ea(e.value)==="affinity-blocs"?I_:[{key:"count",label:r("legend.columns.upgs"),width:48},{key:"population",label:r("legend.columns.population"),width:48}]),c=Q(()=>{const v=ea(e.value);return v==="prayer"?n.prayerFilter:v==="engagement"?n.engagementFilter:v==="adoption"?n.adoptionFilter:v==="language-families"?a.selectedFamily:v==="doxa-regions"?a.selectedRegion:v==="gospel-resources"?a.selectedResource:v==="religion"?n.religionFilter:null});function u(v){const g=ea(e.value);g==="prayer"?n.setPrayerFilter(n.prayerFilter===v?null:v):g==="engagement"?n.setEngagementFilter(n.engagementFilter===v?null:v):g==="adoption"?n.setAdoptionFilter(n.adoptionFilter===v?null:v):g==="language-families"?a.selectFamily(a.selectedFamily===v?null:v):g==="doxa-regions"?a.selectRegion(a.selectedRegion===v?null:v):g==="gospel-resources"?a.selectResource(a.selectedResource===v?null:v):g==="religion"&&n.setReligionFilter(n.religionFilter===v?null:v)}const f=Q(()=>{var g,y,d,h;const v=ea(e.value);if(v==="prayer"){const p=$n(o,_l("noPrayer")),_=$n(o,_l("hasPrayer")),L=$n(o,_l("fullPrayer")),R=s.loaded.value,S=R?s.noPrayerCount():p.count,z=R?s.hasPrayerCount():_.count,j=R?s.fullPrayerCount():L.count;return[{key:"noPrayer",label:r("legend.prayer.needsPrayer"),color:Ln.noPrayer,count:S,population:p.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:r("legend.prayer.hasPrayer"),color:Ln.hasPrayer,count:z,population:_.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:r("legend.prayer.fullPrayerCoverage"),color:Ln.fullPrayer,count:j,population:L.population,filterKey:"fullPrayer"}]}]}if(v==="engagement"){const p=$n(o,L=>!sg(L)),_=$n(o,L=>sg(L));return[{key:"notEngaged",label:r("legend.engagement.needsEngagement"),color:Ji.notEngaged,count:p.count,population:p.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:r("legend.engagement.hasEngagement"),color:Ji.hasEngagement,count:_.count,population:_.population,filterKey:"hasEngagement"}]}]}if(v==="adoption"){const p=$n(o,L=>!ig(L)),_=$n(o,L=>ig(L));return[{key:"notAdopted",label:r("legend.adoption.needsAdoption"),color:Wi.notAdopted,count:p.count,population:p.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:r("legend.adoption.hasAdoption"),color:Wi.hasAdoption,count:_.count,population:_.population,filterKey:"hasAdoption"}]}]}if(v==="religion"){const p={},L=Object.values(o.sources||{}).flatMap(z=>(z==null?void 0:z.features)||[]);for(const z of L){const j=z.properties||z,O=j.religion||((y=(g=j._raw)==null?void 0:g.religion)==null?void 0:y.value)||((d=j._raw)==null?void 0:d.religion)||"",D=qa(O);p[D]||(p[D]={count:0,population:0}),p[D].count+=1,p[D].population+=parseInt(j.population||((h=j._raw)==null?void 0:h.Population)||0)||0}const R=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const z of R)delete p[z];return Object.keys(p).sort((z,j)=>z==="C"?-1:j==="C"?1:p[j].population-p[z].population).map(z=>({key:z,label:Cn[z]||"Unknown",color:Kt[z]||"#94a3b8",count:p[z].count,population:p[z].population,filterKey:z,children:[]}))}if(v==="language-families")return(o.languageFamiliesData||[]).map(p=>({key:p.name,label:p.name,color:so(p.name),count:p.count,population:p.population,filterKey:p.name,children:[]}));if(v==="language-family"){const _={value:Object.values(o.sources||{}).flatMap(R=>(R==null?void 0:R.features)||[])},{rows:L}=vl(_);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(v==="doxa-regions"){const p=F_();return(o.doxaRegionsData||[]).map(_=>({key:_.name,label:_.name,color:p[_.name]||"#999",count:_.count,population:_.population,filterKey:_.name,children:[]}))}if(v==="gospel-resources"){const p=R_(),_=(p==null?void 0:p.palette)??{},L=(p==null?void 0:p.names)??{},R=o.resourcesData||[];return Object.keys(_).map(S=>{const z=R.find(j=>j.key===S);return{key:S,label:L[S]||S,color:_[S],count:(z==null?void 0:z.count)||0,population:(z==null?void 0:z.population)||0,filterKey:S,children:((z==null?void 0:z.children)||[]).map(j=>({key:j.key,label:j.name||j.key,color:j.color||_[S],count:j.count||0,population:j.population||0,filterKey:j.key}))}})}if(v==="affinity-blocs"){const p=O_();return Object.keys(p).sort().map(_=>({key:_,label:_,color:p[_],filterKey:_,children:[]}))}return[]});function b(v,g){return v.reduce((y,d)=>{var p;let h=d[g]||0;return(p=d.children)!=null&&p.length&&(h+=b(d.children,g)),y+h},0)}const k=Q(()=>b(f.value,"count")),x=Q(()=>b(f.value,"population")),m=Q(()=>{if(ea(e.value)!=="prayer")return null;const v=f.value[0];if(!v)return null;const g=(v.children||[]).find(L=>L.key==="hasPrayer"),y=(v.children||[]).find(L=>L.key==="fullPrayer"),d=Number(v.count)||0,h=Number(g==null?void 0:g.count)||0,p=Number(y==null?void 0:y.count)||0,_=(Number(g==null?void 0:g.population)||0)+(Number(y==null?void 0:y.population)||0);return{covered:h+p,total:k.value,coveredPopulation:_,totalPopulation:x.value,segments:[{key:"fullPrayer",label:(y==null?void 0:y.label)??r("legend.prayer.fullPrayerCoverage"),count:p,color:Ln.fullPrayer},{key:"hasPrayer",label:(g==null?void 0:g.label)??r("legend.prayer.hasPrayer"),count:h,color:Ln.hasPrayer},{key:"noPrayer",label:v.label,count:d,color:Ln.noPrayer}]}});return{items:f,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:k,totalPopulation:x,progress:m,fmtPop:G_,fmtCount:j_}}class lg{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=Sn,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",r=!1,s=[],i=!0;for(let l=0;l0){if(s.push(a.trim()),a="",i)n.push(...s),i=!1;else if(s.length>1){const f={};n.forEach((b,k)=>{f[b]=s[k]||""}),o.push(f)}s=[]}}else a+=c}if((a||s.length>0)&&(s.push(a.trim()),!i&&s.length>1)){const l={};n.forEach((c,u)=>{l[c]=s[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:r}=this.parseCSV(n);return this.rawData=r,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(s=>s.trim())),r=[];for(const[s,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||r.push({systemField:s,sourceField:l,isComposite:!0});else i&&!a.has(i)&&r.push({systemField:s,sourceField:i,isComposite:!1});r.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,r)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=fl(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",r=[];a&&r.push(`fields=${a}`);const s={...t.queryParams||{}};this.locale&&(s.lang=this.locale);for(const[u,f]of Object.entries(s))r.push(`${u}=${encodeURIComponent(f)}`);const i=`${o}${n}?${r.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const f=u.headers.get("content-type")||"";if(!f.includes("application/json"))throw new Error(`API returned "${f}" instead of JSON. Server at ${o} may be down or misconfigured.`);const b=await u.json();return this.rawData=Array.isArray(b)?b:b.posts||b.data||b.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(f=>this.getFieldValue(n,f));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const r=a.engagementStatus;r!=null&&(typeof r=="object"&&"value"in r?(a.engagementStatusLabel=r.label||r.value,a.engagementStatus=r.value==="engaged"):a.engagementStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const s=a.adoptionStatus;s!=null&&(a.adoptionStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="object"&&!!(s!=null&&s.value)||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new lg;const j_=["data-covered","data-total","data-pct"],z_={class:"lpb-track"},U_=["data-span-pct"],K_=["data-seg","data-count","aria-label","onMouseenter","onFocus","onClick"],H_=["data-seg","data-count","aria-label"],V_=["aria-valuenow","aria-valuemax","aria-valuetext","aria-label","title"],cg=Ot({__name:"LegendProgressBar",props:{covered:{type:Number,default:0},total:{type:Number,default:0},segments:{type:Array,default:()=>[]},isDark:{type:Boolean,default:!1},label:{type:String,default:""},fmtCount:{type:Function,default:e=>(Number(e)||0).toLocaleString()},compact:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},showText:{type:Boolean,default:!0}},emits:["select-segment"],setup(e,{emit:t}){const{t:o}=ht();mt(` +`&&l++,a||s.length>0){if(s.push(a.trim()),a="",i)n.push(...s),i=!1;else if(s.length>1){const f={};n.forEach((b,k)=>{f[b]=s[k]||""}),o.push(f)}s=[]}}else a+=c}if((a||s.length>0)&&(s.push(a.trim()),!i&&s.length>1)){const l={};n.forEach((c,u)=>{l[c]=s[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:r}=this.parseCSV(n);return this.rawData=r,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(s=>s.trim())),r=[];for(const[s,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||r.push({systemField:s,sourceField:l,isComposite:!0});else i&&!a.has(i)&&r.push({systemField:s,sourceField:i,isComposite:!1});r.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,r)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=fl(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",r=[];a&&r.push(`fields=${a}`);const s={...t.queryParams||{}};this.locale&&(s.lang=this.locale);for(const[u,f]of Object.entries(s))r.push(`${u}=${encodeURIComponent(f)}`);const i=`${o}${n}?${r.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const f=u.headers.get("content-type")||"";if(!f.includes("application/json"))throw new Error(`API returned "${f}" instead of JSON. Server at ${o} may be down or misconfigured.`);const b=await u.json();return this.rawData=Array.isArray(b)?b:b.posts||b.data||b.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(f=>this.getFieldValue(n,f));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const r=a.engagementStatus;r!=null&&(typeof r=="object"&&"value"in r?(a.engagementStatusLabel=r.label||r.value,a.engagementStatus=r.value==="engaged"):a.engagementStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const s=a.adoptionStatus;s!=null&&(a.adoptionStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="object"&&!!(s!=null&&s.value)||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new lg;const z_="",U_=["data-covered","data-total","data-pct"],K_={class:"lpb-track"},H_=["data-span-pct"],V_=["data-seg","data-count","aria-label","onMouseenter","onFocus","onClick"],q_=["data-seg","data-count","aria-label"],W_=["aria-valuenow","aria-valuemax","aria-valuetext","aria-label","title"],cg=Ot({__name:"LegendProgressBar",props:{covered:{type:Number,default:0},total:{type:Number,default:0},segments:{type:Array,default:()=>[]},isDark:{type:Boolean,default:!1},label:{type:String,default:""},fmtCount:{type:Function,default:e=>(Number(e)||0).toLocaleString()},compact:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},showText:{type:Boolean,default:!0}},emits:["select-segment"],setup(e,{emit:t}){const{t:o}=ht();mt(` .lpb{position:relative;display:flex;align-items:center;gap:8px;min-width:0;width:100%;box-sizing:border-box;} .lpb-track{position:relative;flex:1 1 auto;min-width:60px;display:flex;height:10px;border-radius:5px;overflow:hidden;background:rgba(110,118,129,0.25);} .lpb-span{display:flex;height:100%;min-width:0;flex:0 0 auto;} @@ -234,7 +233,7 @@ .lpb-light .lpb-pop{background:#f6f8fa;border-color:#d0d7de;color:#1f2328;box-shadow:0 8px 24px rgba(31,35,40,0.18);} .lpb-pop-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-shadow:0 0 0 1px rgba(0,0,0,0.4);} .legend-mobile-sheet.collapsed .lpb{display:none!important;} -`,"legend-progress-bar");const n=e,a=t,r=Q(()=>n.total>0?Math.round(n.covered/n.total*100):0),s=Q(()=>n.total>0?Math.min(100,Math.max(0,n.covered/n.total*100)):0),i=Q(()=>n.segments.slice(0,-1)),l=Q(()=>n.segments.length?n.segments[n.segments.length-1]:null);function c(L){return n.covered>0?Math.min(100,Math.max(0,(L.count||0)/n.covered*100)):0}function u(L){return n.total>0?Math.round((L.count||0)/n.total*100):0}const f=Q(()=>n.label||o("legend.progress.covered",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value})),b=Q(()=>o("legend.progress.short",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value}));function k(L){return o("legend.progress.segment",{label:L.label,count:n.fmtCount(L.count||0),pct:u(L)})}const x=le(null),m=le(null),v={},g=le(null),y=le(0),d=Q(()=>n.segments.find(L=>L.key===g.value)||null);function h(L,R){R?v[L]=R:delete v[L]}async function p(L){g.value=L,await jt();const R=x.value,S=v[L],z=m.value;if(!R||!S||!z)return;const j=R.getBoundingClientRect(),O=S.getBoundingClientRect(),D=Math.max(0,j.width-z.offsetWidth);y.value=Math.min(Math.max(0,O.left-j.left),D)}function _(){g.value=null}return(L,R)=>(V(),ae("div",{ref_key:"rootEl",ref:x,class:Ee(["lpb",[e.isDark?"lpb-dark":"lpb-light",{"lpb-stacked":e.stacked}]]),"data-covered":e.covered,"data-total":e.total,"data-pct":r.value,onMouseleave:_},[C("div",z_,[C("span",{class:"lpb-span",style:Xe({width:s.value+"%"}),"data-span-pct":s.value.toFixed(2)},[(V(!0),ae(Ie,null,yt(i.value,S=>(V(),ae("button",{key:S.key,type:"button",class:Ee(["lpb-seg",{active:g.value===S.key}]),style:Xe({width:c(S)+"%",background:S.color}),"data-seg":S.key,"data-count":S.count||0,"aria-label":k(S),ref_for:!0,ref:z=>h(S.key,z),onMouseenter:z=>p(S.key),onFocus:z=>p(S.key),onBlur:_,onClick:dt(z=>a("select-segment",S.key),["stop"])},null,46,K_))),128))],12,U_),l.value?(V(),ae("button",{key:0,type:"button",class:Ee(["lpb-seg lpb-seg-rest",{active:g.value===l.value.key}]),style:Xe({background:l.value.color}),"data-seg":l.value.key,"data-count":l.value.count||0,"aria-label":k(l.value),ref:S=>h(l.value.key,S),onMouseenter:R[0]||(R[0]=S=>p(l.value.key)),onFocus:R[1]||(R[1]=S=>p(l.value.key)),onBlur:_,onClick:R[2]||(R[2]=dt(S=>a("select-segment",l.value.key),["stop"]))},null,46,H_)):ve("",!0)]),e.showText?(V(),ae("span",{key:0,class:"lpb-text",role:"progressbar","aria-valuenow":e.covered,"aria-valuemin":"0","aria-valuemax":e.total,"aria-valuetext":b.value,"aria-label":f.value,title:f.value},he(e.compact?r.value+"%":b.value),9,V_)):ve("",!0),d.value?(V(),ae("div",{key:1,ref_key:"popEl",ref:m,class:"lpb-pop",role:"tooltip",style:Xe({left:y.value+"px"})},[C("span",{class:"lpb-pop-dot",style:Xe({background:d.value.color})},null,4),gt(he(k(d.value)),1)],4)):ve("",!0)],42,j_))}},[["__scopeId","data-v-acafdbf6"]]),q_={key:0,class:"lrg-title-row"},W_={class:"lrg-title-caret-slot"},Y_={class:"lrg-title"},X_=["data-lrg-filter-key"],J_=["onClick"],Z_={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},Q_=["onClick"],ex={class:"lrg-name"},tx={class:"lrg-badge-inner"},ox=["data-lrg-filter-key"],nx=["onClick"],ax={class:"lrg-name"},rx={class:"lrg-badge-inner"},sx={key:1,class:"lrg-footer"},ix={class:"lrg-footer-label"},ug=Ot({__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}=ht();mt(` +`,"legend-progress-bar");const n=e,a=t,r=Q(()=>n.total>0?Math.round(n.covered/n.total*100):0),s=Q(()=>n.total>0?Math.min(100,Math.max(0,n.covered/n.total*100)):0),i=Q(()=>n.segments.slice(0,-1)),l=Q(()=>n.segments.length?n.segments[n.segments.length-1]:null);function c(L){return n.covered>0?Math.min(100,Math.max(0,(L.count||0)/n.covered*100)):0}function u(L){return n.total>0?Math.round((L.count||0)/n.total*100):0}const f=Q(()=>n.label||o("legend.progress.covered",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value})),b=Q(()=>o("legend.progress.short",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value}));function k(L){return o("legend.progress.segment",{label:L.label,count:n.fmtCount(L.count||0),pct:u(L)})}const x=le(null),m=le(null),v={},g=le(null),y=le(0),d=Q(()=>n.segments.find(L=>L.key===g.value)||null);function h(L,R){R?v[L]=R:delete v[L]}async function p(L){g.value=L,await jt();const R=x.value,S=v[L],z=m.value;if(!R||!S||!z)return;const j=R.getBoundingClientRect(),O=S.getBoundingClientRect(),D=Math.max(0,j.width-z.offsetWidth);y.value=Math.min(Math.max(0,O.left-j.left),D)}function _(){g.value=null}return(L,R)=>(V(),ae("div",{ref_key:"rootEl",ref:x,class:$e(["lpb",[e.isDark?"lpb-dark":"lpb-light",{"lpb-stacked":e.stacked}]]),"data-covered":e.covered,"data-total":e.total,"data-pct":r.value,onMouseleave:_},[C("div",K_,[C("span",{class:"lpb-span",style:Xe({width:s.value+"%"}),"data-span-pct":s.value.toFixed(2)},[(V(!0),ae(Ie,null,yt(i.value,S=>(V(),ae("button",{key:S.key,type:"button",class:$e(["lpb-seg",{active:g.value===S.key}]),style:Xe({width:c(S)+"%",background:S.color}),"data-seg":S.key,"data-count":S.count||0,"aria-label":k(S),ref_for:!0,ref:z=>h(S.key,z),onMouseenter:z=>p(S.key),onFocus:z=>p(S.key),onBlur:_,onClick:dt(z=>a("select-segment",S.key),["stop"])},null,46,V_))),128))],12,H_),l.value?(V(),ae("button",{key:0,type:"button",class:$e(["lpb-seg lpb-seg-rest",{active:g.value===l.value.key}]),style:Xe({background:l.value.color}),"data-seg":l.value.key,"data-count":l.value.count||0,"aria-label":k(l.value),ref:S=>h(l.value.key,S),onMouseenter:R[0]||(R[0]=S=>p(l.value.key)),onFocus:R[1]||(R[1]=S=>p(l.value.key)),onBlur:_,onClick:R[2]||(R[2]=dt(S=>a("select-segment",l.value.key),["stop"]))},null,46,q_)):ve("",!0)]),e.showText?(V(),ae("span",{key:0,class:"lpb-text",role:"progressbar","aria-valuenow":e.covered,"aria-valuemin":"0","aria-valuemax":e.total,"aria-valuetext":b.value,"aria-label":f.value,title:f.value},he(e.compact?r.value+"%":b.value),9,W_)):ve("",!0),d.value?(V(),ae("div",{key:1,ref_key:"popEl",ref:m,class:"lpb-pop",role:"tooltip",style:Xe({left:y.value+"px"})},[C("span",{class:"lpb-pop-dot",style:Xe({background:d.value.color})},null,4),gt(he(k(d.value)),1)],4)):ve("",!0)],42,U_))}},[["styles",[z_]],["__scopeId","data-v-acafdbf6"]]),Y_="",X_={key:0,class:"lrg-title-row"},J_={class:"lrg-title-caret-slot"},Z_={class:"lrg-title"},Q_=["data-lrg-filter-key"],ex=["onClick"],tx={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},ox=["onClick"],nx={class:"lrg-name"},ax={class:"lrg-badge-inner"},rx=["data-lrg-filter-key"],sx=["onClick"],ix={class:"lrg-name"},lx={class:"lrg-badge-inner"},cx={key:1,class:"lrg-footer"},ux={class:"lrg-footer-label"},ug=Ot({__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}=ht();mt(` .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;} @@ -271,7 +270,7 @@ .lrg-dark .lrg-header-col{color:rgba(243,243,241,0.65);} .lrg-dark .lrg-footer{background:#2a332a;border-top-color:rgba(255,255,255,0.1);color:rgba(243,243,241,0.75);} .lrg-dark .lrg-footer-label{color:rgba(243,243,241,0.65);} -`,"legend-row-group");const o=e,n=Te("legendProgress",null),a=Q(()=>o.progress??de(n)??null),r=Q(()=>a.value?t("legend.progress.title"):o.title),s=le(null);function i(b){let k=b.parentElement;for(;k;){const x=getComputedStyle(k).overflowY;if((x==="auto"||x==="scroll")&&k.scrollHeight>k.clientHeight+1){const m=b.getBoundingClientRect(),v=k.getBoundingClientRect();k.scrollTop+=m.top-v.top-8}k=k.parentElement}}let l=0;De(()=>o.activeFilter,async b=>{if(!b)return;const k=++l,x=s.value;if(!x)return;await jt();const m=(v=0)=>{if(k!==l)return;const g=x.querySelector(`[data-lrg-filter-key="${CSS.escape(String(b))}"]`);g&&i(g),v<6&&setTimeout(()=>m(v+1),70)};m(0)});const c=Fn({});function u(b){c[b]=!c[b]}const f=Q(()=>`var(--lrg-caret-col) minmax(80px, 1fr) ${o.columns.map(()=>"auto").join(" ")} var(--lrg-caret-col)`);return(b,k)=>(V(),ae("div",{class:Ee(["legend-row-group",e.isDark?"lrg-dark":"lrg-light"])},[C("div",{class:"lrg-items",style:Xe({"--lrg-grid-cols":f.value}),ref_key:"itemsContainer",ref:s},[!e.hideColumnHeader&&(e.title||e.columns.length)?(V(),ae("div",q_,[C("span",W_,[Fo(b.$slots,"title-caret",{},void 0,!0)]),C("span",Y_,he(r.value),1),(V(!0),ae(Ie,null,yt(e.columns,x=>(V(),ae("span",{key:x.key,class:"lrg-header-col"},he(x.label),1))),128)),a.value?(V(),Ge(cg,{key:0,class:"lrg-progress",covered:a.value.covered,total:a.value.total,segments:a.value.segments,"is-dark":e.isDark,"fmt-count":e.fmtCount,onSelectSegment:k[0]||(k[0]=x=>b.$emit("filter-click",x))},null,8,["covered","total","segments","is-dark","fmt-count"])):ve("",!0)])):ve("",!0),(V(!0),ae(Ie,null,yt(e.items,x=>(V(),ae(Ie,{key:x.key},[C("div",{class:"lrg-row","data-lrg-filter-key":x.filterKey},[x.children&&x.children.length&&!e.disableCollapse?(V(),ae("button",{key:0,class:Ee(["lrg-caret",{expanded:!c[x.key]}]),onClick:dt(m=>u(x.key),["stop"]),"aria-label":"Toggle children"},[...k[1]||(k[1]=[C("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,J_)):(V(),ae("span",Z_)),C("div",{class:Ee(["lrg-item",{selected:e.activeFilter===x.filterKey}]),onClick:m=>b.$emit("filter-click",x.filterKey)},[C("div",{class:"lrg-item-inner",style:Xe({backgroundColor:x.color,"--lrg-item-color":x.color})},[C("span",ex,he(x.label),1),(V(!0),ae(Ie,null,yt(e.columns,m=>(V(),ae("span",{key:m.key,class:"lrg-badge"},[C("span",tx,he(m.key==="population"?e.fmtPop(x.population):e.fmtCount(x.count)),1)]))),128))],4)],10,Q_)],8,X_),x.children&&x.children.length&&!c[x.key]?(V(!0),ae(Ie,{key:0},yt(x.children,m=>(V(),ae("div",{key:m.key,class:"lrg-row lrg-row-child","data-lrg-filter-key":m.filterKey},[k[2]||(k[2]=C("span",{class:"lrg-caret-placeholder","aria-hidden":"true"},null,-1)),C("div",{class:Ee(["lrg-item",{selected:e.activeFilter===m.filterKey}]),onClick:v=>b.$emit("filter-click",m.filterKey)},[C("div",{class:"lrg-item-inner",style:Xe({backgroundColor:m.color,"--lrg-item-color":m.color})},[C("span",ax,he(m.label),1),(V(!0),ae(Ie,null,yt(e.columns,v=>(V(),ae("span",{key:v.key,class:"lrg-badge"},[C("span",rx,he(v.key==="population"?e.fmtPop(m.population):e.fmtCount(m.count)),1)]))),128))],4)],10,nx)],8,ox))),128)):ve("",!0)],64))),128)),e.columns.length&&e.showFooter?(V(),ae("div",sx,[k[3]||(k[3]=C("span",{class:"lrg-footer-caret-slot","aria-hidden":"true"},null,-1)),C("span",ix,he(de(t)("legend.footer.total")),1),(V(!0),ae(Ie,null,yt(e.columns,x=>(V(),ae("span",{key:x.key,class:"lrg-footer-value"},he(x.key==="population"?e.fmtPop(e.totalPopulation):e.fmtCount(e.totalCount)),1))),128))])):ve("",!0)],4)],2))}},[["__scopeId","data-v-3bddba9a"]]),dg=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"];function pg(e){const t=(e||"U")[0].toUpperCase(),o=t.charCodeAt(0)%dg.length,n=dg[o];return{letter:t,color:"#ffffff",backgroundColor:n}}function lx(e,t={}){const{size:o=32,borderRadius:n=4}=t,a=pg(e);return{width:`${o}px`,height:`${o}px`,borderRadius:`${n}px`,backgroundColor:a.backgroundColor,color:a.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"600",fontSize:`${Math.floor(o*.5)}px`,flexShrink:"0"}}const cx={key:0,class:"detail-header"},ux={class:"header-left"},dx={class:"header-text"},px={class:"people-group-name"},gx={class:"people-group-subtitle"},fx=["aria-label"],hx={class:"detail-content"},mx={key:0,class:"pg-name-lead"},bx={class:"action-buttons"},yx={class:"quick-stats"},vx={class:"stat-item"},_x={class:"stat-label"},xx={class:"stat-value"},kx={class:"stat-item"},wx={class:"stat-label"},Ax={class:"stat-value"},Sx={class:"stat-item"},Lx={class:"stat-label"},Cx={class:"stat-value"},Ex={class:"stat-item"},$x={class:"stat-label"},Tx={class:"stat-value"},Px={class:"stat-item stat-committed"},Nx={class:"stat-label"},Mx={class:"stat-value"},Ix={key:1,class:"image-container position-inside"},Rx=["src","alt"],Fx={key:2,class:"description-section"},Ox={key:0,class:"description-text"},Dx={key:1,class:"description-text empty"},gg="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",xl=Ot({__name:"PeopleGroupDetail",props:{peopleGroup:{type:Object,required:!0},hideHeader:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},action:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)}},setup(e){const{t,locale:o}=ht();mt(` +`,"legend-row-group");const o=e,n=Te("legendProgress",null),a=Q(()=>o.progress??de(n)??null),r=Q(()=>a.value?t("legend.progress.title"):o.title),s=le(null);function i(b){let k=b.parentElement;for(;k;){const x=getComputedStyle(k).overflowY;if((x==="auto"||x==="scroll")&&k.scrollHeight>k.clientHeight+1){const m=b.getBoundingClientRect(),v=k.getBoundingClientRect();k.scrollTop+=m.top-v.top-8}k=k.parentElement}}let l=0;De(()=>o.activeFilter,async b=>{if(!b)return;const k=++l,x=s.value;if(!x)return;await jt();const m=(v=0)=>{if(k!==l)return;const g=x.querySelector(`[data-lrg-filter-key="${CSS.escape(String(b))}"]`);g&&i(g),v<6&&setTimeout(()=>m(v+1),70)};m(0)});const c=Fn({});function u(b){c[b]=!c[b]}const f=Q(()=>`var(--lrg-caret-col) minmax(80px, 1fr) ${o.columns.map(()=>"auto").join(" ")} var(--lrg-caret-col)`);return(b,k)=>(V(),ae("div",{class:$e(["legend-row-group",e.isDark?"lrg-dark":"lrg-light"])},[C("div",{class:"lrg-items",style:Xe({"--lrg-grid-cols":f.value}),ref_key:"itemsContainer",ref:s},[!e.hideColumnHeader&&(e.title||e.columns.length)?(V(),ae("div",X_,[C("span",J_,[Fo(b.$slots,"title-caret",{},void 0,!0)]),C("span",Z_,he(r.value),1),(V(!0),ae(Ie,null,yt(e.columns,x=>(V(),ae("span",{key:x.key,class:"lrg-header-col"},he(x.label),1))),128)),a.value?(V(),Ge(cg,{key:0,class:"lrg-progress",covered:a.value.covered,total:a.value.total,segments:a.value.segments,"is-dark":e.isDark,"fmt-count":e.fmtCount,onSelectSegment:k[0]||(k[0]=x=>b.$emit("filter-click",x))},null,8,["covered","total","segments","is-dark","fmt-count"])):ve("",!0)])):ve("",!0),(V(!0),ae(Ie,null,yt(e.items,x=>(V(),ae(Ie,{key:x.key},[C("div",{class:"lrg-row","data-lrg-filter-key":x.filterKey},[x.children&&x.children.length&&!e.disableCollapse?(V(),ae("button",{key:0,class:$e(["lrg-caret",{expanded:!c[x.key]}]),onClick:dt(m=>u(x.key),["stop"]),"aria-label":"Toggle children"},[...k[1]||(k[1]=[C("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,ex)):(V(),ae("span",tx)),C("div",{class:$e(["lrg-item",{selected:e.activeFilter===x.filterKey}]),onClick:m=>b.$emit("filter-click",x.filterKey)},[C("div",{class:"lrg-item-inner",style:Xe({backgroundColor:x.color,"--lrg-item-color":x.color})},[C("span",nx,he(x.label),1),(V(!0),ae(Ie,null,yt(e.columns,m=>(V(),ae("span",{key:m.key,class:"lrg-badge"},[C("span",ax,he(m.key==="population"?e.fmtPop(x.population):e.fmtCount(x.count)),1)]))),128))],4)],10,ox)],8,Q_),x.children&&x.children.length&&!c[x.key]?(V(!0),ae(Ie,{key:0},yt(x.children,m=>(V(),ae("div",{key:m.key,class:"lrg-row lrg-row-child","data-lrg-filter-key":m.filterKey},[k[2]||(k[2]=C("span",{class:"lrg-caret-placeholder","aria-hidden":"true"},null,-1)),C("div",{class:$e(["lrg-item",{selected:e.activeFilter===m.filterKey}]),onClick:v=>b.$emit("filter-click",m.filterKey)},[C("div",{class:"lrg-item-inner",style:Xe({backgroundColor:m.color,"--lrg-item-color":m.color})},[C("span",ix,he(m.label),1),(V(!0),ae(Ie,null,yt(e.columns,v=>(V(),ae("span",{key:v.key,class:"lrg-badge"},[C("span",lx,he(v.key==="population"?e.fmtPop(m.population):e.fmtCount(m.count)),1)]))),128))],4)],10,sx)],8,rx))),128)):ve("",!0)],64))),128)),e.columns.length&&e.showFooter?(V(),ae("div",cx,[k[3]||(k[3]=C("span",{class:"lrg-footer-caret-slot","aria-hidden":"true"},null,-1)),C("span",ux,he(de(t)("legend.footer.total")),1),(V(!0),ae(Ie,null,yt(e.columns,x=>(V(),ae("span",{key:x.key,class:"lrg-footer-value"},he(x.key==="population"?e.fmtPop(e.totalPopulation):e.fmtCount(e.totalCount)),1))),128))])):ve("",!0)],4)],2))}},[["styles",[Y_]],["__scopeId","data-v-3bddba9a"]]),dg=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"];function pg(e){const t=(e||"U")[0].toUpperCase(),o=t.charCodeAt(0)%dg.length,n=dg[o];return{letter:t,color:"#ffffff",backgroundColor:n}}function dx(e,t={}){const{size:o=32,borderRadius:n=4}=t,a=pg(e);return{width:`${o}px`,height:`${o}px`,borderRadius:`${n}px`,backgroundColor:a.backgroundColor,color:a.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"600",fontSize:`${Math.floor(o*.5)}px`,flexShrink:"0"}}const px=".people-group-detail[data-v-8142ca9c]{display:flex;flex-direction:column;height:100%;overflow-y:auto}.detail-header[data-v-8142ca9c]{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:#fff;position:sticky;top:0;z-index:10}.header-left[data-v-8142ca9c]{display:flex;gap:12px;align-items:center;flex:1;min-width:0}.header-text[data-v-8142ca9c]{flex:1;min-width:0}.people-group-name[data-v-8142ca9c]{margin:0;font-size:18px;font-weight:700;color:#333;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text}.people-group-subtitle[data-v-8142ca9c]{margin:4px 0 0;font-size:13px;color:#666;line-height:1.2}.close-button[data-v-8142ca9c]{background:none;border:none;padding:4px;cursor:pointer;color:#666;transition:color .2s ease;flex-shrink:0}.close-button[data-v-8142ca9c]:hover{color:#333}.detail-content[data-v-8142ca9c]{padding:6px 12px 12px;flex:1;overflow-y:auto}.quick-stats[data-v-8142ca9c]{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.stat-item[data-v-8142ca9c]{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.stat-label[data-v-8142ca9c]{color:#666;font-weight:500}.stat-value[data-v-8142ca9c]{color:#333;font-weight:600;text-align:right}.action-buttons[data-v-8142ca9c]{display:flex;gap:8px;padding-top:12px;margin-bottom:10px;overflow-x:auto;padding-bottom:2px}.action-btn[data-v-8142ca9c]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.action-btn.primary[data-v-8142ca9c]{background:#92b195;color:#fff}.action-btn.primary[data-v-8142ca9c]:hover{background:#73a17f;box-shadow:0 2px 4px #92b1954d}.action-btn.secondary[data-v-8142ca9c]{background:#ecf0f1;color:#333}.action-btn.secondary[data-v-8142ca9c]:hover{background:#d5dbdb}.btn-icon[data-v-8142ca9c]{flex-shrink:0}.image-container[data-v-8142ca9c]{margin-bottom:16px;border-radius:8px;overflow:hidden;background:#f5f5f5}.image-container.position-above[data-v-8142ca9c]{width:120px;height:150px;margin:0 auto 16px}.image-container.position-inside[data-v-8142ca9c]{width:200px;height:250px;margin:0 auto 16px}.people-group-image[data-v-8142ca9c]{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease}.people-group-image.loaded[data-v-8142ca9c]{opacity:1}.image-placeholder-svg[data-v-8142ca9c]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f0f0f0;transition:opacity .3s ease}.image-placeholder-svg.hidden[data-v-8142ca9c]{opacity:0;pointer-events:none}.image-container[data-v-8142ca9c]{position:relative}.description-section[data-v-8142ca9c]{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0}.description-text[data-v-8142ca9c]{margin:0;font-size:14px;line-height:1.6;color:#555}.description-text.empty[data-v-8142ca9c]{color:#999;font-style:italic}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar{height:4px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width: 480px){.people-group-name[data-v-8142ca9c]{font-size:16px}.stat-item[data-v-8142ca9c]{font-size:13px}.action-btn[data-v-8142ca9c]{padding:8px 14px;font-size:13px}}",gx={key:0,class:"detail-header"},fx={class:"header-left"},hx={class:"header-text"},mx={class:"people-group-name"},bx={class:"people-group-subtitle"},yx=["aria-label"],vx={class:"detail-content"},_x={key:0,class:"pg-name-lead"},xx={class:"action-buttons"},kx={class:"quick-stats"},wx={class:"stat-item"},Ax={class:"stat-label"},Sx={class:"stat-value"},Lx={class:"stat-item"},Cx={class:"stat-label"},$x={class:"stat-value"},Ex={class:"stat-item"},Tx={class:"stat-label"},Px={class:"stat-value"},Nx={class:"stat-item"},Mx={class:"stat-label"},Ix={class:"stat-value"},Rx={class:"stat-item stat-committed"},Fx={class:"stat-label"},Ox={class:"stat-value"},Dx={key:1,class:"image-container position-inside"},Bx=["src","alt"],Gx={key:2,class:"description-section"},jx={key:0,class:"description-text"},zx={key:1,class:"description-text empty"},gg="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",xl=Ot({__name:"PeopleGroupDetail",props:{peopleGroup:{type:Object,required:!0},hideHeader:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},action:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)}},setup(e){const{t,locale:o}=ht();mt(` .people-group-detail{display:flex;flex-direction:column;height:100%;overflow-y:auto;} .people-group-detail.dark-mode{background:#1a1a2e;color:#eee;} .detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:white;position:sticky;top:0;z-index:10;} @@ -322,7 +321,7 @@ .dark-mode .description-text{color:#d1d5db;} .description-text.empty{color:#999;font-style:italic;} .dark-mode .description-text.empty{color:#6b7280;} -`,"legend-people-group-detail");const n=e,a=Te("uiStore"),r=Te("profileConfig",null),s=Q(()=>a.legendState),i=Q(()=>a.isMobile),l=Q(()=>!i.value||s.value==="fullyOpen"),c=Q(()=>pg(n.peopleGroup.properties.name)),u=Q(()=>c.value.letter),f=Q(()=>lx(n.peopleGroup.properties.name,{size:32,borderRadius:4})),b=Q(()=>n.peopleGroup.properties),k=le(null),x=le(!1),m=Q(()=>b.value.slug||"");async function v(ee){if(!ee)return;const oe=fl();if(oe)try{const H=await fetch(`${oe}/api/people-groups/detail/${encodeURIComponent(ee)}?lang=${encodeURIComponent(o.value)}`);if(!H.ok)throw new Error(`HTTP ${H.status}`);k.value=await H.json()}catch{k.value=null}}De(m,ee=>{x.value=!1,k.value=null,v(ee)},{immediate:!0});const g=Q(()=>{var ee;return b.value.countryName||b.value.countryIsoLabel||b.value.country||b.value.countryIso||((ee=b.value._raw)==null?void 0:ee.Country)||""}),y=Q(()=>{var H;const ee=b.value.status||((H=b.value._raw)==null?void 0:H.Status),oe=g.value||"Unknown";return ee?`${oe} • ${ee}`:oe}),d=Q(()=>{var oe;const ee=b.value.language||((oe=b.value._raw)==null?void 0:oe.Language);if(!ee)return"Unknown";if(typeof ee=="object"&&ee.label)return ee.label;if(typeof ee=="string"&&ee.startsWith("{"))try{const H=JSON.parse(ee);if(H!=null&&H.label)return H.label}catch{}return ee}),h=Q(()=>{var ee;return b.value.population||((ee=b.value._raw)==null?void 0:ee.Population)||0}),p=Q(()=>{var oe,H;const ee=[(oe=k.value)==null?void 0:oe.people_praying,b.value.peoplePraying,(H=b.value._raw)==null?void 0:H.people_praying];for(const pe of ee)if(pe!=null&&pe!=="")return Number(pe);return null}),_=Q(()=>p.value===null?"—":p.value.toLocaleString()),L=Q(()=>{var ee;return b.value.religionName||b.value.religionLabel||b.value.religion||((ee=b.value._raw)==null?void 0:ee.Religion)||""}),R=Q(()=>{var ee,oe,H;return((ee=k.value)==null?void 0:ee.imb_people_description)||((oe=k.value)==null?void 0:oe.description)||b.value.description||((H=b.value._raw)==null?void 0:H.Description)||""}),S=Q(()=>{var ee,oe,H;return((ee=k.value)==null?void 0:ee.image_url)||((oe=k.value)==null?void 0:oe.imageUrl)||b.value.imageUrl||((H=b.value._raw)==null?void 0:H.ImageURL)||gg}),z=Q(()=>{const ee=parseInt(h.value);return ee>=1e6?`${(ee/1e6).toFixed(1)}M`:ee>=1e3?`${(ee/1e3).toFixed(1)}K`:ee.toLocaleString()});function j(){a.selectPeopleGroup(null)}function O(){var pe;let ee="";try{ee=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const oe=(pe=r==null?void 0:r.value)==null?void 0:pe.utmSource,H=typeof window<"u"&&window.DOXA_UTM_SOURCE||"";return encodeURIComponent(String(ee||oe||H||"agwm"))}function D(ee){return`https://pray.doxa.life/${encodeURIComponent(ee)}?source=doxalife&utm_source=${O()}`}function M(ee){return`${$()}/adopt/${encodeURIComponent(ee)}/?source=doxalife&utm_source=${O()}`}function $(){const ee=typeof window<"u"&&window.DOXA_SITE_URL||"";return String(ee||"https://doxa.life").replace(/\/+$/,"")}function T(ee){return`${$()}/research/${encodeURIComponent(ee)}/?utm_source=${O()}`}function N(){const ee=m.value;if(!ee)return;n.action!=="adopt"&&g_(ee);const oe=n.action==="adopt"?M(ee):D(ee);window.open(oe,"_blank","noopener")}function q(){const ee=m.value;ee&&window.open(T(ee),"_blank","noopener")}function ce(ee){ee.target.dataset.usedFallback||(ee.target.dataset.usedFallback="true",ee.target.src=gg)}return(ee,oe)=>(V(),ae("div",{class:Ee(["people-group-detail",{"dark-mode":e.dark}])},[e.hideHeader?ve("",!0):(V(),ae("div",cx,[C("div",ux,[C("div",{class:"avatar",style:Xe(f.value)},he(u.value),5),C("div",dx,[C("h3",px,he(e.peopleGroup.properties.name),1),C("p",gx,he(y.value),1)])]),C("button",{class:"close-button",onClick:j,"aria-label":de(t)("aria.closeDetailView")},[...oe[1]||(oe[1]=[C("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},[C("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,fx)])),C("div",hx,[e.hideHeader?(V(),ae("h3",mx,he(e.peopleGroup.properties.name||de(t)("legend.header.peopleGroupFallback")),1)):ve("",!0),C("div",bx,[e.action==="pray"||e.action==="adopt"?(V(),ae("button",{key:0,class:"action-btn primary",onClick:N},[oe[2]||(oe[2]=C("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[C("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),C("span",null,he(e.action==="adopt"?de(t)("buttons.adoptThem"):de(t)("buttons.prayForThem")),1)])):ve("",!0),C("button",{class:"action-btn secondary",onClick:q},[oe[3]||(oe[3]=C("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[C("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),C("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),C("span",null,he(de(t)("buttons.moreInfo")),1)])]),C("div",yx,[C("div",vx,[C("span",_x,he(de(t)("detail.labels.country")),1),C("span",xx,he(g.value||"—"),1)]),C("div",kx,[C("span",wx,he(de(t)("detail.labels.population")),1),C("span",Ax,he(z.value||"—"),1)]),C("div",Sx,[C("span",Lx,he(de(t)("detail.labels.language")),1),C("span",Cx,he(d.value||"—"),1)]),C("div",Ex,[C("span",$x,he(de(t)("detail.labels.religion")),1),C("span",Tx,he(L.value||"—"),1)]),C("div",Px,[C("span",Nx,he(de(t)("detail.labels.peopleCommitted")),1),C("span",Mx,he(_.value),1)])]),l.value?(V(),ae("div",Ix,[C("div",{class:Ee(["image-placeholder-svg",{hidden:x.value}])},[...oe[4]||(oe[4]=[C("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 120",width:"80",height:"96","aria-hidden":"true"},[C("circle",{cx:"50",cy:"36",r:"22",fill:"#ccc"}),C("ellipse",{cx:"50",cy:"95",rx:"36",ry:"28",fill:"#ccc"})],-1)])],2),S.value?(V(),ae("img",{key:0,src:S.value,alt:`${e.peopleGroup.properties.name} people group`,class:Ee(["people-group-image",{loaded:x.value}]),onLoad:oe[0]||(oe[0]=H=>x.value=!0),onError:ce},null,42,Rx)):ve("",!0)])):ve("",!0),l.value?(V(),ae("div",Fx,[R.value?(V(),ae("p",Ox,he(R.value),1)):(V(),ae("p",Dx,he(de(t)("detail.messages.noDescription")),1))])):ve("",!0)])],2))}},[["__scopeId","data-v-8142ca9c"]]),Bx=Object.freeze(Object.defineProperty({__proto__:null,default:xl},Symbol.toStringTag,{value:"Module"})),ds={excludeReligionFamilies:["C"]},Gx={class:"legend-reopen-label"},jx=["aria-label"],zx=["aria-label"],Ux=["aria-label"],Kx=Ot({__name:"LegendDesktop",props:{legendType:{type:String,required:!0},initiallyCollapsed:{type:Boolean,default:!1},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const t=La(()=>qt(()=>Promise.resolve().then(()=>Ag),void 0)),{t:o}=ht();mt(` +`,"legend-people-group-detail");const n=e,a=Te("uiStore"),r=Te("profileConfig",null),s=Q(()=>a.legendState),i=Q(()=>a.isMobile),l=Q(()=>!i.value||s.value==="fullyOpen"),c=Q(()=>pg(n.peopleGroup.properties.name)),u=Q(()=>c.value.letter),f=Q(()=>dx(n.peopleGroup.properties.name,{size:32,borderRadius:4})),b=Q(()=>n.peopleGroup.properties),k=le(null),x=le(!1),m=Q(()=>b.value.slug||"");async function v(ee){if(!ee)return;const oe=fl();if(oe)try{const H=await fetch(`${oe}/api/people-groups/detail/${encodeURIComponent(ee)}?lang=${encodeURIComponent(o.value)}`);if(!H.ok)throw new Error(`HTTP ${H.status}`);k.value=await H.json()}catch{k.value=null}}De(m,ee=>{x.value=!1,k.value=null,v(ee)},{immediate:!0});const g=Q(()=>{var ee;return b.value.countryName||b.value.countryIsoLabel||b.value.country||b.value.countryIso||((ee=b.value._raw)==null?void 0:ee.Country)||""}),y=Q(()=>{var H;const ee=b.value.status||((H=b.value._raw)==null?void 0:H.Status),oe=g.value||"Unknown";return ee?`${oe} • ${ee}`:oe}),d=Q(()=>{var oe;const ee=b.value.language||((oe=b.value._raw)==null?void 0:oe.Language);if(!ee)return"Unknown";if(typeof ee=="object"&&ee.label)return ee.label;if(typeof ee=="string"&&ee.startsWith("{"))try{const H=JSON.parse(ee);if(H!=null&&H.label)return H.label}catch{}return ee}),h=Q(()=>{var ee;return b.value.population||((ee=b.value._raw)==null?void 0:ee.Population)||0}),p=Q(()=>{var oe,H;const ee=[(oe=k.value)==null?void 0:oe.people_praying,b.value.peoplePraying,(H=b.value._raw)==null?void 0:H.people_praying];for(const pe of ee)if(pe!=null&&pe!=="")return Number(pe);return null}),_=Q(()=>p.value===null?"—":p.value.toLocaleString()),L=Q(()=>{var ee;return b.value.religionName||b.value.religionLabel||b.value.religion||((ee=b.value._raw)==null?void 0:ee.Religion)||""}),R=Q(()=>{var ee,oe,H;return((ee=k.value)==null?void 0:ee.imb_people_description)||((oe=k.value)==null?void 0:oe.description)||b.value.description||((H=b.value._raw)==null?void 0:H.Description)||""}),S=Q(()=>{var ee,oe,H;return((ee=k.value)==null?void 0:ee.image_url)||((oe=k.value)==null?void 0:oe.imageUrl)||b.value.imageUrl||((H=b.value._raw)==null?void 0:H.ImageURL)||gg}),z=Q(()=>{const ee=parseInt(h.value);return ee>=1e6?`${(ee/1e6).toFixed(1)}M`:ee>=1e3?`${(ee/1e3).toFixed(1)}K`:ee.toLocaleString()});function j(){a.selectPeopleGroup(null)}function O(){var pe;let ee="";try{ee=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const oe=(pe=r==null?void 0:r.value)==null?void 0:pe.utmSource,H=typeof window<"u"&&window.DOXA_UTM_SOURCE||"";return encodeURIComponent(String(ee||oe||H||"agwm"))}function D(ee){return`https://pray.doxa.life/${encodeURIComponent(ee)}?source=doxalife&utm_source=${O()}`}function M(ee){return`${E()}/adopt/${encodeURIComponent(ee)}/?source=doxalife&utm_source=${O()}`}function E(){const ee=typeof window<"u"&&window.DOXA_SITE_URL||"";return String(ee||"https://doxa.life").replace(/\/+$/,"")}function T(ee){return`${E()}/research/${encodeURIComponent(ee)}/?utm_source=${O()}`}function N(){const ee=m.value;if(!ee)return;n.action!=="adopt"&&f_(ee);const oe=n.action==="adopt"?M(ee):D(ee);window.open(oe,"_blank","noopener")}function q(){const ee=m.value;ee&&window.open(T(ee),"_blank","noopener")}function ce(ee){ee.target.dataset.usedFallback||(ee.target.dataset.usedFallback="true",ee.target.src=gg)}return(ee,oe)=>(V(),ae("div",{class:$e(["people-group-detail",{"dark-mode":e.dark}])},[e.hideHeader?ve("",!0):(V(),ae("div",gx,[C("div",fx,[C("div",{class:"avatar",style:Xe(f.value)},he(u.value),5),C("div",hx,[C("h3",mx,he(e.peopleGroup.properties.name),1),C("p",bx,he(y.value),1)])]),C("button",{class:"close-button",onClick:j,"aria-label":de(t)("aria.closeDetailView")},[...oe[1]||(oe[1]=[C("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},[C("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,yx)])),C("div",vx,[e.hideHeader?(V(),ae("h3",_x,he(e.peopleGroup.properties.name||de(t)("legend.header.peopleGroupFallback")),1)):ve("",!0),C("div",xx,[e.action==="pray"||e.action==="adopt"?(V(),ae("button",{key:0,class:"action-btn primary",onClick:N},[oe[2]||(oe[2]=C("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[C("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),C("span",null,he(e.action==="adopt"?de(t)("buttons.adoptThem"):de(t)("buttons.prayForThem")),1)])):ve("",!0),C("button",{class:"action-btn secondary",onClick:q},[oe[3]||(oe[3]=C("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[C("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),C("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),C("span",null,he(de(t)("buttons.moreInfo")),1)])]),C("div",kx,[C("div",wx,[C("span",Ax,he(de(t)("detail.labels.country")),1),C("span",Sx,he(g.value||"—"),1)]),C("div",Lx,[C("span",Cx,he(de(t)("detail.labels.population")),1),C("span",$x,he(z.value||"—"),1)]),C("div",Ex,[C("span",Tx,he(de(t)("detail.labels.language")),1),C("span",Px,he(d.value||"—"),1)]),C("div",Nx,[C("span",Mx,he(de(t)("detail.labels.religion")),1),C("span",Ix,he(L.value||"—"),1)]),C("div",Rx,[C("span",Fx,he(de(t)("detail.labels.peopleCommitted")),1),C("span",Ox,he(_.value),1)])]),l.value?(V(),ae("div",Dx,[C("div",{class:$e(["image-placeholder-svg",{hidden:x.value}])},[...oe[4]||(oe[4]=[C("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 120",width:"80",height:"96","aria-hidden":"true"},[C("circle",{cx:"50",cy:"36",r:"22",fill:"#ccc"}),C("ellipse",{cx:"50",cy:"95",rx:"36",ry:"28",fill:"#ccc"})],-1)])],2),S.value?(V(),ae("img",{key:0,src:S.value,alt:`${e.peopleGroup.properties.name} people group`,class:$e(["people-group-image",{loaded:x.value}]),onLoad:oe[0]||(oe[0]=H=>x.value=!0),onError:ce},null,42,Bx)):ve("",!0)])):ve("",!0),l.value?(V(),ae("div",Gx,[R.value?(V(),ae("p",jx,he(R.value),1)):(V(),ae("p",zx,he(de(t)("detail.messages.noDescription")),1))])):ve("",!0)])],2))}},[["styles",[px]],["__scopeId","data-v-8142ca9c"]]),Ux=Object.freeze(Object.defineProperty({__proto__:null,default:xl},Symbol.toStringTag,{value:"Module"})),ds={excludeReligionFamilies:["C"]},Kx="",Hx={class:"legend-reopen-label"},Vx=["aria-label"],qx=["aria-label"],Wx=["aria-label"],Yx=Ot({__name:"LegendDesktop",props:{legendType:{type:String,required:!0},initiallyCollapsed:{type:Boolean,default:!1},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const t=La(()=>qt(()=>Promise.resolve().then(()=>Ag),void 0)),{t:o}=ht();mt(` .legend-container{position:absolute;top:60px;left:8px;width:var(--map-legend-width,380px);max-height:calc(100vh - 80px);background:#fff;border-radius:var(--map-radius,16px);box-shadow:0 2px 8px rgba(0,0,0,0.12),0 1px 3px rgba(0,0,0,0.08);z-index:1000;overflow:hidden;display:flex;flex-direction:column;transition:width 200ms cubic-bezier(0.2,0,0,1),max-height 200ms cubic-bezier(0.2,0,0,1),min-width 200ms cubic-bezier(0.2,0,0,1),border-radius 200ms linear,box-shadow 200ms linear;will-change:width,max-height;} .legend-container .lrg-title{font-size:15px;} .legend-container .lrg-header-col{font-size:11px;} @@ -399,7 +398,7 @@ .legend-dark .legend-item-selected{outline-color:rgba(255,255,255,0.5)!important;} .legend-dark .legend-tree-caret{color:rgba(243,243,241,0.7)!important;} .legend-dark .legend-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.18);} -`,"legend-component");const n=e;Te("mapStore"),Te("dataStore");const a=Te("uiStore"),r=wr(n,"legendType"),{items:s,columns:i,title:l,activeFilter:c,setFilter:u,totalCount:f,totalPopulation:b,progress:k,fmtPop:x,fmtCount:m}=Ja(r,ds);Te("normalizedPeopleGroups",null);const v=Te("mapId",null),g=Q(()=>a.isMobile),y=Q(()=>a.legendMode),d=Q(()=>a.selectedPeopleGroup),h=le(n.initiallyCollapsed);let p=null;const _=Q(()=>{var S;return y.value==="detail"&&d.value?((S=d.value.properties)==null?void 0:S.name)||o("legend.header.peopleGroupFallback"):h.value?o("legend.header.collapsed"):l.value});function L(){h.value=!h.value}De(y,(S,z)=>{S==="detail"&&z!=="detail"&&h.value&&(h.value=!1)});function R(S){u(S)}return Zt(()=>{window.innerWidth<768&&(h.value=!0),p=S=>{var z;v&&((z=S.detail)!=null&&z.mapId)&&S.detail.mapId!==v||(h.value=!1)},window.addEventListener("doxa:openDesktopLegend",p)}),ho(()=>{p&&window.removeEventListener("doxa:openDesktopLegend",p)}),(S,z)=>g.value?(V(),Ge(de(t),{key:0,legendType:e.legendType,popupAction:e.popupAction,isDark:e.isDark,disableCollapse:e.disableCollapse},null,8,["legendType","popupAction","isDark","disableCollapse"])):h.value?(V(),ae("button",{key:1,class:Ee(["legend-reopen",{"legend-reopen-light":!e.isDark}]),title:"Expand legend",onClick:z[0]||(z[0]=j=>h.value=!1)},[z[2]||(z[2]=C("svg",{class:"legend-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),C("span",Gx,he(de(l)),1),z[3]||(z[3]=C("svg",{class:"legend-reopen-caret",width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],2)):(V(),ae("div",{key:2,class:Ee(["legend-container",{"legend-dark":e.isDark}])},[y.value==="detail"?(V(),ae("button",{key:0,class:"detail-collapse-btn",onClick:dt(L,["stop"]),"aria-label":de(o)("aria.toggleLegend")},null,8,jx)):ve("",!0),y.value==="detail"?(V(),ae("button",{key:1,class:"detail-close-btn",onClick:z[1]||(z[1]=dt(j=>de(a).selectPeopleGroup(null),["stop"])),"aria-label":de(o)("aria.backToLegend")},[...z[4]||(z[4]=[C("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[C("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,zx)):ve("",!0),C("div",{class:Ee(["legend-content",{"no-padding":de(i).length>0}])},[y.value==="detail"&&d.value?(V(),Ge(xl,{key:0,peopleGroup:d.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):e.legendType==="language-family"?(V(),ae(Ie,{key:1},[],64)):(V(),Ge(ug,{key:2,title:_.value,items:de(s),columns:de(i),activeFilter:de(c),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:de(f),totalPopulation:de(b),fmtPop:de(x),fmtCount:de(m),progress:de(k),onFilterClick:R},{"title-caret":Mt(()=>[C("button",{class:"legend-collapse-caret",onClick:dt(L,["stop"]),"aria-label":de(o)("aria.toggleLegend")},[...z[5]||(z[5]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:"rotate(180deg)","transform-origin":"center"}})],-1)])],8,Ux)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount","progress"]))],2)],2))}},[["__scopeId","data-v-b18c719c"]]),Hx={class:"lt-btn-group"},Vx=["title"],qx={class:"lt-btn-text"},Wx=["title"],Yx={class:"lt-btn-group"},Xx=["title"],Jx={key:0,width:"12",height:"12",viewBox:"0 0 12 12"},Zx=["title"],Qx=Ot({__name:"LegendTools",props:{legendType:{type:String,required:!0},isDark:{type:Boolean,default:!1}},emits:["legend-row-fly"],setup(e,{emit:t}){mt(` +`,"legend-component");const n=e;Te("mapStore"),Te("dataStore");const a=Te("uiStore"),r=wr(n,"legendType"),{items:s,columns:i,title:l,activeFilter:c,setFilter:u,totalCount:f,totalPopulation:b,progress:k,fmtPop:x,fmtCount:m}=Ja(r,ds);Te("normalizedPeopleGroups",null);const v=Te("mapId",null),g=Q(()=>a.isMobile),y=Q(()=>a.legendMode),d=Q(()=>a.selectedPeopleGroup),h=le(n.initiallyCollapsed);let p=null;const _=Q(()=>{var S;return y.value==="detail"&&d.value?((S=d.value.properties)==null?void 0:S.name)||o("legend.header.peopleGroupFallback"):h.value?o("legend.header.collapsed"):l.value});function L(){h.value=!h.value}De(y,(S,z)=>{S==="detail"&&z!=="detail"&&h.value&&(h.value=!1)});function R(S){u(S)}return Zt(()=>{window.innerWidth<768&&(h.value=!0),p=S=>{var z;v&&((z=S.detail)!=null&&z.mapId)&&S.detail.mapId!==v||(h.value=!1)},window.addEventListener("dxm:openDesktopLegend",p)}),ho(()=>{p&&window.removeEventListener("dxm:openDesktopLegend",p)}),(S,z)=>g.value?(V(),Ge(de(t),{key:0,legendType:e.legendType,popupAction:e.popupAction,isDark:e.isDark,disableCollapse:e.disableCollapse},null,8,["legendType","popupAction","isDark","disableCollapse"])):h.value?(V(),ae("button",{key:1,class:$e(["legend-reopen",{"legend-reopen-light":!e.isDark}]),title:"Expand legend",onClick:z[0]||(z[0]=j=>h.value=!1)},[z[2]||(z[2]=C("svg",{class:"legend-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),C("span",Hx,he(de(l)),1),z[3]||(z[3]=C("svg",{class:"legend-reopen-caret",width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],2)):(V(),ae("div",{key:2,class:$e(["legend-container",{"legend-dark":e.isDark}])},[y.value==="detail"?(V(),ae("button",{key:0,class:"detail-collapse-btn",onClick:dt(L,["stop"]),"aria-label":de(o)("aria.toggleLegend")},null,8,Vx)):ve("",!0),y.value==="detail"?(V(),ae("button",{key:1,class:"detail-close-btn",onClick:z[1]||(z[1]=dt(j=>de(a).selectPeopleGroup(null),["stop"])),"aria-label":de(o)("aria.backToLegend")},[...z[4]||(z[4]=[C("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[C("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,qx)):ve("",!0),C("div",{class:$e(["legend-content",{"no-padding":de(i).length>0}])},[y.value==="detail"&&d.value?(V(),Ge(xl,{key:0,peopleGroup:d.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):e.legendType==="language-family"?(V(),ae(Ie,{key:1},[],64)):(V(),Ge(ug,{key:2,title:_.value,items:de(s),columns:de(i),activeFilter:de(c),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:de(f),totalPopulation:de(b),fmtPop:de(x),fmtCount:de(m),progress:de(k),onFilterClick:R},{"title-caret":Mt(()=>[C("button",{class:"legend-collapse-caret",onClick:dt(L,["stop"]),"aria-label":de(o)("aria.toggleLegend")},[...z[5]||(z[5]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:"rotate(180deg)","transform-origin":"center"}})],-1)])],8,Wx)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount","progress"]))],2)],2))}},[["styles",[Kx]],["__scopeId","data-v-c8a288c5"]]),Xx="",Jx={class:"lt-btn-group"},Zx=["title"],Qx={class:"lt-btn-text"},ek=["title"],tk={class:"lt-btn-group"},ok=["title"],nk={key:0,width:"12",height:"12",viewBox:"0 0 12 12"},ak=["title"],rk=Ot({__name:"LegendTools",props:{legendType:{type:String,required:!0},isDark:{type:Boolean,default:!1}},emits:["legend-row-fly"],setup(e,{emit:t}){mt(` .lt-root{position:absolute;top:14px;left:calc(10px + var(--map-legend-width,340px) / 2);transform:translateX(-50%);z-index:1050;display:flex;gap:8px;align-items:center;flex-wrap:nowrap;background:transparent;pointer-events:auto;} @media(max-width:767px){ .lt-root{display:none;} @@ -432,7 +431,7 @@ .lt-dark .lt-popup-row{color:rgba(243,243,241,0.85);} .lt-dark .lt-popup-row:hover{background:rgba(255,255,255,0.06);} .lt-dark .lt-popup-row.active{background:rgba(124,140,248,0.18);color:#7c8cf8;} -`,"legend-tools");const o=e,n=t,{t:a}=ht(),r=Te("mapStore"),s=wr(o,"legendType"),{items:i,setFilter:l}=Ja(s,ds),c=le(!1),u=le(!1),f=le(0),b=le(null),k=Q(()=>r.isAutoFlying),x=Q(()=>r.isGuidedTourActive),m=Q(()=>r.flySpeed),v=Q(()=>r.showClusters),g=Q(()=>{const D=o.legendType;return D==="doxa-regions"||D==="language-family"||D==="language-families"}),y=Q(()=>({slow:a("buttons.speedOption.slow"),normal:a("buttons.speedOption.normal"),fast:a("buttons.speedOption.fast")})[m.value]||a("buttons.speedOption.normal")),d=Q(()=>({slow:8e3,normal:5e3,fast:3e3})[m.value]||5e3);function h(){c.value=!c.value,c.value&&(u.value=!1)}function p(D){r.setFlySpeed(D),setTimeout(()=>{c.value=!1},300)}function _(){r.toggleClusters()}function L(D){r.setClusterMode(D),setTimeout(()=>{u.value=!1},500)}function R(){k.value?z():(x.value,S())}function S(){i.value.length!==0&&(f.value=0,r.startAutoFly([]),O(),j())}function z(){b.value&&(clearTimeout(b.value),b.value=null),r.stopAutoFly()}function j(){b.value=setTimeout(()=>{k.value&&(f.value=(f.value+1)%i.value.length,O(),j())},d.value)}function O(){const D=i.value[f.value];D&&(l(D.filterKey),n("legend-row-fly",{index:f.value,filterKey:D.filterKey}))}return ho(()=>{b.value&&clearTimeout(b.value)}),(D,M)=>g.value?(V(),ae("div",{key:0,class:Ee(["lt-root",{"lt-dark":e.isDark}])},[C("div",Hx,[C("button",{class:Ee(["lt-btn",{active:k.value}]),onClick:dt(R,["stop"]),title:k.value?de(a)("buttons.stopFlight"):de(a)("buttons.startAutoFly")},[M[8]||(M[8]=C("span",{class:"lt-btn-icon"},"✈️",-1)),C("span",qx,he(k.value?"Stop":"Fly"),1)],10,Vx),C("button",{class:"lt-side-btn",onClick:dt(h,["stop"]),title:de(a)("buttons.speedLabel")+" "+y.value},[...M[9]||(M[9]=[C("span",{class:"lt-side-icon"},"⏱️",-1)])],8,Wx),c.value?(V(),ae("div",{key:0,class:"lt-popup",onClick:M[3]||(M[3]=dt(()=>{},["stop"]))},[C("div",{class:Ee(["lt-popup-row",{active:m.value==="slow"}]),onClick:M[0]||(M[0]=$=>p("slow"))},he(de(a)("buttons.speedOption.slow")),3),C("div",{class:Ee(["lt-popup-row",{active:m.value==="normal"}]),onClick:M[1]||(M[1]=$=>p("normal"))},he(de(a)("buttons.speedOption.normal")),3),C("div",{class:Ee(["lt-popup-row",{active:m.value==="fast"}]),onClick:M[2]||(M[2]=$=>p("fast"))},he(de(a)("buttons.speedOption.fast")),3)])):ve("",!0)]),C("div",Yx,[C("button",{class:Ee(["lt-btn",{active:v.value}]),onClick:dt(_,["stop"]),title:de(a)("buttons.showClusters")},[C("span",{class:Ee(["lt-checkbox",{checked:v.value}])},[v.value?(V(),ae("svg",Jx,[...M[10]||(M[10]=[C("path",{d:"M2 6l3 3 5-6",stroke:"#3498db","stroke-width":"2",fill:"none"},null,-1)])])):ve("",!0)],2),M[11]||(M[11]=C("span",{class:"lt-btn-text"},"Clusters",-1))],10,Xx),C("button",{class:"lt-side-btn",onClick:M[4]||(M[4]=dt($=>u.value=!u.value,["stop"])),title:de(a)("buttons.clusterSettings")},[...M[12]||(M[12]=[C("span",{class:"lt-side-icon"},"⚙️",-1)])],8,Zx),u.value?(V(),ae("div",{key:0,class:"lt-popup",onClick:M[6]||(M[6]=dt(()=>{},["stop"]))},[C("div",{class:"lt-popup-row active",onClick:M[5]||(M[5]=$=>L("mst"))},[...M[13]||(M[13]=[C("span",{class:"lt-popup-icon"},"⌬",-1),C("span",null,[gt("Minimum Spanning Tree"),C("br"),C("small",{style:{opacity:"0.7","font-weight":"400"}},"click a legend row to cluster only that group")],-1)])])])):ve("",!0),u.value?(V(),ae("div",{key:1,class:"lt-overlay",onClick:M[7]||(M[7]=dt($=>u.value=!1,["stop"]))})):ve("",!0)])],2)):ve("",!0)}},[["__scopeId","data-v-2768aea7"]]),ek={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=le(null);return St("mapToolbar",{el:t}),mt(` +`,"legend-tools");const o=e,n=t,{t:a}=ht(),r=Te("mapStore"),s=wr(o,"legendType"),{items:i,setFilter:l}=Ja(s,ds),c=le(!1),u=le(!1),f=le(0),b=le(null),k=Q(()=>r.isAutoFlying),x=Q(()=>r.isGuidedTourActive),m=Q(()=>r.flySpeed),v=Q(()=>r.showClusters),g=Q(()=>{const D=o.legendType;return D==="doxa-regions"||D==="language-family"||D==="language-families"}),y=Q(()=>({slow:a("buttons.speedOption.slow"),normal:a("buttons.speedOption.normal"),fast:a("buttons.speedOption.fast")})[m.value]||a("buttons.speedOption.normal")),d=Q(()=>({slow:8e3,normal:5e3,fast:3e3})[m.value]||5e3);function h(){c.value=!c.value,c.value&&(u.value=!1)}function p(D){r.setFlySpeed(D),setTimeout(()=>{c.value=!1},300)}function _(){r.toggleClusters()}function L(D){r.setClusterMode(D),setTimeout(()=>{u.value=!1},500)}function R(){k.value?z():(x.value,S())}function S(){i.value.length!==0&&(f.value=0,r.startAutoFly([]),O(),j())}function z(){b.value&&(clearTimeout(b.value),b.value=null),r.stopAutoFly()}function j(){b.value=setTimeout(()=>{k.value&&(f.value=(f.value+1)%i.value.length,O(),j())},d.value)}function O(){const D=i.value[f.value];D&&(l(D.filterKey),n("legend-row-fly",{index:f.value,filterKey:D.filterKey}))}return ho(()=>{b.value&&clearTimeout(b.value)}),(D,M)=>g.value?(V(),ae("div",{key:0,class:$e(["lt-root",{"lt-dark":e.isDark}])},[C("div",Jx,[C("button",{class:$e(["lt-btn",{active:k.value}]),onClick:dt(R,["stop"]),title:k.value?de(a)("buttons.stopFlight"):de(a)("buttons.startAutoFly")},[M[8]||(M[8]=C("span",{class:"lt-btn-icon"},"✈️",-1)),C("span",Qx,he(k.value?"Stop":"Fly"),1)],10,Zx),C("button",{class:"lt-side-btn",onClick:dt(h,["stop"]),title:de(a)("buttons.speedLabel")+" "+y.value},[...M[9]||(M[9]=[C("span",{class:"lt-side-icon"},"⏱️",-1)])],8,ek),c.value?(V(),ae("div",{key:0,class:"lt-popup",onClick:M[3]||(M[3]=dt(()=>{},["stop"]))},[C("div",{class:$e(["lt-popup-row",{active:m.value==="slow"}]),onClick:M[0]||(M[0]=E=>p("slow"))},he(de(a)("buttons.speedOption.slow")),3),C("div",{class:$e(["lt-popup-row",{active:m.value==="normal"}]),onClick:M[1]||(M[1]=E=>p("normal"))},he(de(a)("buttons.speedOption.normal")),3),C("div",{class:$e(["lt-popup-row",{active:m.value==="fast"}]),onClick:M[2]||(M[2]=E=>p("fast"))},he(de(a)("buttons.speedOption.fast")),3)])):ve("",!0)]),C("div",tk,[C("button",{class:$e(["lt-btn",{active:v.value}]),onClick:dt(_,["stop"]),title:de(a)("buttons.showClusters")},[C("span",{class:$e(["lt-checkbox",{checked:v.value}])},[v.value?(V(),ae("svg",nk,[...M[10]||(M[10]=[C("path",{d:"M2 6l3 3 5-6",stroke:"#3498db","stroke-width":"2",fill:"none"},null,-1)])])):ve("",!0)],2),M[11]||(M[11]=C("span",{class:"lt-btn-text"},"Clusters",-1))],10,ok),C("button",{class:"lt-side-btn",onClick:M[4]||(M[4]=dt(E=>u.value=!u.value,["stop"])),title:de(a)("buttons.clusterSettings")},[...M[12]||(M[12]=[C("span",{class:"lt-side-icon"},"⚙️",-1)])],8,ak),u.value?(V(),ae("div",{key:0,class:"lt-popup",onClick:M[6]||(M[6]=dt(()=>{},["stop"]))},[C("div",{class:"lt-popup-row active",onClick:M[5]||(M[5]=E=>L("mst"))},[...M[13]||(M[13]=[C("span",{class:"lt-popup-icon"},"⌬",-1),C("span",null,[gt("Minimum Spanning Tree"),C("br"),C("small",{style:{opacity:"0.7","font-weight":"400"}},"click a legend row to cluster only that group")],-1)])])])):ve("",!0),u.value?(V(),ae("div",{key:1,class:"lt-overlay",onClick:M[7]||(M[7]=dt(E=>u.value=!1,["stop"]))})):ve("",!0)])],2)):ve("",!0)}},[["styles",[Xx]],["__scopeId","data-v-2768aea7"]]),sk={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=le(null);return St("mapToolbar",{el:t}),mt(` .map-toolbar { position: absolute; top: 6px; @@ -449,7 +448,7 @@ .map-toolbar { top: 72px; gap: 6px; } .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } } -`,"map-toolbar"),(o,n)=>(V(),ae("div",{ref_key:"toolbarEl",ref:t,class:Ee(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Fo(o.$slots,"default")],2))}},tk=["title","disabled"],ta={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return mt(` +`,"map-toolbar"),(o,n)=>(V(),ae("div",{ref_key:"toolbarEl",ref:t,class:$e(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Fo(o.$slots,"default")],2))}},ik=["title","disabled"],ta={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return mt(` .mcb{ width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); background:#fff; @@ -473,7 +472,7 @@ .mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);} .mcb.dark.active{background:#4e594f;color:#92b195;} @media(max-width:767px){.mcb{width:36px;height:36px;}} -`,"map-control-button"),(t,o)=>(V(),ae("button",{class:Ee(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[Fo(t.$slots,"default")],10,tk))}},ok={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=ht(),o=e;function n(){var a;(a=o.map)==null||a.zoomIn()}return(a,r)=>(V(),Ge(ta,{"is-dark":e.isDark,title:de(t)("buttons.zoomIn"),onClick:n},{default:Mt(()=>[...r[0]||(r[0]=[C("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","title"]))}},nk={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=ht(),o=e;function n(){var a;(a=o.map)==null||a.zoomOut()}return(a,r)=>(V(),Ge(ta,{"is-dark":e.isDark,title:de(t)("buttons.zoomOut"),onClick:n},{default:Mt(()=>[...r[0]||(r[0]=[C("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","title"]))}},ak={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=ht(),o=e;function n(){var r;(r=o.map)==null||r.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:s,latitude:i}=r.coords;Number.isFinite(s)&&Number.isFinite(i)?o.map.flyTo({center:[s,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,s)=>(V(),Ge(ta,{"is-dark":e.isDark,title:de(t)("buttons.resetView"),onClick:a},{default:Mt(()=>[...s[0]||(s[0]=[C("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[C("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},rk={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},sk={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},ik={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=ht(),n=e,a=t,r=le(!1);let s=null,i=null,l=null,c=null,u=null,f=null,b=null,k=null,x=null,m=null,v=null,g=0,y=0,d=null,h=null;function p(){if(typeof document>"u")return!1;const $=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test($)||$.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function _(){var $,T,N;return((N=(T=($=n.mapContainer)==null?void 0:$.getRootNode)==null?void 0:T.call($))==null?void 0:N.host)??null}function L(){var T,N;const $=(N=(T=n.mapContainer)==null?void 0:T.getRootNode)==null?void 0:N.call(T);return document.fullscreenElement||document.webkitFullscreenElement||($&&$ instanceof ShadowRoot?$.fullscreenElement:null)||null}function R($){const T=$.requestFullscreen||$.webkitRequestFullscreen;if(!T)return Promise.reject(new Error("Fullscreen API unavailable"));const N=T.call($);return N&&typeof N.then=="function"?N:Promise.resolve()}function S(){const $=document.exitFullscreen||document.webkitExitFullscreen;if(!$)return Promise.reject(new Error("Fullscreen API unavailable"));const T=$.call(document);return T&&typeof T.then=="function"?T:Promise.resolve()}function z(){const $=_();if(!$)return!1;if(l=$,i=$.style.cssText,$.style.position="fixed",$.style.top="0",$.style.left="0",$.style.right="0",$.style.bottom="0",$.style.width="100vw",$.style.height="100vh",$.style.height="100dvh",$.style.zIndex="2147483647",$.style.margin="0",$.style.borderRadius="0",$.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){g=window.scrollY||window.pageYOffset||0,y=window.scrollX||window.pageXOffset||0;const T=document.body,N=document.documentElement;c=T?T.style.overflow:null,u=N?N.style.overflow:null,f=T?T.style.position:null,b=T?T.style.top:null,k=T?T.style.left:null,x=T?T.style.width:null,m=T?T.style.touchAction:null,v=N?N.style.touchAction:null,N&&(N.style.overflow="hidden",N.style.touchAction="none"),T&&(T.style.overflow="hidden",T.style.position="fixed",T.style.top=`-${g}px`,T.style.left=`-${y}px`,T.style.width="100%",T.style.touchAction="none"),d=q=>{if(!l)return;const ce=q.target;ce&&(ce===l||l.contains&&l.contains(ce))||q.cancelable&&q.preventDefault()},h=q=>{if(!l)return;const ce=q.target;ce&&(ce===l||l.contains&&l.contains(ce))||q.cancelable&&q.preventDefault()},document.addEventListener("touchmove",d,{passive:!1,capture:!0}),document.addEventListener("wheel",h,{passive:!1,capture:!0})}return!0}function j(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const $=document.body,T=document.documentElement;$&&($.style.overflow=c??"",$.style.position=f??"",$.style.top=b??"",$.style.left=k??"",$.style.width=x??"",$.style.touchAction=m??""),T&&(T.style.overflow=u??"",T.style.touchAction=v??""),d&&(document.removeEventListener("touchmove",d,{capture:!0}),d=null),h&&(document.removeEventListener("wheel",h,{capture:!0}),h=null),typeof window<"u"&&(g||y)&&window.scrollTo(y,g)}c=null,u=null,f=null,b=null,k=null,x=null,m=null,v=null,g=0,y=0}}function O(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function D(){if(!p()){r.value?(j(),r.value=!1,a("change",!1)):z()&&(r.value=!0,a("change",!0)),O();return}if(L())S().then(()=>{r.value=!1,a("change",!1)}).catch(()=>{});else{const T=_()??document.documentElement;R(T).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{R(document.documentElement).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{})})}}function M(){r.value=!!L(),a("change",r.value)}return Zt(()=>{var T,N;document.addEventListener("fullscreenchange",M),document.addEventListener("webkitfullscreenchange",M);const $=(N=(T=n.mapContainer)==null?void 0:T.getRootNode)==null?void 0:N.call(T);$ instanceof ShadowRoot&&(s=$,$.addEventListener("fullscreenchange",M),$.addEventListener("webkitfullscreenchange",M))}),ho(()=>{document.removeEventListener("fullscreenchange",M),document.removeEventListener("webkitfullscreenchange",M),s&&(s.removeEventListener("fullscreenchange",M),s.removeEventListener("webkitfullscreenchange",M),s=null),l&&j()}),($,T)=>(V(),Ge(ta,{"is-dark":e.isDark,active:r.value,title:de(o)("buttons.toggleFullscreen"),onClick:D},{default:Mt(()=>[r.value?(V(),ae("svg",sk,[...T[1]||(T[1]=[C("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(V(),ae("svg",rk,[...T[0]||(T[0]=[C("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},lk={style:{"font-size":"16px","line-height":"1"}},ck={__name:"ThemeToggleButton",props:{isDark:{type:Boolean,default:!1}},emits:["toggle"],setup(e){const{t}=ht();return(o,n)=>de(sv)?(V(),Ge(ta,{key:0,"is-dark":e.isDark,title:e.isDark?de(t)("buttons.switchToLightMode"):de(t)("buttons.switchToDarkMode"),onClick:n[0]||(n[0]=a=>o.$emit("toggle"))},{default:Mt(()=>[C("span",lk,he(e.isDark?"☀️":"🌙"),1)]),_:1},8,["is-dark","title"])):ve("",!0)}},uk=["blocs","clusters","peopleGroups","families","languages","dialects","people","places","regions","wagfBlocks","religions"],dk={"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 pk(e){return dk[e]||uk}const gk={blocs:3,clusters:3,peopleGroups:3,families:3,languages:3,dialects:3,people:5,places:2,regions:3,wagfBlocks:3,religions:2},ps=["peopleGroups","people","places","languages","religions"],fk={regions:[...ps,"regions","wagfBlocks"],"people-groups":[...ps,"blocs","clusters"],language:[...ps,"dialects","families"],religion:[...ps]},hk=100,mk=50,bk=25,yk=10,kl=5,fg=20,vk=[[/ sign language$/i,"Sign Language"]];function _k(e){if(!e||typeof e!="string")return"";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function xk(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function kk(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(qe[n])return qe[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(qe[a])return qe[a]}}if(qe[e])return qe[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();if(o!==e&&qe[o])return qe[o];for(const[n,a]of vk)if(n.test(e))return a;return null}function hg(e,t){return{id:`doxa-section-header-${wl(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 wl(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Re(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 gs(e){return e==null?"":typeof e=="string"?e:typeof e=="object"?e.label||e.value||"":String(e)}function wk(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=Re(i.name)+" "+Re(i.displayName)+" "+Re(i.alternateName),f=Re(i.countryName)+" "+Re(i.country)+" "+Re(i.countryIso)+" "+Re(i.countryIsoLabel),b=Re(i.religionName)+" "+Re(i.religion)+" "+Re(i.religionLabel)+" "+Re(i.religionCode),k=Re(i.language)+" "+Re(i.languageFamily)+" "+Re(i.languageCode),x=Re(i.doxaRegion)+" "+Re(i.wagfRegion)+" "+Re(i.wagfBlock),m=Re(i.affinityBlock)+" "+Re(i.affinityBlockLabel)+" "+Re((o=i._raw)==null?void 0:o.rop1),v=Re(i.cluster)+" "+Re(i.clusterLabel)+" "+Re((n=i._raw)==null?void 0:n.imb_reg_of_people_2),g=Re(i.peopleGroup)+" "+Re(i.peopleGroupLabel)+" "+Re((a=i._raw)==null?void 0:a.imb_reg_of_people_25),y=((r=i._raw)==null?void 0:r.primary_language)??((s=i._raw)==null?void 0:s.PrimaryLanguage),d=y&&(typeof y=="object"?y.label||y.value:y)||gs(i.language)||gs(i.primaryLanguage)||"",h=_k(d),p=xk(d);t.push({feature:i,nameHay:u,countryHay:f,religionHay:b,languageHay:k,regionHay:x,haystack:u+" "+f+" "+b+" "+k+" "+x+" "+m+" "+v+" "+g,blocHay:m,clusterHay:v,pgHay:g,lat:l,lng:c,familyDerived:kk(d)||null,languageLabel:d,baseLang:h,dialectLabel:p})}return t}function Ak(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:gs(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=>Re(o.feature.countryName)||Re(o.feature.country)||Re(o.feature.countryIso),o=>o.feature.countryName||o.feature.country||o.feature.countryIso||""),families:t(o=>Re(o.familyDerived),o=>o.familyDerived||""),languages:t(o=>Re(o.baseLang),o=>o.baseLang||""),dialects:t(o=>o.dialectLabel?`${Re(o.baseLang)}__${Re(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 qa(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 Cn[qa(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=>Re(o.feature.doxaRegion)||Re(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=>Re(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=>Re(o.feature.affinityBlockLabel)||Re(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=>Re(o.feature.peopleGroup)||Re(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 Sk(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||wl(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 Ao(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=gs(t.label)||t.key,r=wl(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,f=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}:{},...f||{},...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 Lk(e={}){const{dataStore:t,dataSourceId:o,getActiveFilter:n,getActiveContext:a}=e,{t:r}=ht(),s=Q(()=>{var f,b;if(!t||!t.sources)return[];if(o&&((f=t.sources[o])!=null&&f.features))return t.sources[o].features;for(const k of Object.keys(t.sources)){const x=t.sources[k];if((b=x==null?void 0:x.features)!=null&&b.length)return x.features}return[]}),i=Q(()=>wk(s.value)),l=Q(()=>Ak(i.value));function c(f){const b=String(f||"").trim().toLowerCase(),k={people:[],places:[],regions:[],wagfBlocks:[],families:[],languages:[],dialects:[],religions:[],blocs:[],clusters:[],peopleGroups:[]};if(b.length<2)return k;const x=b.split(/[\s,;]+/).filter(Boolean);if(!x.length)return k;const m=i.value;if(!m.length)return k;const v=l.value,g=[];for(const T of m){let N=!0;for(const ce of x)if(!T.haystack.includes(ce)){N=!1;break}if(!N)continue;let q=0;x.some(ce=>T.nameHay.includes(ce))&&(q+=hk),x.some(ce=>T.countryHay.includes(ce))&&(q+=mk),x.some(ce=>T.religionHay.includes(ce))&&(q+=bk),x.some(ce=>T.languageHay.includes(ce))&&(q+=yk),g.push({entry:T,score:q})}g.sort((T,N)=>N.score-T.score);const y=g.slice(0,kl).map(T=>Sk(T.entry)),d=T=>T.filter(N=>x.every(q=>N.key.includes(q)||Re(N.label).includes(q))).sort((N,q)=>q.count-N.count).slice(0,kl),h=d(v.countries).map(T=>Ao("country",T)),p=d(v.regions).map(T=>Ao("region",T)),_=d(v.wagfBlocks).map(T=>Ao("region",T)),L=d(v.families).map(T=>Ao("language-family",T)),R=d(v.languages).map(T=>Ao("language",T)),S=d(v.dialects).map(T=>Ao("dialect",T)),z=d(v.religions).map(T=>Ao("religion",T)),j=d(v.blocs).map(T=>Ao("affinity-bloc",T));let O=d(v.clusters).map(T=>Ao("cluster",T)),D=d(v.peopleGroups).map(T=>Ao("people-group",T));const M=new Set(j.map(T=>Re(T.text)));O=O.filter(T=>!M.has(Re(T.text)));const $=new Set(O.map(T=>Re(T.text)));return D=D.filter(T=>!M.has(Re(T.text))&&!$.has(Re(T.text))),{people:y,places:h,regions:p,wagfBlocks:_,families:L,languages:R,dialects:S,religions:z,blocs:j,clusters:O,peopleGroups:D}}function u(f){const b=typeof n=="function"?n():null,k=typeof a=="function"?a():null,x=c(f),m=pk(k),v=fk[k],g=v?Object.fromEntries(v.filter(L=>x[L]).map(L=>[L,x[L]])):x,y=m.flatMap(L=>g[L]||[]);if(!(b!=null&&b.key)||!y.length)return y.slice(0,fg);const d=[];for(const L of x.people){const R=i.value.find(z=>z.feature===L.feature);let S=!1;R&&(b.kind==="family"?S=(R.familyDerived||"").toLowerCase()===b.key.toLowerCase():b.kind==="language"&&(S=R.languageLabel.toLowerCase()===b.key.toLowerCase())),S&&d.push(L)}const h=[],p=b.key;d.length&&(h.push(hg(r("search.sections.within",{selection:p}),!1)),h.push(...d.slice(0,kl)));const _=m.flatMap(L=>(g[L]||[]).slice(0,gk[L]??3)).map(L=>({...L,properties:{...L.properties,_allDataSection:!0}}));return h.push(hg(r("search.sections.allData"),!0)),h.push(..._),h.slice(0,fg+8)}return{search:u,searchGrouped:c,index:i,aggregates:l}}const mg="https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.min.js",Ck={__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(j){return j+j.replace(/mapboxgl/g,"maplibregl")}mt(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"),mt(n(".mapboxgl-ctrl-geocoder--icon-loading{display:none !important;}"),"geocoder-hide-loading"),mt(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"),mt(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}=ht(),s=e,i=Q(()=>s.placeholder||a("search.placeholder")),l=o,c={"&":"&","<":"<",">":">",'"':""","'":"'"};function u(j){return String(j??"").replace(/[&<>"']/g,O=>c[O])}function f(j){return j==null?"":typeof j=="string"?j:typeof j=="object"?j.label||j.value||"":String(j)}const b={"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 k(j){const O=b[j];if(!O)return"";const D=a("search.kinds."+O);return`${u(D)}`}function x(j){var M;if(!j)return"";const O=j.place_type||[];if(O.includes("doxa-section-header"))return`
${u(((M=j.properties)==null?void 0:M.headerLabel)||j.text||"")}
`;if(O.includes("people-group")){const $=j.properties||{},T=f($.name)||f($.displayName)||f(j.text)||"",N=f($.countryName)||f($.country)||f($.countryIso)||"",q=f($.language)||f($.primaryLanguage)||f($.languageFamily)||"",ce=f($.religionName)||f($.religion)||"",ee=a("search.labels.place"),oe=a("search.labels.language"),H=a("search.labels.religion"),pe=[];return N&&pe.push(`${u(ee)} ${u(N)}`),q&&pe.push(`${u(oe)} ${u(q)}`),ce&&pe.push(`${u(H)} ${u(ce)}`),`
${k("people-group")}${u(T)}
`+(pe.length?`
${pe.join("")}
`:"")}const D=O.find($=>$.startsWith("doxa-"));if(D){const $=j.properties||{},T=u(f($.label)||j.text||""),N=Number($.count)||0,q=N?` ${N}`:"";return`
${k(D)}${T}${q}
`}return`
${u(j.place_name||j.text||"")}
`}const m=Te("dataStore",null),v=Te("mapStore",null),g=Te("uiStore",null);function y(){return v?v.selectedFamily?{kind:"family",key:v.selectedFamily}:v.selectedLanguage?{kind:"language",key:v.selectedLanguage}:null:null}const{search:d}=Lk({dataStore:m,dataSourceId:s.dataSourceId||void 0,getActiveFilter:y,getActiveContext:()=>s.activeContext||null}),h=kr(null),p=le(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(j,O){const D=_[O]||_.mapbox;if(j.querySelector(`link[href="${D}"]`))return;const M=document.createElement("link");M.rel="stylesheet",M.href=D,j.prepend(M)}async function R(){if(typeof window<"u"&&window.MaplibreGeocoder||typeof document>"u")return;const j=document.querySelector(`script[src="${mg}"]`);if(j){if(window.MaplibreGeocoder)return;await new Promise(O=>{j.addEventListener("load",O,{once:!0}),j.addEventListener("error",O,{once:!0})});return}await new Promise((O,D)=>{const M=document.createElement("script");M.src=mg,M.async=!1,M.addEventListener("load",O,{once:!0}),M.addEventListener("error",()=>D(new Error("[GeocoderComponent] Failed to load MapLibre geocoder")),{once:!0}),document.head.appendChild(M)})}function S(j,O){return async D=>{const M={features:[]};if(!j||!(D!=null&&D.query))return M;try{const $=Array.isArray(D.language)?D.language[0]:D.language||O()||"en",T=new URLSearchParams({access_token:j,autocomplete:"true",limit:String(D.limit||5)});$&&T.set("language",$);const N=`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(D.query)}.json?${T.toString()}`,q=await fetch(N);if(!q.ok)return M;const ce=await q.json();return ce&&Array.isArray(ce.features)?ce:M}catch{return M}}}Zt(async()=>{var $,T,N,q,ce;const j=s.provider==="maplibre";if(j){if(await R(),typeof MaplibreGeocoder>"u"){console.error("[GeocoderComponent] MaplibreGeocoder global unavailable.");return}}else if(typeof MapboxGeocoder>"u")return;const O=s.mapInstance;if(!s.standalone&&!O)return;const D=s.standalone?(T=($=p.value)==null?void 0:$.getRootNode)==null?void 0:T.call($):(ce=(q=(N=O.getContainer)==null?void 0:N.call(O))==null?void 0:q.getRootNode)==null?void 0:ce.call(q);D instanceof ShadowRoot&&L(D,s.provider);const M={marker:!1,flyTo:!s.standalone,trackProximity:!s.standalone,placeholder:i.value,language:r.value||"en",localGeocoder:d,limit:20,zoom:6,render:x};if(j){const ee=typeof maplibregl<"u"?maplibregl:void 0,oe={forwardGeocode:S(s.accessToken,()=>r.value)};h.value=new MaplibreGeocoder(oe,{...M,maplibregl:ee,showResultsWhileTyping:!0,reverseGeocode:!1})}else h.value=new MapboxGeocoder({accessToken:s.accessToken,mapboxgl,...M});if(h.value.on("result",ee=>{var H,pe,we,ue,$e,Ae,ie,ye,me,Le,E,F,B,K,te,U,X,ne,w,A,W,re,be,fe,Z,P,Y,ge,xe,Se;const oe=ee==null?void 0:ee.result;oe&&((H=oe.place_type)!=null&&H.includes("doxa-section-header")||(v&&(v.selectedRegion=null,v.selectedResource=null,v.selectedAffinityBlock=null,v.selectedDialect=null),g&&((pe=g.setPrayerFilter)==null||pe.call(g,null),(we=g.setEngagementFilter)==null||we.call(g,null),(ue=g.setAdoptionFilter)==null||ue.call(g,null),($e=g.setReligionFilter)==null||$e.call(g,null)),(Ae=oe.properties)!=null&&Ae._allDataSection&&v&&(v.selectedFamily=null,v.selectedLanguage=null),l("result",ee),(ie=oe.place_type)!=null&&ie.includes("people-group")&&oe.feature?l("people-group-result",{type:"Feature",properties:oe.properties||oe.feature,geometry:oe.geometry||{type:"Point",coordinates:oe.center}}):((ye=oe.place_type)!=null&&ye.includes("doxa-country")||(me=oe.place_type)!=null&&me.includes("doxa-region")||(Le=oe.place_type)!=null&&Le.includes("doxa-language-family")||(E=oe.place_type)!=null&&E.includes("doxa-language")||(F=oe.place_type)!=null&&F.includes("doxa-dialect")||(B=oe.place_type)!=null&&B.includes("doxa-religion")||(K=oe.place_type)!=null&&K.includes("doxa-affinity-bloc")||(te=oe.place_type)!=null&&te.includes("doxa-cluster")||(U=oe.place_type)!=null&&U.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:((ne=oe.properties)==null?void 0:ne.count)||0,memberIds:((w=oe.properties)==null?void 0:w.memberIds)||[],bounds:((A=oe.properties)==null?void 0:A.bounds)||null,center:oe.center,originalLabels:((W=oe.properties)==null?void 0:W.originalLabels)||null,familyDerived:((re=oe.properties)==null?void 0:re.familyDerived)||"",baseLang:((be=oe.properties)==null?void 0:be.baseLang)||"",dialectLabel:((fe=oe.properties)==null?void 0:fe.dialectLabel)||"",slug:((Z=oe.properties)==null?void 0:Z.slug)||null,id:oe.id||null,blocCode:((P=oe.properties)==null?void 0:P.blocCode)||"",blocLabel:((Y=oe.properties)==null?void 0:Y.blocLabel)||"",clusterCode:((ge=oe.properties)==null?void 0:ge.clusterCode)||"",clusterLabel:((xe=oe.properties)==null?void 0:xe.clusterLabel)||"",peopleGroupCode:((Se=oe.properties)==null?void 0:Se.peopleGroupCode)||"",properties:oe.properties||null})))}),h.value.on("clear",()=>l("clear")),h.value.on("error",ee=>l("error",ee)),s.standalone){if(p.value){const ee={on(){},off(){},fire(){},getContainer:()=>p.value,getZoom:()=>0,getCenter:()=>({lng:0,lat:0}),getBounds:()=>null,flyTo(){},fitBounds(){},addControl(){},removeControl(){},hasControl:()=>!1};try{const oe=h.value.onAdd(s.mapInstance||ee);oe&&p.value.appendChild(oe)}catch(oe){l("error",oe)}}}else O.addControl(h.value,"top-left"),z()});function z(){var O,D;const j=(D=(O=h.value)==null?void 0:O.container)==null?void 0:D.parentElement;j&&(j.classList.add("dg-search-band"),j.classList.toggle("dg-search-band--dark",!!s.isDark))}return De(()=>s.isDark,()=>z()),De(i,j=>{var M,$;const O=h.value;if(!O)return;const D=O._inputEl||(($=(M=O.container)==null?void 0:M.querySelector)==null?void 0:$.call(M,"input.mapboxgl-ctrl-geocoder--input"));D&&(D.placeholder=j,D.setAttribute("placeholder",j)),O.options&&(O.options.placeholder=j)}),De(r,j=>{const O=h.value;O!=null&&O.options&&(O.options.language=j||"en")}),ho(()=>{var j,O;if(h.value){try{s.standalone?(O=(j=h.value).onRemove)==null||O.call(j):s.mapInstance&&s.mapInstance.removeControl(h.value)}catch{}h.value=null}}),t({geocoder:h}),(j,O)=>e.standalone?(V(),ae("div",{key:0,ref_key:"standaloneContainer",ref:p,class:"dg-standalone-geocoder"},null,512)):Fo(j.$slots,"default",{},void 0,void 0,1)}},Ek=Nn&&Nn.tagName.toUpperCase()==="SCRIPT"&&Nn.src||new URL("country-posters.js",document.baseURI).href,Al=e=>String(e||"").trim().replace(/\/+$/,"");function $k(){try{const t=String(Ek||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Tk(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Al(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Al(o)}return Al($k()||"")}function Pk({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=Tk(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const Nk=["aria-label"],Mk={class:"mcm-header"},Ik={class:"mcm-title"},Rk={class:"mcm-body"},Fk=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",Sl="doxa-map-menu-open",Ok={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){mt(` +`,"map-control-button"),(t,o)=>(V(),ae("button",{class:$e(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[Fo(t.$slots,"default")],10,ik))}},lk={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=ht(),o=e;function n(){var a;(a=o.map)==null||a.zoomIn()}return(a,r)=>(V(),Ge(ta,{"is-dark":e.isDark,title:de(t)("buttons.zoomIn"),onClick:n},{default:Mt(()=>[...r[0]||(r[0]=[C("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","title"]))}},ck={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=ht(),o=e;function n(){var a;(a=o.map)==null||a.zoomOut()}return(a,r)=>(V(),Ge(ta,{"is-dark":e.isDark,title:de(t)("buttons.zoomOut"),onClick:n},{default:Mt(()=>[...r[0]||(r[0]=[C("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","title"]))}},uk={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=ht(),o=e;function n(){var r;(r=o.map)==null||r.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:s,latitude:i}=r.coords;Number.isFinite(s)&&Number.isFinite(i)?o.map.flyTo({center:[s,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,s)=>(V(),Ge(ta,{"is-dark":e.isDark,title:de(t)("buttons.resetView"),onClick:a},{default:Mt(()=>[...s[0]||(s[0]=[C("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[C("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},dk={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},pk={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},gk={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=ht(),n=e,a=t,r=le(!1);let s=null,i=null,l=null,c=null,u=null,f=null,b=null,k=null,x=null,m=null,v=null,g=0,y=0,d=null,h=null;function p(){if(typeof document>"u")return!1;const E=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(E)||E.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function _(){var E,T,N;return((N=(T=(E=n.mapContainer)==null?void 0:E.getRootNode)==null?void 0:T.call(E))==null?void 0:N.host)??null}function L(){var T,N;const E=(N=(T=n.mapContainer)==null?void 0:T.getRootNode)==null?void 0:N.call(T);return document.fullscreenElement||document.webkitFullscreenElement||(E&&E instanceof ShadowRoot?E.fullscreenElement:null)||null}function R(E){const T=E.requestFullscreen||E.webkitRequestFullscreen;if(!T)return Promise.reject(new Error("Fullscreen API unavailable"));const N=T.call(E);return N&&typeof N.then=="function"?N:Promise.resolve()}function S(){const E=document.exitFullscreen||document.webkitExitFullscreen;if(!E)return Promise.reject(new Error("Fullscreen API unavailable"));const T=E.call(document);return T&&typeof T.then=="function"?T:Promise.resolve()}function z(){const E=_();if(!E)return!1;if(l=E,i=E.style.cssText,E.style.position="fixed",E.style.top="0",E.style.left="0",E.style.right="0",E.style.bottom="0",E.style.width="100vw",E.style.height="100vh",E.style.height="100dvh",E.style.zIndex="2147483647",E.style.margin="0",E.style.borderRadius="0",E.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){g=window.scrollY||window.pageYOffset||0,y=window.scrollX||window.pageXOffset||0;const T=document.body,N=document.documentElement;c=T?T.style.overflow:null,u=N?N.style.overflow:null,f=T?T.style.position:null,b=T?T.style.top:null,k=T?T.style.left:null,x=T?T.style.width:null,m=T?T.style.touchAction:null,v=N?N.style.touchAction:null,N&&(N.style.overflow="hidden",N.style.touchAction="none"),T&&(T.style.overflow="hidden",T.style.position="fixed",T.style.top=`-${g}px`,T.style.left=`-${y}px`,T.style.width="100%",T.style.touchAction="none"),d=q=>{if(!l)return;const ce=q.target;ce&&(ce===l||l.contains&&l.contains(ce))||q.cancelable&&q.preventDefault()},h=q=>{if(!l)return;const ce=q.target;ce&&(ce===l||l.contains&&l.contains(ce))||q.cancelable&&q.preventDefault()},document.addEventListener("touchmove",d,{passive:!1,capture:!0}),document.addEventListener("wheel",h,{passive:!1,capture:!0})}return!0}function j(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const E=document.body,T=document.documentElement;E&&(E.style.overflow=c??"",E.style.position=f??"",E.style.top=b??"",E.style.left=k??"",E.style.width=x??"",E.style.touchAction=m??""),T&&(T.style.overflow=u??"",T.style.touchAction=v??""),d&&(document.removeEventListener("touchmove",d,{capture:!0}),d=null),h&&(document.removeEventListener("wheel",h,{capture:!0}),h=null),typeof window<"u"&&(g||y)&&window.scrollTo(y,g)}c=null,u=null,f=null,b=null,k=null,x=null,m=null,v=null,g=0,y=0}}function O(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function D(){if(!p()){r.value?(j(),r.value=!1,a("change",!1)):z()&&(r.value=!0,a("change",!0)),O();return}if(L())S().then(()=>{r.value=!1,a("change",!1)}).catch(()=>{});else{const T=_()??document.documentElement;R(T).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{R(document.documentElement).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{})})}}function M(){r.value=!!L(),a("change",r.value)}return Zt(()=>{var T,N;document.addEventListener("fullscreenchange",M),document.addEventListener("webkitfullscreenchange",M);const E=(N=(T=n.mapContainer)==null?void 0:T.getRootNode)==null?void 0:N.call(T);E instanceof ShadowRoot&&(s=E,E.addEventListener("fullscreenchange",M),E.addEventListener("webkitfullscreenchange",M))}),ho(()=>{document.removeEventListener("fullscreenchange",M),document.removeEventListener("webkitfullscreenchange",M),s&&(s.removeEventListener("fullscreenchange",M),s.removeEventListener("webkitfullscreenchange",M),s=null),l&&j()}),(E,T)=>(V(),Ge(ta,{"is-dark":e.isDark,active:r.value,title:de(o)("buttons.toggleFullscreen"),onClick:D},{default:Mt(()=>[r.value?(V(),ae("svg",pk,[...T[1]||(T[1]=[C("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(V(),ae("svg",dk,[...T[0]||(T[0]=[C("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},fk={style:{"font-size":"16px","line-height":"1"}},hk={__name:"ThemeToggleButton",props:{isDark:{type:Boolean,default:!1}},emits:["toggle"],setup(e){const{t}=ht();return(o,n)=>de(sv)?(V(),Ge(ta,{key:0,"is-dark":e.isDark,title:e.isDark?de(t)("buttons.switchToLightMode"):de(t)("buttons.switchToDarkMode"),onClick:n[0]||(n[0]=a=>o.$emit("toggle"))},{default:Mt(()=>[C("span",fk,he(e.isDark?"☀️":"🌙"),1)]),_:1},8,["is-dark","title"])):ve("",!0)}},mk=["blocs","clusters","peopleGroups","families","languages","dialects","people","places","regions","wagfBlocks","religions"],bk={"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 yk(e){return bk[e]||mk}const vk={blocs:3,clusters:3,peopleGroups:3,families:3,languages:3,dialects:3,people:5,places:2,regions:3,wagfBlocks:3,religions:2},ps=["peopleGroups","people","places","languages","religions"],_k={regions:[...ps,"regions","wagfBlocks"],"people-groups":[...ps,"blocs","clusters"],language:[...ps,"dialects","families"],religion:[...ps]},xk=100,kk=50,wk=25,Ak=10,kl=5,fg=20,Sk=[[/ sign language$/i,"Sign Language"]];function Lk(e){if(!e||typeof e!="string")return"";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function Ck(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function $k(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(qe[n])return qe[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(qe[a])return qe[a]}}if(qe[e])return qe[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();if(o!==e&&qe[o])return qe[o];for(const[n,a]of Sk)if(n.test(e))return a;return null}function hg(e,t){return{id:`doxa-section-header-${wl(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 wl(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Re(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 gs(e){return e==null?"":typeof e=="string"?e:typeof e=="object"?e.label||e.value||"":String(e)}function Ek(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=Re(i.name)+" "+Re(i.displayName)+" "+Re(i.alternateName),f=Re(i.countryName)+" "+Re(i.country)+" "+Re(i.countryIso)+" "+Re(i.countryIsoLabel),b=Re(i.religionName)+" "+Re(i.religion)+" "+Re(i.religionLabel)+" "+Re(i.religionCode),k=Re(i.language)+" "+Re(i.languageFamily)+" "+Re(i.languageCode),x=Re(i.doxaRegion)+" "+Re(i.wagfRegion)+" "+Re(i.wagfBlock),m=Re(i.affinityBlock)+" "+Re(i.affinityBlockLabel)+" "+Re((o=i._raw)==null?void 0:o.rop1),v=Re(i.cluster)+" "+Re(i.clusterLabel)+" "+Re((n=i._raw)==null?void 0:n.imb_reg_of_people_2),g=Re(i.peopleGroup)+" "+Re(i.peopleGroupLabel)+" "+Re((a=i._raw)==null?void 0:a.imb_reg_of_people_25),y=((r=i._raw)==null?void 0:r.primary_language)??((s=i._raw)==null?void 0:s.PrimaryLanguage),d=y&&(typeof y=="object"?y.label||y.value:y)||gs(i.language)||gs(i.primaryLanguage)||"",h=Lk(d),p=Ck(d);t.push({feature:i,nameHay:u,countryHay:f,religionHay:b,languageHay:k,regionHay:x,haystack:u+" "+f+" "+b+" "+k+" "+x+" "+m+" "+v+" "+g,blocHay:m,clusterHay:v,pgHay:g,lat:l,lng:c,familyDerived:$k(d)||null,languageLabel:d,baseLang:h,dialectLabel:p})}return t}function Tk(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:gs(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=>Re(o.feature.countryName)||Re(o.feature.country)||Re(o.feature.countryIso),o=>o.feature.countryName||o.feature.country||o.feature.countryIso||""),families:t(o=>Re(o.familyDerived),o=>o.familyDerived||""),languages:t(o=>Re(o.baseLang),o=>o.baseLang||""),dialects:t(o=>o.dialectLabel?`${Re(o.baseLang)}__${Re(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 qa(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 Cn[qa(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=>Re(o.feature.doxaRegion)||Re(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=>Re(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=>Re(o.feature.affinityBlockLabel)||Re(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=>Re(o.feature.peopleGroup)||Re(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 Pk(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||wl(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 Ao(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=gs(t.label)||t.key,r=wl(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,f=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}:{},...f||{},...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 Nk(e={}){const{dataStore:t,dataSourceId:o,getActiveFilter:n,getActiveContext:a}=e,{t:r}=ht(),s=Q(()=>{var f,b;if(!t||!t.sources)return[];if(o&&((f=t.sources[o])!=null&&f.features))return t.sources[o].features;for(const k of Object.keys(t.sources)){const x=t.sources[k];if((b=x==null?void 0:x.features)!=null&&b.length)return x.features}return[]}),i=Q(()=>Ek(s.value)),l=Q(()=>Tk(i.value));function c(f){const b=String(f||"").trim().toLowerCase(),k={people:[],places:[],regions:[],wagfBlocks:[],families:[],languages:[],dialects:[],religions:[],blocs:[],clusters:[],peopleGroups:[]};if(b.length<2)return k;const x=b.split(/[\s,;]+/).filter(Boolean);if(!x.length)return k;const m=i.value;if(!m.length)return k;const v=l.value,g=[];for(const T of m){let N=!0;for(const ce of x)if(!T.haystack.includes(ce)){N=!1;break}if(!N)continue;let q=0;x.some(ce=>T.nameHay.includes(ce))&&(q+=xk),x.some(ce=>T.countryHay.includes(ce))&&(q+=kk),x.some(ce=>T.religionHay.includes(ce))&&(q+=wk),x.some(ce=>T.languageHay.includes(ce))&&(q+=Ak),g.push({entry:T,score:q})}g.sort((T,N)=>N.score-T.score);const y=g.slice(0,kl).map(T=>Pk(T.entry)),d=T=>T.filter(N=>x.every(q=>N.key.includes(q)||Re(N.label).includes(q))).sort((N,q)=>q.count-N.count).slice(0,kl),h=d(v.countries).map(T=>Ao("country",T)),p=d(v.regions).map(T=>Ao("region",T)),_=d(v.wagfBlocks).map(T=>Ao("region",T)),L=d(v.families).map(T=>Ao("language-family",T)),R=d(v.languages).map(T=>Ao("language",T)),S=d(v.dialects).map(T=>Ao("dialect",T)),z=d(v.religions).map(T=>Ao("religion",T)),j=d(v.blocs).map(T=>Ao("affinity-bloc",T));let O=d(v.clusters).map(T=>Ao("cluster",T)),D=d(v.peopleGroups).map(T=>Ao("people-group",T));const M=new Set(j.map(T=>Re(T.text)));O=O.filter(T=>!M.has(Re(T.text)));const E=new Set(O.map(T=>Re(T.text)));return D=D.filter(T=>!M.has(Re(T.text))&&!E.has(Re(T.text))),{people:y,places:h,regions:p,wagfBlocks:_,families:L,languages:R,dialects:S,religions:z,blocs:j,clusters:O,peopleGroups:D}}function u(f){const b=typeof n=="function"?n():null,k=typeof a=="function"?a():null,x=c(f),m=yk(k),v=_k[k],g=v?Object.fromEntries(v.filter(L=>x[L]).map(L=>[L,x[L]])):x,y=m.flatMap(L=>g[L]||[]);if(!(b!=null&&b.key)||!y.length)return y.slice(0,fg);const d=[];for(const L of x.people){const R=i.value.find(z=>z.feature===L.feature);let S=!1;R&&(b.kind==="family"?S=(R.familyDerived||"").toLowerCase()===b.key.toLowerCase():b.kind==="language"&&(S=R.languageLabel.toLowerCase()===b.key.toLowerCase())),S&&d.push(L)}const h=[],p=b.key;d.length&&(h.push(hg(r("search.sections.within",{selection:p}),!1)),h.push(...d.slice(0,kl)));const _=m.flatMap(L=>(g[L]||[]).slice(0,vk[L]??3)).map(L=>({...L,properties:{...L.properties,_allDataSection:!0}}));return h.push(hg(r("search.sections.allData"),!0)),h.push(..._),h.slice(0,fg+8)}return{search:u,searchGrouped:c,index:i,aggregates:l}}const mg="https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.min.js",Mk={__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(j){return j+j.replace(/mapboxgl/g,"maplibregl")}mt(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"),mt(n(".mapboxgl-ctrl-geocoder--icon-loading{display:none !important;}"),"geocoder-hide-loading"),mt(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"),mt(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}=ht(),s=e,i=Q(()=>s.placeholder||a("search.placeholder")),l=o,c={"&":"&","<":"<",">":">",'"':""","'":"'"};function u(j){return String(j??"").replace(/[&<>"']/g,O=>c[O])}function f(j){return j==null?"":typeof j=="string"?j:typeof j=="object"?j.label||j.value||"":String(j)}const b={"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 k(j){const O=b[j];if(!O)return"";const D=a("search.kinds."+O);return`${u(D)}`}function x(j){var M;if(!j)return"";const O=j.place_type||[];if(O.includes("doxa-section-header"))return`
${u(((M=j.properties)==null?void 0:M.headerLabel)||j.text||"")}
`;if(O.includes("people-group")){const E=j.properties||{},T=f(E.name)||f(E.displayName)||f(j.text)||"",N=f(E.countryName)||f(E.country)||f(E.countryIso)||"",q=f(E.language)||f(E.primaryLanguage)||f(E.languageFamily)||"",ce=f(E.religionName)||f(E.religion)||"",ee=a("search.labels.place"),oe=a("search.labels.language"),H=a("search.labels.religion"),pe=[];return N&&pe.push(`${u(ee)} ${u(N)}`),q&&pe.push(`${u(oe)} ${u(q)}`),ce&&pe.push(`${u(H)} ${u(ce)}`),`
${k("people-group")}${u(T)}
`+(pe.length?`
${pe.join("")}
`:"")}const D=O.find(E=>E.startsWith("doxa-"));if(D){const E=j.properties||{},T=u(f(E.label)||j.text||""),N=Number(E.count)||0,q=N?` ${N}`:"";return`
${k(D)}${T}${q}
`}return`
${u(j.place_name||j.text||"")}
`}const m=Te("dataStore",null),v=Te("mapStore",null),g=Te("uiStore",null);function y(){return v?v.selectedFamily?{kind:"family",key:v.selectedFamily}:v.selectedLanguage?{kind:"language",key:v.selectedLanguage}:null:null}const{search:d}=Nk({dataStore:m,dataSourceId:s.dataSourceId||void 0,getActiveFilter:y,getActiveContext:()=>s.activeContext||null}),h=kr(null),p=le(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(j,O){const D=_[O]||_.mapbox;if(j.querySelector(`link[href="${D}"]`))return;const M=document.createElement("link");M.rel="stylesheet",M.href=D,j.prepend(M)}async function R(){if(typeof window<"u"&&window.MaplibreGeocoder||typeof document>"u")return;const j=document.querySelector(`script[src="${mg}"]`);if(j){if(window.MaplibreGeocoder)return;await new Promise(O=>{j.addEventListener("load",O,{once:!0}),j.addEventListener("error",O,{once:!0})});return}await new Promise((O,D)=>{const M=document.createElement("script");M.src=mg,M.async=!1,M.addEventListener("load",O,{once:!0}),M.addEventListener("error",()=>D(new Error("[GeocoderComponent] Failed to load MapLibre geocoder")),{once:!0}),document.head.appendChild(M)})}function S(j,O){return async D=>{const M={features:[]};if(!j||!(D!=null&&D.query))return M;try{const E=Array.isArray(D.language)?D.language[0]:D.language||O()||"en",T=new URLSearchParams({access_token:j,autocomplete:"true",limit:String(D.limit||5)});E&&T.set("language",E);const N=`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(D.query)}.json?${T.toString()}`,q=await fetch(N);if(!q.ok)return M;const ce=await q.json();return ce&&Array.isArray(ce.features)?ce:M}catch{return M}}}Zt(async()=>{var E,T,N,q,ce;const j=s.provider==="maplibre";if(j){if(await R(),typeof MaplibreGeocoder>"u"){console.error("[GeocoderComponent] MaplibreGeocoder global unavailable.");return}}else if(typeof MapboxGeocoder>"u")return;const O=s.mapInstance;if(!s.standalone&&!O)return;const D=s.standalone?(T=(E=p.value)==null?void 0:E.getRootNode)==null?void 0:T.call(E):(ce=(q=(N=O.getContainer)==null?void 0:N.call(O))==null?void 0:q.getRootNode)==null?void 0:ce.call(q);D instanceof ShadowRoot&&L(D,s.provider);const M={marker:!1,flyTo:!s.standalone,trackProximity:!s.standalone,placeholder:i.value,language:r.value||"en",localGeocoder:d,limit:20,zoom:6,render:x};if(j){const ee=typeof maplibregl<"u"?maplibregl:void 0,oe={forwardGeocode:S(s.accessToken,()=>r.value)};h.value=new MaplibreGeocoder(oe,{...M,maplibregl:ee,showResultsWhileTyping:!0,reverseGeocode:!1})}else h.value=new MapboxGeocoder({accessToken:s.accessToken,mapboxgl,...M});if(h.value.on("result",ee=>{var H,pe,we,ue,Ee,Ae,ie,ye,me,Le,$,F,B,K,te,U,X,ne,w,A,W,re,be,fe,Z,P,Y,ge,xe,Se;const oe=ee==null?void 0:ee.result;oe&&((H=oe.place_type)!=null&&H.includes("doxa-section-header")||(v&&(v.selectedRegion=null,v.selectedResource=null,v.selectedAffinityBlock=null,v.selectedDialect=null),g&&((pe=g.setPrayerFilter)==null||pe.call(g,null),(we=g.setEngagementFilter)==null||we.call(g,null),(ue=g.setAdoptionFilter)==null||ue.call(g,null),(Ee=g.setReligionFilter)==null||Ee.call(g,null)),(Ae=oe.properties)!=null&&Ae._allDataSection&&v&&(v.selectedFamily=null,v.selectedLanguage=null),l("result",ee),(ie=oe.place_type)!=null&&ie.includes("people-group")&&oe.feature?l("people-group-result",{type:"Feature",properties:oe.properties||oe.feature,geometry:oe.geometry||{type:"Point",coordinates:oe.center}}):((ye=oe.place_type)!=null&&ye.includes("doxa-country")||(me=oe.place_type)!=null&&me.includes("doxa-region")||(Le=oe.place_type)!=null&&Le.includes("doxa-language-family")||($=oe.place_type)!=null&&$.includes("doxa-language")||(F=oe.place_type)!=null&&F.includes("doxa-dialect")||(B=oe.place_type)!=null&&B.includes("doxa-religion")||(K=oe.place_type)!=null&&K.includes("doxa-affinity-bloc")||(te=oe.place_type)!=null&&te.includes("doxa-cluster")||(U=oe.place_type)!=null&&U.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:((ne=oe.properties)==null?void 0:ne.count)||0,memberIds:((w=oe.properties)==null?void 0:w.memberIds)||[],bounds:((A=oe.properties)==null?void 0:A.bounds)||null,center:oe.center,originalLabels:((W=oe.properties)==null?void 0:W.originalLabels)||null,familyDerived:((re=oe.properties)==null?void 0:re.familyDerived)||"",baseLang:((be=oe.properties)==null?void 0:be.baseLang)||"",dialectLabel:((fe=oe.properties)==null?void 0:fe.dialectLabel)||"",slug:((Z=oe.properties)==null?void 0:Z.slug)||null,id:oe.id||null,blocCode:((P=oe.properties)==null?void 0:P.blocCode)||"",blocLabel:((Y=oe.properties)==null?void 0:Y.blocLabel)||"",clusterCode:((ge=oe.properties)==null?void 0:ge.clusterCode)||"",clusterLabel:((xe=oe.properties)==null?void 0:xe.clusterLabel)||"",peopleGroupCode:((Se=oe.properties)==null?void 0:Se.peopleGroupCode)||"",properties:oe.properties||null})))}),h.value.on("clear",()=>l("clear")),h.value.on("error",ee=>l("error",ee)),s.standalone){if(p.value){const ee={on(){},off(){},fire(){},getContainer:()=>p.value,getZoom:()=>0,getCenter:()=>({lng:0,lat:0}),getBounds:()=>null,flyTo(){},fitBounds(){},addControl(){},removeControl(){},hasControl:()=>!1};try{const oe=h.value.onAdd(s.mapInstance||ee);oe&&p.value.appendChild(oe)}catch(oe){l("error",oe)}}}else O.addControl(h.value,"top-left"),z()});function z(){var O,D;const j=(D=(O=h.value)==null?void 0:O.container)==null?void 0:D.parentElement;j&&(j.classList.add("dg-search-band"),j.classList.toggle("dg-search-band--dark",!!s.isDark))}return De(()=>s.isDark,()=>z()),De(i,j=>{var M,E;const O=h.value;if(!O)return;const D=O._inputEl||((E=(M=O.container)==null?void 0:M.querySelector)==null?void 0:E.call(M,"input.mapboxgl-ctrl-geocoder--input"));D&&(D.placeholder=j,D.setAttribute("placeholder",j)),O.options&&(O.options.placeholder=j)}),De(r,j=>{const O=h.value;O!=null&&O.options&&(O.options.language=j||"en")}),ho(()=>{var j,O;if(h.value){try{s.standalone?(O=(j=h.value).onRemove)==null||O.call(j):s.mapInstance&&s.mapInstance.removeControl(h.value)}catch{}h.value=null}}),t({geocoder:h}),(j,O)=>e.standalone?(V(),ae("div",{key:0,ref_key:"standaloneContainer",ref:p,class:"dg-standalone-geocoder"},null,512)):Fo(j.$slots,"default",{},void 0,void 0,1)}},Ik=Nn&&Nn.tagName.toUpperCase()==="SCRIPT"&&Nn.src||new URL("country-posters.js",document.baseURI).href,Al=e=>String(e||"").trim().replace(/\/+$/,"");function Rk(){try{const t=String(Ik||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Fk(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Al(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Al(o)}return Al(Rk()||"")}function Ok({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=Fk(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const Dk=["aria-label"],Bk={class:"mcm-header"},Gk={class:"mcm-title"},jk={class:"mcm-body"},zk=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",Sl="doxa-map-menu-open",Uk={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){mt(` .mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box; background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45); color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px; @@ -489,7 +488,7 @@ .mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} .mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} .mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;} -`,"map-control-menu");const o=e,n=t,a=Te("mapToolbar",null),r=le(null),s=le(null),i=le({});function l(){var R;const k=(R=a==null?void 0:a.el)==null?void 0:R.value,x=r.value;if(!k||!x){i.value={};return}const m=x.getBoundingClientRect(),v=k.getBoundingClientRect(),g=(v.left+v.right)/2>(m.left+m.right)/2,y=8,d=12,h=g?m.right-v.left+y:v.right-m.left+y,p=Math.max(200,Math.min(o.width,m.width-h-d)),_=Math.max(0,v.top-m.top);let L=Math.max(120,m.height-_-d);o.matchToolbar&&(L=Math.max(120,Math.min(L,v.height))),o.maxHeight&&(L=Math.min(L,o.maxHeight)),i.value={top:`${Math.round(_)}px`,[g?"right":"left"]:`${Math.round(h)}px`,width:`${Math.round(p)}px`,maxHeight:`${Math.round(L)}px`,...o.height?{height:`${Math.round(Math.min(o.height,L))}px`}:{}}}function c(k){o.open&&k.detail!==s.value&&n("close")}De(()=>o.open,async k=>{var x;if(k){await jt(),l();try{(x=r.value)==null||x.dispatchEvent(new CustomEvent(Sl,{detail:s.value}))}catch{}}});function u(){o.open&&l()}function f(k){k.key==="Escape"&&o.open&&n("close")}function b(k){var m;if(!o.open)return;const x=k.composedPath?k.composedPath():[k.target];s.value&&x.includes(s.value)||(m=a==null?void 0:a.el)!=null&&m.value&&x.includes(a.el.value)||x.some(v=>{var g,y,d,h;return((y=(g=v==null?void 0:v.classList)==null?void 0:g.contains)==null?void 0:y.call(g,"mapboxgl-canvas"))||((h=(d=v==null?void 0:v.classList)==null?void 0:d.contains)==null?void 0:h.call(d,"maplibregl-canvas"))})&&n("close")}return Zt(()=>{var k,x,m;r.value=((x=(k=a==null?void 0:a.el)==null?void 0:k.value)==null?void 0:x.closest(Fk))||null,(m=r.value)==null||m.addEventListener(Sl,c),window.addEventListener("resize",u),document.addEventListener("click",b,!0),document.addEventListener("keydown",f)}),ho(()=>{var k;(k=r.value)==null||k.removeEventListener(Sl,c),window.removeEventListener("resize",u),document.removeEventListener("click",b,!0),document.removeEventListener("keydown",f)}),(k,x)=>(V(),Ge(fh,{to:r.value,disabled:!r.value},[e.open?(V(),ae("div",{key:0,ref_key:"el",ref:s,class:Ee(["mcm",{light:!e.isDark}]),style:Xe(i.value),role:"dialog","aria-label":e.title},[C("div",Mk,[C("span",Ik,he(e.title),1),C("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:x[0]||(x[0]=m=>n("close"))},[...x[1]||(x[1]=[C("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[C("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),C("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),C("div",Rk,[Fo(k.$slots,"default")])],14,Nk)):ve("",!0)],8,["to","disabled"]))}},Dk={class:"share-steps"},Bk={class:"share-tabs"},Gk={key:0,class:"share-body"},jk={class:"share-url-box"},zk={class:"share-url-text"},Uk={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Kk={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Hk={key:1,class:"share-body"},Vk={class:"share-size-pills"},qk=["onClick"],Wk={class:"share-code-box"},Yk={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Xk={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Jk={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){mt(` +`,"map-control-menu");const o=e,n=t,a=Te("mapToolbar",null),r=le(null),s=le(null),i=le({});function l(){var R;const k=(R=a==null?void 0:a.el)==null?void 0:R.value,x=r.value;if(!k||!x){i.value={};return}const m=x.getBoundingClientRect(),v=k.getBoundingClientRect(),g=(v.left+v.right)/2>(m.left+m.right)/2,y=8,d=12,h=g?m.right-v.left+y:v.right-m.left+y,p=Math.max(200,Math.min(o.width,m.width-h-d)),_=Math.max(0,v.top-m.top);let L=Math.max(120,m.height-_-d);o.matchToolbar&&(L=Math.max(120,Math.min(L,v.height))),o.maxHeight&&(L=Math.min(L,o.maxHeight)),i.value={top:`${Math.round(_)}px`,[g?"right":"left"]:`${Math.round(h)}px`,width:`${Math.round(p)}px`,maxHeight:`${Math.round(L)}px`,...o.height?{height:`${Math.round(Math.min(o.height,L))}px`}:{}}}function c(k){o.open&&k.detail!==s.value&&n("close")}De(()=>o.open,async k=>{var x;if(k){await jt(),l();try{(x=r.value)==null||x.dispatchEvent(new CustomEvent(Sl,{detail:s.value}))}catch{}}});function u(){o.open&&l()}function f(k){k.key==="Escape"&&o.open&&n("close")}function b(k){var m;if(!o.open)return;const x=k.composedPath?k.composedPath():[k.target];s.value&&x.includes(s.value)||(m=a==null?void 0:a.el)!=null&&m.value&&x.includes(a.el.value)||x.some(v=>{var g,y,d,h;return((y=(g=v==null?void 0:v.classList)==null?void 0:g.contains)==null?void 0:y.call(g,"mapboxgl-canvas"))||((h=(d=v==null?void 0:v.classList)==null?void 0:d.contains)==null?void 0:h.call(d,"maplibregl-canvas"))})&&n("close")}return Zt(()=>{var k,x,m;r.value=((x=(k=a==null?void 0:a.el)==null?void 0:k.value)==null?void 0:x.closest(zk))||null,(m=r.value)==null||m.addEventListener(Sl,c),window.addEventListener("resize",u),document.addEventListener("click",b,!0),document.addEventListener("keydown",f)}),ho(()=>{var k;(k=r.value)==null||k.removeEventListener(Sl,c),window.removeEventListener("resize",u),document.removeEventListener("click",b,!0),document.removeEventListener("keydown",f)}),(k,x)=>(V(),Ge(fh,{to:r.value,disabled:!r.value},[e.open?(V(),ae("div",{key:0,ref_key:"el",ref:s,class:$e(["mcm",{light:!e.isDark}]),style:Xe(i.value),role:"dialog","aria-label":e.title},[C("div",Bk,[C("span",Gk,he(e.title),1),C("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:x[0]||(x[0]=m=>n("close"))},[...x[1]||(x[1]=[C("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[C("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),C("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),C("div",jk,[Fo(k.$slots,"default")])],14,Dk)):ve("",!0)],8,["to","disabled"]))}},Kk={class:"share-steps"},Hk={class:"share-tabs"},Vk={key:0,class:"share-body"},qk={class:"share-url-box"},Wk={class:"share-url-text"},Yk={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Xk={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Jk={key:1,class:"share-body"},Zk={class:"share-size-pills"},Qk=["onClick"],ew={class:"share-code-box"},tw={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},ow={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},nw={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){mt(` .share-wrap{position:relative;display:inline-block;border-radius:50%;} .share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none; background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b); @@ -742,7 +741,7 @@ border-color:rgba(46,164,79,0.30); color:#2ea44f; } -`,"share-button");const{t,tm:o,rt:n}=ht(),a=e,r=le(null),s=le(!1),i=le(null),l=le(null),c=le("link"),u=le(!1),f=le(!1),b=le("medium"),k={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},x=Te("profileConfig",null),m=Q(()=>Pk({embedPath:a.embedPath,profileConfig:de(x)||null})),v=Q(()=>{const _=k[b.value].height;return''});function g(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,f.value=!1)}function y(){s.value=!1}async function d(_){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(_),!0}catch{}try{const L=document.createElement("textarea");L.value=_,L.setAttribute("readonly",""),L.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(L),L.select();const R=document.execCommand("copy");return document.body.removeChild(L),R}catch{return!1}}async function h(){await d(m.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function p(){await d(v.value)&&(f.value=!0,setTimeout(()=>{f.value=!1},2e3))}return(_,L)=>(V(),ae("div",{ref_key:"rootEl",ref:r,class:"share-wrap"},[Ze(ta,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:de(t)("buttons.share"),onClick:g},{default:Mt(()=>[...L[2]||(L[2]=[C("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"},[C("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),C("polyline",{points:"16 6 12 2 8 6"}),C("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),Ze(Ok,{open:s.value,title:de(t)("buttons.share"),"is-dark":e.isDark,onClose:y},{default:Mt(()=>[C("div",{ref_key:"popoverEl",ref:i,class:Ee(["share-pop",{light:!e.isDark}])},[C("ul",Dk,[(V(!0),ae(Ie,null,yt(de(o)("buttons.shareSteps"),(R,S)=>(V(),ae("li",{key:S},he(de(n)(R)),1))),128))]),C("div",Bk,[C("button",{class:Ee(["share-tab",{active:c.value==="link"}]),onClick:L[0]||(L[0]=R=>c.value="link")},"Embed link",2),C("button",{class:Ee(["share-tab",{active:c.value==="embed"}]),onClick:L[1]||(L[1]=R=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(V(),ae("div",Gk,[C("div",jk,[C("div",zk,he(m.value),1)]),C("button",{class:Ee(["share-primary-btn",{copied:u.value}]),onClick:h},[u.value?(V(),ae("svg",Kk,[...L[4]||(L[4]=[C("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(V(),ae("svg",Uk,[...L[3]||(L[3]=[C("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),C("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),gt(" "+he(u.value?"Copied!":"Copy Link"),1)],2)])):ve("",!0),c.value==="embed"?(V(),ae("div",Hk,[L[7]||(L[7]=C("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),C("div",Vk,[(V(),ae(Ie,null,yt(k,(R,S)=>C("button",{key:S,class:Ee(["share-size-pill",{active:b.value===S}]),onClick:z=>b.value=S},he(R.label),11,qk)),64))]),C("div",Wk,he(v.value),1),C("button",{class:Ee(["share-secondary-btn",{copied:f.value}]),onClick:p},[f.value?(V(),ae("svg",Xk,[...L[6]||(L[6]=[C("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(V(),ae("svg",Yk,[...L[5]||(L[5]=[C("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),C("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),gt(" "+he(f.value?"Copied!":"Copy Code"),1)],2)])):ve("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Zk={class:"rm-side-header"},Qk={class:"rm-side-body"},ew={class:"rm-section"},tw={class:"rm-cluster-grid"},ow=["onClick"],nw={class:"label"},aw={class:"desc"},rw={key:0,class:"rm-slider-row"},sw=["value"],iw={class:"val"},lw={class:"rm-section"},cw={class:"rm-side-footer"},uw={__name:"ResearchMapSideMenu",props:{isOpen:{type:Boolean,default:!1}},emits:["close","open-poster","reload-map"],setup(e,{emit:t}){const o=t,n=Te("mapStore");Te("uiStore");const a=[{id:"off",label:"Off",desc:"Show every pin individually"},{id:"mapbox",label:"Native",desc:"Mapbox circle clusters (fastest)"},{id:"mst",label:"MST",desc:"Minimum-spanning-tree affinity webs"},{id:"network",label:"Network",desc:"Nearest-neighbor connection lines"}],r=Q({get:()=>(n==null?void 0:n.clusteringMode)??"off",set:i=>{n&&(n.clusteringMode=i)}}),s=Q({get:()=>(n==null?void 0:n.clusterPinOpacity)??.6,set:i=>{n&&(n.clusterPinOpacity=Number(i))}});return mt(` +`,"share-button");const{t,tm:o,rt:n}=ht(),a=e,r=le(null),s=le(!1),i=le(null),l=le(null),c=le("link"),u=le(!1),f=le(!1),b=le("medium"),k={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},x=Te("profileConfig",null),m=Q(()=>Ok({embedPath:a.embedPath,profileConfig:de(x)||null})),v=Q(()=>{const _=k[b.value].height;return''});function g(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,f.value=!1)}function y(){s.value=!1}async function d(_){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(_),!0}catch{}try{const L=document.createElement("textarea");L.value=_,L.setAttribute("readonly",""),L.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(L),L.select();const R=document.execCommand("copy");return document.body.removeChild(L),R}catch{return!1}}async function h(){await d(m.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function p(){await d(v.value)&&(f.value=!0,setTimeout(()=>{f.value=!1},2e3))}return(_,L)=>(V(),ae("div",{ref_key:"rootEl",ref:r,class:"share-wrap"},[Ze(ta,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:de(t)("buttons.share"),onClick:g},{default:Mt(()=>[...L[2]||(L[2]=[C("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"},[C("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),C("polyline",{points:"16 6 12 2 8 6"}),C("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),Ze(Uk,{open:s.value,title:de(t)("buttons.share"),"is-dark":e.isDark,onClose:y},{default:Mt(()=>[C("div",{ref_key:"popoverEl",ref:i,class:$e(["share-pop",{light:!e.isDark}])},[C("ul",Kk,[(V(!0),ae(Ie,null,yt(de(o)("buttons.shareSteps"),(R,S)=>(V(),ae("li",{key:S},he(de(n)(R)),1))),128))]),C("div",Hk,[C("button",{class:$e(["share-tab",{active:c.value==="link"}]),onClick:L[0]||(L[0]=R=>c.value="link")},"Embed link",2),C("button",{class:$e(["share-tab",{active:c.value==="embed"}]),onClick:L[1]||(L[1]=R=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(V(),ae("div",Vk,[C("div",qk,[C("div",Wk,he(m.value),1)]),C("button",{class:$e(["share-primary-btn",{copied:u.value}]),onClick:h},[u.value?(V(),ae("svg",Xk,[...L[4]||(L[4]=[C("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(V(),ae("svg",Yk,[...L[3]||(L[3]=[C("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),C("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),gt(" "+he(u.value?"Copied!":"Copy Link"),1)],2)])):ve("",!0),c.value==="embed"?(V(),ae("div",Jk,[L[7]||(L[7]=C("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),C("div",Zk,[(V(),ae(Ie,null,yt(k,(R,S)=>C("button",{key:S,class:$e(["share-size-pill",{active:b.value===S}]),onClick:z=>b.value=S},he(R.label),11,Qk)),64))]),C("div",ew,he(v.value),1),C("button",{class:$e(["share-secondary-btn",{copied:f.value}]),onClick:p},[f.value?(V(),ae("svg",ow,[...L[6]||(L[6]=[C("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(V(),ae("svg",tw,[...L[5]||(L[5]=[C("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),C("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),gt(" "+he(f.value?"Copied!":"Copy Code"),1)],2)])):ve("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},aw={class:"rm-side-header"},rw={class:"rm-side-body"},sw={class:"rm-section"},iw={class:"rm-cluster-grid"},lw=["onClick"],cw={class:"label"},uw={class:"desc"},dw={key:0,class:"rm-slider-row"},pw=["value"],gw={class:"val"},fw={class:"rm-section"},hw={class:"rm-side-footer"},mw={__name:"ResearchMapSideMenu",props:{isOpen:{type:Boolean,default:!1}},emits:["close","open-poster","reload-map"],setup(e,{emit:t}){const o=t,n=Te("mapStore");Te("uiStore");const a=[{id:"off",label:"Off",desc:"Show every pin individually"},{id:"mapbox",label:"Native",desc:"Mapbox circle clusters (fastest)"},{id:"mst",label:"MST",desc:"Minimum-spanning-tree affinity webs"},{id:"network",label:"Network",desc:"Nearest-neighbor connection lines"}],r=Q({get:()=>(n==null?void 0:n.clusteringMode)??"off",set:i=>{n&&(n.clusteringMode=i)}}),s=Q({get:()=>(n==null?void 0:n.clusterPinOpacity)??.6,set:i=>{n&&(n.clusterPinOpacity=Number(i))}});return mt(` .rm-side-backdrop { position:absolute;inset:0;background:rgba(0,0,0,0.45);z-index:1500;opacity:0;pointer-events:none;transition:opacity .18s; } .rm-side-backdrop.open { opacity:1;pointer-events:auto; } .rm-side-drawer { position:absolute;top:0;right:0;bottom:0;width:340px;max-width:100vw;background:#171c23;color:#e7ebf0;border-left:1px solid #232a33;z-index:1600;transform:translateX(100%);transition:transform .22s ease;display:flex;flex-direction:column;font:13px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; } @@ -768,7 +767,7 @@ .rm-btn:hover { background:#9aa6ff; } .rm-btn.ghost { background:transparent;color:#a8b2bd;border:1px solid #2c343f; } .rm-btn.ghost:hover { background:#232a33;color:#e7ebf0; } -`,"research-map-side-menu"),(i,l)=>(V(),ae(Ie,null,[C("div",{class:Ee(["rm-side-backdrop",{open:e.isOpen}]),onClick:l[0]||(l[0]=c=>o("close"))},null,2),C("aside",{class:Ee(["rm-side-drawer",{open:e.isOpen}]),role:"dialog","aria-label":"Research map controls"},[C("header",Zk,[l[5]||(l[5]=C("h3",{class:"rm-side-title"},"Research controls",-1)),C("button",{class:"rm-side-close","aria-label":"Close",onClick:l[1]||(l[1]=c=>o("close"))},"×")]),C("div",Qk,[C("div",ew,[l[7]||(l[7]=C("h4",null,"Clustering",-1)),C("div",tw,[(V(),ae(Ie,null,yt(a,c=>C("button",{key:c.id,class:Ee(["rm-cluster-btn",{active:r.value===c.id}]),onClick:u=>r.value=c.id},[C("span",nw,he(c.label),1),C("span",aw,he(c.desc),1)],10,ow)),64))]),r.value!=="off"?(V(),ae("div",rw,[l[6]||(l[6]=C("label",{for:"rm-pin-op"},"Pin dim",-1)),C("input",{id:"rm-pin-op",type:"range",min:"0.05",max:"1",step:"0.05",value:s.value,onInput:l[2]||(l[2]=c=>s.value=c.target.value)},null,40,sw),C("span",iw,he(Math.round(s.value*100))+"%",1)])):ve("",!0)]),C("div",lw,[l[8]||(l[8]=C("h4",null,"Filters",-1)),Fo(i.$slots,"default")])]),C("footer",cw,[C("button",{class:"rm-btn",onClick:l[3]||(l[3]=c=>o("open-poster"))},"Export poster…"),C("button",{class:"rm-btn ghost",onClick:l[4]||(l[4]=c=>o("reload-map"))},"Reload data")])],2)],64))}},dw={class:"rm-filter"},pw={class:"field"},gw={class:"rm-pop-row"},fw=["value"],hw=["value"],mw={class:"field"},bw=["value"],yw={class:"field"},vw=["value"],_w={class:"field"},xw={class:"rm-chips"},kw={key:0,class:"rm-empty"},ww=["onClick"],Aw={class:"field"},Sw={class:"rm-chips"},Lw={key:0,class:"rm-empty"},Cw=["onClick"],Ew={class:"rm-filter-footer"},$w={class:"rm-pill"},Tw={__name:"ResearchMapFilterPanel",setup(e){const t=Te("mapStore"),o=Te("dataStore"),n={populationMin:null,populationMax:null,engagement:"any",adoption:"any",languages:[],religions:[]};t&&!t.filters&&(t.filters={...n});const a=Q({get:()=>{var p;return((p=t==null?void 0:t.filters)==null?void 0:p.populationMin)??""},set:p=>{t.filters.populationMin=p===""?null:Number(p)}}),r=Q({get:()=>{var p;return((p=t==null?void 0:t.filters)==null?void 0:p.populationMax)??""},set:p=>{t.filters.populationMax=p===""?null:Number(p)}}),s=Q({get:()=>{var p;return((p=t==null?void 0:t.filters)==null?void 0:p.engagement)??"any"},set:p=>{t.filters.engagement=p}}),i=Q({get:()=>{var p;return((p=t==null?void 0:t.filters)==null?void 0:p.adoption)??"any"},set:p=>{t.filters.adoption=p}}),l=Q(()=>(o==null?void 0:o.facets)??{}),c=Q(()=>{var p;return((p=l.value)==null?void 0:p.languages)??[]}),u=Q(()=>{var p;return((p=l.value)==null?void 0:p.religions)??[]});function f(p){const _=t.filters.languages??[],L=_.indexOf(p);L===-1?_.push(p):_.splice(L,1),t.filters.languages=[..._]}function b(p){const _=t.filters.religions??[],L=_.indexOf(p);L===-1?_.push(p):_.splice(L,1),t.filters.religions=[..._]}const k=le(""),x=le(""),m=Q(()=>{const p=k.value.trim().toLowerCase();return p?c.value.filter(_=>_.toLowerCase().includes(p)):c.value}),v=Q(()=>{const p=x.value.trim().toLowerCase();return p?u.value.filter(_=>_.toLowerCase().includes(p)):u.value});function g(p){var _;return(((_=t==null?void 0:t.filters)==null?void 0:_.languages)??[]).includes(p)}function y(p){var _;return(((_=t==null?void 0:t.filters)==null?void 0:_.religions)??[]).includes(p)}function d(){t&&(t.filters={...n,languages:[],religions:[]})}const h=Q(()=>{var L,R;const p=(t==null?void 0:t.filters)??{};let _=0;return p.populationMin!=null&&_++,p.populationMax!=null&&_++,p.engagement&&p.engagement!=="any"&&_++,p.adoption&&p.adoption!=="any"&&_++,(L=p.languages)!=null&&L.length&&_++,(R=p.religions)!=null&&R.length&&_++,_});return mt(` +`,"research-map-side-menu"),(i,l)=>(V(),ae(Ie,null,[C("div",{class:$e(["rm-side-backdrop",{open:e.isOpen}]),onClick:l[0]||(l[0]=c=>o("close"))},null,2),C("aside",{class:$e(["rm-side-drawer",{open:e.isOpen}]),role:"dialog","aria-label":"Research map controls"},[C("header",aw,[l[5]||(l[5]=C("h3",{class:"rm-side-title"},"Research controls",-1)),C("button",{class:"rm-side-close","aria-label":"Close",onClick:l[1]||(l[1]=c=>o("close"))},"×")]),C("div",rw,[C("div",sw,[l[7]||(l[7]=C("h4",null,"Clustering",-1)),C("div",iw,[(V(),ae(Ie,null,yt(a,c=>C("button",{key:c.id,class:$e(["rm-cluster-btn",{active:r.value===c.id}]),onClick:u=>r.value=c.id},[C("span",cw,he(c.label),1),C("span",uw,he(c.desc),1)],10,lw)),64))]),r.value!=="off"?(V(),ae("div",dw,[l[6]||(l[6]=C("label",{for:"rm-pin-op"},"Pin dim",-1)),C("input",{id:"rm-pin-op",type:"range",min:"0.05",max:"1",step:"0.05",value:s.value,onInput:l[2]||(l[2]=c=>s.value=c.target.value)},null,40,pw),C("span",gw,he(Math.round(s.value*100))+"%",1)])):ve("",!0)]),C("div",fw,[l[8]||(l[8]=C("h4",null,"Filters",-1)),Fo(i.$slots,"default")])]),C("footer",hw,[C("button",{class:"rm-btn",onClick:l[3]||(l[3]=c=>o("open-poster"))},"Export poster…"),C("button",{class:"rm-btn ghost",onClick:l[4]||(l[4]=c=>o("reload-map"))},"Reload data")])],2)],64))}},bw={class:"rm-filter"},yw={class:"field"},vw={class:"rm-pop-row"},_w=["value"],xw=["value"],kw={class:"field"},ww=["value"],Aw={class:"field"},Sw=["value"],Lw={class:"field"},Cw={class:"rm-chips"},$w={key:0,class:"rm-empty"},Ew=["onClick"],Tw={class:"field"},Pw={class:"rm-chips"},Nw={key:0,class:"rm-empty"},Mw=["onClick"],Iw={class:"rm-filter-footer"},Rw={class:"rm-pill"},Fw={__name:"ResearchMapFilterPanel",setup(e){const t=Te("mapStore"),o=Te("dataStore"),n={populationMin:null,populationMax:null,engagement:"any",adoption:"any",languages:[],religions:[]};t&&!t.filters&&(t.filters={...n});const a=Q({get:()=>{var p;return((p=t==null?void 0:t.filters)==null?void 0:p.populationMin)??""},set:p=>{t.filters.populationMin=p===""?null:Number(p)}}),r=Q({get:()=>{var p;return((p=t==null?void 0:t.filters)==null?void 0:p.populationMax)??""},set:p=>{t.filters.populationMax=p===""?null:Number(p)}}),s=Q({get:()=>{var p;return((p=t==null?void 0:t.filters)==null?void 0:p.engagement)??"any"},set:p=>{t.filters.engagement=p}}),i=Q({get:()=>{var p;return((p=t==null?void 0:t.filters)==null?void 0:p.adoption)??"any"},set:p=>{t.filters.adoption=p}}),l=Q(()=>(o==null?void 0:o.facets)??{}),c=Q(()=>{var p;return((p=l.value)==null?void 0:p.languages)??[]}),u=Q(()=>{var p;return((p=l.value)==null?void 0:p.religions)??[]});function f(p){const _=t.filters.languages??[],L=_.indexOf(p);L===-1?_.push(p):_.splice(L,1),t.filters.languages=[..._]}function b(p){const _=t.filters.religions??[],L=_.indexOf(p);L===-1?_.push(p):_.splice(L,1),t.filters.religions=[..._]}const k=le(""),x=le(""),m=Q(()=>{const p=k.value.trim().toLowerCase();return p?c.value.filter(_=>_.toLowerCase().includes(p)):c.value}),v=Q(()=>{const p=x.value.trim().toLowerCase();return p?u.value.filter(_=>_.toLowerCase().includes(p)):u.value});function g(p){var _;return(((_=t==null?void 0:t.filters)==null?void 0:_.languages)??[]).includes(p)}function y(p){var _;return(((_=t==null?void 0:t.filters)==null?void 0:_.religions)??[]).includes(p)}function d(){t&&(t.filters={...n,languages:[],religions:[]})}const h=Q(()=>{var L,R;const p=(t==null?void 0:t.filters)??{};let _=0;return p.populationMin!=null&&_++,p.populationMax!=null&&_++,p.engagement&&p.engagement!=="any"&&_++,p.adoption&&p.adoption!=="any"&&_++,(L=p.languages)!=null&&L.length&&_++,(R=p.religions)!=null&&R.length&&_++,_});return mt(` .rm-filter { display:flex;flex-direction:column;gap:14px;font:12px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#e7ebf0; } .rm-filter .row { display:flex;align-items:center;gap:8px; } .rm-filter label { font-size:11px;color:#a8b2bd;letter-spacing:.04em;text-transform:uppercase;font-weight:600; } @@ -789,7 +788,7 @@ .rm-pill { background:rgba(124,140,248,0.12);color:#a8b8ff;padding:2px 8px;border-radius:11px;font-size:11px;font-weight:600; } .rm-link-btn { background:none;border:none;color:#7c8cf8;cursor:pointer;font-size:11px;padding:0; } .rm-link-btn:hover { text-decoration:underline; } -`,"research-map-filter-panel"),(p,_)=>(V(),ae("div",dw,[C("div",pw,[_[6]||(_[6]=C("label",null,"Population",-1)),C("div",gw,[C("input",{type:"number",min:"0",placeholder:"min",value:a.value,onInput:_[0]||(_[0]=L=>a.value=L.target.value)},null,40,fw),C("input",{type:"number",min:"0",placeholder:"max",value:r.value,onInput:_[1]||(_[1]=L=>r.value=L.target.value)},null,40,hw)])]),C("div",mw,[_[8]||(_[8]=C("label",null,"Engagement",-1)),C("select",{value:s.value,onChange:_[2]||(_[2]=L=>s.value=L.target.value)},[..._[7]||(_[7]=[C("option",{value:"any"},"Any",-1),C("option",{value:"engaged"},"Engaged",-1),C("option",{value:"unengaged"},"Unengaged",-1)])],40,bw)]),C("div",yw,[_[10]||(_[10]=C("label",null,"Adoption",-1)),C("select",{value:i.value,onChange:_[3]||(_[3]=L=>i.value=L.target.value)},[..._[9]||(_[9]=[C("option",{value:"any"},"Any",-1),C("option",{value:"adopted"},"Adopted",-1),C("option",{value:"unadopted"},"Unadopted",-1)])],40,vw)]),C("div",_w,[_[11]||(_[11]=C("label",null,"Language",-1)),zt(C("input",{type:"search","onUpdate:modelValue":_[4]||(_[4]=L=>k.value=L),placeholder:"Search languages…"},null,512),[[Kr,k.value]]),C("div",xw,[m.value.length?ve("",!0):(V(),ae("span",kw,"No languages loaded yet")),(V(!0),ae(Ie,null,yt(m.value,L=>(V(),ae("button",{key:L,class:Ee(["rm-chip",{active:g(L)}]),onClick:R=>f(L)},he(L),11,ww))),128))])]),C("div",Aw,[_[12]||(_[12]=C("label",null,"Religion",-1)),zt(C("input",{type:"search","onUpdate:modelValue":_[5]||(_[5]=L=>x.value=L),placeholder:"Search religions…"},null,512),[[Kr,x.value]]),C("div",Sw,[v.value.length?ve("",!0):(V(),ae("span",Lw,"No religions loaded yet")),(V(!0),ae(Ie,null,yt(v.value,L=>(V(),ae("button",{key:L,class:Ee(["rm-chip",{active:y(L)}]),onClick:R=>b(L)},he(L),11,Cw))),128))])]),C("div",Ew,[C("span",$w,he(h.value)+" active",1),C("button",{class:"rm-link-btn",onClick:d},"Reset all")])]))}},bg="pplrInstance";function Pw(e){return{instanceId:e,selection:le(null),activeTab:le(0),isSearching:le(!1),geocoderText:le(""),pinDetail:le(null),theme:le("dark")}}function Nw(e){St(bg,e)}function Mw(){return Te(bg,null)}const Iw=["data-theme"],Rw={class:"stl-inner"},Fw={class:"stl-tb-caret-slot"},Ow=["title"],Dw={class:"stl-tb-eyebrow"},Bw=["title","aria-label"],Gw=["title"],jw={key:2,class:"stl-tb-title"},zw={key:0,class:"stl-tabs-wrap"},Uw={class:"stl-tabs"},Kw=["onClick"],Hw=["title","onClick"],Vw={key:0,class:"stl-info-pop"},qw={class:"stl-col-hdr"},Ww={class:"stl-hdr-name"},Yw=["title"],Xw={key:0,class:"stl-sort-arrow"},Jw=["title"],Zw={key:0,class:"stl-sort-arrow"},Qw=["data-stl-node-id","onClick"],eA=["onClick"],tA={key:1,class:"stl-caret-sp"},oA={key:3,class:"stl-dot-sp"},nA={class:"stl-name"},aA={key:4,class:"stl-num"},rA={key:5,class:"stl-num"},sA={class:"stl-x-slot"},iA={key:0,class:"stl-empty stl-loading"},lA={key:1,class:"stl-empty"},cA={key:2,class:"stl-empty"},uA={key:3,class:"stl-overflow"},dA=["data-theme"],pA={class:"stl-reopen-label"},yg=Ot({__name:"SemanticTreeLegend",props:{nodes:{type:Array,default:()=>[]},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columns:{type:Array,default:()=>["count","pop"]},title:{type:String,default:"Legend"},hideTabs:{type:Boolean,default:!1},columnLabel:{type:String,default:""},open:{type:Boolean,default:null},exportEnabled:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["select","update:open","export"],setup(e,{emit:t}){const{t:o,te:n}=ht();function a(P){const Y="tabs."+((P==null?void 0:P.i18nKey)||(P==null?void 0:P.id));return P&&n(Y)?o(Y):(P==null?void 0:P.label)??""}const r=e,s=t,i=Mw(),l=Te("legendProgress",null),c=Q(()=>r.progress??de(l)??null),u=Q(()=>c.value?o("legend.progress.title"):r.title),f=Q(()=>((i==null?void 0:i.theme.value)||"dark")==="dark");function b(P,Y){var ge;for(const xe of P||[]){if((xe==null?void 0:xe.id)===Y)return xe;const Se=(ge=xe==null?void 0:xe.children)!=null&&ge.length?b(xe.children,Y):null;if(Se)return Se}return null}function k(P){const Y=b(d.value,P);Y&&te(Y)}function x(P,Y=0){return P!=null&&P.length?Math.max(...P.map(ge=>x(ge.children??[],Y+1))):Y}function m(P,Y,ge=0){return ge===Y?P.slice():P.flatMap(xe=>m(xe.children??[],Y,ge+1))}function v(P,Y,ge=[]){var xe;for(const Se of P){if(Se.id===Y)return ge;if((xe=Se.children)!=null&&xe.length){const Fe=v(Se.children,Y,[...ge,Se]);if(Fe)return Fe}}return null}function g(P,Y=new Set){var ge;if(!((ge=P==null?void 0:P.children)!=null&&ge.length))return Y;for(const xe of P.children)Y.add(xe.id),g(xe,Y);return Y}function y(P,Y="root"){var xe;if(!Array.isArray(P))return[];const ge=[];for(const Se of P){if(!Se||typeof Se!="object"){try{console.warn("[SemanticTreeLegend] dropped null node under",Y)}catch{}continue}ge.push((xe=Se.children)!=null&&xe.length?{...Se,children:y(Se.children,Se.label||Se.id||Y)}:Se)}return ge}const d=Q(()=>y(r.nodes)),h=Q(()=>x(d.value)),p=Q(()=>{const P=r.tabs??[],Y=P.length||h.value+1;return Array.from({length:Y},(ge,xe)=>P[xe]??{id:`gen${xe+1}`,label:`Generation ${xe+1}`})}),_=le(Math.max(0,r.defaultTab|0)),L=le(new Set),R=le(null),S=le(r.open!==null?r.open:!0),z=le(null),j=le(!1),O=le(null),D=le("desc"),M=Q({get:()=>r.hideTabs?0:i?i.activeTab.value:_.value,set:P=>{r.hideTabs||(i?i.activeTab.value=P:_.value=P)}}),$=Q({get:()=>i?i.selection.value:R.value,set:P=>{i?i.selection.value=P:R.value=P}}),T=Q(()=>{var P;return((P=$.value)==null?void 0:P.id)||null}),N=le(null);De(()=>r.open,P=>{P!==null&&(S.value=P)}),De(()=>d.value,()=>{const P=i==null?void 0:i.activeTab.value,Y=Math.min(Math.max(0,r.defaultTab|0),Math.max(0,p.value.length-1));M.value=typeof P=="number"&&P>=0?P:Y,L.value=new Set,$.value=null,s("select",null)},{deep:!1});let q=null;i&&De(()=>i.selection.value,P=>{if((P==null?void 0:P.id)===q)return;if(!P){q=null;return}q=P.id;const Y=v(d.value,P.id)||[];typeof P.depth=="number"&&(M.value=Math.min(P.depth,p.value.length-1));const ge=new Set;Y.forEach(xe=>ge.add(xe.id)),L.value=ge,s("select",P)});function ce(P,Y){const ge=(Y.pop??0)-(P.pop??0);return ge!==0?ge:(Y.count??0)-(P.count??0)}const ee=Q(()=>{if(!O.value)return ce;const P=O.value,Y=D.value==="asc"?1:-1;return(ge,xe)=>((ge[P]??0)-(xe[P]??0))*Y});function oe(P){O.value===P?D.value==="desc"?D.value="asc":(O.value=null,D.value="desc"):(O.value=P,D.value="desc")}const H=le([]),pe=le(!1);let we=-1;function ue(P){if(H.value[P]){pe.value=!1;return}pe.value=!0,we=P,setTimeout(()=>{if(we!==P)return;const Y=[...m(d.value,P)].sort(ee.value),ge=[...H.value];ge[P]=Y,H.value=ge,pe.value=!1},0)}De(M,P=>ue(P),{immediate:!0}),De(()=>[d.value,O.value,D.value],()=>{H.value=[],ue(M.value)},{deep:!1});const $e=Q(()=>H.value[M.value]||[]),Ae=Q(()=>{var Y;const P=(Y=p.value[M.value])==null?void 0:Y.topLimit;return P?$e.value.slice(0,P):$e.value}),ie=Q(()=>{var Y;const P=(Y=p.value[M.value])==null?void 0:Y.topLimit;return P?Math.max(0,$e.value.length-P):0});function ye(P,Y,ge,xe,Se){var Fe;for(const Ne of Y)Ne&&(P.push({node:Ne,relDepth:ge,parent:xe,ancestors:Se}),L.value.has(Ne.id)&&((Fe=Ne.children)!=null&&Fe.length)&&ye(P,[...Ne.children].sort(ee.value),ge+1,Ne,[...Se,Ne]))}const me=Q(()=>{const P=[];ye(P,Ae.value,0,null,[]);for(let Y=0;YSe+1&&Ke.ancestors[Se]}if(Se===ge.relDepth-1){let pt=!1;for(let Ke=Y+1;KeT.value!==null),E=Q(()=>r.columns.includes("count")),F=Q(()=>r.columns.includes("pop")),B=Q(()=>$.value?g($.value):new Set),K=Q(()=>{var Fe;const P=$.value;if(!P)return null;const Y=v(d.value,P.id);if(!Y||!Y.length)return null;const ge=Y[Y.length-1],xe=Y.length-1,Se=((Fe=p.value[xe])==null?void 0:Fe.label)||"Parent";return{node:ge,tabName:Se,depth:xe}});function te(P){T.value===P.id?(q=null,$.value=null,s("select",null)):(q=P.id,$.value=P,s("select",P))}function U(P,Y){Y==null||Y.stopPropagation();const ge=new Set(L.value),xe=ge.has(P);if(xe?ge.delete(P):ge.add(P),L.value=ge,xe&&$.value){const Se=v(d.value,$.value.id);Se&&Se.some(Fe=>Fe.id===P)&&(q=null,$.value=null,s("select",null))}}function X(){const P=K.value;P!=null&&P.node&&(!r.hideTabs&&typeof P.depth=="number"&&(M.value=P.depth),L.value=new Set,te(P.node))}function ne(P){if(M.value===P){z.value=z.value===P?null:P;return}M.value=P,L.value=new Set,q=null,$.value=null,z.value=null,s("select",null)}function w(P){P==null||P.stopPropagation(),q=null,$.value=null,s("select",null)}function A(P,Y){Y==null||Y.stopPropagation(),z.value=z.value===P?null:P}De(T,P=>{P||(j.value=!1)});function W(P){let Y=P.parentElement;for(;Y;){const ge=getComputedStyle(Y).overflowY;if((ge==="auto"||ge==="scroll")&&Y.scrollHeight>Y.clientHeight+1){const xe=P.getBoundingClientRect(),Se=Y.getBoundingClientRect();Y.scrollTop+=xe.top-Se.top-8}Y=Y.parentElement}}let re=0;De(T,async P=>{if(!P)return;const Y=++re,ge=N.value;if(!ge)return;await jt();const xe=(Se=0)=>{if(Y!==re)return;const Fe=ge.querySelector(`[data-stl-node-id="${CSS.escape(String(P))}"]`);Fe&&W(Fe),Se<6&&setTimeout(()=>xe(Se+1),70)};xe(0)});function be(P){return P?P>=1e6?(P/1e6).toFixed(1)+"M":P>=1e3?Math.round(P/1e3)+"k":P.toLocaleString():"—"}function fe(P){return P!=null?P.toLocaleString():"—"}function Z(P){var Y;return{selected:T.value===P.node.id,descendant:Le.value&&B.value.has(P.node.id),child:P.relDepth>0,leaf:!((Y=P.node.children)!=null&&Y.length)}}return mt(` +`,"research-map-filter-panel"),(p,_)=>(V(),ae("div",bw,[C("div",yw,[_[6]||(_[6]=C("label",null,"Population",-1)),C("div",vw,[C("input",{type:"number",min:"0",placeholder:"min",value:a.value,onInput:_[0]||(_[0]=L=>a.value=L.target.value)},null,40,_w),C("input",{type:"number",min:"0",placeholder:"max",value:r.value,onInput:_[1]||(_[1]=L=>r.value=L.target.value)},null,40,xw)])]),C("div",kw,[_[8]||(_[8]=C("label",null,"Engagement",-1)),C("select",{value:s.value,onChange:_[2]||(_[2]=L=>s.value=L.target.value)},[..._[7]||(_[7]=[C("option",{value:"any"},"Any",-1),C("option",{value:"engaged"},"Engaged",-1),C("option",{value:"unengaged"},"Unengaged",-1)])],40,ww)]),C("div",Aw,[_[10]||(_[10]=C("label",null,"Adoption",-1)),C("select",{value:i.value,onChange:_[3]||(_[3]=L=>i.value=L.target.value)},[..._[9]||(_[9]=[C("option",{value:"any"},"Any",-1),C("option",{value:"adopted"},"Adopted",-1),C("option",{value:"unadopted"},"Unadopted",-1)])],40,Sw)]),C("div",Lw,[_[11]||(_[11]=C("label",null,"Language",-1)),zt(C("input",{type:"search","onUpdate:modelValue":_[4]||(_[4]=L=>k.value=L),placeholder:"Search languages…"},null,512),[[Kr,k.value]]),C("div",Cw,[m.value.length?ve("",!0):(V(),ae("span",$w,"No languages loaded yet")),(V(!0),ae(Ie,null,yt(m.value,L=>(V(),ae("button",{key:L,class:$e(["rm-chip",{active:g(L)}]),onClick:R=>f(L)},he(L),11,Ew))),128))])]),C("div",Tw,[_[12]||(_[12]=C("label",null,"Religion",-1)),zt(C("input",{type:"search","onUpdate:modelValue":_[5]||(_[5]=L=>x.value=L),placeholder:"Search religions…"},null,512),[[Kr,x.value]]),C("div",Pw,[v.value.length?ve("",!0):(V(),ae("span",Nw,"No religions loaded yet")),(V(!0),ae(Ie,null,yt(v.value,L=>(V(),ae("button",{key:L,class:$e(["rm-chip",{active:y(L)}]),onClick:R=>b(L)},he(L),11,Mw))),128))])]),C("div",Iw,[C("span",Rw,he(h.value)+" active",1),C("button",{class:"rm-link-btn",onClick:d},"Reset all")])]))}},bg="pplrInstance";function Ow(e){return{instanceId:e,selection:le(null),activeTab:le(0),isSearching:le(!1),geocoderText:le(""),pinDetail:le(null),theme:le("dark")}}function Dw(e){St(bg,e)}function Bw(){return Te(bg,null)}const Gw="",jw=["data-theme"],zw={class:"stl-inner"},Uw={class:"stl-tb-caret-slot"},Kw=["title"],Hw={class:"stl-tb-eyebrow"},Vw=["title","aria-label"],qw=["title"],Ww={key:2,class:"stl-tb-title"},Yw={key:0,class:"stl-tabs-wrap"},Xw={class:"stl-tabs"},Jw=["onClick"],Zw=["title","onClick"],Qw={key:0,class:"stl-info-pop"},eA={class:"stl-col-hdr"},tA={class:"stl-hdr-name"},oA=["title"],nA={key:0,class:"stl-sort-arrow"},aA=["title"],rA={key:0,class:"stl-sort-arrow"},sA=["data-stl-node-id","onClick"],iA=["onClick"],lA={key:1,class:"stl-caret-sp"},cA={key:3,class:"stl-dot-sp"},uA={class:"stl-name"},dA={key:4,class:"stl-num"},pA={key:5,class:"stl-num"},gA={class:"stl-x-slot"},fA={key:0,class:"stl-empty stl-loading"},hA={key:1,class:"stl-empty"},mA={key:2,class:"stl-empty"},bA={key:3,class:"stl-overflow"},yA=["data-theme"],vA={class:"stl-reopen-label"},yg=Ot({__name:"SemanticTreeLegend",props:{nodes:{type:Array,default:()=>[]},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columns:{type:Array,default:()=>["count","pop"]},title:{type:String,default:"Legend"},hideTabs:{type:Boolean,default:!1},columnLabel:{type:String,default:""},open:{type:Boolean,default:null},exportEnabled:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["select","update:open","export"],setup(e,{emit:t}){const{t:o,te:n}=ht();function a(P){const Y="tabs."+((P==null?void 0:P.i18nKey)||(P==null?void 0:P.id));return P&&n(Y)?o(Y):(P==null?void 0:P.label)??""}const r=e,s=t,i=Bw(),l=Te("legendProgress",null),c=Q(()=>r.progress??de(l)??null),u=Q(()=>c.value?o("legend.progress.title"):r.title),f=Q(()=>((i==null?void 0:i.theme.value)||"dark")==="dark");function b(P,Y){var ge;for(const xe of P||[]){if((xe==null?void 0:xe.id)===Y)return xe;const Se=(ge=xe==null?void 0:xe.children)!=null&&ge.length?b(xe.children,Y):null;if(Se)return Se}return null}function k(P){const Y=b(d.value,P);Y&&te(Y)}function x(P,Y=0){return P!=null&&P.length?Math.max(...P.map(ge=>x(ge.children??[],Y+1))):Y}function m(P,Y,ge=0){return ge===Y?P.slice():P.flatMap(xe=>m(xe.children??[],Y,ge+1))}function v(P,Y,ge=[]){var xe;for(const Se of P){if(Se.id===Y)return ge;if((xe=Se.children)!=null&&xe.length){const Fe=v(Se.children,Y,[...ge,Se]);if(Fe)return Fe}}return null}function g(P,Y=new Set){var ge;if(!((ge=P==null?void 0:P.children)!=null&&ge.length))return Y;for(const xe of P.children)Y.add(xe.id),g(xe,Y);return Y}function y(P,Y="root"){var xe;if(!Array.isArray(P))return[];const ge=[];for(const Se of P){if(!Se||typeof Se!="object"){try{console.warn("[SemanticTreeLegend] dropped null node under",Y)}catch{}continue}ge.push((xe=Se.children)!=null&&xe.length?{...Se,children:y(Se.children,Se.label||Se.id||Y)}:Se)}return ge}const d=Q(()=>y(r.nodes)),h=Q(()=>x(d.value)),p=Q(()=>{const P=r.tabs??[],Y=P.length||h.value+1;return Array.from({length:Y},(ge,xe)=>P[xe]??{id:`gen${xe+1}`,label:`Generation ${xe+1}`})}),_=le(Math.max(0,r.defaultTab|0)),L=le(new Set),R=le(null),S=le(r.open!==null?r.open:!0),z=le(null),j=le(!1),O=le(null),D=le("desc"),M=Q({get:()=>r.hideTabs?0:i?i.activeTab.value:_.value,set:P=>{r.hideTabs||(i?i.activeTab.value=P:_.value=P)}}),E=Q({get:()=>i?i.selection.value:R.value,set:P=>{i?i.selection.value=P:R.value=P}}),T=Q(()=>{var P;return((P=E.value)==null?void 0:P.id)||null}),N=le(null);De(()=>r.open,P=>{P!==null&&(S.value=P)}),De(()=>d.value,()=>{const P=i==null?void 0:i.activeTab.value,Y=Math.min(Math.max(0,r.defaultTab|0),Math.max(0,p.value.length-1));M.value=typeof P=="number"&&P>=0?P:Y,L.value=new Set,E.value=null,s("select",null)},{deep:!1});let q=null;i&&De(()=>i.selection.value,P=>{if((P==null?void 0:P.id)===q)return;if(!P){q=null;return}q=P.id;const Y=v(d.value,P.id)||[];typeof P.depth=="number"&&(M.value=Math.min(P.depth,p.value.length-1));const ge=new Set;Y.forEach(xe=>ge.add(xe.id)),L.value=ge,s("select",P)});function ce(P,Y){const ge=(Y.pop??0)-(P.pop??0);return ge!==0?ge:(Y.count??0)-(P.count??0)}const ee=Q(()=>{if(!O.value)return ce;const P=O.value,Y=D.value==="asc"?1:-1;return(ge,xe)=>((ge[P]??0)-(xe[P]??0))*Y});function oe(P){O.value===P?D.value==="desc"?D.value="asc":(O.value=null,D.value="desc"):(O.value=P,D.value="desc")}const H=le([]),pe=le(!1);let we=-1;function ue(P){if(H.value[P]){pe.value=!1;return}pe.value=!0,we=P,setTimeout(()=>{if(we!==P)return;const Y=[...m(d.value,P)].sort(ee.value),ge=[...H.value];ge[P]=Y,H.value=ge,pe.value=!1},0)}De(M,P=>ue(P),{immediate:!0}),De(()=>[d.value,O.value,D.value],()=>{H.value=[],ue(M.value)},{deep:!1});const Ee=Q(()=>H.value[M.value]||[]),Ae=Q(()=>{var Y;const P=(Y=p.value[M.value])==null?void 0:Y.topLimit;return P?Ee.value.slice(0,P):Ee.value}),ie=Q(()=>{var Y;const P=(Y=p.value[M.value])==null?void 0:Y.topLimit;return P?Math.max(0,Ee.value.length-P):0});function ye(P,Y,ge,xe,Se){var Fe;for(const Ne of Y)Ne&&(P.push({node:Ne,relDepth:ge,parent:xe,ancestors:Se}),L.value.has(Ne.id)&&((Fe=Ne.children)!=null&&Fe.length)&&ye(P,[...Ne.children].sort(ee.value),ge+1,Ne,[...Se,Ne]))}const me=Q(()=>{const P=[];ye(P,Ae.value,0,null,[]);for(let Y=0;YSe+1&&Ke.ancestors[Se]}if(Se===ge.relDepth-1){let pt=!1;for(let Ke=Y+1;KeT.value!==null),$=Q(()=>r.columns.includes("count")),F=Q(()=>r.columns.includes("pop")),B=Q(()=>E.value?g(E.value):new Set),K=Q(()=>{var Fe;const P=E.value;if(!P)return null;const Y=v(d.value,P.id);if(!Y||!Y.length)return null;const ge=Y[Y.length-1],xe=Y.length-1,Se=((Fe=p.value[xe])==null?void 0:Fe.label)||"Parent";return{node:ge,tabName:Se,depth:xe}});function te(P){T.value===P.id?(q=null,E.value=null,s("select",null)):(q=P.id,E.value=P,s("select",P))}function U(P,Y){Y==null||Y.stopPropagation();const ge=new Set(L.value),xe=ge.has(P);if(xe?ge.delete(P):ge.add(P),L.value=ge,xe&&E.value){const Se=v(d.value,E.value.id);Se&&Se.some(Fe=>Fe.id===P)&&(q=null,E.value=null,s("select",null))}}function X(){const P=K.value;P!=null&&P.node&&(!r.hideTabs&&typeof P.depth=="number"&&(M.value=P.depth),L.value=new Set,te(P.node))}function ne(P){if(M.value===P){z.value=z.value===P?null:P;return}M.value=P,L.value=new Set,q=null,E.value=null,z.value=null,s("select",null)}function w(P){P==null||P.stopPropagation(),q=null,E.value=null,s("select",null)}function A(P,Y){Y==null||Y.stopPropagation(),z.value=z.value===P?null:P}De(T,P=>{P||(j.value=!1)});function W(P){let Y=P.parentElement;for(;Y;){const ge=getComputedStyle(Y).overflowY;if((ge==="auto"||ge==="scroll")&&Y.scrollHeight>Y.clientHeight+1){const xe=P.getBoundingClientRect(),Se=Y.getBoundingClientRect();Y.scrollTop+=xe.top-Se.top-8}Y=Y.parentElement}}let re=0;De(T,async P=>{if(!P)return;const Y=++re,ge=N.value;if(!ge)return;await jt();const xe=(Se=0)=>{if(Y!==re)return;const Fe=ge.querySelector(`[data-stl-node-id="${CSS.escape(String(P))}"]`);Fe&&W(Fe),Se<6&&setTimeout(()=>xe(Se+1),70)};xe(0)});function be(P){return P?P>=1e6?(P/1e6).toFixed(1)+"M":P>=1e3?Math.round(P/1e3)+"k":P.toLocaleString():"—"}function fe(P){return P!=null?P.toLocaleString():"—"}function Z(P){var Y;return{selected:T.value===P.node.id,descendant:Le.value&&B.value.has(P.node.id),child:P.relDepth>0,leaf:!((Y=P.node.children)!=null&&Y.length)}}return mt(` .stl-inner { --stl-pad-x: 10px; --stl-gap: 6px; @@ -1241,7 +1240,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"),(P,Y)=>{var ge,xe,Se,Fe;return V(),ae(Ie,null,[C("div",{class:Ee(["stl-panel",{closed:!S.value,"fit-content":e.hideTabs}]),"data-theme":((ge=de(i))==null?void 0:ge.theme.value)||"dark"},[C("div",Rw,[C("div",{class:Ee(["stl-titlebar",{"has-progress":!!c.value}])},[C("span",Fw,[Fo(P.$slots,"title-caret",{},void 0,!0)]),P.$slots["title-caret"]?ve("",!0):(V(),ae("button",{key:0,class:Ee(["stl-collapse-btn",{closed:!S.value}]),title:S.value?"Collapse legend":"Expand legend",onClick:Y[0]||(Y[0]=Ne=>{S.value=!S.value,s("update:open",S.value)})},[...Y[8]||(Y[8]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,Ow)),K.value&&$.value?(V(),ae(Ie,{key:1},[C("span",Dw,he(K.value.tabName),1),C("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"])},[Y[9]||(Y[9]=C("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[C("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?(V(),ae("span",{key:0,class:"stl-tb-dot",style:Xe({background:K.value.node.color})},null,4)):ve("",!0),C("span",{class:"stl-tb-text",title:K.value.node.label},he(K.value.node.label),9,Gw)],8,Bw)],64)):(V(),ae("span",jw,he(u.value),1)),ve("",!0),c.value?(V(),Ge(cg,{key:4,class:"stl-progress","show-text":!1,covered:c.value.covered,total:c.value.total,segments:c.value.segments,"is-dark":f.value,"fmt-count":fe,onSelectSegment:k},null,8,["covered","total","segments","is-dark"])):ve("",!0)],2),e.hideTabs?ve("",!0):(V(),ae("div",zw,[C("div",Uw,[(V(!0),ae(Ie,null,yt(p.value,(Ne,pt)=>(V(),ae("div",{key:Ne.id,class:Ee(["stl-tab-chip",{active:M.value===pt}])},[C("button",{class:"stl-tab",onClick:Ke=>ne(pt)},he(a(Ne)),9,Kw),Ne.info?(V(),ae("button",{key:0,class:"stl-tab-info",title:Ne.info,onClick:Ke=>A(pt,Ke)},"i",8,Hw)):ve("",!0)],2))),128))]),z.value!==null&&((xe=p.value[z.value])!=null&&xe.info)?(V(),ae("div",Vw,he(p.value[z.value].info),1)):ve("",!0)])),C("div",qw,[Y[13]||(Y[13]=C("span",{class:"stl-caret-sp"},null,-1)),Y[14]||(Y[14]=C("span",{class:"stl-dot-sp"},null,-1)),C("span",Ww,he(e.columnLabel||(e.hideTabs?e.title:a(p.value[M.value])||de(o)("legend.columns.name"))),1),E.value?(V(),ae("button",{key:0,class:Ee(["stl-hdr-num",{active:O.value==="count"}]),title:de(o)("legend.sortByUpgs"),onClick:Y[4]||(Y[4]=Ne=>oe("count"))},[gt(he(de(o)("legend.columns.upgs"))+" ",1),O.value==="count"?(V(),ae("span",Xw,he(D.value==="desc"?"▼":"▲"),1)):ve("",!0)],10,Yw)):ve("",!0),F.value?(V(),ae("button",{key:1,class:Ee(["stl-hdr-num",{active:O.value==="pop"}]),title:de(o)("legend.sortByPop"),onClick:Y[5]||(Y[5]=Ne=>oe("pop"))},[gt(he(de(o)("legend.columns.population"))+" ",1),O.value==="pop"?(V(),ae("span",Zw,he(D.value==="desc"?"▼":"▲"),1)):ve("",!0)],10,Jw)):ve("",!0),Y[15]||(Y[15]=C("span",{class:"stl-x-slot"},null,-1))]),C("div",{class:Ee(["stl-rows",{"has-sel":Le.value}]),ref_key:"rowsContainer",ref:N},[(V(!0),ae(Ie,null,yt(me.value,Ne=>{var pt,Ke;return V(),ae("div",{key:Ne.node.id,class:Ee(["stl-row",Z(Ne)]),"data-stl-node-id":Ne.node.id,style:Xe({"--trunk-color":((pt=Ne.parent)==null?void 0:pt.color)||"#6e7681","--row-color":Ne.node.color||"#73A17F"}),onClick:He=>te(Ne.node)},[(V(!0),ae(Ie,null,yt(Ne.trunks,(He,sa)=>(V(),ae("span",{key:`tr${sa}`,class:Ee(["stl-trunk",`stl-trunk-${He}`])},null,2))),128)),(Ke=Ne.node.children)!=null&&Ke.length?(V(),ae("button",{key:0,class:Ee(["stl-caret",{open:L.value.has(Ne.node.id)}]),onClick:dt(He=>U(Ne.node.id,He),["stop"])},[...Y[16]||(Y[16]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,eA)):(V(),ae("span",tA)),Ne.node.color?(V(),ae("span",{key:2,class:"stl-dot",style:Xe({background:Ne.node.color})},null,4)):(V(),ae("span",oA)),C("span",nA,he(Ne.node.label),1),E.value?(V(),ae("span",aA,he(fe(Ne.node.count)),1)):ve("",!0),F.value?(V(),ae("span",rA,he(be(Ne.node.pop)),1)):ve("",!0),C("span",sA,[T.value===Ne.node.id?(V(),ae("button",{key:0,class:"stl-x-chip",title:"Clear selection",onClick:Y[6]||(Y[6]=dt(He=>w(He),["stop"]))},[...Y[17]||(Y[17]=[C("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])):ve("",!0)])],14,Qw)}),128)),pe.value&&!me.value.length?(V(),ae("div",iA,[Y[18]||(Y[18]=C("span",{class:"stl-spinner"},null,-1)),C("span",null,"Loading "+he(((Se=p.value[M.value])==null?void 0:Se.label)||"rows")+"…",1)])):!me.value.length&&e.nodes.length===0?(V(),ae("div",lA,"Loading data…")):me.value.length?ve("",!0):(V(),ae("div",cA,"No data at this level")),ie.value>0?(V(),ae("div",uA,[gt(" Showing top "+he(p.value[M.value].topLimit.toLocaleString())+" of "+he($e.value.length.toLocaleString())+" — ",1),Y[19]||(Y[19]=C("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):ve("",!0)],2)])],10,Iw),S.value?ve("",!0):(V(),ae("button",{key:0,class:"stl-reopen","data-theme":((Fe=de(i))==null?void 0:Fe.theme.value)||"dark",title:"Expand legend",onClick:Y[7]||(Y[7]=Ne=>{S.value=!0,s("update:open",!0)})},[Y[20]||(Y[20]=C("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),C("span",pA,[$.value?(V(),ae(Ie,{key:0},[$.value.color?(V(),ae("span",{key:0,class:"stl-reopen-dot",style:Xe({background:$.value.color})},null,4)):ve("",!0),gt(" "+he($.value.label),1)],64)):(V(),ae(Ie,{key:1},[gt(he(u.value),1)],64))]),Y[21]||(Y[21]=C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,dA))],64)}}},[["__scopeId","data-v-78a7a96e"]]),gA="#6b7280";function fA(){const e=wo(Xn.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function hA(e,t){const o=fA();return e&&o[e]?o[e]:gA}function mA(e){return(e==null?void 0:e.properties)||e||{}}function Ll(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function bA(e){var t;return String(e.affinityBlock||Ll((t=e._raw)==null?void 0:t.rop1)||"").trim()}function yA(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function vA(e){var t;return String(e.cluster||Ll((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function _A(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function xA(e){var t;return String(e.peopleGroup||Ll((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function kA(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function wA(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function AA(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function SA(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function LA(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function vg(e){const t=Q(()=>{const r=e&&e.value||[],s=new Map;for(const i of r){const l=mA(i),c=bA(l),u=yA(l)||c||"— Unknown —",f=vA(l),b=_A(l)||f||"— Unknown —",k=xA(l),x=kA(l)||k||"— Unknown —",m=wA(l),v=AA(l)||m,g=SA(l),y=LA(l);if(!m)continue;let d=s.get(c||"__unknown__");d||(d={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},s.set(c||"__unknown__",d)),d.count+=1,d.pop+=g,d.memberIds.push(m);let h=d.clusters.get(f||"__unknown__");h||(h={code:f,label:b,count:0,pop:0,memberIds:[],peopleGroups:new Map},d.clusters.set(f||"__unknown__",h)),h.count+=1,h.pop+=g,h.memberIds.push(m);let p=h.peopleGroups.get(k||"__unknown__");p||(p={code:k,label:x,count:0,pop:0,memberIds:[],instances:[]},h.peopleGroups.set(k||"__unknown__",p)),p.count+=1,p.pop+=g,p.memberIds.push(m),p.instances.push({id:m,name:v,country:y,pop:g})}return s}),o=r=>r&&r.length?["in",["get","uniqueId"],["literal",r]]:["==",["get","uniqueId"],"__none__"],n=Q(()=>{const r=t.value,s=[];for(const i of r.values()){const l=hA(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const f={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const b of u.peopleGroups.values()){const k={id:`pg:${i.code}__${u.code}__${b.code||b.label}`,label:`${b.label} (PG)`,color:l,count:b.count,pop:b.pop,filter:o(b.memberIds),children:[]};b.instances.sort((x,m)=>m.pop-x.pop||x.country.localeCompare(m.country));for(const x of b.instances)k.children.push({id:`pgic:${x.id}`,label:`${x.country?`${x.name}, ${x.country}`:x.name} (PGIC)`,color:l,count:1,pop:x.pop,filter:["==",["get","uniqueId"],x.id],children:[]});f.children.push(k)}f.children.sort((b,k)=>k.count-b.count||k.pop-b.pop),c.children.push(f)}c.children.sort((u,f)=>f.count-u.count||f.pop-u.pop),s.push(c)}return s.sort((i,l)=>l.count-i.count||l.pop-i.pop),s});function a(r){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!r){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const s=String(r.id||""),i={kind:null,label:r.label,filterExpr:r.filter};s.startsWith("bloc:")?i.kind="bloc":s.startsWith("cluster:")?i.kind="cluster":s.startsWith("pg:")?i.kind="people-group":s.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}const CA={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},EA="#95a5a6";function $A(e){return CA[String(e||"").toLowerCase()]||EA}function TA(e){return(e==null?void 0:e.properties)||e||{}}function PA(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function NA(e){var t,o;return String(e.doxaRegion||e.wagfRegion||((o=(t=e._raw)==null?void 0:t.wagf_region)==null?void 0:o.value)||"").trim()}function MA(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_region;return String(e.wagfRegionLabel||e.doxaRegionLabel||(t&&typeof t=="object"?t.label:"")||e.doxaRegion||"").trim()}function IA(e){var t,o;return String(e.wagfBlock||((o=(t=e._raw)==null?void 0:t.wagf_block)==null?void 0:o.value)||"").trim()}function RA(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_block;return String(e.wagfBlockLabel||(t&&typeof t=="object"?t.label:"")||e.wagfBlock||"").trim()}function FA(e){var t,o;return String(e.countryIso||((o=(t=e._raw)==null?void 0:t.country_code)==null?void 0:o.value)||"").trim().toUpperCase()}function OA(e){var o;const t=(o=e._raw)==null?void 0:o.country_code;return String(e.countryIsoLabel||(t&&typeof t=="object"?t.label:"")||e.countryIso||"").trim()}function _g(e){const t=Q(()=>{const a=e&&e.value||[],r=new Map;for(const s of a){const i=TA(s),l=NA(i),c=MA(i)||l||"— Unknown —",u=IA(i),f=RA(i)||u||"— Unknown —",b=FA(i),k=OA(i)||b||"— Unknown —",x=PA(i);if(!l||l==="na"||l==="none")continue;let m=r.get(l);if(m||(m={slug:l,label:c,count:0,pop:0,blocks:new Map},r.set(l,m)),m.count+=1,m.pop+=x,!u||u==="na")continue;let v=m.blocks.get(u);if(v||(v={slug:u,label:f,count:0,pop:0,countries:new Map},m.blocks.set(u,v)),v.count+=1,v.pop+=x,!b)continue;let g=v.countries.get(b);g||(g={iso:b,name:k,count:0,pop:0},v.countries.set(b,g)),g.count+=1,g.pop+=x}return r}),o=Q(()=>{const a=t.value,r=[];for(const s of a.values()){const i=$A(s.slug),l=[],c=[],u=[...s.blocks.values()].sort((f,b)=>b.pop-f.pop||f.label.localeCompare(b.label));for(const f of u){const b=[],k=[],x=[...f.countries.values()].sort((m,v)=>v.pop-m.pop||m.name.localeCompare(v.name));for(const m of x)b.push(m.iso),l.push(m.iso),k.push({id:`country:${s.slug}__${f.slug}__${m.iso}`,label:m.name,color:i,count:m.count,pop:m.pop,filter:["==",["get","countryIso"],m.iso],isoCodes:[m.iso],children:[]});c.push({id:`block:${s.slug}__${f.slug}`,label:`${f.label} (Bloc)`,color:i,count:f.count,pop:f.pop,filter:["==",["get","wagfBlock"],f.slug],isoCodes:b,children:k})}r.push({id:`region:${s.slug}`,label:`${s.label} (Region)`,color:i,count:s.count,pop:s.pop,filter:["==",["get","doxaRegion"],s.slug],isoCodes:[...new Set(l)],children:c})}return r.sort((s,i)=>i.pop-s.pop||s.label.localeCompare(i.label)),r});function n(a){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!a){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(a.id||""),s={kind:null,label:a.label,filterExpr:a.filter};r.startsWith("region:")?s.kind="region":r.startsWith("block:")?s.kind="block":r.startsWith("country:")&&(s.kind="country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:s}))}return{aggregated:t,regionsTree:o,highlight:n}}const DA=["onClick"],BA={key:0,class:"rm-tab-sep","aria-hidden":"true"},GA={class:"rm-map-area"},jA={key:0,class:"rm-loading"},zA={key:1,class:"rm-error"},UA={class:"rm-legend-desktop-slot"},KA={class:"rm-legend-mobile-slot"},HA=!0,xg="doxa-regions",VA=22,qA=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"countries-map",setup(e){var Zg,Qg,ef,tf,of,nf,af,rf;let t=null,o=null;function n(I,G){if(I!=null&&I.getLayer("language-family-pins-hitbox"))try{I.setFilter("language-family-pins-hitbox",G)}catch{}}function a(){return t||(t=qt(()=>Promise.resolve().then(()=>XS),void 0).then(I=>I.useMapPoster({sourceMap:()=>ue.value,mapboxToken:c.value,styleUrl:()=>{var G,J,se,_e;return((se=(J=(G=ue.value)==null?void 0:G.getStyle())==null?void 0:J.sprite)==null?void 0:se.replace(/\/sprite.*$/,""))||((_e=l==null?void 0:l.value)==null?void 0:_e.style)}}))),t}const r=La(()=>qt(()=>Promise.resolve().then(()=>Ag),void 0)),s=La(()=>qt(()=>Promise.resolve().then(()=>Bx),void 0)),i=La(()=>qt(()=>Promise.resolve().then(()=>T2),void 0));mt(` +`,"semantic-tree-legend"),(P,Y)=>{var ge,xe,Se,Fe;return V(),ae(Ie,null,[C("div",{class:$e(["stl-panel",{closed:!S.value,"fit-content":e.hideTabs}]),"data-theme":((ge=de(i))==null?void 0:ge.theme.value)||"dark"},[C("div",zw,[C("div",{class:$e(["stl-titlebar",{"has-progress":!!c.value}])},[C("span",Uw,[Fo(P.$slots,"title-caret",{},void 0,!0)]),P.$slots["title-caret"]?ve("",!0):(V(),ae("button",{key:0,class:$e(["stl-collapse-btn",{closed:!S.value}]),title:S.value?"Collapse legend":"Expand legend",onClick:Y[0]||(Y[0]=Ne=>{S.value=!S.value,s("update:open",S.value)})},[...Y[8]||(Y[8]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,Kw)),K.value&&E.value?(V(),ae(Ie,{key:1},[C("span",Hw,he(K.value.tabName),1),C("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"])},[Y[9]||(Y[9]=C("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[C("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?(V(),ae("span",{key:0,class:"stl-tb-dot",style:Xe({background:K.value.node.color})},null,4)):ve("",!0),C("span",{class:"stl-tb-text",title:K.value.node.label},he(K.value.node.label),9,qw)],8,Vw)],64)):(V(),ae("span",Ww,he(u.value),1)),ve("",!0),c.value?(V(),Ge(cg,{key:4,class:"stl-progress","show-text":!1,covered:c.value.covered,total:c.value.total,segments:c.value.segments,"is-dark":f.value,"fmt-count":fe,onSelectSegment:k},null,8,["covered","total","segments","is-dark"])):ve("",!0)],2),e.hideTabs?ve("",!0):(V(),ae("div",Yw,[C("div",Xw,[(V(!0),ae(Ie,null,yt(p.value,(Ne,pt)=>(V(),ae("div",{key:Ne.id,class:$e(["stl-tab-chip",{active:M.value===pt}])},[C("button",{class:"stl-tab",onClick:Ke=>ne(pt)},he(a(Ne)),9,Jw),Ne.info?(V(),ae("button",{key:0,class:"stl-tab-info",title:Ne.info,onClick:Ke=>A(pt,Ke)},"i",8,Zw)):ve("",!0)],2))),128))]),z.value!==null&&((xe=p.value[z.value])!=null&&xe.info)?(V(),ae("div",Qw,he(p.value[z.value].info),1)):ve("",!0)])),C("div",eA,[Y[13]||(Y[13]=C("span",{class:"stl-caret-sp"},null,-1)),Y[14]||(Y[14]=C("span",{class:"stl-dot-sp"},null,-1)),C("span",tA,he(e.columnLabel||(e.hideTabs?e.title:a(p.value[M.value])||de(o)("legend.columns.name"))),1),$.value?(V(),ae("button",{key:0,class:$e(["stl-hdr-num",{active:O.value==="count"}]),title:de(o)("legend.sortByUpgs"),onClick:Y[4]||(Y[4]=Ne=>oe("count"))},[gt(he(de(o)("legend.columns.upgs"))+" ",1),O.value==="count"?(V(),ae("span",nA,he(D.value==="desc"?"▼":"▲"),1)):ve("",!0)],10,oA)):ve("",!0),F.value?(V(),ae("button",{key:1,class:$e(["stl-hdr-num",{active:O.value==="pop"}]),title:de(o)("legend.sortByPop"),onClick:Y[5]||(Y[5]=Ne=>oe("pop"))},[gt(he(de(o)("legend.columns.population"))+" ",1),O.value==="pop"?(V(),ae("span",rA,he(D.value==="desc"?"▼":"▲"),1)):ve("",!0)],10,aA)):ve("",!0),Y[15]||(Y[15]=C("span",{class:"stl-x-slot"},null,-1))]),C("div",{class:$e(["stl-rows",{"has-sel":Le.value}]),ref_key:"rowsContainer",ref:N},[(V(!0),ae(Ie,null,yt(me.value,Ne=>{var pt,Ke;return V(),ae("div",{key:Ne.node.id,class:$e(["stl-row",Z(Ne)]),"data-stl-node-id":Ne.node.id,style:Xe({"--trunk-color":((pt=Ne.parent)==null?void 0:pt.color)||"#6e7681","--row-color":Ne.node.color||"#73A17F"}),onClick:He=>te(Ne.node)},[(V(!0),ae(Ie,null,yt(Ne.trunks,(He,sa)=>(V(),ae("span",{key:`tr${sa}`,class:$e(["stl-trunk",`stl-trunk-${He}`])},null,2))),128)),(Ke=Ne.node.children)!=null&&Ke.length?(V(),ae("button",{key:0,class:$e(["stl-caret",{open:L.value.has(Ne.node.id)}]),onClick:dt(He=>U(Ne.node.id,He),["stop"])},[...Y[16]||(Y[16]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,iA)):(V(),ae("span",lA)),Ne.node.color?(V(),ae("span",{key:2,class:"stl-dot",style:Xe({background:Ne.node.color})},null,4)):(V(),ae("span",cA)),C("span",uA,he(Ne.node.label),1),$.value?(V(),ae("span",dA,he(fe(Ne.node.count)),1)):ve("",!0),F.value?(V(),ae("span",pA,he(be(Ne.node.pop)),1)):ve("",!0),C("span",gA,[T.value===Ne.node.id?(V(),ae("button",{key:0,class:"stl-x-chip",title:"Clear selection",onClick:Y[6]||(Y[6]=dt(He=>w(He),["stop"]))},[...Y[17]||(Y[17]=[C("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])):ve("",!0)])],14,sA)}),128)),pe.value&&!me.value.length?(V(),ae("div",fA,[Y[18]||(Y[18]=C("span",{class:"stl-spinner"},null,-1)),C("span",null,"Loading "+he(((Se=p.value[M.value])==null?void 0:Se.label)||"rows")+"…",1)])):!me.value.length&&e.nodes.length===0?(V(),ae("div",hA,"Loading data…")):me.value.length?ve("",!0):(V(),ae("div",mA,"No data at this level")),ie.value>0?(V(),ae("div",bA,[gt(" Showing top "+he(p.value[M.value].topLimit.toLocaleString())+" of "+he(Ee.value.length.toLocaleString())+" — ",1),Y[19]||(Y[19]=C("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):ve("",!0)],2)])],10,jw),S.value?ve("",!0):(V(),ae("button",{key:0,class:"stl-reopen","data-theme":((Fe=de(i))==null?void 0:Fe.theme.value)||"dark",title:"Expand legend",onClick:Y[7]||(Y[7]=Ne=>{S.value=!0,s("update:open",!0)})},[Y[20]||(Y[20]=C("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),C("span",vA,[E.value?(V(),ae(Ie,{key:0},[E.value.color?(V(),ae("span",{key:0,class:"stl-reopen-dot",style:Xe({background:E.value.color})},null,4)):ve("",!0),gt(" "+he(E.value.label),1)],64)):(V(),ae(Ie,{key:1},[gt(he(u.value),1)],64))]),Y[21]||(Y[21]=C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,yA))],64)}}},[["styles",[Gw]],["__scopeId","data-v-78a7a96e"]]),_A="#6b7280";function xA(){const e=wo(Xn.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function kA(e,t){const o=xA();return e&&o[e]?o[e]:_A}function wA(e){return(e==null?void 0:e.properties)||e||{}}function Ll(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function AA(e){var t;return String(e.affinityBlock||Ll((t=e._raw)==null?void 0:t.rop1)||"").trim()}function SA(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function LA(e){var t;return String(e.cluster||Ll((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function CA(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function $A(e){var t;return String(e.peopleGroup||Ll((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function EA(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function TA(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function PA(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function NA(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function MA(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function vg(e){const t=Q(()=>{const r=e&&e.value||[],s=new Map;for(const i of r){const l=wA(i),c=AA(l),u=SA(l)||c||"— Unknown —",f=LA(l),b=CA(l)||f||"— Unknown —",k=$A(l),x=EA(l)||k||"— Unknown —",m=TA(l),v=PA(l)||m,g=NA(l),y=MA(l);if(!m)continue;let d=s.get(c||"__unknown__");d||(d={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},s.set(c||"__unknown__",d)),d.count+=1,d.pop+=g,d.memberIds.push(m);let h=d.clusters.get(f||"__unknown__");h||(h={code:f,label:b,count:0,pop:0,memberIds:[],peopleGroups:new Map},d.clusters.set(f||"__unknown__",h)),h.count+=1,h.pop+=g,h.memberIds.push(m);let p=h.peopleGroups.get(k||"__unknown__");p||(p={code:k,label:x,count:0,pop:0,memberIds:[],instances:[]},h.peopleGroups.set(k||"__unknown__",p)),p.count+=1,p.pop+=g,p.memberIds.push(m),p.instances.push({id:m,name:v,country:y,pop:g})}return s}),o=r=>r&&r.length?["in",["get","uniqueId"],["literal",r]]:["==",["get","uniqueId"],"__none__"],n=Q(()=>{const r=t.value,s=[];for(const i of r.values()){const l=kA(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const f={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const b of u.peopleGroups.values()){const k={id:`pg:${i.code}__${u.code}__${b.code||b.label}`,label:`${b.label} (PG)`,color:l,count:b.count,pop:b.pop,filter:o(b.memberIds),children:[]};b.instances.sort((x,m)=>m.pop-x.pop||x.country.localeCompare(m.country));for(const x of b.instances)k.children.push({id:`pgic:${x.id}`,label:`${x.country?`${x.name}, ${x.country}`:x.name} (PGIC)`,color:l,count:1,pop:x.pop,filter:["==",["get","uniqueId"],x.id],children:[]});f.children.push(k)}f.children.sort((b,k)=>k.count-b.count||k.pop-b.pop),c.children.push(f)}c.children.sort((u,f)=>f.count-u.count||f.pop-u.pop),s.push(c)}return s.sort((i,l)=>l.count-i.count||l.pop-i.pop),s});function a(r){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!r){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const s=String(r.id||""),i={kind:null,label:r.label,filterExpr:r.filter};s.startsWith("bloc:")?i.kind="bloc":s.startsWith("cluster:")?i.kind="cluster":s.startsWith("pg:")?i.kind="people-group":s.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}const IA={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},RA="#95a5a6";function FA(e){return IA[String(e||"").toLowerCase()]||RA}function OA(e){return(e==null?void 0:e.properties)||e||{}}function DA(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function BA(e){var t,o;return String(e.doxaRegion||e.wagfRegion||((o=(t=e._raw)==null?void 0:t.wagf_region)==null?void 0:o.value)||"").trim()}function GA(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_region;return String(e.wagfRegionLabel||e.doxaRegionLabel||(t&&typeof t=="object"?t.label:"")||e.doxaRegion||"").trim()}function jA(e){var t,o;return String(e.wagfBlock||((o=(t=e._raw)==null?void 0:t.wagf_block)==null?void 0:o.value)||"").trim()}function zA(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_block;return String(e.wagfBlockLabel||(t&&typeof t=="object"?t.label:"")||e.wagfBlock||"").trim()}function UA(e){var t,o;return String(e.countryIso||((o=(t=e._raw)==null?void 0:t.country_code)==null?void 0:o.value)||"").trim().toUpperCase()}function KA(e){var o;const t=(o=e._raw)==null?void 0:o.country_code;return String(e.countryIsoLabel||(t&&typeof t=="object"?t.label:"")||e.countryIso||"").trim()}function _g(e){const t=Q(()=>{const a=e&&e.value||[],r=new Map;for(const s of a){const i=OA(s),l=BA(i),c=GA(i)||l||"— Unknown —",u=jA(i),f=zA(i)||u||"— Unknown —",b=UA(i),k=KA(i)||b||"— Unknown —",x=DA(i);if(!l||l==="na"||l==="none")continue;let m=r.get(l);if(m||(m={slug:l,label:c,count:0,pop:0,blocks:new Map},r.set(l,m)),m.count+=1,m.pop+=x,!u||u==="na")continue;let v=m.blocks.get(u);if(v||(v={slug:u,label:f,count:0,pop:0,countries:new Map},m.blocks.set(u,v)),v.count+=1,v.pop+=x,!b)continue;let g=v.countries.get(b);g||(g={iso:b,name:k,count:0,pop:0},v.countries.set(b,g)),g.count+=1,g.pop+=x}return r}),o=Q(()=>{const a=t.value,r=[];for(const s of a.values()){const i=FA(s.slug),l=[],c=[],u=[...s.blocks.values()].sort((f,b)=>b.pop-f.pop||f.label.localeCompare(b.label));for(const f of u){const b=[],k=[],x=[...f.countries.values()].sort((m,v)=>v.pop-m.pop||m.name.localeCompare(v.name));for(const m of x)b.push(m.iso),l.push(m.iso),k.push({id:`country:${s.slug}__${f.slug}__${m.iso}`,label:m.name,color:i,count:m.count,pop:m.pop,filter:["==",["get","countryIso"],m.iso],isoCodes:[m.iso],children:[]});c.push({id:`block:${s.slug}__${f.slug}`,label:`${f.label} (Bloc)`,color:i,count:f.count,pop:f.pop,filter:["==",["get","wagfBlock"],f.slug],isoCodes:b,children:k})}r.push({id:`region:${s.slug}`,label:`${s.label} (Region)`,color:i,count:s.count,pop:s.pop,filter:["==",["get","doxaRegion"],s.slug],isoCodes:[...new Set(l)],children:c})}return r.sort((s,i)=>i.pop-s.pop||s.label.localeCompare(i.label)),r});function n(a){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!a){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(a.id||""),s={kind:null,label:a.label,filterExpr:a.filter};r.startsWith("region:")?s.kind="region":r.startsWith("block:")?s.kind="block":r.startsWith("country:")&&(s.kind="country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:s}))}return{aggregated:t,regionsTree:o,highlight:n}}const HA=["onClick"],VA={key:0,class:"rm-tab-sep","aria-hidden":"true"},qA={class:"rm-map-area"},WA={key:0,class:"rm-loading"},YA={key:1,class:"rm-error"},XA={class:"rm-legend-desktop-slot"},JA={class:"rm-legend-mobile-slot"},ZA=!0,xg="doxa-regions",QA=22,eS=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"countries-map",setup(e){var Zg,Qg,ef,tf,of,nf,af,rf;let t=null,o=null;function n(I,G){if(I!=null&&I.getLayer("language-family-pins-hitbox"))try{I.setFilter("language-family-pins-hitbox",G)}catch{}}function a(){return t||(t=qt(()=>Promise.resolve().then(()=>a2),void 0).then(I=>I.useMapPoster({sourceMap:()=>ue.value,mapboxToken:c.value,styleUrl:()=>{var G,J,se,_e;return((se=(J=(G=ue.value)==null?void 0:G.getStyle())==null?void 0:J.sprite)==null?void 0:se.replace(/\/sprite.*$/,""))||((_e=l==null?void 0:l.value)==null?void 0:_e.style)}}))),t}const r=La(()=>qt(()=>Promise.resolve().then(()=>Ag),void 0)),s=La(()=>qt(()=>Promise.resolve().then(()=>Ux),void 0)),i=La(()=>qt(()=>Promise.resolve().then(()=>H2),void 0));mt(` .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; } .mapboxgl-ctrl-geocoder { width:100%!important;max-width:100%!important;min-width:0!important;border-radius:999px!important;box-shadow:0 2px 8px rgba(0,0,0,0.15)!important;background:#fff;transition:box-shadow 0.12s,border-color 0.12s; } @@ -1349,7 +1348,7 @@ .map-scroll-edge { position:absolute;top:0;bottom:0;width:40px;z-index:2;touch-action:pan-y;pointer-events:auto;background:transparent; } .map-scroll-edge--left { left:0; } .map-scroll-edge--right { right:0; } -`,"research-map");const l=Te("profileConfig"),c=Te("mapboxToken"),u=Te("dataSource");Te("colorSet");const f=Te("instanceId",null),b=(()=>{var G;const I=(G=l==null?void 0:l.value)==null?void 0:G.locale;return I&&qi.includes(I)?I:null})(),{locale:k,t:x,te:m}=ht();b&&(k.value=b);function v(I){const G="tabs."+((I==null?void 0:I.i18nKey)||(I==null?void 0:I.id));return I&&m(G)?x(G):(I==null?void 0:I.label)??""}const g=Te("mapStore"),y=Te("dataStore"),d=Te("uiStore"),h=cv(d),p={doxaRegions:!0,adoption:!1,share:!0,hamburgerMenu:!1,geocoderPersistAcrossTabs:!1},L=[{id:"doxa-regions",label:"Countries",colorStrategy:"doxaRegion",legend:"doxa-regions",popup:"pray",feature:"doxaRegions"}].filter(I=>!I.feature||p[I.feature]),R=Q(()=>L),S=Q(()=>!1),z=le(xg),j=Q(()=>R.value.find(I=>I.id===z.value)??R.value[0]),O=Q(()=>{var I;return((I=j.value)==null?void 0:I.legend)??"default"}),D=Q(()=>{var I;return((I=j.value)==null?void 0:I.popup)??"pray"}),M=Q(()=>{var I,G,J,se;return((I=j.value)==null?void 0:I.id)==="language-families"?"Search language family, language, dialect/variety":((G=j.value)==null?void 0:G.id)==="affinity-blocks"?"Search affinity bloc, cluster, people group":((J=j.value)==null?void 0:J.id)==="doxa-regions"?"Search region, country, people group":((se=j.value)==null?void 0:se.id)==="religion"?"Search religion, people group":""}),$={"affinity-blocks":"people-groups",prayer:"people-groups",adoption:"people-groups",engagement:"people-groups","language-families":"language","doxa-regions":"regions",religion:"religion"},T=Q(()=>{var I;return $[(I=j.value)==null?void 0:I.id]||""}),N=(f==null?void 0:f.value)||f||"research-map-"+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8);St("mapId",N);const q=le(null),ce=le(null),ee=le(null),oe=new Map;De(()=>z==null?void 0:z.value,async(I,G)=>{var se,_e,ze,Je,rt;if(G!==void 0&&I!==G){G&&oe.set(G,d.legendState);const st=oe.get(I)||(d.isMobile?"collapsed":"open");st==="fullyOpen"?(se=d.fullyOpenLegend)==null||se.call(d):st==="open"?(_e=d.openLegend)==null||_e.call(d):(ze=d.collapseLegend)==null||ze.call(d)}await jt();const J=(Je=ce.value)==null?void 0:Je.querySelector(".rm-tab.active");(rt=J==null?void 0:J.scrollIntoView)==null||rt.call(J,{inline:"center",block:"nearest",behavior:"smooth"})});const H=le(null),pe=le(!1),we=le(null),{map:ue,initializeMap:$e,destroy:Ae}=Wv({containerRef:H,accessToken:c.value,style:((Zg=l==null?void 0:l.value)==null?void 0:Zg.style)??h.bootStyle(),config:h.bootConfig,center:((Qg=l==null?void 0:l.value)==null?void 0:Qg.center)??io.center??[20,10],zoom:((ef=l==null?void 0:l.value)==null?void 0:ef.zoom)??io.zoom??1.8,pitch:((tf=l==null?void 0:l.value)==null?void 0:tf.pitch)??io.pitch??0,bearing:((of=l==null?void 0:l.value)==null?void 0:of.bearing)??io.bearing??0,minZoom:((nf=l==null?void 0:l.value)==null?void 0:nf.minZoom)??io.minZoom??.5,maxZoom:VA}),ie=new lg({sourcesConfig:Sn,locale:b}),ye=b_({mapId:N,dataSourceId:u.value,dataSourceManager:ie,dataStore:y,markRaw:I=>I});async function me(I){const G=String(I||"").trim().toUpperCase();if(G.length!==3)return;await tr();const J=ue.value;if(!J||!J.getLayer("regions-fill"))return;J.setLayoutProperty("regions-fill","visibility","visible"),J.setLayoutProperty("regions-border","visibility","visible");const se=["literal",[G]];J.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],se],.3,.02]),J.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],se],"#111827","rgba(60,60,80,0.15)"]),J.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],se],2.5,.3]),J.getLayer("language-family-pins")&&J.moveLayer("language-family-pins")}function Le(){var G;w.clearCountry();const I=ue.value;!I||!I.getLayer("regions-fill")||(I.setPaintProperty("regions-fill","fill-opacity",.2),I.setPaintProperty("regions-fill","fill-outline-color",null),I.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),I.setPaintProperty("regions-border","line-width",.6),((G=j.value)==null?void 0:G.id)!=="doxa-regions"&&(I.setLayoutProperty("regions-fill","visibility","none"),I.setLayoutProperty("regions-border","visibility","none")))}const E=o_({getMap:()=>ue.value,mapId:N,getLanguageFamilyColor:I=>{var J,se;const G=wo((J=j.value)==null?void 0:J.colorStrategy);return((se=G==null?void 0:G.colors)==null?void 0:se[I])??(G==null?void 0:G.fallback)??"#7c8cf8"},getNormalizedPeopleGroups:()=>ye.normalizedPeopleGroups.value||[]});Zp({getMap:()=>ue.value,mapId:N,getLanguageFamilyColor:()=>"#7c8cf8",getNormalizedPeopleGroups:()=>ye.normalizedPeopleGroups.value||[]});const F=n_({getMap:()=>ue.value,mapId:N,mapStore:g,defaultCenter:((af=l==null?void 0:l.value)==null?void 0:af.center)??[20,10],defaultZoom:((rf=l==null?void 0:l.value)==null?void 0:rf.zoom)??1.8}),B=r_({getMap:()=>ue.value,getActivePinColor:I=>{var J,se;const G=wo(((J=j.value)==null?void 0:J.colorStrategy)??"languageFamily");return((se=G==null?void 0:G.getColor)==null?void 0:se.call(G,I))??"#1a1a1a"}});let K=null,te=null;function U(){return K?Promise.resolve(K):(te||(te=qt(()=>Promise.resolve().then(()=>F2),void 0).then(I=>(K=I.useMapClustering({getMap:()=>ue.value,mapId:N,mapStore:g,getPeopleGroups:()=>ye.normalizedPeopleGroups.value||[],getClusterColor:()=>{var G,J;return((J=wo((G=j.value)==null?void 0:G.colorStrategy))==null?void 0:J.fallback)??"#7c8cf8"}}),K))),te)}const X={setData(I){var G;(G=K==null?void 0:K.setData)==null||G.call(K,I)},applyFilters(I){var G;(G=K==null?void 0:K.applyFilters)==null||G.call(K,I)},refreshColors(){var I;(I=K==null?void 0:K.refreshColors)==null||I.call(K)},cleanup(){var I;(I=K==null?void 0:K.cleanup)==null||I.call(K)},async setEnabled(I){var G,J;(J=(G=await U()).setEnabled)==null||J.call(G,I)},async setMode(I){var G,J;(J=(G=await U()).setMode)==null||J.call(G,I)},_pendingSelectionFilter:null,setSelectionFilter(I){this._pendingSelectionFilter=I||null,K!=null&&K.setSelectionFilter&&K.setSelectionFilter(I)},flushSelectionFilter(){K!=null&&K.setSelectionFilter&&K.setSelectionFilter(this._pendingSelectionFilter)}},ne=Ja({});St("legendRows",ne.rows),St("normalizedPeopleGroups",ye.normalizedPeopleGroups);const w=u_(()=>ue.value),A=Pw(N);Nw(A);const{onPeopleGroupResult:W,onAggregateResult:re,onClear:be,clearGeocoderProgrammatic:fe}=y_({map:ue,geocoderRef:ee,clustering:X,mapStore:g,uiStore:d,mapLayers:E,pplrInstance:A,onSemanticTreeSelect:ia,switchTab:ms,activeTabId:z,clearAllHighlights:bs,clearCountryHighlight:Le,mapId:N,legendRouters:{country:nL,region:oL,religion:tL}});A.activeTab.value=2;function Z(I){return I==="doxa-regions"?2:I==="affinity-block"?0:I==="language-family"?1:0}De(O,I=>{A.activeTab.value=Z(I)});const P={get value(){return ye.normalizedPeopleGroups.value||[]}},{langTree:Y}=vl(P),ge=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor (e.g. Indo-European, Afro-Asiatic)."},{id:"language",label:"Language",info:"A language is a system of communication used by a people (e.g. Arabic, Bengali, Hindi)."},{id:"dialect",label:"Dialect/Variety",info:"A dialect/variety is a regional or social form of a language (e.g. Arabic, Sudanese; Pakistan Sign Language)."}],{affinityTree:xe}=vg(P),Se=[{id:"bloc",label:"Affinity Block",info:"Affinity Block (field: rop1) — broadest grouping by cultural/linguistic/geographic kinship. 16 blocks total. Examples: Malay Peoples, South Asian Peoples, Deaf, Arab World."},{id:"cluster",label:"Cluster",info:'Cluster (field: imb_reg_of_people_2, ROP 2) — finer-grained grouping inside a bloc. 194 clusters total. Suffix "(Cluster)" appears on each row to distinguish from PG/PGIC. Example: Borneo-Kalimantan within Malay Peoples.'},{id:"group",label:"People Group",info:'People Group (field: imb_reg_of_people_25, ROP 2.5) — abstract ethnolinguistic identity, country-agnostic. Suffix "(PG)" on each row. 1,736 PGs total; 131 of them have rows in multiple countries (e.g. Deaf in 123 countries). Example: Abai Sungai (PG) is one ROP25 code regardless of where its people live.'},{id:"pgic",label:"PG in Country",info:'PGIC = People Group In Country (field: imb_reg_of_people_3 + country_code) — one row per (people group, country) pair. Suffix "(PGIC)" on each row. 2,106 rows total. Example: "Abai Sungai, Malaysia (PGIC)" is the Abai Sungai PG specifically as it exists in Malaysia.'}],{regionsTree:Fe}=_g(P),Ne=[{id:"region",label:"WAGF Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"WAGF Bloc",info:'WAGF bloc — the organizational sub-grouping within each region (e.g. "South East Asia", "West Africa").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],pt=Ja(wr(()=>O.value),ds);function Ke(I){const G=[];for(const J of I){G.push({id:J.key,label:J.label,color:J.color,count:J.count??0,pop:J.population??0,filter:J.filterKey?["==",["get","_flat_filter"],J.filterKey]:null,children:[]});for(const se of J.children||[])G.push({id:se.key,label:se.label,color:se.color,count:se.count??0,pop:se.population??0,filter:se.filterKey?["==",["get","_flat_filter"],se.filterKey]:null,children:[]})}return G}const He=Q(()=>["prayer","engagement","adoption","religion"].includes(O.value)),sa=Q(()=>He.value?Ke(pt.items.value):O.value==="affinity-block"?xe.value:O.value==="doxa-regions"?Fe.value:Y.value),fs=Q(()=>He.value?null:O.value==="affinity-block"?Se:O.value==="doxa-regions"?Ne:ge),V2=Q(()=>He.value),q2=Q(()=>O.value==="religion"?x("legend.colLabel.religion"):O.value==="prayer"?x("legend.colLabel.prayer"):O.value==="engagement"?x("legend.colLabel.engagement"):O.value==="adoption"?x("legend.colLabel.adoption"):He.value?x("legend.colLabel.status"):""),W2=Q(()=>d.legendState!=="collapsed");function Y2(I){I?d.openLegend():d.collapseLegend()}const Kg=Q(()=>He.value?x("legend.titleBar.legend"):O.value==="affinity-block"?x("legend.titleBar.peopleGroups"):O.value==="doxa-regions"?x("legend.titleBar.wagfRegions"):x("legend.titleBar.languages"));function Tn(I,G){var J;for(const se of I){if(G(se))return se;if((J=se.children)!=null&&J.length){const _e=Tn(se.children,G);if(_e)return _e}}return null}St("onSemanticTreeSelect",I=>ia(I)),St("getActivePinColor",I=>{var J,se;const G=wo(((J=j.value)==null?void 0:J.colorStrategy)??"languageFamily");return((se=G==null?void 0:G.getColor)==null?void 0:se.call(G,I))??"#1a1a1a"});function X2(I,G){if(!I||!G)return null;const J=I.id;if(G==="prayer"){const se=["to-number",["get","peoplePraying"]];if(J==="noPrayer")return["==",se,0];if(J==="fullPrayer")return[">=",se,ko];if(J==="hasPrayer")return["all",[">",se,0],["<",se,ko]]}else if(G==="engagement"){if(J==="hasEngagement")return["==",["get","engagementStatus"],!0];if(J==="notEngaged")return["==",["get","engagementStatus"],!1]}else if(G==="adoption"){if(J==="hasAdoption")return["==",["get","adoptionStatus"],!0];if(J==="notAdopted")return["==",["get","adoptionStatus"],!1]}else if(G==="religion")return["==",["slice",["coalesce",["get","religion"],""],0,1],J];return null}function ia(I){var se,_e,ze,Je,rt,st,_t,pn;const G=ue.value;if(I){const tt=He.value?X2(I,O.value):null,Ue=((se=j.value)==null?void 0:se.id)==="doxa-regions",wt=tt?{matchExpr:tt}:{};Ue&&(wt.regionPolygonSource="regions"),(_e=F.zoomToLegendRow)==null||_e.call(F,I,Object.keys(wt).length?wt:void 0)}if(!I){if(He.value){const tt=O.value;tt==="prayer"?d.setPrayerFilter(null):tt==="engagement"?d.setEngagementFilter(null):tt==="adoption"?d.setAdoptionFilter(null):tt==="religion"&&d.setReligionFilter(null)}if(G&&G.getLayer("language-family-pins")){try{G.setFilter("language-family-pins",null)}catch{}n(G,null),G.setPaintProperty("language-family-pins","circle-opacity",1),G.setPaintProperty("language-family-pins","circle-stroke-opacity",1),G.getLayer("language-family-pins-shadow")&&G.setPaintProperty("language-family-pins-shadow","circle-opacity",1),E.syncGlowFilter(null)}G&&G.getLayer("regions-fill")&&(G.setPaintProperty("regions-fill","fill-opacity",.7),G.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),G.setPaintProperty("regions-border","line-width",.6)),g.selectedFamily&&g.selectFamily(null),g.selectedLanguage&&g.selectLanguage(null),g.selectedDialect&&((ze=g.selectDialect)==null||ze.call(g,null)),g.selectedRegion&&((Je=g.selectRegion)==null||Je.call(g,null)),fe();return}if(He.value){const tt=O.value;tt==="prayer"?d.setPrayerFilter(I.id):tt==="engagement"?d.setEngagementFilter(I.id):tt==="adoption"?d.setAdoptionFilter(I.id):tt==="religion"&&d.setReligionFilter(I.id);return}if(G&&G.getLayer("language-family-pins")&&I.filter){try{G.setFilter("language-family-pins",I.filter)}catch{}n(G,I.filter),G.setPaintProperty("language-family-pins","circle-opacity",1),G.setPaintProperty("language-family-pins","circle-stroke-opacity",1),E.syncGlowFilter(I.filter)}const J=String(I.id||"");if(J.startsWith("fam:"))(rt=g.selectFamily)==null||rt.call(g,I.label);else if(J.startsWith("lang:"))(st=g.selectLanguage)==null||st.call(g,I.label);else if(J.startsWith("dial:"))(_t=g.selectDialect)==null||_t.call(g,{key:J.slice(5),originalLabels:I.originalLabels||[]});else if(J.startsWith("bloc:")||J.startsWith("cluster:")||J.startsWith("pg:")||J.startsWith("pgic:")){if(G&&G.getLayer("language-family-pins")&&I.filter){try{G.setFilter("language-family-pins",null)}catch{}n(G,I.filter),G.setPaintProperty("language-family-pins","circle-opacity",["case",I.filter,1,0]),G.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",I.filter,1,0]),G.getLayer("language-family-pins-shadow")&&G.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",I.filter,1,0]),E.syncGlowFilter(I.filter)}}else if(J.startsWith("region:")||J.startsWith("block:")||J.startsWith("country:")){if(G&&G.getLayer("language-family-pins")&&I.filter){try{G.setFilter("language-family-pins",I.filter)}catch{}n(G,I.filter),G.setPaintProperty("language-family-pins","circle-opacity",1),G.setPaintProperty("language-family-pins","circle-stroke-opacity",1)}if(J.startsWith("region:")&&((pn=g.selectRegion)==null||pn.call(g,J.slice(7))),G&&G.getLayer("regions-fill")){const tt=I.isoCodes||[];if(tt.length){const Ue=["literal",tt];G.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],Ue],.85,.15]),G.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],Ue],"#111827","rgba(60,60,80,0.15)"]),G.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],Ue],2.5,.3])}else G.setPaintProperty("regions-fill","fill-opacity",.7),G.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),G.setPaintProperty("regions-border","line-width",.6)}}}De(()=>d.theme,I=>{A.theme.value=I==="dark"?"dark":"light"},{immediate:!0});function dn(I,G){var se,_e;if(!G){const ze=A.selection.value;ze&&((se=ze.id)!=null&&se.startsWith(I+":"))&&(A.selection.value=null);return}const J=A.selection.value;J&&((_e=J.id)!=null&&_e.startsWith(I+":"))&&J.label===G.label||(A.selection.value=G)}De(()=>g.selectedFamily,I=>{if(!I)return dn("fam",null);const G=Tn(Y.value,J=>J.id.startsWith("fam:")&&J.label===I);G&&dn("fam",{...G,depth:0})}),De(()=>g.selectedLanguage,I=>{if(!I)return dn("lang",null);const G=Tn(Y.value,J=>J.id.startsWith("lang:")&&J.label===I);G&&dn("lang",{...G,depth:1})}),De(()=>g.selectedDialect,I=>{if(!(I!=null&&I.key))return dn("dial",null);const G=`dial:${I.key}`,J=Tn(Y.value,se=>se.id===G);J&&dn("dial",{...J,depth:2})}),De(()=>g.selectedRegion,I=>{if(!I)return dn("region",null);const G=Tn(Fe.value,J=>J.id===`region:${I}`);G&&dn("region",{...G,depth:0})});const hs=le(null);async function Hg(){hs.value||(hs.value=await a()),Nl.value=!0}function J2(I){if(I==="poster")return Hg();if(I==="packet")return Q2()}let Pl=!1;function Z2(I,G){const J=URL.createObjectURL(I),se=document.createElement("a");se.href=J,se.download=G,document.body.appendChild(se),se.click(),se.remove(),setTimeout(()=>URL.revokeObjectURL(J),1e3)}async function Q2(){var I;if(!Pl){Pl=!0;try{o||(o=qt(()=>Promise.resolve().then(()=>H2),void 0).then(Je=>Je.useMapPacket(()=>ue.value)));const G=await o;let J=ye.normalizedPeopleGroups.value||[];J.length>50&&(console.warn(`[research-map] packet export truncated ${J.length} → 50 people groups`),J=J.slice(0,50));const{defaultPosterSpec:se}=await qt(async()=>{const{defaultPosterSpec:Je}=await Promise.resolve().then(()=>BS);return{defaultPosterSpec:Je}},void 0),_e=se({widthIn:8.27,heightIn:11.69,dpi:150,orientation:"portrait"});_e.slots.title={..._e.slots.title,text:Kg.value||"Doxa Map"},_e.slots.legend={..._e.slots.legend,rows:((I=ne==null?void 0:ne.rows)==null?void 0:I.value)||[]};const ze=await G.renderPacket(_e,J,{source:"pray.doxa.life",date:new Date().toISOString().slice(0,10)});Z2(ze,"packet.pdf")}catch(G){console.error("[research-map] packet export failed:",G)}finally{Pl=!1}}}const Vg=le(!1),Nl=le(!1),qg=Q(()=>g.selectedFeature),Ht=Q(()=>d.isDarkTheme),Ml=Q(()=>Lp.lightPreset==="night");function Il(){var J;const I=ue.value;if(!I||!I.getLayer("language-family-pins"))return;const G=Ml.value?"#ffffff":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"];I.setPaintProperty("language-family-pins","circle-stroke-color",G),I.setPaintProperty("language-family-pins","circle-stroke-width",Ml.value?Qv((J=j.value)==null?void 0:J.colorStrategy):Qp)}De(Ml,Il,{immediate:!1}),De(()=>{var I;return(I=j.value)==null?void 0:I.id},Il),De(()=>d.theme,()=>h.applyTheme(ue.value));function eL(){h.swapTheme(ue.value)}const Wg=le(!1);let er=null;async function tr(){if(!Wg.value)return er||(er=(async()=>{var I,G,J;try{const se=await((I=ye.loadRegionsData)==null?void 0:I.call(ye));se&&ue.value&&((G=E.addRegionsLayer)==null||G.call(E,se,"doxa-regions"),ue.value.getLayer("regions-fill")&&((J=j.value)==null?void 0:J.id)!=="doxa-regions"&&(ue.value.setLayoutProperty("regions-fill","visibility","none"),ue.value.setLayoutProperty("regions-border","visibility","none")),ue.value.getLayer("language-family-pins")&&ue.value.moveLayer("language-family-pins")),Wg.value=!0,ye.regionsData.value=null}catch(se){console.warn("[research-map] regions layer failed:",se)}finally{er=null}})(),er)}function ms(I){var se,_e,ze;if(I===z.value)return;z.value=I,(se=d.setActiveTab)==null||se.call(d,I),fe();const G=R.value.find(Je=>Je.id===I);if(!G||!ue.value)return;h.applyTheme(ue.value),G.id==="doxa-regions"&&tr();const J=wo(G.colorStrategy);if(ue.value.getLayer("language-family-pins")&&(J!=null&&J.buildColorExpression)){const Je=G.id==="doxa-regions"?"#a30000":J.buildColorExpression();ue.value.setPaintProperty("language-family-pins","circle-color",Je),bs(ue.value),G.id==="prayer"?E.startPrayerGlow():E.stopPrayerGlow();const rt=G.id==="doxa-regions";ue.value.getLayer("regions-fill")&&(ue.value.setLayoutProperty("regions-fill","visibility",rt?"visible":"none"),ue.value.setLayoutProperty("regions-border","visibility",rt?"visible":"none")),ue.value.getLayer("language-family-pins")&&ue.value.moveLayer("language-family-pins")}(_e=ne.refresh)==null||_e.call(ne),(ze=X.refreshColors)==null||ze.call(X)}function Yg(I){var J,se;const G=I==null?void 0:I.detail;!G||G.mapId!==N||(G.center&&Array.isArray(G.center)?(J=F.flyToCoords)==null||J.call(F,{longitude:G.center[0],latitude:G.center[1]},G.zoom??4):G.bounds&&((se=F.fitBounds)==null||se.call(F,G.bounds,60)))}function Xg(I){var st,_t,pn;const G=I==null?void 0:I.detail;if(!G||(Et(G),!((st=G.coords)!=null&&st.length)))return;const J=G.coords;if(J.length===1){(_t=F.flyToCoords)==null||_t.call(F,{longitude:J[0][0],latitude:J[0][1]},3);return}let se=1/0,_e=-1/0,ze=1/0,Je=-1/0;for(const[tt,Ue]of J)tt_e&&(_e=tt),UeJe&&(Je=Ue);const rt=G.kind==="region"?2.2:3;(pn=F.fitBounds)==null||pn.call(F,[[se,ze],[_e,Je]],60,{maxZoom:rt})}const Vt={family:null,language:null,dialect:null,region:null,prayer:null,engagement:null,adoption:null};function bs(I){I.setPaintProperty("language-family-pins","circle-opacity",1),I.setPaintProperty("language-family-pins","circle-stroke-opacity",1),I.getLayer("language-family-pins-shadow")&&I.setPaintProperty("language-family-pins-shadow","circle-opacity",1),I.setFilter("language-family-pins",null),n(I,null),E.syncGlowFilter(null),I.getLayer("regions-fill")&&(I.setPaintProperty("regions-fill","fill-opacity",.7),I.setPaintProperty("regions-fill","fill-outline-color",null)),I.getLayer("regions-border")&&(I.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),I.setPaintProperty("regions-border","line-width",.6)),Vt.family=Vt.language=Vt.dialect=Vt.region=null,Vt.prayer=Vt.engagement=Vt.adoption=null,d.prayerFilter&&d.setPrayerFilter(null),d.engagementFilter&&d.setEngagementFilter(null),d.adoptionFilter&&d.setAdoptionFilter(null),d.religionFilter&&d.setReligionFilter(null),X.setSelectionFilter(null),g.selectedFamily&&g.selectFamily(null),g.selectedLanguage&&g.selectLanguage(null),g.selectedDialect&&g.selectDialect(null);try{A&&A.selection&&A.selection.value&&(A.selection.value=null)}catch{}}let ys=null,vs=0;function Et(I){var rt,st,_t,pn,tt;const G=ue.value;if(!G||!G.getLayer("language-family-pins"))return;let J,se,_e;if(I.kind==="family")_e="family",J="languageFamily",se=I.familyKey;else if(I.kind==="language")_e="language",J="language",se=I.languageKey;else if(I.kind==="region")_e="region",J="doxaRegion",se=I.regionKey;else if(I.kind==="prayer")_e="prayer",J=I.property||"peoplePraying",se=I.expectedValue;else if(I.kind==="engagement")_e="engagement",J=I.property||"engagementStatus",se=I.expectedValue;else if(I.kind==="adoption")_e="adoption",J=I.property||"adoptionStatus",se=I.expectedValue;else if(I.kind==="religion")_e="religion",J=I.property||"religion",se=I.expectedValue;else if(I.kind==="dialect")_e="dialect",J="language",se=I.dialectKey||"";else{bs(G),fe();for(const Ue of Object.keys(Vt))Vt[Ue]=null;ys=null,vs=0;return}const ze=Date.now(),Je=`${_e}|${se}`;if(!(ys===Je&&ze-vs<80)){if(ys=Je,vs=ze,Vt[_e]===se){bs(G),fe(),ys=null,vs=0;return}for(const Ue of Object.keys(Vt))Vt[Ue]=null;if(Vt[_e]=se,_e==="family"?(rt=g.selectFamily)==null||rt.call(g,se):_e==="region"?(st=g.selectRegion)==null||st.call(g,se):_e==="language"?(_t=g.selectLanguage)==null||_t.call(g,se):_e==="dialect"&&((pn=g.selectDialect)==null||pn.call(g,{key:se,originalLabels:I.originalLabels||[]})),X.setSelectionFilter({property:J,value:se}),_e==="region"){if(G.setFilter("language-family-pins",["==",["get","doxaRegion"],se]),n(G,["==",["get","doxaRegion"],se]),G.setPaintProperty("language-family-pins","circle-opacity",1),G.setPaintProperty("language-family-pins","circle-stroke-opacity",1),G.getLayer("regions-fill")){const Ue=((tt=E.regionIsoMap)==null?void 0:tt.value)||{},wt=Pn=>String(Pn).toLowerCase().replace(/[^a-z]/g,""),rL=wt(se);let _s=Ue[se]||[];if(!_s.length){for(const[Pn,sL]of Object.entries(Ue))if(wt(Pn)===rL){_s=sL;break}}if(_s.length){const Pn=["literal",_s];G.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],Pn],.85,.15]),G.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],Pn],"#111827","rgba(60,60,80,0.15)"]),G.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],Pn],2.5,.3])}else G.setPaintProperty("regions-fill","fill-opacity",.7),G.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),G.setPaintProperty("regions-border","line-width",.6)}}else{G.setFilter("language-family-pins",null);let Ue;if(_e==="prayer"){const wt=["to-number",["get",J]];se==="noPrayer"?Ue=["==",wt,0]:se==="fullPrayer"?Ue=[">=",wt,ko]:se==="hasPrayer"?Ue=["all",[">",wt,0],["<",wt,ko]]:Ue=["==",["get",J],se]}else if(_e==="engagement")Ue=["==",["get",J],se==="hasEngagement"];else if(_e==="adoption")Ue=["==",["get",J],se==="hasAdoption"];else if(_e==="religion")Ue=["==",["slice",["coalesce",["get",J],""],0,1],se];else if(I.filterExpr)Ue=I.filterExpr;else if(_e==="language")Ue=["any",["==",["get",J],se],["==",["slice",["get",J],0,se.length+1],se+","],["in"," "+se,["get",J]]];else if(_e==="dialect"){const wt=I.originalLabels||[];wt.length===1?Ue=["==",["get",J],wt[0]]:wt.length>1?Ue=["in",["get",J],["literal",wt]]:Ue=["==",["get",J],se]}else Ue=["==",["get",J],se];G.setPaintProperty("language-family-pins","circle-opacity",["case",Ue,1,0]),G.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",Ue,1,0]),G.getLayer("language-family-pins-shadow")&&G.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",Ue,1,0]),n(G,Ue),E.syncGlowFilter(Ue),G.getLayer("regions-fill")&&(G.setPaintProperty("regions-fill","fill-opacity",.2),G.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),G.setPaintProperty("regions-border","line-width",.6))}}}function tL(I,{map:G,filterLayerId:J}){const se=I.label;try{G.setFilter(J,null)}catch{}const _e=Object.keys(Cn).find(ze=>Cn[ze]===se);if(_e){const ze={id:_e,label:se,depth:0},Je=()=>{try{G.setFilter(J,null)}catch{}ia(ze),A&&A.selection&&(A.selection.value=ze)};z.value!=="religion"&&ms("religion"),jt(Je)}}function oL(I,{map:G,filterLayerId:J}){const se=I.label,_e=st=>String(st).toLowerCase().replace(/[^a-z0-9]/g,""),ze=st=>String(st||"").replace(/\s*\((?:Region|Bloc)\)\s*$/i,""),Je=_e(se),rt=()=>{try{G.setFilter(J,null)}catch{}const st=Tn(Fe.value,_t=>(_t.id.startsWith("region:")||_t.id.startsWith("block:"))&&_e(ze(_t.label))===Je);st&&(ia(st),A&&A.selection&&(A.selection.value=st))};z.value!=="doxa-regions"?(ms("doxa-regions"),Promise.resolve(tr()).finally(()=>jt(rt))):rt()}function nL(I){var J,se,_e,ze;if(Array.isArray(I.bounds)&&I.bounds.length===4){const[Je,rt,st,_t]=I.bounds;(J=F.fitBounds)==null||J.call(F,[[Je,rt],[st,_t]],60)}else Array.isArray(I.center)&&I.center.length===2&&((se=F.flyTo)==null||se.call(F,I.center));const G=l_(I,ye.normalizedPeopleGroups.value||[]);if(G&&me(G),G&&((_e=j.value)==null?void 0:_e.id)!=="doxa-regions"&&w.showCountry(G),G&&((ze=j.value)==null?void 0:ze.id)==="doxa-regions"){const Je=()=>{const rt=Tn(Fe.value,st=>st.id.startsWith("country:")&&(st.isoCodes||[]).includes(G));rt&&(ia(rt),A&&A.selection&&(A.selection.value=rt))};Promise.resolve(tr()).finally(()=>jt(Je))}}De(()=>g.filters,()=>{var I,G;(I=E.applyFilters)==null||I.call(E,g.filters),(G=X.applyFilters)==null||G.call(X,g.filters)},{deep:!0}),De(()=>g.selectedRegion,I=>{Et(I?{kind:"region",regionKey:I}:{kind:null})}),De(()=>g.selectedFamily,I=>{I?Et({kind:"family",familyKey:I}):!g.selectedLanguage&&!g.selectedDialect&&Et({kind:null})}),De(()=>g.selectedLanguage,I=>{I?Et({kind:"language",languageKey:I}):!g.selectedFamily&&!g.selectedDialect&&Et({kind:null})}),De(()=>g.selectedDialect,I=>{I!=null&&I.key?Et({kind:"dialect",dialectKey:I.key,originalLabels:I.originalLabels||[]}):!g.selectedFamily&&!g.selectedLanguage&&Et({kind:null})}),De(()=>d.prayerFilter,I=>{Et(I?{kind:"prayer",property:"peoplePraying",expectedValue:I}:{kind:null})}),De(()=>d.engagementFilter,I=>{Et(I?{kind:"engagement",property:"engagementStatus",expectedValue:I}:{kind:null})}),De(()=>d.adoptionFilter,I=>{Et(I?{kind:"adoption",property:"adoptionStatus",expectedValue:I}:{kind:null})}),De(()=>d.religionFilter,I=>{Et(I?{kind:"religion",property:"religion",expectedValue:I}:{kind:null})}),De(()=>g.showClusters,async I=>{var G,J,se,_e;I?(await((G=X.setMode)==null?void 0:G.call(X,"mst")),(J=X.flushSelectionFilter)==null||J.call(X),await((se=X.setEnabled)==null?void 0:se.call(X,!0))):await((_e=X.setEnabled)==null?void 0:_e.call(X,!1))});async function aL(I){var G,J,se,_e,ze,Je,rt;g.registerMap(N,ue.value);try{ue.value.setProjection("mercator")}catch{}h.applyTheme(ue.value),I!=null&&I.length&&(E.addLanguageFamilyLayer(I,((G=j.value)==null?void 0:G.colorStrategy)??"languageFamily"),((J=j.value)==null?void 0:J.id)==="doxa-regions"&&((se=ue.value)!=null&&se.getLayer("language-family-pins"))&&ue.value.setPaintProperty("language-family-pins","circle-color","#4b5563"),((_e=j.value)==null?void 0:_e.id)==="prayer"&&E.startPrayerGlow(),(ze=X.setData)==null||ze.call(X,I),(Je=ne.build)==null||Je.call(ne,I),B.initialize()),((rt=j.value)==null?void 0:rt.id)==="doxa-regions"&&(typeof window<"u"&&window.requestIdleCallback?_t=>window.requestIdleCallback(_t,{timeout:2e3}):_t=>setTimeout(_t,800))(()=>{tr()}),Il(),g.setMapReady(N),pe.value=!0}let or=null;function Jg(I){const G=q.value;G&&(I>=700?(G.style.setProperty("--map-btn-size","40px"),G.style.setProperty("--map-toolbar-gap","8px"),G.style.setProperty("--map-font-md","13px"),G.style.setProperty("--map-font-sm","11px"),G.style.setProperty("--map-legend-width","380px")):I>=500?(G.style.setProperty("--map-btn-size","36px"),G.style.setProperty("--map-toolbar-gap","6px"),G.style.setProperty("--map-font-md","12px"),G.style.setProperty("--map-font-sm","10px"),G.style.setProperty("--map-legend-width","360px")):(G.style.setProperty("--map-btn-size","32px"),G.style.setProperty("--map-toolbar-gap","5px"),G.style.setProperty("--map-font-md","11px"),G.style.setProperty("--map-font-sm","10px"),G.style.setProperty("--map-legend-width","280px")))}return Zt(async()=>{var G,J,se;(G=d.init)==null||G.call(d),z.value=xg,d.isMobile?(J=d.collapseLegend)==null||J.call(d):(se=d.openLegend)==null||se.call(d),q.value&&(Jg(q.value.getBoundingClientRect().width),typeof ResizeObserver<"u"&&(or=new ResizeObserver(_e=>{for(const ze of _e)Jg(ze.contentRect.width)}),or.observe(q.value))),window.addEventListener("doxa:legend-row-click",Yg),window.addEventListener("legend:highlight",Xg);const I=ye.loadData().catch(_e=>(console.error("[research-map] data load failed:",_e),{normalizedPeopleGroups:[]}));try{await $e()}catch(_e){console.error("[countries-map] Map failed to initialize —",_e),we.value=String((_e==null?void 0:_e.message)||_e);return}if(!ue.value){console.error("[countries-map] Map failed to initialize — check token and container"),we.value="Map failed to initialize — check token and container";return}ue.value.once("style.load",async()=>{try{const{normalizedPeopleGroups:_e}=await I;await aL(_e)}catch(_e){console.error("[countries-map] onMapReady failed:",_e),we.value=String((_e==null?void 0:_e.message)||_e)}})}),ho(()=>{var I,G,J,se;window.removeEventListener("doxa:legend-row-click",Yg),window.removeEventListener("legend:highlight",Xg),or&&(or.disconnect(),or=null),(G=(I=hs.value)==null?void 0:I.cleanup)==null||G.call(I),E.stopPrayerGlow(),(J=X.cleanup)==null||J.call(X),(se=B.cleanup)==null||se.call(B),g.unregisterMap(N),Ae()}),(I,G)=>(V(),ae("div",{ref_key:"rmRoot",ref:q,class:Ee(["rm-root",{"rm-dark":Ht.value,"dsm-dark":Ht.value}])},[S.value?(V(),ae("div",{key:0,ref_key:"tabBar",ref:ce,class:"rm-tab-bar"},[(V(!0),ae(Ie,null,yt(R.value,J=>(V(),ae(Ie,{key:J.id},[C("button",{class:Ee(["rm-tab",{active:z.value===J.id}]),onClick:se=>ms(J.id)},he(v(J)),11,DA),J.sepAfter?(V(),ae("div",BA)):ve("",!0)],64))),128))],512)):ve("",!0),C("div",GA,[!pe.value&&!we.value?(V(),ae("div",jA,"Research map loading…")):ve("",!0),we.value?(V(),ae("div",zA,"The map could not be loaded. "+he(we.value),1)):ve("",!0),C("div",{ref_key:"mapContainer",ref:H,class:"rm-map-canvas"},null,512),G[4]||(G[4]=C("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),G[5]||(G[5]=C("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),pe.value&&de(ue)?(V(),Ge(Ck,{key:2,ref_key:"geocoderRef",ref:ee,"map-instance":de(ue),"access-token":de(c),"data-source-id":de(u),"is-dark":Ht.value,placeholder:M.value,"active-context":T.value,onPeopleGroupResult:de(W),onAggregateResult:de(re),onClear:de(be)},null,8,["map-instance","access-token","data-source-id","is-dark","placeholder","active-context","onPeopleGroupResult","onAggregateResult","onClear"])):ve("",!0),ve("",!0),pe.value&&de(ue)?(V(),Ge(ek,{key:4},{default:Mt(()=>[Ze(ok,{map:de(ue),"is-dark":Ht.value},null,8,["map","is-dark"]),Ze(nk,{map:de(ue),"is-dark":Ht.value},null,8,["map","is-dark"]),Ze(ak,{map:de(ue),"is-dark":Ht.value},null,8,["map","is-dark"]),Ze(ik,{"map-container":H.value,"is-dark":Ht.value},null,8,["map-container","is-dark"]),Ze(ck,{"is-dark":Ht.value,onToggle:eL},null,8,["is-dark"]),p.share?(V(),Ge(Jk,{key:0,"is-dark":Ht.value,"embed-path":"country-posters/countries-map/index.html"},null,8,["is-dark"])):ve("",!0)]),_:1})):ve("",!0),pe.value?(V(),Ge(Qx,{key:5,"legend-type":O.value,"is-dark":Ht.value},null,8,["legend-type","is-dark"])):ve("",!0),pe.value?(V(),Ge(uw,{key:6,"is-open":Vg.value,onClose:G[1]||(G[1]=J=>Vg.value=!1),onOpenPoster:Hg},{default:Mt(()=>[Ze(Tw)]),_:1},8,["is-open"])):ve("",!0),C("div",UA,[pe.value&&de(d).legendMode==="detail"&&de(d).selectedPeopleGroup?(V(),Ge(Kx,{key:0,"legend-type":O.value,"popup-action":D.value,"initially-collapsed":!1,"is-dark":Ht.value},null,8,["legend-type","popup-action","is-dark"])):ve("",!0),zt(C("div",null,[pe.value?(V(),Ge(yg,{key:0,nodes:sa.value,tabs:fs.value,title:Kg.value,hideTabs:V2.value,columnLabel:q2.value,open:W2.value,"export-enabled":HA,onSelect:ia,onExport:J2,"onUpdate:open":Y2},null,8,["nodes","tabs","title","hideTabs","columnLabel","open"])):ve("",!0)],512),[[Ku,!(de(d).legendMode==="detail"&&de(d).selectedPeopleGroup)]])]),C("div",KA,[pe.value?(V(),Ge(de(r),{key:0,"legend-type":O.value,"popup-action":D.value,"is-dark":Ht.value},null,8,["legend-type","popup-action","is-dark"])):ve("",!0)]),pe.value&&qg.value?(V(),Ge(de(s),{key:7,feature:qg.value,action:D.value,dark:Ht.value,onClose:G[2]||(G[2]=J=>de(g).selectFeature(null))},null,8,["feature","action","dark"])):ve("",!0),Nl.value?(V(),Ge(de(i),{key:8,poster:hs.value,"legend-rows":de(ne).rows,"active-tab":j.value,onClose:G[3]||(G[3]=J=>Nl.value=!1)},null,8,["poster","legend-rows","active-tab"])):ve("",!0)])],2))}}},Symbol.toStringTag,{value:"Module"})),WA={class:"wall-h"},YA={key:0,class:"wall-tag"},XA=["innerHTML"],JA={class:"sec-name"},ZA={class:"sec-count"},QA={class:"grid"},eS=["data-list-id"],tS=["aria-label","onClick"],oS={class:"hcount"},nS={class:"main"},aS={key:0,class:"ph is-soon"},rS={class:"ph-label"},sS={key:0,class:"ph-count"},iS={class:"ph-soon"},lS=["src","alt","onError"],cS={key:2,class:"ph"},uS={class:"ph-label"},dS={key:0,class:"ph-count"},pS={class:"tape pfs"},gS=["onClick"],fS=["onClick"],hS={class:"modal",role:"dialog","aria-live":"polite"},mS={class:"modal-kind"},bS={class:"modal-title"},yS={class:"modal-err"},vS={class:"modal-soon"},_S={class:"bar"},xS={class:"modal-phase"},kS={__name:"PosterWall",props:{items:{type:Array,required:!0},groupBy:{type:Function,default:()=>"All"},instanceId:{type:String,default:"poster-wall"},isDark:{type:Boolean,default:!1},assetsBase:{type:String,default:"./assets"},eventName:{type:String,default:"doxa-poster-wall:show-on-map"},heading:{type:String,default:"Prayer Lists & Posters"},tag:{type:String,default:""},intro:{type:String,default:""},unit:{type:String,default:"UPG"},itemNoun:{type:String,default:"list"},itemNounPlural:{type:String,default:""},collapsible:{type:Boolean,default:!1},collapsedBy:{type:Function,default:()=>!1},unsupported:{type:Function,default:()=>null},downloadPrefix:{type:String,default:"doxa"},prayerListSoonMessage:{type:String,default:"Coming soon — the prayer list for each people group is in build."}},setup(e){const t=e,o=Q(()=>t.itemNounPlural||`${t.itemNoun}s`),n=Q(()=>String(t.assetsBase||"./assets").replace(/\/+$/,"")),a=y=>`${n.value}/previews/${y}.webp`,r=Q(()=>{const y=new Map;for(const d of t.items||[]){if(!d||!d.id)continue;const h=t.groupBy(d)||"Other";y.has(h)||y.set(h,[]),y.get(h).push(d)}return[...y.entries()].map(([d,h])=>({name:d,items:h.slice().sort((p,_)=>(_.count||0)-(p.count||0)),total:h.reduce((p,_)=>p+(_.count||0),0)})).sort((d,h)=>h.total-d.total)}),s=Q(()=>{const y={};for(const d of r.value)y[d.name]=!!t.collapsedBy(d);return y}),i=le({}),l=y=>t.collapsible?y in i.value?!!i.value[y]:!!s.value[y]:!1,c=y=>{i.value={...i.value,[y]:!l(y)}},u=le(null),f=le({});function b(y){const d=u.value===y.id;u.value=d?null:y.id,window.dispatchEvent(new CustomEvent(t.eventName,{detail:{instanceId:t.instanceId,listId:d?null:y.id,label:d?null:y.label}}))}const k=le(null);async function x(y){if(k.value)return;const d=t.unsupported(y);if(d){k.value={label:y.label,kind:"Poster",phase:"soon",message:d,pct:0};return}k.value={label:y.label,kind:"Poster",phase:"fetch",message:"fetching poster",pct:20};try{const h=await fetch(`${n.value}/posters/${y.id}.webp`);if(!h.ok)throw new Error(`poster not found (${h.status})`);k.value={...k.value,phase:"save",message:"saving",pct:80},v(await h.blob(),`${t.downloadPrefix}-${y.id}-poster.webp`),k.value={...k.value,phase:"done",message:"saved",pct:100},setTimeout(()=>{k.value=null},900)}catch(h){k.value={label:y.label,kind:"Poster",phase:"error",message:String((h==null?void 0:h.message)||h).slice(0,140),pct:0}}}function m(y){k.value={label:y.label,kind:"Prayer List",phase:"soon",message:t.prayerListSoonMessage,pct:0}}function v(y,d){const h=document.createElement("a");h.href=URL.createObjectURL(y),h.download=d,document.body.appendChild(h),h.click(),h.remove(),setTimeout(()=>URL.revokeObjectURL(h.href),4e3)}function g(){k.value=null}return mt(`.wall{position:absolute;inset:0;overflow-y:auto;padding:22px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.wall.is-dark{background:#0a1410;color:#e5e7eb}.wall-h{margin:0 0 6px;font-size:19px;font-weight:700;text-align:center}.wall-tag{margin:0 auto 12px;width:fit-content;padding:3px 11px;border-radius:999px;background:rgba(16,185,129,.13);color:#0b7a5b;border:1px solid rgba(16,185,129,.28);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.is-dark .wall-tag{background:rgba(16,185,129,.16);color:#6ee7b7;border-color:rgba(110,231,183,.32)}.wall-sub{margin:0 auto 22px;max-width:620px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.wall-sub strong{font-weight:700;opacity:1;color:inherit}.grid{display:grid;gap:64px 30px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));max-width:1180px;margin:0 auto}.card{position:relative;background:#fff;border:1px solid #e3e6ea;border-radius:3px;padding:24px 12px 26px;box-shadow:0 1px 3px rgba(0,0,0,.10),0 6px 18px rgba(0,0,0,.07);transition:transform .16s ease,box-shadow .16s ease}.card:hover{transform:translateY(-3px);box-shadow:0 3px 8px rgba(0,0,0,.14),0 12px 28px rgba(0,0,0,.10)}.is-dark .card{background:#132019;border-color:rgba(110,231,183,.20)}.tape{box-sizing:border-box;position:absolute;left:50%;transform:translateX(-50%);z-index:2;font-size:10.5px;font-weight:600;letter-spacing:.02em;cursor:pointer;border:1px solid rgba(0,0,0,.08);background:#eef2f6;color:#23303c}.is-dark .tape{background:#1d2b23;color:#cfe9d9;border-color:rgba(255,255,255,.10)}.tape-h{top:-11px;width:82%;padding:4px 8px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:5px}.tape-h:hover{background:#e2e8ee}.hcount{font-weight:800;font-variant-numeric:tabular-nums}.hsep{opacity:.45}.hlabel{font-weight:600}.card.is-last{box-shadow:0 0 0 2px #10b981,0 6px 18px rgba(0,0,0,.10)}.card.is-last .tape-h{background:#10b981;color:#04241a;border-color:#10b981}.pfs{position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);width:82%;margin:0;padding:0 4px 3px;border:1px solid rgba(0,0,0,.14);border-radius:2px;background:#fff;display:flex;gap:2px;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.10)}.is-dark .pfs{background:#132019;border-color:rgba(110,231,183,.24)}.pfs > legend{margin:0 auto;padding:0 5px;font-size:8px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:#8a93a0}.is-dark .pfs > legend{color:#7f9c8c}.pbtn{position:relative;flex:1;border:0;background:none;color:#5b6672;font:inherit;font-size:10.5px;font-weight:600;padding:2px 6px 3px;cursor:pointer;white-space:nowrap;transition:color .15s}.pbtn::after{content:"";position:absolute;left:6px;right:6px;bottom:0;height:2px;border-radius:2px;background:transparent;transition:background .15s}.pbtn:hover{color:#10b981}.pbtn:hover::after{background:#10b981}.is-dark .pbtn{color:#9fb3a8}.sec{max-width:1180px;margin:0 auto;padding-bottom:44px}.sec-head{display:flex;align-items:baseline;gap:10px;margin:0 2px 14px;padding:11px 10px 9px;border-bottom:1px solid rgba(0,0,0,.10);position:sticky;top:0;z-index:6;background:#f6f7f9;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{border-bottom-color:rgba(255,255,255,.12);background:#0a1410;box-shadow:0 6px 10px -8px rgba(0,0,0,.7)}.sec-head.is-shut{border-bottom-color:transparent;margin-bottom:6px}.sec-head.is-toggle{cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit}.sec-head.is-toggle:hover .sec-name{color:#10b981}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s ease}.sec-caret.is-open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700;letter-spacing:.01em}.sec-count{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.main{position:relative;aspect-ratio:1/1;border:1px solid #dfe3e7;overflow:hidden;background:#fbfcfd;display:flex;align-items:center;justify-content:center}.is-dark .main{background:#0c1712;border-color:rgba(255,255,255,.08)}.img{width:100%;height:100%;object-fit:contain;display:block}.ph{padding:14px 10px;text-align:center}.ph-label{font-size:12.5px;font-weight:700;line-height:1.3}.ph-count{margin-top:5px;font-size:11px;opacity:.7}.ph-note{margin-top:10px;font-size:9.5px;text-transform:uppercase;letter-spacing:.09em;opacity:.45}.ph.is-soon{background:rgba(245,158,11,.06)}.ph-soon{margin-top:9px;font-size:10px;line-height:1.45;color:#8a6414}.is-dark .ph-soon{color:#e8b862}.modal-scrim{position:fixed;inset:0;z-index:1000;background:rgba(8,12,16,.55);display:grid;place-items:center;padding:22px}.modal{width:min(340px,100%);background:#fff;color:#0f1419;border-radius:14px;padding:20px 22px;box-shadow:0 10px 40px rgba(0,0,0,.35);text-align:center}.is-dark .modal{background:#132019;color:#e5e7eb}.modal-kind{font-size:10px;text-transform:uppercase;letter-spacing:.1em;opacity:.55}.modal-title{margin:3px 0 14px;font-size:15px;font-weight:700;line-height:1.3}.bar{height:5px;border-radius:99px;background:rgba(0,0,0,.10);overflow:hidden}.is-dark .bar{background:rgba(255,255,255,.12)}.bar-fill{height:100%;background:#10b981;border-radius:99px;transition:width .25s ease}.modal-phase{margin-top:10px;font-size:12.5px;font-weight:600}.modal-hint{margin-top:6px;font-size:11px;line-height:1.5;opacity:.62}.modal-soon{font-size:13px;line-height:1.5;color:#5f5849;margin:6px 0 14px}.modal-err{font-size:12.5px;line-height:1.55;color:#b42318;margin-bottom:14px}.is-dark .modal-err{color:#fda29b}.modal-btn{border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit;font:inherit;font-size:12.5px;padding:6px 18px;border-radius:8px;cursor:pointer}.modal-btn:hover{background:rgba(0,0,0,.06)}`,"doxa-poster-wall"),(y,d)=>(V(),ae("div",{class:Ee(["wall",{"is-dark":e.isDark}])},[C("h2",WA,he(e.heading),1),e.tag?(V(),ae("div",YA,he(e.tag),1)):ve("",!0),e.intro?(V(),ae("p",{key:1,class:"wall-sub",innerHTML:e.intro},null,8,XA)):ve("",!0),(V(!0),ae(Ie,null,yt(r.value,h=>(V(),ae("section",{key:h.name,class:"sec"},[(V(),Ge(ai(e.collapsible?"button":"div"),{class:Ee(["sec-head",{"is-toggle":e.collapsible,"is-shut":e.collapsible&&l(h.name)}]),type:e.collapsible?"button":null,"aria-expanded":e.collapsible?String(!l(h.name)):null,onClick:p=>e.collapsible&&c(h.name)},{default:Mt(()=>[e.collapsible?(V(),ae("span",{key:0,class:Ee(["sec-caret",{"is-open":!l(h.name)}])},"▶",2)):ve("",!0),C("h3",JA,he(h.name),1),C("span",ZA,he(h.total.toLocaleString())+" people groups · "+he(h.items.length)+" "+he(h.items.length===1?e.itemNoun:o.value),1)]),_:2},1032,["class","type","aria-expanded","onClick"])),zt(C("div",QA,[(V(!0),ae(Ie,null,yt(h.items,p=>(V(),ae("div",{key:p.id,class:Ee(["card",{"is-last":u.value===p.id}]),"data-list-id":p.id},[C("button",{type:"button",class:"tape tape-h","aria-label":`Show ${p.label} on the map`,onClick:_=>b(p)},[C("span",oS,he(p.count)+" "+he(e.unit),1),d[1]||(d[1]=C("span",{class:"hsep"},"·",-1)),d[2]||(d[2]=C("span",{class:"hlabel"},"Show on map",-1))],8,tS),C("div",nS,[e.unsupported(p)?(V(),ae("div",aS,[C("div",rS,he(p.label),1),p.count?(V(),ae("div",sS,he(p.count.toLocaleString())+" people groups",1)):ve("",!0),C("div",iS,he(e.unsupported(p)),1)])):f.value[p.id]?(V(),ae("div",cS,[C("div",uS,he(p.label),1),p.count?(V(),ae("div",dS,he(p.count.toLocaleString())+" people groups",1)):ve("",!0),d[3]||(d[3]=C("div",{class:"ph-note"},"poster not generated yet",-1))])):(V(),ae("img",{key:1,class:"img",src:a(p.id),alt:`${p.label} — prayer poster`,loading:"lazy",decoding:"async",onError:_=>f.value[p.id]=!0},null,40,lS))]),C("fieldset",pS,[d[4]||(d[4]=C("legend",null,"Print Options",-1)),C("button",{type:"button",class:"pbtn",onClick:_=>m(p)},"Prayer List",8,gS),C("button",{type:"button",class:"pbtn",onClick:_=>x(p)},"Poster Map",8,fS)])],10,eS))),128))],512),[[Ku,!l(h.name)]])]))),128)),k.value?(V(),ae("div",{key:2,class:"modal-scrim",onClick:d[0]||(d[0]=dt(h=>k.value.phase==="error"&&g(),["self"]))},[C("div",hS,[C("div",mS,he(k.value.kind),1),C("div",bS,he(k.value.label),1),k.value.phase==="error"?(V(),ae(Ie,{key:0},[C("div",yS,he(k.value.message),1),C("button",{type:"button",class:"modal-btn",onClick:g},"Close")],64)):k.value.phase==="soon"?(V(),ae(Ie,{key:1},[C("div",vS,he(k.value.message),1),C("button",{type:"button",class:"modal-btn",onClick:g},"Close")],64)):(V(),ae(Ie,{key:2},[C("div",_S,[C("div",{class:"bar-fill",style:Xe({width:k.value.pct+"%"})},null,4)]),C("div",xS,he(k.value.message),1),d[5]||(d[5]=C("div",{class:"modal-hint"}," Rendering a print-quality image in your browser — nothing is uploaded. ",-1))],64))])])):ve("",!0)],2))}},wS={countries:[{id:"country-ind",iso3:"IND",label:"India",count:855,region:"Asia",bbox:[68.772258,8.087722,97.021619,34.627874],sheet:null,hasGeometry:!1,unsupportedReason:"India has 855 people groups — too many to fit one poster legibly. A solution is in progress."},{id:"country-chn",iso3:"CHN",label:"People's Republic of China",count:154,region:"Asia",bbox:[73.723,18.221,134.797,53.349],sheet:"3x4",hasGeometry:!0,unsupportedReason:null},{id:"country-sdn",iso3:"SDN",label:"Sudan",count:105,region:"Middle East",bbox:[21.814,8.641,38.582,23.143],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bra",iso3:"BRA",label:"Brazil",count:103,region:"Latin America & Caribbean",bbox:[-73.988,-33.749,-34.794,5.27],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lao",iso3:"LAO",label:"Lao People's Democratic Republic",count:95,region:"Asia",bbox:[100.084,13.91,107.633,22.493],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tcd",iso3:"TCD",label:"Chad",count:53,region:"Africa",bbox:[13.473,7.441,24,23.498],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-nga",iso3:"NGA",label:"Nigeria",count:38,region:"Africa",bbox:[2.693,4.27,14.678,13.886],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-idn",iso3:"IDN",label:"Indonesia",count:36,region:"Asia",bbox:[95.194,-10.925,141.019,5.651],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-npl",iso3:"NPL",label:"Nepal",count:34,region:"Asia",bbox:[80.06,26.347,88.204,30.473],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-eth",iso3:"ETH",label:"Ethiopia",count:29,region:"Africa",bbox:[33.003,3.403,47.959,14.835],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-col",iso3:"COL",label:"Colombia",count:27,region:"Latin America & Caribbean",bbox:[-78.995,-4.224,-66.87,12.441],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pak",iso3:"PAK",label:"Pakistan",count:24,region:"Asia",bbox:[60.873,24.041,77.117,37.071],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ssd",iso3:"SSD",label:"South Sudan",count:22,region:"Africa",bbox:[24.152,3.481,35.951,12.236],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-rus",iso3:"RUS",label:"Russian Federation",count:21,region:"Europe",bbox:[-180,41.187,180,82.055],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-afg",iso3:"AFG",label:"Afghanistan",count:21,region:"Asia",bbox:[60.472,29.377,74.889,38.491],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-irn",iso3:"IRN",label:"Islamic Republic of Iran",count:20,region:"Middle East",bbox:[44.015,25.059,63.32,39.766],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-dza",iso3:"DZA",label:"Algeria",count:17,region:"Middle East",bbox:[-8.669,18.968,11.997,37.09],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vnm",iso3:"VNM",label:"Vietnam",count:16,region:"Asia",bbox:[102.144,8.556,109.463,23.394],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tza",iso3:"TZA",label:"United Republic of Tanzania",count:16,region:"Africa",bbox:[29.596,-11.744,40.431,-.987],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lby",iso3:"LBY",label:"Libya",count:15,region:"Middle East",bbox:[9.287,19.496,25.156,33.181],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gin",iso3:"GIN",label:"Guinea",count:13,region:"Africa",bbox:[-14.914,7.191,-7.638,12.676],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mli",iso3:"MLI",label:"Mali",count:13,region:"Africa",bbox:[-12.239,10.146,4.245,25],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-btn",iso3:"BTN",label:"Bhutan",count:13,region:"Asia",bbox:[88.75,26.697,92.124,28.353],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mys",iso3:"MYS",label:"Malaysia",count:12,region:"Asia",bbox:[100.12,.854,119.267,7.037],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-per",iso3:"PER",label:"Peru",count:10,region:"Latin America & Caribbean",bbox:[-81.327,-18.355,-68.643,-.014],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ago",iso3:"AGO",label:"Angola",count:10,region:"Africa",bbox:[11.461,-18.039,24.088,-4.397],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-yem",iso3:"YEM",label:"Yemen",count:9,region:"Middle East",bbox:[42.598,12.305,54.534,19],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-som",iso3:"SOM",label:"Somalia",count:9,region:"Africa",bbox:[40.996,-1.665,51.413,11.984],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ben",iso3:"BEN",label:"Benin",count:9,region:"Africa",bbox:[.783,6.216,3.849,12.417],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cod",iso3:"COD",label:"Democratic Republic of the Congo",count:9,region:"Africa",bbox:[12.201,-13.449,31.277,5.392],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-eri",iso3:"ERI",label:"Eritrea",count:8,region:"Africa",bbox:[36.433,12.355,43.137,18.02],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tha",iso3:"THA",label:"Thailand",count:8,region:"Asia",bbox:[97.346,5.613,105.637,20.464],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cmr",iso3:"CMR",label:"Cameroon",count:8,region:"Africa",bbox:[8.505,1.661,16.188,13.079],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-irq",iso3:"IRQ",label:"Iraq",count:8,region:"Middle East",bbox:[38.775,29.063,48.559,37.371],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bfa",iso3:"BFA",label:"Burkina Faso",count:8,region:"Africa",bbox:[-5.518,9.401,2.405,15.083],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-omn",iso3:"OMN",label:"Oman",count:7,region:"Middle East",bbox:[52,16.65,59.839,26.387],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mmr",iso3:"MMR",label:"Myanmar",count:7,region:"Asia",bbox:[92.173,9.973,101.17,28.526],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-jpn",iso3:"JPN",label:"Japan",count:6,region:"Asia",bbox:[123.662,24.255,148.893,45.557],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tgo",iso3:"TGO",label:"Togo",count:6,region:"Africa",bbox:[-.143,6.112,1.803,11.137],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-uga",iso3:"UGA",label:"Uganda",count:6,region:"Africa",bbox:[29.582,-1.481,35,4.234],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-zmb",iso3:"ZMB",label:"Zambia",count:6,region:"Africa",bbox:[22.001,-18.079,33.712,-8.277],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ven",iso3:"VEN",label:"Venezuela",count:6,region:"Latin America & Caribbean",bbox:[-73.391,.649,-59.816,12.199],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-nam",iso3:"NAM",label:"Namibia",count:6,region:"Africa",bbox:[11.727,-28.969,25.263,-16.981],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-brn",iso3:"BRN",label:"Brunei Darussalam",count:5,region:"Asia",bbox:[114.08,4.002,115.366,5.042],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ken",iso3:"KEN",label:"Kenya",count:5,region:"Africa",bbox:[33.914,-4.675,41.906,5.431],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-syr",iso3:"SYR",label:"Syrian Arab Republic",count:5,region:"Middle East",bbox:[35.717,32.311,42.369,37.318],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lbn",iso3:"LBN",label:"Lebanon",count:4,region:"Middle East",bbox:[35.107,33.05,36.619,34.693],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pse",iso3:"PSE",label:"State of Palestine",count:4,region:"Middle East",bbox:[34.881,31.342,35.573,32.543],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-moz",iso3:"MOZ",label:"Mozambique",count:4,region:"Africa",bbox:[30.217,-26.858,40.837,-10.48],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-isr",iso3:"ISR",label:"Israel",count:4,region:"Europe",bbox:[34.267,29.491,35.895,33.336],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mar",iso3:"MAR",label:"Morocco",count:4,region:"Middle East",bbox:[-17.105,20.77,-.999,35.922],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tur",iso3:"TUR",label:"Türkiye",count:3,region:"Europe",bbox:[26.036,35.808,44.818,42.105],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-qat",iso3:"QAT",label:"Qatar",count:3,region:"Middle East",bbox:[50.757,24.471,51.662,26.159],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-aze",iso3:"AZE",label:"Azerbaijan",count:3,region:"Asia",bbox:[44.765,38.394,50.37,41.913],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gmb",iso3:"GMB",label:"Republic of The Gambia",count:3,region:"Africa",bbox:[-16.814,13.043,-13.797,13.821],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sau",iso3:"SAU",label:"Saudi Arabia",count:3,region:"Middle East",bbox:[34.571,16.4,55.667,32.154],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-jor",iso3:"JOR",label:"Jordan",count:3,region:"Middle East",bbox:[34.96,29.184,39.302,33.374],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-zwe",iso3:"ZWE",label:"Zimbabwe",count:3,region:"Africa",bbox:[25.238,-22.421,33.067,-15.607],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-com",iso3:"COM",label:"Comoros",count:3,region:"Africa",bbox:[43.231,-11.938,43.518,-11.367],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-usa",iso3:"USA",label:"United States of America",count:3,region:"Other",bbox:[-178.228,13.246,179.778,71.353],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bgd",iso3:"BGD",label:"Bangladesh",count:3,region:"Asia",bbox:[88.021,20.728,92.691,26.621],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gnb",iso3:"GNB",label:"Guinea-Bissau",count:3,region:"Africa",bbox:[-16.717,10.892,-13.635,12.686],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-kos",iso3:"KOS",label:"KOS",count:3,region:"Europe",bbox:[20.629,42.045,21.164624,42.672265],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-mrt",iso3:"MRT",label:"Mauritania",count:3,region:"Middle East",bbox:[-17.102,14.72,-4.833,27.363],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-esh",iso3:"ESH",label:"Western Sahara",count:3,region:"Middle East",bbox:[-13.16135268,26.15604526,-10.60080902,27.1178117],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-tjk",iso3:"TJK",label:"Tajikistan",count:3,region:"Asia",bbox:[67.331,36.671,75.154,41.039],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-egy",iso3:"EGY",label:"Egypt",count:3,region:"Middle East",bbox:[24.706,22,36.892,31.671],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mng",iso3:"MNG",label:"Mongolia",count:3,region:"Asia",bbox:[87.738,41.58,119.932,52.15],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sur",iso3:"SUR",label:"Suriname",count:2,region:"North America & Non-Spanish Caribbean",bbox:[-58.069,1.831,-53.975,6.01],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ner",iso3:"NER",label:"Niger",count:2,region:"Africa",bbox:[.167,11.692,15.997,23.517],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-zaf",iso3:"ZAF",label:"South Africa",count:2,region:"Africa",bbox:[16.452,-34.834,32.945,-22.125],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cck",iso3:"CCK",label:"Cocos (Keeling) Islands",count:2,region:"Other",bbox:[96.831418,-12.185468,96.895,-12.119],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-bhr",iso3:"BHR",label:"Bahrain",count:2,region:"Middle East",bbox:[50.433,25.792,50.632,26.257],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cog",iso3:"COG",label:"Republic of the Congo",count:2,region:"Africa",bbox:[11.126,-5.041,18.641,3.711],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-are",iso3:"ARE",label:"United Arab Emirates",count:2,region:"Middle East",bbox:[51.592,22.631,56.376,26.06],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gab",iso3:"GAB",label:"Gabon",count:2,region:"Africa",bbox:[8.723,-3.953,14.521,2.302],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-guf",iso3:"GUF",label:"French Guiana",count:2,region:"Other",bbox:[-54.601,2.179,-51.656,5.762],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-civ",iso3:"CIV",label:"Cote d'Ivoire",count:2,region:"Africa",bbox:[-8.619,4.344,-2.506,10.726],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-kgz",iso3:"KGZ",label:"Kyrgyzstan",count:2,region:"Asia",bbox:[69.265,39.173,80.23,43.267],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lbr",iso3:"LBR",label:"Liberia",count:2,region:"Africa",bbox:[-11.498,4.361,-7.369,8.545],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-swe",iso3:"SWE",label:"Sweden",count:2,region:"Europe",bbox:[11.113,55.339,24.167,69.06],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tun",iso3:"TUN",label:"Tunisia",count:2,region:"Middle East",bbox:[7.522,30.23,11.6,37.347],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sle",iso3:"SLE",label:"Sierra Leone",count:2,region:"Africa",bbox:[-13.309,6.923,-10.271,9.999],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-and",iso3:"AND",label:"Andorra",count:1,region:"Other",bbox:[1.412,42.43,1.787,42.655],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sen",iso3:"SEN",label:"Senegal",count:1,region:"Africa",bbox:[-17.531,12.308,-11.358,16.693],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mne",iso3:"MNE",label:"Montenegro",count:1,region:"Europe",bbox:[18.434,41.846,20.354,43.558],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bol",iso3:"BOL",label:"Bolivia",count:1,region:"Latin America & Caribbean",bbox:[-69.645,-22.907,-57.454,-9.67],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ecu",iso3:"ECU",label:"Ecuador",count:1,region:"Latin America & Caribbean",bbox:[-91.59,-5.012,-75.189,1.412],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vir",iso3:"VIR",label:"Virgin Islands, U.S.",count:1,region:"Other",bbox:[-64.904,17.68,-64.565,17.77],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-atg",iso3:"ATG",label:"Antigua and Barbuda",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.897,16.998,-61.674,17.168],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-arm",iso3:"ARM",label:"Armenia",count:1,region:"Europe",bbox:[43.465,38.853,46.637,41.298],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-abw",iso3:"ABW",label:"Aruba",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-70.063,12.415,-69.867,12.621],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bhs",iso3:"BHS",label:"Bahamas",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-78.998,20.912,-73.012,26.92],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-brb",iso3:"BRB",label:"Barbados",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-59.651,13.052,-59.422,13.335],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-blr",iso3:"BLR",label:"Belarus",count:1,region:"Europe",bbox:[23.165,51.252,32.74,56.167],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bmu",iso3:"BMU",label:"Bermuda",count:1,region:"Other",bbox:[-64.886,32.248,-64.674,32.339],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bih",iso3:"BIH",label:"Bosnia and Herzegovina",count:1,region:"Europe",bbox:[15.724,42.557,19.623,45.245],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vgb",iso3:"VGB",label:"Virgin Islands, British",count:1,region:"Other",bbox:[-64.716,18.389,-64.558,18.457],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bgr",iso3:"BGR",label:"Bulgaria",count:1,region:"Europe",bbox:[22.348,41.241,28.61,44.21],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-khm",iso3:"KHM",label:"Cambodia",count:1,region:"Asia",bbox:[102.334,10.405,107.628,14.687],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cym",iso3:"CYM",label:"Cayman Islands",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-81.416,19.265,-81.086,19.388],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-caf",iso3:"CAF",label:"Central African Republic",count:1,region:"Africa",bbox:[14.421,2.221,27.453,11.002],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cxr",iso3:"CXR",label:"Christmas Island",count:1,region:"Other",bbox:[105.672,-10.426,105.672,-10.426],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-cok",iso3:"COK",label:"Cook Islands",count:1,region:"Oceania",bbox:[-159.819,-21.268,-159.734,-21.2],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cub",iso3:"CUB",label:"Cuba",count:1,region:"Latin America & Caribbean",bbox:[-84.951,19.842,-74.138,23.187],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cuw",iso3:"CUW",label:"Curaçao",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-69.156,12.044,-68.737,12.392],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cyp",iso3:"CYP",label:"Cyprus",count:1,region:"Europe",bbox:[32.276,34.629,34.589,35.695],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-dji",iso3:"DJI",label:"Djibouti",count:1,region:"Africa",bbox:[41.749,10.93,43.414,12.708],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-dma",iso3:"DMA",label:"Dominica",count:1,region:"Other",bbox:[-61.48,15.21,-61.242,15.639],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gnq",iso3:"GNQ",label:"Equatorial Guinea",count:1,region:"Africa",bbox:[8.415,1,11.36,3.788],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-fro",iso3:"FRO",label:"Faroe Islands",count:1,region:"Europe",bbox:[-7.259,61.946,-6.734,62.31],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-fji",iso3:"FJI",label:"Fiji",count:1,region:"Oceania",bbox:[177.25,-18.276,180,-16.168],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pyf",iso3:"PYF",label:"French Polynesia",count:1,region:"Oceania",bbox:[-149.62,-17.872,-149.137,-17.494],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-geo",iso3:"GEO",label:"Georgia",count:1,region:"Europe",bbox:[40.008,41.055,46.737,43.586],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gib",iso3:"GIB",label:"Gibraltar",count:1,region:"Europe",bbox:[-5.35,36.133,-5.35,36.133],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-grc",iso3:"GRC",label:"Greece",count:1,region:"Europe",bbox:[19.628,34.922,28.247,41.733],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-grd",iso3:"GRD",label:"Grenada",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.802,12.003,-61.609,12.227],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-glp",iso3:"GLP",label:"Guadeloupe",count:1,region:"Other",bbox:[-61.809,15.947,-61.55,16.362],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gum",iso3:"GUM",label:"Guam",count:1,region:"Oceania",bbox:[144.619,13.255,144.957,13.648],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ggy",iso3:"GGY",label:"Guernsey",count:1,region:"Europe",bbox:[-2.675,49.43,-2.505,49.506],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-isl",iso3:"ISL",label:"Iceland",count:1,region:"Europe",bbox:[-24.532,63.399,-13.495,66.537],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-kir",iso3:"KIR",label:"Kiribati",count:1,region:"Oceania",bbox:[-157.554,1.7,-157.169,2.048],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-jam",iso3:"JAM",label:"Jamaica",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-78.368,17.701,-76.19,18.525],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-jey",iso3:"JEY",label:"Jersey",count:1,region:"Europe",bbox:[-2.11,49.1858,-2.11,49.1858],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-kaz",iso3:"KAZ",label:"Kazakhstan",count:1,region:"Asia",bbox:[46.492,40.569,87.316,55.48],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-prk",iso3:"PRK",label:"North Korea",count:1,region:"Asia",bbox:[124.316,37.673,130.675,43.008],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-kwt",iso3:"KWT",label:"Kuwait",count:1,region:"Middle East",bbox:[46.553,28.524,48.431,30.104],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lie",iso3:"LIE",label:"Liechtenstein",count:1,region:"Europe",bbox:[9.486,47.049,9.634,47.266],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lux",iso3:"LUX",label:"Luxembourg",count:1,region:"Europe",bbox:[5.736,49.451,6.531,50.175],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-myt",iso3:"MYT",label:"Mayotte",count:1,region:"Africa",bbox:[45.052,-12.993,45.237,-12.651],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mdv",iso3:"MDV",label:"Maldives",count:1,region:"Asia",bbox:[73.527,1.868,73.545,1.943],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mlt",iso3:"MLT",label:"Malta",count:1,region:"Europe",bbox:[14.321,35.823,14.569,35.996],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mnp",iso3:"MNP",label:"Northern Mariana Islands",count:1,region:"Oceania",bbox:[145.708,15.092,145.814,15.287],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mhl",iso3:"MHL",label:"Marshall Islands",count:1,region:"Oceania",bbox:[171.038,7.053,171.355,7.165],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mus",iso3:"MUS",label:"Mauritius",count:1,region:"Africa",bbox:[57.309,-20.525,57.809,-19.985],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-fsm",iso3:"FSM",label:"Micronesia, Federated States of",count:1,region:"Oceania",bbox:[158.112,6.784,158.322,6.99],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mco",iso3:"MCO",label:"Monaco",count:1,region:"Other",bbox:[7.416,43.733,7.416,43.733],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-msr",iso3:"MSR",label:"Montserrat",count:1,region:"Other",bbox:[-62.232,16.675,-62.144,16.824],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ncl",iso3:"NCL",label:"New Caledonia",count:1,region:"Oceania",bbox:[164,-22.395,168.134,-20.076],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-niu",iso3:"NIU",label:"Niue",count:1,region:"Other",bbox:[-169.949,-19.155,-169.774,-18.953],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vut",iso3:"VUT",label:"Vanuatu",count:1,region:"Oceania",bbox:[166.542,-18.995,169.341,-14.644],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-nfk",iso3:"NFK",label:"Norfolk Island",count:1,region:"Other",bbox:[167.9544,-29.0338,167.9544,-29.0338],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-hkg",iso3:"HKG",label:"Hong Kong",count:1,region:"Asia",bbox:[114.16930265,22.27819894,114.16930265,22.27819894],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-mac",iso3:"MAC",label:"Macao",count:1,region:"Asia",bbox:[113.55129,22.2116,113.55129,22.2116],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-plw",iso3:"PLW",label:"Palau",count:1,region:"Oceania",bbox:[131.676,2.751,131.895,3.061],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-png",iso3:"PNG",label:"Papua New Guinea",count:1,region:"Oceania",bbox:[140.842,-11.645,155.965,-1.959],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-blm",iso3:"BLM",label:"Saint Barthélemy",count:1,region:"Other",bbox:[-62.868,17.879,-62.792,17.925],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-shn",iso3:"SHN",label:"Saint Helena",count:1,region:"Europe",bbox:[-5.79,-16.003,-5.636,-15.906],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lca",iso3:"LCA",label:"Saint Lucia",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.081,13.708,-60.874,14.108],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-smr",iso3:"SMR",label:"San Marino",count:1,region:"Other",bbox:[12.404,43.896,12.51,43.991],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-asm",iso3:"ASM",label:"American Samoa",count:1,region:"Oceania",bbox:[-170.844,-14.373,-170.562,-14.245],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-wsm",iso3:"WSM",label:"Samoa",count:1,region:"Oceania",bbox:[-172.804,-14.049,-171.434,-13.444],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-stp",iso3:"STP",label:"Sao Tome and Principe",count:1,region:"Africa",bbox:[6.467,.019,6.749,.412],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sxm",iso3:"SXM",label:"Sint Maarten (Dutch part)",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-63.0458,18.0237,-63.0458,18.0237],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-slb",iso3:"SLB",label:"Solomon Islands",count:1,region:"Oceania",bbox:[156.454,-11.845,162.375,-6.611],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lka",iso3:"LKA",label:"Sri Lanka",count:1,region:"Asia",bbox:[79.693,5.919,81.879,9.836],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sjm",iso3:"SJM",label:"Svalbard and Jan Mayen",count:1,region:"Europe",bbox:[15.65,78.22,15.65,78.22],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-swz",iso3:"SWZ",label:"Eswatini",count:1,region:"Africa",bbox:[30.803,-27.318,32.135,-25.719],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tkl",iso3:"TKL",label:"Tokelau",count:1,region:"Other",bbox:[-172.47,-8.557,-172.47,-8.557],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-ton",iso3:"TON",label:"Tonga",count:1,region:"Oceania",bbox:[-175.34,-21.272,-175.032,-21.062],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tca",iso3:"TCA",label:"Turks and Caicos Islands",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-72.039,21.803,-71.863,21.953],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vct",iso3:"VCT",label:"Saint Vincent and the Grenadines",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.277,13.122,-61.115,13.383],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-wlf",iso3:"WLF",label:"Wallis and Futuna",count:1,region:"Other",bbox:[-176.251,-13.352,-176.162,-13.219],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pry",iso3:"PRY",label:"Paraguay",count:1,region:"Latin America & Caribbean",bbox:[-62.64,-27.591,-54.26,-19.29],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-fin",iso3:"FIN",label:"Finland",count:1,region:"Europe",bbox:[19.628,59.808,31.587,70.081],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-alb",iso3:"ALB",label:"Albania",count:1,region:"Europe",bbox:[19.282,39.648,21.058,42.661],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pan",iso3:"PAN",label:"Panama",count:1,region:"Latin America & Caribbean",bbox:[-83.05,7.204,-77.148,9.615],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-nzl",iso3:"NZL",label:"New Zealand",count:1,region:"Oceania",bbox:[-176.893,-47.277,178.55,-34.393],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cze",iso3:"CZE",label:"Czech Republic",count:1,region:"Europe",bbox:[12.091,48.552,18.852,51.056],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gha",iso3:"GHA",label:"Ghana",count:1,region:"Africa",bbox:[-3.255,4.737,1.192,11.173],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-phl",iso3:"PHL",label:"Philippines",count:1,region:"Asia",bbox:[117.182,5.056,126.605,18.651],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-guy",iso3:"GUY",label:"Guyana",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.4,1.189,-56.487,8.495],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-uzb",iso3:"UZB",label:"Uzbekistan",count:1,region:"Asia",bbox:[55.999,37.177,73.14,45.59],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-esp",iso3:"ESP",label:"Spain",count:1,region:"Europe",bbox:[-18.007,27.735,4.328,43.787],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mwi",iso3:"MWI",label:"Malawi",count:1,region:"Africa",bbox:[32.676,-17.125,35.919,-9.368],sheet:"3x3",hasGeometry:!0,unsupportedReason:null}]},AS="One poster per country, ready to pray, print, and put on a wall — praying for them by their people group name. Regions and countries are ordered by how many unengaged people groups they hold, so the greatest need leads.",SS=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"country-poster-wall",setup(e){const t=Te("profileConfig",le(null)),o=Q(()=>{var c;return((c=t.value)==null?void 0:c.instanceId)||"country-posters-wall"}),n=Q(()=>{var c;return((c=t.value)==null?void 0:c.isDark)===!0}),a=Q(()=>{var c;return String(((c=t.value)==null?void 0:c.assetsBase)||"./assets").replace(/\/+$/,"")}),r=Q(()=>wS.countries||[]),s=c=>c.region||"Other",i=c=>c.total<60,l=c=>c.unsupportedReason||null;return(c,u)=>(V(),Ge(kS,{items:r.value,"group-by":s,"instance-id":o.value,"is-dark":n.value,"assets-base":a.value,"event-name":"doxa-country-posters:show-on-map",heading:"Country Posters — Prayer Lists & Posters",tag:"Prayer Mobilization",intro:AS,unit:"UPG","item-noun":"country","item-noun-plural":"countries",collapsible:!0,"collapsed-by":i,unsupported:l,"prayer-list-soon-message":"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.","download-prefix":"doxa-country"},null,8,["items","instance-id","is-dark","assets-base"]))}}},Symbol.toStringTag,{value:"Module"})),LS={class:"legend-sheet-root"},CS=["src","alt"],ES={key:0,class:"pull-tab-handle"},$S=["aria-label"],TS=["aria-label"],PS=["aria-label"],NS={class:"collapsed-detail-title"},MS={class:"legend-content"},IS=["aria-label"],RS=["aria-label"],kg=80,FS=48,OS=44,DS=24,wg="--legend-sheet-h",Ag=Object.freeze(Object.defineProperty({__proto__:null,default:Ot({__name:"LegendMobile",props:{legendType:{type:String,required:!0},nodes:{type:Array,default:null},tabs:{type:Array,default:null},columnLabel:{type:String,default:null},title:{type:String,default:null},columns:{type:Array,default:null},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const{t}=ht();mt(` +`,"research-map");const l=Te("profileConfig"),c=Te("mapboxToken"),u=Te("dataSource");Te("colorSet");const f=Te("instanceId",null),b=(()=>{var G;const I=(G=l==null?void 0:l.value)==null?void 0:G.locale;return I&&qi.includes(I)?I:null})(),{locale:k,t:x,te:m}=ht();b&&(k.value=b);function v(I){const G="tabs."+((I==null?void 0:I.i18nKey)||(I==null?void 0:I.id));return I&&m(G)?x(G):(I==null?void 0:I.label)??""}const g=Te("mapStore"),y=Te("dataStore"),d=Te("uiStore"),h=cv(d),p={doxaRegions:!0,adoption:!1,share:!0,hamburgerMenu:!1,geocoderPersistAcrossTabs:!1},L=[{id:"doxa-regions",label:"Countries",colorStrategy:"doxaRegion",legend:"doxa-regions",popup:"pray",feature:"doxaRegions"}].filter(I=>!I.feature||p[I.feature]),R=Q(()=>L),S=Q(()=>!1),z=le(xg),j=Q(()=>R.value.find(I=>I.id===z.value)??R.value[0]),O=Q(()=>{var I;return((I=j.value)==null?void 0:I.legend)??"default"}),D=Q(()=>{var I;return((I=j.value)==null?void 0:I.popup)??"pray"}),M=Q(()=>{var I,G,J,se;return((I=j.value)==null?void 0:I.id)==="language-families"?"Search language family, language, dialect/variety":((G=j.value)==null?void 0:G.id)==="affinity-blocks"?"Search affinity bloc, cluster, people group":((J=j.value)==null?void 0:J.id)==="doxa-regions"?"Search region, country, people group":((se=j.value)==null?void 0:se.id)==="religion"?"Search religion, people group":""}),E={"affinity-blocks":"people-groups",prayer:"people-groups",adoption:"people-groups",engagement:"people-groups","language-families":"language","doxa-regions":"regions",religion:"religion"},T=Q(()=>{var I;return E[(I=j.value)==null?void 0:I.id]||""}),N=(f==null?void 0:f.value)||f||"research-map-"+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8);St("mapId",N);const q=le(null),ce=le(null),ee=le(null),oe=new Map;De(()=>z==null?void 0:z.value,async(I,G)=>{var se,_e,ze,Je,rt;if(G!==void 0&&I!==G){G&&oe.set(G,d.legendState);const st=oe.get(I)||(d.isMobile?"collapsed":"open");st==="fullyOpen"?(se=d.fullyOpenLegend)==null||se.call(d):st==="open"?(_e=d.openLegend)==null||_e.call(d):(ze=d.collapseLegend)==null||ze.call(d)}await jt();const J=(Je=ce.value)==null?void 0:Je.querySelector(".rm-tab.active");(rt=J==null?void 0:J.scrollIntoView)==null||rt.call(J,{inline:"center",block:"nearest",behavior:"smooth"})});const H=le(null),pe=le(!1),we=le(null),{map:ue,initializeMap:Ee,destroy:Ae}=Yv({containerRef:H,accessToken:c.value,style:((Zg=l==null?void 0:l.value)==null?void 0:Zg.style)??h.bootStyle(),config:h.bootConfig,center:((Qg=l==null?void 0:l.value)==null?void 0:Qg.center)??io.center??[20,10],zoom:((ef=l==null?void 0:l.value)==null?void 0:ef.zoom)??io.zoom??1.8,pitch:((tf=l==null?void 0:l.value)==null?void 0:tf.pitch)??io.pitch??0,bearing:((of=l==null?void 0:l.value)==null?void 0:of.bearing)??io.bearing??0,minZoom:((nf=l==null?void 0:l.value)==null?void 0:nf.minZoom)??io.minZoom??.5,maxZoom:QA}),ie=new lg({sourcesConfig:Sn,locale:b}),ye=y_({mapId:N,dataSourceId:u.value,dataSourceManager:ie,dataStore:y,markRaw:I=>I});async function me(I){const G=String(I||"").trim().toUpperCase();if(G.length!==3)return;await tr();const J=ue.value;if(!J||!J.getLayer("regions-fill"))return;J.setLayoutProperty("regions-fill","visibility","visible"),J.setLayoutProperty("regions-border","visibility","visible");const se=["literal",[G]];J.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],se],.3,.02]),J.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],se],"#111827","rgba(60,60,80,0.15)"]),J.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],se],2.5,.3]),J.getLayer("language-family-pins")&&J.moveLayer("language-family-pins")}function Le(){var G;w.clearCountry();const I=ue.value;!I||!I.getLayer("regions-fill")||(I.setPaintProperty("regions-fill","fill-opacity",.2),I.setPaintProperty("regions-fill","fill-outline-color",null),I.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),I.setPaintProperty("regions-border","line-width",.6),((G=j.value)==null?void 0:G.id)!=="doxa-regions"&&(I.setLayoutProperty("regions-fill","visibility","none"),I.setLayoutProperty("regions-border","visibility","none")))}const $=n_({getMap:()=>ue.value,mapId:N,getLanguageFamilyColor:I=>{var J,se;const G=wo((J=j.value)==null?void 0:J.colorStrategy);return((se=G==null?void 0:G.colors)==null?void 0:se[I])??(G==null?void 0:G.fallback)??"#7c8cf8"},getNormalizedPeopleGroups:()=>ye.normalizedPeopleGroups.value||[]});Zp({getMap:()=>ue.value,mapId:N,getLanguageFamilyColor:()=>"#7c8cf8",getNormalizedPeopleGroups:()=>ye.normalizedPeopleGroups.value||[]});const F=a_({getMap:()=>ue.value,mapId:N,mapStore:g,defaultCenter:((af=l==null?void 0:l.value)==null?void 0:af.center)??[20,10],defaultZoom:((rf=l==null?void 0:l.value)==null?void 0:rf.zoom)??1.8}),B=s_({getMap:()=>ue.value,getActivePinColor:I=>{var J,se;const G=wo(((J=j.value)==null?void 0:J.colorStrategy)??"languageFamily");return((se=G==null?void 0:G.getColor)==null?void 0:se.call(G,I))??"#1a1a1a"}});let K=null,te=null;function U(){return K?Promise.resolve(K):(te||(te=qt(()=>Promise.resolve().then(()=>J2),void 0).then(I=>(K=I.useMapClustering({getMap:()=>ue.value,mapId:N,mapStore:g,getPeopleGroups:()=>ye.normalizedPeopleGroups.value||[],getClusterColor:()=>{var G,J;return((J=wo((G=j.value)==null?void 0:G.colorStrategy))==null?void 0:J.fallback)??"#7c8cf8"}}),K))),te)}const X={setData(I){var G;(G=K==null?void 0:K.setData)==null||G.call(K,I)},applyFilters(I){var G;(G=K==null?void 0:K.applyFilters)==null||G.call(K,I)},refreshColors(){var I;(I=K==null?void 0:K.refreshColors)==null||I.call(K)},cleanup(){var I;(I=K==null?void 0:K.cleanup)==null||I.call(K)},async setEnabled(I){var G,J;(J=(G=await U()).setEnabled)==null||J.call(G,I)},async setMode(I){var G,J;(J=(G=await U()).setMode)==null||J.call(G,I)},_pendingSelectionFilter:null,setSelectionFilter(I){this._pendingSelectionFilter=I||null,K!=null&&K.setSelectionFilter&&K.setSelectionFilter(I)},flushSelectionFilter(){K!=null&&K.setSelectionFilter&&K.setSelectionFilter(this._pendingSelectionFilter)}},ne=Ja({});St("legendRows",ne.rows),St("normalizedPeopleGroups",ye.normalizedPeopleGroups);const w=d_(()=>ue.value),A=Ow(N);Dw(A);const{onPeopleGroupResult:W,onAggregateResult:re,onClear:be,clearGeocoderProgrammatic:fe}=v_({map:ue,geocoderRef:ee,clustering:X,mapStore:g,uiStore:d,mapLayers:$,pplrInstance:A,onSemanticTreeSelect:ia,switchTab:ms,activeTabId:z,clearAllHighlights:bs,clearCountryHighlight:Le,mapId:N,legendRouters:{country:y3,region:b3,religion:m3}});A.activeTab.value=2;function Z(I){return I==="doxa-regions"?2:I==="affinity-block"?0:I==="language-family"?1:0}De(O,I=>{A.activeTab.value=Z(I)});const P={get value(){return ye.normalizedPeopleGroups.value||[]}},{langTree:Y}=vl(P),ge=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor (e.g. Indo-European, Afro-Asiatic)."},{id:"language",label:"Language",info:"A language is a system of communication used by a people (e.g. Arabic, Bengali, Hindi)."},{id:"dialect",label:"Dialect/Variety",info:"A dialect/variety is a regional or social form of a language (e.g. Arabic, Sudanese; Pakistan Sign Language)."}],{affinityTree:xe}=vg(P),Se=[{id:"bloc",label:"Affinity Block",info:"Affinity Block (field: rop1) — broadest grouping by cultural/linguistic/geographic kinship. 16 blocks total. Examples: Malay Peoples, South Asian Peoples, Deaf, Arab World."},{id:"cluster",label:"Cluster",info:'Cluster (field: imb_reg_of_people_2, ROP 2) — finer-grained grouping inside a bloc. 194 clusters total. Suffix "(Cluster)" appears on each row to distinguish from PG/PGIC. Example: Borneo-Kalimantan within Malay Peoples.'},{id:"group",label:"People Group",info:'People Group (field: imb_reg_of_people_25, ROP 2.5) — abstract ethnolinguistic identity, country-agnostic. Suffix "(PG)" on each row. 1,736 PGs total; 131 of them have rows in multiple countries (e.g. Deaf in 123 countries). Example: Abai Sungai (PG) is one ROP25 code regardless of where its people live.'},{id:"pgic",label:"PG in Country",info:'PGIC = People Group In Country (field: imb_reg_of_people_3 + country_code) — one row per (people group, country) pair. Suffix "(PGIC)" on each row. 2,106 rows total. Example: "Abai Sungai, Malaysia (PGIC)" is the Abai Sungai PG specifically as it exists in Malaysia.'}],{regionsTree:Fe}=_g(P),Ne=[{id:"region",label:"WAGF Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"WAGF Bloc",info:'WAGF bloc — the organizational sub-grouping within each region (e.g. "South East Asia", "West Africa").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],pt=Ja(wr(()=>O.value),ds);function Ke(I){const G=[];for(const J of I){G.push({id:J.key,label:J.label,color:J.color,count:J.count??0,pop:J.population??0,filter:J.filterKey?["==",["get","_flat_filter"],J.filterKey]:null,children:[]});for(const se of J.children||[])G.push({id:se.key,label:se.label,color:se.color,count:se.count??0,pop:se.population??0,filter:se.filterKey?["==",["get","_flat_filter"],se.filterKey]:null,children:[]})}return G}const He=Q(()=>["prayer","engagement","adoption","religion"].includes(O.value)),sa=Q(()=>He.value?Ke(pt.items.value):O.value==="affinity-block"?xe.value:O.value==="doxa-regions"?Fe.value:Y.value),fs=Q(()=>He.value?null:O.value==="affinity-block"?Se:O.value==="doxa-regions"?Ne:ge),i3=Q(()=>He.value),l3=Q(()=>O.value==="religion"?x("legend.colLabel.religion"):O.value==="prayer"?x("legend.colLabel.prayer"):O.value==="engagement"?x("legend.colLabel.engagement"):O.value==="adoption"?x("legend.colLabel.adoption"):He.value?x("legend.colLabel.status"):""),c3=Q(()=>d.legendState!=="collapsed");function u3(I){I?d.openLegend():d.collapseLegend()}const Kg=Q(()=>He.value?x("legend.titleBar.legend"):O.value==="affinity-block"?x("legend.titleBar.peopleGroups"):O.value==="doxa-regions"?x("legend.titleBar.wagfRegions"):x("legend.titleBar.languages"));function Tn(I,G){var J;for(const se of I){if(G(se))return se;if((J=se.children)!=null&&J.length){const _e=Tn(se.children,G);if(_e)return _e}}return null}St("onSemanticTreeSelect",I=>ia(I)),St("getActivePinColor",I=>{var J,se;const G=wo(((J=j.value)==null?void 0:J.colorStrategy)??"languageFamily");return((se=G==null?void 0:G.getColor)==null?void 0:se.call(G,I))??"#1a1a1a"});function d3(I,G){if(!I||!G)return null;const J=I.id;if(G==="prayer"){const se=["to-number",["get","peoplePraying"]];if(J==="noPrayer")return["==",se,0];if(J==="fullPrayer")return[">=",se,ko];if(J==="hasPrayer")return["all",[">",se,0],["<",se,ko]]}else if(G==="engagement"){if(J==="hasEngagement")return["==",["get","engagementStatus"],!0];if(J==="notEngaged")return["==",["get","engagementStatus"],!1]}else if(G==="adoption"){if(J==="hasAdoption")return["==",["get","adoptionStatus"],!0];if(J==="notAdopted")return["==",["get","adoptionStatus"],!1]}else if(G==="religion")return["==",["slice",["coalesce",["get","religion"],""],0,1],J];return null}function ia(I){var se,_e,ze,Je,rt,st,_t,pn;const G=ue.value;if(I){const tt=He.value?d3(I,O.value):null,Ue=((se=j.value)==null?void 0:se.id)==="doxa-regions",wt=tt?{matchExpr:tt}:{};Ue&&(wt.regionPolygonSource="regions"),(_e=F.zoomToLegendRow)==null||_e.call(F,I,Object.keys(wt).length?wt:void 0)}if(!I){if(He.value){const tt=O.value;tt==="prayer"?d.setPrayerFilter(null):tt==="engagement"?d.setEngagementFilter(null):tt==="adoption"?d.setAdoptionFilter(null):tt==="religion"&&d.setReligionFilter(null)}if(G&&G.getLayer("language-family-pins")){try{G.setFilter("language-family-pins",null)}catch{}n(G,null),G.setPaintProperty("language-family-pins","circle-opacity",1),G.setPaintProperty("language-family-pins","circle-stroke-opacity",1),G.getLayer("language-family-pins-shadow")&&G.setPaintProperty("language-family-pins-shadow","circle-opacity",1),$.syncGlowFilter(null)}G&&G.getLayer("regions-fill")&&(G.setPaintProperty("regions-fill","fill-opacity",.7),G.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),G.setPaintProperty("regions-border","line-width",.6)),g.selectedFamily&&g.selectFamily(null),g.selectedLanguage&&g.selectLanguage(null),g.selectedDialect&&((ze=g.selectDialect)==null||ze.call(g,null)),g.selectedRegion&&((Je=g.selectRegion)==null||Je.call(g,null)),fe();return}if(He.value){const tt=O.value;tt==="prayer"?d.setPrayerFilter(I.id):tt==="engagement"?d.setEngagementFilter(I.id):tt==="adoption"?d.setAdoptionFilter(I.id):tt==="religion"&&d.setReligionFilter(I.id);return}if(G&&G.getLayer("language-family-pins")&&I.filter){try{G.setFilter("language-family-pins",I.filter)}catch{}n(G,I.filter),G.setPaintProperty("language-family-pins","circle-opacity",1),G.setPaintProperty("language-family-pins","circle-stroke-opacity",1),$.syncGlowFilter(I.filter)}const J=String(I.id||"");if(J.startsWith("fam:"))(rt=g.selectFamily)==null||rt.call(g,I.label);else if(J.startsWith("lang:"))(st=g.selectLanguage)==null||st.call(g,I.label);else if(J.startsWith("dial:"))(_t=g.selectDialect)==null||_t.call(g,{key:J.slice(5),originalLabels:I.originalLabels||[]});else if(J.startsWith("bloc:")||J.startsWith("cluster:")||J.startsWith("pg:")||J.startsWith("pgic:")){if(G&&G.getLayer("language-family-pins")&&I.filter){try{G.setFilter("language-family-pins",null)}catch{}n(G,I.filter),G.setPaintProperty("language-family-pins","circle-opacity",["case",I.filter,1,0]),G.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",I.filter,1,0]),G.getLayer("language-family-pins-shadow")&&G.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",I.filter,1,0]),$.syncGlowFilter(I.filter)}}else if(J.startsWith("region:")||J.startsWith("block:")||J.startsWith("country:")){if(G&&G.getLayer("language-family-pins")&&I.filter){try{G.setFilter("language-family-pins",I.filter)}catch{}n(G,I.filter),G.setPaintProperty("language-family-pins","circle-opacity",1),G.setPaintProperty("language-family-pins","circle-stroke-opacity",1)}if(J.startsWith("region:")&&((pn=g.selectRegion)==null||pn.call(g,J.slice(7))),G&&G.getLayer("regions-fill")){const tt=I.isoCodes||[];if(tt.length){const Ue=["literal",tt];G.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],Ue],.85,.15]),G.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],Ue],"#111827","rgba(60,60,80,0.15)"]),G.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],Ue],2.5,.3])}else G.setPaintProperty("regions-fill","fill-opacity",.7),G.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),G.setPaintProperty("regions-border","line-width",.6)}}}De(()=>d.theme,I=>{A.theme.value=I==="dark"?"dark":"light"},{immediate:!0});function dn(I,G){var se,_e;if(!G){const ze=A.selection.value;ze&&((se=ze.id)!=null&&se.startsWith(I+":"))&&(A.selection.value=null);return}const J=A.selection.value;J&&((_e=J.id)!=null&&_e.startsWith(I+":"))&&J.label===G.label||(A.selection.value=G)}De(()=>g.selectedFamily,I=>{if(!I)return dn("fam",null);const G=Tn(Y.value,J=>J.id.startsWith("fam:")&&J.label===I);G&&dn("fam",{...G,depth:0})}),De(()=>g.selectedLanguage,I=>{if(!I)return dn("lang",null);const G=Tn(Y.value,J=>J.id.startsWith("lang:")&&J.label===I);G&&dn("lang",{...G,depth:1})}),De(()=>g.selectedDialect,I=>{if(!(I!=null&&I.key))return dn("dial",null);const G=`dial:${I.key}`,J=Tn(Y.value,se=>se.id===G);J&&dn("dial",{...J,depth:2})}),De(()=>g.selectedRegion,I=>{if(!I)return dn("region",null);const G=Tn(Fe.value,J=>J.id===`region:${I}`);G&&dn("region",{...G,depth:0})});const hs=le(null);async function Hg(){hs.value||(hs.value=await a()),Nl.value=!0}function p3(I){if(I==="poster")return Hg();if(I==="packet")return f3()}let Pl=!1;function g3(I,G){const J=URL.createObjectURL(I),se=document.createElement("a");se.href=J,se.download=G,document.body.appendChild(se),se.click(),se.remove(),setTimeout(()=>URL.revokeObjectURL(J),1e3)}async function f3(){var I;if(!Pl){Pl=!0;try{o||(o=qt(()=>Promise.resolve().then(()=>s3),void 0).then(Je=>Je.useMapPacket(()=>ue.value)));const G=await o;let J=ye.normalizedPeopleGroups.value||[];J.length>50&&(console.warn(`[research-map] packet export truncated ${J.length} → 50 people groups`),J=J.slice(0,50));const{defaultPosterSpec:se}=await qt(async()=>{const{defaultPosterSpec:Je}=await Promise.resolve().then(()=>qS);return{defaultPosterSpec:Je}},void 0),_e=se({widthIn:8.27,heightIn:11.69,dpi:150,orientation:"portrait"});_e.slots.title={..._e.slots.title,text:Kg.value||"Doxa Map"},_e.slots.legend={..._e.slots.legend,rows:((I=ne==null?void 0:ne.rows)==null?void 0:I.value)||[]};const ze=await G.renderPacket(_e,J,{source:"pray.doxa.life",date:new Date().toISOString().slice(0,10)});g3(ze,"packet.pdf")}catch(G){console.error("[research-map] packet export failed:",G)}finally{Pl=!1}}}const Vg=le(!1),Nl=le(!1),qg=Q(()=>g.selectedFeature),Ht=Q(()=>d.isDarkTheme),Ml=Q(()=>Lp.lightPreset==="night");function Il(){var J;const I=ue.value;if(!I||!I.getLayer("language-family-pins"))return;const G=Ml.value?"#ffffff":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"];I.setPaintProperty("language-family-pins","circle-stroke-color",G),I.setPaintProperty("language-family-pins","circle-stroke-width",Ml.value?e_((J=j.value)==null?void 0:J.colorStrategy):Qp)}De(Ml,Il,{immediate:!1}),De(()=>{var I;return(I=j.value)==null?void 0:I.id},Il),De(()=>d.theme,()=>h.applyTheme(ue.value));function h3(){h.swapTheme(ue.value)}const Wg=le(!1);let er=null;async function tr(){if(!Wg.value)return er||(er=(async()=>{var I,G,J;try{const se=await((I=ye.loadRegionsData)==null?void 0:I.call(ye));se&&ue.value&&((G=$.addRegionsLayer)==null||G.call($,se,"doxa-regions"),ue.value.getLayer("regions-fill")&&((J=j.value)==null?void 0:J.id)!=="doxa-regions"&&(ue.value.setLayoutProperty("regions-fill","visibility","none"),ue.value.setLayoutProperty("regions-border","visibility","none")),ue.value.getLayer("language-family-pins")&&ue.value.moveLayer("language-family-pins")),Wg.value=!0,ye.regionsData.value=null}catch(se){console.warn("[research-map] regions layer failed:",se)}finally{er=null}})(),er)}function ms(I){var se,_e,ze;if(I===z.value)return;z.value=I,(se=d.setActiveTab)==null||se.call(d,I),fe();const G=R.value.find(Je=>Je.id===I);if(!G||!ue.value)return;h.applyTheme(ue.value),G.id==="doxa-regions"&&tr();const J=wo(G.colorStrategy);if(ue.value.getLayer("language-family-pins")&&(J!=null&&J.buildColorExpression)){const Je=G.id==="doxa-regions"?"#a30000":J.buildColorExpression();ue.value.setPaintProperty("language-family-pins","circle-color",Je),bs(ue.value),G.id==="prayer"?$.startPrayerGlow():$.stopPrayerGlow();const rt=G.id==="doxa-regions";ue.value.getLayer("regions-fill")&&(ue.value.setLayoutProperty("regions-fill","visibility",rt?"visible":"none"),ue.value.setLayoutProperty("regions-border","visibility",rt?"visible":"none")),ue.value.getLayer("language-family-pins")&&ue.value.moveLayer("language-family-pins")}(_e=ne.refresh)==null||_e.call(ne),(ze=X.refreshColors)==null||ze.call(X)}function Yg(I){var J,se;const G=I==null?void 0:I.detail;!G||G.mapId!==N||(G.center&&Array.isArray(G.center)?(J=F.flyToCoords)==null||J.call(F,{longitude:G.center[0],latitude:G.center[1]},G.zoom??4):G.bounds&&((se=F.fitBounds)==null||se.call(F,G.bounds,60)))}function Xg(I){var st,_t,pn;const G=I==null?void 0:I.detail;if(!G||($t(G),!((st=G.coords)!=null&&st.length)))return;const J=G.coords;if(J.length===1){(_t=F.flyToCoords)==null||_t.call(F,{longitude:J[0][0],latitude:J[0][1]},3);return}let se=1/0,_e=-1/0,ze=1/0,Je=-1/0;for(const[tt,Ue]of J)tt_e&&(_e=tt),UeJe&&(Je=Ue);const rt=G.kind==="region"?2.2:3;(pn=F.fitBounds)==null||pn.call(F,[[se,ze],[_e,Je]],60,{maxZoom:rt})}const Vt={family:null,language:null,dialect:null,region:null,prayer:null,engagement:null,adoption:null};function bs(I){I.setPaintProperty("language-family-pins","circle-opacity",1),I.setPaintProperty("language-family-pins","circle-stroke-opacity",1),I.getLayer("language-family-pins-shadow")&&I.setPaintProperty("language-family-pins-shadow","circle-opacity",1),I.setFilter("language-family-pins",null),n(I,null),$.syncGlowFilter(null),I.getLayer("regions-fill")&&(I.setPaintProperty("regions-fill","fill-opacity",.7),I.setPaintProperty("regions-fill","fill-outline-color",null)),I.getLayer("regions-border")&&(I.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),I.setPaintProperty("regions-border","line-width",.6)),Vt.family=Vt.language=Vt.dialect=Vt.region=null,Vt.prayer=Vt.engagement=Vt.adoption=null,d.prayerFilter&&d.setPrayerFilter(null),d.engagementFilter&&d.setEngagementFilter(null),d.adoptionFilter&&d.setAdoptionFilter(null),d.religionFilter&&d.setReligionFilter(null),X.setSelectionFilter(null),g.selectedFamily&&g.selectFamily(null),g.selectedLanguage&&g.selectLanguage(null),g.selectedDialect&&g.selectDialect(null);try{A&&A.selection&&A.selection.value&&(A.selection.value=null)}catch{}}let ys=null,vs=0;function $t(I){var rt,st,_t,pn,tt;const G=ue.value;if(!G||!G.getLayer("language-family-pins"))return;let J,se,_e;if(I.kind==="family")_e="family",J="languageFamily",se=I.familyKey;else if(I.kind==="language")_e="language",J="language",se=I.languageKey;else if(I.kind==="region")_e="region",J="doxaRegion",se=I.regionKey;else if(I.kind==="prayer")_e="prayer",J=I.property||"peoplePraying",se=I.expectedValue;else if(I.kind==="engagement")_e="engagement",J=I.property||"engagementStatus",se=I.expectedValue;else if(I.kind==="adoption")_e="adoption",J=I.property||"adoptionStatus",se=I.expectedValue;else if(I.kind==="religion")_e="religion",J=I.property||"religion",se=I.expectedValue;else if(I.kind==="dialect")_e="dialect",J="language",se=I.dialectKey||"";else{bs(G),fe();for(const Ue of Object.keys(Vt))Vt[Ue]=null;ys=null,vs=0;return}const ze=Date.now(),Je=`${_e}|${se}`;if(!(ys===Je&&ze-vs<80)){if(ys=Je,vs=ze,Vt[_e]===se){bs(G),fe(),ys=null,vs=0;return}for(const Ue of Object.keys(Vt))Vt[Ue]=null;if(Vt[_e]=se,_e==="family"?(rt=g.selectFamily)==null||rt.call(g,se):_e==="region"?(st=g.selectRegion)==null||st.call(g,se):_e==="language"?(_t=g.selectLanguage)==null||_t.call(g,se):_e==="dialect"&&((pn=g.selectDialect)==null||pn.call(g,{key:se,originalLabels:I.originalLabels||[]})),X.setSelectionFilter({property:J,value:se}),_e==="region"){if(G.setFilter("language-family-pins",["==",["get","doxaRegion"],se]),n(G,["==",["get","doxaRegion"],se]),G.setPaintProperty("language-family-pins","circle-opacity",1),G.setPaintProperty("language-family-pins","circle-stroke-opacity",1),G.getLayer("regions-fill")){const Ue=((tt=$.regionIsoMap)==null?void 0:tt.value)||{},wt=Pn=>String(Pn).toLowerCase().replace(/[^a-z]/g,""),_3=wt(se);let _s=Ue[se]||[];if(!_s.length){for(const[Pn,x3]of Object.entries(Ue))if(wt(Pn)===_3){_s=x3;break}}if(_s.length){const Pn=["literal",_s];G.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],Pn],.85,.15]),G.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],Pn],"#111827","rgba(60,60,80,0.15)"]),G.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],Pn],2.5,.3])}else G.setPaintProperty("regions-fill","fill-opacity",.7),G.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),G.setPaintProperty("regions-border","line-width",.6)}}else{G.setFilter("language-family-pins",null);let Ue;if(_e==="prayer"){const wt=["to-number",["get",J]];se==="noPrayer"?Ue=["==",wt,0]:se==="fullPrayer"?Ue=[">=",wt,ko]:se==="hasPrayer"?Ue=["all",[">",wt,0],["<",wt,ko]]:Ue=["==",["get",J],se]}else if(_e==="engagement")Ue=["==",["get",J],se==="hasEngagement"];else if(_e==="adoption")Ue=["==",["get",J],se==="hasAdoption"];else if(_e==="religion")Ue=["==",["slice",["coalesce",["get",J],""],0,1],se];else if(I.filterExpr)Ue=I.filterExpr;else if(_e==="language")Ue=["any",["==",["get",J],se],["==",["slice",["get",J],0,se.length+1],se+","],["in"," "+se,["get",J]]];else if(_e==="dialect"){const wt=I.originalLabels||[];wt.length===1?Ue=["==",["get",J],wt[0]]:wt.length>1?Ue=["in",["get",J],["literal",wt]]:Ue=["==",["get",J],se]}else Ue=["==",["get",J],se];G.setPaintProperty("language-family-pins","circle-opacity",["case",Ue,1,0]),G.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",Ue,1,0]),G.getLayer("language-family-pins-shadow")&&G.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",Ue,1,0]),n(G,Ue),$.syncGlowFilter(Ue),G.getLayer("regions-fill")&&(G.setPaintProperty("regions-fill","fill-opacity",.2),G.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),G.setPaintProperty("regions-border","line-width",.6))}}}function m3(I,{map:G,filterLayerId:J}){const se=I.label;try{G.setFilter(J,null)}catch{}const _e=Object.keys(Cn).find(ze=>Cn[ze]===se);if(_e){const ze={id:_e,label:se,depth:0},Je=()=>{try{G.setFilter(J,null)}catch{}ia(ze),A&&A.selection&&(A.selection.value=ze)};z.value!=="religion"&&ms("religion"),jt(Je)}}function b3(I,{map:G,filterLayerId:J}){const se=I.label,_e=st=>String(st).toLowerCase().replace(/[^a-z0-9]/g,""),ze=st=>String(st||"").replace(/\s*\((?:Region|Bloc)\)\s*$/i,""),Je=_e(se),rt=()=>{try{G.setFilter(J,null)}catch{}const st=Tn(Fe.value,_t=>(_t.id.startsWith("region:")||_t.id.startsWith("block:"))&&_e(ze(_t.label))===Je);st&&(ia(st),A&&A.selection&&(A.selection.value=st))};z.value!=="doxa-regions"?(ms("doxa-regions"),Promise.resolve(tr()).finally(()=>jt(rt))):rt()}function y3(I){var J,se,_e,ze;if(Array.isArray(I.bounds)&&I.bounds.length===4){const[Je,rt,st,_t]=I.bounds;(J=F.fitBounds)==null||J.call(F,[[Je,rt],[st,_t]],60)}else Array.isArray(I.center)&&I.center.length===2&&((se=F.flyTo)==null||se.call(F,I.center));const G=c_(I,ye.normalizedPeopleGroups.value||[]);if(G&&me(G),G&&((_e=j.value)==null?void 0:_e.id)!=="doxa-regions"&&w.showCountry(G),G&&((ze=j.value)==null?void 0:ze.id)==="doxa-regions"){const Je=()=>{const rt=Tn(Fe.value,st=>st.id.startsWith("country:")&&(st.isoCodes||[]).includes(G));rt&&(ia(rt),A&&A.selection&&(A.selection.value=rt))};Promise.resolve(tr()).finally(()=>jt(Je))}}De(()=>g.filters,()=>{var I,G;(I=$.applyFilters)==null||I.call($,g.filters),(G=X.applyFilters)==null||G.call(X,g.filters)},{deep:!0}),De(()=>g.selectedRegion,I=>{$t(I?{kind:"region",regionKey:I}:{kind:null})}),De(()=>g.selectedFamily,I=>{I?$t({kind:"family",familyKey:I}):!g.selectedLanguage&&!g.selectedDialect&&$t({kind:null})}),De(()=>g.selectedLanguage,I=>{I?$t({kind:"language",languageKey:I}):!g.selectedFamily&&!g.selectedDialect&&$t({kind:null})}),De(()=>g.selectedDialect,I=>{I!=null&&I.key?$t({kind:"dialect",dialectKey:I.key,originalLabels:I.originalLabels||[]}):!g.selectedFamily&&!g.selectedLanguage&&$t({kind:null})}),De(()=>d.prayerFilter,I=>{$t(I?{kind:"prayer",property:"peoplePraying",expectedValue:I}:{kind:null})}),De(()=>d.engagementFilter,I=>{$t(I?{kind:"engagement",property:"engagementStatus",expectedValue:I}:{kind:null})}),De(()=>d.adoptionFilter,I=>{$t(I?{kind:"adoption",property:"adoptionStatus",expectedValue:I}:{kind:null})}),De(()=>d.religionFilter,I=>{$t(I?{kind:"religion",property:"religion",expectedValue:I}:{kind:null})}),De(()=>g.showClusters,async I=>{var G,J,se,_e;I?(await((G=X.setMode)==null?void 0:G.call(X,"mst")),(J=X.flushSelectionFilter)==null||J.call(X),await((se=X.setEnabled)==null?void 0:se.call(X,!0))):await((_e=X.setEnabled)==null?void 0:_e.call(X,!1))});async function v3(I){var G,J,se,_e,ze,Je,rt;g.registerMap(N,ue.value);try{ue.value.setProjection("mercator")}catch{}h.applyTheme(ue.value),I!=null&&I.length&&($.addLanguageFamilyLayer(I,((G=j.value)==null?void 0:G.colorStrategy)??"languageFamily"),((J=j.value)==null?void 0:J.id)==="doxa-regions"&&((se=ue.value)!=null&&se.getLayer("language-family-pins"))&&ue.value.setPaintProperty("language-family-pins","circle-color","#4b5563"),((_e=j.value)==null?void 0:_e.id)==="prayer"&&$.startPrayerGlow(),(ze=X.setData)==null||ze.call(X,I),(Je=ne.build)==null||Je.call(ne,I),B.initialize()),((rt=j.value)==null?void 0:rt.id)==="doxa-regions"&&(typeof window<"u"&&window.requestIdleCallback?_t=>window.requestIdleCallback(_t,{timeout:2e3}):_t=>setTimeout(_t,800))(()=>{tr()}),Il(),g.setMapReady(N),pe.value=!0}let or=null;function Jg(I){const G=q.value;G&&(I>=700?(G.style.setProperty("--map-btn-size","40px"),G.style.setProperty("--map-toolbar-gap","8px"),G.style.setProperty("--map-font-md","13px"),G.style.setProperty("--map-font-sm","11px"),G.style.setProperty("--map-legend-width","380px")):I>=500?(G.style.setProperty("--map-btn-size","36px"),G.style.setProperty("--map-toolbar-gap","6px"),G.style.setProperty("--map-font-md","12px"),G.style.setProperty("--map-font-sm","10px"),G.style.setProperty("--map-legend-width","360px")):(G.style.setProperty("--map-btn-size","32px"),G.style.setProperty("--map-toolbar-gap","5px"),G.style.setProperty("--map-font-md","11px"),G.style.setProperty("--map-font-sm","10px"),G.style.setProperty("--map-legend-width","280px")))}return Zt(async()=>{var G,J,se;(G=d.init)==null||G.call(d),z.value=xg,d.isMobile?(J=d.collapseLegend)==null||J.call(d):(se=d.openLegend)==null||se.call(d),q.value&&(Jg(q.value.getBoundingClientRect().width),typeof ResizeObserver<"u"&&(or=new ResizeObserver(_e=>{for(const ze of _e)Jg(ze.contentRect.width)}),or.observe(q.value))),window.addEventListener("doxa:legend-row-click",Yg),window.addEventListener("legend:highlight",Xg);const I=ye.loadData().catch(_e=>(console.error("[research-map] data load failed:",_e),{normalizedPeopleGroups:[]}));try{await Ee()}catch(_e){console.error("[countries-map] Map failed to initialize —",_e),we.value=String((_e==null?void 0:_e.message)||_e);return}if(!ue.value){console.error("[countries-map] Map failed to initialize — check token and container"),we.value="Map failed to initialize — check token and container";return}ue.value.once("style.load",async()=>{try{const{normalizedPeopleGroups:_e}=await I;await v3(_e)}catch(_e){console.error("[countries-map] onMapReady failed:",_e),we.value=String((_e==null?void 0:_e.message)||_e)}})}),ho(()=>{var I,G,J,se;window.removeEventListener("doxa:legend-row-click",Yg),window.removeEventListener("legend:highlight",Xg),or&&(or.disconnect(),or=null),(G=(I=hs.value)==null?void 0:I.cleanup)==null||G.call(I),$.stopPrayerGlow(),(J=X.cleanup)==null||J.call(X),(se=B.cleanup)==null||se.call(B),g.unregisterMap(N),Ae()}),(I,G)=>(V(),ae("div",{ref_key:"rmRoot",ref:q,class:$e(["rm-root",{"rm-dark":Ht.value,"dsm-dark":Ht.value}])},[S.value?(V(),ae("div",{key:0,ref_key:"tabBar",ref:ce,class:"rm-tab-bar"},[(V(!0),ae(Ie,null,yt(R.value,J=>(V(),ae(Ie,{key:J.id},[C("button",{class:$e(["rm-tab",{active:z.value===J.id}]),onClick:se=>ms(J.id)},he(v(J)),11,HA),J.sepAfter?(V(),ae("div",VA)):ve("",!0)],64))),128))],512)):ve("",!0),C("div",qA,[!pe.value&&!we.value?(V(),ae("div",WA,"Research map loading…")):ve("",!0),we.value?(V(),ae("div",YA,"The map could not be loaded. "+he(we.value),1)):ve("",!0),C("div",{ref_key:"mapContainer",ref:H,class:"rm-map-canvas"},null,512),G[4]||(G[4]=C("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),G[5]||(G[5]=C("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),pe.value&&de(ue)?(V(),Ge(Mk,{key:2,ref_key:"geocoderRef",ref:ee,"map-instance":de(ue),"access-token":de(c),"data-source-id":de(u),"is-dark":Ht.value,placeholder:M.value,"active-context":T.value,onPeopleGroupResult:de(W),onAggregateResult:de(re),onClear:de(be)},null,8,["map-instance","access-token","data-source-id","is-dark","placeholder","active-context","onPeopleGroupResult","onAggregateResult","onClear"])):ve("",!0),ve("",!0),pe.value&&de(ue)?(V(),Ge(sk,{key:4},{default:Mt(()=>[Ze(lk,{map:de(ue),"is-dark":Ht.value},null,8,["map","is-dark"]),Ze(ck,{map:de(ue),"is-dark":Ht.value},null,8,["map","is-dark"]),Ze(uk,{map:de(ue),"is-dark":Ht.value},null,8,["map","is-dark"]),Ze(gk,{"map-container":H.value,"is-dark":Ht.value},null,8,["map-container","is-dark"]),Ze(hk,{"is-dark":Ht.value,onToggle:h3},null,8,["is-dark"]),p.share?(V(),Ge(nw,{key:0,"is-dark":Ht.value,"embed-path":"country-posters/countries-map/index.html"},null,8,["is-dark"])):ve("",!0)]),_:1})):ve("",!0),pe.value?(V(),Ge(rk,{key:5,"legend-type":O.value,"is-dark":Ht.value},null,8,["legend-type","is-dark"])):ve("",!0),pe.value?(V(),Ge(mw,{key:6,"is-open":Vg.value,onClose:G[1]||(G[1]=J=>Vg.value=!1),onOpenPoster:Hg},{default:Mt(()=>[Ze(Fw)]),_:1},8,["is-open"])):ve("",!0),C("div",XA,[pe.value&&de(d).legendMode==="detail"&&de(d).selectedPeopleGroup?(V(),Ge(Yx,{key:0,"legend-type":O.value,"popup-action":D.value,"initially-collapsed":!1,"is-dark":Ht.value},null,8,["legend-type","popup-action","is-dark"])):ve("",!0),zt(C("div",null,[pe.value?(V(),Ge(yg,{key:0,nodes:sa.value,tabs:fs.value,title:Kg.value,hideTabs:i3.value,columnLabel:l3.value,open:c3.value,"export-enabled":ZA,onSelect:ia,onExport:p3,"onUpdate:open":u3},null,8,["nodes","tabs","title","hideTabs","columnLabel","open"])):ve("",!0)],512),[[Ku,!(de(d).legendMode==="detail"&&de(d).selectedPeopleGroup)]])]),C("div",JA,[pe.value?(V(),Ge(de(r),{key:0,"legend-type":O.value,"popup-action":D.value,"is-dark":Ht.value},null,8,["legend-type","popup-action","is-dark"])):ve("",!0)]),pe.value&&qg.value?(V(),Ge(de(s),{key:7,feature:qg.value,action:D.value,dark:Ht.value,onClose:G[2]||(G[2]=J=>de(g).selectFeature(null))},null,8,["feature","action","dark"])):ve("",!0),Nl.value?(V(),Ge(de(i),{key:8,poster:hs.value,"legend-rows":de(ne).rows,"active-tab":j.value,onClose:G[3]||(G[3]=J=>Nl.value=!1)},null,8,["poster","legend-rows","active-tab"])):ve("",!0)])],2))}}},Symbol.toStringTag,{value:"Module"})),tS={class:"wall-h"},oS={key:0,class:"wall-tag"},nS=["innerHTML"],aS={class:"sec-name"},rS={class:"sec-count"},sS={class:"grid"},iS=["data-list-id"],lS=["aria-label","onClick"],cS={class:"hcount"},uS={class:"main"},dS={key:0,class:"ph is-soon"},pS={class:"ph-label"},gS={key:0,class:"ph-count"},fS={class:"ph-soon"},hS=["src","alt","onError"],mS={key:2,class:"ph"},bS={class:"ph-label"},yS={key:0,class:"ph-count"},vS={class:"tape pfs"},_S=["onClick"],xS=["onClick"],kS={class:"modal",role:"dialog","aria-live":"polite"},wS={class:"modal-kind"},AS={class:"modal-title"},SS={class:"modal-err"},LS={class:"modal-soon"},CS={class:"bar"},$S={class:"modal-phase"},ES={__name:"PosterWall",props:{items:{type:Array,required:!0},groupBy:{type:Function,default:()=>"All"},instanceId:{type:String,default:"poster-wall"},isDark:{type:Boolean,default:!1},assetsBase:{type:String,default:"./assets"},eventName:{type:String,default:"doxa-poster-wall:show-on-map"},heading:{type:String,default:"Prayer Lists & Posters"},tag:{type:String,default:""},intro:{type:String,default:""},unit:{type:String,default:"UPG"},itemNoun:{type:String,default:"list"},itemNounPlural:{type:String,default:""},collapsible:{type:Boolean,default:!1},collapsedBy:{type:Function,default:()=>!1},unsupported:{type:Function,default:()=>null},downloadPrefix:{type:String,default:"doxa"},prayerListSoonMessage:{type:String,default:"Coming soon — the prayer list for each people group is in build."}},setup(e){const t=e,o=Q(()=>t.itemNounPlural||`${t.itemNoun}s`),n=Q(()=>String(t.assetsBase||"./assets").replace(/\/+$/,"")),a=y=>`${n.value}/previews/${y}.webp`,r=Q(()=>{const y=new Map;for(const d of t.items||[]){if(!d||!d.id)continue;const h=t.groupBy(d)||"Other";y.has(h)||y.set(h,[]),y.get(h).push(d)}return[...y.entries()].map(([d,h])=>({name:d,items:h.slice().sort((p,_)=>(_.count||0)-(p.count||0)),total:h.reduce((p,_)=>p+(_.count||0),0)})).sort((d,h)=>h.total-d.total)}),s=Q(()=>{const y={};for(const d of r.value)y[d.name]=!!t.collapsedBy(d);return y}),i=le({}),l=y=>t.collapsible?y in i.value?!!i.value[y]:!!s.value[y]:!1,c=y=>{i.value={...i.value,[y]:!l(y)}},u=le(null),f=le({});function b(y){const d=u.value===y.id;u.value=d?null:y.id,window.dispatchEvent(new CustomEvent(t.eventName,{detail:{instanceId:t.instanceId,listId:d?null:y.id,label:d?null:y.label}}))}const k=le(null);async function x(y){if(k.value)return;const d=t.unsupported(y);if(d){k.value={label:y.label,kind:"Poster",phase:"soon",message:d,pct:0};return}k.value={label:y.label,kind:"Poster",phase:"fetch",message:"fetching poster",pct:20};try{const h=await fetch(`${n.value}/posters/${y.id}.webp`);if(!h.ok)throw new Error(`poster not found (${h.status})`);k.value={...k.value,phase:"save",message:"saving",pct:80},v(await h.blob(),`${t.downloadPrefix}-${y.id}-poster.webp`),k.value={...k.value,phase:"done",message:"saved",pct:100},setTimeout(()=>{k.value=null},900)}catch(h){k.value={label:y.label,kind:"Poster",phase:"error",message:String((h==null?void 0:h.message)||h).slice(0,140),pct:0}}}function m(y){k.value={label:y.label,kind:"Prayer List",phase:"soon",message:t.prayerListSoonMessage,pct:0}}function v(y,d){const h=document.createElement("a");h.href=URL.createObjectURL(y),h.download=d,document.body.appendChild(h),h.click(),h.remove(),setTimeout(()=>URL.revokeObjectURL(h.href),4e3)}function g(){k.value=null}return mt(`.wall{position:absolute;inset:0;overflow-y:auto;padding:22px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.wall.is-dark{background:#0a1410;color:#e5e7eb}.wall-h{margin:0 0 6px;font-size:19px;font-weight:700;text-align:center}.wall-tag{margin:0 auto 12px;width:fit-content;padding:3px 11px;border-radius:999px;background:rgba(16,185,129,.13);color:#0b7a5b;border:1px solid rgba(16,185,129,.28);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.is-dark .wall-tag{background:rgba(16,185,129,.16);color:#6ee7b7;border-color:rgba(110,231,183,.32)}.wall-sub{margin:0 auto 22px;max-width:620px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.wall-sub strong{font-weight:700;opacity:1;color:inherit}.grid{display:grid;gap:64px 30px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));max-width:1180px;margin:0 auto}.card{position:relative;background:#fff;border:1px solid #e3e6ea;border-radius:3px;padding:24px 12px 26px;box-shadow:0 1px 3px rgba(0,0,0,.10),0 6px 18px rgba(0,0,0,.07);transition:transform .16s ease,box-shadow .16s ease}.card:hover{transform:translateY(-3px);box-shadow:0 3px 8px rgba(0,0,0,.14),0 12px 28px rgba(0,0,0,.10)}.is-dark .card{background:#132019;border-color:rgba(110,231,183,.20)}.tape{box-sizing:border-box;position:absolute;left:50%;transform:translateX(-50%);z-index:2;font-size:10.5px;font-weight:600;letter-spacing:.02em;cursor:pointer;border:1px solid rgba(0,0,0,.08);background:#eef2f6;color:#23303c}.is-dark .tape{background:#1d2b23;color:#cfe9d9;border-color:rgba(255,255,255,.10)}.tape-h{top:-11px;width:82%;padding:4px 8px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:5px}.tape-h:hover{background:#e2e8ee}.hcount{font-weight:800;font-variant-numeric:tabular-nums}.hsep{opacity:.45}.hlabel{font-weight:600}.card.is-last{box-shadow:0 0 0 2px #10b981,0 6px 18px rgba(0,0,0,.10)}.card.is-last .tape-h{background:#10b981;color:#04241a;border-color:#10b981}.pfs{position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);width:82%;margin:0;padding:0 4px 3px;border:1px solid rgba(0,0,0,.14);border-radius:2px;background:#fff;display:flex;gap:2px;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.10)}.is-dark .pfs{background:#132019;border-color:rgba(110,231,183,.24)}.pfs > legend{margin:0 auto;padding:0 5px;font-size:8px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:#8a93a0}.is-dark .pfs > legend{color:#7f9c8c}.pbtn{position:relative;flex:1;border:0;background:none;color:#5b6672;font:inherit;font-size:10.5px;font-weight:600;padding:2px 6px 3px;cursor:pointer;white-space:nowrap;transition:color .15s}.pbtn::after{content:"";position:absolute;left:6px;right:6px;bottom:0;height:2px;border-radius:2px;background:transparent;transition:background .15s}.pbtn:hover{color:#10b981}.pbtn:hover::after{background:#10b981}.is-dark .pbtn{color:#9fb3a8}.sec{max-width:1180px;margin:0 auto;padding-bottom:44px}.sec-head{display:flex;align-items:baseline;gap:10px;margin:0 2px 14px;padding:11px 10px 9px;border-bottom:1px solid rgba(0,0,0,.10);position:sticky;top:0;z-index:6;background:#f6f7f9;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{border-bottom-color:rgba(255,255,255,.12);background:#0a1410;box-shadow:0 6px 10px -8px rgba(0,0,0,.7)}.sec-head.is-shut{border-bottom-color:transparent;margin-bottom:6px}.sec-head.is-toggle{cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit}.sec-head.is-toggle:hover .sec-name{color:#10b981}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s ease}.sec-caret.is-open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700;letter-spacing:.01em}.sec-count{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.main{position:relative;aspect-ratio:1/1;border:1px solid #dfe3e7;overflow:hidden;background:#fbfcfd;display:flex;align-items:center;justify-content:center}.is-dark .main{background:#0c1712;border-color:rgba(255,255,255,.08)}.img{width:100%;height:100%;object-fit:contain;display:block}.ph{padding:14px 10px;text-align:center}.ph-label{font-size:12.5px;font-weight:700;line-height:1.3}.ph-count{margin-top:5px;font-size:11px;opacity:.7}.ph-note{margin-top:10px;font-size:9.5px;text-transform:uppercase;letter-spacing:.09em;opacity:.45}.ph.is-soon{background:rgba(245,158,11,.06)}.ph-soon{margin-top:9px;font-size:10px;line-height:1.45;color:#8a6414}.is-dark .ph-soon{color:#e8b862}.modal-scrim{position:fixed;inset:0;z-index:1000;background:rgba(8,12,16,.55);display:grid;place-items:center;padding:22px}.modal{width:min(340px,100%);background:#fff;color:#0f1419;border-radius:14px;padding:20px 22px;box-shadow:0 10px 40px rgba(0,0,0,.35);text-align:center}.is-dark .modal{background:#132019;color:#e5e7eb}.modal-kind{font-size:10px;text-transform:uppercase;letter-spacing:.1em;opacity:.55}.modal-title{margin:3px 0 14px;font-size:15px;font-weight:700;line-height:1.3}.bar{height:5px;border-radius:99px;background:rgba(0,0,0,.10);overflow:hidden}.is-dark .bar{background:rgba(255,255,255,.12)}.bar-fill{height:100%;background:#10b981;border-radius:99px;transition:width .25s ease}.modal-phase{margin-top:10px;font-size:12.5px;font-weight:600}.modal-hint{margin-top:6px;font-size:11px;line-height:1.5;opacity:.62}.modal-soon{font-size:13px;line-height:1.5;color:#5f5849;margin:6px 0 14px}.modal-err{font-size:12.5px;line-height:1.55;color:#b42318;margin-bottom:14px}.is-dark .modal-err{color:#fda29b}.modal-btn{border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit;font:inherit;font-size:12.5px;padding:6px 18px;border-radius:8px;cursor:pointer}.modal-btn:hover{background:rgba(0,0,0,.06)}`,"doxa-poster-wall"),(y,d)=>(V(),ae("div",{class:$e(["wall",{"is-dark":e.isDark}])},[C("h2",tS,he(e.heading),1),e.tag?(V(),ae("div",oS,he(e.tag),1)):ve("",!0),e.intro?(V(),ae("p",{key:1,class:"wall-sub",innerHTML:e.intro},null,8,nS)):ve("",!0),(V(!0),ae(Ie,null,yt(r.value,h=>(V(),ae("section",{key:h.name,class:"sec"},[(V(),Ge(ai(e.collapsible?"button":"div"),{class:$e(["sec-head",{"is-toggle":e.collapsible,"is-shut":e.collapsible&&l(h.name)}]),type:e.collapsible?"button":null,"aria-expanded":e.collapsible?String(!l(h.name)):null,onClick:p=>e.collapsible&&c(h.name)},{default:Mt(()=>[e.collapsible?(V(),ae("span",{key:0,class:$e(["sec-caret",{"is-open":!l(h.name)}])},"▶",2)):ve("",!0),C("h3",aS,he(h.name),1),C("span",rS,he(h.total.toLocaleString())+" people groups · "+he(h.items.length)+" "+he(h.items.length===1?e.itemNoun:o.value),1)]),_:2},1032,["class","type","aria-expanded","onClick"])),zt(C("div",sS,[(V(!0),ae(Ie,null,yt(h.items,p=>(V(),ae("div",{key:p.id,class:$e(["card",{"is-last":u.value===p.id}]),"data-list-id":p.id},[C("button",{type:"button",class:"tape tape-h","aria-label":`Show ${p.label} on the map`,onClick:_=>b(p)},[C("span",cS,he(p.count)+" "+he(e.unit),1),d[1]||(d[1]=C("span",{class:"hsep"},"·",-1)),d[2]||(d[2]=C("span",{class:"hlabel"},"Show on map",-1))],8,lS),C("div",uS,[e.unsupported(p)?(V(),ae("div",dS,[C("div",pS,he(p.label),1),p.count?(V(),ae("div",gS,he(p.count.toLocaleString())+" people groups",1)):ve("",!0),C("div",fS,he(e.unsupported(p)),1)])):f.value[p.id]?(V(),ae("div",mS,[C("div",bS,he(p.label),1),p.count?(V(),ae("div",yS,he(p.count.toLocaleString())+" people groups",1)):ve("",!0),d[3]||(d[3]=C("div",{class:"ph-note"},"poster not generated yet",-1))])):(V(),ae("img",{key:1,class:"img",src:a(p.id),alt:`${p.label} — prayer poster`,loading:"lazy",decoding:"async",onError:_=>f.value[p.id]=!0},null,40,hS))]),C("fieldset",vS,[d[4]||(d[4]=C("legend",null,"Print Options",-1)),C("button",{type:"button",class:"pbtn",onClick:_=>m(p)},"Prayer List",8,_S),C("button",{type:"button",class:"pbtn",onClick:_=>x(p)},"Poster Map",8,xS)])],10,iS))),128))],512),[[Ku,!l(h.name)]])]))),128)),k.value?(V(),ae("div",{key:2,class:"modal-scrim",onClick:d[0]||(d[0]=dt(h=>k.value.phase==="error"&&g(),["self"]))},[C("div",kS,[C("div",wS,he(k.value.kind),1),C("div",AS,he(k.value.label),1),k.value.phase==="error"?(V(),ae(Ie,{key:0},[C("div",SS,he(k.value.message),1),C("button",{type:"button",class:"modal-btn",onClick:g},"Close")],64)):k.value.phase==="soon"?(V(),ae(Ie,{key:1},[C("div",LS,he(k.value.message),1),C("button",{type:"button",class:"modal-btn",onClick:g},"Close")],64)):(V(),ae(Ie,{key:2},[C("div",CS,[C("div",{class:"bar-fill",style:Xe({width:k.value.pct+"%"})},null,4)]),C("div",$S,he(k.value.message),1),d[5]||(d[5]=C("div",{class:"modal-hint"}," Rendering a print-quality image in your browser — nothing is uploaded. ",-1))],64))])])):ve("",!0)],2))}},TS={countries:[{id:"country-ind",iso3:"IND",label:"India",count:855,region:"Asia",bbox:[68.772258,8.087722,97.021619,34.627874],sheet:null,hasGeometry:!1,unsupportedReason:"India has 855 people groups — too many to fit one poster legibly. A solution is in progress."},{id:"country-chn",iso3:"CHN",label:"People's Republic of China",count:154,region:"Asia",bbox:[73.723,18.221,134.797,53.349],sheet:"3x4",hasGeometry:!0,unsupportedReason:null},{id:"country-sdn",iso3:"SDN",label:"Sudan",count:105,region:"Middle East",bbox:[21.814,8.641,38.582,23.143],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bra",iso3:"BRA",label:"Brazil",count:103,region:"Latin America & Caribbean",bbox:[-73.988,-33.749,-34.794,5.27],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lao",iso3:"LAO",label:"Lao People's Democratic Republic",count:95,region:"Asia",bbox:[100.084,13.91,107.633,22.493],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tcd",iso3:"TCD",label:"Chad",count:53,region:"Africa",bbox:[13.473,7.441,24,23.498],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-nga",iso3:"NGA",label:"Nigeria",count:38,region:"Africa",bbox:[2.693,4.27,14.678,13.886],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-idn",iso3:"IDN",label:"Indonesia",count:36,region:"Asia",bbox:[95.194,-10.925,141.019,5.651],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-npl",iso3:"NPL",label:"Nepal",count:34,region:"Asia",bbox:[80.06,26.347,88.204,30.473],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-eth",iso3:"ETH",label:"Ethiopia",count:29,region:"Africa",bbox:[33.003,3.403,47.959,14.835],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-col",iso3:"COL",label:"Colombia",count:27,region:"Latin America & Caribbean",bbox:[-78.995,-4.224,-66.87,12.441],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pak",iso3:"PAK",label:"Pakistan",count:24,region:"Asia",bbox:[60.873,24.041,77.117,37.071],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ssd",iso3:"SSD",label:"South Sudan",count:22,region:"Africa",bbox:[24.152,3.481,35.951,12.236],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-rus",iso3:"RUS",label:"Russian Federation",count:21,region:"Europe",bbox:[-180,41.187,180,82.055],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-afg",iso3:"AFG",label:"Afghanistan",count:21,region:"Asia",bbox:[60.472,29.377,74.889,38.491],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-irn",iso3:"IRN",label:"Islamic Republic of Iran",count:20,region:"Middle East",bbox:[44.015,25.059,63.32,39.766],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-dza",iso3:"DZA",label:"Algeria",count:17,region:"Middle East",bbox:[-8.669,18.968,11.997,37.09],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vnm",iso3:"VNM",label:"Vietnam",count:16,region:"Asia",bbox:[102.144,8.556,109.463,23.394],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tza",iso3:"TZA",label:"United Republic of Tanzania",count:16,region:"Africa",bbox:[29.596,-11.744,40.431,-.987],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lby",iso3:"LBY",label:"Libya",count:15,region:"Middle East",bbox:[9.287,19.496,25.156,33.181],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gin",iso3:"GIN",label:"Guinea",count:13,region:"Africa",bbox:[-14.914,7.191,-7.638,12.676],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mli",iso3:"MLI",label:"Mali",count:13,region:"Africa",bbox:[-12.239,10.146,4.245,25],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-btn",iso3:"BTN",label:"Bhutan",count:13,region:"Asia",bbox:[88.75,26.697,92.124,28.353],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mys",iso3:"MYS",label:"Malaysia",count:12,region:"Asia",bbox:[100.12,.854,119.267,7.037],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-per",iso3:"PER",label:"Peru",count:10,region:"Latin America & Caribbean",bbox:[-81.327,-18.355,-68.643,-.014],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ago",iso3:"AGO",label:"Angola",count:10,region:"Africa",bbox:[11.461,-18.039,24.088,-4.397],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-yem",iso3:"YEM",label:"Yemen",count:9,region:"Middle East",bbox:[42.598,12.305,54.534,19],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-som",iso3:"SOM",label:"Somalia",count:9,region:"Africa",bbox:[40.996,-1.665,51.413,11.984],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ben",iso3:"BEN",label:"Benin",count:9,region:"Africa",bbox:[.783,6.216,3.849,12.417],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cod",iso3:"COD",label:"Democratic Republic of the Congo",count:9,region:"Africa",bbox:[12.201,-13.449,31.277,5.392],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-eri",iso3:"ERI",label:"Eritrea",count:8,region:"Africa",bbox:[36.433,12.355,43.137,18.02],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tha",iso3:"THA",label:"Thailand",count:8,region:"Asia",bbox:[97.346,5.613,105.637,20.464],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cmr",iso3:"CMR",label:"Cameroon",count:8,region:"Africa",bbox:[8.505,1.661,16.188,13.079],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-irq",iso3:"IRQ",label:"Iraq",count:8,region:"Middle East",bbox:[38.775,29.063,48.559,37.371],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bfa",iso3:"BFA",label:"Burkina Faso",count:8,region:"Africa",bbox:[-5.518,9.401,2.405,15.083],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-omn",iso3:"OMN",label:"Oman",count:7,region:"Middle East",bbox:[52,16.65,59.839,26.387],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mmr",iso3:"MMR",label:"Myanmar",count:7,region:"Asia",bbox:[92.173,9.973,101.17,28.526],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-jpn",iso3:"JPN",label:"Japan",count:6,region:"Asia",bbox:[123.662,24.255,148.893,45.557],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tgo",iso3:"TGO",label:"Togo",count:6,region:"Africa",bbox:[-.143,6.112,1.803,11.137],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-uga",iso3:"UGA",label:"Uganda",count:6,region:"Africa",bbox:[29.582,-1.481,35,4.234],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-zmb",iso3:"ZMB",label:"Zambia",count:6,region:"Africa",bbox:[22.001,-18.079,33.712,-8.277],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ven",iso3:"VEN",label:"Venezuela",count:6,region:"Latin America & Caribbean",bbox:[-73.391,.649,-59.816,12.199],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-nam",iso3:"NAM",label:"Namibia",count:6,region:"Africa",bbox:[11.727,-28.969,25.263,-16.981],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-brn",iso3:"BRN",label:"Brunei Darussalam",count:5,region:"Asia",bbox:[114.08,4.002,115.366,5.042],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ken",iso3:"KEN",label:"Kenya",count:5,region:"Africa",bbox:[33.914,-4.675,41.906,5.431],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-syr",iso3:"SYR",label:"Syrian Arab Republic",count:5,region:"Middle East",bbox:[35.717,32.311,42.369,37.318],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lbn",iso3:"LBN",label:"Lebanon",count:4,region:"Middle East",bbox:[35.107,33.05,36.619,34.693],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pse",iso3:"PSE",label:"State of Palestine",count:4,region:"Middle East",bbox:[34.881,31.342,35.573,32.543],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-moz",iso3:"MOZ",label:"Mozambique",count:4,region:"Africa",bbox:[30.217,-26.858,40.837,-10.48],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-isr",iso3:"ISR",label:"Israel",count:4,region:"Europe",bbox:[34.267,29.491,35.895,33.336],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mar",iso3:"MAR",label:"Morocco",count:4,region:"Middle East",bbox:[-17.105,20.77,-.999,35.922],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tur",iso3:"TUR",label:"Türkiye",count:3,region:"Europe",bbox:[26.036,35.808,44.818,42.105],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-qat",iso3:"QAT",label:"Qatar",count:3,region:"Middle East",bbox:[50.757,24.471,51.662,26.159],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-aze",iso3:"AZE",label:"Azerbaijan",count:3,region:"Asia",bbox:[44.765,38.394,50.37,41.913],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gmb",iso3:"GMB",label:"Republic of The Gambia",count:3,region:"Africa",bbox:[-16.814,13.043,-13.797,13.821],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sau",iso3:"SAU",label:"Saudi Arabia",count:3,region:"Middle East",bbox:[34.571,16.4,55.667,32.154],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-jor",iso3:"JOR",label:"Jordan",count:3,region:"Middle East",bbox:[34.96,29.184,39.302,33.374],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-zwe",iso3:"ZWE",label:"Zimbabwe",count:3,region:"Africa",bbox:[25.238,-22.421,33.067,-15.607],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-com",iso3:"COM",label:"Comoros",count:3,region:"Africa",bbox:[43.231,-11.938,43.518,-11.367],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-usa",iso3:"USA",label:"United States of America",count:3,region:"Other",bbox:[-178.228,13.246,179.778,71.353],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bgd",iso3:"BGD",label:"Bangladesh",count:3,region:"Asia",bbox:[88.021,20.728,92.691,26.621],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gnb",iso3:"GNB",label:"Guinea-Bissau",count:3,region:"Africa",bbox:[-16.717,10.892,-13.635,12.686],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-kos",iso3:"KOS",label:"KOS",count:3,region:"Europe",bbox:[20.629,42.045,21.164624,42.672265],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-mrt",iso3:"MRT",label:"Mauritania",count:3,region:"Middle East",bbox:[-17.102,14.72,-4.833,27.363],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-esh",iso3:"ESH",label:"Western Sahara",count:3,region:"Middle East",bbox:[-13.16135268,26.15604526,-10.60080902,27.1178117],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-tjk",iso3:"TJK",label:"Tajikistan",count:3,region:"Asia",bbox:[67.331,36.671,75.154,41.039],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-egy",iso3:"EGY",label:"Egypt",count:3,region:"Middle East",bbox:[24.706,22,36.892,31.671],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mng",iso3:"MNG",label:"Mongolia",count:3,region:"Asia",bbox:[87.738,41.58,119.932,52.15],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sur",iso3:"SUR",label:"Suriname",count:2,region:"North America & Non-Spanish Caribbean",bbox:[-58.069,1.831,-53.975,6.01],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ner",iso3:"NER",label:"Niger",count:2,region:"Africa",bbox:[.167,11.692,15.997,23.517],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-zaf",iso3:"ZAF",label:"South Africa",count:2,region:"Africa",bbox:[16.452,-34.834,32.945,-22.125],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cck",iso3:"CCK",label:"Cocos (Keeling) Islands",count:2,region:"Other",bbox:[96.831418,-12.185468,96.895,-12.119],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-bhr",iso3:"BHR",label:"Bahrain",count:2,region:"Middle East",bbox:[50.433,25.792,50.632,26.257],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cog",iso3:"COG",label:"Republic of the Congo",count:2,region:"Africa",bbox:[11.126,-5.041,18.641,3.711],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-are",iso3:"ARE",label:"United Arab Emirates",count:2,region:"Middle East",bbox:[51.592,22.631,56.376,26.06],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gab",iso3:"GAB",label:"Gabon",count:2,region:"Africa",bbox:[8.723,-3.953,14.521,2.302],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-guf",iso3:"GUF",label:"French Guiana",count:2,region:"Other",bbox:[-54.601,2.179,-51.656,5.762],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-civ",iso3:"CIV",label:"Cote d'Ivoire",count:2,region:"Africa",bbox:[-8.619,4.344,-2.506,10.726],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-kgz",iso3:"KGZ",label:"Kyrgyzstan",count:2,region:"Asia",bbox:[69.265,39.173,80.23,43.267],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lbr",iso3:"LBR",label:"Liberia",count:2,region:"Africa",bbox:[-11.498,4.361,-7.369,8.545],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-swe",iso3:"SWE",label:"Sweden",count:2,region:"Europe",bbox:[11.113,55.339,24.167,69.06],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tun",iso3:"TUN",label:"Tunisia",count:2,region:"Middle East",bbox:[7.522,30.23,11.6,37.347],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sle",iso3:"SLE",label:"Sierra Leone",count:2,region:"Africa",bbox:[-13.309,6.923,-10.271,9.999],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-and",iso3:"AND",label:"Andorra",count:1,region:"Other",bbox:[1.412,42.43,1.787,42.655],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sen",iso3:"SEN",label:"Senegal",count:1,region:"Africa",bbox:[-17.531,12.308,-11.358,16.693],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mne",iso3:"MNE",label:"Montenegro",count:1,region:"Europe",bbox:[18.434,41.846,20.354,43.558],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bol",iso3:"BOL",label:"Bolivia",count:1,region:"Latin America & Caribbean",bbox:[-69.645,-22.907,-57.454,-9.67],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ecu",iso3:"ECU",label:"Ecuador",count:1,region:"Latin America & Caribbean",bbox:[-91.59,-5.012,-75.189,1.412],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vir",iso3:"VIR",label:"Virgin Islands, U.S.",count:1,region:"Other",bbox:[-64.904,17.68,-64.565,17.77],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-atg",iso3:"ATG",label:"Antigua and Barbuda",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.897,16.998,-61.674,17.168],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-arm",iso3:"ARM",label:"Armenia",count:1,region:"Europe",bbox:[43.465,38.853,46.637,41.298],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-abw",iso3:"ABW",label:"Aruba",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-70.063,12.415,-69.867,12.621],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bhs",iso3:"BHS",label:"Bahamas",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-78.998,20.912,-73.012,26.92],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-brb",iso3:"BRB",label:"Barbados",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-59.651,13.052,-59.422,13.335],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-blr",iso3:"BLR",label:"Belarus",count:1,region:"Europe",bbox:[23.165,51.252,32.74,56.167],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bmu",iso3:"BMU",label:"Bermuda",count:1,region:"Other",bbox:[-64.886,32.248,-64.674,32.339],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bih",iso3:"BIH",label:"Bosnia and Herzegovina",count:1,region:"Europe",bbox:[15.724,42.557,19.623,45.245],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vgb",iso3:"VGB",label:"Virgin Islands, British",count:1,region:"Other",bbox:[-64.716,18.389,-64.558,18.457],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-bgr",iso3:"BGR",label:"Bulgaria",count:1,region:"Europe",bbox:[22.348,41.241,28.61,44.21],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-khm",iso3:"KHM",label:"Cambodia",count:1,region:"Asia",bbox:[102.334,10.405,107.628,14.687],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cym",iso3:"CYM",label:"Cayman Islands",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-81.416,19.265,-81.086,19.388],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-caf",iso3:"CAF",label:"Central African Republic",count:1,region:"Africa",bbox:[14.421,2.221,27.453,11.002],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cxr",iso3:"CXR",label:"Christmas Island",count:1,region:"Other",bbox:[105.672,-10.426,105.672,-10.426],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-cok",iso3:"COK",label:"Cook Islands",count:1,region:"Oceania",bbox:[-159.819,-21.268,-159.734,-21.2],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cub",iso3:"CUB",label:"Cuba",count:1,region:"Latin America & Caribbean",bbox:[-84.951,19.842,-74.138,23.187],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cuw",iso3:"CUW",label:"Curaçao",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-69.156,12.044,-68.737,12.392],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cyp",iso3:"CYP",label:"Cyprus",count:1,region:"Europe",bbox:[32.276,34.629,34.589,35.695],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-dji",iso3:"DJI",label:"Djibouti",count:1,region:"Africa",bbox:[41.749,10.93,43.414,12.708],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-dma",iso3:"DMA",label:"Dominica",count:1,region:"Other",bbox:[-61.48,15.21,-61.242,15.639],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gnq",iso3:"GNQ",label:"Equatorial Guinea",count:1,region:"Africa",bbox:[8.415,1,11.36,3.788],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-fro",iso3:"FRO",label:"Faroe Islands",count:1,region:"Europe",bbox:[-7.259,61.946,-6.734,62.31],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-fji",iso3:"FJI",label:"Fiji",count:1,region:"Oceania",bbox:[177.25,-18.276,180,-16.168],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pyf",iso3:"PYF",label:"French Polynesia",count:1,region:"Oceania",bbox:[-149.62,-17.872,-149.137,-17.494],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-geo",iso3:"GEO",label:"Georgia",count:1,region:"Europe",bbox:[40.008,41.055,46.737,43.586],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gib",iso3:"GIB",label:"Gibraltar",count:1,region:"Europe",bbox:[-5.35,36.133,-5.35,36.133],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-grc",iso3:"GRC",label:"Greece",count:1,region:"Europe",bbox:[19.628,34.922,28.247,41.733],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-grd",iso3:"GRD",label:"Grenada",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.802,12.003,-61.609,12.227],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-glp",iso3:"GLP",label:"Guadeloupe",count:1,region:"Other",bbox:[-61.809,15.947,-61.55,16.362],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gum",iso3:"GUM",label:"Guam",count:1,region:"Oceania",bbox:[144.619,13.255,144.957,13.648],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ggy",iso3:"GGY",label:"Guernsey",count:1,region:"Europe",bbox:[-2.675,49.43,-2.505,49.506],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-isl",iso3:"ISL",label:"Iceland",count:1,region:"Europe",bbox:[-24.532,63.399,-13.495,66.537],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-kir",iso3:"KIR",label:"Kiribati",count:1,region:"Oceania",bbox:[-157.554,1.7,-157.169,2.048],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-jam",iso3:"JAM",label:"Jamaica",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-78.368,17.701,-76.19,18.525],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-jey",iso3:"JEY",label:"Jersey",count:1,region:"Europe",bbox:[-2.11,49.1858,-2.11,49.1858],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-kaz",iso3:"KAZ",label:"Kazakhstan",count:1,region:"Asia",bbox:[46.492,40.569,87.316,55.48],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-prk",iso3:"PRK",label:"North Korea",count:1,region:"Asia",bbox:[124.316,37.673,130.675,43.008],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-kwt",iso3:"KWT",label:"Kuwait",count:1,region:"Middle East",bbox:[46.553,28.524,48.431,30.104],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lie",iso3:"LIE",label:"Liechtenstein",count:1,region:"Europe",bbox:[9.486,47.049,9.634,47.266],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lux",iso3:"LUX",label:"Luxembourg",count:1,region:"Europe",bbox:[5.736,49.451,6.531,50.175],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-myt",iso3:"MYT",label:"Mayotte",count:1,region:"Africa",bbox:[45.052,-12.993,45.237,-12.651],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mdv",iso3:"MDV",label:"Maldives",count:1,region:"Asia",bbox:[73.527,1.868,73.545,1.943],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mlt",iso3:"MLT",label:"Malta",count:1,region:"Europe",bbox:[14.321,35.823,14.569,35.996],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mnp",iso3:"MNP",label:"Northern Mariana Islands",count:1,region:"Oceania",bbox:[145.708,15.092,145.814,15.287],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mhl",iso3:"MHL",label:"Marshall Islands",count:1,region:"Oceania",bbox:[171.038,7.053,171.355,7.165],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mus",iso3:"MUS",label:"Mauritius",count:1,region:"Africa",bbox:[57.309,-20.525,57.809,-19.985],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-fsm",iso3:"FSM",label:"Micronesia, Federated States of",count:1,region:"Oceania",bbox:[158.112,6.784,158.322,6.99],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mco",iso3:"MCO",label:"Monaco",count:1,region:"Other",bbox:[7.416,43.733,7.416,43.733],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-msr",iso3:"MSR",label:"Montserrat",count:1,region:"Other",bbox:[-62.232,16.675,-62.144,16.824],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-ncl",iso3:"NCL",label:"New Caledonia",count:1,region:"Oceania",bbox:[164,-22.395,168.134,-20.076],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-niu",iso3:"NIU",label:"Niue",count:1,region:"Other",bbox:[-169.949,-19.155,-169.774,-18.953],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vut",iso3:"VUT",label:"Vanuatu",count:1,region:"Oceania",bbox:[166.542,-18.995,169.341,-14.644],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-nfk",iso3:"NFK",label:"Norfolk Island",count:1,region:"Other",bbox:[167.9544,-29.0338,167.9544,-29.0338],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-hkg",iso3:"HKG",label:"Hong Kong",count:1,region:"Asia",bbox:[114.16930265,22.27819894,114.16930265,22.27819894],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-mac",iso3:"MAC",label:"Macao",count:1,region:"Asia",bbox:[113.55129,22.2116,113.55129,22.2116],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-plw",iso3:"PLW",label:"Palau",count:1,region:"Oceania",bbox:[131.676,2.751,131.895,3.061],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-png",iso3:"PNG",label:"Papua New Guinea",count:1,region:"Oceania",bbox:[140.842,-11.645,155.965,-1.959],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-blm",iso3:"BLM",label:"Saint Barthélemy",count:1,region:"Other",bbox:[-62.868,17.879,-62.792,17.925],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-shn",iso3:"SHN",label:"Saint Helena",count:1,region:"Europe",bbox:[-5.79,-16.003,-5.636,-15.906],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lca",iso3:"LCA",label:"Saint Lucia",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.081,13.708,-60.874,14.108],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-smr",iso3:"SMR",label:"San Marino",count:1,region:"Other",bbox:[12.404,43.896,12.51,43.991],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-asm",iso3:"ASM",label:"American Samoa",count:1,region:"Oceania",bbox:[-170.844,-14.373,-170.562,-14.245],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-wsm",iso3:"WSM",label:"Samoa",count:1,region:"Oceania",bbox:[-172.804,-14.049,-171.434,-13.444],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-stp",iso3:"STP",label:"Sao Tome and Principe",count:1,region:"Africa",bbox:[6.467,.019,6.749,.412],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sxm",iso3:"SXM",label:"Sint Maarten (Dutch part)",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-63.0458,18.0237,-63.0458,18.0237],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-slb",iso3:"SLB",label:"Solomon Islands",count:1,region:"Oceania",bbox:[156.454,-11.845,162.375,-6.611],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-lka",iso3:"LKA",label:"Sri Lanka",count:1,region:"Asia",bbox:[79.693,5.919,81.879,9.836],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-sjm",iso3:"SJM",label:"Svalbard and Jan Mayen",count:1,region:"Europe",bbox:[15.65,78.22,15.65,78.22],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-swz",iso3:"SWZ",label:"Eswatini",count:1,region:"Africa",bbox:[30.803,-27.318,32.135,-25.719],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tkl",iso3:"TKL",label:"Tokelau",count:1,region:"Other",bbox:[-172.47,-8.557,-172.47,-8.557],sheet:"3x3",hasGeometry:!1,unsupportedReason:null},{id:"country-ton",iso3:"TON",label:"Tonga",count:1,region:"Oceania",bbox:[-175.34,-21.272,-175.032,-21.062],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-tca",iso3:"TCA",label:"Turks and Caicos Islands",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-72.039,21.803,-71.863,21.953],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-vct",iso3:"VCT",label:"Saint Vincent and the Grenadines",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.277,13.122,-61.115,13.383],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-wlf",iso3:"WLF",label:"Wallis and Futuna",count:1,region:"Other",bbox:[-176.251,-13.352,-176.162,-13.219],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pry",iso3:"PRY",label:"Paraguay",count:1,region:"Latin America & Caribbean",bbox:[-62.64,-27.591,-54.26,-19.29],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-fin",iso3:"FIN",label:"Finland",count:1,region:"Europe",bbox:[19.628,59.808,31.587,70.081],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-alb",iso3:"ALB",label:"Albania",count:1,region:"Europe",bbox:[19.282,39.648,21.058,42.661],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-pan",iso3:"PAN",label:"Panama",count:1,region:"Latin America & Caribbean",bbox:[-83.05,7.204,-77.148,9.615],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-nzl",iso3:"NZL",label:"New Zealand",count:1,region:"Oceania",bbox:[-176.893,-47.277,178.55,-34.393],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-cze",iso3:"CZE",label:"Czech Republic",count:1,region:"Europe",bbox:[12.091,48.552,18.852,51.056],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-gha",iso3:"GHA",label:"Ghana",count:1,region:"Africa",bbox:[-3.255,4.737,1.192,11.173],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-phl",iso3:"PHL",label:"Philippines",count:1,region:"Asia",bbox:[117.182,5.056,126.605,18.651],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-guy",iso3:"GUY",label:"Guyana",count:1,region:"North America & Non-Spanish Caribbean",bbox:[-61.4,1.189,-56.487,8.495],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-uzb",iso3:"UZB",label:"Uzbekistan",count:1,region:"Asia",bbox:[55.999,37.177,73.14,45.59],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-esp",iso3:"ESP",label:"Spain",count:1,region:"Europe",bbox:[-18.007,27.735,4.328,43.787],sheet:"3x3",hasGeometry:!0,unsupportedReason:null},{id:"country-mwi",iso3:"MWI",label:"Malawi",count:1,region:"Africa",bbox:[32.676,-17.125,35.919,-9.368],sheet:"3x3",hasGeometry:!0,unsupportedReason:null}]},PS="One poster per country, ready to pray, print, and put on a wall — praying for them by their people group name. Regions and countries are ordered by how many unengaged people groups they hold, so the greatest need leads.",NS=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"country-poster-wall",setup(e){const t=Te("profileConfig",le(null)),o=Q(()=>{var c;return((c=t.value)==null?void 0:c.instanceId)||"country-posters-wall"}),n=Q(()=>{var c;return((c=t.value)==null?void 0:c.isDark)===!0}),a=Q(()=>{var c;return String(((c=t.value)==null?void 0:c.assetsBase)||"./assets").replace(/\/+$/,"")}),r=Q(()=>TS.countries||[]),s=c=>c.region||"Other",i=c=>c.total<60,l=c=>c.unsupportedReason||null;return(c,u)=>(V(),Ge(ES,{items:r.value,"group-by":s,"instance-id":o.value,"is-dark":n.value,"assets-base":a.value,"event-name":"doxa-country-posters:show-on-map",heading:"Country Posters — Prayer Lists & Posters",tag:"Prayer Mobilization",intro:PS,unit:"UPG","item-noun":"country","item-noun-plural":"countries",collapsible:!0,"collapsed-by":i,unsupported:l,"prayer-list-soon-message":"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.","download-prefix":"doxa-country"},null,8,["items","instance-id","is-dark","assets-base"]))}}},Symbol.toStringTag,{value:"Module"})),MS="",IS={class:"legend-sheet-root"},RS=["src","alt"],FS={key:0,class:"pull-tab-handle"},OS=["aria-label"],DS=["aria-label"],BS=["aria-label"],GS={class:"collapsed-detail-title"},jS={class:"legend-content"},zS=["aria-label"],US=["aria-label"],kg=80,KS=48,HS=44,VS=24,wg="--legend-sheet-h",Ag=Object.freeze(Object.defineProperty({__proto__:null,default:Ot({__name:"LegendMobile",props:{legendType:{type:String,required:!0},nodes:{type:Array,default:null},tabs:{type:Array,default:null},columnLabel:{type:String,default:null},title:{type:String,default:null},columns:{type:Array,default:null},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const{t}=ht();mt(` .floating-mini-image{position:absolute;left:16px;bottom:calc(30% + 16px);z-index:999;pointer-events:auto;cursor:pointer;} .mini-image{width:120px;height:150px;object-fit:cover;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.25);display:block;} .legend-sheet-root{position:absolute;inset:0;pointer-events:none;overflow:hidden;} @@ -1439,33 +1438,33 @@ .sheet-dark .pull-tab-handle{background:rgba(243,243,241,0.3)!important;} .sheet-dark .legend-content{background:#3b463d!important;} .sheet-dark .legend-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);} -`,"legend-mobile-sheet");const o=e,n=Te("uiStore");Te("mapStore");const a=Te("dataStore"),r=Te("onSemanticTreeSelect",()=>{}),s=wr(o,"legendType"),{items:i,columns:l,title:c,activeFilter:u,setFilter:f,totalCount:b,totalPopulation:k,fmtPop:x,fmtCount:m}=Ja(s,ds),v=Te("normalizedPeopleGroups",null),g=Q(()=>{var ne,w;if((ne=v==null?void 0:v.value)!=null&&ne.length)return v.value;const X=[];for(const A in(a==null?void 0:a.sources)||{}){const W=a.sources[A];(w=W==null?void 0:W.features)!=null&&w.length&&X.push(...W.features)}return X}),y={get value(){return g.value}},{langTree:d}=vl(y),{affinityTree:h}=vg(y),{regionsTree:p}=_g(y),_=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor."},{id:"language",label:"Language",info:"A language is a system of communication used by a people."},{id:"dialect",label:"Dialect",info:"A dialect/variety is a regional or social form of a language."}],L=[{id:"bloc",label:"Block",info:"Affinity Block (rop1) — broadest grouping. 16 blocks total."},{id:"cluster",label:"Cluster",info:"Cluster (imb_reg_of_people_2, ROP 2) — finer grouping inside a block. 194 total."},{id:"group",label:"PG",info:"People Group (imb_reg_of_people_25, ROP 2.5) — abstract identity. 1,736 PGs."},{id:"pgic",label:"PGIC",info:"PG in Country (imb_reg_of_people_3 + country_code) — one row per PG-country pair. 2,106 rows."}],R=[{id:"region",label:"Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"Bloc",info:'WAGF bloc — organizational sub-grouping within each region (e.g. "South East Asia").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],S=Q(()=>["prayer","engagement","adoption","religion"].includes(o.legendType));function z(X){const ne=[];for(const w of X){ne.push({id:w.key,label:w.label,color:w.color,count:w.count??0,pop:w.population??0,filter:w.filterKey?["==",["get","_flat_filter"],w.filterKey]:null,children:[]});for(const A of w.children||[])ne.push({id:A.key,label:A.label,color:A.color,count:A.count??0,pop:A.population??0,filter:A.filterKey?["==",["get","_flat_filter"],A.filterKey]:null,children:[]})}return ne}const j=Q(()=>o.nodes?o.nodes:S.value?z(i.value):o.legendType==="affinity-block"?h.value:o.legendType==="doxa-regions"?p.value:d.value),O=Q(()=>o.nodes?o.tabs:S.value?null:o.legendType==="affinity-block"?L:o.legendType==="doxa-regions"?R:_),D=Q(()=>o.title?o.title:S.value?"Legend":o.legendType==="affinity-block"?"People Groups":o.legendType==="doxa-regions"?"WAGF Regions":"Languages"),M=Q(()=>o.columnLabel!==null?o.columnLabel:o.legendType==="religion"?"UUPG Religions":o.legendType==="prayer"?"Prayer Status":o.legendType==="engagement"?"Engagement Status":o.legendType==="adoption"?"Adoption Status":S.value?"Status":""),$=le(null),T=le(!1),N={pending:null,active:!1,startY:0,startH:0,startState:"",containerH:0,maxH:0,lastH:0,contentEl:null};let q=0;const ce=()=>Date.now()-q<400,ee=Q(()=>n.legendState),oe=Q(()=>n.legendHeight),H=Q(()=>n.caretRotation),pe=Q(()=>n.showPullTab),we=Q(()=>n.legendMode),ue=Q(()=>n.selectedPeopleGroup),$e=Q(()=>{var X;return we.value==="detail"&&ue.value?((X=ue.value.properties)==null?void 0:X.name)||t("legend.header.peopleGroupFallback"):ee.value==="collapsed"?o.title||t("legend.header.collapsed"):o.title||c.value});function Ae(X){n.handleLegendItemClick(),f(X)}function ie(){ce()||n.toggleLegend()}function ye(){ce()||(n.selectPeopleGroup(null),n.openLegend())}const me=Q(()=>{var ne;if(!ue.value)return null;const X=ue.value.properties||{};return X.imageUrl||((ne=X._raw)==null?void 0:ne.ImageURL)||null});function Le(X){var re;if(ee.value==="collapsed")return;const ne=X.touches[0],w=$.value;if(!ne||!w)return;const W=ne.clientY-w.getBoundingClientRect().top<=OS?"grab":we.value==="detail"?"content":null;W&&(N.pending=W,N.active=!1,N.startY=ne.clientY,N.startH=w.offsetHeight,N.lastH=N.startH,N.startState=ee.value,N.containerH=((re=w.parentElement)==null?void 0:re.offsetHeight)||window.innerHeight,N.maxH=N.containerH-kg,N.contentEl=w.querySelector(".legend-content"))}function E(X){if(!N.pending&&!N.active)return;const ne=X.touches[0];if(!ne)return;const w=N.startY-ne.clientY;if(!N.active){if(w===0)return;let W=N.pending==="grab";if(N.pending==="content"){const re=!N.contentEl||N.contentEl.scrollTop<=0;W=w>0?N.startH0?n.fullyOpenLegend():N.startState==="fullyOpen"?n.openLegend():n.collapseLegend()}function B(X){X==="fullyOpen"?n.fullyOpenLegend():X==="collapsed"?n.collapseLegend():n.openLegend()}let K=null,te=null,U=null;return Zt(()=>{const X=$.value;if(!X||typeof ResizeObserver>"u")return;const ne=X.getRootNode();te=ne instanceof ShadowRoot?ne.host:ne.documentElement||null,te&&(U=X,K=new ResizeObserver(()=>{const w=X.offsetHeight;w<=0||(te.style.setProperty(wg,`${w}px`),te.__legendSheetVarOwner=X)}),K.observe(X))}),ho(()=>{K&&(K.disconnect(),K=null),te&&te.__legendSheetVarOwner===U&&(te.style.removeProperty(wg),te.__legendSheetVarOwner=null),te=null,U=null}),(X,ne)=>{var w;return V(),ae("div",LS,[we.value==="detail"&&ue.value&&ee.value==="open"&&me.value?(V(),ae("div",{key:0,class:"floating-mini-image",onClick:ne[0]||(ne[0]=A=>de(n).fullyOpenLegend())},[C("img",{src:me.value,alt:(w=ue.value.properties)==null?void 0:w.name,class:"mini-image"},null,8,CS)])):ve("",!0),C("div",{ref_key:"sheetRef",ref:$,class:Ee(["legend-mobile-sheet",[ee.value,{"sheet-dark":e.isDark,dragging:T.value}]]),style:Xe({height:oe.value,"--legend-sheet-top-reserve":kg+"px"}),onTouchstart:Le,onTouchmove:E,onTouchend:F,onTouchcancel:F},[C("div",{class:"sheet-drag-strip",onClick:ie},[pe.value?(V(),ae("div",ES)):ve("",!0)]),we.value==="detail"&&ee.value!=="collapsed"?(V(),ae("button",{key:0,class:"detail-collapse-btn-mobile",onClick:dt(ie,["stop"]),"aria-label":de(t)("aria.toggleLegend")},null,8,$S)):ve("",!0),we.value==="detail"&&ee.value!=="collapsed"?(V(),ae("button",{key:1,class:"detail-close-btn",onClick:dt(ye,["stop"]),"aria-label":de(t)("aria.backToLegend")},[...ne[1]||(ne[1]=[C("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[C("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,TS)):ve("",!0),ee.value==="collapsed"&&we.value==="detail"&&ue.value?(V(),ae("div",{key:2,class:"collapsed-detail-footer",onClick:ie},[C("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),"aria-label":de(t)("aria.toggleLegend"),tabindex:"-1"},[...ne[2]||(ne[2]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,PS),C("span",NS,he($e.value),1)])):ve("",!0),C("div",MS,[we.value==="detail"&&ue.value?(V(),ae(Ie,{key:0},[ee.value!=="collapsed"?(V(),Ge(xl,{key:0,peopleGroup:ue.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):ve("",!0)],64)):e.legendType!=="default"?(V(),Ge(yg,{key:1,nodes:j.value,tabs:O.value,title:$e.value||D.value,hideTabs:e.nodes?!e.tabs:S.value,columnLabel:M.value,columns:e.columns||["count","pop"],onSelect:de(r)},{"title-caret":Mt(()=>[C("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),onClick:dt(ie,["stop"]),"aria-label":de(t)("aria.toggleLegend")},[...ne[3]||(ne[3]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,IS)]),_:1},8,["nodes","tabs","title","hideTabs","columnLabel","columns","onSelect"])):(V(),Ge(ug,{key:2,title:$e.value,items:de(i),columns:de(l),activeFilter:de(u),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:de(b),totalPopulation:de(k),fmtPop:de(x),fmtCount:de(m),onFilterClick:Ae},{"title-caret":Mt(()=>[C("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),onClick:dt(ie,["stop"]),"aria-label":de(t)("aria.toggleLegend")},[...ne[4]||(ne[4]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,RS)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount"]))])],38)])}}},[["__scopeId","data-v-87b1df09"]])},Symbol.toStringTag,{value:"Module"})),ut={dpi:300,margins:{top:.75,right:.75,bottom:.75,left:.75},bleed:.125,gutter:{in:.2},title:{heightIn:1.25,fontFamily:'Inter, system-ui, -apple-system, "Segoe UI", sans-serif',fontWeightTitle:700,fontWeightSubtitle:500,fontSizeTitlePt:36,fontSizeSubtitlePt:16,color:"#0a0a0a"},legend:{widthIn:3,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:11,swatchSize:14,backgroundColor:"rgba(255,255,255,0.94)",borderColor:"#cccccc"},chromeBand:{heightIn:.6},scaleBar:{widthIn:2.5,units:"both",color:"#111",backgroundColor:"rgba(255,255,255,0.9)"},north:{sizeIn:.6,color:"#111"},footer:{heightIn:.45,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:10,color:"#222",attribution:"© Mapbox © OpenStreetMap",backgroundColor:"rgba(255,255,255,0.92)"}};function Cl(e){return{widthIn:e.widthIn,heightIn:e.heightIn,dpi:e.dpi||ut.dpi,orientation:e.orientation||(e.heightIn>=e.widthIn?"portrait":"landscape"),margins:{...ut.margins},bleed:ut.bleed,slots:{title:{text:"Untitled",subtitle:"",heightIn:ut.title.heightIn},legend:{rows:[],type:"generic",widthIn:ut.legend.widthIn},scaleBar:!0,north:!0,footer:{left:"",right:"",attribution:ut.footer.attribution,heightIn:ut.footer.heightIn}},renderPath:"auto"}}const BS=Object.freeze(Object.defineProperty({__proto__:null,defaultPosterSpec:Cl,posterDefaults:ut},Symbol.toStringTag,{value:"Module"}));function Pt(e,t){return Math.round(e*t)}function Sg(e,t){var p,_,L,R,S,z,j,O;const o=t.dpi,n=e.margins||ut.margins,a={x:0,y:0,w:t.width,h:t.height},r={x:Pt(n.left,o),y:Pt(n.top,o),w:t.width-Pt(n.left+n.right,o),h:t.height-Pt(n.top+n.bottom,o)},s=(p=e.slots)!=null&&p.title?Pt(e.slots.title.heightIn||ut.title.heightIn,o):0,i={x:r.x,y:r.y,w:r.w,h:s},l=Pt(((L=(_=e.slots)==null?void 0:_.footer)==null?void 0:L.heightIn)||ut.footer.heightIn,o),c={x:r.x,y:r.y+r.h-l,w:r.w,h:l},u=(R=e.slots)!=null&&R.legend?Pt(e.slots.legend.widthIn||ut.legend.widthIn,o):0,f=(S=e.slots)!=null&&S.scaleBar||(z=e.slots)!=null&&z.north?Pt(ut.chromeBand.heightIn,o):0,b=r.y+s+(s?Pt(ut.gutter.in,o):0),k=c.y-f-(f?Pt(ut.gutter.in,o):0),x={x:r.x,y:b,w:r.w-(u?u+Pt(ut.gutter.in,o):0),h:k-b},m=u?{x:r.x+r.w-u,y:b,w:u,h:x.h}:{x:0,y:0,w:0,h:0},v=Pt(ut.scaleBar.widthIn,o),g=f,y=(j=e.slots)!=null&&j.scaleBar?{x:r.x,y:k+(f?Pt(ut.gutter.in,o):0),w:v,h:g}:{x:0,y:0,w:0,h:0},d=Pt(ut.north.sizeIn,o),h=(O=e.slots)!=null&&O.north?{x:r.x+r.w-d-(u?u+Pt(ut.gutter.in,o):0),y:k+(f?Pt(ut.gutter.in,o):0),w:d,h:d}:{x:0,y:0,w:0,h:0};return{page:a,content:r,title:i,map:x,legend:m,scaleBar:y,north:h,footer:c}}const $n=4096,So=2048,Lg=15e3;function El(e){const t=le({phase:"idle",completed:0,total:0,message:"",fraction:0,percent:0}),o=le(!1);let n=null;async function a(x,m="png"){if(o.value)throw new Error("useMapPoster: already rendering");const v=e();if(!v)throw new Error("useMapPoster: no source map");n=new AbortController;const g=KS(x.signal,n.signal);o.value=!0,l=0,c("init",1,1,"preparing render");try{const y=$l(x),d=GS(x.renderPath||"auto",y);d==="single"&&(y.width>$n||y.height>$n)&&console.warn(`[useMapPoster] requested single-canvas ${y.width}×${y.height}px > ${$n}; auto-switching to tile-stitch.`);const p=(d==="single"&&(y.width>$n||y.height>$n)?"stitch":d)==="single"?await u(v,y,g):await f(v,y,g);c("compose",0,1,"compositing overlay");const _=await b(p,x,y);c("encode",0,1,`encoding ${m.toUpperCase()}`);const L=m==="pdf"?await US(_,x):await zS(_,"image/png");return c("done",1,1,"render complete"),L}finally{o.value=!1,n=null}}function r(){n&&n.abort()}const s={init:.02,"hidden-map":.3,stitch:.42,capture:.14,compose:.06,encode:.05,done:.01},i=["init","hidden-map","stitch","capture","compose","encode","done"];let l=0;function c(x,m,v,g){const y=i.indexOf(x);let d=0;for(let _=0;_0?Math.min(1,m/v):0,p=d+(s[x]||0)*h;l=x==="init"?p:Math.max(l,p),t.value={phase:x,completed:m,total:v,message:g,fraction:Math.min(1,l),percent:Math.round(Math.min(1,l)*100)}}async function u(x,m,v){c("hidden-map",0,3,"creating hidden map");const{hiddenMap:g,restoreDpr:y,container:d}=await Cg(x,m.width,m.height);try{Tl(v),c("hidden-map",1,3,"loading map tiles"),await Eg(g),c("hidden-map",3,3,"tiles loaded"),Tl(v),c("capture",0,1,"capturing canvas");const h=g.getCanvas().toDataURL("image/png"),p=await $g(h),_=document.createElement("canvas");return _.width=m.width,_.height=m.height,_.getContext("2d").drawImage(p,0,0,m.width,m.height),_}finally{try{g.remove()}catch{}d!=null&&d.parentNode&&d.parentNode.removeChild(d),y()}}async function f(x,m,v){const g=Math.ceil(m.width/So),y=Math.ceil(m.height/So),d=g*y;c("hidden-map",0,d,`creating hidden map (${g}×${y} tiles)`);const h=x.getBounds(),p=x.getCenter(),_=x.getZoom(),L=x.getBearing(),R=x.getPitch(),{hiddenMap:S,restoreDpr:z,container:j}=await Cg(x,So,So,{preserveBounds:!0,bounds:h});try{const O=document.createElement("canvas");O.width=m.width,O.height=m.height;const D=O.getContext("2d"),M=h.getNorthEast(),$=h.getSouthWest(),T=M.lng-$.lng,N=M.lat-$.lat,q=T/g,ce=N/y;let ee=0;for(let oe=0;oet&&([t,o]=[o,t]),e.orientation==="portrait"&&t>o&&([t,o]=[o,t]);const n=e.dpi||300;return{width:Math.round(t*n),height:Math.round(o*n),dpi:n}}function GS(e,t){return e==="single"||e==="stitch"?e:t.width>$n||t.height>$n?"stitch":"single"}async function Cg(e,t,o,n={}){const a=document.createElement("div");a.style.cssText=` +`,"legend-mobile-sheet");const o=e,n=Te("uiStore");Te("mapStore");const a=Te("dataStore"),r=Te("onSemanticTreeSelect",()=>{}),s=wr(o,"legendType"),{items:i,columns:l,title:c,activeFilter:u,setFilter:f,totalCount:b,totalPopulation:k,fmtPop:x,fmtCount:m}=Ja(s,ds),v=Te("normalizedPeopleGroups",null),g=Q(()=>{var ne,w;if((ne=v==null?void 0:v.value)!=null&&ne.length)return v.value;const X=[];for(const A in(a==null?void 0:a.sources)||{}){const W=a.sources[A];(w=W==null?void 0:W.features)!=null&&w.length&&X.push(...W.features)}return X}),y={get value(){return g.value}},{langTree:d}=vl(y),{affinityTree:h}=vg(y),{regionsTree:p}=_g(y),_=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor."},{id:"language",label:"Language",info:"A language is a system of communication used by a people."},{id:"dialect",label:"Dialect",info:"A dialect/variety is a regional or social form of a language."}],L=[{id:"bloc",label:"Block",info:"Affinity Block (rop1) — broadest grouping. 16 blocks total."},{id:"cluster",label:"Cluster",info:"Cluster (imb_reg_of_people_2, ROP 2) — finer grouping inside a block. 194 total."},{id:"group",label:"PG",info:"People Group (imb_reg_of_people_25, ROP 2.5) — abstract identity. 1,736 PGs."},{id:"pgic",label:"PGIC",info:"PG in Country (imb_reg_of_people_3 + country_code) — one row per PG-country pair. 2,106 rows."}],R=[{id:"region",label:"Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"Bloc",info:'WAGF bloc — organizational sub-grouping within each region (e.g. "South East Asia").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],S=Q(()=>["prayer","engagement","adoption","religion"].includes(o.legendType));function z(X){const ne=[];for(const w of X){ne.push({id:w.key,label:w.label,color:w.color,count:w.count??0,pop:w.population??0,filter:w.filterKey?["==",["get","_flat_filter"],w.filterKey]:null,children:[]});for(const A of w.children||[])ne.push({id:A.key,label:A.label,color:A.color,count:A.count??0,pop:A.population??0,filter:A.filterKey?["==",["get","_flat_filter"],A.filterKey]:null,children:[]})}return ne}const j=Q(()=>o.nodes?o.nodes:S.value?z(i.value):o.legendType==="affinity-block"?h.value:o.legendType==="doxa-regions"?p.value:d.value),O=Q(()=>o.nodes?o.tabs:S.value?null:o.legendType==="affinity-block"?L:o.legendType==="doxa-regions"?R:_),D=Q(()=>o.title?o.title:S.value?"Legend":o.legendType==="affinity-block"?"People Groups":o.legendType==="doxa-regions"?"WAGF Regions":"Languages"),M=Q(()=>o.columnLabel!==null?o.columnLabel:o.legendType==="religion"?"UUPG Religions":o.legendType==="prayer"?"Prayer Status":o.legendType==="engagement"?"Engagement Status":o.legendType==="adoption"?"Adoption Status":S.value?"Status":""),E=le(null),T=le(!1),N={pending:null,active:!1,startY:0,startH:0,startState:"",containerH:0,maxH:0,lastH:0,contentEl:null};let q=0;const ce=()=>Date.now()-q<400,ee=Q(()=>n.legendState),oe=Q(()=>n.legendHeight),H=Q(()=>n.caretRotation),pe=Q(()=>n.showPullTab),we=Q(()=>n.legendMode),ue=Q(()=>n.selectedPeopleGroup),Ee=Q(()=>{var X;return we.value==="detail"&&ue.value?((X=ue.value.properties)==null?void 0:X.name)||t("legend.header.peopleGroupFallback"):ee.value==="collapsed"?o.title||t("legend.header.collapsed"):o.title||c.value});function Ae(X){n.handleLegendItemClick(),f(X)}function ie(){ce()||n.toggleLegend()}function ye(){ce()||(n.selectPeopleGroup(null),n.openLegend())}const me=Q(()=>{var ne;if(!ue.value)return null;const X=ue.value.properties||{};return X.imageUrl||((ne=X._raw)==null?void 0:ne.ImageURL)||null});function Le(X){var re;if(ee.value==="collapsed")return;const ne=X.touches[0],w=E.value;if(!ne||!w)return;const W=ne.clientY-w.getBoundingClientRect().top<=HS?"grab":we.value==="detail"?"content":null;W&&(N.pending=W,N.active=!1,N.startY=ne.clientY,N.startH=w.offsetHeight,N.lastH=N.startH,N.startState=ee.value,N.containerH=((re=w.parentElement)==null?void 0:re.offsetHeight)||window.innerHeight,N.maxH=N.containerH-kg,N.contentEl=w.querySelector(".legend-content"))}function $(X){if(!N.pending&&!N.active)return;const ne=X.touches[0];if(!ne)return;const w=N.startY-ne.clientY;if(!N.active){if(w===0)return;let W=N.pending==="grab";if(N.pending==="content"){const re=!N.contentEl||N.contentEl.scrollTop<=0;W=w>0?N.startH0?n.fullyOpenLegend():N.startState==="fullyOpen"?n.openLegend():n.collapseLegend()}function B(X){X==="fullyOpen"?n.fullyOpenLegend():X==="collapsed"?n.collapseLegend():n.openLegend()}let K=null,te=null,U=null;return Zt(()=>{const X=E.value;if(!X||typeof ResizeObserver>"u")return;const ne=X.getRootNode();te=ne instanceof ShadowRoot?ne.host:ne.documentElement||null,te&&(U=X,K=new ResizeObserver(()=>{const w=X.offsetHeight;w<=0||(te.style.setProperty(wg,`${w}px`),te.__legendSheetVarOwner=X)}),K.observe(X))}),ho(()=>{K&&(K.disconnect(),K=null),te&&te.__legendSheetVarOwner===U&&(te.style.removeProperty(wg),te.__legendSheetVarOwner=null),te=null,U=null}),(X,ne)=>{var w;return V(),ae("div",IS,[we.value==="detail"&&ue.value&&ee.value==="open"&&me.value?(V(),ae("div",{key:0,class:"floating-mini-image",onClick:ne[0]||(ne[0]=A=>de(n).fullyOpenLegend())},[C("img",{src:me.value,alt:(w=ue.value.properties)==null?void 0:w.name,class:"mini-image"},null,8,RS)])):ve("",!0),C("div",{ref_key:"sheetRef",ref:E,class:$e(["legend-mobile-sheet",[ee.value,{"sheet-dark":e.isDark,dragging:T.value}]]),style:Xe({height:oe.value,"--legend-sheet-top-reserve":kg+"px"}),onTouchstart:Le,onTouchmove:$,onTouchend:F,onTouchcancel:F},[C("div",{class:"sheet-drag-strip",onClick:ie},[pe.value?(V(),ae("div",FS)):ve("",!0)]),we.value==="detail"&&ee.value!=="collapsed"?(V(),ae("button",{key:0,class:"detail-collapse-btn-mobile",onClick:dt(ie,["stop"]),"aria-label":de(t)("aria.toggleLegend")},null,8,OS)):ve("",!0),we.value==="detail"&&ee.value!=="collapsed"?(V(),ae("button",{key:1,class:"detail-close-btn",onClick:dt(ye,["stop"]),"aria-label":de(t)("aria.backToLegend")},[...ne[1]||(ne[1]=[C("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[C("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,DS)):ve("",!0),ee.value==="collapsed"&&we.value==="detail"&&ue.value?(V(),ae("div",{key:2,class:"collapsed-detail-footer",onClick:ie},[C("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),"aria-label":de(t)("aria.toggleLegend"),tabindex:"-1"},[...ne[2]||(ne[2]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,BS),C("span",GS,he(Ee.value),1)])):ve("",!0),C("div",jS,[we.value==="detail"&&ue.value?(V(),ae(Ie,{key:0},[ee.value!=="collapsed"?(V(),Ge(xl,{key:0,peopleGroup:ue.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):ve("",!0)],64)):e.legendType!=="default"?(V(),Ge(yg,{key:1,nodes:j.value,tabs:O.value,title:Ee.value||D.value,hideTabs:e.nodes?!e.tabs:S.value,columnLabel:M.value,columns:e.columns||["count","pop"],onSelect:de(r)},{"title-caret":Mt(()=>[C("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),onClick:dt(ie,["stop"]),"aria-label":de(t)("aria.toggleLegend")},[...ne[3]||(ne[3]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,zS)]),_:1},8,["nodes","tabs","title","hideTabs","columnLabel","columns","onSelect"])):(V(),Ge(ug,{key:2,title:Ee.value,items:de(i),columns:de(l),activeFilter:de(u),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:de(b),totalPopulation:de(k),fmtPop:de(x),fmtCount:de(m),onFilterClick:Ae},{"title-caret":Mt(()=>[C("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),onClick:dt(ie,["stop"]),"aria-label":de(t)("aria.toggleLegend")},[...ne[4]||(ne[4]=[C("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[C("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,US)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount"]))])],38)])}}},[["styles",[MS]],["__scopeId","data-v-87b1df09"]])},Symbol.toStringTag,{value:"Module"})),ut={dpi:300,margins:{top:.75,right:.75,bottom:.75,left:.75},bleed:.125,gutter:{in:.2},title:{heightIn:1.25,fontFamily:'Inter, system-ui, -apple-system, "Segoe UI", sans-serif',fontWeightTitle:700,fontWeightSubtitle:500,fontSizeTitlePt:36,fontSizeSubtitlePt:16,color:"#0a0a0a"},legend:{widthIn:3,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:11,swatchSize:14,backgroundColor:"rgba(255,255,255,0.94)",borderColor:"#cccccc"},chromeBand:{heightIn:.6},scaleBar:{widthIn:2.5,units:"both",color:"#111",backgroundColor:"rgba(255,255,255,0.9)"},north:{sizeIn:.6,color:"#111"},footer:{heightIn:.45,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:10,color:"#222",attribution:"© Mapbox © OpenStreetMap",backgroundColor:"rgba(255,255,255,0.92)"}};function Cl(e){return{widthIn:e.widthIn,heightIn:e.heightIn,dpi:e.dpi||ut.dpi,orientation:e.orientation||(e.heightIn>=e.widthIn?"portrait":"landscape"),margins:{...ut.margins},bleed:ut.bleed,slots:{title:{text:"Untitled",subtitle:"",heightIn:ut.title.heightIn},legend:{rows:[],type:"generic",widthIn:ut.legend.widthIn},scaleBar:!0,north:!0,footer:{left:"",right:"",attribution:ut.footer.attribution,heightIn:ut.footer.heightIn}},renderPath:"auto"}}const qS=Object.freeze(Object.defineProperty({__proto__:null,defaultPosterSpec:Cl,posterDefaults:ut},Symbol.toStringTag,{value:"Module"}));function Pt(e,t){return Math.round(e*t)}function Sg(e,t){var p,_,L,R,S,z,j,O;const o=t.dpi,n=e.margins||ut.margins,a={x:0,y:0,w:t.width,h:t.height},r={x:Pt(n.left,o),y:Pt(n.top,o),w:t.width-Pt(n.left+n.right,o),h:t.height-Pt(n.top+n.bottom,o)},s=(p=e.slots)!=null&&p.title?Pt(e.slots.title.heightIn||ut.title.heightIn,o):0,i={x:r.x,y:r.y,w:r.w,h:s},l=Pt(((L=(_=e.slots)==null?void 0:_.footer)==null?void 0:L.heightIn)||ut.footer.heightIn,o),c={x:r.x,y:r.y+r.h-l,w:r.w,h:l},u=(R=e.slots)!=null&&R.legend?Pt(e.slots.legend.widthIn||ut.legend.widthIn,o):0,f=(S=e.slots)!=null&&S.scaleBar||(z=e.slots)!=null&&z.north?Pt(ut.chromeBand.heightIn,o):0,b=r.y+s+(s?Pt(ut.gutter.in,o):0),k=c.y-f-(f?Pt(ut.gutter.in,o):0),x={x:r.x,y:b,w:r.w-(u?u+Pt(ut.gutter.in,o):0),h:k-b},m=u?{x:r.x+r.w-u,y:b,w:u,h:x.h}:{x:0,y:0,w:0,h:0},v=Pt(ut.scaleBar.widthIn,o),g=f,y=(j=e.slots)!=null&&j.scaleBar?{x:r.x,y:k+(f?Pt(ut.gutter.in,o):0),w:v,h:g}:{x:0,y:0,w:0,h:0},d=Pt(ut.north.sizeIn,o),h=(O=e.slots)!=null&&O.north?{x:r.x+r.w-d-(u?u+Pt(ut.gutter.in,o):0),y:k+(f?Pt(ut.gutter.in,o):0),w:d,h:d}:{x:0,y:0,w:0,h:0};return{page:a,content:r,title:i,map:x,legend:m,scaleBar:y,north:h,footer:c}}const En=4096,So=2048,Lg=15e3;function $l(e){const t=le({phase:"idle",completed:0,total:0,message:"",fraction:0,percent:0}),o=le(!1);let n=null;async function a(x,m="png"){if(o.value)throw new Error("useMapPoster: already rendering");const v=e();if(!v)throw new Error("useMapPoster: no source map");n=new AbortController;const g=ZS(x.signal,n.signal);o.value=!0,l=0,c("init",1,1,"preparing render");try{const y=El(x),d=WS(x.renderPath||"auto",y);d==="single"&&(y.width>En||y.height>En)&&console.warn(`[useMapPoster] requested single-canvas ${y.width}×${y.height}px > ${En}; auto-switching to tile-stitch.`);const p=(d==="single"&&(y.width>En||y.height>En)?"stitch":d)==="single"?await u(v,y,g):await f(v,y,g);c("compose",0,1,"compositing overlay");const _=await b(p,x,y);c("encode",0,1,`encoding ${m.toUpperCase()}`);const L=m==="pdf"?await JS(_,x):await XS(_,"image/png");return c("done",1,1,"render complete"),L}finally{o.value=!1,n=null}}function r(){n&&n.abort()}const s={init:.02,"hidden-map":.3,stitch:.42,capture:.14,compose:.06,encode:.05,done:.01},i=["init","hidden-map","stitch","capture","compose","encode","done"];let l=0;function c(x,m,v,g){const y=i.indexOf(x);let d=0;for(let _=0;_0?Math.min(1,m/v):0,p=d+(s[x]||0)*h;l=x==="init"?p:Math.max(l,p),t.value={phase:x,completed:m,total:v,message:g,fraction:Math.min(1,l),percent:Math.round(Math.min(1,l)*100)}}async function u(x,m,v){c("hidden-map",0,3,"creating hidden map");const{hiddenMap:g,restoreDpr:y,container:d}=await Cg(x,m.width,m.height);try{Tl(v),c("hidden-map",1,3,"loading map tiles"),await $g(g),c("hidden-map",3,3,"tiles loaded"),Tl(v),c("capture",0,1,"capturing canvas");const h=g.getCanvas().toDataURL("image/png"),p=await Eg(h),_=document.createElement("canvas");return _.width=m.width,_.height=m.height,_.getContext("2d").drawImage(p,0,0,m.width,m.height),_}finally{try{g.remove()}catch{}d!=null&&d.parentNode&&d.parentNode.removeChild(d),y()}}async function f(x,m,v){const g=Math.ceil(m.width/So),y=Math.ceil(m.height/So),d=g*y;c("hidden-map",0,d,`creating hidden map (${g}×${y} tiles)`);const h=x.getBounds(),p=x.getCenter(),_=x.getZoom(),L=x.getBearing(),R=x.getPitch(),{hiddenMap:S,restoreDpr:z,container:j}=await Cg(x,So,So,{preserveBounds:!0,bounds:h});try{const O=document.createElement("canvas");O.width=m.width,O.height=m.height;const D=O.getContext("2d"),M=h.getNorthEast(),E=h.getSouthWest(),T=M.lng-E.lng,N=M.lat-E.lat,q=T/g,ce=N/y;let ee=0;for(let oe=0;oet&&([t,o]=[o,t]),e.orientation==="portrait"&&t>o&&([t,o]=[o,t]);const n=e.dpi||300;return{width:Math.round(t*n),height:Math.round(o*n),dpi:n}}function WS(e,t){return e==="single"||e==="stitch"?e:t.width>En||t.height>En?"stitch":"single"}async function Cg(e,t,o,n={}){const a=document.createElement("div");a.style.cssText=` position: fixed; top: -100000px; left: -100000px; width: ${t}px; height: ${o}px; pointer-events: none; visibility: hidden; - `,document.body.appendChild(a);const r=window.devicePixelRatio,s=()=>{try{Object.defineProperty(window,"devicePixelRatio",{value:r,configurable:!0})}catch{}};try{Object.defineProperty(window,"devicePixelRatio",{value:1,configurable:!0})}catch{}const i=typeof window<"u"?window.mapboxgl:null;if(!i)throw new Error("useMapPoster: mapboxgl global not found");const l=e.getStyle(),c=new i.Map({container:a,style:l,center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),interactive:!1,attributionControl:!1,preserveDrawingBuffer:!0,fadeDuration:0});return await new Promise((u,f)=>{let b=!1;const k=setTimeout(()=>{b||(b=!0,f(new Error("useMapPoster: hidden map style.load timeout")))},Lg);c.once("style.load",()=>{b||(b=!0,clearTimeout(k),u())})}),n.preserveBounds&&n.bounds&&c.fitBounds(n.bounds,{padding:0,animate:!1,duration:0}),{hiddenMap:c,restoreDpr:s,container:a}}function Eg(e){return new Promise((t,o)=>{let n=!1;const a=setTimeout(()=>{n||(n=!0,o(new Error("useMapPoster: hidden map idle timeout")))},Lg),r=()=>{n||(n=!0,clearTimeout(a),requestAnimationFrame(()=>t()))};e.loaded()&&!e.isMoving()?r():e.once("idle",r)})}function $g(e){return new Promise((t,o)=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>t(n),n.onerror=a=>o(new Error("image load failed: "+((a==null?void 0:a.message)||"unknown"))),n.src=typeof e=="string"?e:URL.createObjectURL(e)})}function jS(e,t,o){const n=new Blob([e],{type:"image/svg+xml;charset=utf-8"}),a=URL.createObjectURL(n);return new Promise((r,s)=>{const i=new Image;i.onload=()=>{URL.revokeObjectURL(a),r(i)},i.onerror=l=>{URL.revokeObjectURL(a),s(new Error("svg load failed: "+((l==null?void 0:l.message)||"unknown")))},i.width=t,i.height=o,i.src=a})}function zS(e,t){return new Promise((o,n)=>{e.toBlob(a=>a?o(a):n(new Error("toBlob failed")),t)})}async function US(e,t){let o;try{const s=await qt(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);o=s.jsPDF||s.default}catch{throw new Error("useMapPoster.toPdf: jspdf not installed (npm i jspdf svg2pdf.js)")}const n=e.toDataURL("image/png"),a=e.width>e.height?"l":"p",r=new o({orientation:a,unit:"in",format:[t.widthIn,t.heightIn]});return r.addImage(n,"PNG",0,0,t.widthIn,t.heightIn),r.output("blob")}function Tl(e){if(e!=null&&e.aborted)throw new DOMException("useMapPoster: aborted","AbortError")}function KS(...e){const t=new AbortController;for(const o of e)if(o){if(o.aborted){t.abort();break}o.addEventListener("abort",()=>t.abort(),{once:!0})}return t.signal}function HS(e,t){var a,r,s,i;const o=(((r=(a=e.slots)==null?void 0:a.title)==null?void 0:r.text)||"").replace(/[<>&]/g,oa),n=(((i=(s=e.slots)==null?void 0:s.title)==null?void 0:i.subtitle)||"").replace(/[<>&]/g,oa);return` + `,document.body.appendChild(a);const r=window.devicePixelRatio,s=()=>{try{Object.defineProperty(window,"devicePixelRatio",{value:r,configurable:!0})}catch{}};try{Object.defineProperty(window,"devicePixelRatio",{value:1,configurable:!0})}catch{}const i=typeof window<"u"?window.mapboxgl:null;if(!i)throw new Error("useMapPoster: mapboxgl global not found");const l=e.getStyle(),c=new i.Map({container:a,style:l,center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),interactive:!1,attributionControl:!1,preserveDrawingBuffer:!0,fadeDuration:0});return await new Promise((u,f)=>{let b=!1;const k=setTimeout(()=>{b||(b=!0,f(new Error("useMapPoster: hidden map style.load timeout")))},Lg);c.once("style.load",()=>{b||(b=!0,clearTimeout(k),u())})}),n.preserveBounds&&n.bounds&&c.fitBounds(n.bounds,{padding:0,animate:!1,duration:0}),{hiddenMap:c,restoreDpr:s,container:a}}function $g(e){return new Promise((t,o)=>{let n=!1;const a=setTimeout(()=>{n||(n=!0,o(new Error("useMapPoster: hidden map idle timeout")))},Lg),r=()=>{n||(n=!0,clearTimeout(a),requestAnimationFrame(()=>t()))};e.loaded()&&!e.isMoving()?r():e.once("idle",r)})}function Eg(e){return new Promise((t,o)=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>t(n),n.onerror=a=>o(new Error("image load failed: "+((a==null?void 0:a.message)||"unknown"))),n.src=typeof e=="string"?e:URL.createObjectURL(e)})}function YS(e,t,o){const n=new Blob([e],{type:"image/svg+xml;charset=utf-8"}),a=URL.createObjectURL(n);return new Promise((r,s)=>{const i=new Image;i.onload=()=>{URL.revokeObjectURL(a),r(i)},i.onerror=l=>{URL.revokeObjectURL(a),s(new Error("svg load failed: "+((l==null?void 0:l.message)||"unknown")))},i.width=t,i.height=o,i.src=a})}function XS(e,t){return new Promise((o,n)=>{e.toBlob(a=>a?o(a):n(new Error("toBlob failed")),t)})}async function JS(e,t){let o;try{const s=await qt(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);o=s.jsPDF||s.default}catch{throw new Error("useMapPoster.toPdf: jspdf not installed (npm i jspdf svg2pdf.js)")}const n=e.toDataURL("image/png"),a=e.width>e.height?"l":"p",r=new o({orientation:a,unit:"in",format:[t.widthIn,t.heightIn]});return r.addImage(n,"PNG",0,0,t.widthIn,t.heightIn),r.output("blob")}function Tl(e){if(e!=null&&e.aborted)throw new DOMException("useMapPoster: aborted","AbortError")}function ZS(...e){const t=new AbortController;for(const o of e)if(o){if(o.aborted){t.abort();break}o.addEventListener("abort",()=>t.abort(),{once:!0})}return t.signal}function QS(e,t){var a,r,s,i;const o=(((r=(a=e.slots)==null?void 0:a.title)==null?void 0:r.text)||"").replace(/[<>&]/g,oa),n=(((i=(s=e.slots)==null?void 0:s.title)==null?void 0:i.subtitle)||"").replace(/[<>&]/g,oa);return` ${o} ${n?`${n}`:""} - `}function VS(e,t){var a,r;const n=(((r=(a=e.slots)==null?void 0:a.legend)==null?void 0:r.rows)||[]).slice(0,24).map((s,i)=>{const l=30+i*26,c=(s.color||"#999").replace(/[<>&]/g,oa),u=(s.label||"").replace(/[<>&]/g,oa);return`${u}`}).join("");return` + `}function e2(e,t){var a,r;const n=(((r=(a=e.slots)==null?void 0:a.legend)==null?void 0:r.rows)||[]).slice(0,24).map((s,i)=>{const l=30+i*26,c=(s.color||"#999").replace(/[<>&]/g,oa),u=(s.label||"").replace(/[<>&]/g,oa);return`${u}`}).join("");return` Legend ${n} - `}function qS(e,t){return` + `}function t2(e,t){return` scale - `}function WS(e,t){const o=Math.min(t.w,t.h);return` + `}function o2(e,t){const o=Math.min(t.w,t.h);return` N - `}function YS(e,t){var r,s,i,l,c,u;const o=(((s=(r=e.slots)==null?void 0:r.footer)==null?void 0:s.left)||"").replace(/[<>&]/g,oa),n=(((l=(i=e.slots)==null?void 0:i.footer)==null?void 0:l.right)||"").replace(/[<>&]/g,oa),a=((u=(c=e.slots)==null?void 0:c.footer)==null?void 0:u.attribution)||"© Mapbox © OpenStreetMap";return` + `}function n2(e,t){var r,s,i,l,c,u;const o=(((s=(r=e.slots)==null?void 0:r.footer)==null?void 0:s.left)||"").replace(/[<>&]/g,oa),n=(((l=(i=e.slots)==null?void 0:i.footer)==null?void 0:l.right)||"").replace(/[<>&]/g,oa),a=((u=(c=e.slots)==null?void 0:c.footer)==null?void 0:u.attribution)||"© Mapbox © OpenStreetMap";return` ${o} ${a} ${n} - `}function oa(e){return e==="<"?"<":e===">"?">":"&"}const XS=Object.freeze(Object.defineProperty({__proto__:null,posterPixels:$l,useMapPoster:El},Symbol.toStringTag,{value:"Module"})),JS={class:"title-slot__title"},ZS={key:0,class:"title-slot__subtitle"},QS=Ot({__name:"TitleSlot",props:{title:{type:String,default:""},subtitle:{type:String,default:""},align:{type:String,default:"left"}},emits:[],setup(e){const t=e,o=Q(()=>({textAlign:t.align,fontFamily:ut.title.fontFamily,background:"rgba(255,255,255,0.92)",borderBottom:"1px solid #eee"}));return(n,a)=>(V(),ae("div",{class:"title-slot",style:Xe(o.value)},[C("div",JS,he(e.title||"Untitled"),1),e.subtitle?(V(),ae("div",ZS,he(e.subtitle),1)):ve("",!0)],4))}},[["__scopeId","data-v-7caa85cc"]]),e2={class:"poster-slot poster-slot--LegendSlot","data-slot":"LegendSlot"},t2=Ot({__name:"LegendSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(V(),ae("div",e2))}},[["__scopeId","data-v-1a65b1e9"]]),o2={class:"poster-slot poster-slot--ScaleBarSlot","data-slot":"ScaleBarSlot"},n2=Ot({__name:"ScaleBarSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(V(),ae("div",o2))}},[["__scopeId","data-v-2cbe964e"]]),a2={class:"poster-slot poster-slot--NorthArrowSlot","data-slot":"NorthArrowSlot"},r2=Ot({__name:"NorthArrowSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(V(),ae("div",a2))}},[["__scopeId","data-v-d12819c9"]]),s2={class:"poster-slot poster-slot--FooterSlot","data-slot":"FooterSlot"},i2=Ot({__name:"FooterSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(V(),ae("div",s2))}},[["__scopeId","data-v-93c6c172"]]),l2=["src"],c2=Ot({__name:"PosterPreview",props:{spec:{type:Object,required:!0},getMap:{type:Function,required:!0},legendRows:{type:Array,default:()=>[]},metadata:{type:Object,default:()=>({})}},setup(e){const t=e,o=le(null),n=le(""),a=le(800),r=le(0),s=le(0),i=le(null),l=Q(()=>$l(t.spec)),c=Q(()=>Sg(t.spec,l.value)),u=Q(()=>{const m=l.value.width;return m?Math.min(1,(a.value-24)/m):1}),f=Q(()=>({width:l.value.width+"px",height:l.value.height+"px",transform:`scale(${u.value})`,transformOrigin:"top left",background:"#fff",position:"relative",boxShadow:"0 6px 24px rgba(0,0,0,0.25)"}));function b(m){return m?{position:"absolute",left:m.x+"px",top:m.y+"px",width:m.w+"px",height:m.h+"px"}:{display:"none"}}let k=null;Zt(()=>{o.value&&typeof ResizeObserver<"u"&&(k=new ResizeObserver(()=>{var m;a.value=((m=o.value)==null?void 0:m.clientWidth)||800}),k.observe(o.value),a.value=o.value.clientWidth),x()}),Ea(()=>{k&&(k.disconnect(),k=null)}),De(()=>[t.spec.widthIn,t.spec.heightIn,t.spec.orientation,t.spec.dpi],()=>{x()});async function x(){var v,g,y,d;const m=(v=t.getMap)==null?void 0:v.call(t);if(m)try{(!m.loaded()||m.isMoving())&&await new Promise(p=>m.once("idle",p)),n.value=m.getCanvas().toDataURL("image/png"),r.value=((g=m.getBearing)==null?void 0:g.call(m))||0;const h=(y=m.getCenter)==null?void 0:y.call(m);s.value=(h==null?void 0:h.lat)||0,i.value=(d=m.getBounds)==null?void 0:d.call(m)}catch(h){console.warn("[PosterPreview] snapshot failed",h)}}return(m,v)=>{var g,y,d,h,p,_,L,R,S,z,j;return V(),ae("div",{ref_key:"rootEl",ref:o,class:"poster-preview"},[C("div",{class:"poster-preview__page",style:Xe(f.value)},[n.value?(V(),ae("img",{key:0,class:"poster-preview__map",src:n.value,style:Xe(b(c.value.map)),alt:"map preview"},null,12,l2)):(V(),ae("div",{key:1,class:"poster-preview__map placeholder",style:Xe(b(c.value.map))}," Loading map snapshot… ",4)),(g=e.spec.slots)!=null&&g.title?(V(),Ge(QS,{key:2,class:"poster-preview__slot",style:Xe(b(c.value.title)),title:e.spec.slots.title.text,subtitle:e.spec.slots.title.subtitle},null,8,["style","title","subtitle"])):ve("",!0),(y=e.spec.slots)!=null&&y.legend&&((d=e.spec.slots.legend.rows)!=null&&d.length)?(V(),Ge(t2,{key:3,class:"poster-preview__slot",style:Xe(b(c.value.legend)),rows:e.spec.slots.legend.rows,type:e.spec.slots.legend.type},null,8,["style","rows","type"])):ve("",!0),(h=e.spec.slots)!=null&&h.scaleBar?(V(),Ge(n2,{key:4,class:"poster-preview__slot",style:Xe(b(c.value.scaleBar)),"map-bounds":i.value,"map-center-lat":s.value},null,8,["style","map-bounds","map-center-lat"])):ve("",!0),(p=e.spec.slots)!=null&&p.north?(V(),Ge(r2,{key:5,class:"poster-preview__slot",style:Xe(b(c.value.north)),bearing:r.value},null,8,["style","bearing"])):ve("",!0),Ze(i2,{class:"poster-preview__slot",style:Xe(b(c.value.footer)),left:(L=(_=e.spec.slots)==null?void 0:_.footer)==null?void 0:L.left,right:(S=(R=e.spec.slots)==null?void 0:R.footer)==null?void 0:S.right,attribution:(j=(z=e.spec.slots)==null?void 0:z.footer)==null?void 0:j.attribution,metadata:e.metadata},null,8,["style","left","right","attribution","metadata"])],4)],512)}}},[["__scopeId","data-v-563f7dcd"]]),Tg=25.4,Pg=e=>e/Tg,Ng=e=>e*Tg;function Lo(e,t,o,n,a,r,s,i){const l=a==="in"?{w:o,h:n}:{w:Mg(Pg(o)),h:Mg(Pg(n))},c=a==="mm"?{w:o,h:n}:{w:Ig(Ng(o)),h:Ig(Ng(n))},u={w:Math.round(l.w*300),h:Math.round(l.h*300)};return{id:e,label:t,inches:l,mm:c,px300:u,category:r,orientation:s,recommendedDpi:i}}function Mg(e){return Math.round(e*1e3)/1e3}function Ig(e){return Math.round(e*10)/10}const Rg={letter:Lo("letter",'Letter (8.5×11")',8.5,11,"in","us","either",300),tabloid:Lo("tabloid",'Tabloid (11×17")',11,17,"in","us","either",300),"18x24":Lo("18x24",'18 × 24"',18,24,"in","us","portrait",300),"24x36":Lo("24x36",'24 × 36"',24,36,"in","us","portrait",300),"27x40":Lo("27x40",'27 × 40"',27,40,"in","us","portrait",200),a4:Lo("a4","A4 (210 × 297 mm)",210,297,"mm","iso","either",300),a3:Lo("a3","A3 (297 × 420 mm)",297,420,"mm","iso","either",300),a2:Lo("a2","A2 (420 × 594 mm)",420,594,"mm","iso","portrait",300),a1:Lo("a1","A1 (594 × 841 mm)",594,841,"mm","iso","portrait",200),a0:Lo("a0","A0 (841 × 1189 mm)",841,1189,"mm","iso","portrait",150)},u2=["letter","tabloid","18x24","24x36","27x40","a4","a3","a2","a1","a0"],d2="24x36";function Fg(e){return Rg[e]||null}function p2(){return u2.map(e=>Rg[e])}const g2={class:"poster-dlg",role:"dialog","aria-modal":"true","aria-label":"Export Poster"},f2={class:"poster-dlg__header"},h2={class:"poster-dlg__body"},m2={class:"poster-dlg__controls"},b2={class:"ctl"},y2=["value"],v2={class:"ctl"},_2={class:"ctl"},x2={class:"ctl"},k2={class:"ctl"},w2={class:"ctl"},A2={class:"ctl ctl--check"},S2={key:0,class:"render-status"},L2=["max","value"],C2={class:"actions"},E2=["disabled"],$2={class:"poster-dlg__preview"},T2=Object.freeze(Object.defineProperty({__proto__:null,default:Ot({__name:"PosterDialog",props:{modelValue:{type:Boolean,default:!1},getMap:{type:Function,required:!0},legendRows:{type:Array,default:()=>[]},metadata:{type:Object,default:()=>({})},initialSize:{type:String,default:d2}},emits:["update:modelValue","rendered","error"],setup(e,{emit:t}){const o=e,n=t,a=Q({get:()=>o.modelValue,set:h=>n("update:modelValue",h)}),r=p2(),s=le(o.initialSize),i=le("portrait"),l=le(300),c=le("png"),u=le(""),f=le(""),b=le(!0),k=le(!0),x=le(!0);De(s,h=>{const p=Fg(h);p&&(l.value=p.recommendedDpi,p.orientation!=="either"&&(i.value=p.orientation))},{immediate:!0});const m=Q(()=>{const h=Fg(s.value);if(!h)return Cl({widthIn:24,heightIn:36});const p=Cl({widthIn:h.inches.w,heightIn:h.inches.h,dpi:l.value,orientation:i.value});return p.slots.title={...p.slots.title,text:u.value,subtitle:f.value},p.slots.legend=b.value?{...p.slots.legend,rows:o.legendRows}:null,p.slots.scaleBar=k.value,p.slots.north=x.value,p.slots.footer={...p.slots.footer,left:o.metadata.source?`Source: ${o.metadata.source}`:"",right:o.metadata.date?`${o.metadata.date}`:new Date().toISOString().slice(0,10),attribution:ut.footer.attribution},p}),v=El(o.getMap);async function g(){try{const h=await v.render(m.value,c.value),p=c.value==="pdf"?"pdf":"png",_=(u.value||"poster").replace(/\W+/g,"-").toLowerCase();d(h,`${_}.${p}`),n("rendered",{blob:h,format:c.value,spec:m.value})}catch(h){console.error("[PosterDialog] render failed",h),n("error",h)}}function y(){a.value=!1}function d(h,p){const _=URL.createObjectURL(h),L=document.createElement("a");L.href=_,L.download=p,document.body.appendChild(L),L.click(),L.remove(),setTimeout(()=>URL.revokeObjectURL(_),1500)}return(h,p)=>(V(),Ge(_m,{name:"poster-dlg"},{default:Mt(()=>[a.value?(V(),ae("div",{key:0,class:"poster-dlg-backdrop",onClick:dt(y,["self"])},[C("section",g2,[C("header",f2,[Fo(h.$slots,"header",{},()=>[p[10]||(p[10]=C("h2",null,"Export Poster",-1))],!0),C("button",{class:"poster-dlg__close",type:"button","aria-label":"Close",onClick:y},"×")]),C("div",h2,[C("aside",m2,[C("label",b2,[p[11]||(p[11]=C("span",null,"Size",-1)),zt(C("select",{"onUpdate:modelValue":p[0]||(p[0]=_=>s.value=_)},[(V(!0),ae(Ie,null,yt(de(r),_=>(V(),ae("option",{key:_.id,value:_.id},he(_.label),9,y2))),128))],512),[[Hr,s.value]])]),C("label",v2,[p[13]||(p[13]=C("span",null,"Orientation",-1)),zt(C("select",{"onUpdate:modelValue":p[1]||(p[1]=_=>i.value=_)},[...p[12]||(p[12]=[C("option",{value:"portrait"},"Portrait",-1),C("option",{value:"landscape"},"Landscape",-1)])],512),[[Hr,i.value]])]),C("label",_2,[p[15]||(p[15]=C("span",null,"DPI",-1)),zt(C("select",{"onUpdate:modelValue":p[2]||(p[2]=_=>l.value=_)},[...p[14]||(p[14]=[C("option",{value:150},"150 (large posters)",-1),C("option",{value:200},"200 (balanced)",-1),C("option",{value:300},"300 (sharp)",-1)])],512),[[Hr,l.value,void 0,{number:!0}]])]),C("label",x2,[p[17]||(p[17]=C("span",null,"Format",-1)),zt(C("select",{"onUpdate:modelValue":p[3]||(p[3]=_=>c.value=_)},[...p[16]||(p[16]=[C("option",{value:"png"},"PNG (raster)",-1),C("option",{value:"pdf"},"PDF (raster on vector page)",-1)])],512),[[Hr,c.value]]),Fo(h.$slots,"format-extras",{},void 0,!0)]),C("label",k2,[p[18]||(p[18]=C("span",null,"Title",-1)),zt(C("input",{"onUpdate:modelValue":p[4]||(p[4]=_=>u.value=_),type:"text",placeholder:"Map title"},null,512),[[Kr,u.value]])]),C("label",w2,[p[19]||(p[19]=C("span",null,"Subtitle",-1)),zt(C("input",{"onUpdate:modelValue":p[5]||(p[5]=_=>f.value=_),type:"text",placeholder:"(optional)"},null,512),[[Kr,f.value]])]),C("fieldset",A2,[p[23]||(p[23]=C("legend",null,"Slots",-1)),C("label",null,[zt(C("input",{"onUpdate:modelValue":p[6]||(p[6]=_=>b.value=_),type:"checkbox"},null,512),[[wi,b.value]]),p[20]||(p[20]=gt(" Legend",-1))]),C("label",null,[zt(C("input",{"onUpdate:modelValue":p[7]||(p[7]=_=>k.value=_),type:"checkbox"},null,512),[[wi,k.value]]),p[21]||(p[21]=gt(" Scale bar",-1))]),C("label",null,[zt(C("input",{"onUpdate:modelValue":p[8]||(p[8]=_=>x.value=_),type:"checkbox"},null,512),[[wi,x.value]]),p[22]||(p[22]=gt(" North arrow",-1))]),p[24]||(p[24]=C("label",{class:"muted"},[C("input",{type:"checkbox",checked:"",disabled:""}),gt(" Footer (attribution required)")],-1))]),de(v).isRendering.value?(V(),ae("div",S2,[C("strong",null,he(de(v).progress.value.phase),1),C("progress",{max:de(v).progress.value.total||1,value:de(v).progress.value.completed},null,8,L2),C("small",null,he(de(v).progress.value.message),1),C("button",{class:"btn btn--ghost",type:"button",onClick:p[9]||(p[9]=(..._)=>de(v).cancel&&de(v).cancel(..._))},"Cancel")])):ve("",!0),C("div",C2,[C("button",{class:"btn btn--ghost",type:"button",onClick:y},"Close"),C("button",{class:"btn btn--primary",type:"button",disabled:de(v).isRendering.value,onClick:g},he(de(v).isRendering.value?"Rendering…":`Render ${c.value.toUpperCase()}`),9,E2)])]),C("main",$2,[Ze(c2,{spec:m.value,"get-map":e.getMap,"legend-rows":e.legendRows,metadata:e.metadata},null,8,["spec","get-map","legend-rows","metadata"])])])])])):ve("",!0)]),_:3}))}},[["__scopeId","data-v-1e730db1"]])},Symbol.toStringTag,{value:"Module"}));function Og(e,t,o,n){const a=parseFloat(t)-parseFloat(n),r=parseFloat(e)-parseFloat(o);return Math.sqrt(a*a+r*r)}function P2(e,t){const o={};for(const n of e){const a=t(n);o[a]||(o[a]=[]),o[a].push(n)}return o}const N2=Object.freeze({cluster:!0,clusterMaxZoom:6,clusterRadius:40}),M2=Object.freeze(["step",["get","point_count"],"#51bbd6",10,"#f1f075",50,"#f28cb1",500,"#e74c3c"]),I2=Object.freeze(["step",["get","point_count"],15,10,20,50,25,500,35]);class Dg{constructor(t={}){this.maxConnectionDistance=t.maxConnectionDistance??1/0}_calculateDistance(t,o){return Og(parseFloat(t.latitude),parseFloat(t.longitude),parseFloat(o.latitude),parseFloat(o.longitude))}_createUnionFind(t){const o=Array.from({length:t},(s,i)=>i),n=new Array(t).fill(0),a=s=>(o[s]!==s&&(o[s]=a(o[s])),o[s]);return{find:a,union:(s,i)=>{const l=a(s),c=a(i);return l===c?!1:(n[l]n[c]?o[c]=l:(o[c]=l,n[l]++),!0)}}}generateMSTLines(t,o={}){const n=o.maxConnectionDistance??this.maxConnectionDistance;if(!t||t.length<2)return[];const a=t.filter(f=>{const b=parseFloat(f.latitude),k=parseFloat(f.longitude);return!isNaN(b)&&!isNaN(k)});if(a.length<2)return[];const r=[];for(let f=0;ff.distance-b.distance);const s=this._createUnionFind(a.length),i=[];let l=0;const c=a.length-1;for(const f of r){if(l>=c)break;s.union(f.from,f.to)&&(i.push(f),l++)}const u=i.map(f=>({type:"Feature",geometry:{type:"LineString",coordinates:[[parseFloat(f.fromPoint.longitude),parseFloat(f.fromPoint.latitude)],[parseFloat(f.toPoint.longitude),parseFloat(f.toPoint.latitude)]]},properties:{distance:f.distance,algorithm:"MST"}}));return i.length${n} deg).`),u}generateMultiGroupMSTLines(t,o=null,n={}){const a={},r=Object.keys(t).sort((s,i)=>t[i].length-t[s].length);for(const s of r){const i=t[s];if(!i||i.length<2){a[s]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateMSTLines(i,n);if(typeof o=="function"){const c=o(s);l.forEach(u=>{u.properties={...u.properties,group:s,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:s}});a[s]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllMSTLines(t,o=null,n={}){const a=this.generateMultiGroupMSTLines(t,o,n),r=[];for(const s in a)r.push(...a[s].lines);return r}getMSTStats(t,o={}){const n=this.generateMultiGroupMSTLines(t,null,o);let a=0,r=0;const s=[];for(const l in n){const{lines:c,pointCount:u}=n[l];a+=c.length,r+=u;const f=Math.max(0,u-1),b=u>1?(c.length/f*100).toFixed(1):100;s.push({name:l,points:u,lines:c.length,expected:f,coverage:b+"%",hasOrphans:c.lengthc.points-l.points);const i=s.filter(l=>l.hasOrphans).length;return{algorithm:"MST (Minimum Spanning Tree)",totalGroups:Object.keys(t).length,totalPoints:r,totalLines:a,expectedLines:Math.max(0,r-Object.keys(t).length),groupsWithOrphans:i,allPointsConnected:i===0,groups:s}}}new Dg;class Bg{constructor(t={}){this.maxDistance=t.maxDistance??15,this.maxNeighbors=t.maxNeighbors??15,this.sortKey=t.sortKey??"longitude"}_calculateDistance(t,o,n,a){return Og(t,o,n,a)}generateNetworkLines(t,o={}){const n=o.maxDistance??this.maxDistance,a=o.maxNeighbors??this.maxNeighbors,r=o.sortKey??this.sortKey,s=o.connectOrphans??!0;if(!t||t.length<2)return[];const i=t.filter(f=>{const b=parseFloat(f.latitude),k=parseFloat(f.longitude);return!isNaN(b)&&!isNaN(k)});if(i.length<2)return[];const l=[],c=new Set,u=[...i].sort((f,b)=>parseFloat(f[r])-parseFloat(b[r]));for(let f=0;ft[i].length-t[s].length);for(const s of r){const i=t[s];if(!i||i.length<2){a[s]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateNetworkLines(i,n);if(typeof o=="function"){const c=o(s);l.forEach(u=>{u.properties={...u.properties,group:s,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:s}});a[s]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllNetworkLines(t,o=null,n={}){const a=this.generateMultiGroupNetworkLines(t,o,n),r=[];for(const s in a)r.push(...a[s].lines);return r}getClusteringStats(t,o={}){const n=this.generateMultiGroupNetworkLines(t,null,o);let a=0,r=0;const s=[];for(const i in n){const{lines:l,pointCount:c}=n[i];a+=l.length,r+=c,s.push({name:i,points:c,lines:l.length,ratio:c>0?(l.length/c).toFixed(2):0})}return s.sort((i,l)=>l.points-i.points),{algorithm:"Network (nearest-neighbor)",totalGroups:Object.keys(t).length,totalPoints:r,totalLines:a,avgLinesPerPoint:r>0?(a/r).toFixed(2):0,groups:s}}}new Bg({maxDistance:15,maxNeighbors:15,sortKey:"longitude"});const na="cluster-lines-source",aa="cluster-lines",un="mapbox-clusters",eo="mapbox-clusters-circle",ra="mapbox-clusters-count",R2=Object.freeze({type:"FeatureCollection",features:[]});function Gg(e={}){const{getMap:t=()=>null,mapId:o="unknown",getPeopleGroups:n=()=>[],pinSourceId:a="language-families",pinLayerId:r="language-family-pins",groupKey:s="languageFamily",getGroupColor:i=null,mapboxClusterOptions:l={}}=e,c=Te("mapStore",null),u=new Dg({maxConnectionDistance:1/0}),f=new Bg({maxDistance:15,maxNeighbors:15,sortKey:"longitude"}),b=le(!1),k=le("mapbox"),x=Q(()=>c&&"clusteringEnabled"in c?!!c.clusteringEnabled:b.value),m=Q(()=>c&&c.clusteringMode?c.clusteringMode:k.value),v=le([]);let g=null,y=null,d=null;function h(H){const pe=["mapbox","mst","network"];if(!pe.includes(H)){console.warn(`[${o}] useMapClustering.setMode: unknown mode "${H}". Allowed: ${pe.join(", ")}`);return}c&&typeof c.setClusteringMode=="function"?c.setClusteringMode(H):c&&"clusteringMode"in c?c.clusteringMode=H:k.value=H,x.value&&(z(),S())}function p(H){const pe=!!H;c&&typeof c.setClusteringEnabled=="function"?c.setClusteringEnabled(pe):c&&"clusteringEnabled"in c?c.clusteringEnabled=pe:b.value=pe,pe?S():z()}function _(H){!H||!H.property||H.value==null?d=null:d={property:H.property,value:H.value},c&&("clusterFilterProperty"in c&&(c.clusterFilterProperty=(d==null?void 0:d.property)??null),"clusterFilterValue"in c&&(c.clusterFilterValue=(d==null?void 0:d.value)??null)),x.value&&(z(),S())}function L(H){if(!d)return H;const{property:pe,value:we}=d,ue=Ae=>String(Ae||"").toLowerCase().replace(/[^a-z0-9]+/g,""),$e=ue(we);return $e?H.filter(Ae=>{var ye,me;const ie=(Ae==null?void 0:Ae[pe])??((ye=Ae==null?void 0:Ae.properties)==null?void 0:ye[pe])??((me=Ae==null?void 0:Ae._normalized)==null?void 0:me[pe]);return ue(ie)===$e}):H}function R(H){g=H}function S(){const H=t();if(H){switch(z(),m.value){case"mapbox":M(H);break;case"mst":$(H,"mst");break;case"network":$(H,"network");break;default:console.warn(`[${o}] Unknown clustering mode: ${m.value}`)}oe(H,!0)}}function z(){const H=t();H&&(O(H,ra,!1),O(H,eo,!1),D(H,un),O(H,aa,!1),D(H,na),v.value=[],N(H),oe(H,!1))}function j(){const H=t();H&&(N(H),H.getLayer(ra)&&H.removeLayer(ra),H.getLayer(eo)&&H.removeLayer(eo),H.getSource(un)&&H.removeSource(un),H.getLayer(aa)&&H.removeLayer(aa),H.getSource(na)&&H.removeSource(na),oe(H,!1)),v.value=[],g=null}function O(H,pe,we){if(H.getLayer(pe))try{H.setLayoutProperty(pe,"visibility",we?"visible":"none")}catch{}}function D(H,pe){const we=H.getSource(pe);if(we&&typeof we.setData=="function")try{we.setData(R2)}catch{}}function M(H){const pe=L(n());if(!pe.length)return;const we=pe.map(Ae=>{const ie=parseFloat(Ae.longitude??Ae.lng),ye=parseFloat(Ae.latitude??Ae.lat);return isNaN(ie)||isNaN(ye)?null:{type:"Feature",geometry:{type:"Point",coordinates:[ie,ye]},properties:{...Ae.properties||Ae}}}).filter(Boolean),ue={type:"FeatureCollection",features:we},$e=H.getSource(un);$e&&typeof $e.setData=="function"?$e.setData(ue):H.addSource(un,{type:"geojson",data:ue,...N2,...l}),H.getLayer(eo)?O(H,eo,!0):H.addLayer({id:eo,type:"circle",source:un,filter:["has","point_count"],paint:{"circle-color":M2,"circle-radius":I2,"circle-stroke-width":2,"circle-stroke-color":"#ffffff",...Wa(H),"circle-opacity":.85}}),H.getLayer(ra)?O(H,ra,!0):H.addLayer({id:ra,type:"symbol",source:un,filter:["has","point_count"],layout:{"text-field":["get","point_count_abbreviated"],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Bold"],"text-size":12},paint:{"text-color":"#000000"}}),T(H),console.log(`[${o}] Clustering: mapbox-native applied (${we.length} features)`)}function $(H,pe){const we=L(n());if(!we.length)return;const ue=P2(we,Le=>{var E;return Le[s]??((E=Le._normalized)==null?void 0:E[s])??"Unknown"}),$e=typeof i=="function"?i:()=>"#666666";let Ae=[],ie=null;if(pe==="mst"?(Ae=u.generateAllMSTLines(ue,$e),ie=u.getMSTStats(ue)):(Ae=f.generateAllNetworkLines(ue,$e),ie=f.getClusteringStats(ue)),v.value=Ae,Ae.length===0)return;const ye={type:"FeatureCollection",features:Ae},me=H.getSource(na);if(me&&typeof me.setData=="function"?me.setData(ye):H.addSource(na,{type:"geojson",data:ye}),H.getLayer(aa))O(H,aa,!0);else{const Le={id:aa,type:"line",source:na,paint:{"line-color":["coalesce",["get","color"],"#666666"],"line-width":["interpolate",["linear"],["zoom"],0,.5,4,.75,8,1,12,1.5],"line-emissive-strength":1,"line-opacity":.5},layout:{"line-cap":"round","line-join":"round"}};H.getLayer(r)?H.addLayer(Le,r):H.addLayer(Le)}console.log(`[${o}] Clustering: ${pe} applied — ${Ae.length} lines across ${(ie==null?void 0:ie.totalGroups)??0} groups`)}function T(H){H.getLayer(eo)&&(H.on("click",eo,q),H.on("mouseenter",eo,ce),H.on("mouseleave",eo,ee),y=eo)}function N(H){if(!y)return;const pe=y;try{H.off("click",pe,q),H.off("mouseenter",pe,ce),H.off("mouseleave",pe,ee)}catch{}y=null}function q(H){const pe=t();if(!pe)return;const we=pe.queryRenderedFeatures(H.point,{layers:[eo]});if(!we.length)return;const ue=we[0],$e=ue.properties.cluster_id,Ae=ue.geometry.coordinates,ie=ue.properties.point_count;if(typeof g=="function"){g({clusterId:$e,coordinates:Ae,pointCount:ie,originalEvent:H});return}const ye=pe.getSource(un);!ye||typeof ye.getClusterExpansionZoom!="function"||ye.getClusterExpansionZoom($e,(me,Le)=>{me||pe.easeTo({center:Ae,zoom:Le})})}function ce(){const H=t();H&&(H.getCanvas().style.cursor="pointer")}function ee(){const H=t();H&&(H.getCanvas().style.cursor="")}function oe(H,pe){if(H.getLayer(r))try{H.setPaintProperty(r,"circle-opacity",pe?.25:.9)}catch{}}return{enabled:x,mode:m,clusterLines:v,setMode:h,setEnabled:p,setSelectionFilter:_,onClusterClick:R,applyClustering:S,clearClustering:z,cleanup:j,mstUtil:u,networkUtil:f}}const F2=Object.freeze(Object.defineProperty({__proto__:null,default:Gg,useMapClustering:Gg},Symbol.toStringTag,{value:"Module"}));function O2(e){const t=le({phase:"idle",completed:0,total:0,message:""}),o=le(!1);function n(r,s,i,l){t.value={phase:r,completed:s,total:i,message:l}}async function a(r,s,i={}){if(o.value)throw new Error("useMapPacket: already rendering");o.value=!0;const l=Array.isArray(s)?s:[],c=1+l.length;try{n("map",0,c,"rendering map page");const u=await El(e).render(r,"png"),f=await K2(u);n("pdf-init",1,c,"building PDF");let b;try{const g=await qt(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);b=g.jsPDF||g.default}catch{throw new Error("useMapPacket: jspdf not installed (npm i jspdf)")}const k=new b({orientation:r.widthIn>r.heightIn?"l":"p",unit:"in",format:[r.widthIn,r.heightIn]}),x=r.widthIn,m=r.heightIn,v=B2(i);k.addImage(f,"PNG",0,0,x,m),jg(k,x,m,v);for(let g=0;g0&&r<=1?r*100:r).toFixed(1)}%`}function U2(e){var a;const t=Za(e),o=Qa(t.peoplePraying,(a=t._raw)==null?void 0:a.people_praying,e.peoplePraying);if(o===void 0)return"—";const n=Number(o);return Number.isNaN(n)?"—":n.toLocaleString()}function K2(e){return new Promise((t,o)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>o(new Error("useMapPacket: failed to read map blob")),n.readAsDataURL(e)})}const H2=Object.freeze(Object.defineProperty({__proto__:null,useMapPacket:O2},Symbol.toStringTag,{value:"Module"}))})(); + `}function oa(e){return e==="<"?"<":e===">"?">":"&"}const a2=Object.freeze(Object.defineProperty({__proto__:null,posterPixels:El,useMapPoster:$l},Symbol.toStringTag,{value:"Module"})),r2=".title-slot[data-v-7caa85cc]{padding:4% 2%;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;width:100%;height:100%;color:#0a0a0a}.title-slot__title[data-v-7caa85cc]{font-weight:700;font-size:clamp(20px,6vw,64px);line-height:1.05;letter-spacing:-.01em}.title-slot__subtitle[data-v-7caa85cc]{margin-top:.35em;font-weight:500;font-size:clamp(12px,2.4vw,28px);color:#444}",s2={class:"title-slot__title"},i2={key:0,class:"title-slot__subtitle"},l2=Ot({__name:"TitleSlot",props:{title:{type:String,default:""},subtitle:{type:String,default:""},align:{type:String,default:"left"}},emits:[],setup(e){const t=e,o=Q(()=>({textAlign:t.align,fontFamily:ut.title.fontFamily,background:"rgba(255,255,255,0.92)",borderBottom:"1px solid #eee"}));return(n,a)=>(V(),ae("div",{class:"title-slot",style:Xe(o.value)},[C("div",s2,he(e.title||"Untitled"),1),e.subtitle?(V(),ae("div",i2,he(e.subtitle),1)):ve("",!0)],4))}},[["styles",[r2]],["__scopeId","data-v-7caa85cc"]]),c2=".poster-slot[data-v-1a65b1e9]{display:none}",u2={class:"poster-slot poster-slot--LegendSlot","data-slot":"LegendSlot"},d2=Ot({__name:"LegendSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(V(),ae("div",u2))}},[["styles",[c2]],["__scopeId","data-v-1a65b1e9"]]),p2=".poster-slot[data-v-2cbe964e]{display:none}",g2={class:"poster-slot poster-slot--ScaleBarSlot","data-slot":"ScaleBarSlot"},f2=Ot({__name:"ScaleBarSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(V(),ae("div",g2))}},[["styles",[p2]],["__scopeId","data-v-2cbe964e"]]),h2=".poster-slot[data-v-d12819c9]{display:none}",m2={class:"poster-slot poster-slot--NorthArrowSlot","data-slot":"NorthArrowSlot"},b2=Ot({__name:"NorthArrowSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(V(),ae("div",m2))}},[["styles",[h2]],["__scopeId","data-v-d12819c9"]]),y2=".poster-slot[data-v-93c6c172]{display:none}",v2={class:"poster-slot poster-slot--FooterSlot","data-slot":"FooterSlot"},_2=Ot({__name:"FooterSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(V(),ae("div",v2))}},[["styles",[y2]],["__scopeId","data-v-93c6c172"]]),x2=".poster-preview[data-v-563f7dcd]{width:100%;height:100%;display:flex;align-items:flex-start;justify-content:center;padding:0}.poster-preview__page[data-v-563f7dcd]{display:block}.poster-preview__map[data-v-563f7dcd]{object-fit:cover;display:block}.poster-preview__map.placeholder[data-v-563f7dcd]{display:flex;align-items:center;justify-content:center;background:#ddd;color:#555;font-size:14px}.poster-preview__slot[data-v-563f7dcd]{pointer-events:none}",k2=["src"],w2=Ot({__name:"PosterPreview",props:{spec:{type:Object,required:!0},getMap:{type:Function,required:!0},legendRows:{type:Array,default:()=>[]},metadata:{type:Object,default:()=>({})}},setup(e){const t=e,o=le(null),n=le(""),a=le(800),r=le(0),s=le(0),i=le(null),l=Q(()=>El(t.spec)),c=Q(()=>Sg(t.spec,l.value)),u=Q(()=>{const m=l.value.width;return m?Math.min(1,(a.value-24)/m):1}),f=Q(()=>({width:l.value.width+"px",height:l.value.height+"px",transform:`scale(${u.value})`,transformOrigin:"top left",background:"#fff",position:"relative",boxShadow:"0 6px 24px rgba(0,0,0,0.25)"}));function b(m){return m?{position:"absolute",left:m.x+"px",top:m.y+"px",width:m.w+"px",height:m.h+"px"}:{display:"none"}}let k=null;Zt(()=>{o.value&&typeof ResizeObserver<"u"&&(k=new ResizeObserver(()=>{var m;a.value=((m=o.value)==null?void 0:m.clientWidth)||800}),k.observe(o.value),a.value=o.value.clientWidth),x()}),$a(()=>{k&&(k.disconnect(),k=null)}),De(()=>[t.spec.widthIn,t.spec.heightIn,t.spec.orientation,t.spec.dpi],()=>{x()});async function x(){var v,g,y,d;const m=(v=t.getMap)==null?void 0:v.call(t);if(m)try{(!m.loaded()||m.isMoving())&&await new Promise(p=>m.once("idle",p)),n.value=m.getCanvas().toDataURL("image/png"),r.value=((g=m.getBearing)==null?void 0:g.call(m))||0;const h=(y=m.getCenter)==null?void 0:y.call(m);s.value=(h==null?void 0:h.lat)||0,i.value=(d=m.getBounds)==null?void 0:d.call(m)}catch(h){console.warn("[PosterPreview] snapshot failed",h)}}return(m,v)=>{var g,y,d,h,p,_,L,R,S,z,j;return V(),ae("div",{ref_key:"rootEl",ref:o,class:"poster-preview"},[C("div",{class:"poster-preview__page",style:Xe(f.value)},[n.value?(V(),ae("img",{key:0,class:"poster-preview__map",src:n.value,style:Xe(b(c.value.map)),alt:"map preview"},null,12,k2)):(V(),ae("div",{key:1,class:"poster-preview__map placeholder",style:Xe(b(c.value.map))}," Loading map snapshot… ",4)),(g=e.spec.slots)!=null&&g.title?(V(),Ge(l2,{key:2,class:"poster-preview__slot",style:Xe(b(c.value.title)),title:e.spec.slots.title.text,subtitle:e.spec.slots.title.subtitle},null,8,["style","title","subtitle"])):ve("",!0),(y=e.spec.slots)!=null&&y.legend&&((d=e.spec.slots.legend.rows)!=null&&d.length)?(V(),Ge(d2,{key:3,class:"poster-preview__slot",style:Xe(b(c.value.legend)),rows:e.spec.slots.legend.rows,type:e.spec.slots.legend.type},null,8,["style","rows","type"])):ve("",!0),(h=e.spec.slots)!=null&&h.scaleBar?(V(),Ge(f2,{key:4,class:"poster-preview__slot",style:Xe(b(c.value.scaleBar)),"map-bounds":i.value,"map-center-lat":s.value},null,8,["style","map-bounds","map-center-lat"])):ve("",!0),(p=e.spec.slots)!=null&&p.north?(V(),Ge(b2,{key:5,class:"poster-preview__slot",style:Xe(b(c.value.north)),bearing:r.value},null,8,["style","bearing"])):ve("",!0),Ze(_2,{class:"poster-preview__slot",style:Xe(b(c.value.footer)),left:(L=(_=e.spec.slots)==null?void 0:_.footer)==null?void 0:L.left,right:(S=(R=e.spec.slots)==null?void 0:R.footer)==null?void 0:S.right,attribution:(j=(z=e.spec.slots)==null?void 0:z.footer)==null?void 0:j.attribution,metadata:e.metadata},null,8,["style","left","right","attribution","metadata"])],4)],512)}}},[["styles",[x2]],["__scopeId","data-v-563f7dcd"]]),Tg=25.4,Pg=e=>e/Tg,Ng=e=>e*Tg;function Lo(e,t,o,n,a,r,s,i){const l=a==="in"?{w:o,h:n}:{w:Mg(Pg(o)),h:Mg(Pg(n))},c=a==="mm"?{w:o,h:n}:{w:Ig(Ng(o)),h:Ig(Ng(n))},u={w:Math.round(l.w*300),h:Math.round(l.h*300)};return{id:e,label:t,inches:l,mm:c,px300:u,category:r,orientation:s,recommendedDpi:i}}function Mg(e){return Math.round(e*1e3)/1e3}function Ig(e){return Math.round(e*10)/10}const Rg={letter:Lo("letter",'Letter (8.5×11")',8.5,11,"in","us","either",300),tabloid:Lo("tabloid",'Tabloid (11×17")',11,17,"in","us","either",300),"18x24":Lo("18x24",'18 × 24"',18,24,"in","us","portrait",300),"24x36":Lo("24x36",'24 × 36"',24,36,"in","us","portrait",300),"27x40":Lo("27x40",'27 × 40"',27,40,"in","us","portrait",200),a4:Lo("a4","A4 (210 × 297 mm)",210,297,"mm","iso","either",300),a3:Lo("a3","A3 (297 × 420 mm)",297,420,"mm","iso","either",300),a2:Lo("a2","A2 (420 × 594 mm)",420,594,"mm","iso","portrait",300),a1:Lo("a1","A1 (594 × 841 mm)",594,841,"mm","iso","portrait",200),a0:Lo("a0","A0 (841 × 1189 mm)",841,1189,"mm","iso","portrait",150)},A2=["letter","tabloid","18x24","24x36","27x40","a4","a3","a2","a1","a0"],S2="24x36";function Fg(e){return Rg[e]||null}function L2(){return A2.map(e=>Rg[e])}const C2=".poster-dlg-backdrop[data-v-1e730db1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:9999}.poster-dlg[data-v-1e730db1]{background:#fff;width:min(1100px,95vw);height:min(800px,92vh);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000059}.poster-dlg__header[data-v-1e730db1]{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid #eee}.poster-dlg__header h2[data-v-1e730db1]{margin:0;font-size:16px;font-weight:600}.poster-dlg__close[data-v-1e730db1]{background:none;border:0;font-size:22px;cursor:pointer;color:#555}.poster-dlg__body[data-v-1e730db1]{flex:1;min-height:0;display:grid;grid-template-columns:280px 1fr}.poster-dlg__controls[data-v-1e730db1]{padding:14px;border-right:1px solid #eee;overflow-y:auto;display:flex;flex-direction:column;gap:10px;background:#fafafa}.poster-dlg__preview[data-v-1e730db1]{padding:14px;overflow:auto;background:#2b2b2b}.ctl[data-v-1e730db1]{display:flex;flex-direction:column;font-size:12px;color:#444;gap:4px}.ctl--check[data-v-1e730db1]{border:0;padding:0;margin:0}.ctl--check legend[data-v-1e730db1]{font-size:12px;color:#444;padding:0 0 4px}.ctl--check label[data-v-1e730db1]{display:flex;align-items:center;gap:6px;font-size:12px}.ctl input[data-v-1e730db1],.ctl select[data-v-1e730db1]{padding:6px 8px;border:1px solid #ccc;border-radius:4px;font-size:13px}.muted[data-v-1e730db1]{opacity:.65}.actions[data-v-1e730db1]{display:flex;gap:8px;margin-top:auto}.btn[data-v-1e730db1]{padding:8px 12px;border-radius:4px;border:1px solid #ccc;cursor:pointer;font-size:13px}.btn--primary[data-v-1e730db1]{background:#26d;color:#fff;border-color:#26d}.btn--primary[data-v-1e730db1]:disabled{background:#88aae0;cursor:progress}.btn--ghost[data-v-1e730db1]{background:transparent}.render-status[data-v-1e730db1]{display:flex;flex-direction:column;gap:6px;padding:8px;background:#fff;border:1px solid #eee;border-radius:4px;font-size:12px}.render-status progress[data-v-1e730db1]{width:100%}.poster-dlg-enter-active[data-v-1e730db1],.poster-dlg-leave-active[data-v-1e730db1]{transition:opacity .15s ease}.poster-dlg-enter-from[data-v-1e730db1],.poster-dlg-leave-to[data-v-1e730db1]{opacity:0}",$2={class:"poster-dlg",role:"dialog","aria-modal":"true","aria-label":"Export Poster"},E2={class:"poster-dlg__header"},T2={class:"poster-dlg__body"},P2={class:"poster-dlg__controls"},N2={class:"ctl"},M2=["value"],I2={class:"ctl"},R2={class:"ctl"},F2={class:"ctl"},O2={class:"ctl"},D2={class:"ctl"},B2={class:"ctl ctl--check"},G2={key:0,class:"render-status"},j2=["max","value"],z2={class:"actions"},U2=["disabled"],K2={class:"poster-dlg__preview"},H2=Object.freeze(Object.defineProperty({__proto__:null,default:Ot({__name:"PosterDialog",props:{modelValue:{type:Boolean,default:!1},getMap:{type:Function,required:!0},legendRows:{type:Array,default:()=>[]},metadata:{type:Object,default:()=>({})},initialSize:{type:String,default:S2}},emits:["update:modelValue","rendered","error"],setup(e,{emit:t}){const o=e,n=t,a=Q({get:()=>o.modelValue,set:h=>n("update:modelValue",h)}),r=L2(),s=le(o.initialSize),i=le("portrait"),l=le(300),c=le("png"),u=le(""),f=le(""),b=le(!0),k=le(!0),x=le(!0);De(s,h=>{const p=Fg(h);p&&(l.value=p.recommendedDpi,p.orientation!=="either"&&(i.value=p.orientation))},{immediate:!0});const m=Q(()=>{const h=Fg(s.value);if(!h)return Cl({widthIn:24,heightIn:36});const p=Cl({widthIn:h.inches.w,heightIn:h.inches.h,dpi:l.value,orientation:i.value});return p.slots.title={...p.slots.title,text:u.value,subtitle:f.value},p.slots.legend=b.value?{...p.slots.legend,rows:o.legendRows}:null,p.slots.scaleBar=k.value,p.slots.north=x.value,p.slots.footer={...p.slots.footer,left:o.metadata.source?`Source: ${o.metadata.source}`:"",right:o.metadata.date?`${o.metadata.date}`:new Date().toISOString().slice(0,10),attribution:ut.footer.attribution},p}),v=$l(o.getMap);async function g(){try{const h=await v.render(m.value,c.value),p=c.value==="pdf"?"pdf":"png",_=(u.value||"poster").replace(/\W+/g,"-").toLowerCase();d(h,`${_}.${p}`),n("rendered",{blob:h,format:c.value,spec:m.value})}catch(h){console.error("[PosterDialog] render failed",h),n("error",h)}}function y(){a.value=!1}function d(h,p){const _=URL.createObjectURL(h),L=document.createElement("a");L.href=_,L.download=p,document.body.appendChild(L),L.click(),L.remove(),setTimeout(()=>URL.revokeObjectURL(_),1500)}return(h,p)=>(V(),Ge(_m,{name:"poster-dlg"},{default:Mt(()=>[a.value?(V(),ae("div",{key:0,class:"poster-dlg-backdrop",onClick:dt(y,["self"])},[C("section",$2,[C("header",E2,[Fo(h.$slots,"header",{},()=>[p[10]||(p[10]=C("h2",null,"Export Poster",-1))],!0),C("button",{class:"poster-dlg__close",type:"button","aria-label":"Close",onClick:y},"×")]),C("div",T2,[C("aside",P2,[C("label",N2,[p[11]||(p[11]=C("span",null,"Size",-1)),zt(C("select",{"onUpdate:modelValue":p[0]||(p[0]=_=>s.value=_)},[(V(!0),ae(Ie,null,yt(de(r),_=>(V(),ae("option",{key:_.id,value:_.id},he(_.label),9,M2))),128))],512),[[Hr,s.value]])]),C("label",I2,[p[13]||(p[13]=C("span",null,"Orientation",-1)),zt(C("select",{"onUpdate:modelValue":p[1]||(p[1]=_=>i.value=_)},[...p[12]||(p[12]=[C("option",{value:"portrait"},"Portrait",-1),C("option",{value:"landscape"},"Landscape",-1)])],512),[[Hr,i.value]])]),C("label",R2,[p[15]||(p[15]=C("span",null,"DPI",-1)),zt(C("select",{"onUpdate:modelValue":p[2]||(p[2]=_=>l.value=_)},[...p[14]||(p[14]=[C("option",{value:150},"150 (large posters)",-1),C("option",{value:200},"200 (balanced)",-1),C("option",{value:300},"300 (sharp)",-1)])],512),[[Hr,l.value,void 0,{number:!0}]])]),C("label",F2,[p[17]||(p[17]=C("span",null,"Format",-1)),zt(C("select",{"onUpdate:modelValue":p[3]||(p[3]=_=>c.value=_)},[...p[16]||(p[16]=[C("option",{value:"png"},"PNG (raster)",-1),C("option",{value:"pdf"},"PDF (raster on vector page)",-1)])],512),[[Hr,c.value]]),Fo(h.$slots,"format-extras",{},void 0,!0)]),C("label",O2,[p[18]||(p[18]=C("span",null,"Title",-1)),zt(C("input",{"onUpdate:modelValue":p[4]||(p[4]=_=>u.value=_),type:"text",placeholder:"Map title"},null,512),[[Kr,u.value]])]),C("label",D2,[p[19]||(p[19]=C("span",null,"Subtitle",-1)),zt(C("input",{"onUpdate:modelValue":p[5]||(p[5]=_=>f.value=_),type:"text",placeholder:"(optional)"},null,512),[[Kr,f.value]])]),C("fieldset",B2,[p[23]||(p[23]=C("legend",null,"Slots",-1)),C("label",null,[zt(C("input",{"onUpdate:modelValue":p[6]||(p[6]=_=>b.value=_),type:"checkbox"},null,512),[[wi,b.value]]),p[20]||(p[20]=gt(" Legend",-1))]),C("label",null,[zt(C("input",{"onUpdate:modelValue":p[7]||(p[7]=_=>k.value=_),type:"checkbox"},null,512),[[wi,k.value]]),p[21]||(p[21]=gt(" Scale bar",-1))]),C("label",null,[zt(C("input",{"onUpdate:modelValue":p[8]||(p[8]=_=>x.value=_),type:"checkbox"},null,512),[[wi,x.value]]),p[22]||(p[22]=gt(" North arrow",-1))]),p[24]||(p[24]=C("label",{class:"muted"},[C("input",{type:"checkbox",checked:"",disabled:""}),gt(" Footer (attribution required)")],-1))]),de(v).isRendering.value?(V(),ae("div",G2,[C("strong",null,he(de(v).progress.value.phase),1),C("progress",{max:de(v).progress.value.total||1,value:de(v).progress.value.completed},null,8,j2),C("small",null,he(de(v).progress.value.message),1),C("button",{class:"btn btn--ghost",type:"button",onClick:p[9]||(p[9]=(..._)=>de(v).cancel&&de(v).cancel(..._))},"Cancel")])):ve("",!0),C("div",z2,[C("button",{class:"btn btn--ghost",type:"button",onClick:y},"Close"),C("button",{class:"btn btn--primary",type:"button",disabled:de(v).isRendering.value,onClick:g},he(de(v).isRendering.value?"Rendering…":`Render ${c.value.toUpperCase()}`),9,U2)])]),C("main",K2,[Ze(w2,{spec:m.value,"get-map":e.getMap,"legend-rows":e.legendRows,metadata:e.metadata},null,8,["spec","get-map","legend-rows","metadata"])])])])])):ve("",!0)]),_:3}))}},[["styles",[C2]],["__scopeId","data-v-1e730db1"]])},Symbol.toStringTag,{value:"Module"}));function Og(e,t,o,n){const a=parseFloat(t)-parseFloat(n),r=parseFloat(e)-parseFloat(o);return Math.sqrt(a*a+r*r)}function V2(e,t){const o={};for(const n of e){const a=t(n);o[a]||(o[a]=[]),o[a].push(n)}return o}const q2=Object.freeze({cluster:!0,clusterMaxZoom:6,clusterRadius:40}),W2=Object.freeze(["step",["get","point_count"],"#51bbd6",10,"#f1f075",50,"#f28cb1",500,"#e74c3c"]),Y2=Object.freeze(["step",["get","point_count"],15,10,20,50,25,500,35]);class Dg{constructor(t={}){this.maxConnectionDistance=t.maxConnectionDistance??1/0}_calculateDistance(t,o){return Og(parseFloat(t.latitude),parseFloat(t.longitude),parseFloat(o.latitude),parseFloat(o.longitude))}_createUnionFind(t){const o=Array.from({length:t},(s,i)=>i),n=new Array(t).fill(0),a=s=>(o[s]!==s&&(o[s]=a(o[s])),o[s]);return{find:a,union:(s,i)=>{const l=a(s),c=a(i);return l===c?!1:(n[l]n[c]?o[c]=l:(o[c]=l,n[l]++),!0)}}}generateMSTLines(t,o={}){const n=o.maxConnectionDistance??this.maxConnectionDistance;if(!t||t.length<2)return[];const a=t.filter(f=>{const b=parseFloat(f.latitude),k=parseFloat(f.longitude);return!isNaN(b)&&!isNaN(k)});if(a.length<2)return[];const r=[];for(let f=0;ff.distance-b.distance);const s=this._createUnionFind(a.length),i=[];let l=0;const c=a.length-1;for(const f of r){if(l>=c)break;s.union(f.from,f.to)&&(i.push(f),l++)}const u=i.map(f=>({type:"Feature",geometry:{type:"LineString",coordinates:[[parseFloat(f.fromPoint.longitude),parseFloat(f.fromPoint.latitude)],[parseFloat(f.toPoint.longitude),parseFloat(f.toPoint.latitude)]]},properties:{distance:f.distance,algorithm:"MST"}}));return i.length${n} deg).`),u}generateMultiGroupMSTLines(t,o=null,n={}){const a={},r=Object.keys(t).sort((s,i)=>t[i].length-t[s].length);for(const s of r){const i=t[s];if(!i||i.length<2){a[s]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateMSTLines(i,n);if(typeof o=="function"){const c=o(s);l.forEach(u=>{u.properties={...u.properties,group:s,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:s}});a[s]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllMSTLines(t,o=null,n={}){const a=this.generateMultiGroupMSTLines(t,o,n),r=[];for(const s in a)r.push(...a[s].lines);return r}getMSTStats(t,o={}){const n=this.generateMultiGroupMSTLines(t,null,o);let a=0,r=0;const s=[];for(const l in n){const{lines:c,pointCount:u}=n[l];a+=c.length,r+=u;const f=Math.max(0,u-1),b=u>1?(c.length/f*100).toFixed(1):100;s.push({name:l,points:u,lines:c.length,expected:f,coverage:b+"%",hasOrphans:c.lengthc.points-l.points);const i=s.filter(l=>l.hasOrphans).length;return{algorithm:"MST (Minimum Spanning Tree)",totalGroups:Object.keys(t).length,totalPoints:r,totalLines:a,expectedLines:Math.max(0,r-Object.keys(t).length),groupsWithOrphans:i,allPointsConnected:i===0,groups:s}}}new Dg;class Bg{constructor(t={}){this.maxDistance=t.maxDistance??15,this.maxNeighbors=t.maxNeighbors??15,this.sortKey=t.sortKey??"longitude"}_calculateDistance(t,o,n,a){return Og(t,o,n,a)}generateNetworkLines(t,o={}){const n=o.maxDistance??this.maxDistance,a=o.maxNeighbors??this.maxNeighbors,r=o.sortKey??this.sortKey,s=o.connectOrphans??!0;if(!t||t.length<2)return[];const i=t.filter(f=>{const b=parseFloat(f.latitude),k=parseFloat(f.longitude);return!isNaN(b)&&!isNaN(k)});if(i.length<2)return[];const l=[],c=new Set,u=[...i].sort((f,b)=>parseFloat(f[r])-parseFloat(b[r]));for(let f=0;ft[i].length-t[s].length);for(const s of r){const i=t[s];if(!i||i.length<2){a[s]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateNetworkLines(i,n);if(typeof o=="function"){const c=o(s);l.forEach(u=>{u.properties={...u.properties,group:s,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:s}});a[s]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllNetworkLines(t,o=null,n={}){const a=this.generateMultiGroupNetworkLines(t,o,n),r=[];for(const s in a)r.push(...a[s].lines);return r}getClusteringStats(t,o={}){const n=this.generateMultiGroupNetworkLines(t,null,o);let a=0,r=0;const s=[];for(const i in n){const{lines:l,pointCount:c}=n[i];a+=l.length,r+=c,s.push({name:i,points:c,lines:l.length,ratio:c>0?(l.length/c).toFixed(2):0})}return s.sort((i,l)=>l.points-i.points),{algorithm:"Network (nearest-neighbor)",totalGroups:Object.keys(t).length,totalPoints:r,totalLines:a,avgLinesPerPoint:r>0?(a/r).toFixed(2):0,groups:s}}}new Bg({maxDistance:15,maxNeighbors:15,sortKey:"longitude"});const na="cluster-lines-source",aa="cluster-lines",un="mapbox-clusters",eo="mapbox-clusters-circle",ra="mapbox-clusters-count",X2=Object.freeze({type:"FeatureCollection",features:[]});function Gg(e={}){const{getMap:t=()=>null,mapId:o="unknown",getPeopleGroups:n=()=>[],pinSourceId:a="language-families",pinLayerId:r="language-family-pins",groupKey:s="languageFamily",getGroupColor:i=null,mapboxClusterOptions:l={}}=e,c=Te("mapStore",null),u=new Dg({maxConnectionDistance:1/0}),f=new Bg({maxDistance:15,maxNeighbors:15,sortKey:"longitude"}),b=le(!1),k=le("mapbox"),x=Q(()=>c&&"clusteringEnabled"in c?!!c.clusteringEnabled:b.value),m=Q(()=>c&&c.clusteringMode?c.clusteringMode:k.value),v=le([]);let g=null,y=null,d=null;function h(H){const pe=["mapbox","mst","network"];if(!pe.includes(H)){console.warn(`[${o}] useMapClustering.setMode: unknown mode "${H}". Allowed: ${pe.join(", ")}`);return}c&&typeof c.setClusteringMode=="function"?c.setClusteringMode(H):c&&"clusteringMode"in c?c.clusteringMode=H:k.value=H,x.value&&(z(),S())}function p(H){const pe=!!H;c&&typeof c.setClusteringEnabled=="function"?c.setClusteringEnabled(pe):c&&"clusteringEnabled"in c?c.clusteringEnabled=pe:b.value=pe,pe?S():z()}function _(H){!H||!H.property||H.value==null?d=null:d={property:H.property,value:H.value},c&&("clusterFilterProperty"in c&&(c.clusterFilterProperty=(d==null?void 0:d.property)??null),"clusterFilterValue"in c&&(c.clusterFilterValue=(d==null?void 0:d.value)??null)),x.value&&(z(),S())}function L(H){if(!d)return H;const{property:pe,value:we}=d,ue=Ae=>String(Ae||"").toLowerCase().replace(/[^a-z0-9]+/g,""),Ee=ue(we);return Ee?H.filter(Ae=>{var ye,me;const ie=(Ae==null?void 0:Ae[pe])??((ye=Ae==null?void 0:Ae.properties)==null?void 0:ye[pe])??((me=Ae==null?void 0:Ae._normalized)==null?void 0:me[pe]);return ue(ie)===Ee}):H}function R(H){g=H}function S(){const H=t();if(H){switch(z(),m.value){case"mapbox":M(H);break;case"mst":E(H,"mst");break;case"network":E(H,"network");break;default:console.warn(`[${o}] Unknown clustering mode: ${m.value}`)}oe(H,!0)}}function z(){const H=t();H&&(O(H,ra,!1),O(H,eo,!1),D(H,un),O(H,aa,!1),D(H,na),v.value=[],N(H),oe(H,!1))}function j(){const H=t();H&&(N(H),H.getLayer(ra)&&H.removeLayer(ra),H.getLayer(eo)&&H.removeLayer(eo),H.getSource(un)&&H.removeSource(un),H.getLayer(aa)&&H.removeLayer(aa),H.getSource(na)&&H.removeSource(na),oe(H,!1)),v.value=[],g=null}function O(H,pe,we){if(H.getLayer(pe))try{H.setLayoutProperty(pe,"visibility",we?"visible":"none")}catch{}}function D(H,pe){const we=H.getSource(pe);if(we&&typeof we.setData=="function")try{we.setData(X2)}catch{}}function M(H){const pe=L(n());if(!pe.length)return;const we=pe.map(Ae=>{const ie=parseFloat(Ae.longitude??Ae.lng),ye=parseFloat(Ae.latitude??Ae.lat);return isNaN(ie)||isNaN(ye)?null:{type:"Feature",geometry:{type:"Point",coordinates:[ie,ye]},properties:{...Ae.properties||Ae}}}).filter(Boolean),ue={type:"FeatureCollection",features:we},Ee=H.getSource(un);Ee&&typeof Ee.setData=="function"?Ee.setData(ue):H.addSource(un,{type:"geojson",data:ue,...q2,...l}),H.getLayer(eo)?O(H,eo,!0):H.addLayer({id:eo,type:"circle",source:un,filter:["has","point_count"],paint:{"circle-color":W2,"circle-radius":Y2,"circle-stroke-width":2,"circle-stroke-color":"#ffffff",...Wa(H),"circle-opacity":.85}}),H.getLayer(ra)?O(H,ra,!0):H.addLayer({id:ra,type:"symbol",source:un,filter:["has","point_count"],layout:{"text-field":["get","point_count_abbreviated"],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Bold"],"text-size":12},paint:{"text-color":"#000000"}}),T(H),console.log(`[${o}] Clustering: mapbox-native applied (${we.length} features)`)}function E(H,pe){const we=L(n());if(!we.length)return;const ue=V2(we,Le=>{var $;return Le[s]??(($=Le._normalized)==null?void 0:$[s])??"Unknown"}),Ee=typeof i=="function"?i:()=>"#666666";let Ae=[],ie=null;if(pe==="mst"?(Ae=u.generateAllMSTLines(ue,Ee),ie=u.getMSTStats(ue)):(Ae=f.generateAllNetworkLines(ue,Ee),ie=f.getClusteringStats(ue)),v.value=Ae,Ae.length===0)return;const ye={type:"FeatureCollection",features:Ae},me=H.getSource(na);if(me&&typeof me.setData=="function"?me.setData(ye):H.addSource(na,{type:"geojson",data:ye}),H.getLayer(aa))O(H,aa,!0);else{const Le={id:aa,type:"line",source:na,paint:{"line-color":["coalesce",["get","color"],"#666666"],"line-width":["interpolate",["linear"],["zoom"],0,.5,4,.75,8,1,12,1.5],"line-emissive-strength":1,"line-opacity":.5},layout:{"line-cap":"round","line-join":"round"}};H.getLayer(r)?H.addLayer(Le,r):H.addLayer(Le)}console.log(`[${o}] Clustering: ${pe} applied — ${Ae.length} lines across ${(ie==null?void 0:ie.totalGroups)??0} groups`)}function T(H){H.getLayer(eo)&&(H.on("click",eo,q),H.on("mouseenter",eo,ce),H.on("mouseleave",eo,ee),y=eo)}function N(H){if(!y)return;const pe=y;try{H.off("click",pe,q),H.off("mouseenter",pe,ce),H.off("mouseleave",pe,ee)}catch{}y=null}function q(H){const pe=t();if(!pe)return;const we=pe.queryRenderedFeatures(H.point,{layers:[eo]});if(!we.length)return;const ue=we[0],Ee=ue.properties.cluster_id,Ae=ue.geometry.coordinates,ie=ue.properties.point_count;if(typeof g=="function"){g({clusterId:Ee,coordinates:Ae,pointCount:ie,originalEvent:H});return}const ye=pe.getSource(un);!ye||typeof ye.getClusterExpansionZoom!="function"||ye.getClusterExpansionZoom(Ee,(me,Le)=>{me||pe.easeTo({center:Ae,zoom:Le})})}function ce(){const H=t();H&&(H.getCanvas().style.cursor="pointer")}function ee(){const H=t();H&&(H.getCanvas().style.cursor="")}function oe(H,pe){if(H.getLayer(r))try{H.setPaintProperty(r,"circle-opacity",pe?.25:.9)}catch{}}return{enabled:x,mode:m,clusterLines:v,setMode:h,setEnabled:p,setSelectionFilter:_,onClusterClick:R,applyClustering:S,clearClustering:z,cleanup:j,mstUtil:u,networkUtil:f}}const J2=Object.freeze(Object.defineProperty({__proto__:null,default:Gg,useMapClustering:Gg},Symbol.toStringTag,{value:"Module"}));function Z2(e){const t=le({phase:"idle",completed:0,total:0,message:""}),o=le(!1);function n(r,s,i,l){t.value={phase:r,completed:s,total:i,message:l}}async function a(r,s,i={}){if(o.value)throw new Error("useMapPacket: already rendering");o.value=!0;const l=Array.isArray(s)?s:[],c=1+l.length;try{n("map",0,c,"rendering map page");const u=await $l(e).render(r,"png"),f=await r3(u);n("pdf-init",1,c,"building PDF");let b;try{const g=await qt(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);b=g.jsPDF||g.default}catch{throw new Error("useMapPacket: jspdf not installed (npm i jspdf)")}const k=new b({orientation:r.widthIn>r.heightIn?"l":"p",unit:"in",format:[r.widthIn,r.heightIn]}),x=r.widthIn,m=r.heightIn,v=e3(i);k.addImage(f,"PNG",0,0,x,m),jg(k,x,m,v);for(let g=0;g0&&r<=1?r*100:r).toFixed(1)}%`}function a3(e){var a;const t=Za(e),o=Qa(t.peoplePraying,(a=t._raw)==null?void 0:a.people_praying,e.peoplePraying);if(o===void 0)return"—";const n=Number(o);return Number.isNaN(n)?"—":n.toLocaleString()}function r3(e){return new Promise((t,o)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>o(new Error("useMapPacket: failed to read map blob")),n.readAsDataURL(e)})}const s3=Object.freeze(Object.defineProperty({__proto__:null,useMapPacket:Z2},Symbol.toStringTag,{value:"Module"}))})(); diff --git a/public/doxa-maps/country-posters/index.html b/public/doxa-maps/country-posters/index.html index 543ee05c8..e6f1f34d4 100644 --- a/public/doxa-maps/country-posters/index.html +++ b/public/doxa-maps/country-posters/index.html @@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut) + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":15,"profileCount":24,"bundles":[{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-c5v8DO/i3dhZKpGBIOyuxb5iUqtdF28LpFW1SPtcw67az2HvKR3YqLuAhUL6Xw3S","elements":["country-posters-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"","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 src=\"./country-posters/country-posters.js\" integrity=\"sha384-c5v8DO/i3dhZKpGBIOyuxb5iUqtdF28LpFW1SPtcw67az2HvKR3YqLuAhUL6Xw3S\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"","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 src=\"./country-posters/country-posters.js\" integrity=\"sha384-c5v8DO/i3dhZKpGBIOyuxb5iUqtdF28LpFW1SPtcw67az2HvKR3YqLuAhUL6Xw3S\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\"}'>\u003c/country-posters-map>"}}]}]}; - + - + + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":15,"profileCount":24,"bundles":[{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-6EtnK2myYmXQk3f9OCWyV20u8BnCdGD/HxPu3ZzM6tmpnRIM/AlRQeqk0dsH/b18","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 src=\"./demo-map/demo-map.js\" integrity=\"sha384-6EtnK2myYmXQk3f9OCWyV20u8BnCdGD/HxPu3ZzM6tmpnRIM/AlRQeqk0dsH/b18\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\"}'>\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"}]}]}; + + + + + + diff --git a/public/doxa-maps/doxa-maps-spa/doxa-maps-spa/index.html b/public/doxa-maps/doxa-maps-spa/doxa-maps-spa/index.html new file mode 100644 index 000000000..17123db2f --- /dev/null +++ b/public/doxa-maps/doxa-maps-spa/doxa-maps-spa/index.html @@ -0,0 +1,150 @@ + + + + + + doxa-maps-spa · doxa-maps-spa + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/doxa-maps-spa/index.html b/public/doxa-maps/doxa-maps-spa/index.html new file mode 100644 index 000000000..a716a204f --- /dev/null +++ b/public/doxa-maps/doxa-maps-spa/index.html @@ -0,0 +1,371 @@ + + + + + + doxa-maps + + + + + +
+

doxa-maps / doxa-maps-spa

+
doxa-maps-spa — one bundle, its profiles as paste-anywhere maps
+
+
loading…
+ +
+ +
+
+ + + + + diff --git a/public/doxa-maps/doxa-research-map/doxa-research-map.js b/public/doxa-maps/doxa-research-map/doxa-research-map.js index 760f203d4..d209dee33 100644 --- a/public/doxa-maps/doxa-research-map/doxa-research-map.js +++ b/public/doxa-maps/doxa-research-map/doxa-research-map.js @@ -1,47 +1,46 @@ -(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".profile-loader[data-v-50211124]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;position:relative}.profile-error[data-v-50211124]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}.people-group-detail[data-v-8142ca9c]{display:flex;flex-direction:column;height:100%;overflow-y:auto}.detail-header[data-v-8142ca9c]{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:#fff;position:sticky;top:0;z-index:10}.header-left[data-v-8142ca9c]{display:flex;gap:12px;align-items:center;flex:1;min-width:0}.header-text[data-v-8142ca9c]{flex:1;min-width:0}.people-group-name[data-v-8142ca9c]{margin:0;font-size:18px;font-weight:700;color:#333;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text}.people-group-subtitle[data-v-8142ca9c]{margin:4px 0 0;font-size:13px;color:#666;line-height:1.2}.close-button[data-v-8142ca9c]{background:none;border:none;padding:4px;cursor:pointer;color:#666;transition:color .2s ease;flex-shrink:0}.close-button[data-v-8142ca9c]:hover{color:#333}.detail-content[data-v-8142ca9c]{padding:6px 12px 12px;flex:1;overflow-y:auto}.quick-stats[data-v-8142ca9c]{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.stat-item[data-v-8142ca9c]{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.stat-label[data-v-8142ca9c]{color:#666;font-weight:500}.stat-value[data-v-8142ca9c]{color:#333;font-weight:600;text-align:right}.action-buttons[data-v-8142ca9c]{display:flex;gap:8px;padding-top:12px;margin-bottom:10px;overflow-x:auto;padding-bottom:2px}.action-btn[data-v-8142ca9c]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.action-btn.primary[data-v-8142ca9c]{background:#92b195;color:#fff}.action-btn.primary[data-v-8142ca9c]:hover{background:#73a17f;box-shadow:0 2px 4px #92b1954d}.action-btn.secondary[data-v-8142ca9c]{background:#ecf0f1;color:#333}.action-btn.secondary[data-v-8142ca9c]:hover{background:#d5dbdb}.btn-icon[data-v-8142ca9c]{flex-shrink:0}.image-container[data-v-8142ca9c]{margin-bottom:16px;border-radius:8px;overflow:hidden;background:#f5f5f5}.image-container.position-above[data-v-8142ca9c]{width:120px;height:150px;margin:0 auto 16px}.image-container.position-inside[data-v-8142ca9c]{width:200px;height:250px;margin:0 auto 16px}.people-group-image[data-v-8142ca9c]{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease}.people-group-image.loaded[data-v-8142ca9c]{opacity:1}.image-placeholder-svg[data-v-8142ca9c]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f0f0f0;transition:opacity .3s ease}.image-placeholder-svg.hidden[data-v-8142ca9c]{opacity:0;pointer-events:none}.image-container[data-v-8142ca9c]{position:relative}.description-section[data-v-8142ca9c]{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0}.description-text[data-v-8142ca9c]{margin:0;font-size:14px;line-height:1.6;color:#555}.description-text.empty[data-v-8142ca9c]{color:#999;font-style:italic}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar{height:4px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width: 480px){.people-group-name[data-v-8142ca9c]{font-size:16px}.stat-item[data-v-8142ca9c]{font-size:13px}.action-btn[data-v-8142ca9c]{padding:8px 14px;font-size:13px}}.title-slot[data-v-7caa85cc]{padding:4% 2%;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;width:100%;height:100%;color:#0a0a0a}.title-slot__title[data-v-7caa85cc]{font-weight:700;font-size:clamp(20px,6vw,64px);line-height:1.05;letter-spacing:-.01em}.title-slot__subtitle[data-v-7caa85cc]{margin-top:.35em;font-weight:500;font-size:clamp(12px,2.4vw,28px);color:#444}.poster-slot[data-v-1a65b1e9],.poster-slot[data-v-2cbe964e],.poster-slot[data-v-d12819c9],.poster-slot[data-v-93c6c172]{display:none}.poster-preview[data-v-563f7dcd]{width:100%;height:100%;display:flex;align-items:flex-start;justify-content:center;padding:0}.poster-preview__page[data-v-563f7dcd]{display:block}.poster-preview__map[data-v-563f7dcd]{object-fit:cover;display:block}.poster-preview__map.placeholder[data-v-563f7dcd]{display:flex;align-items:center;justify-content:center;background:#ddd;color:#555;font-size:14px}.poster-preview__slot[data-v-563f7dcd]{pointer-events:none}.poster-dlg-backdrop[data-v-1e730db1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:9999}.poster-dlg[data-v-1e730db1]{background:#fff;width:min(1100px,95vw);height:min(800px,92vh);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000059}.poster-dlg__header[data-v-1e730db1]{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid #eee}.poster-dlg__header h2[data-v-1e730db1]{margin:0;font-size:16px;font-weight:600}.poster-dlg__close[data-v-1e730db1]{background:none;border:0;font-size:22px;cursor:pointer;color:#555}.poster-dlg__body[data-v-1e730db1]{flex:1;min-height:0;display:grid;grid-template-columns:280px 1fr}.poster-dlg__controls[data-v-1e730db1]{padding:14px;border-right:1px solid #eee;overflow-y:auto;display:flex;flex-direction:column;gap:10px;background:#fafafa}.poster-dlg__preview[data-v-1e730db1]{padding:14px;overflow:auto;background:#2b2b2b}.ctl[data-v-1e730db1]{display:flex;flex-direction:column;font-size:12px;color:#444;gap:4px}.ctl--check[data-v-1e730db1]{border:0;padding:0;margin:0}.ctl--check legend[data-v-1e730db1]{font-size:12px;color:#444;padding:0 0 4px}.ctl--check label[data-v-1e730db1]{display:flex;align-items:center;gap:6px;font-size:12px}.ctl input[data-v-1e730db1],.ctl select[data-v-1e730db1]{padding:6px 8px;border:1px solid #ccc;border-radius:4px;font-size:13px}.muted[data-v-1e730db1]{opacity:.65}.actions[data-v-1e730db1]{display:flex;gap:8px;margin-top:auto}.btn[data-v-1e730db1]{padding:8px 12px;border-radius:4px;border:1px solid #ccc;cursor:pointer;font-size:13px}.btn--primary[data-v-1e730db1]{background:#26d;color:#fff;border-color:#26d}.btn--primary[data-v-1e730db1]:disabled{background:#88aae0;cursor:progress}.btn--ghost[data-v-1e730db1]{background:transparent}.render-status[data-v-1e730db1]{display:flex;flex-direction:column;gap:6px;padding:8px;background:#fff;border:1px solid #eee;border-radius:4px;font-size:12px}.render-status progress[data-v-1e730db1]{width:100%}.poster-dlg-enter-active[data-v-1e730db1],.poster-dlg-leave-active[data-v-1e730db1]{transition:opacity .15s ease}.poster-dlg-enter-from[data-v-1e730db1],.poster-dlg-leave-to[data-v-1e730db1]{opacity:0}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})(); -(function(){"use strict";var Gp;var Mn=typeof document<"u"?document.currentScript:null;const OL="modulepreload",BL=function(e){return"/"+e},jL={},eo=function(t,o,n){let a=Promise.resolve();function r(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return a.then(s=>{for(const i of s||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})},ws="affinityBlock",Fn="#95a5a6",Co={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf"},ar={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000"},qo=ar,Fl=Object.entries(Co).reduce((e,[t,o])=>(e[o]=t,e),{}),xs=Object.entries(Co).reduce((e,[t,o])=>(e[o]=qo[t],e),{}),Rl=Co;function Ss(e){return Co[e]||"Unknown"}function As(e){return qo[e]||Fn}function Dl(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?qo[e]||Fn:xs[e]||Fn:Fn}function Ol(){return Object.entries(Co).map(([e,t])=>({code:e,name:t,color:qo[e]}))}function Bl(e){return{code:e,name:Co[e]||"Unknown",color:qo[e]||Fn}}function jl(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return As(t)}function Ul(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Ss(t)}function Ls(){const e=["match",["get",ws]];return Object.entries(qo).forEach(([t,o])=>{e.push(t,o)}),e.push(Fn),e}const zl=Ls,lf=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:qo,AFFINITY_BLOCK_COLORS_BY_NAME:xs,AFFINITY_BLOCK_NAMES:Co,AFFINITY_BLOCK_NAME_TO_CODE:Fl,NAMES:Rl,PALETTE:ar,PROPERTY_KEY:ws,affinityBlockCodeLookup:Co,affinityBlockCodeToColor:qo,affinityBlockCodeToName:Co,affinityBlockColors:xs,affinityBlockNameToCode:Fl,applyColor:Ls,buildColorExpression:zl,default:{name:"Affinity Block",propertyKey:ws,palette:ar,colors:ar,names:Rl,getColor:jl,applyColor:Ls,buildColorExpression:zl,getName:Ul,getAffinityBlockName:Ss,getAffinityBlockColor:Dl,getAffinityBlockColorByCode:As,getAffinityBlocksArray:Ol,getAffinityBlockData:Bl},getAffinityBlockColor:Dl,getAffinityBlockColorByCode:As,getAffinityBlockData:Bl,getAffinityBlockName:Ss,getAffinityBlocksArray:Ol,getColor:jl,getName:Ul},Symbol.toStringTag,{value:"Module"}));function cf(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push($s),e}const Vl=Ps,df=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:uf,PALETTE:rr,PROPERTY_KEY:Cs,REGION_COLOR_ALIASES:Ts,SLUG_PALETTE:sr,applyColor:Ps,buildColorExpression:Vl,default:{name:"DOXA Region",propertyKey:Cs,palette:rr,colors:rr,slugColors:sr,aliases:Ts,fallback:$s,getColor:Hl,applyColor:Ps,buildColorExpression:Vl,getRegionColor:Kl,getRegionColorBySlug:Es},getColor:Hl,getRegionColor:Kl,getRegionColorBySlug:Es},Symbol.toStringTag,{value:"Module"})),ql="resourceType",Wo={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},gf=Wo,ua=["bible","jesusFilm","radio","gospel","audio","stories"],Ns={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},pf=Ns;function da(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function Wl(e){var t;for(const o of ua)if((e[o]||((t=e._raw)==null?void 0:t[da(o)]))==="Available")return Wo.hasResources;return Wo.noResources}function Yl(e){var t;for(const o of ua)if((e[o]||((t=e._raw)==null?void 0:t[da(o)]))==="Available")return!0;return!1}function Xl(e){var t;for(const o of ua)if((e[o]||((t=e._raw)==null?void 0:t[da(o)]))==="Available")return o;return"noResources"}function Is(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],Wo.hasResources,Wo.noResources]}const Jl=Is,ff=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Ns,PALETTE:Wo,PROPERTY_KEY:ql,RESOURCE_COLORS:gf,RESOURCE_NAMES:pf,RESOURCE_PRIORITY:ua,applyColor:Is,buildColorExpression:Jl,default:{name:"Gospel Resources",propertyKey:ql,palette:Wo,colors:Wo,names:Ns,priority:ua,getColor:Wl,applyColor:Is,buildColorExpression:Jl,hasAnyResource:Yl,getResourceType:Xl,getCSVColumn:da},getCSVColumn:da,getColor:Wl,getResourceType:Xl,hasAnyResource:Yl},Symbol.toStringTag,{value:"Module"}));/** +(function(){"use strict";var Gg;var Mn=typeof document<"u"?document.currentScript:null;const QL="modulepreload",eC=function(e){return"/"+e},tC={},eo=function(t,o,n){let a=Promise.resolve();function r(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return a.then(s=>{for(const i of s||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})},xs="affinityBlock",Fn="#95a5a6",Co={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf"},ar={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000"},qo=ar,Fl=Object.entries(Co).reduce((e,[t,o])=>(e[o]=t,e),{}),ws=Object.entries(Co).reduce((e,[t,o])=>(e[o]=qo[t],e),{}),Rl=Co;function Ss(e){return Co[e]||"Unknown"}function As(e){return qo[e]||Fn}function Dl(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?qo[e]||Fn:ws[e]||Fn:Fn}function Ol(){return Object.entries(Co).map(([e,t])=>({code:e,name:t,color:qo[e]}))}function Bl(e){return{code:e,name:Co[e]||"Unknown",color:qo[e]||Fn}}function jl(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return As(t)}function zl(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Ss(t)}function Ls(){const e=["match",["get",xs]];return Object.entries(qo).forEach(([t,o])=>{e.push(t,o)}),e.push(Fn),e}const Ul=Ls,lf=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:qo,AFFINITY_BLOCK_COLORS_BY_NAME:ws,AFFINITY_BLOCK_NAMES:Co,AFFINITY_BLOCK_NAME_TO_CODE:Fl,NAMES:Rl,PALETTE:ar,PROPERTY_KEY:xs,affinityBlockCodeLookup:Co,affinityBlockCodeToColor:qo,affinityBlockCodeToName:Co,affinityBlockColors:ws,affinityBlockNameToCode:Fl,applyColor:Ls,buildColorExpression:Ul,default:{name:"Affinity Block",propertyKey:xs,palette:ar,colors:ar,names:Rl,getColor:jl,applyColor:Ls,buildColorExpression:Ul,getName:zl,getAffinityBlockName:Ss,getAffinityBlockColor:Dl,getAffinityBlockColorByCode:As,getAffinityBlocksArray:Ol,getAffinityBlockData:Bl},getAffinityBlockColor:Dl,getAffinityBlockColorByCode:As,getAffinityBlockData:Bl,getAffinityBlockName:Ss,getAffinityBlocksArray:Ol,getColor:jl,getName:zl},Symbol.toStringTag,{value:"Module"}));function cf(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push($s),e}const Vl=Ps,df=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:uf,PALETTE:rr,PROPERTY_KEY:Cs,REGION_COLOR_ALIASES:Ts,SLUG_PALETTE:sr,applyColor:Ps,buildColorExpression:Vl,default:{name:"DOXA Region",propertyKey:Cs,palette:rr,colors:rr,slugColors:sr,aliases:Ts,fallback:$s,getColor:Hl,applyColor:Ps,buildColorExpression:Vl,getRegionColor:Kl,getRegionColorBySlug:Es},getColor:Hl,getRegionColor:Kl,getRegionColorBySlug:Es},Symbol.toStringTag,{value:"Module"})),ql="resourceType",Wo={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},pf=Wo,ua=["bible","jesusFilm","radio","gospel","audio","stories"],Ns={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},gf=Ns;function da(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function Wl(e){var t;for(const o of ua)if((e[o]||((t=e._raw)==null?void 0:t[da(o)]))==="Available")return Wo.hasResources;return Wo.noResources}function Yl(e){var t;for(const o of ua)if((e[o]||((t=e._raw)==null?void 0:t[da(o)]))==="Available")return!0;return!1}function Xl(e){var t;for(const o of ua)if((e[o]||((t=e._raw)==null?void 0:t[da(o)]))==="Available")return o;return"noResources"}function Is(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],Wo.hasResources,Wo.noResources]}const Jl=Is,ff=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Ns,PALETTE:Wo,PROPERTY_KEY:ql,RESOURCE_COLORS:pf,RESOURCE_NAMES:gf,RESOURCE_PRIORITY:ua,applyColor:Is,buildColorExpression:Jl,default:{name:"Gospel Resources",propertyKey:ql,palette:Wo,colors:Wo,names:Ns,priority:ua,getColor:Wl,applyColor:Is,buildColorExpression:Jl,hasAnyResource:Yl,getResourceType:Xl,getCSVColumn:da},getCSVColumn:da,getColor:Wl,getResourceType:Xl,hasAnyResource:Yl},Symbol.toStringTag,{value:"Module"}));/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Ms(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Qe={},Rn=[],lo=()=>{},Zl=()=>!1,ir=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),lr=e=>e.startsWith("onUpdate:"),ut=Object.assign,Fs=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},hf=Object.prototype.hasOwnProperty,We=(e,t)=>hf.call(e,t),$e=Array.isArray,Yo=e=>ga(e)==="[object Map]",$o=e=>ga(e)==="[object Set]",Ql=e=>ga(e)==="[object Date]",Me=e=>typeof e=="function",ot=e=>typeof e=="string",Bt=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",ec=e=>(Ye(e)||Me(e))&&Me(e.then)&&Me(e.catch),tc=Object.prototype.toString,ga=e=>tc.call(e),mf=e=>ga(e).slice(8,-1),cr=e=>ga(e)==="[object Object]",ur=e=>ot(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pa=Ms(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),dr=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},bf=/-\w/g,_t=dr(e=>e.replace(bf,t=>t.slice(1).toUpperCase())),yf=/\B([A-Z])/g,Vt=dr(e=>e.replace(yf,"-$1").toLowerCase()),gr=dr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Rs=dr(e=>e?`on${gr(e)}`:""),co=(e,t)=>!Object.is(e,t),pr=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},fr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ds=e=>{const t=ot(e)?Number(e):NaN;return isNaN(t)?e:t};let nc;const hr=()=>nc||(nc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Xe(e){if($e(e)){const t={};for(let o=0;o{if(o){const n=o.split(_f);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Te(e){let t="";if(ot(e))t=e;else if($e(e))for(let o=0;oEo(o,t))}const sc=e=>!!(e&&e.__v_isRef===!0),ye=e=>ot(e)?e:e==null?"":$e(e)||Ye(e)&&(e.toString===tc||!Me(e.toString))?sc(e)?ye(e.value):JSON.stringify(e,ic,2):String(e),ic=(e,t)=>sc(t)?ic(e,t.value):Yo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],r)=>(o[Bs(n,r)+" =>"]=a,o),{})}:$o(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Bs(o))}:Bt(t)?Bs(t):Ye(t)&&!$e(t)&&!cr(t)?String(t):t,Bs=(e,t="")=>{var o;return Bt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** +**/function Ms(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Qe={},Rn=[],lo=()=>{},Zl=()=>!1,ir=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),lr=e=>e.startsWith("onUpdate:"),ut=Object.assign,Fs=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},hf=Object.prototype.hasOwnProperty,We=(e,t)=>hf.call(e,t),$e=Array.isArray,Yo=e=>pa(e)==="[object Map]",$o=e=>pa(e)==="[object Set]",Ql=e=>pa(e)==="[object Date]",Me=e=>typeof e=="function",ot=e=>typeof e=="string",Bt=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",ec=e=>(Ye(e)||Me(e))&&Me(e.then)&&Me(e.catch),tc=Object.prototype.toString,pa=e=>tc.call(e),mf=e=>pa(e).slice(8,-1),cr=e=>pa(e)==="[object Object]",ur=e=>ot(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ga=Ms(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),dr=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},bf=/-\w/g,_t=dr(e=>e.replace(bf,t=>t.slice(1).toUpperCase())),yf=/\B([A-Z])/g,Vt=dr(e=>e.replace(yf,"-$1").toLowerCase()),pr=dr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Rs=dr(e=>e?`on${pr(e)}`:""),co=(e,t)=>!Object.is(e,t),gr=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},fr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ds=e=>{const t=ot(e)?Number(e):NaN;return isNaN(t)?e:t};let nc;const hr=()=>nc||(nc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Xe(e){if($e(e)){const t={};for(let o=0;o{if(o){const n=o.split(_f);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Te(e){let t="";if(ot(e))t=e;else if($e(e))for(let o=0;oEo(o,t))}const sc=e=>!!(e&&e.__v_isRef===!0),ye=e=>ot(e)?e:e==null?"":$e(e)||Ye(e)&&(e.toString===tc||!Me(e.toString))?sc(e)?ye(e.value):JSON.stringify(e,ic,2):String(e),ic=(e,t)=>sc(t)?ic(e,t.value):Yo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],r)=>(o[Bs(n,r)+" =>"]=a,o),{})}:$o(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Bs(o))}:Bt(t)?Bs(t):Ye(t)&&!$e(t)&&!cr(t)?String(t):t,Bs=(e,t="")=>{var o;return Bt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let mt;class lc{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&mt&&(mt.active?(this.parent=mt,this.index=(mt.scopes||(mt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(mt===this)mt=this.prevScope;else{let t=mt;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(ha){let t=ha;for(ha=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;fa;){let t=fa;for(fa=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function pc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function fc(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),Hs(n),Lf(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Ks(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(hc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function hc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ma)||(e.globalVersion=ma,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ks(e))))return;e.flags|=2;const t=e.dep,o=nt,n=to;nt=e,to=!0;try{pc(e);const a=e.fn(e._value);(t.version===0||co(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{nt=o,to=n,fc(e),e.flags&=-3}}function Hs(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)Hs(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Lf(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let to=!0;const mc=[];function uo(){mc.push(to),to=!1}function go(){const e=mc.pop();to=e===void 0?!0:e}function bc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=nt;nt=void 0;try{t()}finally{nt=o}}}let ma=0;class Cf{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Vs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!nt||!to||nt===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==nt)o=this.activeLink=new Cf(nt,this),nt.deps?(o.prevDep=nt.depsTail,nt.depsTail.nextDep=o,nt.depsTail=o):nt.deps=nt.depsTail=o,yc(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=nt.depsTail,o.nextDep=void 0,nt.depsTail.nextDep=o,nt.depsTail=o,nt.deps===o&&(nt.deps=n)}return o}trigger(t){this.version++,ma++,this.notify(t)}notify(t){zs();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Gs()}}}function yc(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)yc(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const mr=new WeakMap,fn=Symbol(""),qs=Symbol(""),ba=Symbol("");function Et(e,t,o){if(to&&nt){let n=mr.get(e);n||mr.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Vs),a.map=n,a.key=o),a.track()}}function To(e,t,o,n,a,r){const s=mr.get(e);if(!s){ma++;return}const i=l=>{l&&l.trigger()};if(zs(),t==="clear")s.forEach(i);else{const l=$e(e),c=l&&ur(o);if(l&&o==="length"){const u=Number(n);s.forEach((p,h)=>{(h==="length"||h===ba||!Bt(h)&&h>=u)&&i(p)})}else switch((o!==void 0||s.has(void 0))&&i(s.get(o)),c&&i(s.get(ba)),t){case"add":l?c&&i(s.get("length")):(i(s.get(fn)),Yo(e)&&i(s.get(qs)));break;case"delete":l||(i(s.get(fn)),Yo(e)&&i(s.get(qs)));break;case"set":Yo(e)&&i(s.get(fn));break}}Gs()}function $f(e,t){const o=mr.get(e);return o&&o.get(t)}function Dn(e){const t=Ue(e);return t===e?t:(Et(t,"iterate",ba),jt(e)?t:t.map(oo))}function br(e){return Et(e=Ue(e),"iterate",ba),e}function po(e,t){return Io(e)?jn(No(e)?oo(t):t):oo(t)}const Ef={__proto__:null,[Symbol.iterator](){return Ws(this,Symbol.iterator,e=>po(this,e))},concat(...e){return Dn(this).concat(...e.map(t=>$e(t)?Dn(t):t))},entries(){return Ws(this,"entries",e=>(e[1]=po(this,e[1]),e))},every(e,t){return Po(this,"every",e,t,void 0,arguments)},filter(e,t){return Po(this,"filter",e,t,o=>o.map(n=>po(this,n)),arguments)},find(e,t){return Po(this,"find",e,t,o=>po(this,o),arguments)},findIndex(e,t){return Po(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Po(this,"findLast",e,t,o=>po(this,o),arguments)},findLastIndex(e,t){return Po(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Po(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ys(this,"includes",e)},indexOf(...e){return Ys(this,"indexOf",e)},join(e){return Dn(this).join(e)},lastIndexOf(...e){return Ys(this,"lastIndexOf",e)},map(e,t){return Po(this,"map",e,t,void 0,arguments)},pop(){return ya(this,"pop")},push(...e){return ya(this,"push",e)},reduce(e,...t){return vc(this,"reduce",e,t)},reduceRight(e,...t){return vc(this,"reduceRight",e,t)},shift(){return ya(this,"shift")},some(e,t){return Po(this,"some",e,t,void 0,arguments)},splice(...e){return ya(this,"splice",e)},toReversed(){return Dn(this).toReversed()},toSorted(e){return Dn(this).toSorted(e)},toSpliced(...e){return Dn(this).toSpliced(...e)},unshift(...e){return ya(this,"unshift",e)},values(){return Ws(this,"values",e=>po(this,e))}};function Ws(e,t,o){const n=br(e),a=n[t]();return n!==e&&!jt(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=o(r.value)),r}),a}const Tf=Array.prototype;function Po(e,t,o,n,a,r){const s=br(e),i=s!==e&&!jt(e),l=s[t];if(l!==Tf[t]){const p=l.apply(e,r);return i?oo(p):p}let c=o;s!==e&&(i?c=function(p,h){return o.call(this,po(e,p),h,e)}:o.length>2&&(c=function(p,h){return o.call(this,p,h,e)}));const u=l.call(s,c,n);return i&&a?a(u):u}function vc(e,t,o,n){const a=br(e),r=a!==e&&!jt(e);let s=o,i=!1;a!==e&&(r?(i=n.length===0,s=function(c,u,p){return i&&(i=!1,c=po(e,c)),o.call(this,c,po(e,u),p,e)}):o.length>3&&(s=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](s,...n);return i?po(e,l):l}function Ys(e,t,o){const n=Ue(e);Et(n,"iterate",ba);const a=n[t](...o);return(a===-1||a===!1)&&wr(o[0])?(o[0]=Ue(o[0]),n[t](...o)):a}function ya(e,t,o=[]){uo(),zs();const n=Ue(e)[t].apply(e,o);return Gs(),go(),n}const Pf=Ms("__proto__,__v_isRef,__isVue"),_c=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Bt));function Nf(e){Bt(e)||(e=String(e));const t=Ue(this);return Et(t,"has",e),t.hasOwnProperty(e)}class kc{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return r;if(o==="__v_raw")return n===(a?r?Cc:Lc:r?Ac:Sc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=$e(t);if(!a){let l;if(s&&(l=Ef[o]))return l;if(o==="hasOwnProperty")return Nf}const i=Reflect.get(t,o,it(t)?t:n);if((Bt(o)?_c.has(o):Pf(o))||(a||Et(t,"get",o),r))return i;if(it(i)){const l=s&&ur(o)?i:i.value;return a&&Ye(l)?hn(l):l}return Ye(i)?a?hn(i):On(i):i}}class wc extends kc{constructor(t=!1){super(!1,t)}set(t,o,n,a){let r=t[o];const s=$e(t)&&ur(o);if(!this._isShallow){const c=Io(r);if(!jt(n)&&!Io(n)&&(r=Ue(r),n=Ue(n)),!s&&it(r)&&!it(n))return c||(r.value=n),!0}const i=s?Number(o)e,yr=e=>Reflect.getPrototypeOf(e);function Df(e,t,o){return function(...n){const a=this.__v_raw,r=Ue(a),s=Yo(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,c=a[e](...n),u=o?Xs:t?jn:oo;return!t&&Et(r,"iterate",l?qs:fn),ut(Object.create(c),{next(){const{value:p,done:h}=c.next();return h?{value:p,done:h}:{value:i?[u(p[0]),u(p[1])]:u(p),done:h}}})}}function vr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Of(e,t){const o={get(a){const r=this.__v_raw,s=Ue(r),i=Ue(a);e||(co(a,i)&&Et(s,"get",a),Et(s,"get",i));const{has:l}=yr(s),c=t?Xs:e?jn:oo;if(l.call(s,a))return c(r.get(a));if(l.call(s,i))return c(r.get(i));r!==s&&r.get(a)},get size(){const a=this.__v_raw;return!e&&Et(Ue(a),"iterate",fn),a.size},has(a){const r=this.__v_raw,s=Ue(r),i=Ue(a);return e||(co(a,i)&&Et(s,"has",a),Et(s,"has",i)),a===i?r.has(a):r.has(a)||r.has(i)},forEach(a,r){const s=this,i=s.__v_raw,l=Ue(i),c=t?Xs:e?jn:oo;return!e&&Et(l,"iterate",fn),i.forEach((u,p)=>a.call(r,c(u),c(p),s))}};return ut(o,e?{add:vr("add"),set:vr("set"),delete:vr("delete"),clear:vr("clear")}:{add(a){const r=Ue(this),s=yr(r),i=Ue(a),l=!t&&!jt(a)&&!Io(a)?i:a;return s.has.call(r,l)||co(a,l)&&s.has.call(r,a)||co(i,l)&&s.has.call(r,i)||(r.add(l),To(r,"add",l,l)),this},set(a,r){!t&&!jt(r)&&!Io(r)&&(r=Ue(r));const s=Ue(this),{has:i,get:l}=yr(s);let c=i.call(s,a);c||(a=Ue(a),c=i.call(s,a));const u=l.call(s,a);return s.set(a,r),c?co(r,u)&&To(s,"set",a,r):To(s,"add",a,r),this},delete(a){const r=Ue(this),{has:s,get:i}=yr(r);let l=s.call(r,a);l||(a=Ue(a),l=s.call(r,a)),i&&i.call(r,a);const c=r.delete(a);return l&&To(r,"delete",a,void 0),c},clear(){const a=Ue(this),r=a.size!==0,s=a.clear();return r&&To(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=Df(a,e,t)}),o}function _r(e,t){const o=Of(e,t);return(n,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(We(o,a)&&a in n?o:n,a,r)}const Bf={get:_r(!1,!1)},jf={get:_r(!1,!0)},Uf={get:_r(!0,!1)},zf={get:_r(!0,!0)},Sc=new WeakMap,Ac=new WeakMap,Lc=new WeakMap,Cc=new WeakMap;function Gf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function On(e){return Io(e)?e:kr(e,!1,If,Bf,Sc)}function Kf(e){return kr(e,!1,Ff,jf,Ac)}function hn(e){return kr(e,!0,Mf,Uf,Lc)}function XL(e){return kr(e,!0,Rf,zf,Cc)}function kr(e,t,o,n,a){if(!Ye(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=Gf(mf(e));if(s===0)return e;const i=new Proxy(e,s===2?n:o);return a.set(e,i),i}function No(e){return Io(e)?No(e.__v_raw):!!(e&&e.__v_isReactive)}function Io(e){return!!(e&&e.__v_isReadonly)}function jt(e){return!!(e&&e.__v_isShallow)}function wr(e){return e?!!e.__v_raw:!1}function Ue(e){const t=e&&e.__v_raw;return t?Ue(t):e}function Bn(e){return!We(e,"__v_skip")&&Object.isExtensible(e)&&oc(e,"__v_skip",!0),e}const oo=e=>Ye(e)?On(e):e,jn=e=>Ye(e)?hn(e):e;function it(e){return e?e.__v_isRef===!0:!1}function ue(e){return $c(e,!1)}function xr(e){return $c(e,!0)}function $c(e,t){return it(e)?e:new Hf(e,t)}class Hf{constructor(t,o){this.dep=new Vs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Ue(t),this._value=o?t:oo(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||jt(t)||Io(t);t=n?t:Ue(t),co(t,o)&&(this._rawValue=t,this._value=n?t:oo(t),this.dep.trigger())}}function de(e){return it(e)?e.value:e}const Vf={get:(e,t,o)=>t==="__v_raw"?e:de(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return it(a)&&!it(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function Ec(e){return No(e)?e:new Proxy(e,Vf)}function qf(e){const t=$e(e)?new Array(e.length):{};for(const o in e)t[o]=Tc(e,o);return t}class Wf{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Bt(o)?o:String(o),this._raw=Ue(t);let a=!0,r=t;if(!$e(t)||Bt(this._key)||!ur(this._key))do a=!wr(r)||jt(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=de(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&it(this._raw[this._key])){const o=this._object[this._key];if(it(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return $f(this._raw,this._key)}}class Yf{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Sr(e,t,o){return it(e)?e:Me(e)?new Yf(e):Ye(e)&&arguments.length>1?Tc(e,t,o):ue(e)}function Tc(e,t,o){return new Wf(e,t,o)}class Xf{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Vs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ma-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&nt!==this)return gc(this,!0),!0}get value(){const t=this.dep.track();return hc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Jf(e,t,o=!1){let n,a;return Me(e)?n=e:(n=e.get,a=e.set),new Xf(n,a,o)}const Ar={},Lr=new WeakMap;let mn;function Zf(e,t=!1,o=mn){if(o){let n=Lr.get(o);n||Lr.set(o,n=[]),n.push(e)}}function Qf(e,t,o=Qe){const{immediate:n,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=o,c=m=>a?m:jt(m)||a===!1||a===0?Mo(m,1):Mo(m);let u,p,h,x,w=!1,f=!1;if(it(e)?(p=()=>e.value,w=jt(e)):No(e)?(p=()=>c(e),w=!0):$e(e)?(f=!0,w=e.some(m=>No(m)||jt(m)),p=()=>e.map(m=>{if(it(m))return m.value;if(No(m))return c(m);if(Me(m))return l?l(m,2):m()})):Me(e)?t?p=l?()=>l(e,2):e:p=()=>{if(h){uo();try{h()}finally{go()}}const m=mn;mn=u;try{return l?l(e,3,[x]):e(x)}finally{mn=m}}:p=lo,t&&a){const m=p,d=a===!0?1/0:a;p=()=>Mo(m(),d)}const b=cc(),y=()=>{u.stop(),b&&b.active&&Fs(b.effects,u)};if(r&&t){const m=t;t=(...d)=>{const _=m(...d);return y(),_}}let v=f?new Array(e.length).fill(Ar):Ar;const g=m=>{if(!(!(u.flags&1)||!u.dirty&&!m))if(t){const d=u.run();if(m||a||w||(f?d.some((_,L)=>co(_,v[L])):co(d,v))){h&&h();const _=mn;mn=u;try{const L=[d,v===Ar?void 0:f&&v[0]===Ar?[]:v,x];v=d,l?l(t,3,L):t(...L)}finally{mn=_}}}else u.run()};return i&&i(g),u=new uc(p),u.scheduler=s?()=>s(g,!1):g,x=m=>Zf(m,!1,u),h=u.onStop=()=>{const m=Lr.get(u);if(m){if(l)l(m,4);else for(const d of m)d();Lr.delete(u)}},t?n?g(!0):v=u.run():s?s(g.bind(null,!0),!0):u.run(),y.pause=u.pause.bind(u),y.resume=u.resume.bind(u),y.stop=y,y}function Mo(e,t=1/0,o){if(t<=0||!Ye(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,it(e))Mo(e.value,t,o);else if($e(e))for(let n=0;n{Mo(n,t,o)});else if(cr(e)){for(const n in e)Mo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Mo(e[n],t,o)}return e}/** +**/let mt;class lc{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&mt&&(mt.active?(this.parent=mt,this.index=(mt.scopes||(mt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(mt===this)mt=this.prevScope;else{let t=mt;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(ha){let t=ha;for(ha=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;fa;){let t=fa;for(fa=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function gc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function fc(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),Hs(n),Lf(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Ks(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(hc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function hc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ma)||(e.globalVersion=ma,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ks(e))))return;e.flags|=2;const t=e.dep,o=nt,n=to;nt=e,to=!0;try{gc(e);const a=e.fn(e._value);(t.version===0||co(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{nt=o,to=n,fc(e),e.flags&=-3}}function Hs(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)Hs(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Lf(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let to=!0;const mc=[];function uo(){mc.push(to),to=!1}function po(){const e=mc.pop();to=e===void 0?!0:e}function bc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=nt;nt=void 0;try{t()}finally{nt=o}}}let ma=0;class Cf{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Vs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!nt||!to||nt===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==nt)o=this.activeLink=new Cf(nt,this),nt.deps?(o.prevDep=nt.depsTail,nt.depsTail.nextDep=o,nt.depsTail=o):nt.deps=nt.depsTail=o,yc(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=nt.depsTail,o.nextDep=void 0,nt.depsTail.nextDep=o,nt.depsTail=o,nt.deps===o&&(nt.deps=n)}return o}trigger(t){this.version++,ma++,this.notify(t)}notify(t){Us();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Gs()}}}function yc(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)yc(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const mr=new WeakMap,fn=Symbol(""),qs=Symbol(""),ba=Symbol("");function Et(e,t,o){if(to&&nt){let n=mr.get(e);n||mr.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Vs),a.map=n,a.key=o),a.track()}}function To(e,t,o,n,a,r){const s=mr.get(e);if(!s){ma++;return}const i=l=>{l&&l.trigger()};if(Us(),t==="clear")s.forEach(i);else{const l=$e(e),c=l&&ur(o);if(l&&o==="length"){const u=Number(n);s.forEach((g,h)=>{(h==="length"||h===ba||!Bt(h)&&h>=u)&&i(g)})}else switch((o!==void 0||s.has(void 0))&&i(s.get(o)),c&&i(s.get(ba)),t){case"add":l?c&&i(s.get("length")):(i(s.get(fn)),Yo(e)&&i(s.get(qs)));break;case"delete":l||(i(s.get(fn)),Yo(e)&&i(s.get(qs)));break;case"set":Yo(e)&&i(s.get(fn));break}}Gs()}function $f(e,t){const o=mr.get(e);return o&&o.get(t)}function Dn(e){const t=ze(e);return t===e?t:(Et(t,"iterate",ba),jt(e)?t:t.map(oo))}function br(e){return Et(e=ze(e),"iterate",ba),e}function go(e,t){return Io(e)?jn(No(e)?oo(t):t):oo(t)}const Ef={__proto__:null,[Symbol.iterator](){return Ws(this,Symbol.iterator,e=>go(this,e))},concat(...e){return Dn(this).concat(...e.map(t=>$e(t)?Dn(t):t))},entries(){return Ws(this,"entries",e=>(e[1]=go(this,e[1]),e))},every(e,t){return Po(this,"every",e,t,void 0,arguments)},filter(e,t){return Po(this,"filter",e,t,o=>o.map(n=>go(this,n)),arguments)},find(e,t){return Po(this,"find",e,t,o=>go(this,o),arguments)},findIndex(e,t){return Po(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Po(this,"findLast",e,t,o=>go(this,o),arguments)},findLastIndex(e,t){return Po(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Po(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ys(this,"includes",e)},indexOf(...e){return Ys(this,"indexOf",e)},join(e){return Dn(this).join(e)},lastIndexOf(...e){return Ys(this,"lastIndexOf",e)},map(e,t){return Po(this,"map",e,t,void 0,arguments)},pop(){return ya(this,"pop")},push(...e){return ya(this,"push",e)},reduce(e,...t){return vc(this,"reduce",e,t)},reduceRight(e,...t){return vc(this,"reduceRight",e,t)},shift(){return ya(this,"shift")},some(e,t){return Po(this,"some",e,t,void 0,arguments)},splice(...e){return ya(this,"splice",e)},toReversed(){return Dn(this).toReversed()},toSorted(e){return Dn(this).toSorted(e)},toSpliced(...e){return Dn(this).toSpliced(...e)},unshift(...e){return ya(this,"unshift",e)},values(){return Ws(this,"values",e=>go(this,e))}};function Ws(e,t,o){const n=br(e),a=n[t]();return n!==e&&!jt(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=o(r.value)),r}),a}const Tf=Array.prototype;function Po(e,t,o,n,a,r){const s=br(e),i=s!==e&&!jt(e),l=s[t];if(l!==Tf[t]){const g=l.apply(e,r);return i?oo(g):g}let c=o;s!==e&&(i?c=function(g,h){return o.call(this,go(e,g),h,e)}:o.length>2&&(c=function(g,h){return o.call(this,g,h,e)}));const u=l.call(s,c,n);return i&&a?a(u):u}function vc(e,t,o,n){const a=br(e),r=a!==e&&!jt(e);let s=o,i=!1;a!==e&&(r?(i=n.length===0,s=function(c,u,g){return i&&(i=!1,c=go(e,c)),o.call(this,c,go(e,u),g,e)}):o.length>3&&(s=function(c,u,g){return o.call(this,c,u,g,e)}));const l=a[t](s,...n);return i?go(e,l):l}function Ys(e,t,o){const n=ze(e);Et(n,"iterate",ba);const a=n[t](...o);return(a===-1||a===!1)&&xr(o[0])?(o[0]=ze(o[0]),n[t](...o)):a}function ya(e,t,o=[]){uo(),Us();const n=ze(e)[t].apply(e,o);return Gs(),po(),n}const Pf=Ms("__proto__,__v_isRef,__isVue"),_c=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Bt));function Nf(e){Bt(e)||(e=String(e));const t=ze(this);return Et(t,"has",e),t.hasOwnProperty(e)}class kc{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return r;if(o==="__v_raw")return n===(a?r?Cc:Lc:r?Ac:Sc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=$e(t);if(!a){let l;if(s&&(l=Ef[o]))return l;if(o==="hasOwnProperty")return Nf}const i=Reflect.get(t,o,it(t)?t:n);if((Bt(o)?_c.has(o):Pf(o))||(a||Et(t,"get",o),r))return i;if(it(i)){const l=s&&ur(o)?i:i.value;return a&&Ye(l)?hn(l):l}return Ye(i)?a?hn(i):On(i):i}}class xc extends kc{constructor(t=!1){super(!1,t)}set(t,o,n,a){let r=t[o];const s=$e(t)&&ur(o);if(!this._isShallow){const c=Io(r);if(!jt(n)&&!Io(n)&&(r=ze(r),n=ze(n)),!s&&it(r)&&!it(n))return c||(r.value=n),!0}const i=s?Number(o)e,yr=e=>Reflect.getPrototypeOf(e);function Df(e,t,o){return function(...n){const a=this.__v_raw,r=ze(a),s=Yo(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,c=a[e](...n),u=o?Xs:t?jn:oo;return!t&&Et(r,"iterate",l?qs:fn),ut(Object.create(c),{next(){const{value:g,done:h}=c.next();return h?{value:g,done:h}:{value:i?[u(g[0]),u(g[1])]:u(g),done:h}}})}}function vr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Of(e,t){const o={get(a){const r=this.__v_raw,s=ze(r),i=ze(a);e||(co(a,i)&&Et(s,"get",a),Et(s,"get",i));const{has:l}=yr(s),c=t?Xs:e?jn:oo;if(l.call(s,a))return c(r.get(a));if(l.call(s,i))return c(r.get(i));r!==s&&r.get(a)},get size(){const a=this.__v_raw;return!e&&Et(ze(a),"iterate",fn),a.size},has(a){const r=this.__v_raw,s=ze(r),i=ze(a);return e||(co(a,i)&&Et(s,"has",a),Et(s,"has",i)),a===i?r.has(a):r.has(a)||r.has(i)},forEach(a,r){const s=this,i=s.__v_raw,l=ze(i),c=t?Xs:e?jn:oo;return!e&&Et(l,"iterate",fn),i.forEach((u,g)=>a.call(r,c(u),c(g),s))}};return ut(o,e?{add:vr("add"),set:vr("set"),delete:vr("delete"),clear:vr("clear")}:{add(a){const r=ze(this),s=yr(r),i=ze(a),l=!t&&!jt(a)&&!Io(a)?i:a;return s.has.call(r,l)||co(a,l)&&s.has.call(r,a)||co(i,l)&&s.has.call(r,i)||(r.add(l),To(r,"add",l,l)),this},set(a,r){!t&&!jt(r)&&!Io(r)&&(r=ze(r));const s=ze(this),{has:i,get:l}=yr(s);let c=i.call(s,a);c||(a=ze(a),c=i.call(s,a));const u=l.call(s,a);return s.set(a,r),c?co(r,u)&&To(s,"set",a,r):To(s,"add",a,r),this},delete(a){const r=ze(this),{has:s,get:i}=yr(r);let l=s.call(r,a);l||(a=ze(a),l=s.call(r,a)),i&&i.call(r,a);const c=r.delete(a);return l&&To(r,"delete",a,void 0),c},clear(){const a=ze(this),r=a.size!==0,s=a.clear();return r&&To(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=Df(a,e,t)}),o}function _r(e,t){const o=Of(e,t);return(n,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(We(o,a)&&a in n?o:n,a,r)}const Bf={get:_r(!1,!1)},jf={get:_r(!1,!0)},zf={get:_r(!0,!1)},Uf={get:_r(!0,!0)},Sc=new WeakMap,Ac=new WeakMap,Lc=new WeakMap,Cc=new WeakMap;function Gf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function On(e){return Io(e)?e:kr(e,!1,If,Bf,Sc)}function Kf(e){return kr(e,!1,Ff,jf,Ac)}function hn(e){return kr(e,!0,Mf,zf,Lc)}function dC(e){return kr(e,!0,Rf,Uf,Cc)}function kr(e,t,o,n,a){if(!Ye(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=Gf(mf(e));if(s===0)return e;const i=new Proxy(e,s===2?n:o);return a.set(e,i),i}function No(e){return Io(e)?No(e.__v_raw):!!(e&&e.__v_isReactive)}function Io(e){return!!(e&&e.__v_isReadonly)}function jt(e){return!!(e&&e.__v_isShallow)}function xr(e){return e?!!e.__v_raw:!1}function ze(e){const t=e&&e.__v_raw;return t?ze(t):e}function Bn(e){return!We(e,"__v_skip")&&Object.isExtensible(e)&&oc(e,"__v_skip",!0),e}const oo=e=>Ye(e)?On(e):e,jn=e=>Ye(e)?hn(e):e;function it(e){return e?e.__v_isRef===!0:!1}function ue(e){return $c(e,!1)}function wr(e){return $c(e,!0)}function $c(e,t){return it(e)?e:new Hf(e,t)}class Hf{constructor(t,o){this.dep=new Vs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:ze(t),this._value=o?t:oo(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||jt(t)||Io(t);t=n?t:ze(t),co(t,o)&&(this._rawValue=t,this._value=n?t:oo(t),this.dep.trigger())}}function de(e){return it(e)?e.value:e}const Vf={get:(e,t,o)=>t==="__v_raw"?e:de(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return it(a)&&!it(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function Ec(e){return No(e)?e:new Proxy(e,Vf)}function qf(e){const t=$e(e)?new Array(e.length):{};for(const o in e)t[o]=Tc(e,o);return t}class Wf{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Bt(o)?o:String(o),this._raw=ze(t);let a=!0,r=t;if(!$e(t)||Bt(this._key)||!ur(this._key))do a=!xr(r)||jt(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=de(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&it(this._raw[this._key])){const o=this._object[this._key];if(it(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return $f(this._raw,this._key)}}class Yf{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Sr(e,t,o){return it(e)?e:Me(e)?new Yf(e):Ye(e)&&arguments.length>1?Tc(e,t,o):ue(e)}function Tc(e,t,o){return new Wf(e,t,o)}class Xf{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Vs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ma-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&nt!==this)return pc(this,!0),!0}get value(){const t=this.dep.track();return hc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Jf(e,t,o=!1){let n,a;return Me(e)?n=e:(n=e.get,a=e.set),new Xf(n,a,o)}const Ar={},Lr=new WeakMap;let mn;function Zf(e,t=!1,o=mn){if(o){let n=Lr.get(o);n||Lr.set(o,n=[]),n.push(e)}}function Qf(e,t,o=Qe){const{immediate:n,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=o,c=m=>a?m:jt(m)||a===!1||a===0?Mo(m,1):Mo(m);let u,g,h,w,x=!1,f=!1;if(it(e)?(g=()=>e.value,x=jt(e)):No(e)?(g=()=>c(e),x=!0):$e(e)?(f=!0,x=e.some(m=>No(m)||jt(m)),g=()=>e.map(m=>{if(it(m))return m.value;if(No(m))return c(m);if(Me(m))return l?l(m,2):m()})):Me(e)?t?g=l?()=>l(e,2):e:g=()=>{if(h){uo();try{h()}finally{po()}}const m=mn;mn=u;try{return l?l(e,3,[w]):e(w)}finally{mn=m}}:g=lo,t&&a){const m=g,d=a===!0?1/0:a;g=()=>Mo(m(),d)}const b=cc(),y=()=>{u.stop(),b&&b.active&&Fs(b.effects,u)};if(r&&t){const m=t;t=(...d)=>{const _=m(...d);return y(),_}}let v=f?new Array(e.length).fill(Ar):Ar;const p=m=>{if(!(!(u.flags&1)||!u.dirty&&!m))if(t){const d=u.run();if(m||a||x||(f?d.some((_,L)=>co(_,v[L])):co(d,v))){h&&h();const _=mn;mn=u;try{const L=[d,v===Ar?void 0:f&&v[0]===Ar?[]:v,w];v=d,l?l(t,3,L):t(...L)}finally{mn=_}}}else u.run()};return i&&i(p),u=new uc(g),u.scheduler=s?()=>s(p,!1):p,w=m=>Zf(m,!1,u),h=u.onStop=()=>{const m=Lr.get(u);if(m){if(l)l(m,4);else for(const d of m)d();Lr.delete(u)}},t?n?p(!0):v=u.run():s?s(p.bind(null,!0),!0):u.run(),y.pause=u.pause.bind(u),y.resume=u.resume.bind(u),y.stop=y,y}function Mo(e,t=1/0,o){if(t<=0||!Ye(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,it(e))Mo(e.value,t,o);else if($e(e))for(let n=0;n{Mo(n,t,o)});else if(cr(e)){for(const n in e)Mo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Mo(e[n],t,o)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const va=[];let Js=!1;function JL(e,...t){if(Js)return;Js=!0,uo();const o=va.length?va[va.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=eh();if(n)Un(n,o,11,[e+t.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),o&&o.proxy,a.map(({vnode:r})=>`at <${Iu(o,r.type)}>`).join(` +**/const va=[];let Js=!1;function pC(e,...t){if(Js)return;Js=!0,uo();const o=va.length?va[va.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=eh();if(n)zn(n,o,11,[e+t.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),o&&o.proxy,a.map(({vnode:r})=>`at <${Iu(o,r.type)}>`).join(` `),a]);else{const r=[`[Vue warn]: ${e}`,...t];a.length&&r.push(` -`,...th(a)),console.warn(...r)}go(),Js=!1}function eh(){let e=va[va.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function th(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],...oh(o))}),t}function oh({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Iu(e.component,e.type,n)}`,r=">"+o;return e.props?[a,...nh(e.props),r]:[a+r]}function nh(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Pc(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Pc(e,t,o){return ot(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:it(t)?(t=Pc(e,Ue(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Me(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Ue(t),o?t:[`${e}=`,t])}function Un(e,t,o,n){try{return n?e(...n):e()}catch(a){_a(a,t,o)}}function qt(e,t,o,n){if(Me(e)){const a=Un(e,t,o,n);return a&&ec(a)&&a.catch(r=>{_a(r,t,o)}),a}if($e(e)){const a=[];for(let r=0;r>>1,a=Nt[n],r=ka(a);r=ka(o)?Nt.push(e):Nt.splice(rh(t),0,e),e.flags|=1,Ic()}}function Ic(){Cr||(Cr=Nc.then(Rc))}function sh(e){if(!$e(e))Xo&&e.id===-1?Xo.splice(Gn+1,0,e):e.flags&1||(zn.push(e),e.flags|=1);else for(let t=0;tka(o)-ka(n));if(zn.length=0,Xo){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Rc(e){try{for(fo=0;fo{n._d&&Dr(-1);const r=$r(t),s=Do.length;let i;try{i=e(...a)}finally{for(let l=Do.length;l>s;l--)hi();$r(r),n._d&&Dr(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Wt(e,t){if(St===null)return e;const o=Ur(St),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&Me(t)?t.call(n&&n.proxy):t}}function ih(){return!!(yo()||vn)}const lh=Symbol.for("v-scx"),ch=()=>Pe(lh);function uh(e,t){return Qs(e,null,t)}function Re(e,t,o){return Qs(e,t,o)}function Qs(e,t,o=Qe){const{immediate:n,deep:a,flush:r,once:s}=o,i=ut({},o),l=t&&n||!t&&r!=="post";let c;if(Hn){if(r==="sync"){const x=ch();c=x.__watcherHandles||(x.__watcherHandles=[])}else if(!l){const x=()=>{};return x.stop=lo,x.resume=lo,x.pause=lo,x}}const u=Lt;i.call=(x,w,f)=>qt(x,u,w,f);let p=!1;r==="post"?i.scheduler=x=>{Mt(x,u&&u.suspense)}:r!=="sync"&&(p=!0,i.scheduler=(x,w)=>{w?x():Zs(x)}),i.augmentJob=x=>{t&&(x.flags|=4),p&&(x.flags|=2,u&&(x.id=u.uid,x.i=u))};const h=Qf(e,t,i);return Hn&&(c?c.push(h):l&&h()),h}function dh(e,t,o){const n=this.proxy,a=ot(e)?e.includes(".")?Oc(n,e):()=>n[e]:e.bind(n,n);let r;Me(t)?r=t:(r=t.handler,o=t);const s=Ra(this),i=Qs(a,r.bind(n),o);return s(),i}function Oc(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,yn=e=>e&&(e.disabled||e.disabled===""),gh=e=>e&&(e.defer||e.defer===""),jc=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Uc=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ei=(e,t)=>{const o=e&&e.to;return ot(o)?t?t(o):null:o},ph={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,r,s,i,l,c){const{mc:u,pc:p,pbc:h,o:{insert:x,querySelector:w,createText:f,createComment:b,parentNode:y}}=c,v=yn(t.props);let{dynamicChildren:g}=t;const m=(L,O,S)=>{L.shapeFlag&16&&u(L.children,O,S,a,r,s,i,l)},d=(L=t)=>{const O=yn(L.props),S=L.target=ei(L.props,w),z=ti(S,L,f,x);S&&(s!=="svg"&&jc(S)?s="svg":s!=="mathml"&&Uc(S)&&(s="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(S),O||(m(L,S,z),wa(L,!1)))},_=L=>{const O=()=>{if(Jo.get(L)===O){if(Jo.delete(L),yn(L.props)){const S=y(L.el)||o;m(L,S,L.anchor),wa(L,!0)}d(L)}};Jo.set(L,O),Mt(O,r)};if(e==null){const L=t.el=f(""),O=t.anchor=f("");if(x(L,o,n),x(O,o,n),gh(t.props)||r&&r.pendingBranch){_(t);return}v&&(m(t,o,O),wa(t,!0)),d()}else{t.el=e.el;const L=t.anchor=e.anchor,O=Jo.get(e);if(O){O.flags|=8,Jo.delete(e),_(t);return}t.targetStart=e.targetStart;const S=t.target=e.target,z=t.targetAnchor=e.targetAnchor,G=yn(e.props),j=G?o:S,M=G?L:z;if(s==="svg"||jc(S)?s="svg":(s==="mathml"||Uc(S))&&(s="mathml"),g?(h(e.dynamicChildren,g,j,a,r,s,i),pi(e,t,!0)):l||p(e,t,j,M,a,r,s,i,!1),v)G?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Tr(t,o,L,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const E=ei(t.props,w);E&&(t.target=E,Tr(t,E,null,c,0))}else G&&Tr(t,S,z,c,1);wa(t,v)}},remove(e,t,o,{um:n,o:{remove:a}},r){const{shapeFlag:s,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:h}=e,x=yn(h),w=r||!x,f=Jo.get(e);if(f&&(f.flags|=8,Jo.delete(e)),p&&(a(c),a(u)),r&&a(l),!f&&(x||p)&&s&16)for(let b=0;b{e.isMounted=!0}),ho(()=>{e.isUnmounting=!0}),e}const Xt=[Function,Array],zc={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Xt,onEnter:Xt,onAfterEnter:Xt,onEnterCancelled:Xt,onBeforeLeave:Xt,onLeave:Xt,onAfterLeave:Xt,onLeaveCancelled:Xt,onBeforeAppear:Xt,onAppear:Xt,onAfterAppear:Xt,onAppearCancelled:Xt},Gc=e=>{const t=e.subTree;return t.component?Gc(t.component):t},bh={name:"BaseTransition",props:zc,setup(e,{slots:t}){const o=yo(),n=mh();return()=>{const a=t.default&&Vc(t.default(),!0),r=a&&a.length?Kc(a):o.subTree?ve():void 0;if(!r)return;const s=Ue(e),{mode:i}=s;if(n.isLeaving)return ni(r);const l=Pr(r);if(!l)return ni(r);let c=oi(l,s,n,o,p=>c=p);l.type!==Tt&&Sa(l,c);let u=o.subTree&&Pr(o.subTree);if(u&&u.type!==Tt&&!kn(u,l)&&Gc(o).type!==Tt){let p=oi(u,s,n,o);if(Sa(u,p),i==="out-in"&&l.type!==Tt)return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,o.job.flags&8||o.update(),delete p.afterLeave,u=void 0},ni(r);i==="in-out"&&l.type!==Tt?p.delayLeave=(h,x,w)=>{const f=Hc(n,u);f[String(u.key)]=u,h[Yt]=()=>{x(),h[Yt]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{w(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return r}}};function Kc(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Tt){t=o;break}}return t}const yh=bh;function Hc(e,t){const{leavingVNodes:o}=e;let n=o.get(t.type);return n||(n=Object.create(null),o.set(t.type,n)),n}function oi(e,t,o,n,a){const{appear:r,mode:s,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:p,onBeforeLeave:h,onLeave:x,onAfterLeave:w,onLeaveCancelled:f,onBeforeAppear:b,onAppear:y,onAfterAppear:v,onAppearCancelled:g}=t,m=String(e.key),d=Hc(o,e),_=(S,z)=>{S&&qt(S,n,9,z)},L=(S,z)=>{const G=z[1];_(S,z),$e(S)?S.every(j=>j.length<=1)&&G():S.length<=1&&G()},O={mode:s,persisted:i,beforeEnter(S){let z=l;if(!o.isMounted)if(r)z=b||l;else return;S[Yt]&&S[Yt](!0);const G=d[m];G&&kn(e,G)&&G.el[Yt]&&G.el[Yt](),_(z,[S])},enter(S){if(d[m]===e)return;let z=c,G=u,j=p;if(!o.isMounted)if(r)z=y||c,G=v||u,j=g||p;else return;let M=!1;S[xa]=C=>{M||(M=!0,C?_(j,[S]):_(G,[S]),O.delayedLeave&&O.delayedLeave(),S[xa]=void 0)};const E=S[xa].bind(null,!1);z?L(z,[S,E]):E()},leave(S,z){const G=String(e.key);if(S[xa]&&S[xa](!0),o.isUnmounting)return z();_(h,[S]);let j=!1;S[Yt]=E=>{j||(j=!0,z(),E?_(f,[S]):_(w,[S]),S[Yt]=void 0,d[G]===e&&delete d[G])};const M=S[Yt].bind(null,!1);d[G]=e,x?L(x,[S,M]):M()},clone(S){const z=oi(S,t,o,n,a);return a&&a(z),z}};return O}function ni(e){if($a(e))return e=Zo(e),e.children=null,e}function Pr(e){if(!$a(e))return Er(e.type)&&e.children?Kc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&Me(o.default))return o.default()}}function Sa(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Sa(Er(o.type)&&Pr(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vc(e,t=!1,o){let n=[],a=0;for(let r=0;r1)for(let r=0;rLa(f,t&&($e(t)?t[b]:t),o,n,a));return}if(Kn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&La(e,t,o,n.component.subTree);return}const r=n.shapeFlag&4?Ur(n.component):n.el,s=a?null:r,{i,r:l}=e,c=t&&t.r,u=i.refs===Qe?i.refs={}:i.refs,p=i.setupState,h=Ue(p),x=p===Qe?Zl:f=>qc(u,f)?!1:We(h,f),w=(f,b)=>!(b&&qc(u,b));if(c!=null&&c!==l){if(Wc(t),ot(c))u[c]=null,x(c)&&(p[c]=null);else if(it(c)){const f=t;w(c,f.k)&&(c.value=null),f.k&&(u[f.k]=null)}}if(Me(l))Un(l,i,12,[s,u]);else{const f=ot(l),b=it(l);if(f||b){const y=()=>{if(e.f){const v=f?x(l)?p[l]:u[l]:w()||!e.k?l.value:u[e.k];if(a)$e(v)&&Fs(v,r);else if($e(v))v.includes(r)||v.push(r);else if(f)u[l]=[r],x(l)&&(p[l]=u[l]);else{const g=[r];w(l,e.k)&&(l.value=g),e.k&&(u[e.k]=g)}}else f?(u[l]=s,x(l)&&(p[l]=s)):b&&(w(l,e.k)&&(l.value=s),e.k&&(u[e.k]=s))};if(s){const v=()=>{y(),Nr.delete(e)};v.id=-1,Nr.set(e,v),Mt(v,o)}else Wc(e),y()}}}function Wc(e){const t=Nr.get(e);t&&(t.flags|=8,Nr.delete(e))}const Yc=e=>e.nodeType===8;hr().requestIdleCallback,hr().cancelIdleCallback;function vh(e,t){if(Yc(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(Yc(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const Kn=e=>!!e.type.__asyncLoader;function Ca(e){Me(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let c=null,u,p=0;const h=()=>(p++,c=null,x()),x=()=>{let w;return c||(w=c=t().catch(f=>{if(f=f instanceof Error?f:new Error(String(f)),l)return new Promise((b,y)=>{l(f,()=>b(h()),()=>y(f),p+1)});throw f}).then(f=>w!==c&&c?c:(f&&(f.__esModule||f[Symbol.toStringTag]==="Module")&&(f=f.default),u=f,f)))};return Aa({name:"AsyncComponentWrapper",__asyncLoader:x,__asyncHydrate(w,f,b){const y=w.isConnected;let v=!1;(f.bu||(f.bu=[])).push(()=>v=!0);const g=()=>{v||!w.parentNode||y&&!w.isConnected||b()},m=r?()=>{const d=r(g,_=>vh(w,_));d&&(f.bum||(f.bum=[])).push(d)}:g;u?m():x().then(()=>!f.isUnmounted&&m())},get __asyncResolved(){return u},setup(){const w=Lt;if(ai(w),u)return()=>Ir(u,w);const f=d=>{c=null,_a(d,w,13,!n)};if(i&&w.suspense||Hn)return x().then(d=>()=>Ir(d,w)).catch(d=>(f(d),()=>n?Je(n,{error:d}):null));const b=ue(!1),y=ue(),v=ue(!!a);let g,m;return Ea(()=>{g!=null&&clearTimeout(g),m!=null&&clearTimeout(m)}),a&&(m=setTimeout(()=>{w.isUnmounted||(v.value=!1)},a)),s!=null&&(g=setTimeout(()=>{if(!w.isUnmounted&&!b.value&&!y.value){const d=new Error(`Async component timed out after ${s}ms.`);f(d),y.value=d}},s)),x().then(()=>{w.isUnmounted||(b.value=!0,w.parent&&$a(w.parent.vnode)&&w.parent.update())}).catch(d=>{if(w.isUnmounted){c=null;return}f(d),y.value=d}),()=>{if(b.value&&u)return Ir(u,w);if(y.value&&n)return Je(n,{error:y.value});if(o&&!v.value)return Ir(o,w)}}})}function Ir(e,t){const{ref:o,props:n,children:a,ce:r}=t.vnode,s=Je(e,n,a);return s.ref=o,s.ce=r,delete t.vnode.ce,s}const $a=e=>e.type.__isKeepAlive;function _h(e,t){Xc(e,"a",t)}function kh(e,t){Xc(e,"da",t)}function Xc(e,t,o=Lt){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Mr(t,n,o),o){let a=o.parent;for(;a&&a.parent;)$a(a.parent.vnode)&&wh(n,t,o,a),a=a.parent}}function wh(e,t,o,n){const a=Mr(t,e,n,!0);Ea(()=>{Fs(n[t],a)},o)}function Mr(e,t,o=Lt,n=!1){if(o){const a=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...s)=>{uo();const i=Ra(o),l=qt(t,o,e,s);return i(),go(),l});return n?a.unshift(r):a.push(r),r}}const Fo=e=>(t,o=Lt)=>{(!Hn||e==="sp")&&Mr(e,(...n)=>t(...n),o)},Jc=Fo("bm"),Jt=Fo("m"),xh=Fo("bu"),Sh=Fo("u"),ho=Fo("bum"),Ea=Fo("um"),Ah=Fo("sp"),Lh=Fo("rtg"),Ch=Fo("rtc");function $h(e,t=Lt){Mr("ec",e,t)}const Eh="components",Zc=Symbol.for("v-ndc");function Qc(e){return ot(e)?Th(Eh,e,!1)||e:e||Zc}function Th(e,t,o=!0,n=!1){const a=St||Lt;if(a){const r=a.type;{const i=Nu(r,!1);if(i&&(i===t||i===_t(t)||i===gr(_t(t))))return r}const s=eu(a[e]||r[e],t)||eu(a.appContext[e],t);return!s&&n?r:s}}function eu(e,t){return e&&(e[t]||e[_t(t)]||e[gr(_t(t))])}function At(e,t,o,n){let a;const r=o,s=$e(e);if(s||ot(e)){const i=s&&No(e);let l=!1,c=!1;i&&(l=!jt(e),c=Io(e),e=br(e)),a=new Array(e.length);for(let u=0,p=e.length;ut(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return t!=="default"&&(c.name=t),X(),Ge(Be,null,[Je("slot",c,n&&n())],u?-2:64)}let s=e[t];s&&s._c&&(s._d=!1);const i=Do.length;X();let l;try{const c=s&&tu(s(o)),u=o.key||r||c&&c.key;l=Ge(Be,{key:(u&&!Bt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=Do.length;u>i;u--)hi();throw c}finally{s&&s._c&&(s._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function tu(e){return e.some(t=>Ma(t)?!(t.type===Tt||t.type===Be&&!tu(t.children)):!0)?e:null}const ri=e=>e?Eu(e)?Ur(e):ri(e.parent):null,Ta=ut(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ri(e.parent),$root:e=>ri(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ru(e),$forceUpdate:e=>e.f||(e.f=()=>{Zs(e.update)}),$nextTick:e=>e.n||(e.n=Ut.bind(e.proxy)),$watch:e=>dh.bind(e)}),si=(e,t)=>e!==Qe&&!e.__isScriptSetup&&We(e,t),Ph={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(t[0]!=="$"){const h=s[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return r[t]}else{if(si(n,t))return s[t]=1,n[t];if(a!==Qe&&We(a,t))return s[t]=2,a[t];if(We(r,t))return s[t]=3,r[t];if(o!==Qe&&We(o,t))return s[t]=4,o[t];ii&&(s[t]=0)}}const c=Ta[t];let u,p;if(c)return t==="$attrs"&&Et(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==Qe&&We(o,t))return s[t]=4,o[t];if(p=l.config.globalProperties,We(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:r}=e;return si(a,t)?(a[t]=o,!0):n!==Qe&&We(n,t)?(n[t]=o,!0):We(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:r,type:s}},i){let l;return!!(o[i]||e!==Qe&&i[0]!=="$"&&We(e,i)||si(t,i)||We(r,i)||We(n,i)||We(Ta,i)||We(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:We(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function ou(e){return $e(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let ii=!0;function Nh(e){const t=ru(e),o=e.proxy,n=e.ctx;ii=!1,t.beforeCreate&&nu(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:h,beforeUpdate:x,updated:w,activated:f,deactivated:b,beforeDestroy:y,beforeUnmount:v,destroyed:g,unmounted:m,render:d,renderTracked:_,renderTriggered:L,errorCaptured:O,serverPrefetch:S,expose:z,inheritAttrs:G,components:j,directives:M,filters:E}=t;if(c&&Ih(c,n,null),s)for(const F in s){const q=s[F];Me(q)&&(n[F]=q.bind(o))}if(a){const F=a.call(o,o);Ye(F)&&(e.data=On(F))}if(ii=!0,r)for(const F in r){const q=r[F],se=Me(q)?q.bind(o,o):Me(q.get)?q.get.bind(o,o):lo,Z=!Me(q)&&Me(q.set)?q.set.bind(o):lo,oe=te({get:se,set:Z});Object.defineProperty(n,F,{enumerable:!0,configurable:!0,get:()=>oe.value,set:H=>oe.value=H})}if(i)for(const F in i)au(i[F],n,o,F);if(l){const F=Me(l)?l.call(o):l;Reflect.ownKeys(F).forEach(q=>{kt(q,F[q])})}u&&nu(u,e,"c");function P(F,q){$e(q)?q.forEach(se=>F(se.bind(o))):q&&F(q.bind(o))}if(P(Jc,p),P(Jt,h),P(xh,x),P(Sh,w),P(_h,f),P(kh,b),P($h,O),P(Ch,_),P(Lh,L),P(ho,v),P(Ea,m),P(Ah,S),$e(z))if(z.length){const F=e.exposed||(e.exposed={});z.forEach(q=>{Object.defineProperty(F,q,{get:()=>o[q],set:se=>o[q]=se,enumerable:!0})})}else e.exposed||(e.exposed={});d&&e.render===lo&&(e.render=d),G!=null&&(e.inheritAttrs=G),j&&(e.components=j),M&&(e.directives=M),S&&ai(e)}function Ih(e,t,o=lo){$e(e)&&(e=li(e));for(const n in e){const a=e[n];let r;Ye(a)?"default"in a?r=Pe(a.from||n,a.default,!0):r=Pe(a.from||n):r=Pe(a),it(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function nu(e,t,o){qt($e(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function au(e,t,o,n){let a=n.includes(".")?Oc(o,n):()=>o[n];if(ot(e)){const r=t[e];Me(r)&&Re(a,r)}else if(Me(e))Re(a,e.bind(o));else if(Ye(e))if($e(e))e.forEach(r=>au(r,t,o,n));else{const r=Me(e.handler)?e.handler.bind(o):t[e.handler];Me(r)&&Re(a,r,e)}}function ru(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Fr(l,c,s,!0)),Fr(l,t,s)),Ye(t)&&r.set(t,l),l}function Fr(e,t,o,n=!1){const{mixins:a,extends:r}=t;r&&Fr(e,r,o,!0),a&&a.forEach(s=>Fr(e,s,o,!0));for(const s in t)if(!(n&&s==="expose")){const i=Mh[s]||o&&o[s];e[s]=i?i(e[s],t[s]):t[s]}return e}const Mh={data:su,props:iu,emits:iu,methods:Pa,computed:Pa,beforeCreate:It,created:It,beforeMount:It,mounted:It,beforeUpdate:It,updated:It,beforeDestroy:It,beforeUnmount:It,destroyed:It,unmounted:It,activated:It,deactivated:It,errorCaptured:It,serverPrefetch:It,components:Pa,directives:Pa,watch:Rh,provide:su,inject:Fh};function su(e,t){return t?e?function(){return ut(Me(e)?e.call(this,this):e,Me(t)?t.call(this,this):t)}:t:e}function Fh(e,t){return Pa(li(e),li(t))}function li(e){if($e(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${_t(t)}Modifiers`]||e[`${Vt(t)}Modifiers`];function jh(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Qe;let a=o;const r=t.startsWith("update:"),s=r&&Bh(n,t.slice(7));s&&(s.trim&&(a=o.map(u=>ot(u)?u.trim():u)),s.number&&(a=a.map(fr)));let i,l=n[i=Rs(t)]||n[i=Rs(_t(t))];!l&&r&&(l=n[i=Rs(Vt(t))]),l&&qt(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,qt(c,e,6,a)}}const Uh=new WeakMap;function cu(e,t,o=!1){const n=o?Uh:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!Me(e)){const l=c=>{const u=cu(c,t,!0);u&&(i=!0,ut(s,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(Ye(e)&&n.set(e,null),null):($e(r)?r.forEach(l=>s[l]=null):ut(s,r),Ye(e)&&n.set(e,s),s)}function Rr(e,t){return!e||!ir(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),We(e,t[0].toLowerCase()+t.slice(1))||We(e,Vt(t))||We(e,t))}function ZL(){}function uu(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:c,renderCache:u,props:p,data:h,setupState:x,ctx:w,inheritAttrs:f}=e,b=$r(e);let y,v;try{if(o.shapeFlag&4){const m=a||n,d=m;y=mo(c.call(d,m,u,p,x,h,w)),v=i}else{const m=t;y=mo(m.length>1?m(p,{attrs:i,slots:s,emit:l}):m(p,null)),v=t.props?i:zh(i)}}catch(m){Do.length=0,_a(m,e,1),y=Je(Tt)}let g=y;if(v&&f!==!1){const m=Object.keys(v),{shapeFlag:d}=g;m.length&&d&7&&(r&&m.some(lr)&&(v=Gh(v,r)),g=Zo(g,v,!1,!0))}if(o.dirs&&(g=Zo(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(o.dirs):o.dirs),o.transition){const m=Er(g.type)&&Pr(g)||g;Sa(m,o.transition)}return y=g,$r(b),y}const zh=e=>{let t;for(const o in e)(o==="class"||o==="style"||ir(o))&&((t||(t={}))[o]=e[o]);return t},Gh=(e,t)=>{const o={};for(const n in e)(!lr(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function Kh(e,t,o){const{props:n,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?du(n,s,c):!!s;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(pu),hu=e=>Object.getPrototypeOf(e)===pu;function Vh(e,t,o,n=!1){const a={},r=fu();e.propsDefaults=Object.create(null),mu(e,t,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);o?e.props=n?a:Kf(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function qh(e,t,o,n){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=Ue(a),[l]=e.propsOptions;let c=!1;if((n||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let p=0;p{l=!0;const[h,x]=bu(p,t,!0);ut(s,h),x&&i.push(...x)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return Ye(e)&&n.set(e,Rn),Rn;if($e(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",di=e=>$e(e)?e.map(mo):[mo(e)],Yh=(e,t,o)=>{if(t._n)return t;const n=Dt((...a)=>di(t(...a)),o);return n._c=!1,n},vu=(e,t,o)=>{const n=e._ctx;for(const a in e){if(ui(a))continue;const r=e[a];if(Me(r))t[a]=Yh(a,r,n);else if(r!=null){const s=di(r);t[a]=()=>s}}},_u=(e,t)=>{const o=di(t);e.slots.default=()=>o},ku=(e,t,o)=>{for(const n in t)(o||!ui(n))&&(e[n]=t[n])},Xh=(e,t,o)=>{const n=e.slots=fu();if(e.vnode.shapeFlag&32){const a=t._;a?(ku(n,t,o),o&&oc(n,"_",a,!0)):vu(t,n)}else t&&_u(e,t)},Jh=(e,t,o)=>{const{vnode:n,slots:a}=e;let r=!0,s=Qe;if(n.shapeFlag&32){const i=t._;i?o&&i===1?r=!1:ku(a,t,o):(r=!t.$stable,vu(t,a)),s=t}else t&&(_u(e,t),s={default:1});if(r)for(const i in a)!ui(i)&&s[i]==null&&delete a[i]},Mt=om;function Zh(e){return Qh(e)}function Qh(e,t){const o=hr();o.__VUE__=!0;const{insert:n,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:h,setScopeId:x=lo,insertStaticContent:w}=e,f=($,U,R,K=null,ee=null,D=null,ne=void 0,ae=null,k=!!U.dynamicChildren)=>{if($===U)return;$&&!kn($,U)&&(K=ce($),H($,ee,D,!0),$=null),U.patchFlag===-2&&(k=!1,U.dynamicChildren=null);const{type:A,ref:V,shapeFlag:Q}=U;switch(A){case Na:b($,U,R,K);break;case Tt:y($,U,R,K);break;case fi:$==null&&v(U,R,K,ne);break;case Be:j($,U,R,K,ee,D,ne,ae,k);break;default:Q&1?d($,U,R,K,ee,D,ne,ae,k):Q&6?M($,U,R,K,ee,D,ne,ae,k):(Q&64||Q&128)&&A.process($,U,R,K,ee,D,ne,ae,k,he)}V!=null&&ee?La(V,$&&$.ref,D,U||$,!U):V==null&&$&&$.ref!=null&&La($.ref,null,D,$,!0)},b=($,U,R,K)=>{if($==null)n(U.el=i(U.children),R,K);else{const ee=U.el=$.el;U.children!==$.children&&c(ee,U.children)}},y=($,U,R,K)=>{$==null?n(U.el=l(U.children||""),R,K):U.el=$.el},v=($,U,R,K)=>{[$.el,$.anchor]=w($.children,U,R,K,$.el,$.anchor)},g=({el:$,anchor:U},R,K)=>{let ee;for(;$&&$!==U;)ee=h($),n($,R,K),$=ee;n(U,R,K)},m=({el:$,anchor:U})=>{let R;for(;$&&$!==U;)R=h($),a($),$=R;a(U)},d=($,U,R,K,ee,D,ne,ae,k)=>{if(U.type==="svg"?ne="svg":U.type==="math"&&(ne="mathml"),$==null)_(U,R,K,ee,D,ne,ae,k);else{const A=$.el&&$.el._isVueCE?$.el:null;try{A&&A._beginPatch(),S($,U,ee,D,ne,ae,k)}finally{A&&A._endPatch()}}},_=($,U,R,K,ee,D,ne,ae)=>{let k,A;const{props:V,shapeFlag:Q,transition:me,dirs:pe}=$;if(k=$.el=s($.type,D,V&&V.is,V),Q&8?u(k,$.children):Q&16&&O($.children,k,null,K,ee,gi($,D),ne,ae),pe&&bn($,null,K,"created"),L(k,$,$.scopeId,ne,K),V){for(const N in V)N!=="value"&&!pa(N)&&r(k,N,null,V[N],D,K);"value"in V&&r(k,"value",null,V.value,D),(A=V.onVnodeBeforeMount)&&bo(A,K,$)}pe&&bn($,null,K,"beforeMount");const J=em(ee,me);J&&me.beforeEnter(k),n(k,U,R),((A=V&&V.onVnodeMounted)||J||pe)&&Mt(()=>{try{A&&bo(A,K,$),J&&me.enter(k),pe&&bn($,null,K,"mounted")}finally{}},ee)},L=($,U,R,K,ee)=>{if(R&&x($,R),K)for(let D=0;D{for(let A=k;A<$.length;A++){const V=$[A]=ae?Oo($[A]):mo($[A]);f(null,V,U,R,K,ee,D,ne,ae)}},S=($,U,R,K,ee,D,ne)=>{const ae=U.el=$.el;let{patchFlag:k,dynamicChildren:A,dirs:V}=U;k|=$.patchFlag&16;const Q=$.props||Qe,me=U.props||Qe;let pe;if(R&&_n(R,!1),(pe=me.onVnodeBeforeUpdate)&&bo(pe,R,U,$),V&&bn(U,$,R,"beforeUpdate"),R&&_n(R,!0),A&&(!$.dynamicChildren||$.dynamicChildren.length!==A.length)&&(k=0,ne=!1,A=null),(Q.innerHTML&&me.innerHTML==null||Q.textContent&&me.textContent==null)&&u(ae,""),A?z($.dynamicChildren,A,ae,R,K,gi(U,ee),D):ne||q($,U,ae,null,R,K,gi(U,ee),D,!1),k>0){if(k&16)G(ae,Q,me,R,ee);else if(k&2&&Q.class!==me.class&&r(ae,"class",null,me.class,ee),k&4&&r(ae,"style",Q.style,me.style,ee),k&8){const J=U.dynamicProps;for(let N=0;N{pe&&bo(pe,R,U,$),V&&bn(U,$,R,"updated")},K)},z=($,U,R,K,ee,D,ne)=>{for(let ae=0;ae{if(U!==R){if(U!==Qe)for(const D in U)!pa(D)&&!(D in R)&&r($,D,U[D],null,ee,K);for(const D in R){if(pa(D))continue;const ne=R[D],ae=U[D];ne!==ae&&D!=="value"&&r($,D,ae,ne,ee,K)}"value"in R&&r($,"value",U.value,R.value,ee)}},j=($,U,R,K,ee,D,ne,ae,k)=>{const A=U.el=$?$.el:i(""),V=U.anchor=$?$.anchor:i("");let{patchFlag:Q,dynamicChildren:me,slotScopeIds:pe}=U;pe&&(ae=ae?ae.concat(pe):pe),$==null?(n(A,R,K),n(V,R,K),O(U.children||[],R,V,ee,D,ne,ae,k)):Q>0&&Q&64&&me&&$.dynamicChildren&&$.dynamicChildren.length===me.length?(z($.dynamicChildren,me,R,ee,D,ne,ae),(U.key!=null||ee&&U===ee.subTree)&&pi($,U,!0)):q($,U,R,V,ee,D,ne,ae,k)},M=($,U,R,K,ee,D,ne,ae,k)=>{U.slotScopeIds=ae,$==null?U.shapeFlag&512?ee.ctx.activate(U,R,K,ne,k):E(U,R,K,ee,D,ne,k):C($,U,k)},E=($,U,R,K,ee,D,ne)=>{const ae=$.component=lm($,K,ee);if($a($)&&(ae.ctx.renderer=he),cm(ae,!1,ne),ae.asyncDep){if(ee&&ee.registerDep(ae,P,ne),!$.el){const k=ae.subTree=Je(Tt);y(null,k,U,R),$.placeholder=k.el}}else P(ae,$,U,R,ee,D,ne)},C=($,U,R)=>{const K=U.component=$.component;if(Kh($,U,R))if(K.asyncDep&&!K.asyncResolved){F(K,U,R);return}else K.next=U,K.update();else U.el=$.el,K.vnode=U},P=($,U,R,K,ee,D,ne)=>{const ae=()=>{if($.isMounted){let{next:Q,bu:me,u:pe,parent:J,vnode:N}=$;{const Oe=wu($);if(Oe){Q&&(Q.el=N.el,F($,Q,ne)),Oe.asyncDep.then(()=>{Mt(()=>{$.isUnmounted||A()},ee)});return}}let W=Q,ge;_n($,!1),Q?(Q.el=N.el,F($,Q,ne)):Q=N,me&&pr(me),(ge=Q.props&&Q.props.onVnodeBeforeUpdate)&&bo(ge,J,Q,N),_n($,!0);const be=uu($),Le=$.subTree;$.subTree=be,f(Le,be,p(Le.el),ce(Le),$,ee,D),Q.el=be.el,W===null&&Hh($,be.el),pe&&Mt(pe,ee),(ge=Q.props&&Q.props.onVnodeUpdated)&&Mt(()=>bo(ge,J,Q,N),ee)}else{let Q;const{el:me,props:pe}=U,{bm:J,m:N,parent:W,root:ge,type:be}=$,Le=Kn(U);_n($,!1),J&&pr(J),!Le&&(Q=pe&&pe.onVnodeBeforeMount)&&bo(Q,W,U),_n($,!0);{ge.ce&&ge.ce._hasShadowRoot()&&ge.ce._injectChildStyle(be,$.parent?$.parent.type:void 0);const Oe=$.subTree=uu($);f(null,Oe,R,K,$,ee,D),U.el=Oe.el}if(N&&Mt(N,ee),!Le&&(Q=pe&&pe.onVnodeMounted)){const Oe=U;Mt(()=>bo(Q,W,Oe),ee)}(U.shapeFlag&256||W&&Kn(W.vnode)&&W.vnode.shapeFlag&256)&&$.a&&Mt($.a,ee),$.isMounted=!0,U=R=K=null}};$.scope.on();const k=$.effect=new uc(ae);$.scope.off();const A=$.update=k.run.bind(k),V=$.job=k.runIfDirty.bind(k);V.i=$,V.id=$.uid,k.scheduler=()=>Zs(V),_n($,!0),A()},F=($,U,R)=>{U.component=$;const K=$.vnode.props;$.vnode=U,$.next=null,qh($,U.props,K,R),Jh($,U.children,R),uo(),Mc($),go()},q=($,U,R,K,ee,D,ne,ae,k=!1)=>{const A=$&&$.children,V=$?$.shapeFlag:0,Q=U.children,{patchFlag:me,shapeFlag:pe}=U;if(me>0){if(me&128){Z(A,Q,R,K,ee,D,ne,ae,k);return}else if(me&256){se(A,Q,R,K,ee,D,ne,ae,k);return}}pe&8?(V&16&&Ce(A,ee,D),Q!==A&&u(R,Q)):V&16?pe&16?Z(A,Q,R,K,ee,D,ne,ae,k):Ce(A,ee,D,!0):(V&8&&u(R,""),pe&16&&O(Q,R,K,ee,D,ne,ae,k))},se=($,U,R,K,ee,D,ne,ae,k)=>{$=$||Rn,U=U||Rn;const A=$.length,V=U.length,Q=Math.min(A,V);let me;for(me=0;meV?Ce($,ee,D,!0,!1,Q):O(U,R,K,ee,D,ne,ae,k,Q)},Z=($,U,R,K,ee,D,ne,ae,k)=>{let A=0;const V=U.length;let Q=$.length-1,me=V-1;for(;A<=Q&&A<=me;){const pe=$[A],J=U[A]=k?Oo(U[A]):mo(U[A]);if(kn(pe,J))f(pe,J,R,null,ee,D,ne,ae,k);else break;A++}for(;A<=Q&&A<=me;){const pe=$[Q],J=U[me]=k?Oo(U[me]):mo(U[me]);if(kn(pe,J))f(pe,J,R,null,ee,D,ne,ae,k);else break;Q--,me--}if(A>Q){if(A<=me){const pe=me+1,J=peme)for(;A<=Q;)H($[A],ee,D,!0),A++;else{const pe=A,J=A,N=new Map;for(A=J;A<=me;A++){const Ke=U[A]=k?Oo(U[A]):mo(U[A]);Ke.key!=null&&N.set(Ke.key,A)}let W,ge=0;const be=me-J+1;let Le=!1,Oe=0;const Ie=new Array(be);for(A=0;A=be){H(Ke,ee,D,!0);continue}let et;if(Ke.key!=null)et=N.get(Ke.key);else for(W=J;W<=me;W++)if(Ie[W-J]===0&&kn(Ke,U[W])){et=W;break}et===void 0?H(Ke,ee,D,!0):(Ie[et-J]=A+1,et>=Oe?Oe=et:Le=!0,f(Ke,U[et],R,null,ee,D,ne,ae,k),ge++)}const ct=Le?tm(Ie):Rn;for(W=ct.length-1,A=be-1;A>=0;A--){const Ke=J+A,et=U[Ke],Pn=U[Ke+1],hs=Ke+1{const{el:D,type:ne,transition:ae,children:k,shapeFlag:A}=$;if(A&6){oe($.component.subTree,U,R,K);return}if(A&128){$.suspense.move(U,R,K);return}if(A&64){ne.move($,U,R,he);return}if(ne===Be){n(D,U,R);for(let Q=0;Qae.enter(D),ee));else{const{leave:Q,delayLeave:me,afterLeave:pe}=ae,J=()=>{$.ctx.isUnmounted?a(D):n(D,U,R)},N=()=>{const W=D._isLeaving||!!D[Yt];D._isLeaving&&D[Yt](!0),ae.persisted&&!W?J():Q(D,()=>{J(),pe&&pe()})};me?me(D,J,N):N()}else n(D,U,R)},H=($,U,R,K=!1,ee=!1)=>{const{type:D,props:ne,ref:ae,children:k,dynamicChildren:A,shapeFlag:V,patchFlag:Q,dirs:me,cacheIndex:pe,memo:J}=$;if(Q===-2&&(ee=!1),ae!=null&&(uo(),La(ae,null,R,$,!0),go()),pe!=null&&(U.renderCache[pe]=void 0),V&256){U.ctx.deactivate($);return}const N=V&1&&me,W=!Kn($);let ge;if(W&&(ge=ne&&ne.onVnodeBeforeUnmount)&&bo(ge,U,$),V&6)we($.component,R,K);else{if(V&128){$.suspense.unmount(R,K);return}N&&bn($,null,U,"beforeUnmount"),V&64?$.type.remove($,U,R,he,K):A&&!A.hasOnce&&(D!==Be||Q>0&&Q&64)?Ce(A,U,R,!1,!0):(D===Be&&Q&384||!ee&&V&16)&&Ce(k,U,R),K&&fe($)}const be=J!=null&&pe==null;(W&&(ge=ne&&ne.onVnodeUnmounted)||N||be)&&Mt(()=>{ge&&bo(ge,U,$),N&&bn($,null,U,"unmounted"),be&&($.el=null)},R)},fe=$=>{const{type:U,el:R,anchor:K,transition:ee}=$;if(U===Be){Ae(R,K);return}if(U===fi){m($);return}const D=()=>{a(R),ee&&!ee.persisted&&ee.afterLeave&&ee.afterLeave()};if($.shapeFlag&1&&ee&&!ee.persisted){const{leave:ne,delayLeave:ae}=ee,k=()=>ne(R,D);ae?ae($.el,D,k):k()}else D()},Ae=($,U)=>{let R;for(;$!==U;)R=h($),a($),$=R;a(U)},we=($,U,R)=>{const{bum:K,scope:ee,job:D,subTree:ne,um:ae,m:k,a:A}=$;xu(k),xu(A),K&&pr(K),ee.stop(),D&&(D.flags|=8,H(ne,$,U,R)),ae&&Mt(ae,U),Mt(()=>{$.isUnmounted=!0},U)},Ce=($,U,R,K=!1,ee=!1,D=0)=>{for(let ne=D;ne<$.length;ne++)H($[ne],U,R,K,ee)},ce=$=>{if($.shapeFlag&6)return ce($.component.subTree);if($.shapeFlag&128)return $.suspense.next();const U=h($.anchor||$.el),R=U&&U[Bc];return R?h(R):U};let le=!1;const _e=($,U,R)=>{let K;$==null?U._vnode&&(H(U._vnode,null,null,!0),K=U._vnode.component):f(U._vnode||null,$,U,null,null,null,R),U._vnode=$,le||(le=!0,Mc(K),Fc(),le=!1)},he={p:f,um:H,m:oe,r:fe,mt:E,mc:O,pc:q,pbc:z,n:ce,o:e};return{render:_e,hydrate:void 0,createApp:Oh(_e)}}function gi({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function _n({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function em(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function pi(e,t,o=!1){const n=e.children,a=t.children;if($e(n)&&$e(a))for(let r=0;r>1,e[o[i]]0&&(t[n]=o[r-1]),o[r]=n)}}for(r=o.length,s=o[r-1];r-- >0;)o[r]=s,s=t[s];return o}function wu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:wu(t)}function xu(e){if(e)for(let t=0;te.__isSuspense;function om(e,t){t&&t.pendingBranch?$e(e)?t.effects.push(...e):t.effects.push(e):sh(e)}const Be=Symbol.for("v-fgt"),Na=Symbol.for("v-txt"),Tt=Symbol.for("v-cmt"),fi=Symbol.for("v-stc"),Do=[];let zt=null;function X(e=!1){Do.push(zt=e?null:[])}function hi(){Do.pop(),zt=Do[Do.length-1]||null}let Ia=1;function Dr(e,t=!1){Ia+=e,e<0&&zt&&t&&(zt.hasOnce=!0)}function Lu(e){return e.dynamicChildren=Ia>0?zt||Rn:null,hi(),Ia>0&&zt&&zt.push(e),e}function re(e,t,o,n,a,r){return Lu(T(e,t,o,n,a,r,!0))}function Ge(e,t,o,n,a){return Lu(Je(e,t,o,n,a,!0))}function Ma(e){return e?e.__v_isVNode===!0:!1}function kn(e,t){return e.type===t.type&&e.key===t.key}const Cu=({key:e})=>e??null,Or=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?ot(e)||it(e)||Me(e)?{i:St,r:e,k:t,f:!!o}:e:null);function T(e,t=null,o=null,n=0,a=null,r=e===Be?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Cu(t),ref:t&&Or(t),scopeId:Dc,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:St};return i?(Br(l,o),r&128&&e.normalize(l)):o&&(l.shapeFlag|=ot(o)?8:16),Ia>0&&!s&&zt&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&zt.push(l),l}const Je=nm;function nm(e,t=null,o=null,n=0,a=null,r=!1){if((!e||e===Zc)&&(e=Tt),Ma(e)){const i=Zo(e,t,!0);return o&&Br(i,o),Ia>0&&!r&&zt&&(i.shapeFlag&6?zt[zt.indexOf(e)]=i:zt.push(i)),i.patchFlag=-2,i}if(hm(e)&&(e=e.__vccOpts),t){t=am(t);let{class:i,style:l}=t;i&&!ot(i)&&(t.class=Te(i)),Ye(l)&&(wr(l)&&!$e(l)&&(l=ut({},l)),t.style=Xe(l))}const s=ot(e)?1:Au(e)?128:Er(e)?64:Ye(e)?4:Me(e)?2:0;return T(e,t,o,n,a,s,r,!0)}function am(e){return e?wr(e)||hu(e)?ut({},e):e:null}function Zo(e,t,o=!1,n=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,c=t?rm(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Cu(c),ref:t&&t.ref?o&&r?$e(r)?r.concat(Or(t)):[r,Or(t)]:Or(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Be?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Zo(e.ssContent),ssFallback:e.ssFallback&&Zo(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Sa(u,l.clone(u)),u}function gt(e=" ",t=0){return Je(Na,null,e,t)}function ve(e="",t=!1){return t?(X(),Ge(Tt,null,e)):Je(Tt,null,e)}function mo(e){return e==null||typeof e=="boolean"?Je(Tt):$e(e)?Je(Be,null,e.slice()):Ma(e)?Oo(e):Je(Na,null,String(e))}function Oo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Zo(e)}function Br(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if($e(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Br(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!hu(t)?t._ctx=St:a===3&&St&&(St.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Me(t)){if(n&65){Br(e,{default:t});return}t={default:t,_ctx:St},o=32}else t=String(t),n&64?(o=16,t=[gt(t)]):o=8;e.children=t,e.shapeFlag|=o}function rm(...e){const t={};for(let o=0;oLt||St;let jr,Fa;{const e=hr(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};jr=t("__VUE_INSTANCE_SETTERS__",o=>Lt=o),Fa=t("__VUE_SSR_SETTERS__",o=>Hn=o)}const Ra=e=>{const t=Lt;return jr(e),e.scope.on(),()=>{e.scope.off(),jr(t)}},$u=()=>{Lt&&Lt.scope.off(),jr(null)};function Eu(e){return e.vnode.shapeFlag&4}let Hn=!1;function cm(e,t=!1,o=!1){t&&Fa(t);const{props:n,children:a}=e.vnode,r=Eu(e);Vh(e,n,r,t),Xh(e,a,o||t);const s=r?um(e,t):void 0;return t&&Fa(!1),s}function um(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ph);const{setup:n}=o;if(n){uo();const a=e.setupContext=n.length>1?gm(e):null,r=Ra(e),s=Un(n,e,0,[e.props,a]),i=ec(s);if(go(),r(),(i||e.sp)&&!Kn(e)&&ai(e),i){if(s.then($u,$u),t)return s.then(l=>{Fa(!0);try{Tu(e,l,t)}finally{Fa(!1)}}).catch(l=>{_a(l,e,0)});e.asyncDep=s}else Tu(e,s)}else Pu(e)}function Tu(e,t,o){Me(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=Ec(t)),Pu(e)}function Pu(e,t,o){const n=e.type;e.render||(e.render=n.render||lo);{const a=Ra(e);uo();try{Nh(e)}finally{go(),a()}}}const dm={get(e,t){return Et(e,"get",""),e[t]}};function gm(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,dm),slots:e.slots,emit:e.emit,expose:t}}function Ur(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ec(Bn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Ta)return Ta[o](e)},has(t,o){return o in t||o in Ta}})):e.proxy}const pm=/(?:^|[-_])\w/g,fm=e=>e.replace(pm,t=>t.toUpperCase()).replace(/[-_]/g,"");function Nu(e,t=!0){return Me(e)?e.displayName||e.name:e.name||t&&e.__name}function Iu(e,t,o=!1){let n=Nu(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=r=>{for(const s in r)if(r[s]===t)return s};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?fm(n):o?"App":"Anonymous"}function hm(e){return Me(e)&&"__vccOpts"in e}const te=(e,t)=>Jf(e,t,Hn);function mi(e,t,o){try{Dr(-1);const n=arguments.length;return n===2?Ye(t)&&!$e(t)?Ma(t)?Je(e,null,[t]):Je(e,t):Je(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Ma(o)&&(o=[o]),Je(e,t,o))}finally{Dr(1)}}const mm="3.5.42";/** +`,...th(a)),console.warn(...r)}po(),Js=!1}function eh(){let e=va[va.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function th(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` +`],...oh(o))}),t}function oh({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Iu(e.component,e.type,n)}`,r=">"+o;return e.props?[a,...nh(e.props),r]:[a+r]}function nh(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Pc(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Pc(e,t,o){return ot(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:it(t)?(t=Pc(e,ze(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Me(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=ze(t),o?t:[`${e}=`,t])}function zn(e,t,o,n){try{return n?e(...n):e()}catch(a){_a(a,t,o)}}function qt(e,t,o,n){if(Me(e)){const a=zn(e,t,o,n);return a&&ec(a)&&a.catch(r=>{_a(r,t,o)}),a}if($e(e)){const a=[];for(let r=0;r>>1,a=Nt[n],r=ka(a);r=ka(o)?Nt.push(e):Nt.splice(rh(t),0,e),e.flags|=1,Ic()}}function Ic(){Cr||(Cr=Nc.then(Rc))}function sh(e){if(!$e(e))Xo&&e.id===-1?Xo.splice(Gn+1,0,e):e.flags&1||(Un.push(e),e.flags|=1);else for(let t=0;tka(o)-ka(n));if(Un.length=0,Xo){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Rc(e){try{for(fo=0;fo{n._d&&Dr(-1);const r=$r(t),s=Do.length;let i;try{i=e(...a)}finally{for(let l=Do.length;l>s;l--)hi();$r(r),n._d&&Dr(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Wt(e,t){if(St===null)return e;const o=zr(St),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&Me(t)?t.call(n&&n.proxy):t}}function ih(){return!!(yo()||vn)}const lh=Symbol.for("v-scx"),ch=()=>Pe(lh);function uh(e,t){return Qs(e,null,t)}function Re(e,t,o){return Qs(e,t,o)}function Qs(e,t,o=Qe){const{immediate:n,deep:a,flush:r,once:s}=o,i=ut({},o),l=t&&n||!t&&r!=="post";let c;if(Hn){if(r==="sync"){const w=ch();c=w.__watcherHandles||(w.__watcherHandles=[])}else if(!l){const w=()=>{};return w.stop=lo,w.resume=lo,w.pause=lo,w}}const u=Lt;i.call=(w,x,f)=>qt(w,u,x,f);let g=!1;r==="post"?i.scheduler=w=>{Mt(w,u&&u.suspense)}:r!=="sync"&&(g=!0,i.scheduler=(w,x)=>{x?w():Zs(w)}),i.augmentJob=w=>{t&&(w.flags|=4),g&&(w.flags|=2,u&&(w.id=u.uid,w.i=u))};const h=Qf(e,t,i);return Hn&&(c?c.push(h):l&&h()),h}function dh(e,t,o){const n=this.proxy,a=ot(e)?e.includes(".")?Oc(n,e):()=>n[e]:e.bind(n,n);let r;Me(t)?r=t:(r=t.handler,o=t);const s=Ra(this),i=Qs(a,r.bind(n),o);return s(),i}function Oc(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,yn=e=>e&&(e.disabled||e.disabled===""),ph=e=>e&&(e.defer||e.defer===""),jc=e=>typeof SVGElement<"u"&&e instanceof SVGElement,zc=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ei=(e,t)=>{const o=e&&e.to;return ot(o)?t?t(o):null:o},gh={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,r,s,i,l,c){const{mc:u,pc:g,pbc:h,o:{insert:w,querySelector:x,createText:f,createComment:b,parentNode:y}}=c,v=yn(t.props);let{dynamicChildren:p}=t;const m=(L,O,S)=>{L.shapeFlag&16&&u(L.children,O,S,a,r,s,i,l)},d=(L=t)=>{const O=yn(L.props),S=L.target=ei(L.props,x),U=ti(S,L,f,w);S&&(s!=="svg"&&jc(S)?s="svg":s!=="mathml"&&zc(S)&&(s="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(S),O||(m(L,S,U),xa(L,!1)))},_=L=>{const O=()=>{if(Jo.get(L)===O){if(Jo.delete(L),yn(L.props)){const S=y(L.el)||o;m(L,S,L.anchor),xa(L,!0)}d(L)}};Jo.set(L,O),Mt(O,r)};if(e==null){const L=t.el=f(""),O=t.anchor=f("");if(w(L,o,n),w(O,o,n),ph(t.props)||r&&r.pendingBranch){_(t);return}v&&(m(t,o,O),xa(t,!0)),d()}else{t.el=e.el;const L=t.anchor=e.anchor,O=Jo.get(e);if(O){O.flags|=8,Jo.delete(e),_(t);return}t.targetStart=e.targetStart;const S=t.target=e.target,U=t.targetAnchor=e.targetAnchor,G=yn(e.props),j=G?o:S,M=G?L:U;if(s==="svg"||jc(S)?s="svg":(s==="mathml"||zc(S))&&(s="mathml"),p?(h(e.dynamicChildren,p,j,a,r,s,i),gi(e,t,!0)):l||g(e,t,j,M,a,r,s,i,!1),v)G?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Tr(t,o,L,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const E=ei(t.props,x);E&&(t.target=E,Tr(t,E,null,c,0))}else G&&Tr(t,S,U,c,1);xa(t,v)}},remove(e,t,o,{um:n,o:{remove:a}},r){const{shapeFlag:s,children:i,anchor:l,targetStart:c,targetAnchor:u,target:g,props:h}=e,w=yn(h),x=r||!w,f=Jo.get(e);if(f&&(f.flags|=8,Jo.delete(e)),g&&(a(c),a(u)),r&&a(l),!f&&(w||g)&&s&16)for(let b=0;b{e.isMounted=!0}),ho(()=>{e.isUnmounting=!0}),e}const Xt=[Function,Array],Uc={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Xt,onEnter:Xt,onAfterEnter:Xt,onEnterCancelled:Xt,onBeforeLeave:Xt,onLeave:Xt,onAfterLeave:Xt,onLeaveCancelled:Xt,onBeforeAppear:Xt,onAppear:Xt,onAfterAppear:Xt,onAppearCancelled:Xt},Gc=e=>{const t=e.subTree;return t.component?Gc(t.component):t},bh={name:"BaseTransition",props:Uc,setup(e,{slots:t}){const o=yo(),n=mh();return()=>{const a=t.default&&Vc(t.default(),!0),r=a&&a.length?Kc(a):o.subTree?ve():void 0;if(!r)return;const s=ze(e),{mode:i}=s;if(n.isLeaving)return ni(r);const l=Pr(r);if(!l)return ni(r);let c=oi(l,s,n,o,g=>c=g);l.type!==Tt&&Sa(l,c);let u=o.subTree&&Pr(o.subTree);if(u&&u.type!==Tt&&!kn(u,l)&&Gc(o).type!==Tt){let g=oi(u,s,n,o);if(Sa(u,g),i==="out-in"&&l.type!==Tt)return n.isLeaving=!0,g.afterLeave=()=>{n.isLeaving=!1,o.job.flags&8||o.update(),delete g.afterLeave,u=void 0},ni(r);i==="in-out"&&l.type!==Tt?g.delayLeave=(h,w,x)=>{const f=Hc(n,u);f[String(u.key)]=u,h[Yt]=()=>{w(),h[Yt]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{x(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return r}}};function Kc(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Tt){t=o;break}}return t}const yh=bh;function Hc(e,t){const{leavingVNodes:o}=e;let n=o.get(t.type);return n||(n=Object.create(null),o.set(t.type,n)),n}function oi(e,t,o,n,a){const{appear:r,mode:s,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:g,onBeforeLeave:h,onLeave:w,onAfterLeave:x,onLeaveCancelled:f,onBeforeAppear:b,onAppear:y,onAfterAppear:v,onAppearCancelled:p}=t,m=String(e.key),d=Hc(o,e),_=(S,U)=>{S&&qt(S,n,9,U)},L=(S,U)=>{const G=U[1];_(S,U),$e(S)?S.every(j=>j.length<=1)&&G():S.length<=1&&G()},O={mode:s,persisted:i,beforeEnter(S){let U=l;if(!o.isMounted)if(r)U=b||l;else return;S[Yt]&&S[Yt](!0);const G=d[m];G&&kn(e,G)&&G.el[Yt]&&G.el[Yt](),_(U,[S])},enter(S){if(d[m]===e)return;let U=c,G=u,j=g;if(!o.isMounted)if(r)U=y||c,G=v||u,j=p||g;else return;let M=!1;S[wa]=C=>{M||(M=!0,C?_(j,[S]):_(G,[S]),O.delayedLeave&&O.delayedLeave(),S[wa]=void 0)};const E=S[wa].bind(null,!1);U?L(U,[S,E]):E()},leave(S,U){const G=String(e.key);if(S[wa]&&S[wa](!0),o.isUnmounting)return U();_(h,[S]);let j=!1;S[Yt]=E=>{j||(j=!0,U(),E?_(f,[S]):_(x,[S]),S[Yt]=void 0,d[G]===e&&delete d[G])};const M=S[Yt].bind(null,!1);d[G]=e,w?L(w,[S,M]):M()},clone(S){const U=oi(S,t,o,n,a);return a&&a(U),U}};return O}function ni(e){if($a(e))return e=Zo(e),e.children=null,e}function Pr(e){if(!$a(e))return Er(e.type)&&e.children?Kc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&Me(o.default))return o.default()}}function Sa(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Sa(Er(o.type)&&Pr(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vc(e,t=!1,o){let n=[],a=0;for(let r=0;r1)for(let r=0;rLa(f,t&&($e(t)?t[b]:t),o,n,a));return}if(Kn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&La(e,t,o,n.component.subTree);return}const r=n.shapeFlag&4?zr(n.component):n.el,s=a?null:r,{i,r:l}=e,c=t&&t.r,u=i.refs===Qe?i.refs={}:i.refs,g=i.setupState,h=ze(g),w=g===Qe?Zl:f=>qc(u,f)?!1:We(h,f),x=(f,b)=>!(b&&qc(u,b));if(c!=null&&c!==l){if(Wc(t),ot(c))u[c]=null,w(c)&&(g[c]=null);else if(it(c)){const f=t;x(c,f.k)&&(c.value=null),f.k&&(u[f.k]=null)}}if(Me(l))zn(l,i,12,[s,u]);else{const f=ot(l),b=it(l);if(f||b){const y=()=>{if(e.f){const v=f?w(l)?g[l]:u[l]:x()||!e.k?l.value:u[e.k];if(a)$e(v)&&Fs(v,r);else if($e(v))v.includes(r)||v.push(r);else if(f)u[l]=[r],w(l)&&(g[l]=u[l]);else{const p=[r];x(l,e.k)&&(l.value=p),e.k&&(u[e.k]=p)}}else f?(u[l]=s,w(l)&&(g[l]=s)):b&&(x(l,e.k)&&(l.value=s),e.k&&(u[e.k]=s))};if(s){const v=()=>{y(),Nr.delete(e)};v.id=-1,Nr.set(e,v),Mt(v,o)}else Wc(e),y()}}}function Wc(e){const t=Nr.get(e);t&&(t.flags|=8,Nr.delete(e))}const Yc=e=>e.nodeType===8;hr().requestIdleCallback,hr().cancelIdleCallback;function vh(e,t){if(Yc(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(Yc(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const Kn=e=>!!e.type.__asyncLoader;function Ca(e){Me(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let c=null,u,g=0;const h=()=>(g++,c=null,w()),w=()=>{let x;return c||(x=c=t().catch(f=>{if(f=f instanceof Error?f:new Error(String(f)),l)return new Promise((b,y)=>{l(f,()=>b(h()),()=>y(f),g+1)});throw f}).then(f=>x!==c&&c?c:(f&&(f.__esModule||f[Symbol.toStringTag]==="Module")&&(f=f.default),u=f,f)))};return Aa({name:"AsyncComponentWrapper",__asyncLoader:w,__asyncHydrate(x,f,b){const y=x.isConnected;let v=!1;(f.bu||(f.bu=[])).push(()=>v=!0);const p=()=>{v||!x.parentNode||y&&!x.isConnected||b()},m=r?()=>{const d=r(p,_=>vh(x,_));d&&(f.bum||(f.bum=[])).push(d)}:p;u?m():w().then(()=>!f.isUnmounted&&m())},get __asyncResolved(){return u},setup(){const x=Lt;if(ai(x),u)return()=>Ir(u,x);const f=d=>{c=null,_a(d,x,13,!n)};if(i&&x.suspense||Hn)return w().then(d=>()=>Ir(d,x)).catch(d=>(f(d),()=>n?Je(n,{error:d}):null));const b=ue(!1),y=ue(),v=ue(!!a);let p,m;return Ea(()=>{p!=null&&clearTimeout(p),m!=null&&clearTimeout(m)}),a&&(m=setTimeout(()=>{x.isUnmounted||(v.value=!1)},a)),s!=null&&(p=setTimeout(()=>{if(!x.isUnmounted&&!b.value&&!y.value){const d=new Error(`Async component timed out after ${s}ms.`);f(d),y.value=d}},s)),w().then(()=>{x.isUnmounted||(b.value=!0,x.parent&&$a(x.parent.vnode)&&x.parent.update())}).catch(d=>{if(x.isUnmounted){c=null;return}f(d),y.value=d}),()=>{if(b.value&&u)return Ir(u,x);if(y.value&&n)return Je(n,{error:y.value});if(o&&!v.value)return Ir(o,x)}}})}function Ir(e,t){const{ref:o,props:n,children:a,ce:r}=t.vnode,s=Je(e,n,a);return s.ref=o,s.ce=r,delete t.vnode.ce,s}const $a=e=>e.type.__isKeepAlive;function _h(e,t){Xc(e,"a",t)}function kh(e,t){Xc(e,"da",t)}function Xc(e,t,o=Lt){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Mr(t,n,o),o){let a=o.parent;for(;a&&a.parent;)$a(a.parent.vnode)&&xh(n,t,o,a),a=a.parent}}function xh(e,t,o,n){const a=Mr(t,e,n,!0);Ea(()=>{Fs(n[t],a)},o)}function Mr(e,t,o=Lt,n=!1){if(o){const a=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...s)=>{uo();const i=Ra(o),l=qt(t,o,e,s);return i(),po(),l});return n?a.unshift(r):a.push(r),r}}const Fo=e=>(t,o=Lt)=>{(!Hn||e==="sp")&&Mr(e,(...n)=>t(...n),o)},Jc=Fo("bm"),Jt=Fo("m"),wh=Fo("bu"),Sh=Fo("u"),ho=Fo("bum"),Ea=Fo("um"),Ah=Fo("sp"),Lh=Fo("rtg"),Ch=Fo("rtc");function $h(e,t=Lt){Mr("ec",e,t)}const Eh="components",Zc=Symbol.for("v-ndc");function Qc(e){return ot(e)?Th(Eh,e,!1)||e:e||Zc}function Th(e,t,o=!0,n=!1){const a=St||Lt;if(a){const r=a.type;{const i=Nu(r,!1);if(i&&(i===t||i===_t(t)||i===pr(_t(t))))return r}const s=eu(a[e]||r[e],t)||eu(a.appContext[e],t);return!s&&n?r:s}}function eu(e,t){return e&&(e[t]||e[_t(t)]||e[pr(_t(t))])}function At(e,t,o,n){let a;const r=o,s=$e(e);if(s||ot(e)){const i=s&&No(e);let l=!1,c=!1;i&&(l=!jt(e),c=Io(e),e=br(e)),a=new Array(e.length);for(let u=0,g=e.length;ut(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return t!=="default"&&(c.name=t),X(),Ge(Be,null,[Je("slot",c,n&&n())],u?-2:64)}let s=e[t];s&&s._c&&(s._d=!1);const i=Do.length;X();let l;try{const c=s&&tu(s(o)),u=o.key||r||c&&c.key;l=Ge(Be,{key:(u&&!Bt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=Do.length;u>i;u--)hi();throw c}finally{s&&s._c&&(s._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function tu(e){return e.some(t=>Ma(t)?!(t.type===Tt||t.type===Be&&!tu(t.children)):!0)?e:null}const ri=e=>e?Eu(e)?zr(e):ri(e.parent):null,Ta=ut(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ri(e.parent),$root:e=>ri(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ru(e),$forceUpdate:e=>e.f||(e.f=()=>{Zs(e.update)}),$nextTick:e=>e.n||(e.n=zt.bind(e.proxy)),$watch:e=>dh.bind(e)}),si=(e,t)=>e!==Qe&&!e.__isScriptSetup&&We(e,t),Ph={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(t[0]!=="$"){const h=s[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return r[t]}else{if(si(n,t))return s[t]=1,n[t];if(a!==Qe&&We(a,t))return s[t]=2,a[t];if(We(r,t))return s[t]=3,r[t];if(o!==Qe&&We(o,t))return s[t]=4,o[t];ii&&(s[t]=0)}}const c=Ta[t];let u,g;if(c)return t==="$attrs"&&Et(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==Qe&&We(o,t))return s[t]=4,o[t];if(g=l.config.globalProperties,We(g,t))return g[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:r}=e;return si(a,t)?(a[t]=o,!0):n!==Qe&&We(n,t)?(n[t]=o,!0):We(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:r,type:s}},i){let l;return!!(o[i]||e!==Qe&&i[0]!=="$"&&We(e,i)||si(t,i)||We(r,i)||We(n,i)||We(Ta,i)||We(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:We(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function ou(e){return $e(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let ii=!0;function Nh(e){const t=ru(e),o=e.proxy,n=e.ctx;ii=!1,t.beforeCreate&&nu(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:c,created:u,beforeMount:g,mounted:h,beforeUpdate:w,updated:x,activated:f,deactivated:b,beforeDestroy:y,beforeUnmount:v,destroyed:p,unmounted:m,render:d,renderTracked:_,renderTriggered:L,errorCaptured:O,serverPrefetch:S,expose:U,inheritAttrs:G,components:j,directives:M,filters:E}=t;if(c&&Ih(c,n,null),s)for(const F in s){const q=s[F];Me(q)&&(n[F]=q.bind(o))}if(a){const F=a.call(o,o);Ye(F)&&(e.data=On(F))}if(ii=!0,r)for(const F in r){const q=r[F],se=Me(q)?q.bind(o,o):Me(q.get)?q.get.bind(o,o):lo,Z=!Me(q)&&Me(q.set)?q.set.bind(o):lo,oe=te({get:se,set:Z});Object.defineProperty(n,F,{enumerable:!0,configurable:!0,get:()=>oe.value,set:H=>oe.value=H})}if(i)for(const F in i)au(i[F],n,o,F);if(l){const F=Me(l)?l.call(o):l;Reflect.ownKeys(F).forEach(q=>{kt(q,F[q])})}u&&nu(u,e,"c");function P(F,q){$e(q)?q.forEach(se=>F(se.bind(o))):q&&F(q.bind(o))}if(P(Jc,g),P(Jt,h),P(wh,w),P(Sh,x),P(_h,f),P(kh,b),P($h,O),P(Ch,_),P(Lh,L),P(ho,v),P(Ea,m),P(Ah,S),$e(U))if(U.length){const F=e.exposed||(e.exposed={});U.forEach(q=>{Object.defineProperty(F,q,{get:()=>o[q],set:se=>o[q]=se,enumerable:!0})})}else e.exposed||(e.exposed={});d&&e.render===lo&&(e.render=d),G!=null&&(e.inheritAttrs=G),j&&(e.components=j),M&&(e.directives=M),S&&ai(e)}function Ih(e,t,o=lo){$e(e)&&(e=li(e));for(const n in e){const a=e[n];let r;Ye(a)?"default"in a?r=Pe(a.from||n,a.default,!0):r=Pe(a.from||n):r=Pe(a),it(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function nu(e,t,o){qt($e(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function au(e,t,o,n){let a=n.includes(".")?Oc(o,n):()=>o[n];if(ot(e)){const r=t[e];Me(r)&&Re(a,r)}else if(Me(e))Re(a,e.bind(o));else if(Ye(e))if($e(e))e.forEach(r=>au(r,t,o,n));else{const r=Me(e.handler)?e.handler.bind(o):t[e.handler];Me(r)&&Re(a,r,e)}}function ru(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Fr(l,c,s,!0)),Fr(l,t,s)),Ye(t)&&r.set(t,l),l}function Fr(e,t,o,n=!1){const{mixins:a,extends:r}=t;r&&Fr(e,r,o,!0),a&&a.forEach(s=>Fr(e,s,o,!0));for(const s in t)if(!(n&&s==="expose")){const i=Mh[s]||o&&o[s];e[s]=i?i(e[s],t[s]):t[s]}return e}const Mh={data:su,props:iu,emits:iu,methods:Pa,computed:Pa,beforeCreate:It,created:It,beforeMount:It,mounted:It,beforeUpdate:It,updated:It,beforeDestroy:It,beforeUnmount:It,destroyed:It,unmounted:It,activated:It,deactivated:It,errorCaptured:It,serverPrefetch:It,components:Pa,directives:Pa,watch:Rh,provide:su,inject:Fh};function su(e,t){return t?e?function(){return ut(Me(e)?e.call(this,this):e,Me(t)?t.call(this,this):t)}:t:e}function Fh(e,t){return Pa(li(e),li(t))}function li(e){if($e(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${_t(t)}Modifiers`]||e[`${Vt(t)}Modifiers`];function jh(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Qe;let a=o;const r=t.startsWith("update:"),s=r&&Bh(n,t.slice(7));s&&(s.trim&&(a=o.map(u=>ot(u)?u.trim():u)),s.number&&(a=a.map(fr)));let i,l=n[i=Rs(t)]||n[i=Rs(_t(t))];!l&&r&&(l=n[i=Rs(Vt(t))]),l&&qt(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,qt(c,e,6,a)}}const zh=new WeakMap;function cu(e,t,o=!1){const n=o?zh:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!Me(e)){const l=c=>{const u=cu(c,t,!0);u&&(i=!0,ut(s,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(Ye(e)&&n.set(e,null),null):($e(r)?r.forEach(l=>s[l]=null):ut(s,r),Ye(e)&&n.set(e,s),s)}function Rr(e,t){return!e||!ir(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),We(e,t[0].toLowerCase()+t.slice(1))||We(e,Vt(t))||We(e,t))}function gC(){}function uu(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:c,renderCache:u,props:g,data:h,setupState:w,ctx:x,inheritAttrs:f}=e,b=$r(e);let y,v;try{if(o.shapeFlag&4){const m=a||n,d=m;y=mo(c.call(d,m,u,g,w,h,x)),v=i}else{const m=t;y=mo(m.length>1?m(g,{attrs:i,slots:s,emit:l}):m(g,null)),v=t.props?i:Uh(i)}}catch(m){Do.length=0,_a(m,e,1),y=Je(Tt)}let p=y;if(v&&f!==!1){const m=Object.keys(v),{shapeFlag:d}=p;m.length&&d&7&&(r&&m.some(lr)&&(v=Gh(v,r)),p=Zo(p,v,!1,!0))}if(o.dirs&&(p=Zo(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(o.dirs):o.dirs),o.transition){const m=Er(p.type)&&Pr(p)||p;Sa(m,o.transition)}return y=p,$r(b),y}const Uh=e=>{let t;for(const o in e)(o==="class"||o==="style"||ir(o))&&((t||(t={}))[o]=e[o]);return t},Gh=(e,t)=>{const o={};for(const n in e)(!lr(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function Kh(e,t,o){const{props:n,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?du(n,s,c):!!s;if(l&8){const u=t.dynamicProps;for(let g=0;gObject.create(gu),hu=e=>Object.getPrototypeOf(e)===gu;function Vh(e,t,o,n=!1){const a={},r=fu();e.propsDefaults=Object.create(null),mu(e,t,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);o?e.props=n?a:Kf(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function qh(e,t,o,n){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=ze(a),[l]=e.propsOptions;let c=!1;if((n||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let g=0;g{l=!0;const[h,w]=bu(g,t,!0);ut(s,h),w&&i.push(...w)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return Ye(e)&&n.set(e,Rn),Rn;if($e(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",di=e=>$e(e)?e.map(mo):[mo(e)],Yh=(e,t,o)=>{if(t._n)return t;const n=Dt((...a)=>di(t(...a)),o);return n._c=!1,n},vu=(e,t,o)=>{const n=e._ctx;for(const a in e){if(ui(a))continue;const r=e[a];if(Me(r))t[a]=Yh(a,r,n);else if(r!=null){const s=di(r);t[a]=()=>s}}},_u=(e,t)=>{const o=di(t);e.slots.default=()=>o},ku=(e,t,o)=>{for(const n in t)(o||!ui(n))&&(e[n]=t[n])},Xh=(e,t,o)=>{const n=e.slots=fu();if(e.vnode.shapeFlag&32){const a=t._;a?(ku(n,t,o),o&&oc(n,"_",a,!0)):vu(t,n)}else t&&_u(e,t)},Jh=(e,t,o)=>{const{vnode:n,slots:a}=e;let r=!0,s=Qe;if(n.shapeFlag&32){const i=t._;i?o&&i===1?r=!1:ku(a,t,o):(r=!t.$stable,vu(t,a)),s=t}else t&&(_u(e,t),s={default:1});if(r)for(const i in a)!ui(i)&&s[i]==null&&delete a[i]},Mt=om;function Zh(e){return Qh(e)}function Qh(e,t){const o=hr();o.__VUE__=!0;const{insert:n,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:c,setElementText:u,parentNode:g,nextSibling:h,setScopeId:w=lo,insertStaticContent:x}=e,f=($,z,R,K=null,ee=null,D=null,ne=void 0,ae=null,k=!!z.dynamicChildren)=>{if($===z)return;$&&!kn($,z)&&(K=ce($),H($,ee,D,!0),$=null),z.patchFlag===-2&&(k=!1,z.dynamicChildren=null);const{type:A,ref:V,shapeFlag:Q}=z;switch(A){case Na:b($,z,R,K);break;case Tt:y($,z,R,K);break;case fi:$==null&&v(z,R,K,ne);break;case Be:j($,z,R,K,ee,D,ne,ae,k);break;default:Q&1?d($,z,R,K,ee,D,ne,ae,k):Q&6?M($,z,R,K,ee,D,ne,ae,k):(Q&64||Q&128)&&A.process($,z,R,K,ee,D,ne,ae,k,he)}V!=null&&ee?La(V,$&&$.ref,D,z||$,!z):V==null&&$&&$.ref!=null&&La($.ref,null,D,$,!0)},b=($,z,R,K)=>{if($==null)n(z.el=i(z.children),R,K);else{const ee=z.el=$.el;z.children!==$.children&&c(ee,z.children)}},y=($,z,R,K)=>{$==null?n(z.el=l(z.children||""),R,K):z.el=$.el},v=($,z,R,K)=>{[$.el,$.anchor]=x($.children,z,R,K,$.el,$.anchor)},p=({el:$,anchor:z},R,K)=>{let ee;for(;$&&$!==z;)ee=h($),n($,R,K),$=ee;n(z,R,K)},m=({el:$,anchor:z})=>{let R;for(;$&&$!==z;)R=h($),a($),$=R;a(z)},d=($,z,R,K,ee,D,ne,ae,k)=>{if(z.type==="svg"?ne="svg":z.type==="math"&&(ne="mathml"),$==null)_(z,R,K,ee,D,ne,ae,k);else{const A=$.el&&$.el._isVueCE?$.el:null;try{A&&A._beginPatch(),S($,z,ee,D,ne,ae,k)}finally{A&&A._endPatch()}}},_=($,z,R,K,ee,D,ne,ae)=>{let k,A;const{props:V,shapeFlag:Q,transition:me,dirs:ge}=$;if(k=$.el=s($.type,D,V&&V.is,V),Q&8?u(k,$.children):Q&16&&O($.children,k,null,K,ee,pi($,D),ne,ae),ge&&bn($,null,K,"created"),L(k,$,$.scopeId,ne,K),V){for(const N in V)N!=="value"&&!ga(N)&&r(k,N,null,V[N],D,K);"value"in V&&r(k,"value",null,V.value,D),(A=V.onVnodeBeforeMount)&&bo(A,K,$)}ge&&bn($,null,K,"beforeMount");const J=em(ee,me);J&&me.beforeEnter(k),n(k,z,R),((A=V&&V.onVnodeMounted)||J||ge)&&Mt(()=>{try{A&&bo(A,K,$),J&&me.enter(k),ge&&bn($,null,K,"mounted")}finally{}},ee)},L=($,z,R,K,ee)=>{if(R&&w($,R),K)for(let D=0;D{for(let A=k;A<$.length;A++){const V=$[A]=ae?Oo($[A]):mo($[A]);f(null,V,z,R,K,ee,D,ne,ae)}},S=($,z,R,K,ee,D,ne)=>{const ae=z.el=$.el;let{patchFlag:k,dynamicChildren:A,dirs:V}=z;k|=$.patchFlag&16;const Q=$.props||Qe,me=z.props||Qe;let ge;if(R&&_n(R,!1),(ge=me.onVnodeBeforeUpdate)&&bo(ge,R,z,$),V&&bn(z,$,R,"beforeUpdate"),R&&_n(R,!0),A&&(!$.dynamicChildren||$.dynamicChildren.length!==A.length)&&(k=0,ne=!1,A=null),(Q.innerHTML&&me.innerHTML==null||Q.textContent&&me.textContent==null)&&u(ae,""),A?U($.dynamicChildren,A,ae,R,K,pi(z,ee),D):ne||q($,z,ae,null,R,K,pi(z,ee),D,!1),k>0){if(k&16)G(ae,Q,me,R,ee);else if(k&2&&Q.class!==me.class&&r(ae,"class",null,me.class,ee),k&4&&r(ae,"style",Q.style,me.style,ee),k&8){const J=z.dynamicProps;for(let N=0;N{ge&&bo(ge,R,z,$),V&&bn(z,$,R,"updated")},K)},U=($,z,R,K,ee,D,ne)=>{for(let ae=0;ae{if(z!==R){if(z!==Qe)for(const D in z)!ga(D)&&!(D in R)&&r($,D,z[D],null,ee,K);for(const D in R){if(ga(D))continue;const ne=R[D],ae=z[D];ne!==ae&&D!=="value"&&r($,D,ae,ne,ee,K)}"value"in R&&r($,"value",z.value,R.value,ee)}},j=($,z,R,K,ee,D,ne,ae,k)=>{const A=z.el=$?$.el:i(""),V=z.anchor=$?$.anchor:i("");let{patchFlag:Q,dynamicChildren:me,slotScopeIds:ge}=z;ge&&(ae=ae?ae.concat(ge):ge),$==null?(n(A,R,K),n(V,R,K),O(z.children||[],R,V,ee,D,ne,ae,k)):Q>0&&Q&64&&me&&$.dynamicChildren&&$.dynamicChildren.length===me.length?(U($.dynamicChildren,me,R,ee,D,ne,ae),(z.key!=null||ee&&z===ee.subTree)&&gi($,z,!0)):q($,z,R,V,ee,D,ne,ae,k)},M=($,z,R,K,ee,D,ne,ae,k)=>{z.slotScopeIds=ae,$==null?z.shapeFlag&512?ee.ctx.activate(z,R,K,ne,k):E(z,R,K,ee,D,ne,k):C($,z,k)},E=($,z,R,K,ee,D,ne)=>{const ae=$.component=lm($,K,ee);if($a($)&&(ae.ctx.renderer=he),cm(ae,!1,ne),ae.asyncDep){if(ee&&ee.registerDep(ae,P,ne),!$.el){const k=ae.subTree=Je(Tt);y(null,k,z,R),$.placeholder=k.el}}else P(ae,$,z,R,ee,D,ne)},C=($,z,R)=>{const K=z.component=$.component;if(Kh($,z,R))if(K.asyncDep&&!K.asyncResolved){F(K,z,R);return}else K.next=z,K.update();else z.el=$.el,K.vnode=z},P=($,z,R,K,ee,D,ne)=>{const ae=()=>{if($.isMounted){let{next:Q,bu:me,u:ge,parent:J,vnode:N}=$;{const Oe=xu($);if(Oe){Q&&(Q.el=N.el,F($,Q,ne)),Oe.asyncDep.then(()=>{Mt(()=>{$.isUnmounted||A()},ee)});return}}let W=Q,pe;_n($,!1),Q?(Q.el=N.el,F($,Q,ne)):Q=N,me&&gr(me),(pe=Q.props&&Q.props.onVnodeBeforeUpdate)&&bo(pe,J,Q,N),_n($,!0);const be=uu($),Le=$.subTree;$.subTree=be,f(Le,be,g(Le.el),ce(Le),$,ee,D),Q.el=be.el,W===null&&Hh($,be.el),ge&&Mt(ge,ee),(pe=Q.props&&Q.props.onVnodeUpdated)&&Mt(()=>bo(pe,J,Q,N),ee)}else{let Q;const{el:me,props:ge}=z,{bm:J,m:N,parent:W,root:pe,type:be}=$,Le=Kn(z);_n($,!1),J&&gr(J),!Le&&(Q=ge&&ge.onVnodeBeforeMount)&&bo(Q,W,z),_n($,!0);{pe.ce&&pe.ce._hasShadowRoot()&&pe.ce._injectChildStyle(be,$.parent?$.parent.type:void 0);const Oe=$.subTree=uu($);f(null,Oe,R,K,$,ee,D),z.el=Oe.el}if(N&&Mt(N,ee),!Le&&(Q=ge&&ge.onVnodeMounted)){const Oe=z;Mt(()=>bo(Q,W,Oe),ee)}(z.shapeFlag&256||W&&Kn(W.vnode)&&W.vnode.shapeFlag&256)&&$.a&&Mt($.a,ee),$.isMounted=!0,z=R=K=null}};$.scope.on();const k=$.effect=new uc(ae);$.scope.off();const A=$.update=k.run.bind(k),V=$.job=k.runIfDirty.bind(k);V.i=$,V.id=$.uid,k.scheduler=()=>Zs(V),_n($,!0),A()},F=($,z,R)=>{z.component=$;const K=$.vnode.props;$.vnode=z,$.next=null,qh($,z.props,K,R),Jh($,z.children,R),uo(),Mc($),po()},q=($,z,R,K,ee,D,ne,ae,k=!1)=>{const A=$&&$.children,V=$?$.shapeFlag:0,Q=z.children,{patchFlag:me,shapeFlag:ge}=z;if(me>0){if(me&128){Z(A,Q,R,K,ee,D,ne,ae,k);return}else if(me&256){se(A,Q,R,K,ee,D,ne,ae,k);return}}ge&8?(V&16&&Ce(A,ee,D),Q!==A&&u(R,Q)):V&16?ge&16?Z(A,Q,R,K,ee,D,ne,ae,k):Ce(A,ee,D,!0):(V&8&&u(R,""),ge&16&&O(Q,R,K,ee,D,ne,ae,k))},se=($,z,R,K,ee,D,ne,ae,k)=>{$=$||Rn,z=z||Rn;const A=$.length,V=z.length,Q=Math.min(A,V);let me;for(me=0;meV?Ce($,ee,D,!0,!1,Q):O(z,R,K,ee,D,ne,ae,k,Q)},Z=($,z,R,K,ee,D,ne,ae,k)=>{let A=0;const V=z.length;let Q=$.length-1,me=V-1;for(;A<=Q&&A<=me;){const ge=$[A],J=z[A]=k?Oo(z[A]):mo(z[A]);if(kn(ge,J))f(ge,J,R,null,ee,D,ne,ae,k);else break;A++}for(;A<=Q&&A<=me;){const ge=$[Q],J=z[me]=k?Oo(z[me]):mo(z[me]);if(kn(ge,J))f(ge,J,R,null,ee,D,ne,ae,k);else break;Q--,me--}if(A>Q){if(A<=me){const ge=me+1,J=geme)for(;A<=Q;)H($[A],ee,D,!0),A++;else{const ge=A,J=A,N=new Map;for(A=J;A<=me;A++){const Ke=z[A]=k?Oo(z[A]):mo(z[A]);Ke.key!=null&&N.set(Ke.key,A)}let W,pe=0;const be=me-J+1;let Le=!1,Oe=0;const Ie=new Array(be);for(A=0;A=be){H(Ke,ee,D,!0);continue}let et;if(Ke.key!=null)et=N.get(Ke.key);else for(W=J;W<=me;W++)if(Ie[W-J]===0&&kn(Ke,z[W])){et=W;break}et===void 0?H(Ke,ee,D,!0):(Ie[et-J]=A+1,et>=Oe?Oe=et:Le=!0,f(Ke,z[et],R,null,ee,D,ne,ae,k),pe++)}const ct=Le?tm(Ie):Rn;for(W=ct.length-1,A=be-1;A>=0;A--){const Ke=J+A,et=z[Ke],Pn=z[Ke+1],hs=Ke+1{const{el:D,type:ne,transition:ae,children:k,shapeFlag:A}=$;if(A&6){oe($.component.subTree,z,R,K);return}if(A&128){$.suspense.move(z,R,K);return}if(A&64){ne.move($,z,R,he);return}if(ne===Be){n(D,z,R);for(let Q=0;Qae.enter(D),ee));else{const{leave:Q,delayLeave:me,afterLeave:ge}=ae,J=()=>{$.ctx.isUnmounted?a(D):n(D,z,R)},N=()=>{const W=D._isLeaving||!!D[Yt];D._isLeaving&&D[Yt](!0),ae.persisted&&!W?J():Q(D,()=>{J(),ge&&ge()})};me?me(D,J,N):N()}else n(D,z,R)},H=($,z,R,K=!1,ee=!1)=>{const{type:D,props:ne,ref:ae,children:k,dynamicChildren:A,shapeFlag:V,patchFlag:Q,dirs:me,cacheIndex:ge,memo:J}=$;if(Q===-2&&(ee=!1),ae!=null&&(uo(),La(ae,null,R,$,!0),po()),ge!=null&&(z.renderCache[ge]=void 0),V&256){z.ctx.deactivate($);return}const N=V&1&&me,W=!Kn($);let pe;if(W&&(pe=ne&&ne.onVnodeBeforeUnmount)&&bo(pe,z,$),V&6)xe($.component,R,K);else{if(V&128){$.suspense.unmount(R,K);return}N&&bn($,null,z,"beforeUnmount"),V&64?$.type.remove($,z,R,he,K):A&&!A.hasOnce&&(D!==Be||Q>0&&Q&64)?Ce(A,z,R,!1,!0):(D===Be&&Q&384||!ee&&V&16)&&Ce(k,z,R),K&&fe($)}const be=J!=null&&ge==null;(W&&(pe=ne&&ne.onVnodeUnmounted)||N||be)&&Mt(()=>{pe&&bo(pe,z,$),N&&bn($,null,z,"unmounted"),be&&($.el=null)},R)},fe=$=>{const{type:z,el:R,anchor:K,transition:ee}=$;if(z===Be){Ae(R,K);return}if(z===fi){m($);return}const D=()=>{a(R),ee&&!ee.persisted&&ee.afterLeave&&ee.afterLeave()};if($.shapeFlag&1&&ee&&!ee.persisted){const{leave:ne,delayLeave:ae}=ee,k=()=>ne(R,D);ae?ae($.el,D,k):k()}else D()},Ae=($,z)=>{let R;for(;$!==z;)R=h($),a($),$=R;a(z)},xe=($,z,R)=>{const{bum:K,scope:ee,job:D,subTree:ne,um:ae,m:k,a:A}=$;wu(k),wu(A),K&&gr(K),ee.stop(),D&&(D.flags|=8,H(ne,$,z,R)),ae&&Mt(ae,z),Mt(()=>{$.isUnmounted=!0},z)},Ce=($,z,R,K=!1,ee=!1,D=0)=>{for(let ne=D;ne<$.length;ne++)H($[ne],z,R,K,ee)},ce=$=>{if($.shapeFlag&6)return ce($.component.subTree);if($.shapeFlag&128)return $.suspense.next();const z=h($.anchor||$.el),R=z&&z[Bc];return R?h(R):z};let le=!1;const _e=($,z,R)=>{let K;$==null?z._vnode&&(H(z._vnode,null,null,!0),K=z._vnode.component):f(z._vnode||null,$,z,null,null,null,R),z._vnode=$,le||(le=!0,Mc(K),Fc(),le=!1)},he={p:f,um:H,m:oe,r:fe,mt:E,mc:O,pc:q,pbc:U,n:ce,o:e};return{render:_e,hydrate:void 0,createApp:Oh(_e)}}function pi({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function _n({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function em(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function gi(e,t,o=!1){const n=e.children,a=t.children;if($e(n)&&$e(a))for(let r=0;r>1,e[o[i]]0&&(t[n]=o[r-1]),o[r]=n)}}for(r=o.length,s=o[r-1];r-- >0;)o[r]=s,s=t[s];return o}function xu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:xu(t)}function wu(e){if(e)for(let t=0;te.__isSuspense;function om(e,t){t&&t.pendingBranch?$e(e)?t.effects.push(...e):t.effects.push(e):sh(e)}const Be=Symbol.for("v-fgt"),Na=Symbol.for("v-txt"),Tt=Symbol.for("v-cmt"),fi=Symbol.for("v-stc"),Do=[];let Ut=null;function X(e=!1){Do.push(Ut=e?null:[])}function hi(){Do.pop(),Ut=Do[Do.length-1]||null}let Ia=1;function Dr(e,t=!1){Ia+=e,e<0&&Ut&&t&&(Ut.hasOnce=!0)}function Lu(e){return e.dynamicChildren=Ia>0?Ut||Rn:null,hi(),Ia>0&&Ut&&Ut.push(e),e}function re(e,t,o,n,a,r){return Lu(T(e,t,o,n,a,r,!0))}function Ge(e,t,o,n,a){return Lu(Je(e,t,o,n,a,!0))}function Ma(e){return e?e.__v_isVNode===!0:!1}function kn(e,t){return e.type===t.type&&e.key===t.key}const Cu=({key:e})=>e??null,Or=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?ot(e)||it(e)||Me(e)?{i:St,r:e,k:t,f:!!o}:e:null);function T(e,t=null,o=null,n=0,a=null,r=e===Be?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Cu(t),ref:t&&Or(t),scopeId:Dc,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:St};return i?(Br(l,o),r&128&&e.normalize(l)):o&&(l.shapeFlag|=ot(o)?8:16),Ia>0&&!s&&Ut&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ut.push(l),l}const Je=nm;function nm(e,t=null,o=null,n=0,a=null,r=!1){if((!e||e===Zc)&&(e=Tt),Ma(e)){const i=Zo(e,t,!0);return o&&Br(i,o),Ia>0&&!r&&Ut&&(i.shapeFlag&6?Ut[Ut.indexOf(e)]=i:Ut.push(i)),i.patchFlag=-2,i}if(hm(e)&&(e=e.__vccOpts),t){t=am(t);let{class:i,style:l}=t;i&&!ot(i)&&(t.class=Te(i)),Ye(l)&&(xr(l)&&!$e(l)&&(l=ut({},l)),t.style=Xe(l))}const s=ot(e)?1:Au(e)?128:Er(e)?64:Ye(e)?4:Me(e)?2:0;return T(e,t,o,n,a,s,r,!0)}function am(e){return e?xr(e)||hu(e)?ut({},e):e:null}function Zo(e,t,o=!1,n=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,c=t?rm(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Cu(c),ref:t&&t.ref?o&&r?$e(r)?r.concat(Or(t)):[r,Or(t)]:Or(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Be?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Zo(e.ssContent),ssFallback:e.ssFallback&&Zo(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Sa(u,l.clone(u)),u}function pt(e=" ",t=0){return Je(Na,null,e,t)}function ve(e="",t=!1){return t?(X(),Ge(Tt,null,e)):Je(Tt,null,e)}function mo(e){return e==null||typeof e=="boolean"?Je(Tt):$e(e)?Je(Be,null,e.slice()):Ma(e)?Oo(e):Je(Na,null,String(e))}function Oo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Zo(e)}function Br(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if($e(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Br(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!hu(t)?t._ctx=St:a===3&&St&&(St.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Me(t)){if(n&65){Br(e,{default:t});return}t={default:t,_ctx:St},o=32}else t=String(t),n&64?(o=16,t=[pt(t)]):o=8;e.children=t,e.shapeFlag|=o}function rm(...e){const t={};for(let o=0;oLt||St;let jr,Fa;{const e=hr(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};jr=t("__VUE_INSTANCE_SETTERS__",o=>Lt=o),Fa=t("__VUE_SSR_SETTERS__",o=>Hn=o)}const Ra=e=>{const t=Lt;return jr(e),e.scope.on(),()=>{e.scope.off(),jr(t)}},$u=()=>{Lt&&Lt.scope.off(),jr(null)};function Eu(e){return e.vnode.shapeFlag&4}let Hn=!1;function cm(e,t=!1,o=!1){t&&Fa(t);const{props:n,children:a}=e.vnode,r=Eu(e);Vh(e,n,r,t),Xh(e,a,o||t);const s=r?um(e,t):void 0;return t&&Fa(!1),s}function um(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ph);const{setup:n}=o;if(n){uo();const a=e.setupContext=n.length>1?pm(e):null,r=Ra(e),s=zn(n,e,0,[e.props,a]),i=ec(s);if(po(),r(),(i||e.sp)&&!Kn(e)&&ai(e),i){if(s.then($u,$u),t)return s.then(l=>{Fa(!0);try{Tu(e,l,t)}finally{Fa(!1)}}).catch(l=>{_a(l,e,0)});e.asyncDep=s}else Tu(e,s)}else Pu(e)}function Tu(e,t,o){Me(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=Ec(t)),Pu(e)}function Pu(e,t,o){const n=e.type;e.render||(e.render=n.render||lo);{const a=Ra(e);uo();try{Nh(e)}finally{po(),a()}}}const dm={get(e,t){return Et(e,"get",""),e[t]}};function pm(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,dm),slots:e.slots,emit:e.emit,expose:t}}function zr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ec(Bn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Ta)return Ta[o](e)},has(t,o){return o in t||o in Ta}})):e.proxy}const gm=/(?:^|[-_])\w/g,fm=e=>e.replace(gm,t=>t.toUpperCase()).replace(/[-_]/g,"");function Nu(e,t=!0){return Me(e)?e.displayName||e.name:e.name||t&&e.__name}function Iu(e,t,o=!1){let n=Nu(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=r=>{for(const s in r)if(r[s]===t)return s};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?fm(n):o?"App":"Anonymous"}function hm(e){return Me(e)&&"__vccOpts"in e}const te=(e,t)=>Jf(e,t,Hn);function mi(e,t,o){try{Dr(-1);const n=arguments.length;return n===2?Ye(t)&&!$e(t)?Ma(t)?Je(e,null,[t]):Je(e,t):Je(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Ma(o)&&(o=[o]),Je(e,t,o))}finally{Dr(1)}}const mm="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let bi;const Mu=typeof window<"u"&&window.trustedTypes;if(Mu)try{bi=Mu.createPolicy("vue",{createHTML:e=>e})}catch{}const Fu=bi?e=>bi.createHTML(e):e=>e,bm="http://www.w3.org/2000/svg",ym="http://www.w3.org/1998/Math/MathML",Bo=typeof document<"u"?document:null,Ru=Bo&&Bo.createElement("template"),vm={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?Bo.createElementNS(bm,e):t==="mathml"?Bo.createElementNS(ym,e):o?Bo.createElement(e,{is:o}):Bo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Bo.createTextNode(e),createComment:e=>Bo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Bo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,r){const s=o?o.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===r||!(a=a.nextSibling)););else{Ru.innerHTML=Fu(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Ru.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[s?s.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Qo="transition",Da="animation",Oa=Symbol("_vtc"),Du={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},_m=ut({},zc,Du),km=(e=>(e.displayName="Transition",e.props=_m,e))((e,{slots:t})=>mi(yh,wm(e),t)),wn=(e,t=[])=>{$e(e)?e.forEach(o=>o(...t)):e&&e(...t)},Ou=e=>e?$e(e)?e.some(t=>t.length>1):e.length>1:!1;function wm(e){const t={};for(const j in e)j in Du||(t[j]=e[j]);if(e.css===!1)return t;const{name:o="v",type:n,duration:a,enterFromClass:r=`${o}-enter-from`,enterActiveClass:s=`${o}-enter-active`,enterToClass:i=`${o}-enter-to`,appearFromClass:l=r,appearActiveClass:c=s,appearToClass:u=i,leaveFromClass:p=`${o}-leave-from`,leaveActiveClass:h=`${o}-leave-active`,leaveToClass:x=`${o}-leave-to`}=e,w=xm(a),f=w&&w[0],b=w&&w[1],{onBeforeEnter:y,onEnter:v,onEnterCancelled:g,onLeave:m,onLeaveCancelled:d,onBeforeAppear:_=y,onAppear:L=v,onAppearCancelled:O=g}=t,S=(j,M,E,C)=>{j._enterCancelled=C,xn(j,M?u:i),xn(j,M?c:s),E&&E()},z=(j,M)=>{j._isLeaving=!1,xn(j,p),xn(j,x),xn(j,h),M&&M()},G=j=>(M,E)=>{const C=j?L:v,P=()=>S(M,j,E);wn(C,[M,P]),Bu(()=>{xn(M,j?l:r),jo(M,j?u:i),Ou(C)||ju(M,n,f,P)})};return ut(t,{onBeforeEnter(j){wn(y,[j]),jo(j,r),jo(j,s)},onBeforeAppear(j){wn(_,[j]),jo(j,l),jo(j,c)},onEnter:G(!1),onAppear:G(!0),onLeave(j,M){j._isLeaving=!0;const E=()=>z(j,M);jo(j,p),j._enterCancelled?(jo(j,h),Gu(j)):(Gu(j),jo(j,h)),Bu(()=>{j._isLeaving&&(xn(j,p),jo(j,x),Ou(m)||ju(j,n,b,E))}),wn(m,[j,E])},onEnterCancelled(j){S(j,!1,void 0,!0),wn(g,[j])},onAppearCancelled(j){S(j,!0,void 0,!0),wn(O,[j])},onLeaveCancelled(j){z(j),wn(d,[j])}})}function xm(e){if(e==null)return null;if(Ye(e))return[yi(e.enter),yi(e.leave)];{const t=yi(e);return[t,t]}}function yi(e){return Ds(e)}function jo(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.add(o)),(e[Oa]||(e[Oa]=new Set)).add(t)}function xn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const o=e[Oa];o&&(o.delete(t),o.size||(e[Oa]=void 0))}function Bu(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Sm=0;function ju(e,t,o,n){const a=e._endId=++Sm,r=()=>{a===e._endId&&n()};if(o!=null)return setTimeout(r,o);const{type:s,timeout:i,propCount:l}=Am(e,t);if(!s)return n();const c=s+"end";let u=0;const p=()=>{e.removeEventListener(c,h),r()},h=x=>{x.target===e&&++u>=l&&p()};setTimeout(()=>{u(o[w]||"").split(", "),a=n(`${Qo}Delay`),r=n(`${Qo}Duration`),s=Uu(a,r),i=n(`${Da}Delay`),l=n(`${Da}Duration`),c=Uu(i,l);let u=null,p=0,h=0;t===Qo?s>0&&(u=Qo,p=s,h=r.length):t===Da?c>0&&(u=Da,p=c,h=l.length):(p=Math.max(s,c),u=p>0?s>c?Qo:Da:null,h=u?u===Qo?r.length:l.length:0);const x=u===Qo&&/\b(?:transform|all)(?:,|$)/.test(n(`${Qo}Property`).toString());return{type:u,timeout:p,propCount:h,hasTransform:x}}function Uu(e,t){for(;e.lengthzu(o)+zu(e[n])))}function zu(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Gu(e){return(e?e.ownerDocument:document).body.offsetHeight}function Lm(e,t,o){const n=e[Oa];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const zr=Symbol("_vod"),Ku=Symbol("_vsh"),Cm={name:"show",beforeMount(e,{value:t},{transition:o}){e[zr]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Ba(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Ba(e,!0),n.enter(e)):n.leave(e,()=>{Ba(e,!1)}):Ba(e,t))},beforeUnmount(e,{value:t}){Ba(e,t)}};function Ba(e,t){e.style.display=t?e[zr]:"none",e[Ku]=!t}const $m=Symbol(""),Em=/(?:^|;)\s*display\s*:/;function Tm(e,t,o){const n=e.style,a=ot(o);let r=!1;if(o&&!a){if(t)if(ot(t))for(const s of t.split(";")){const i=s.slice(0,s.indexOf(":")).trim();o[i]==null&&ja(n,i,"")}else for(const s in t)o[s]==null&&ja(n,s,"");for(const s in o){s==="display"&&(r=!0);const i=o[s];i!=null?Nm(e,s,!ot(t)&&t?t[s]:void 0,i)||ja(n,s,i):ja(n,s,"")}}else if(a){if(t!==o){const s=n[$m];s&&(o+=";"+s),n.cssText=o,r=Em.test(o)}}else t&&e.removeAttribute("style");zr in e&&(e[zr]=r?n.display:"",e[Ku]&&(n.display="none"))}const Gr=/\s*!important$/;function ja(e,t,o){if($e(o))o.forEach(n=>ja(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Gr.test(o)?e.setProperty(t,o.replace(Gr,""),"important"):e.setProperty(t,o);else{const n=Pm(e,t);Gr.test(o)?e.setProperty(Vt(n),o.replace(Gr,""),"important"):e[n]=o}}const Hu=["Webkit","Moz","ms"],vi={};function Pm(e,t){const o=vi[t];if(o)return o;let n=_t(t);if(n!=="filter"&&n in e)return vi[t]=n;n=gr(n);for(let a=0;a_i||(Om.then(()=>_i=0),_i=Date.now());function jm(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if($e(a)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const s=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Um=(e,t,o,n,a,r)=>{const s=a==="svg";t==="class"?Lm(e,n,s):t==="style"?Tm(e,o,n):ir(t)?lr(t)||Mm(e,t,o,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):zm(e,t,n,s))?(Wu(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&qu(e,t,n,s,r,t!=="value")):e._isVueCE&&(Gm(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ot(n)))?Wu(e,_t(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),qu(e,t,n,s))};function zm(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Xu(t)&&Me(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return Xu(t)&&ot(o)?!1:t in e}function Gm(e,t){const o=e._def.props;if(!o)return!1;const n=_t(t);return Array.isArray(o)?o.some(a=>_t(a)===n):Object.keys(o).some(a=>_t(a)===n)}const Ju={};function Km(e,t,o){let n=Aa(e,t);cr(n)&&(n=ut({},n,t));class a extends ki{constructor(s){super(n,s,o)}}return a.def=n,a}const Hm=typeof HTMLElement<"u"?HTMLElement:class{};class ki extends Hm{constructor(t,o={},n=ad){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==ad?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(ut({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof ki){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,Ut(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=n;let i;if(r&&!$e(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Ds(this._props[l])),(i||(i=Object.create(null)))[_t(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(s),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)We(this,n)||Object.defineProperty(this,n,{get:()=>de(o[n])})}_resolveProps(t){const{props:o}=t,n=$e(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(_t))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):Ju;const a=_t(t);o&&this._numberProps&&this._numberProps[a]&&(n=Ds(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===Ju?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),o===!0?this.setAttribute(Vt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Vt(t),o+""):o||this.removeAttribute(Vt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Jm(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=Je(this._def,ut(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,cr(s[0])?ut({detail:s},s[0]):{detail:s}))};n.emit=(r,...s)=>{a(r,s),Vt(r)!==r&&a(Vt(r),s)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,r=this.shadowRoot,s=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],r.insertBefore(c,i||s),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return $e(t)?o=>pr(t,o):t};function Vm(e){e.target.composing=!0}function Zu(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const vo=Symbol("_assign"),Kr=Symbol("_initialValue");function wi(e,t,o){return t&&(e=e.trim()),o&&(e=fr(e)),e}const Hr={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[Kr]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Kr]=e.defaultValue.replace(/\r\n?/g,` -`))),e[vo]=Vn(a);const r=n||a.props&&a.props.type==="number";en(e,t?"change":"input",s=>{s.target.composing||e[vo](wi(e.value,o,r))}),(o||r)&&en(e,"change",()=>{e.value=wi(e.value,o,r)}),t||(en(e,"compositionstart",Vm),en(e,"compositionend",Zu),en(e,"change",Zu))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",r=e[Kr];delete e[Kr],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[vo](wi(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:r}},s){if(e[vo]=Vn(s),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?fr(e.value):e.value,l=t??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},xi={deep:!0,created(e,t,o){e[vo]=Vn(o),en(e,"change",()=>{const n=e._modelValue,a=Ua(e),r=e.checked,s=e[vo];if($e(n)){const i=Os(n,a),l=i!==-1;if(r&&!l)s(n.concat(a));else if(!r&&l){const c=[...n];c.splice(i,1),s(c)}}else if($o(n)){const i=new Set(n);r?i.add(a):i.delete(a),s(i)}else s(td(e,r))})},mounted:Qu,beforeUpdate(e,t,o){e[vo]=Vn(o),Qu(e,t,o)}};function Qu(e,{value:t,oldValue:o},n){e._modelValue=t;let a;if($e(t))a=Os(t,n.props.value)>-1;else if($o(t))a=t.has(n.props.value);else{if(t===o)return;a=Eo(t,td(e,!0))}e.checked!==a&&(e.checked=a)}const Vr={deep:!0,created(e,{value:t,modifiers:{number:o}},n){e._modelValue=t,en(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>o?fr(Ua(l)):Ua(l)),r=e.multiple,s=r?$o(e._modelValue)?new Set(a):a:a[0],i=e._pendingValue=[r,r?$e(s)?a.slice():a:s];try{e[vo](s)}finally{Ut(()=>{e._pendingValue===i&&(e._pendingValue=void 0)})}}),e[vo]=Vn(n)},mounted(e,{value:t}){ed(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[vo]=Vn(o)},updated(e,{value:t}){const o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!qm(t,o[1],o[0]))&&ed(e,t)}};function qm(e,t,o){if(!o||$e(e))return Eo(e,t);if($o(e)){if(e.size!==t.length)return!1;for(const n of t)if(!e.has(n))return!1;return!0}return!1}function ed(e,t){const o=e.multiple,n=$e(t);if(!(o&&!n&&!$o(t))){for(let a=0,r=e.options.length;aString(c)===String(i)):s.selected=Os(t,i)>-1}else s.selected=t.has(i);else if(Eo(Ua(s),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Ua(e){return"_value"in e?e._value:e.value}function td(e,t){const o=t?"_trueValue":"_falseValue";return o in e?e[o]:t}const Wm=["ctrl","shift","alt","meta"],Ym={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Wm.some(o=>e[`${o}Key`]&&!t.includes(o))},pt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...r)=>{for(let s=0;s{nd().render(...e)},ad=(...e)=>{const t=nd().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=Qm(n);if(!a)return;const r=t._component;!Me(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=o(a,!1,Zm(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t};function Zm(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Qm(e){return ot(e)?document.querySelector(e):e}/*! +**/let bi;const Mu=typeof window<"u"&&window.trustedTypes;if(Mu)try{bi=Mu.createPolicy("vue",{createHTML:e=>e})}catch{}const Fu=bi?e=>bi.createHTML(e):e=>e,bm="http://www.w3.org/2000/svg",ym="http://www.w3.org/1998/Math/MathML",Bo=typeof document<"u"?document:null,Ru=Bo&&Bo.createElement("template"),vm={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?Bo.createElementNS(bm,e):t==="mathml"?Bo.createElementNS(ym,e):o?Bo.createElement(e,{is:o}):Bo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Bo.createTextNode(e),createComment:e=>Bo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Bo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,r){const s=o?o.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===r||!(a=a.nextSibling)););else{Ru.innerHTML=Fu(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Ru.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[s?s.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Qo="transition",Da="animation",Oa=Symbol("_vtc"),Du={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},_m=ut({},Uc,Du),km=(e=>(e.displayName="Transition",e.props=_m,e))((e,{slots:t})=>mi(yh,xm(e),t)),xn=(e,t=[])=>{$e(e)?e.forEach(o=>o(...t)):e&&e(...t)},Ou=e=>e?$e(e)?e.some(t=>t.length>1):e.length>1:!1;function xm(e){const t={};for(const j in e)j in Du||(t[j]=e[j]);if(e.css===!1)return t;const{name:o="v",type:n,duration:a,enterFromClass:r=`${o}-enter-from`,enterActiveClass:s=`${o}-enter-active`,enterToClass:i=`${o}-enter-to`,appearFromClass:l=r,appearActiveClass:c=s,appearToClass:u=i,leaveFromClass:g=`${o}-leave-from`,leaveActiveClass:h=`${o}-leave-active`,leaveToClass:w=`${o}-leave-to`}=e,x=wm(a),f=x&&x[0],b=x&&x[1],{onBeforeEnter:y,onEnter:v,onEnterCancelled:p,onLeave:m,onLeaveCancelled:d,onBeforeAppear:_=y,onAppear:L=v,onAppearCancelled:O=p}=t,S=(j,M,E,C)=>{j._enterCancelled=C,wn(j,M?u:i),wn(j,M?c:s),E&&E()},U=(j,M)=>{j._isLeaving=!1,wn(j,g),wn(j,w),wn(j,h),M&&M()},G=j=>(M,E)=>{const C=j?L:v,P=()=>S(M,j,E);xn(C,[M,P]),Bu(()=>{wn(M,j?l:r),jo(M,j?u:i),Ou(C)||ju(M,n,f,P)})};return ut(t,{onBeforeEnter(j){xn(y,[j]),jo(j,r),jo(j,s)},onBeforeAppear(j){xn(_,[j]),jo(j,l),jo(j,c)},onEnter:G(!1),onAppear:G(!0),onLeave(j,M){j._isLeaving=!0;const E=()=>U(j,M);jo(j,g),j._enterCancelled?(jo(j,h),Gu(j)):(Gu(j),jo(j,h)),Bu(()=>{j._isLeaving&&(wn(j,g),jo(j,w),Ou(m)||ju(j,n,b,E))}),xn(m,[j,E])},onEnterCancelled(j){S(j,!1,void 0,!0),xn(p,[j])},onAppearCancelled(j){S(j,!0,void 0,!0),xn(O,[j])},onLeaveCancelled(j){U(j),xn(d,[j])}})}function wm(e){if(e==null)return null;if(Ye(e))return[yi(e.enter),yi(e.leave)];{const t=yi(e);return[t,t]}}function yi(e){return Ds(e)}function jo(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.add(o)),(e[Oa]||(e[Oa]=new Set)).add(t)}function wn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const o=e[Oa];o&&(o.delete(t),o.size||(e[Oa]=void 0))}function Bu(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Sm=0;function ju(e,t,o,n){const a=e._endId=++Sm,r=()=>{a===e._endId&&n()};if(o!=null)return setTimeout(r,o);const{type:s,timeout:i,propCount:l}=Am(e,t);if(!s)return n();const c=s+"end";let u=0;const g=()=>{e.removeEventListener(c,h),r()},h=w=>{w.target===e&&++u>=l&&g()};setTimeout(()=>{u(o[x]||"").split(", "),a=n(`${Qo}Delay`),r=n(`${Qo}Duration`),s=zu(a,r),i=n(`${Da}Delay`),l=n(`${Da}Duration`),c=zu(i,l);let u=null,g=0,h=0;t===Qo?s>0&&(u=Qo,g=s,h=r.length):t===Da?c>0&&(u=Da,g=c,h=l.length):(g=Math.max(s,c),u=g>0?s>c?Qo:Da:null,h=u?u===Qo?r.length:l.length:0);const w=u===Qo&&/\b(?:transform|all)(?:,|$)/.test(n(`${Qo}Property`).toString());return{type:u,timeout:g,propCount:h,hasTransform:w}}function zu(e,t){for(;e.lengthUu(o)+Uu(e[n])))}function Uu(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Gu(e){return(e?e.ownerDocument:document).body.offsetHeight}function Lm(e,t,o){const n=e[Oa];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Ur=Symbol("_vod"),Ku=Symbol("_vsh"),Cm={name:"show",beforeMount(e,{value:t},{transition:o}){e[Ur]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Ba(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Ba(e,!0),n.enter(e)):n.leave(e,()=>{Ba(e,!1)}):Ba(e,t))},beforeUnmount(e,{value:t}){Ba(e,t)}};function Ba(e,t){e.style.display=t?e[Ur]:"none",e[Ku]=!t}const $m=Symbol(""),Em=/(?:^|;)\s*display\s*:/;function Tm(e,t,o){const n=e.style,a=ot(o);let r=!1;if(o&&!a){if(t)if(ot(t))for(const s of t.split(";")){const i=s.slice(0,s.indexOf(":")).trim();o[i]==null&&ja(n,i,"")}else for(const s in t)o[s]==null&&ja(n,s,"");for(const s in o){s==="display"&&(r=!0);const i=o[s];i!=null?Nm(e,s,!ot(t)&&t?t[s]:void 0,i)||ja(n,s,i):ja(n,s,"")}}else if(a){if(t!==o){const s=n[$m];s&&(o+=";"+s),n.cssText=o,r=Em.test(o)}}else t&&e.removeAttribute("style");Ur in e&&(e[Ur]=r?n.display:"",e[Ku]&&(n.display="none"))}const Gr=/\s*!important$/;function ja(e,t,o){if($e(o))o.forEach(n=>ja(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Gr.test(o)?e.setProperty(t,o.replace(Gr,""),"important"):e.setProperty(t,o);else{const n=Pm(e,t);Gr.test(o)?e.setProperty(Vt(n),o.replace(Gr,""),"important"):e[n]=o}}const Hu=["Webkit","Moz","ms"],vi={};function Pm(e,t){const o=vi[t];if(o)return o;let n=_t(t);if(n!=="filter"&&n in e)return vi[t]=n;n=pr(n);for(let a=0;a_i||(Om.then(()=>_i=0),_i=Date.now());function jm(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if($e(a)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const s=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,zm=(e,t,o,n,a,r)=>{const s=a==="svg";t==="class"?Lm(e,n,s):t==="style"?Tm(e,o,n):ir(t)?lr(t)||Mm(e,t,o,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Um(e,t,n,s))?(Wu(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&qu(e,t,n,s,r,t!=="value")):e._isVueCE&&(Gm(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ot(n)))?Wu(e,_t(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),qu(e,t,n,s))};function Um(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Xu(t)&&Me(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return Xu(t)&&ot(o)?!1:t in e}function Gm(e,t){const o=e._def.props;if(!o)return!1;const n=_t(t);return Array.isArray(o)?o.some(a=>_t(a)===n):Object.keys(o).some(a=>_t(a)===n)}const Ju={};function Km(e,t,o){let n=Aa(e,t);cr(n)&&(n=ut({},n,t));class a extends ki{constructor(s){super(n,s,o)}}return a.def=n,a}const Hm=typeof HTMLElement<"u"?HTMLElement:class{};class ki extends Hm{constructor(t,o={},n=ad){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==ad?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(ut({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof ki){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,zt(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=n;let i;if(r&&!$e(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Ds(this._props[l])),(i||(i=Object.create(null)))[_t(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(s),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)We(this,n)||Object.defineProperty(this,n,{get:()=>de(o[n])})}_resolveProps(t){const{props:o}=t,n=$e(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(_t))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):Ju;const a=_t(t);o&&this._numberProps&&this._numberProps[a]&&(n=Ds(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===Ju?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),o===!0?this.setAttribute(Vt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Vt(t),o+""):o||this.removeAttribute(Vt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Jm(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=Je(this._def,ut(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,cr(s[0])?ut({detail:s},s[0]):{detail:s}))};n.emit=(r,...s)=>{a(r,s),Vt(r)!==r&&a(Vt(r),s)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,r=this.shadowRoot,s=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],r.insertBefore(c,i||s),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return $e(t)?o=>gr(t,o):t};function Vm(e){e.target.composing=!0}function Zu(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const vo=Symbol("_assign"),Kr=Symbol("_initialValue");function xi(e,t,o){return t&&(e=e.trim()),o&&(e=fr(e)),e}const Hr={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[Kr]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Kr]=e.defaultValue.replace(/\r\n?/g,` +`))),e[vo]=Vn(a);const r=n||a.props&&a.props.type==="number";en(e,t?"change":"input",s=>{s.target.composing||e[vo](xi(e.value,o,r))}),(o||r)&&en(e,"change",()=>{e.value=xi(e.value,o,r)}),t||(en(e,"compositionstart",Vm),en(e,"compositionend",Zu),en(e,"change",Zu))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",r=e[Kr];delete e[Kr],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[vo](xi(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:r}},s){if(e[vo]=Vn(s),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?fr(e.value):e.value,l=t??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},wi={deep:!0,created(e,t,o){e[vo]=Vn(o),en(e,"change",()=>{const n=e._modelValue,a=za(e),r=e.checked,s=e[vo];if($e(n)){const i=Os(n,a),l=i!==-1;if(r&&!l)s(n.concat(a));else if(!r&&l){const c=[...n];c.splice(i,1),s(c)}}else if($o(n)){const i=new Set(n);r?i.add(a):i.delete(a),s(i)}else s(td(e,r))})},mounted:Qu,beforeUpdate(e,t,o){e[vo]=Vn(o),Qu(e,t,o)}};function Qu(e,{value:t,oldValue:o},n){e._modelValue=t;let a;if($e(t))a=Os(t,n.props.value)>-1;else if($o(t))a=t.has(n.props.value);else{if(t===o)return;a=Eo(t,td(e,!0))}e.checked!==a&&(e.checked=a)}const Vr={deep:!0,created(e,{value:t,modifiers:{number:o}},n){e._modelValue=t,en(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>o?fr(za(l)):za(l)),r=e.multiple,s=r?$o(e._modelValue)?new Set(a):a:a[0],i=e._pendingValue=[r,r?$e(s)?a.slice():a:s];try{e[vo](s)}finally{zt(()=>{e._pendingValue===i&&(e._pendingValue=void 0)})}}),e[vo]=Vn(n)},mounted(e,{value:t}){ed(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[vo]=Vn(o)},updated(e,{value:t}){const o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!qm(t,o[1],o[0]))&&ed(e,t)}};function qm(e,t,o){if(!o||$e(e))return Eo(e,t);if($o(e)){if(e.size!==t.length)return!1;for(const n of t)if(!e.has(n))return!1;return!0}return!1}function ed(e,t){const o=e.multiple,n=$e(t);if(!(o&&!n&&!$o(t))){for(let a=0,r=e.options.length;aString(c)===String(i)):s.selected=Os(t,i)>-1}else s.selected=t.has(i);else if(Eo(za(s),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function za(e){return"_value"in e?e._value:e.value}function td(e,t){const o=t?"_trueValue":"_falseValue";return o in e?e[o]:t}const Wm=["ctrl","shift","alt","meta"],Ym={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Wm.some(o=>e[`${o}Key`]&&!t.includes(o))},gt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...r)=>{for(let s=0;s{nd().render(...e)},ad=(...e)=>{const t=nd().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=Qm(n);if(!a)return;const r=t._component;!Me(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=o(a,!1,Zm(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t};function Zm(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Qm(e){return ot(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let rd;const qr=e=>rd=e,sd=Symbol();function Si(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var za;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(za||(za={}));function eb(){const e=js(!0),t=e.run(()=>ue({}));let o=[],n=[];const a=Bn({install(r){qr(a),a._a=r,r.provide(sd,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const id=()=>{};function ld(e,t,o,n=id){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&cc()&&Af(a),a}function qn(e,...t){e.slice().forEach(o=>{o(...t)})}const tb=e=>e(),cd=Symbol(),Ai=Symbol();function Li(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];Si(a)&&Si(n)&&e.hasOwnProperty(o)&&!it(n)&&!No(n)?e[o]=Li(a,n):e[o]=n}return e}const ob=Symbol();function nb(e){return!Si(e)||!e.hasOwnProperty(ob)}const{assign:tn}=Object;function ab(e){return!!(it(e)&&e.effect)}function rb(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=qf(o.state.value[e]);return tn(u,r,Object.keys(s||{}).reduce((p,h)=>(p[h]=Bn(te(()=>{qr(o);const x=o._s.get(e);return s[h].call(x,x)})),p),{}))}return l=ud(e,c,t,o,n,!0),l}function ud(e,t,o={},n,a,r){let s;const i=tn({actions:{}},o),l={deep:!0};let c,u,p=[],h=[],x;const w=n.state.value[e];!r&&!w&&(n.state.value[e]={});let f;function b(O){let S;c=u=!1,typeof O=="function"?(O(n.state.value[e]),S={type:za.patchFunction,storeId:e,events:x}):(Li(n.state.value[e],O),S={type:za.patchObject,payload:O,storeId:e,events:x});const z=f=Symbol();Ut().then(()=>{f===z&&(c=!0)}),u=!0,qn(p,S,n.state.value[e])}const y=r?function(){const{state:S}=o,z=S?S():{};this.$patch(G=>{tn(G,z)})}:id;function v(){s.stop(),p=[],h=[],n._s.delete(e)}const g=(O,S="")=>{if(cd in O)return O[Ai]=S,O;const z=function(){qr(n);const G=Array.from(arguments),j=[],M=[];function E(F){j.push(F)}function C(F){M.push(F)}qn(h,{args:G,name:z[Ai],store:d,after:E,onError:C});let P;try{P=O.apply(this&&this.$id===e?this:d,G)}catch(F){throw qn(M,F),F}return P instanceof Promise?P.then(F=>(qn(j,F),F)).catch(F=>(qn(M,F),Promise.reject(F))):(qn(j,P),P)};return z[cd]=!0,z[Ai]=S,z},m={_p:n,$id:e,$onAction:ld.bind(null,h),$patch:b,$reset:y,$subscribe(O,S={}){const z=ld(p,O,S.detached,()=>G()),G=s.run(()=>Re(()=>n.state.value[e],j=>{(S.flush==="sync"?u:c)&&O({storeId:e,type:za.direct,events:x},j)},tn({},l,S)));return z},$dispose:v},d=On(m);n._s.set(e,d);const L=(n._a&&n._a.runWithContext||tb)(()=>n._e.run(()=>(s=js()).run(()=>t({action:g}))));for(const O in L){const S=L[O];if(it(S)&&!ab(S)||No(S))r||(w&&nb(S)&&(it(S)?S.value=w[O]:Li(S,w[O])),n.state.value[e][O]=S);else if(typeof S=="function"){const z=g(S,O);L[O]=z,i.actions[O]=S}}return tn(d,L),tn(Ue(d),L),Object.defineProperty(d,"$state",{get:()=>n.state.value[e],set:O=>{b(S=>{tn(S,O)})}}),n._p.forEach(O=>{tn(d,s.run(()=>O({store:d,app:n._a,pinia:n,options:i})))}),w&&r&&o.hydrate&&o.hydrate(d.$state,w),c=!0,u=!0,d}/*! #__NO_SIDE_EFFECTS__ */function Ci(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const c=ih();return i=i||(c?Pe(sd,null):null),i&&qr(i),i=rd,i._s.has(n)||(r?ud(n,t,a,i):rb(n,a,i)),i._s.get(n)}return s.$id=n,s}const sb={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},ib={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},lb={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},cb={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},ub={menuComingSoon:"القائمة قادمة قريباً"},db={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},gb={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},pb={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},fb={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},hb={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},mb={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten"},bb={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},yb={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},vb={menuComingSoon:"Menü folgt in Kürze"},_b={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},kb={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},wb={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},xb={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land"},Sb={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},Ab={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share"},Lb={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Cb={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},$b={menuComingSoon:"Menu coming soon"},Eb={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Tb={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Pb={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Nb={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},Ib={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country"},Mb={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},Fb={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},Rb={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},Db={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},Ob={menuComingSoon:"Menú próximamente"},Bb={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},jb={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Ub={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"}},zb={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País"},Gb={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},Kb={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer"},Hb={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Vb={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},qb={menuComingSoon:"Menu bientôt disponible"},Wb={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Yb={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Xb={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Jb={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"}},Zb={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays"},Qb={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},ey={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},ty={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},oy={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},ny={menuComingSoon:"मेनू शीघ्र आ रहा है"},ay={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},ry={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},sy={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},iy={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},ly={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora"},cy={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},uy={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},dy={menuComingSoon:"Menu in arrivo"},gy={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},py={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},fy={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},hy={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},my={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar"},by={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},yy={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},vy={menuComingSoon:"Menu em breve"},_y={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},ky={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},wy={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"}},xy={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País"},Sy={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},Ay={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează"},Ly={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Cy={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},$y={menuComingSoon:"Meniu în curând"},Ey={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Ty={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Py={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},Ny={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},Iy={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},My={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Fy={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},Ry={menuComingSoon:"Меню скоро появится"},Dy={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Oy={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},By={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},jy={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},Uy={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},zy={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},Gy={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Ky={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},Hy={menuComingSoon:"菜单即将推出"},Vy={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},qy={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},Wy={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! + */let rd;const qr=e=>rd=e,sd=Symbol();function Si(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Ua;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Ua||(Ua={}));function eb(){const e=js(!0),t=e.run(()=>ue({}));let o=[],n=[];const a=Bn({install(r){qr(a),a._a=r,r.provide(sd,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const id=()=>{};function ld(e,t,o,n=id){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&cc()&&Af(a),a}function qn(e,...t){e.slice().forEach(o=>{o(...t)})}const tb=e=>e(),cd=Symbol(),Ai=Symbol();function Li(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];Si(a)&&Si(n)&&e.hasOwnProperty(o)&&!it(n)&&!No(n)?e[o]=Li(a,n):e[o]=n}return e}const ob=Symbol();function nb(e){return!Si(e)||!e.hasOwnProperty(ob)}const{assign:tn}=Object;function ab(e){return!!(it(e)&&e.effect)}function rb(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=qf(o.state.value[e]);return tn(u,r,Object.keys(s||{}).reduce((g,h)=>(g[h]=Bn(te(()=>{qr(o);const w=o._s.get(e);return s[h].call(w,w)})),g),{}))}return l=ud(e,c,t,o,n,!0),l}function ud(e,t,o={},n,a,r){let s;const i=tn({actions:{}},o),l={deep:!0};let c,u,g=[],h=[],w;const x=n.state.value[e];!r&&!x&&(n.state.value[e]={});let f;function b(O){let S;c=u=!1,typeof O=="function"?(O(n.state.value[e]),S={type:Ua.patchFunction,storeId:e,events:w}):(Li(n.state.value[e],O),S={type:Ua.patchObject,payload:O,storeId:e,events:w});const U=f=Symbol();zt().then(()=>{f===U&&(c=!0)}),u=!0,qn(g,S,n.state.value[e])}const y=r?function(){const{state:S}=o,U=S?S():{};this.$patch(G=>{tn(G,U)})}:id;function v(){s.stop(),g=[],h=[],n._s.delete(e)}const p=(O,S="")=>{if(cd in O)return O[Ai]=S,O;const U=function(){qr(n);const G=Array.from(arguments),j=[],M=[];function E(F){j.push(F)}function C(F){M.push(F)}qn(h,{args:G,name:U[Ai],store:d,after:E,onError:C});let P;try{P=O.apply(this&&this.$id===e?this:d,G)}catch(F){throw qn(M,F),F}return P instanceof Promise?P.then(F=>(qn(j,F),F)).catch(F=>(qn(M,F),Promise.reject(F))):(qn(j,P),P)};return U[cd]=!0,U[Ai]=S,U},m={_p:n,$id:e,$onAction:ld.bind(null,h),$patch:b,$reset:y,$subscribe(O,S={}){const U=ld(g,O,S.detached,()=>G()),G=s.run(()=>Re(()=>n.state.value[e],j=>{(S.flush==="sync"?u:c)&&O({storeId:e,type:Ua.direct,events:w},j)},tn({},l,S)));return U},$dispose:v},d=On(m);n._s.set(e,d);const L=(n._a&&n._a.runWithContext||tb)(()=>n._e.run(()=>(s=js()).run(()=>t({action:p}))));for(const O in L){const S=L[O];if(it(S)&&!ab(S)||No(S))r||(x&&nb(S)&&(it(S)?S.value=x[O]:Li(S,x[O])),n.state.value[e][O]=S);else if(typeof S=="function"){const U=p(S,O);L[O]=U,i.actions[O]=S}}return tn(d,L),tn(ze(d),L),Object.defineProperty(d,"$state",{get:()=>n.state.value[e],set:O=>{b(S=>{tn(S,O)})}}),n._p.forEach(O=>{tn(d,s.run(()=>O({store:d,app:n._a,pinia:n,options:i})))}),x&&r&&o.hydrate&&o.hydrate(d.$state,x),c=!0,u=!0,d}/*! #__NO_SIDE_EFFECTS__ */function Ci(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const c=ih();return i=i||(c?Pe(sd,null):null),i&&qr(i),i=rd,i._s.has(n)||(r?ud(n,t,a,i):rb(n,a,i)),i._s.get(n)}return s.$id=n,s}const sb={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},ib={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},lb={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},cb={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},ub={menuComingSoon:"القائمة قادمة قريباً"},db={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},pb={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},gb={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},fb={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},hb={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},mb={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten"},bb={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},yb={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},vb={menuComingSoon:"Menü folgt in Kürze"},_b={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},kb={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},xb={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},wb={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land"},Sb={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},Ab={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share"},Lb={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Cb={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},$b={menuComingSoon:"Menu coming soon"},Eb={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Tb={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Pb={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Nb={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},Ib={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country"},Mb={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},Fb={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},Rb={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},Db={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},Ob={menuComingSoon:"Menú próximamente"},Bb={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},jb={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},zb={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"}},Ub={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País"},Gb={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},Kb={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer"},Hb={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Vb={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},qb={menuComingSoon:"Menu bientôt disponible"},Wb={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Yb={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Xb={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Jb={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"}},Zb={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays"},Qb={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},ey={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},ty={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},oy={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},ny={menuComingSoon:"मेनू शीघ्र आ रहा है"},ay={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},ry={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},sy={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},iy={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},ly={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora"},cy={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},uy={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},dy={menuComingSoon:"Menu in arrivo"},py={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},gy={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},fy={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},hy={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},my={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar"},by={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},yy={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},vy={menuComingSoon:"Menu em breve"},_y={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},ky={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},xy={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"}},wy={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País"},Sy={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},Ay={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează"},Ly={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Cy={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},$y={menuComingSoon:"Meniu în curând"},Ey={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Ty={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Py={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},Ny={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},Iy={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},My={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Fy={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},Ry={menuComingSoon:"Меню скоро появится"},Dy={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Oy={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},By={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},jy={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},zy={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},Uy={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},Gy={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Ky={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},Hy={menuComingSoon:"菜单即将推出"},Vy={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},qy={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},Wy={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Yy(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Wr=typeof window<"u",on=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Xy=(e,t,o)=>Jy({l:e,k:t,s:o}),Jy=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),ft=e=>typeof e=="number"&&isFinite(e),Zy=e=>hd(e)==="[object Date]",nn=e=>hd(e)==="[object RegExp]",Yr=e=>De(e)&&Object.keys(e).length===0,Ct=Object.assign,Qy=Object.create,Ze=(e=null)=>Qy(e);let dd;const Uo=()=>dd||(dd=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ze());function gd(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function pd(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function e0(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,r)=>`${a}="${pd(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,r)=>`${a}='${pd(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const t0=Object.prototype.hasOwnProperty;function no(e,t){return t0.call(e,t)}const lt=Array.isArray,at=e=>typeof e=="function",ke=e=>typeof e=="string",je=e=>typeof e=="boolean",Ve=e=>e!==null&&typeof e=="object",o0=e=>Ve(e)&&at(e.then)&&at(e.catch),fd=Object.prototype.toString,hd=e=>fd.call(e),De=e=>{if(!Ve(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},n0=e=>e==null?"":lt(e)||De(e)&&e.toString===fd?JSON.stringify(e,null,2):String(e);function a0(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Xr(e){let t=e;return()=>++t}const Jr=e=>!Ve(e)||lt(e);function Zr(e,t){if(Jr(e)||Jr(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(r=>{r!=="__proto__"&&(Ve(n[r])&&!Ve(a[r])&&(a[r]=Array.isArray(n[r])?[]:Ze()),Jr(a[r])||Jr(n[r])?a[r]=n[r]:o.push({src:n[r],des:a[r]}))})}}/*! + */function Yy(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Wr=typeof window<"u",on=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Xy=(e,t,o)=>Jy({l:e,k:t,s:o}),Jy=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),ft=e=>typeof e=="number"&&isFinite(e),Zy=e=>hd(e)==="[object Date]",nn=e=>hd(e)==="[object RegExp]",Yr=e=>De(e)&&Object.keys(e).length===0,Ct=Object.assign,Qy=Object.create,Ze=(e=null)=>Qy(e);let dd;const zo=()=>dd||(dd=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ze());function pd(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function gd(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function e0(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,r)=>`${a}="${gd(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,r)=>`${a}='${gd(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const t0=Object.prototype.hasOwnProperty;function no(e,t){return t0.call(e,t)}const lt=Array.isArray,at=e=>typeof e=="function",ke=e=>typeof e=="string",je=e=>typeof e=="boolean",Ve=e=>e!==null&&typeof e=="object",o0=e=>Ve(e)&&at(e.then)&&at(e.catch),fd=Object.prototype.toString,hd=e=>fd.call(e),De=e=>{if(!Ve(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},n0=e=>e==null?"":lt(e)||De(e)&&e.toString===fd?JSON.stringify(e,null,2):String(e);function a0(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Xr(e){let t=e;return()=>++t}const Jr=e=>!Ve(e)||lt(e);function Zr(e,t){if(Jr(e)||Jr(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(r=>{r!=="__proto__"&&(Ve(n[r])&&!Ve(a[r])&&(a[r]=Array.isArray(n[r])?[]:Ze()),Jr(a[r])||Jr(n[r])?a[r]=n[r]:o.push({src:n[r],des:a[r]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function r0(e,t,o){return{line:e,column:t,offset:o}}function Qr(e,t,o){return{start:e,end:t}}const s0=/\{([0-9a-zA-Z]+)\}/g;function md(e,...t){return t.length===1&&i0(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(s0,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const bd=Object.assign,yd=e=>typeof e=="string",i0=e=>e!==null&&typeof e=="object";function vd(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const $i={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},l0={[$i.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function c0(e,t,...o){const n=md(l0[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Ne={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},u0={[Ne.EXPECTED_TOKEN]:"Expected token: '{0}'",[Ne.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Ne.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Ne.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Ne.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Ne.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Ne.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Ne.EMPTY_PLACEHOLDER]:"Empty placeholder",[Ne.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Ne.INVALID_LINKED_FORMAT]:"Invalid linked format",[Ne.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Ne.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Ne.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Ne.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Ne.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Ne.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Wn(e,t,o={}){const{domain:n,messages:a,args:r}=o,s=md((a||u0)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,t&&(i.location=t),i.domain=n,i}function d0(e){throw e}const zo=" ",g0="\r",Ft=` -`,p0="\u2028",f0="\u2029";function h0(e){const t=e;let o=0,n=1,a=1,r=0;const s=L=>t[L]===g0&&t[L+1]===Ft,i=L=>t[L]===Ft,l=L=>t[L]===f0,c=L=>t[L]===p0,u=L=>s(L)||i(L)||l(L)||c(L),p=()=>o,h=()=>n,x=()=>a,w=()=>r,f=L=>s(L)||l(L)||c(L)?Ft:t[L],b=()=>f(o),y=()=>f(o+r);function v(){return r=0,u(o)&&(n++,a=0),s(o)&&o++,o++,a++,t[o]}function g(){return s(o+r)&&r++,r++,t[o+r]}function m(){o=0,n=1,a=1,r=0}function d(L=0){r=L}function _(){const L=o+r;for(;L!==o;)v();r=0}return{index:p,line:h,column:x,peekOffset:w,charAt:f,currentChar:b,currentPeek:y,next:v,peek:g,reset:m,resetPeek:d,skipToPeek:_}}const an=void 0,m0=".",_d="'",b0="tokenizer";function y0(e,t={}){const o=t.location!==!1,n=h0(e),a=()=>n.index(),r=()=>r0(n.line(),n.column(),n.index()),s=r(),i=a(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function p(k,A,V,...Q){const me=c();if(A.column+=V,A.offset+=V,u){const pe=o?Qr(me.startLoc,A):null,J=Wn(k,pe,{domain:b0,args:Q});u(J)}}function h(k,A,V){k.endLoc=r(),k.currentType=A;const Q={type:A};return o&&(Q.loc=Qr(k.startLoc,k.endLoc)),V!=null&&(Q.value=V),Q}const x=k=>h(k,14);function w(k,A){return k.currentChar()===A?(k.next(),A):(p(Ne.EXPECTED_TOKEN,r(),0,A),"")}function f(k){let A="";for(;k.currentPeek()===zo||k.currentPeek()===Ft;)A+=k.currentPeek(),k.peek();return A}function b(k){const A=f(k);return k.skipToPeek(),A}function y(k){if(k===an)return!1;const A=k.charCodeAt(0);return A>=97&&A<=122||A>=65&&A<=90||A===95}function v(k){if(k===an)return!1;const A=k.charCodeAt(0);return A>=48&&A<=57}function g(k,A){const{currentType:V}=A;if(V!==2)return!1;f(k);const Q=y(k.currentPeek());return k.resetPeek(),Q}function m(k,A){const{currentType:V}=A;if(V!==2)return!1;f(k);const Q=k.currentPeek()==="-"?k.peek():k.currentPeek(),me=v(Q);return k.resetPeek(),me}function d(k,A){const{currentType:V}=A;if(V!==2)return!1;f(k);const Q=k.currentPeek()===_d;return k.resetPeek(),Q}function _(k,A){const{currentType:V}=A;if(V!==8)return!1;f(k);const Q=k.currentPeek()===".";return k.resetPeek(),Q}function L(k,A){const{currentType:V}=A;if(V!==9)return!1;f(k);const Q=y(k.currentPeek());return k.resetPeek(),Q}function O(k,A){const{currentType:V}=A;if(!(V===8||V===12))return!1;f(k);const Q=k.currentPeek()===":";return k.resetPeek(),Q}function S(k,A){const{currentType:V}=A;if(V!==10)return!1;const Q=()=>{const pe=k.currentPeek();return pe==="{"?y(k.peek()):pe==="@"||pe==="%"||pe==="|"||pe===":"||pe==="."||pe===zo||!pe?!1:pe===Ft?(k.peek(),Q()):j(k,!1)},me=Q();return k.resetPeek(),me}function z(k){f(k);const A=k.currentPeek()==="|";return k.resetPeek(),A}function G(k){const A=f(k),V=k.currentPeek()==="%"&&k.peek()==="{";return k.resetPeek(),{isModulo:V,hasSpace:A.length>0}}function j(k,A=!0){const V=(me=!1,pe="",J=!1)=>{const N=k.currentPeek();return N==="{"?pe==="%"?!1:me:N==="@"||!N?pe==="%"?!0:me:N==="%"?(k.peek(),V(me,"%",!0)):N==="|"?pe==="%"||J?!0:!(pe===zo||pe===Ft):N===zo?(k.peek(),V(!0,zo,J)):N===Ft?(k.peek(),V(!0,Ft,J)):!0},Q=V();return A&&k.resetPeek(),Q}function M(k,A){const V=k.currentChar();return V===an?an:A(V)?(k.next(),V):null}function E(k){const A=k.charCodeAt(0);return A>=97&&A<=122||A>=65&&A<=90||A>=48&&A<=57||A===95||A===36}function C(k){return M(k,E)}function P(k){const A=k.charCodeAt(0);return A>=97&&A<=122||A>=65&&A<=90||A>=48&&A<=57||A===95||A===36||A===45}function F(k){return M(k,P)}function q(k){const A=k.charCodeAt(0);return A>=48&&A<=57}function se(k){return M(k,q)}function Z(k){const A=k.charCodeAt(0);return A>=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102}function oe(k){return M(k,Z)}function H(k){let A="",V="";for(;A=se(k);)V+=A;return V}function fe(k){b(k);const A=k.currentChar();return A!=="%"&&p(Ne.EXPECTED_TOKEN,r(),0,A),k.next(),"%"}function Ae(k){let A="";for(;;){const V=k.currentChar();if(V==="{"||V==="}"||V==="@"||V==="|"||!V)break;if(V==="%")if(j(k))A+=V,k.next();else break;else if(V===zo||V===Ft)if(j(k))A+=V,k.next();else{if(z(k))break;A+=V,k.next()}else A+=V,k.next()}return A}function we(k){b(k);let A="",V="";for(;A=F(k);)V+=A;return k.currentChar()===an&&p(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),V}function Ce(k){b(k);let A="";return k.currentChar()==="-"?(k.next(),A+=`-${H(k)}`):A+=H(k),k.currentChar()===an&&p(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),A}function ce(k){return k!==_d&&k!==Ft}function le(k){b(k),w(k,"'");let A="",V="";for(;A=M(k,ce);)A==="\\"?V+=_e(k):V+=A;const Q=k.currentChar();return Q===Ft||Q===an?(p(Ne.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),Q===Ft&&(k.next(),w(k,"'")),V):(w(k,"'"),V)}function _e(k){const A=k.currentChar();switch(A){case"\\":case"'":return k.next(),`\\${A}`;case"u":return he(k,A,4);case"U":return he(k,A,6);default:return p(Ne.UNKNOWN_ESCAPE_SEQUENCE,r(),0,A),""}}function he(k,A,V){w(k,A);let Q="";for(let me=0;me{const Q=k.currentChar();return Q==="{"||Q==="%"||Q==="@"||Q==="|"||Q==="("||Q===")"||!Q||Q===zo?V:(V+=Q,k.next(),A(V))};return A("")}function K(k){b(k);const A=w(k,"|");return b(k),A}function ee(k,A){let V=null;switch(k.currentChar()){case"{":return A.braceNest>=1&&p(Ne.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),k.next(),V=h(A,2,"{"),b(k),A.braceNest++,V;case"}":return A.braceNest>0&&A.currentType===2&&p(Ne.EMPTY_PLACEHOLDER,r(),0),k.next(),V=h(A,3,"}"),A.braceNest--,A.braceNest>0&&b(k),A.inLinked&&A.braceNest===0&&(A.inLinked=!1),V;case"@":return A.braceNest>0&&p(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),V=D(k,A)||x(A),A.braceNest=0,V;default:{let me=!0,pe=!0,J=!0;if(z(k))return A.braceNest>0&&p(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),V=h(A,1,K(k)),A.braceNest=0,A.inLinked=!1,V;if(A.braceNest>0&&(A.currentType===5||A.currentType===6||A.currentType===7))return p(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),A.braceNest=0,ne(k,A);if(me=g(k,A))return V=h(A,5,we(k)),b(k),V;if(pe=m(k,A))return V=h(A,6,Ce(k)),b(k),V;if(J=d(k,A))return V=h(A,7,le(k)),b(k),V;if(!me&&!pe&&!J)return V=h(A,13,$(k)),p(Ne.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,V.value),b(k),V;break}}return V}function D(k,A){const{currentType:V}=A;let Q=null;const me=k.currentChar();switch((V===8||V===9||V===12||V===10)&&(me===Ft||me===zo)&&p(Ne.INVALID_LINKED_FORMAT,r(),0),me){case"@":return k.next(),Q=h(A,8,"@"),A.inLinked=!0,Q;case".":return b(k),k.next(),h(A,9,".");case":":return b(k),k.next(),h(A,10,":");default:return z(k)?(Q=h(A,1,K(k)),A.braceNest=0,A.inLinked=!1,Q):_(k,A)||O(k,A)?(b(k),D(k,A)):L(k,A)?(b(k),h(A,12,U(k))):S(k,A)?(b(k),me==="{"?ee(k,A)||Q:h(A,11,R(k))):(V===8&&p(Ne.INVALID_LINKED_FORMAT,r(),0),A.braceNest=0,A.inLinked=!1,ne(k,A))}}function ne(k,A){let V={type:14};if(A.braceNest>0)return ee(k,A)||x(A);if(A.inLinked)return D(k,A)||x(A);switch(k.currentChar()){case"{":return ee(k,A)||x(A);case"}":return p(Ne.UNBALANCED_CLOSING_BRACE,r(),0),k.next(),h(A,3,"}");case"@":return D(k,A)||x(A);default:{if(z(k))return V=h(A,1,K(k)),A.braceNest=0,A.inLinked=!1,V;const{isModulo:me,hasSpace:pe}=G(k);if(me)return pe?h(A,0,Ae(k)):h(A,4,fe(k));if(j(k))return h(A,0,Ae(k));break}}return V}function ae(){const{currentType:k,offset:A,startLoc:V,endLoc:Q}=l;return l.lastType=k,l.lastOffset=A,l.lastStartLoc=V,l.lastEndLoc=Q,l.offset=a(),l.startLoc=r(),n.currentChar()===an?h(l,14):ne(n,l)}return{nextToken:ae,currentOffset:a,currentPosition:r,context:c}}const v0="parser",_0=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function k0(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function w0(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(g,m,d,_,...L){const O=g.currentPosition();if(O.offset+=_,O.column+=_,o){const S=t?Qr(d,O):null,z=Wn(m,S,{domain:v0,args:L});o(z)}}function r(g,m,d,_,...L){const O=g.currentPosition();if(O.offset+=_,O.column+=_,n){const S=t?Qr(d,O):null;n(c0(m,S,L))}}function s(g,m,d){const _={type:g};return t&&(_.start=m,_.end=m,_.loc={start:d,end:d}),_}function i(g,m,d,_){t&&(g.end=m,g.loc&&(g.loc.end=d))}function l(g,m){const d=g.context(),_=s(3,d.offset,d.startLoc);return _.value=m,i(_,g.currentOffset(),g.currentPosition()),_}function c(g,m){const d=g.context(),{lastOffset:_,lastStartLoc:L}=d,O=s(5,_,L);return O.index=parseInt(m,10),g.nextToken(),i(O,g.currentOffset(),g.currentPosition()),O}function u(g,m,d){const _=g.context(),{lastOffset:L,lastStartLoc:O}=_,S=s(4,L,O);return S.key=m,d===!0&&(S.modulo=!0),g.nextToken(),i(S,g.currentOffset(),g.currentPosition()),S}function p(g,m){const d=g.context(),{lastOffset:_,lastStartLoc:L}=d,O=s(9,_,L);return O.value=m.replace(_0,k0),g.nextToken(),i(O,g.currentOffset(),g.currentPosition()),O}function h(g){const m=g.nextToken(),d=g.context(),{lastOffset:_,lastStartLoc:L}=d,O=s(8,_,L);return m.type!==12?(a(g,Ne.UNEXPECTED_EMPTY_LINKED_MODIFIER,d.lastStartLoc,0),O.value="",i(O,_,L),{nextConsumeToken:m,node:O}):(m.value==null&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,ao(m)),O.value=m.value||"",i(O,g.currentOffset(),g.currentPosition()),{node:O})}function x(g,m){const d=g.context(),_=s(7,d.offset,d.startLoc);return _.value=m,i(_,g.currentOffset(),g.currentPosition()),_}function w(g){const m=g.context(),d=s(6,m.offset,m.startLoc);let _=g.nextToken();if(_.type===9){const L=h(g);d.modifier=L.node,_=L.nextConsumeToken||g.nextToken()}switch(_.type!==10&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),_=g.nextToken(),_.type===2&&(_=g.nextToken()),_.type){case 11:_.value==null&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),d.key=x(g,_.value||"");break;case 5:_.value==null&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),d.key=u(g,_.value||"");break;case 6:_.value==null&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),d.key=c(g,_.value||"");break;case 7:_.value==null&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),d.key=p(g,_.value||"");break;default:{a(g,Ne.UNEXPECTED_EMPTY_LINKED_KEY,m.lastStartLoc,0);const L=g.context(),O=s(7,L.offset,L.startLoc);return O.value="",i(O,L.offset,L.startLoc),d.key=O,i(d,L.offset,L.startLoc),{nextConsumeToken:_,node:d}}}return i(d,g.currentOffset(),g.currentPosition()),{node:d}}function f(g){const m=g.context(),d=m.currentType===1?g.currentOffset():m.offset,_=m.currentType===1?m.endLoc:m.startLoc,L=s(2,d,_);L.items=[];let O=null,S=null;do{const j=O||g.nextToken();switch(O=null,j.type){case 0:j.value==null&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(j)),L.items.push(l(g,j.value||""));break;case 6:j.value==null&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(j)),L.items.push(c(g,j.value||""));break;case 4:S=!0;break;case 5:j.value==null&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(j)),L.items.push(u(g,j.value||"",!!S)),S&&(r(g,$i.USE_MODULO_SYNTAX,m.lastStartLoc,0,ao(j)),S=null);break;case 7:j.value==null&&a(g,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(j)),L.items.push(p(g,j.value||""));break;case 8:{const M=w(g);L.items.push(M.node),O=M.nextConsumeToken||null;break}}}while(m.currentType!==14&&m.currentType!==1);const z=m.currentType===1?m.lastOffset:g.currentOffset(),G=m.currentType===1?m.lastEndLoc:g.currentPosition();return i(L,z,G),L}function b(g,m,d,_){const L=g.context();let O=_.items.length===0;const S=s(1,m,d);S.cases=[],S.cases.push(_);do{const z=f(g);O||(O=z.items.length===0),S.cases.push(z)}while(L.currentType!==14);return O&&a(g,Ne.MUST_HAVE_MESSAGES_IN_PLURAL,d,0),i(S,g.currentOffset(),g.currentPosition()),S}function y(g){const m=g.context(),{offset:d,startLoc:_}=m,L=f(g);return m.currentType===14?L:b(g,d,_,L)}function v(g){const m=y0(g,bd({},e)),d=m.context(),_=s(0,d.offset,d.startLoc);return t&&_.loc&&(_.loc.source=g),_.body=y(m),e.onCacheKey&&(_.cacheKey=e.onCacheKey(g)),d.currentType!==14&&a(m,Ne.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,g[d.offset]||""),i(_,m.currentOffset(),m.currentPosition()),_}return{parse:v}}function ao(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function x0(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:r=>(o.helpers.add(r),r)}}function kd(e,t){for(let o=0;owd(o)),e}function wd(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;os;function l(f,b){s.code+=f}function c(f,b=!0){const y=b?n:"";l(a?y+" ".repeat(f):y)}function u(f=!0){const b=++s.indentLevel;f&&c(b)}function p(f=!0){const b=--s.indentLevel;f&&c(b)}function h(){c(s.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:h,helper:f=>`_${f}`,needIndent:()=>s.needIndent}}function E0(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),Xn(e,t.key),t.modifier?(e.push(", "),Xn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function T0(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let r=0;r1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let r=0;r{const o=yd(t.mode)?t.mode:"normal",n=yd(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` -`,r=t.needIndent?t.needIndent:o!=="arrow",s=e.helpers||[],i=$0(e,{filename:n,breakLineCode:a,needIndent:r});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${vd(s.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),Xn(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function M0(e,t={}){const o=bd({},t),n=!!o.jit,a=!!o.minify,r=o.optimize==null?!0:o.optimize,i=w0(o).parse(e);return n?(r&&A0(i),a&&Yn(i),{ast:i,code:""}):(S0(i,o),I0(i,o))}/*! + */function r0(e,t,o){return{line:e,column:t,offset:o}}function Qr(e,t,o){return{start:e,end:t}}const s0=/\{([0-9a-zA-Z]+)\}/g;function md(e,...t){return t.length===1&&i0(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(s0,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const bd=Object.assign,yd=e=>typeof e=="string",i0=e=>e!==null&&typeof e=="object";function vd(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const $i={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},l0={[$i.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function c0(e,t,...o){const n=md(l0[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Ne={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},u0={[Ne.EXPECTED_TOKEN]:"Expected token: '{0}'",[Ne.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Ne.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Ne.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Ne.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Ne.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Ne.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Ne.EMPTY_PLACEHOLDER]:"Empty placeholder",[Ne.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Ne.INVALID_LINKED_FORMAT]:"Invalid linked format",[Ne.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Ne.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Ne.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Ne.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Ne.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Ne.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Wn(e,t,o={}){const{domain:n,messages:a,args:r}=o,s=md((a||u0)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,t&&(i.location=t),i.domain=n,i}function d0(e){throw e}const Uo=" ",p0="\r",Ft=` +`,g0="\u2028",f0="\u2029";function h0(e){const t=e;let o=0,n=1,a=1,r=0;const s=L=>t[L]===p0&&t[L+1]===Ft,i=L=>t[L]===Ft,l=L=>t[L]===f0,c=L=>t[L]===g0,u=L=>s(L)||i(L)||l(L)||c(L),g=()=>o,h=()=>n,w=()=>a,x=()=>r,f=L=>s(L)||l(L)||c(L)?Ft:t[L],b=()=>f(o),y=()=>f(o+r);function v(){return r=0,u(o)&&(n++,a=0),s(o)&&o++,o++,a++,t[o]}function p(){return s(o+r)&&r++,r++,t[o+r]}function m(){o=0,n=1,a=1,r=0}function d(L=0){r=L}function _(){const L=o+r;for(;L!==o;)v();r=0}return{index:g,line:h,column:w,peekOffset:x,charAt:f,currentChar:b,currentPeek:y,next:v,peek:p,reset:m,resetPeek:d,skipToPeek:_}}const an=void 0,m0=".",_d="'",b0="tokenizer";function y0(e,t={}){const o=t.location!==!1,n=h0(e),a=()=>n.index(),r=()=>r0(n.line(),n.column(),n.index()),s=r(),i=a(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function g(k,A,V,...Q){const me=c();if(A.column+=V,A.offset+=V,u){const ge=o?Qr(me.startLoc,A):null,J=Wn(k,ge,{domain:b0,args:Q});u(J)}}function h(k,A,V){k.endLoc=r(),k.currentType=A;const Q={type:A};return o&&(Q.loc=Qr(k.startLoc,k.endLoc)),V!=null&&(Q.value=V),Q}const w=k=>h(k,14);function x(k,A){return k.currentChar()===A?(k.next(),A):(g(Ne.EXPECTED_TOKEN,r(),0,A),"")}function f(k){let A="";for(;k.currentPeek()===Uo||k.currentPeek()===Ft;)A+=k.currentPeek(),k.peek();return A}function b(k){const A=f(k);return k.skipToPeek(),A}function y(k){if(k===an)return!1;const A=k.charCodeAt(0);return A>=97&&A<=122||A>=65&&A<=90||A===95}function v(k){if(k===an)return!1;const A=k.charCodeAt(0);return A>=48&&A<=57}function p(k,A){const{currentType:V}=A;if(V!==2)return!1;f(k);const Q=y(k.currentPeek());return k.resetPeek(),Q}function m(k,A){const{currentType:V}=A;if(V!==2)return!1;f(k);const Q=k.currentPeek()==="-"?k.peek():k.currentPeek(),me=v(Q);return k.resetPeek(),me}function d(k,A){const{currentType:V}=A;if(V!==2)return!1;f(k);const Q=k.currentPeek()===_d;return k.resetPeek(),Q}function _(k,A){const{currentType:V}=A;if(V!==8)return!1;f(k);const Q=k.currentPeek()===".";return k.resetPeek(),Q}function L(k,A){const{currentType:V}=A;if(V!==9)return!1;f(k);const Q=y(k.currentPeek());return k.resetPeek(),Q}function O(k,A){const{currentType:V}=A;if(!(V===8||V===12))return!1;f(k);const Q=k.currentPeek()===":";return k.resetPeek(),Q}function S(k,A){const{currentType:V}=A;if(V!==10)return!1;const Q=()=>{const ge=k.currentPeek();return ge==="{"?y(k.peek()):ge==="@"||ge==="%"||ge==="|"||ge===":"||ge==="."||ge===Uo||!ge?!1:ge===Ft?(k.peek(),Q()):j(k,!1)},me=Q();return k.resetPeek(),me}function U(k){f(k);const A=k.currentPeek()==="|";return k.resetPeek(),A}function G(k){const A=f(k),V=k.currentPeek()==="%"&&k.peek()==="{";return k.resetPeek(),{isModulo:V,hasSpace:A.length>0}}function j(k,A=!0){const V=(me=!1,ge="",J=!1)=>{const N=k.currentPeek();return N==="{"?ge==="%"?!1:me:N==="@"||!N?ge==="%"?!0:me:N==="%"?(k.peek(),V(me,"%",!0)):N==="|"?ge==="%"||J?!0:!(ge===Uo||ge===Ft):N===Uo?(k.peek(),V(!0,Uo,J)):N===Ft?(k.peek(),V(!0,Ft,J)):!0},Q=V();return A&&k.resetPeek(),Q}function M(k,A){const V=k.currentChar();return V===an?an:A(V)?(k.next(),V):null}function E(k){const A=k.charCodeAt(0);return A>=97&&A<=122||A>=65&&A<=90||A>=48&&A<=57||A===95||A===36}function C(k){return M(k,E)}function P(k){const A=k.charCodeAt(0);return A>=97&&A<=122||A>=65&&A<=90||A>=48&&A<=57||A===95||A===36||A===45}function F(k){return M(k,P)}function q(k){const A=k.charCodeAt(0);return A>=48&&A<=57}function se(k){return M(k,q)}function Z(k){const A=k.charCodeAt(0);return A>=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102}function oe(k){return M(k,Z)}function H(k){let A="",V="";for(;A=se(k);)V+=A;return V}function fe(k){b(k);const A=k.currentChar();return A!=="%"&&g(Ne.EXPECTED_TOKEN,r(),0,A),k.next(),"%"}function Ae(k){let A="";for(;;){const V=k.currentChar();if(V==="{"||V==="}"||V==="@"||V==="|"||!V)break;if(V==="%")if(j(k))A+=V,k.next();else break;else if(V===Uo||V===Ft)if(j(k))A+=V,k.next();else{if(U(k))break;A+=V,k.next()}else A+=V,k.next()}return A}function xe(k){b(k);let A="",V="";for(;A=F(k);)V+=A;return k.currentChar()===an&&g(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),V}function Ce(k){b(k);let A="";return k.currentChar()==="-"?(k.next(),A+=`-${H(k)}`):A+=H(k),k.currentChar()===an&&g(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),A}function ce(k){return k!==_d&&k!==Ft}function le(k){b(k),x(k,"'");let A="",V="";for(;A=M(k,ce);)A==="\\"?V+=_e(k):V+=A;const Q=k.currentChar();return Q===Ft||Q===an?(g(Ne.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),Q===Ft&&(k.next(),x(k,"'")),V):(x(k,"'"),V)}function _e(k){const A=k.currentChar();switch(A){case"\\":case"'":return k.next(),`\\${A}`;case"u":return he(k,A,4);case"U":return he(k,A,6);default:return g(Ne.UNKNOWN_ESCAPE_SEQUENCE,r(),0,A),""}}function he(k,A,V){x(k,A);let Q="";for(let me=0;me{const Q=k.currentChar();return Q==="{"||Q==="%"||Q==="@"||Q==="|"||Q==="("||Q===")"||!Q||Q===Uo?V:(V+=Q,k.next(),A(V))};return A("")}function K(k){b(k);const A=x(k,"|");return b(k),A}function ee(k,A){let V=null;switch(k.currentChar()){case"{":return A.braceNest>=1&&g(Ne.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),k.next(),V=h(A,2,"{"),b(k),A.braceNest++,V;case"}":return A.braceNest>0&&A.currentType===2&&g(Ne.EMPTY_PLACEHOLDER,r(),0),k.next(),V=h(A,3,"}"),A.braceNest--,A.braceNest>0&&b(k),A.inLinked&&A.braceNest===0&&(A.inLinked=!1),V;case"@":return A.braceNest>0&&g(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),V=D(k,A)||w(A),A.braceNest=0,V;default:{let me=!0,ge=!0,J=!0;if(U(k))return A.braceNest>0&&g(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),V=h(A,1,K(k)),A.braceNest=0,A.inLinked=!1,V;if(A.braceNest>0&&(A.currentType===5||A.currentType===6||A.currentType===7))return g(Ne.UNTERMINATED_CLOSING_BRACE,r(),0),A.braceNest=0,ne(k,A);if(me=p(k,A))return V=h(A,5,xe(k)),b(k),V;if(ge=m(k,A))return V=h(A,6,Ce(k)),b(k),V;if(J=d(k,A))return V=h(A,7,le(k)),b(k),V;if(!me&&!ge&&!J)return V=h(A,13,$(k)),g(Ne.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,V.value),b(k),V;break}}return V}function D(k,A){const{currentType:V}=A;let Q=null;const me=k.currentChar();switch((V===8||V===9||V===12||V===10)&&(me===Ft||me===Uo)&&g(Ne.INVALID_LINKED_FORMAT,r(),0),me){case"@":return k.next(),Q=h(A,8,"@"),A.inLinked=!0,Q;case".":return b(k),k.next(),h(A,9,".");case":":return b(k),k.next(),h(A,10,":");default:return U(k)?(Q=h(A,1,K(k)),A.braceNest=0,A.inLinked=!1,Q):_(k,A)||O(k,A)?(b(k),D(k,A)):L(k,A)?(b(k),h(A,12,z(k))):S(k,A)?(b(k),me==="{"?ee(k,A)||Q:h(A,11,R(k))):(V===8&&g(Ne.INVALID_LINKED_FORMAT,r(),0),A.braceNest=0,A.inLinked=!1,ne(k,A))}}function ne(k,A){let V={type:14};if(A.braceNest>0)return ee(k,A)||w(A);if(A.inLinked)return D(k,A)||w(A);switch(k.currentChar()){case"{":return ee(k,A)||w(A);case"}":return g(Ne.UNBALANCED_CLOSING_BRACE,r(),0),k.next(),h(A,3,"}");case"@":return D(k,A)||w(A);default:{if(U(k))return V=h(A,1,K(k)),A.braceNest=0,A.inLinked=!1,V;const{isModulo:me,hasSpace:ge}=G(k);if(me)return ge?h(A,0,Ae(k)):h(A,4,fe(k));if(j(k))return h(A,0,Ae(k));break}}return V}function ae(){const{currentType:k,offset:A,startLoc:V,endLoc:Q}=l;return l.lastType=k,l.lastOffset=A,l.lastStartLoc=V,l.lastEndLoc=Q,l.offset=a(),l.startLoc=r(),n.currentChar()===an?h(l,14):ne(n,l)}return{nextToken:ae,currentOffset:a,currentPosition:r,context:c}}const v0="parser",_0=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function k0(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function x0(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(p,m,d,_,...L){const O=p.currentPosition();if(O.offset+=_,O.column+=_,o){const S=t?Qr(d,O):null,U=Wn(m,S,{domain:v0,args:L});o(U)}}function r(p,m,d,_,...L){const O=p.currentPosition();if(O.offset+=_,O.column+=_,n){const S=t?Qr(d,O):null;n(c0(m,S,L))}}function s(p,m,d){const _={type:p};return t&&(_.start=m,_.end=m,_.loc={start:d,end:d}),_}function i(p,m,d,_){t&&(p.end=m,p.loc&&(p.loc.end=d))}function l(p,m){const d=p.context(),_=s(3,d.offset,d.startLoc);return _.value=m,i(_,p.currentOffset(),p.currentPosition()),_}function c(p,m){const d=p.context(),{lastOffset:_,lastStartLoc:L}=d,O=s(5,_,L);return O.index=parseInt(m,10),p.nextToken(),i(O,p.currentOffset(),p.currentPosition()),O}function u(p,m,d){const _=p.context(),{lastOffset:L,lastStartLoc:O}=_,S=s(4,L,O);return S.key=m,d===!0&&(S.modulo=!0),p.nextToken(),i(S,p.currentOffset(),p.currentPosition()),S}function g(p,m){const d=p.context(),{lastOffset:_,lastStartLoc:L}=d,O=s(9,_,L);return O.value=m.replace(_0,k0),p.nextToken(),i(O,p.currentOffset(),p.currentPosition()),O}function h(p){const m=p.nextToken(),d=p.context(),{lastOffset:_,lastStartLoc:L}=d,O=s(8,_,L);return m.type!==12?(a(p,Ne.UNEXPECTED_EMPTY_LINKED_MODIFIER,d.lastStartLoc,0),O.value="",i(O,_,L),{nextConsumeToken:m,node:O}):(m.value==null&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,ao(m)),O.value=m.value||"",i(O,p.currentOffset(),p.currentPosition()),{node:O})}function w(p,m){const d=p.context(),_=s(7,d.offset,d.startLoc);return _.value=m,i(_,p.currentOffset(),p.currentPosition()),_}function x(p){const m=p.context(),d=s(6,m.offset,m.startLoc);let _=p.nextToken();if(_.type===9){const L=h(p);d.modifier=L.node,_=L.nextConsumeToken||p.nextToken()}switch(_.type!==10&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),_=p.nextToken(),_.type===2&&(_=p.nextToken()),_.type){case 11:_.value==null&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),d.key=w(p,_.value||"");break;case 5:_.value==null&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),d.key=u(p,_.value||"");break;case 6:_.value==null&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),d.key=c(p,_.value||"");break;case 7:_.value==null&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(_)),d.key=g(p,_.value||"");break;default:{a(p,Ne.UNEXPECTED_EMPTY_LINKED_KEY,m.lastStartLoc,0);const L=p.context(),O=s(7,L.offset,L.startLoc);return O.value="",i(O,L.offset,L.startLoc),d.key=O,i(d,L.offset,L.startLoc),{nextConsumeToken:_,node:d}}}return i(d,p.currentOffset(),p.currentPosition()),{node:d}}function f(p){const m=p.context(),d=m.currentType===1?p.currentOffset():m.offset,_=m.currentType===1?m.endLoc:m.startLoc,L=s(2,d,_);L.items=[];let O=null,S=null;do{const j=O||p.nextToken();switch(O=null,j.type){case 0:j.value==null&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(j)),L.items.push(l(p,j.value||""));break;case 6:j.value==null&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(j)),L.items.push(c(p,j.value||""));break;case 4:S=!0;break;case 5:j.value==null&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(j)),L.items.push(u(p,j.value||"",!!S)),S&&(r(p,$i.USE_MODULO_SYNTAX,m.lastStartLoc,0,ao(j)),S=null);break;case 7:j.value==null&&a(p,Ne.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,ao(j)),L.items.push(g(p,j.value||""));break;case 8:{const M=x(p);L.items.push(M.node),O=M.nextConsumeToken||null;break}}}while(m.currentType!==14&&m.currentType!==1);const U=m.currentType===1?m.lastOffset:p.currentOffset(),G=m.currentType===1?m.lastEndLoc:p.currentPosition();return i(L,U,G),L}function b(p,m,d,_){const L=p.context();let O=_.items.length===0;const S=s(1,m,d);S.cases=[],S.cases.push(_);do{const U=f(p);O||(O=U.items.length===0),S.cases.push(U)}while(L.currentType!==14);return O&&a(p,Ne.MUST_HAVE_MESSAGES_IN_PLURAL,d,0),i(S,p.currentOffset(),p.currentPosition()),S}function y(p){const m=p.context(),{offset:d,startLoc:_}=m,L=f(p);return m.currentType===14?L:b(p,d,_,L)}function v(p){const m=y0(p,bd({},e)),d=m.context(),_=s(0,d.offset,d.startLoc);return t&&_.loc&&(_.loc.source=p),_.body=y(m),e.onCacheKey&&(_.cacheKey=e.onCacheKey(p)),d.currentType!==14&&a(m,Ne.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,p[d.offset]||""),i(_,m.currentOffset(),m.currentPosition()),_}return{parse:v}}function ao(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function w0(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:r=>(o.helpers.add(r),r)}}function kd(e,t){for(let o=0;oxd(o)),e}function xd(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;os;function l(f,b){s.code+=f}function c(f,b=!0){const y=b?n:"";l(a?y+" ".repeat(f):y)}function u(f=!0){const b=++s.indentLevel;f&&c(b)}function g(f=!0){const b=--s.indentLevel;f&&c(b)}function h(){c(s.indentLevel)}return{context:i,push:l,indent:u,deindent:g,newline:h,helper:f=>`_${f}`,needIndent:()=>s.needIndent}}function E0(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),Xn(e,t.key),t.modifier?(e.push(", "),Xn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function T0(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let r=0;r1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let r=0;r{const o=yd(t.mode)?t.mode:"normal",n=yd(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` +`,r=t.needIndent?t.needIndent:o!=="arrow",s=e.helpers||[],i=$0(e,{filename:n,breakLineCode:a,needIndent:r});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${vd(s.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),Xn(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function M0(e,t={}){const o=bd({},t),n=!!o.jit,a=!!o.minify,r=o.optimize==null?!0:o.optimize,i=x0(o).parse(e);return n?(r&&A0(i),a&&Yn(i),{ast:i,code:""}):(S0(i,o),I0(i,o))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function F0(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Uo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Uo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Uo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function _o(e){return Ve(e)&&Ti(e)===0&&(no(e,"b")||no(e,"body"))}const xd=["b","body"];function R0(e){return rn(e,xd)}const Sd=["c","cases"];function D0(e){return rn(e,Sd,[])}const Ad=["s","static"];function O0(e){return rn(e,Ad)}const Ld=["i","items"];function B0(e){return rn(e,Ld,[])}const Cd=["t","type"];function Ti(e){return rn(e,Cd)}const $d=["v","value"];function es(e,t){const o=rn(e,$d);if(o!=null)return o;throw Ga(t)}const Ed=["m","modifier"];function j0(e){return rn(e,Ed)}const Td=["k","key"];function U0(e){const t=rn(e,Td);if(t)return t;throw Ga(6)}function rn(e,t,o){for(let n=0;n{s===void 0?s=i:s+=i},h[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},h[2]=()=>{h[0](),a++},h[3]=()=>{if(a>0)a--,n=4,h[0]();else{if(a=0,s===void 0||(s=V0(s),s===!1))return!1;h[1]()}};function x(){const w=e[o+1];if(n===5&&w==="'"||n===6&&w==='"')return o++,i="\\"+w,h[0](),!0}for(;n!==null;)if(o++,r=e[o],!(r==="\\"&&x())){if(l=H0(r),p=sn[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(i=r,u()===!1))))return;if(n===7)return t}}const Nd=new Map;function W0(e,t){return Ve(e)?e[t]:null}function Y0(e,t){if(!Ve(e))return null;let o=Nd.get(t);if(o||(o=q0(t),o&&Nd.set(t,o)),!o)return null;const n=o.length;let a=e,r=0;for(;re,J0=e=>"",Z0="text",Q0=e=>e.length===0?"":a0(e),ev=n0;function Id(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function tv(e){const t=ft(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(ft(e.named.count)||ft(e.named.n))?ft(e.named.count)?e.named.count:ft(e.named.n)?e.named.n:t:t}function ov(e,t){t.count||(t.count=e),t.n||(t.n=e)}function nv(e={}){const t=e.locale,o=tv(e),n=Ve(e.pluralRules)&&ke(t)&&at(e.pluralRules[t])?e.pluralRules[t]:Id,a=Ve(e.pluralRules)&&ke(t)&&at(e.pluralRules[t])?Id:void 0,r=y=>y[n(o,y.length,a)],s=e.list||[],i=y=>s[y],l=e.named||Ze();ft(e.pluralIndex)&&ov(o,l);const c=y=>l[y];function u(y){const v=at(e.messages)?e.messages(y):Ve(e.messages)?e.messages[y]:!1;return v||(e.parent?e.parent.message(y):J0)}const p=y=>e.modifiers?e.modifiers[y]:X0,h=De(e.processor)&&at(e.processor.normalize)?e.processor.normalize:Q0,x=De(e.processor)&&at(e.processor.interpolate)?e.processor.interpolate:ev,w=De(e.processor)&&ke(e.processor.type)?e.processor.type:Z0,b={list:i,named:c,plural:r,linked:(y,...v)=>{const[g,m]=v;let d="text",_="";v.length===1?Ve(g)?(_=g.modifier||_,d=g.type||d):ke(g)&&(_=g||_):v.length===2&&(ke(g)&&(_=g||_),ke(m)&&(d=m||d));const L=u(y)(b),O=d==="vnode"&<(L)&&_?L[0]:L;return _?p(_)(O,d):O},message:u,type:w,interpolate:x,normalize:h,values:Ct(Ze(),s,l)};return b}let Ka=null;function av(e){Ka=e}function rv(e,t,o){Ka&&Ka.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const sv=iv("function:translate");function iv(e){return t=>Ka&&Ka.emit(e,t)}const lv=$i.__EXTEND_POINT__,Sn=Xr(lv),cv={FALLBACK_TO_TRANSLATE:Sn(),CANNOT_FORMAT_NUMBER:Sn(),FALLBACK_TO_NUMBER_FORMAT:Sn(),CANNOT_FORMAT_DATE:Sn(),FALLBACK_TO_DATE_FORMAT:Sn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Sn(),__EXTEND_POINT__:Sn()},Md=Ne.__EXTEND_POINT__,An=Xr(Md),ro={INVALID_ARGUMENT:Md,INVALID_DATE_ARGUMENT:An(),INVALID_ISO_DATE_ARGUMENT:An(),NOT_SUPPORT_NON_STRING_MESSAGE:An(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:An(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:An(),NOT_SUPPORT_LOCALE_TYPE:An(),__EXTEND_POINT__:An()};function ko(e){return Wn(e,null,void 0)}function Pi(e,t){return t.locale!=null?Fd(t.locale):Fd(e.locale)}let Ni;function Fd(e){if(ke(e))return e;if(at(e)){if(e.resolvedOnce&&Ni!=null)return Ni;if(e.constructor.name==="Function"){const t=e();if(o0(t))throw ko(ro.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Ni=t}else throw ko(ro.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw ko(ro.NOT_SUPPORT_LOCALE_TYPE)}function uv(e,t,o){return[...new Set([o,...lt(t)?t:Ve(t)?Object.keys(t):ke(t)?[t]:[o]])]}function Rd(e,t,o){const n=ke(o)?o:Jn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(n);if(!r){r=[];let s=[o];for(;lt(s);)s=Dd(r,s,t);const i=lt(t)||!De(t)?t:t.default?t.default:null;s=ke(i)?[i]:i,lt(s)&&Dd(r,s,!1),a.__localeChainCache.set(n,r)}return r}function Dd(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function fv(){return{upper:(e,t)=>t==="text"&&ke(e)?e.toUpperCase():t==="vnode"&&Ve(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&ke(e)?e.toLowerCase():t==="vnode"&&Ve(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&ke(e)?Bd(e):t==="vnode"&&Ve(e)&&"__v_isVNode"in e?Bd(e.children):e}}let jd;function Ud(e){jd=e}let zd;function hv(e){zd=e}let Gd;function mv(e){Gd=e}let Kd=null;const bv=e=>{Kd=e},yv=()=>Kd;let Hd=null;const Vd=e=>{Hd=e},vv=()=>Hd;let qd=0;function _v(e={}){const t=at(e.onWarn)?e.onWarn:Yy,o=ke(e.version)?e.version:pv,n=ke(e.locale)||at(e.locale)?e.locale:Jn,a=at(n)?Jn:n,r=lt(e.fallbackLocale)||De(e.fallbackLocale)||ke(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=De(e.messages)?e.messages:Ii(a),i=De(e.datetimeFormats)?e.datetimeFormats:Ii(a),l=De(e.numberFormats)?e.numberFormats:Ii(a),c=Ct(Ze(),e.modifiers,fv()),u=e.pluralRules||Ze(),p=at(e.missing)?e.missing:null,h=je(e.missingWarn)||nn(e.missingWarn)?e.missingWarn:!0,x=je(e.fallbackWarn)||nn(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,f=!!e.unresolving,b=at(e.postTranslation)?e.postTranslation:null,y=De(e.processor)?e.processor:null,v=je(e.warnHtmlMessage)?e.warnHtmlMessage:!0,g=!!e.escapeParameter,m=at(e.messageCompiler)?e.messageCompiler:jd,d=at(e.messageResolver)?e.messageResolver:zd||W0,_=at(e.localeFallbacker)?e.localeFallbacker:Gd||uv,L=Ve(e.fallbackContext)?e.fallbackContext:void 0,O=e,S=Ve(O.__datetimeFormatters)?O.__datetimeFormatters:new Map,z=Ve(O.__numberFormatters)?O.__numberFormatters:new Map,G=Ve(O.__meta)?O.__meta:{};qd++;const j={version:o,cid:qd,locale:n,fallbackLocale:r,messages:s,modifiers:c,pluralRules:u,missing:p,missingWarn:h,fallbackWarn:x,fallbackFormat:w,unresolving:f,postTranslation:b,processor:y,warnHtmlMessage:v,escapeParameter:g,messageCompiler:m,messageResolver:d,localeFallbacker:_,fallbackContext:L,onWarn:t,__meta:G};return j.datetimeFormats=i,j.numberFormats=l,j.__datetimeFormatters=S,j.__numberFormatters=z,__INTLIFY_PROD_DEVTOOLS__&&rv(j,o,G),j}const Ii=e=>({[e]:Ze()});function Mi(e,t,o,n,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,o,t,a);return ke(i)?i:t}else return t}function Ha(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function kv(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function wv(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nxv(o,e)}function xv(e,t){const o=R0(t);if(o==null)throw Ga(0);if(Ti(o)===1){const r=D0(o);return e.plural(r.reduce((s,i)=>[...s,Wd(e,i)],[]))}else return Wd(e,o)}function Wd(e,t){const o=O0(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=B0(t).reduce((a,r)=>[...a,Ri(e,r)],[]);return e.normalize(n)}}function Ri(e,t){const o=Ti(t);switch(o){case 3:return es(t,o);case 9:return es(t,o);case 4:{const n=t;if(no(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(no(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Ga(o)}case 5:{const n=t;if(no(n,"i")&&ft(n.i))return e.interpolate(e.list(n.i));if(no(n,"index")&&ft(n.index))return e.interpolate(e.list(n.index));throw Ga(o)}case 6:{const n=t,a=j0(n),r=U0(n);return e.linked(Ri(e,r),a?Ri(e,a):void 0,e.type)}case 7:return es(t,o);case 8:return es(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Yd=e=>e;let Zn=Ze();function Xd(e,t={}){let o=!1;const n=t.onError||d0;return t.onError=a=>{o=!0,n(a)},{...M0(e,t),detectError:o}}const Sv=(e,t)=>{if(!ke(e))throw ko(ro.NOT_SUPPORT_NON_STRING_MESSAGE);{je(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Yd)(e),a=Zn[n];if(a)return a;const{code:r,detectError:s}=Xd(e,t),i=new Function(`return ${r}`)();return s?i:Zn[n]=i}};function Av(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&ke(e)){je(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Yd)(e),a=Zn[n];if(a)return a;const{ast:r,detectError:s}=Xd(e,{...t,location:!1,jit:!0}),i=Fi(r);return s?i:Zn[n]=i}else{const o=e.cacheKey;if(o){const n=Zn[o];return n||(Zn[o]=Fi(e))}else return Fi(e)}}const Jd=()=>"",Zt=e=>at(e);function Zd(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,c]=Di(...t),u=je(c.missingWarn)?c.missingWarn:e.missingWarn,p=je(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=je(c.escapeParameter)?c.escapeParameter:e.escapeParameter,x=!!c.resolvedMessage,w=ke(c.default)||je(c.default)?je(c.default)?r?l:()=>l:c.default:o?r?l:()=>l:"",f=o||w!=="",b=Pi(e,c);h&&Lv(c);let[y,v,g]=x?[l,b,i[b]||Ze()]:Qd(e,l,b,s,p,u),m=y,d=l;if(!x&&!(ke(m)||_o(m)||Zt(m))&&f&&(m=w,d=m),!x&&(!(ke(m)||_o(m)||Zt(m))||!ke(v)))return a?ts:l;let _=!1;const L=()=>{_=!0},O=Zt(m)?m:eg(e,l,v,m,d,L);if(_)return m;const S=Ev(e,v,g,c),z=nv(S),G=Cv(e,O,z);let j=n?n(G,l):G;if(h&&ke(j)&&(j=e0(j)),__INTLIFY_PROD_DEVTOOLS__){const M={timestamp:Date.now(),key:ke(l)?l:Zt(m)?m.key:"",locale:v||(Zt(m)?m.locale:""),format:ke(m)?m:Zt(m)?m.source:"",message:j};M.meta=Ct({},e.__meta,yv()||{}),sv(M)}return j}function Lv(e){lt(e.list)?e.list=e.list.map(t=>ke(t)?gd(t):t):Ve(e.named)&&Object.keys(e.named).forEach(t=>{ke(e.named[t])&&(e.named[t]=gd(e.named[t]))})}function Qd(e,t,o,n,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=Ze(),h,x=null;const w="translate";for(let f=0;fn;return c.locale=o,c.key=t,c}const l=s(n,$v(e,o,a,n,i,r));return l.locale=o,l.key=t,l.source=n,l}function Cv(e,t,o){return t(o)}function Di(...e){const[t,o,n]=e,a=Ze();if(!ke(t)&&!ft(t)&&!Zt(t)&&!_o(t))throw ko(ro.INVALID_ARGUMENT);const r=ft(t)?String(t):(Zt(t),t);return ft(o)?a.plural=o:ke(o)?a.default=o:De(o)&&!Yr(o)?a.named=o:lt(o)&&(a.list=o),ft(n)?a.plural=n:ke(n)?a.default=n:De(n)&&Ct(a,n),[r,a]}function $v(e,t,o,n,a,r){return{locale:t,key:o,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>Xy(t,o,s)}}function Ev(e,t,o,n){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:a,pluralRules:r,messages:x=>{let w=s(o,x);if(w==null&&u){const[,,f]=Qd(u,x,t,i,l,c);w=s(f,x)}if(ke(w)||_o(w)){let f=!1;const y=eg(e,x,t,w,x,()=>{f=!0});return f?Jd:y}else return Zt(w)?w:Jd}};return e.processor&&(h.processor=e.processor),n.list&&(h.list=n.list),n.named&&(h.named=n.named),ft(n.plural)&&(h.pluralIndex=n.plural),h}function tg(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=Oi(...t),h=je(u.missingWarn)?u.missingWarn:e.missingWarn;je(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const x=!!u.part,w=Pi(e,u),f=s(e,a,w);if(!ke(l)||l==="")return new Intl.DateTimeFormat(w,p).format(c);let b={},y,v=null;const g="datetime format";for(let _=0;_{og.includes(l)?s[l]=o[l]:r[l]=o[l]}),ke(n)?r.locale=n:De(n)&&(s=n),De(a)&&(s=a),[r.key||"",i,r,s]}function ng(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function ag(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,c,u,p]=Bi(...t),h=je(u.missingWarn)?u.missingWarn:e.missingWarn;je(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const x=!!u.part,w=Pi(e,u),f=s(e,a,w);if(!ke(l)||l==="")return new Intl.NumberFormat(w,p).format(c);let b={},y,v=null;const g="number format";for(let _=0;_{rg.includes(l)?s[l]=o[l]:r[l]=o[l]}),ke(n)?r.locale=n:De(n)&&(s=n),De(a)&&(s=a),[r.key||"",i,r,s]}function sg(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}F0();/*! + */function F0(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(zo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(zo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(zo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function _o(e){return Ve(e)&&Ti(e)===0&&(no(e,"b")||no(e,"body"))}const wd=["b","body"];function R0(e){return rn(e,wd)}const Sd=["c","cases"];function D0(e){return rn(e,Sd,[])}const Ad=["s","static"];function O0(e){return rn(e,Ad)}const Ld=["i","items"];function B0(e){return rn(e,Ld,[])}const Cd=["t","type"];function Ti(e){return rn(e,Cd)}const $d=["v","value"];function es(e,t){const o=rn(e,$d);if(o!=null)return o;throw Ga(t)}const Ed=["m","modifier"];function j0(e){return rn(e,Ed)}const Td=["k","key"];function z0(e){const t=rn(e,Td);if(t)return t;throw Ga(6)}function rn(e,t,o){for(let n=0;n{s===void 0?s=i:s+=i},h[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},h[2]=()=>{h[0](),a++},h[3]=()=>{if(a>0)a--,n=4,h[0]();else{if(a=0,s===void 0||(s=V0(s),s===!1))return!1;h[1]()}};function w(){const x=e[o+1];if(n===5&&x==="'"||n===6&&x==='"')return o++,i="\\"+x,h[0](),!0}for(;n!==null;)if(o++,r=e[o],!(r==="\\"&&w())){if(l=H0(r),g=sn[n],c=g[l]||g.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(i=r,u()===!1))))return;if(n===7)return t}}const Nd=new Map;function W0(e,t){return Ve(e)?e[t]:null}function Y0(e,t){if(!Ve(e))return null;let o=Nd.get(t);if(o||(o=q0(t),o&&Nd.set(t,o)),!o)return null;const n=o.length;let a=e,r=0;for(;re,J0=e=>"",Z0="text",Q0=e=>e.length===0?"":a0(e),ev=n0;function Id(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function tv(e){const t=ft(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(ft(e.named.count)||ft(e.named.n))?ft(e.named.count)?e.named.count:ft(e.named.n)?e.named.n:t:t}function ov(e,t){t.count||(t.count=e),t.n||(t.n=e)}function nv(e={}){const t=e.locale,o=tv(e),n=Ve(e.pluralRules)&&ke(t)&&at(e.pluralRules[t])?e.pluralRules[t]:Id,a=Ve(e.pluralRules)&&ke(t)&&at(e.pluralRules[t])?Id:void 0,r=y=>y[n(o,y.length,a)],s=e.list||[],i=y=>s[y],l=e.named||Ze();ft(e.pluralIndex)&&ov(o,l);const c=y=>l[y];function u(y){const v=at(e.messages)?e.messages(y):Ve(e.messages)?e.messages[y]:!1;return v||(e.parent?e.parent.message(y):J0)}const g=y=>e.modifiers?e.modifiers[y]:X0,h=De(e.processor)&&at(e.processor.normalize)?e.processor.normalize:Q0,w=De(e.processor)&&at(e.processor.interpolate)?e.processor.interpolate:ev,x=De(e.processor)&&ke(e.processor.type)?e.processor.type:Z0,b={list:i,named:c,plural:r,linked:(y,...v)=>{const[p,m]=v;let d="text",_="";v.length===1?Ve(p)?(_=p.modifier||_,d=p.type||d):ke(p)&&(_=p||_):v.length===2&&(ke(p)&&(_=p||_),ke(m)&&(d=m||d));const L=u(y)(b),O=d==="vnode"&<(L)&&_?L[0]:L;return _?g(_)(O,d):O},message:u,type:x,interpolate:w,normalize:h,values:Ct(Ze(),s,l)};return b}let Ka=null;function av(e){Ka=e}function rv(e,t,o){Ka&&Ka.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const sv=iv("function:translate");function iv(e){return t=>Ka&&Ka.emit(e,t)}const lv=$i.__EXTEND_POINT__,Sn=Xr(lv),cv={FALLBACK_TO_TRANSLATE:Sn(),CANNOT_FORMAT_NUMBER:Sn(),FALLBACK_TO_NUMBER_FORMAT:Sn(),CANNOT_FORMAT_DATE:Sn(),FALLBACK_TO_DATE_FORMAT:Sn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Sn(),__EXTEND_POINT__:Sn()},Md=Ne.__EXTEND_POINT__,An=Xr(Md),ro={INVALID_ARGUMENT:Md,INVALID_DATE_ARGUMENT:An(),INVALID_ISO_DATE_ARGUMENT:An(),NOT_SUPPORT_NON_STRING_MESSAGE:An(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:An(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:An(),NOT_SUPPORT_LOCALE_TYPE:An(),__EXTEND_POINT__:An()};function ko(e){return Wn(e,null,void 0)}function Pi(e,t){return t.locale!=null?Fd(t.locale):Fd(e.locale)}let Ni;function Fd(e){if(ke(e))return e;if(at(e)){if(e.resolvedOnce&&Ni!=null)return Ni;if(e.constructor.name==="Function"){const t=e();if(o0(t))throw ko(ro.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Ni=t}else throw ko(ro.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw ko(ro.NOT_SUPPORT_LOCALE_TYPE)}function uv(e,t,o){return[...new Set([o,...lt(t)?t:Ve(t)?Object.keys(t):ke(t)?[t]:[o]])]}function Rd(e,t,o){const n=ke(o)?o:Jn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(n);if(!r){r=[];let s=[o];for(;lt(s);)s=Dd(r,s,t);const i=lt(t)||!De(t)?t:t.default?t.default:null;s=ke(i)?[i]:i,lt(s)&&Dd(r,s,!1),a.__localeChainCache.set(n,r)}return r}function Dd(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function fv(){return{upper:(e,t)=>t==="text"&&ke(e)?e.toUpperCase():t==="vnode"&&Ve(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&ke(e)?e.toLowerCase():t==="vnode"&&Ve(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&ke(e)?Bd(e):t==="vnode"&&Ve(e)&&"__v_isVNode"in e?Bd(e.children):e}}let jd;function zd(e){jd=e}let Ud;function hv(e){Ud=e}let Gd;function mv(e){Gd=e}let Kd=null;const bv=e=>{Kd=e},yv=()=>Kd;let Hd=null;const Vd=e=>{Hd=e},vv=()=>Hd;let qd=0;function _v(e={}){const t=at(e.onWarn)?e.onWarn:Yy,o=ke(e.version)?e.version:gv,n=ke(e.locale)||at(e.locale)?e.locale:Jn,a=at(n)?Jn:n,r=lt(e.fallbackLocale)||De(e.fallbackLocale)||ke(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=De(e.messages)?e.messages:Ii(a),i=De(e.datetimeFormats)?e.datetimeFormats:Ii(a),l=De(e.numberFormats)?e.numberFormats:Ii(a),c=Ct(Ze(),e.modifiers,fv()),u=e.pluralRules||Ze(),g=at(e.missing)?e.missing:null,h=je(e.missingWarn)||nn(e.missingWarn)?e.missingWarn:!0,w=je(e.fallbackWarn)||nn(e.fallbackWarn)?e.fallbackWarn:!0,x=!!e.fallbackFormat,f=!!e.unresolving,b=at(e.postTranslation)?e.postTranslation:null,y=De(e.processor)?e.processor:null,v=je(e.warnHtmlMessage)?e.warnHtmlMessage:!0,p=!!e.escapeParameter,m=at(e.messageCompiler)?e.messageCompiler:jd,d=at(e.messageResolver)?e.messageResolver:Ud||W0,_=at(e.localeFallbacker)?e.localeFallbacker:Gd||uv,L=Ve(e.fallbackContext)?e.fallbackContext:void 0,O=e,S=Ve(O.__datetimeFormatters)?O.__datetimeFormatters:new Map,U=Ve(O.__numberFormatters)?O.__numberFormatters:new Map,G=Ve(O.__meta)?O.__meta:{};qd++;const j={version:o,cid:qd,locale:n,fallbackLocale:r,messages:s,modifiers:c,pluralRules:u,missing:g,missingWarn:h,fallbackWarn:w,fallbackFormat:x,unresolving:f,postTranslation:b,processor:y,warnHtmlMessage:v,escapeParameter:p,messageCompiler:m,messageResolver:d,localeFallbacker:_,fallbackContext:L,onWarn:t,__meta:G};return j.datetimeFormats=i,j.numberFormats=l,j.__datetimeFormatters=S,j.__numberFormatters=U,__INTLIFY_PROD_DEVTOOLS__&&rv(j,o,G),j}const Ii=e=>({[e]:Ze()});function Mi(e,t,o,n,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,o,t,a);return ke(i)?i:t}else return t}function Ha(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function kv(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function xv(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nwv(o,e)}function wv(e,t){const o=R0(t);if(o==null)throw Ga(0);if(Ti(o)===1){const r=D0(o);return e.plural(r.reduce((s,i)=>[...s,Wd(e,i)],[]))}else return Wd(e,o)}function Wd(e,t){const o=O0(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=B0(t).reduce((a,r)=>[...a,Ri(e,r)],[]);return e.normalize(n)}}function Ri(e,t){const o=Ti(t);switch(o){case 3:return es(t,o);case 9:return es(t,o);case 4:{const n=t;if(no(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(no(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Ga(o)}case 5:{const n=t;if(no(n,"i")&&ft(n.i))return e.interpolate(e.list(n.i));if(no(n,"index")&&ft(n.index))return e.interpolate(e.list(n.index));throw Ga(o)}case 6:{const n=t,a=j0(n),r=z0(n);return e.linked(Ri(e,r),a?Ri(e,a):void 0,e.type)}case 7:return es(t,o);case 8:return es(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Yd=e=>e;let Zn=Ze();function Xd(e,t={}){let o=!1;const n=t.onError||d0;return t.onError=a=>{o=!0,n(a)},{...M0(e,t),detectError:o}}const Sv=(e,t)=>{if(!ke(e))throw ko(ro.NOT_SUPPORT_NON_STRING_MESSAGE);{je(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Yd)(e),a=Zn[n];if(a)return a;const{code:r,detectError:s}=Xd(e,t),i=new Function(`return ${r}`)();return s?i:Zn[n]=i}};function Av(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&ke(e)){je(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Yd)(e),a=Zn[n];if(a)return a;const{ast:r,detectError:s}=Xd(e,{...t,location:!1,jit:!0}),i=Fi(r);return s?i:Zn[n]=i}else{const o=e.cacheKey;if(o){const n=Zn[o];return n||(Zn[o]=Fi(e))}else return Fi(e)}}const Jd=()=>"",Zt=e=>at(e);function Zd(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,c]=Di(...t),u=je(c.missingWarn)?c.missingWarn:e.missingWarn,g=je(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=je(c.escapeParameter)?c.escapeParameter:e.escapeParameter,w=!!c.resolvedMessage,x=ke(c.default)||je(c.default)?je(c.default)?r?l:()=>l:c.default:o?r?l:()=>l:"",f=o||x!=="",b=Pi(e,c);h&&Lv(c);let[y,v,p]=w?[l,b,i[b]||Ze()]:Qd(e,l,b,s,g,u),m=y,d=l;if(!w&&!(ke(m)||_o(m)||Zt(m))&&f&&(m=x,d=m),!w&&(!(ke(m)||_o(m)||Zt(m))||!ke(v)))return a?ts:l;let _=!1;const L=()=>{_=!0},O=Zt(m)?m:ep(e,l,v,m,d,L);if(_)return m;const S=Ev(e,v,p,c),U=nv(S),G=Cv(e,O,U);let j=n?n(G,l):G;if(h&&ke(j)&&(j=e0(j)),__INTLIFY_PROD_DEVTOOLS__){const M={timestamp:Date.now(),key:ke(l)?l:Zt(m)?m.key:"",locale:v||(Zt(m)?m.locale:""),format:ke(m)?m:Zt(m)?m.source:"",message:j};M.meta=Ct({},e.__meta,yv()||{}),sv(M)}return j}function Lv(e){lt(e.list)?e.list=e.list.map(t=>ke(t)?pd(t):t):Ve(e.named)&&Object.keys(e.named).forEach(t=>{ke(e.named[t])&&(e.named[t]=pd(e.named[t]))})}function Qd(e,t,o,n,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let g=Ze(),h,w=null;const x="translate";for(let f=0;fn;return c.locale=o,c.key=t,c}const l=s(n,$v(e,o,a,n,i,r));return l.locale=o,l.key=t,l.source=n,l}function Cv(e,t,o){return t(o)}function Di(...e){const[t,o,n]=e,a=Ze();if(!ke(t)&&!ft(t)&&!Zt(t)&&!_o(t))throw ko(ro.INVALID_ARGUMENT);const r=ft(t)?String(t):(Zt(t),t);return ft(o)?a.plural=o:ke(o)?a.default=o:De(o)&&!Yr(o)?a.named=o:lt(o)&&(a.list=o),ft(n)?a.plural=n:ke(n)?a.default=n:De(n)&&Ct(a,n),[r,a]}function $v(e,t,o,n,a,r){return{locale:t,key:o,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>Xy(t,o,s)}}function Ev(e,t,o,n){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:a,pluralRules:r,messages:w=>{let x=s(o,w);if(x==null&&u){const[,,f]=Qd(u,w,t,i,l,c);x=s(f,w)}if(ke(x)||_o(x)){let f=!1;const y=ep(e,w,t,x,w,()=>{f=!0});return f?Jd:y}else return Zt(x)?x:Jd}};return e.processor&&(h.processor=e.processor),n.list&&(h.list=n.list),n.named&&(h.named=n.named),ft(n.plural)&&(h.pluralIndex=n.plural),h}function tp(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,c,u,g]=Oi(...t),h=je(u.missingWarn)?u.missingWarn:e.missingWarn;je(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const w=!!u.part,x=Pi(e,u),f=s(e,a,x);if(!ke(l)||l==="")return new Intl.DateTimeFormat(x,g).format(c);let b={},y,v=null;const p="datetime format";for(let _=0;_{op.includes(l)?s[l]=o[l]:r[l]=o[l]}),ke(n)?r.locale=n:De(n)&&(s=n),De(a)&&(s=a),[r.key||"",i,r,s]}function np(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function ap(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,c,u,g]=Bi(...t),h=je(u.missingWarn)?u.missingWarn:e.missingWarn;je(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const w=!!u.part,x=Pi(e,u),f=s(e,a,x);if(!ke(l)||l==="")return new Intl.NumberFormat(x,g).format(c);let b={},y,v=null;const p="number format";for(let _=0;_{rp.includes(l)?s[l]=o[l]:r[l]=o[l]}),ke(n)?r.locale=n:De(n)&&(s=n),De(a)&&(s=a),[r.key||"",i,r,s]}function sp(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}F0();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const Tv="9.14.5";function Pv(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Uo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Uo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Uo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Uo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Uo().__INTLIFY_PROD_DEVTOOLS__=!1)}const Nv=cv.__EXTEND_POINT__,Go=Xr(Nv);Go(),Go(),Go(),Go(),Go(),Go(),Go(),Go(),Go();const ig=ro.__EXTEND_POINT__,Ot=Xr(ig),bt={UNEXPECTED_RETURN_TYPE:ig,INVALID_ARGUMENT:Ot(),MUST_BE_CALL_SETUP_TOP:Ot(),NOT_INSTALLED:Ot(),NOT_AVAILABLE_IN_LEGACY_MODE:Ot(),REQUIRED_VALUE:Ot(),INVALID_VALUE:Ot(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ot(),NOT_INSTALLED_WITH_PROVIDE:Ot(),UNEXPECTED_ERROR:Ot(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ot(),BRIDGE_SUPPORT_VUE_2_ONLY:Ot(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ot(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ot(),__EXTEND_POINT__:Ot()};function wt(e,...t){return Wn(e,null,void 0)}const ji=on("__translateVNode"),Ui=on("__datetimeParts"),zi=on("__numberParts"),lg=on("__setPluralRules"),cg=on("__injectWithOption"),Gi=on("__dispose");function Va(e){if(!Ve(e)||_o(e))return e;for(const t in e)if(no(e,t))if(!t.includes("."))Ve(e[t])&&Va(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,r=!1;for(let s=0;s{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(s[l]=s[l]||Ze(),Zr(c,s[l])):Zr(c,s)}else ke(i)&&Zr(JSON.parse(i),s)}),a==null&&r)for(const i in s)no(s,i)&&Va(s[i]);return s}function ug(e){return e.type}function dg(e,t,o){let n=Ve(t.messages)?t.messages:Ze();"__i18nGlobal"in o&&(n=os(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(Ve(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(Ve(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function gg(e){return Je(Na,null,e,0)}const pg="__INTLIFY_META__",fg=()=>[],Iv=()=>!1;let hg=0;function mg(e){return(t,o,n,a)=>e(o,n,yo()||void 0,a)}const Mv=()=>{const e=yo();let t=null;return e&&(t=ug(e)[pg])?{[pg]:t}:null};function Ki(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,r=e.flatJson,s=Wr?ue:xr,i=!!e.translateExistCompatible;let l=je(e.inheritLocale)?e.inheritLocale:!0;const c=s(o&&l?o.locale.value:ke(e.locale)?e.locale:Jn),u=s(o&&l?o.fallbackLocale.value:ke(e.fallbackLocale)||lt(e.fallbackLocale)||De(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=s(os(c.value,e)),h=s(De(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),x=s(De(e.numberFormats)?e.numberFormats:{[c.value]:{}});let w=o?o.missingWarn:je(e.missingWarn)||nn(e.missingWarn)?e.missingWarn:!0,f=o?o.fallbackWarn:je(e.fallbackWarn)||nn(e.fallbackWarn)?e.fallbackWarn:!0,b=o?o.fallbackRoot:je(e.fallbackRoot)?e.fallbackRoot:!0,y=!!e.fallbackFormat,v=at(e.missing)?e.missing:null,g=at(e.missing)?mg(e.missing):null,m=at(e.postTranslation)?e.postTranslation:null,d=o?o.warnHtmlMessage:je(e.warnHtmlMessage)?e.warnHtmlMessage:!0,_=!!e.escapeParameter;const L=o?o.modifiers:De(e.modifiers)?e.modifiers:{};let O=e.pluralRules||o&&o.pluralRules,S;S=(()=>{a&&Vd(null);const J={version:Tv,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:L,pluralRules:O,missing:g===null?void 0:g,missingWarn:w,fallbackWarn:f,fallbackFormat:y,unresolving:!0,postTranslation:m===null?void 0:m,warnHtmlMessage:d,escapeParameter:_,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};J.datetimeFormats=h.value,J.numberFormats=x.value,J.__datetimeFormatters=De(S)?S.__datetimeFormatters:void 0,J.__numberFormatters=De(S)?S.__numberFormatters:void 0;const N=_v(J);return a&&Vd(N),N})(),Ha(S,c.value,u.value);function G(){return[c.value,u.value,p.value,h.value,x.value]}const j=te({get:()=>c.value,set:J=>{c.value=J,S.locale=c.value}}),M=te({get:()=>u.value,set:J=>{u.value=J,S.fallbackLocale=u.value,Ha(S,c.value,J)}}),E=te(()=>p.value),C=te(()=>h.value),P=te(()=>x.value);function F(){return at(m)?m:null}function q(J){m=J,S.postTranslation=J}function se(){return v}function Z(J){J!==null&&(g=mg(J)),v=J,S.missing=g}const oe=(J,N,W,ge,be,Le)=>{G();let Oe;try{__INTLIFY_PROD_DEVTOOLS__,a||(S.fallbackContext=o?vv():void 0),Oe=J(S)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(S.fallbackContext=void 0)}if(W!=="translate exists"&&ft(Oe)&&Oe===ts||W==="translate exists"&&!Oe){const[Ie,ct]=N();return o&&b?ge(o):be(Ie)}else{if(Le(Oe))return Oe;throw wt(bt.UNEXPECTED_RETURN_TYPE)}};function H(...J){return oe(N=>Reflect.apply(Zd,null,[N,...J]),()=>Di(...J),"translate",N=>Reflect.apply(N.t,N,[...J]),N=>N,N=>ke(N))}function fe(...J){const[N,W,ge]=J;if(ge&&!Ve(ge))throw wt(bt.INVALID_ARGUMENT);return H(N,W,Ct({resolvedMessage:!0},ge||{}))}function Ae(...J){return oe(N=>Reflect.apply(tg,null,[N,...J]),()=>Oi(...J),"datetime format",N=>Reflect.apply(N.d,N,[...J]),()=>Od,N=>ke(N))}function we(...J){return oe(N=>Reflect.apply(ag,null,[N,...J]),()=>Bi(...J),"number format",N=>Reflect.apply(N.n,N,[...J]),()=>Od,N=>ke(N))}function Ce(J){return J.map(N=>ke(N)||ft(N)||je(N)?gg(String(N)):N)}const le={normalize:Ce,interpolate:J=>J,type:"vnode"};function _e(...J){return oe(N=>{let W;const ge=N;try{ge.processor=le,W=Reflect.apply(Zd,null,[ge,...J])}finally{ge.processor=null}return W},()=>Di(...J),"translate",N=>N[ji](...J),N=>[gg(N)],N=>lt(N))}function he(...J){return oe(N=>Reflect.apply(ag,null,[N,...J]),()=>Bi(...J),"number format",N=>N[zi](...J),fg,N=>ke(N)||lt(N))}function xe(...J){return oe(N=>Reflect.apply(tg,null,[N,...J]),()=>Oi(...J),"datetime format",N=>N[Ui](...J),fg,N=>ke(N)||lt(N))}function $(J){O=J,S.pluralRules=O}function U(J,N){return oe(()=>{if(!J)return!1;const W=ke(N)?N:c.value,ge=ee(W),be=S.messageResolver(ge,J);return i?be!=null:_o(be)||Zt(be)||ke(be)},()=>[J],"translate exists",W=>Reflect.apply(W.te,W,[J,N]),Iv,W=>je(W))}function R(J){let N=null;const W=Rd(S,u.value,c.value);for(let ge=0;ge{l&&(c.value=J,S.locale=J,Ha(S,c.value,u.value))}),Re(o.fallbackLocale,J=>{l&&(u.value=J,S.fallbackLocale=J,Ha(S,c.value,u.value))}));const pe={id:hg,locale:j,fallbackLocale:M,get inheritLocale(){return l},set inheritLocale(J){l=J,J&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,Ha(S,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:E,get modifiers(){return L},get pluralRules(){return O||{}},get isGlobal(){return a},get missingWarn(){return w},set missingWarn(J){w=J,S.missingWarn=w},get fallbackWarn(){return f},set fallbackWarn(J){f=J,S.fallbackWarn=f},get fallbackRoot(){return b},set fallbackRoot(J){b=J},get fallbackFormat(){return y},set fallbackFormat(J){y=J,S.fallbackFormat=y},get warnHtmlMessage(){return d},set warnHtmlMessage(J){d=J,S.warnHtmlMessage=J},get escapeParameter(){return _},set escapeParameter(J){_=J,S.escapeParameter=J},t:H,getLocaleMessage:ee,setLocaleMessage:D,mergeLocaleMessage:ne,getPostTranslationHandler:F,setPostTranslationHandler:q,getMissingHandler:se,setMissingHandler:Z,[lg]:$};return pe.datetimeFormats=C,pe.numberFormats=P,pe.rt=fe,pe.te=U,pe.tm=K,pe.d=Ae,pe.n=we,pe.getDateTimeFormat=ae,pe.setDateTimeFormat=k,pe.mergeDateTimeFormat=A,pe.getNumberFormat=V,pe.setNumberFormat=Q,pe.mergeNumberFormat=me,pe[cg]=n,pe[ji]=_e,pe[Ui]=xe,pe[zi]=he,pe}function Fv(e){const t=ke(e.locale)?e.locale:Jn,o=ke(e.fallbackLocale)||lt(e.fallbackLocale)||De(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=at(e.missing)?e.missing:void 0,a=je(e.silentTranslationWarn)||nn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=je(e.silentFallbackWarn)||nn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=je(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=De(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=at(e.postTranslation)?e.postTranslation:void 0,p=ke(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,x=je(e.sync)?e.sync:!0;let w=e.messages;if(De(e.sharedMessages)){const _=e.sharedMessages;w=Object.keys(_).reduce((O,S)=>{const z=O[S]||(O[S]={});return Ct(z,_[S]),O},w||{})}const{__i18n:f,__root:b,__injectWithOption:y}=e,v=e.datetimeFormats,g=e.numberFormats,m=e.flatJson,d=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:w,flatJson:m,datetimeFormats:v,numberFormats:g,missing:n,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:x,translateExistCompatible:d,__i18n:f,__root:b,__injectWithOption:y}}function Hi(e={},t){{const o=Ki(Fv(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(r){o.locale.value=r},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(r){o.fallbackLocale.value=r},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return o.getMissingHandler()},set missing(r){o.setMissingHandler(r)},get silentTranslationWarn(){return je(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(r){o.missingWarn=je(r)?!r:r},get silentFallbackWarn(){return je(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(r){o.fallbackWarn=je(r)?!r:r},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(r){o.fallbackFormat=r},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(r){o.setPostTranslationHandler(r)},get sync(){return o.inheritLocale},set sync(r){o.inheritLocale=r},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){o.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(r){o.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...r){const[s,i,l]=r,c={};let u=null,p=null;if(!ke(s))throw wt(bt.INVALID_ARGUMENT);const h=s;return ke(i)?c.locale=i:lt(i)?u=i:De(i)&&(p=i),lt(l)?u=l:De(l)&&(p=l),Reflect.apply(o.t,o,[h,u||p||{},c])},rt(...r){return Reflect.apply(o.rt,o,[...r])},tc(...r){const[s,i,l]=r,c={plural:1};let u=null,p=null;if(!ke(s))throw wt(bt.INVALID_ARGUMENT);const h=s;return ke(i)?c.locale=i:ft(i)?c.plural=i:lt(i)?u=i:De(i)&&(p=i),ke(l)?c.locale=l:lt(l)?u=l:De(l)&&(p=l),Reflect.apply(o.t,o,[h,u||p||{},c])},te(r,s){return o.te(r,s)},tm(r){return o.tm(r)},getLocaleMessage(r){return o.getLocaleMessage(r)},setLocaleMessage(r,s){o.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){o.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(o.d,o,[...r])},getDateTimeFormat(r){return o.getDateTimeFormat(r)},setDateTimeFormat(r,s){o.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){o.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(o.n,o,[...r])},getNumberFormat(r){return o.getNumberFormat(r)},setNumberFormat(r,s){o.setNumberFormat(r,s)},mergeNumberFormat(r,s){o.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=n,a}}const Vi={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Rv({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Be?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Ze())}function bg(e){return Be}const yg=Aa({name:"i18n-t",props:Ct({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>ft(e)||!isNaN(e)}},Vi),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||ht({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(o).filter(p=>p!=="_"),s=Ze();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=ke(e.plural)?+e.plural:e.plural);const i=Rv(t,r),l=a[ji](e.keypath,i,s),c=Ct(Ze(),n),u=ke(e.tag)||Ve(e.tag)?e.tag:bg();return mi(u,c,l)}}});function Dv(e){return lt(e)&&!ke(e[0])}function vg(e,t,o,n){const{slots:a,attrs:r}=t;return()=>{const s={part:!0};let i=Ze();e.locale&&(s.locale=e.locale),ke(e.format)?s.key=e.format:Ve(e.format)&&(ke(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((h,x)=>o.includes(x)?Ct(Ze(),h,{[x]:e.format[x]}):h,Ze()));const l=n(e.value,s,i);let c=[s.key];lt(l)?c=l.map((h,x)=>{const w=a[h.type],f=w?w({[h.type]:h.value,index:x,parts:l}):[h.value];return Dv(f)&&(f[0].key=`${h.type}-${x}`),f}):ke(l)&&(c=[l]);const u=Ct(Ze(),r),p=ke(e.tag)||Ve(e.tag)?e.tag:bg();return mi(p,u,c)}}const _g=Aa({name:"i18n-n",props:Ct({value:{type:Number,required:!0},format:{type:[String,Object]}},Vi),setup(e,t){const o=e.i18n||ht({useScope:e.scope,__useComponent:!0});return vg(e,t,rg,(...n)=>o[zi](...n))}}),kg=Aa({name:"i18n-d",props:Ct({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Vi),setup(e,t){const o=e.i18n||ht({useScope:e.scope,__useComponent:!0});return vg(e,t,og,(...n)=>o[Ui](...n))}});function Ov(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function Bv(e){const t=s=>{const{instance:i,modifiers:l,value:c}=s;if(!i||!i.$)throw wt(bt.UNEXPECTED_ERROR);const u=Ov(e,i.$),p=wg(c);return[Reflect.apply(u.t,u,[...xg(p)]),u]};return{created:(s,i)=>{const[l,c]=t(i);Wr&&e.global===c&&(s.__i18nWatcher=Re(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=c,s.textContent=l},unmounted:s=>{Wr&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:i})=>{if(s.__composer){const l=s.__composer,c=wg(i);s.textContent=Reflect.apply(l.t,l,[...xg(c)])}},getSSRProps:s=>{const[i]=t(s);return{textContent:i}}}}function wg(e){if(ke(e))return{path:e};if(De(e)){if(!("path"in e))throw wt(bt.REQUIRED_VALUE,"path");return e}else throw wt(bt.INVALID_VALUE)}function xg(e){const{path:t,locale:o,args:n,choice:a,plural:r}=e,s={},i=n||{};return ke(o)&&(s.locale=o),ft(a)&&(s.plural=a),ft(r)&&(s.plural=r),[t,i,s]}function jv(e,t,...o){const n=De(o[0])?o[0]:{},a=!!n.useI18nComponentName;(je(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":yg.name,"I18nT"].forEach(s=>e.component(s,yg)),[_g.name,"I18nN"].forEach(s=>e.component(s,_g)),[kg.name,"I18nD"].forEach(s=>e.component(s,kg))),e.directive("t",Bv(t))}function Uv(e,t,o){return{beforeCreate(){const n=yo();if(!n)throw wt(bt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=t,this===this.$root)this.$i18n=Sg(e,r);else{r.__injectWithOption=!0,r.__extender=o.__vueI18nExtend,this.$i18n=Hi(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Sg(e,a);else{this.$i18n=Hi({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&dg(t,a,a),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=yo();if(!n)throw wt(bt.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),o.__deleteInstance(n),delete this.$i18n}}}function Sg(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[lg](t.pluralizationRules||e.pluralizationRules);const o=os(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const zv=on("global-vue-i18n");function Gv(e={},t){const o=__VUE_I18N_LEGACY_API__&&je(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=je(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,r=new Map,[s,i]=Kv(e,o),l=on("");function c(h){return r.get(h)||null}function u(h,x){r.set(h,x)}function p(h){r.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(x,...w){if(x.__VUE_I18N_SYMBOL__=l,x.provide(x.__VUE_I18N_SYMBOL__,h),De(w[0])){const y=w[0];h.__composerExtend=y.__composerExtend,h.__vueI18nExtend=y.__vueI18nExtend}let f=null;!o&&n&&(f=Qv(x,h.global)),__VUE_I18N_FULL_INSTALL__&&jv(x,h,...w),__VUE_I18N_LEGACY_API__&&o&&x.mixin(Uv(i,i.__composer,h));const b=x.unmount;x.unmount=()=>{f&&f(),h.dispose(),b()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:p};return h}}function ht(e={}){const t=yo();if(t==null)throw wt(bt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw wt(bt.NOT_INSTALLED);const o=Hv(t),n=qv(o),a=ug(t),r=Vv(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw wt(bt.NOT_AVAILABLE_IN_LEGACY_MODE);return Jv(t,r,n,e)}if(r==="global")return dg(n,e,a),n;if(r==="parent"){let l=Wv(o,t,e.__useComponent);return l==null&&(l=n),l}const s=o;let i=s.__getInstance(t);if(i==null){const l=Ct({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=Ki(l),s.__composerExtend&&(i[Gi]=s.__composerExtend(i)),Xv(s,t,i),s.__setInstance(t,i)}return i}function Kv(e,t,o){const n=js();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Hi(e)):n.run(()=>Ki(e));if(a==null)throw wt(bt.UNEXPECTED_ERROR);return[n,a]}}function Hv(e){{const t=Pe(e.isCE?zv:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw wt(e.isCE?bt.NOT_INSTALLED_WITH_PROVIDE:bt.UNEXPECTED_ERROR);return t}}function Vv(e,t){return Yr(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function qv(e){return e.mode==="composition"?e.global:e.global.__composer}function Wv(e,t,o=!1){let n=null;const a=t.root;let r=Yv(t,o);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(n=i.__composer,o&&n&&!n[cg]&&(n=null))}if(n!=null||a===r)break;r=r.parent}return n}function Yv(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Xv(e,t,o){Jt(()=>{},t),Ea(()=>{const n=o;e.__deleteInstance(t);const a=n[Gi];a&&(a(),delete n[Gi])},t)}function Jv(e,t,o,n={}){const a=t==="local",r=xr(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw wt(bt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=je(n.inheritLocale)?n.inheritLocale:!ke(n.locale),i=ue(!a||s?o.locale.value:ke(n.locale)?n.locale:Jn),l=ue(!a||s?o.fallbackLocale.value:ke(n.fallbackLocale)||lt(n.fallbackLocale)||De(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=ue(os(i.value,n)),u=ue(De(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=ue(De(n.numberFormats)?n.numberFormats:{[i.value]:{}}),h=a?o.missingWarn:je(n.missingWarn)||nn(n.missingWarn)?n.missingWarn:!0,x=a?o.fallbackWarn:je(n.fallbackWarn)||nn(n.fallbackWarn)?n.fallbackWarn:!0,w=a?o.fallbackRoot:je(n.fallbackRoot)?n.fallbackRoot:!0,f=!!n.fallbackFormat,b=at(n.missing)?n.missing:null,y=at(n.postTranslation)?n.postTranslation:null,v=a?o.warnHtmlMessage:je(n.warnHtmlMessage)?n.warnHtmlMessage:!0,g=!!n.escapeParameter,m=a?o.modifiers:De(n.modifiers)?n.modifiers:{},d=n.pluralRules||a&&o.pluralRules;function _(){return[i.value,l.value,c.value,u.value,p.value]}const L=te({get:()=>r.value?r.value.locale.value:i.value,set:R=>{r.value&&(r.value.locale.value=R),i.value=R}}),O=te({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:R=>{r.value&&(r.value.fallbackLocale.value=R),l.value=R}}),S=te(()=>r.value?r.value.messages.value:c.value),z=te(()=>u.value),G=te(()=>p.value);function j(){return r.value?r.value.getPostTranslationHandler():y}function M(R){r.value&&r.value.setPostTranslationHandler(R)}function E(){return r.value?r.value.getMissingHandler():b}function C(R){r.value&&r.value.setMissingHandler(R)}function P(R){return _(),R()}function F(...R){return r.value?P(()=>Reflect.apply(r.value.t,null,[...R])):P(()=>"")}function q(...R){return r.value?Reflect.apply(r.value.rt,null,[...R]):""}function se(...R){return r.value?P(()=>Reflect.apply(r.value.d,null,[...R])):P(()=>"")}function Z(...R){return r.value?P(()=>Reflect.apply(r.value.n,null,[...R])):P(()=>"")}function oe(R){return r.value?r.value.tm(R):{}}function H(R,K){return r.value?r.value.te(R,K):!1}function fe(R){return r.value?r.value.getLocaleMessage(R):{}}function Ae(R,K){r.value&&(r.value.setLocaleMessage(R,K),c.value[R]=K)}function we(R,K){r.value&&r.value.mergeLocaleMessage(R,K)}function Ce(R){return r.value?r.value.getDateTimeFormat(R):{}}function ce(R,K){r.value&&(r.value.setDateTimeFormat(R,K),u.value[R]=K)}function le(R,K){r.value&&r.value.mergeDateTimeFormat(R,K)}function _e(R){return r.value?r.value.getNumberFormat(R):{}}function he(R,K){r.value&&(r.value.setNumberFormat(R,K),p.value[R]=K)}function xe(R,K){r.value&&r.value.mergeNumberFormat(R,K)}const $={get id(){return r.value?r.value.id:-1},locale:L,fallbackLocale:O,messages:S,datetimeFormats:z,numberFormats:G,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(R){r.value&&(r.value.inheritLocale=R)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:m},get pluralRules(){return r.value?r.value.pluralRules:d},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:h},set missingWarn(R){r.value&&(r.value.missingWarn=R)},get fallbackWarn(){return r.value?r.value.fallbackWarn:x},set fallbackWarn(R){r.value&&(r.value.missingWarn=R)},get fallbackRoot(){return r.value?r.value.fallbackRoot:w},set fallbackRoot(R){r.value&&(r.value.fallbackRoot=R)},get fallbackFormat(){return r.value?r.value.fallbackFormat:f},set fallbackFormat(R){r.value&&(r.value.fallbackFormat=R)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:v},set warnHtmlMessage(R){r.value&&(r.value.warnHtmlMessage=R)},get escapeParameter(){return r.value?r.value.escapeParameter:g},set escapeParameter(R){r.value&&(r.value.escapeParameter=R)},t:F,getPostTranslationHandler:j,setPostTranslationHandler:M,getMissingHandler:E,setMissingHandler:C,rt:q,d:se,n:Z,tm:oe,te:H,getLocaleMessage:fe,setLocaleMessage:Ae,mergeLocaleMessage:we,getDateTimeFormat:Ce,setDateTimeFormat:ce,mergeDateTimeFormat:le,getNumberFormat:_e,setNumberFormat:he,mergeNumberFormat:xe};function U(R){R.locale.value=i.value,R.fallbackLocale.value=l.value,Object.keys(c.value).forEach(K=>{R.mergeLocaleMessage(K,c.value[K])}),Object.keys(u.value).forEach(K=>{R.mergeDateTimeFormat(K,u.value[K])}),Object.keys(p.value).forEach(K=>{R.mergeNumberFormat(K,p.value[K])}),R.escapeParameter=g,R.fallbackFormat=f,R.fallbackRoot=w,R.fallbackWarn=x,R.missingWarn=h,R.warnHtmlMessage=v}return Jc(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw wt(bt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const R=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=R.locale.value,l.value=R.fallbackLocale.value,c.value=R.messages.value,u.value=R.datetimeFormats.value,p.value=R.numberFormats.value):a&&U(R)}),$}const Zv=["locale","fallbackLocale","availableLocales"],Ag=["t","rt","d","n","tm","te"];function Qv(e,t){const o=Object.create(null);return Zv.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r)throw wt(bt.UNEXPECTED_ERROR);const s=it(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(o,a,s)}),e.config.globalProperties.$i18n=o,Ag.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r||!r.value)throw wt(bt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,Ag.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Pv(),__INTLIFY_JIT_COMPILATION__?Ud(Av):Ud(Sv),hv(Y0),mv(Rd),__INTLIFY_PROD_DEVTOOLS__){const e=Uo();e.__INTLIFY__=!0,av(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const e_=Object.assign({"./locales/ar/aria.json":sb,"./locales/ar/buttons.json":ib,"./locales/ar/detail.json":lb,"./locales/ar/legend.json":cb,"./locales/ar/messages.json":ub,"./locales/ar/options.json":db,"./locales/ar/prayerLaps.json":gb,"./locales/ar/search.json":pb,"./locales/ar/tabs.json":fb,"./locales/de/aria.json":hb,"./locales/de/buttons.json":mb,"./locales/de/detail.json":bb,"./locales/de/legend.json":yb,"./locales/de/messages.json":vb,"./locales/de/options.json":_b,"./locales/de/prayerLaps.json":kb,"./locales/de/search.json":wb,"./locales/de/tabs.json":xb,"./locales/en/aria.json":Sb,"./locales/en/buttons.json":Ab,"./locales/en/detail.json":Lb,"./locales/en/legend.json":Cb,"./locales/en/messages.json":$b,"./locales/en/options.json":Eb,"./locales/en/popup.json":Tb,"./locales/en/prayerLaps.json":Pb,"./locales/en/search.json":Nb,"./locales/en/tabs.json":Ib,"./locales/es/aria.json":Mb,"./locales/es/buttons.json":Fb,"./locales/es/detail.json":Rb,"./locales/es/legend.json":Db,"./locales/es/messages.json":Ob,"./locales/es/options.json":Bb,"./locales/es/prayerLaps.json":jb,"./locales/es/search.json":Ub,"./locales/es/tabs.json":zb,"./locales/fr/aria.json":Gb,"./locales/fr/buttons.json":Kb,"./locales/fr/detail.json":Hb,"./locales/fr/legend.json":Vb,"./locales/fr/messages.json":qb,"./locales/fr/options.json":Wb,"./locales/fr/popup.json":Yb,"./locales/fr/prayerLaps.json":Xb,"./locales/fr/search.json":Jb,"./locales/fr/tabs.json":Zb,"./locales/hi/aria.json":Qb,"./locales/hi/buttons.json":ey,"./locales/hi/detail.json":ty,"./locales/hi/legend.json":oy,"./locales/hi/messages.json":ny,"./locales/hi/options.json":ay,"./locales/hi/prayerLaps.json":ry,"./locales/hi/search.json":sy,"./locales/it/aria.json":iy,"./locales/it/buttons.json":ly,"./locales/it/detail.json":cy,"./locales/it/legend.json":uy,"./locales/it/messages.json":dy,"./locales/it/options.json":gy,"./locales/it/prayerLaps.json":py,"./locales/it/search.json":fy,"./locales/pt/aria.json":hy,"./locales/pt/buttons.json":my,"./locales/pt/detail.json":by,"./locales/pt/legend.json":yy,"./locales/pt/messages.json":vy,"./locales/pt/options.json":_y,"./locales/pt/prayerLaps.json":ky,"./locales/pt/search.json":wy,"./locales/pt/tabs.json":xy,"./locales/ro/aria.json":Sy,"./locales/ro/buttons.json":Ay,"./locales/ro/detail.json":Ly,"./locales/ro/legend.json":Cy,"./locales/ro/messages.json":$y,"./locales/ro/options.json":Ey,"./locales/ro/prayerLaps.json":Ty,"./locales/ro/search.json":Py,"./locales/ru/aria.json":Ny,"./locales/ru/buttons.json":Iy,"./locales/ru/detail.json":My,"./locales/ru/legend.json":Fy,"./locales/ru/messages.json":Ry,"./locales/ru/options.json":Dy,"./locales/ru/prayerLaps.json":Oy,"./locales/ru/search.json":By,"./locales/ru/tabs.json":jy,"./locales/zh/aria.json":Uy,"./locales/zh/buttons.json":zy,"./locales/zh/detail.json":Gy,"./locales/zh/legend.json":Ky,"./locales/zh/messages.json":Hy,"./locales/zh/options.json":Vy,"./locales/zh/prayerLaps.json":qy,"./locales/zh/search.json":Wy}),qa={};for(const[e,t]of Object.entries(e_)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;qa[n]??(qa[n]={}),qa[n][a]=t}const qi=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function t_(){var o;const t=(((o=document==null?void 0:document.documentElement)==null?void 0:o.lang)||"").split("-")[0].toLowerCase();return qi.includes(t)?t:"en"}function o_(){return Gv({legacy:!1,globalInjection:!0,locale:t_(),fallbackLocale:"en",messages:qa,missingWarn:!1,fallbackWarn:!1})}function yt(e,t){const o=t||n_(e);Jt(()=>{var i;const n=yo();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${o}"]`))return;const s=document.createElement("style");s.setAttribute("data-shadow-styles",o),s.textContent=e,r.appendChild(s)})}function n_(e){let t=0;for(let o=0;o(t==null?void 0:t.theme)==="dark"),a=te(()=>{var l;return((l=o==null?void 0:o.value)==null?void 0:l.pinHintLabel)||"Tap a red dot — someone still needs prayer"}),r=ue(!1);let s=null;function i(){r.value=!1}return Jt(()=>{var p,h,x;const l=yo(),c=(x=(h=(p=l==null?void 0:l.proxy)==null?void 0:p.$el)==null?void 0:h.getRootNode)==null?void 0:x.call(h);if(!c||typeof c.querySelector!="function")return;let u=0;s=setInterval(()=>{u++,c.querySelector("canvas")?(clearInterval(s),s=null,r.value=!0):u>40&&(clearInterval(s),s=null)},300)}),ho(()=>{s&&clearInterval(s)}),yt(` + */const Tv="9.14.5";function Pv(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(zo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(zo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(zo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(zo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(zo().__INTLIFY_PROD_DEVTOOLS__=!1)}const Nv=cv.__EXTEND_POINT__,Go=Xr(Nv);Go(),Go(),Go(),Go(),Go(),Go(),Go(),Go(),Go();const ip=ro.__EXTEND_POINT__,Ot=Xr(ip),bt={UNEXPECTED_RETURN_TYPE:ip,INVALID_ARGUMENT:Ot(),MUST_BE_CALL_SETUP_TOP:Ot(),NOT_INSTALLED:Ot(),NOT_AVAILABLE_IN_LEGACY_MODE:Ot(),REQUIRED_VALUE:Ot(),INVALID_VALUE:Ot(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ot(),NOT_INSTALLED_WITH_PROVIDE:Ot(),UNEXPECTED_ERROR:Ot(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ot(),BRIDGE_SUPPORT_VUE_2_ONLY:Ot(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ot(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ot(),__EXTEND_POINT__:Ot()};function xt(e,...t){return Wn(e,null,void 0)}const ji=on("__translateVNode"),zi=on("__datetimeParts"),Ui=on("__numberParts"),lp=on("__setPluralRules"),cp=on("__injectWithOption"),Gi=on("__dispose");function Va(e){if(!Ve(e)||_o(e))return e;for(const t in e)if(no(e,t))if(!t.includes("."))Ve(e[t])&&Va(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,r=!1;for(let s=0;s{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(s[l]=s[l]||Ze(),Zr(c,s[l])):Zr(c,s)}else ke(i)&&Zr(JSON.parse(i),s)}),a==null&&r)for(const i in s)no(s,i)&&Va(s[i]);return s}function up(e){return e.type}function dp(e,t,o){let n=Ve(t.messages)?t.messages:Ze();"__i18nGlobal"in o&&(n=os(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(Ve(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(Ve(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function pp(e){return Je(Na,null,e,0)}const gp="__INTLIFY_META__",fp=()=>[],Iv=()=>!1;let hp=0;function mp(e){return(t,o,n,a)=>e(o,n,yo()||void 0,a)}const Mv=()=>{const e=yo();let t=null;return e&&(t=up(e)[gp])?{[gp]:t}:null};function Ki(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,r=e.flatJson,s=Wr?ue:wr,i=!!e.translateExistCompatible;let l=je(e.inheritLocale)?e.inheritLocale:!0;const c=s(o&&l?o.locale.value:ke(e.locale)?e.locale:Jn),u=s(o&&l?o.fallbackLocale.value:ke(e.fallbackLocale)||lt(e.fallbackLocale)||De(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),g=s(os(c.value,e)),h=s(De(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),w=s(De(e.numberFormats)?e.numberFormats:{[c.value]:{}});let x=o?o.missingWarn:je(e.missingWarn)||nn(e.missingWarn)?e.missingWarn:!0,f=o?o.fallbackWarn:je(e.fallbackWarn)||nn(e.fallbackWarn)?e.fallbackWarn:!0,b=o?o.fallbackRoot:je(e.fallbackRoot)?e.fallbackRoot:!0,y=!!e.fallbackFormat,v=at(e.missing)?e.missing:null,p=at(e.missing)?mp(e.missing):null,m=at(e.postTranslation)?e.postTranslation:null,d=o?o.warnHtmlMessage:je(e.warnHtmlMessage)?e.warnHtmlMessage:!0,_=!!e.escapeParameter;const L=o?o.modifiers:De(e.modifiers)?e.modifiers:{};let O=e.pluralRules||o&&o.pluralRules,S;S=(()=>{a&&Vd(null);const J={version:Tv,locale:c.value,fallbackLocale:u.value,messages:g.value,modifiers:L,pluralRules:O,missing:p===null?void 0:p,missingWarn:x,fallbackWarn:f,fallbackFormat:y,unresolving:!0,postTranslation:m===null?void 0:m,warnHtmlMessage:d,escapeParameter:_,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};J.datetimeFormats=h.value,J.numberFormats=w.value,J.__datetimeFormatters=De(S)?S.__datetimeFormatters:void 0,J.__numberFormatters=De(S)?S.__numberFormatters:void 0;const N=_v(J);return a&&Vd(N),N})(),Ha(S,c.value,u.value);function G(){return[c.value,u.value,g.value,h.value,w.value]}const j=te({get:()=>c.value,set:J=>{c.value=J,S.locale=c.value}}),M=te({get:()=>u.value,set:J=>{u.value=J,S.fallbackLocale=u.value,Ha(S,c.value,J)}}),E=te(()=>g.value),C=te(()=>h.value),P=te(()=>w.value);function F(){return at(m)?m:null}function q(J){m=J,S.postTranslation=J}function se(){return v}function Z(J){J!==null&&(p=mp(J)),v=J,S.missing=p}const oe=(J,N,W,pe,be,Le)=>{G();let Oe;try{__INTLIFY_PROD_DEVTOOLS__,a||(S.fallbackContext=o?vv():void 0),Oe=J(S)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(S.fallbackContext=void 0)}if(W!=="translate exists"&&ft(Oe)&&Oe===ts||W==="translate exists"&&!Oe){const[Ie,ct]=N();return o&&b?pe(o):be(Ie)}else{if(Le(Oe))return Oe;throw xt(bt.UNEXPECTED_RETURN_TYPE)}};function H(...J){return oe(N=>Reflect.apply(Zd,null,[N,...J]),()=>Di(...J),"translate",N=>Reflect.apply(N.t,N,[...J]),N=>N,N=>ke(N))}function fe(...J){const[N,W,pe]=J;if(pe&&!Ve(pe))throw xt(bt.INVALID_ARGUMENT);return H(N,W,Ct({resolvedMessage:!0},pe||{}))}function Ae(...J){return oe(N=>Reflect.apply(tp,null,[N,...J]),()=>Oi(...J),"datetime format",N=>Reflect.apply(N.d,N,[...J]),()=>Od,N=>ke(N))}function xe(...J){return oe(N=>Reflect.apply(ap,null,[N,...J]),()=>Bi(...J),"number format",N=>Reflect.apply(N.n,N,[...J]),()=>Od,N=>ke(N))}function Ce(J){return J.map(N=>ke(N)||ft(N)||je(N)?pp(String(N)):N)}const le={normalize:Ce,interpolate:J=>J,type:"vnode"};function _e(...J){return oe(N=>{let W;const pe=N;try{pe.processor=le,W=Reflect.apply(Zd,null,[pe,...J])}finally{pe.processor=null}return W},()=>Di(...J),"translate",N=>N[ji](...J),N=>[pp(N)],N=>lt(N))}function he(...J){return oe(N=>Reflect.apply(ap,null,[N,...J]),()=>Bi(...J),"number format",N=>N[Ui](...J),fp,N=>ke(N)||lt(N))}function we(...J){return oe(N=>Reflect.apply(tp,null,[N,...J]),()=>Oi(...J),"datetime format",N=>N[zi](...J),fp,N=>ke(N)||lt(N))}function $(J){O=J,S.pluralRules=O}function z(J,N){return oe(()=>{if(!J)return!1;const W=ke(N)?N:c.value,pe=ee(W),be=S.messageResolver(pe,J);return i?be!=null:_o(be)||Zt(be)||ke(be)},()=>[J],"translate exists",W=>Reflect.apply(W.te,W,[J,N]),Iv,W=>je(W))}function R(J){let N=null;const W=Rd(S,u.value,c.value);for(let pe=0;pe{l&&(c.value=J,S.locale=J,Ha(S,c.value,u.value))}),Re(o.fallbackLocale,J=>{l&&(u.value=J,S.fallbackLocale=J,Ha(S,c.value,u.value))}));const ge={id:hp,locale:j,fallbackLocale:M,get inheritLocale(){return l},set inheritLocale(J){l=J,J&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,Ha(S,c.value,u.value))},get availableLocales(){return Object.keys(g.value).sort()},messages:E,get modifiers(){return L},get pluralRules(){return O||{}},get isGlobal(){return a},get missingWarn(){return x},set missingWarn(J){x=J,S.missingWarn=x},get fallbackWarn(){return f},set fallbackWarn(J){f=J,S.fallbackWarn=f},get fallbackRoot(){return b},set fallbackRoot(J){b=J},get fallbackFormat(){return y},set fallbackFormat(J){y=J,S.fallbackFormat=y},get warnHtmlMessage(){return d},set warnHtmlMessage(J){d=J,S.warnHtmlMessage=J},get escapeParameter(){return _},set escapeParameter(J){_=J,S.escapeParameter=J},t:H,getLocaleMessage:ee,setLocaleMessage:D,mergeLocaleMessage:ne,getPostTranslationHandler:F,setPostTranslationHandler:q,getMissingHandler:se,setMissingHandler:Z,[lp]:$};return ge.datetimeFormats=C,ge.numberFormats=P,ge.rt=fe,ge.te=z,ge.tm=K,ge.d=Ae,ge.n=xe,ge.getDateTimeFormat=ae,ge.setDateTimeFormat=k,ge.mergeDateTimeFormat=A,ge.getNumberFormat=V,ge.setNumberFormat=Q,ge.mergeNumberFormat=me,ge[cp]=n,ge[ji]=_e,ge[zi]=we,ge[Ui]=he,ge}function Fv(e){const t=ke(e.locale)?e.locale:Jn,o=ke(e.fallbackLocale)||lt(e.fallbackLocale)||De(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=at(e.missing)?e.missing:void 0,a=je(e.silentTranslationWarn)||nn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=je(e.silentFallbackWarn)||nn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=je(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=De(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=at(e.postTranslation)?e.postTranslation:void 0,g=ke(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,w=je(e.sync)?e.sync:!0;let x=e.messages;if(De(e.sharedMessages)){const _=e.sharedMessages;x=Object.keys(_).reduce((O,S)=>{const U=O[S]||(O[S]={});return Ct(U,_[S]),O},x||{})}const{__i18n:f,__root:b,__injectWithOption:y}=e,v=e.datetimeFormats,p=e.numberFormats,m=e.flatJson,d=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:x,flatJson:m,datetimeFormats:v,numberFormats:p,missing:n,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:g,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:w,translateExistCompatible:d,__i18n:f,__root:b,__injectWithOption:y}}function Hi(e={},t){{const o=Ki(Fv(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(r){o.locale.value=r},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(r){o.fallbackLocale.value=r},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return o.getMissingHandler()},set missing(r){o.setMissingHandler(r)},get silentTranslationWarn(){return je(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(r){o.missingWarn=je(r)?!r:r},get silentFallbackWarn(){return je(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(r){o.fallbackWarn=je(r)?!r:r},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(r){o.fallbackFormat=r},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(r){o.setPostTranslationHandler(r)},get sync(){return o.inheritLocale},set sync(r){o.inheritLocale=r},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){o.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(r){o.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...r){const[s,i,l]=r,c={};let u=null,g=null;if(!ke(s))throw xt(bt.INVALID_ARGUMENT);const h=s;return ke(i)?c.locale=i:lt(i)?u=i:De(i)&&(g=i),lt(l)?u=l:De(l)&&(g=l),Reflect.apply(o.t,o,[h,u||g||{},c])},rt(...r){return Reflect.apply(o.rt,o,[...r])},tc(...r){const[s,i,l]=r,c={plural:1};let u=null,g=null;if(!ke(s))throw xt(bt.INVALID_ARGUMENT);const h=s;return ke(i)?c.locale=i:ft(i)?c.plural=i:lt(i)?u=i:De(i)&&(g=i),ke(l)?c.locale=l:lt(l)?u=l:De(l)&&(g=l),Reflect.apply(o.t,o,[h,u||g||{},c])},te(r,s){return o.te(r,s)},tm(r){return o.tm(r)},getLocaleMessage(r){return o.getLocaleMessage(r)},setLocaleMessage(r,s){o.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){o.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(o.d,o,[...r])},getDateTimeFormat(r){return o.getDateTimeFormat(r)},setDateTimeFormat(r,s){o.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){o.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(o.n,o,[...r])},getNumberFormat(r){return o.getNumberFormat(r)},setNumberFormat(r,s){o.setNumberFormat(r,s)},mergeNumberFormat(r,s){o.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=n,a}}const Vi={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Rv({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Be?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Ze())}function bp(e){return Be}const yp=Aa({name:"i18n-t",props:Ct({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>ft(e)||!isNaN(e)}},Vi),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||ht({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(o).filter(g=>g!=="_"),s=Ze();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=ke(e.plural)?+e.plural:e.plural);const i=Rv(t,r),l=a[ji](e.keypath,i,s),c=Ct(Ze(),n),u=ke(e.tag)||Ve(e.tag)?e.tag:bp();return mi(u,c,l)}}});function Dv(e){return lt(e)&&!ke(e[0])}function vp(e,t,o,n){const{slots:a,attrs:r}=t;return()=>{const s={part:!0};let i=Ze();e.locale&&(s.locale=e.locale),ke(e.format)?s.key=e.format:Ve(e.format)&&(ke(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((h,w)=>o.includes(w)?Ct(Ze(),h,{[w]:e.format[w]}):h,Ze()));const l=n(e.value,s,i);let c=[s.key];lt(l)?c=l.map((h,w)=>{const x=a[h.type],f=x?x({[h.type]:h.value,index:w,parts:l}):[h.value];return Dv(f)&&(f[0].key=`${h.type}-${w}`),f}):ke(l)&&(c=[l]);const u=Ct(Ze(),r),g=ke(e.tag)||Ve(e.tag)?e.tag:bp();return mi(g,u,c)}}const _p=Aa({name:"i18n-n",props:Ct({value:{type:Number,required:!0},format:{type:[String,Object]}},Vi),setup(e,t){const o=e.i18n||ht({useScope:e.scope,__useComponent:!0});return vp(e,t,rp,(...n)=>o[Ui](...n))}}),kp=Aa({name:"i18n-d",props:Ct({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Vi),setup(e,t){const o=e.i18n||ht({useScope:e.scope,__useComponent:!0});return vp(e,t,op,(...n)=>o[zi](...n))}});function Ov(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function Bv(e){const t=s=>{const{instance:i,modifiers:l,value:c}=s;if(!i||!i.$)throw xt(bt.UNEXPECTED_ERROR);const u=Ov(e,i.$),g=xp(c);return[Reflect.apply(u.t,u,[...wp(g)]),u]};return{created:(s,i)=>{const[l,c]=t(i);Wr&&e.global===c&&(s.__i18nWatcher=Re(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=c,s.textContent=l},unmounted:s=>{Wr&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:i})=>{if(s.__composer){const l=s.__composer,c=xp(i);s.textContent=Reflect.apply(l.t,l,[...wp(c)])}},getSSRProps:s=>{const[i]=t(s);return{textContent:i}}}}function xp(e){if(ke(e))return{path:e};if(De(e)){if(!("path"in e))throw xt(bt.REQUIRED_VALUE,"path");return e}else throw xt(bt.INVALID_VALUE)}function wp(e){const{path:t,locale:o,args:n,choice:a,plural:r}=e,s={},i=n||{};return ke(o)&&(s.locale=o),ft(a)&&(s.plural=a),ft(r)&&(s.plural=r),[t,i,s]}function jv(e,t,...o){const n=De(o[0])?o[0]:{},a=!!n.useI18nComponentName;(je(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":yp.name,"I18nT"].forEach(s=>e.component(s,yp)),[_p.name,"I18nN"].forEach(s=>e.component(s,_p)),[kp.name,"I18nD"].forEach(s=>e.component(s,kp))),e.directive("t",Bv(t))}function zv(e,t,o){return{beforeCreate(){const n=yo();if(!n)throw xt(bt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=t,this===this.$root)this.$i18n=Sp(e,r);else{r.__injectWithOption=!0,r.__extender=o.__vueI18nExtend,this.$i18n=Hi(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Sp(e,a);else{this.$i18n=Hi({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&dp(t,a,a),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=yo();if(!n)throw xt(bt.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),o.__deleteInstance(n),delete this.$i18n}}}function Sp(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[lp](t.pluralizationRules||e.pluralizationRules);const o=os(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const Uv=on("global-vue-i18n");function Gv(e={},t){const o=__VUE_I18N_LEGACY_API__&&je(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=je(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,r=new Map,[s,i]=Kv(e,o),l=on("");function c(h){return r.get(h)||null}function u(h,w){r.set(h,w)}function g(h){r.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(w,...x){if(w.__VUE_I18N_SYMBOL__=l,w.provide(w.__VUE_I18N_SYMBOL__,h),De(x[0])){const y=x[0];h.__composerExtend=y.__composerExtend,h.__vueI18nExtend=y.__vueI18nExtend}let f=null;!o&&n&&(f=Qv(w,h.global)),__VUE_I18N_FULL_INSTALL__&&jv(w,h,...x),__VUE_I18N_LEGACY_API__&&o&&w.mixin(zv(i,i.__composer,h));const b=w.unmount;w.unmount=()=>{f&&f(),h.dispose(),b()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:g};return h}}function ht(e={}){const t=yo();if(t==null)throw xt(bt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw xt(bt.NOT_INSTALLED);const o=Hv(t),n=qv(o),a=up(t),r=Vv(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw xt(bt.NOT_AVAILABLE_IN_LEGACY_MODE);return Jv(t,r,n,e)}if(r==="global")return dp(n,e,a),n;if(r==="parent"){let l=Wv(o,t,e.__useComponent);return l==null&&(l=n),l}const s=o;let i=s.__getInstance(t);if(i==null){const l=Ct({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=Ki(l),s.__composerExtend&&(i[Gi]=s.__composerExtend(i)),Xv(s,t,i),s.__setInstance(t,i)}return i}function Kv(e,t,o){const n=js();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Hi(e)):n.run(()=>Ki(e));if(a==null)throw xt(bt.UNEXPECTED_ERROR);return[n,a]}}function Hv(e){{const t=Pe(e.isCE?Uv:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw xt(e.isCE?bt.NOT_INSTALLED_WITH_PROVIDE:bt.UNEXPECTED_ERROR);return t}}function Vv(e,t){return Yr(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function qv(e){return e.mode==="composition"?e.global:e.global.__composer}function Wv(e,t,o=!1){let n=null;const a=t.root;let r=Yv(t,o);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(n=i.__composer,o&&n&&!n[cp]&&(n=null))}if(n!=null||a===r)break;r=r.parent}return n}function Yv(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Xv(e,t,o){Jt(()=>{},t),Ea(()=>{const n=o;e.__deleteInstance(t);const a=n[Gi];a&&(a(),delete n[Gi])},t)}function Jv(e,t,o,n={}){const a=t==="local",r=wr(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw xt(bt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=je(n.inheritLocale)?n.inheritLocale:!ke(n.locale),i=ue(!a||s?o.locale.value:ke(n.locale)?n.locale:Jn),l=ue(!a||s?o.fallbackLocale.value:ke(n.fallbackLocale)||lt(n.fallbackLocale)||De(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=ue(os(i.value,n)),u=ue(De(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),g=ue(De(n.numberFormats)?n.numberFormats:{[i.value]:{}}),h=a?o.missingWarn:je(n.missingWarn)||nn(n.missingWarn)?n.missingWarn:!0,w=a?o.fallbackWarn:je(n.fallbackWarn)||nn(n.fallbackWarn)?n.fallbackWarn:!0,x=a?o.fallbackRoot:je(n.fallbackRoot)?n.fallbackRoot:!0,f=!!n.fallbackFormat,b=at(n.missing)?n.missing:null,y=at(n.postTranslation)?n.postTranslation:null,v=a?o.warnHtmlMessage:je(n.warnHtmlMessage)?n.warnHtmlMessage:!0,p=!!n.escapeParameter,m=a?o.modifiers:De(n.modifiers)?n.modifiers:{},d=n.pluralRules||a&&o.pluralRules;function _(){return[i.value,l.value,c.value,u.value,g.value]}const L=te({get:()=>r.value?r.value.locale.value:i.value,set:R=>{r.value&&(r.value.locale.value=R),i.value=R}}),O=te({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:R=>{r.value&&(r.value.fallbackLocale.value=R),l.value=R}}),S=te(()=>r.value?r.value.messages.value:c.value),U=te(()=>u.value),G=te(()=>g.value);function j(){return r.value?r.value.getPostTranslationHandler():y}function M(R){r.value&&r.value.setPostTranslationHandler(R)}function E(){return r.value?r.value.getMissingHandler():b}function C(R){r.value&&r.value.setMissingHandler(R)}function P(R){return _(),R()}function F(...R){return r.value?P(()=>Reflect.apply(r.value.t,null,[...R])):P(()=>"")}function q(...R){return r.value?Reflect.apply(r.value.rt,null,[...R]):""}function se(...R){return r.value?P(()=>Reflect.apply(r.value.d,null,[...R])):P(()=>"")}function Z(...R){return r.value?P(()=>Reflect.apply(r.value.n,null,[...R])):P(()=>"")}function oe(R){return r.value?r.value.tm(R):{}}function H(R,K){return r.value?r.value.te(R,K):!1}function fe(R){return r.value?r.value.getLocaleMessage(R):{}}function Ae(R,K){r.value&&(r.value.setLocaleMessage(R,K),c.value[R]=K)}function xe(R,K){r.value&&r.value.mergeLocaleMessage(R,K)}function Ce(R){return r.value?r.value.getDateTimeFormat(R):{}}function ce(R,K){r.value&&(r.value.setDateTimeFormat(R,K),u.value[R]=K)}function le(R,K){r.value&&r.value.mergeDateTimeFormat(R,K)}function _e(R){return r.value?r.value.getNumberFormat(R):{}}function he(R,K){r.value&&(r.value.setNumberFormat(R,K),g.value[R]=K)}function we(R,K){r.value&&r.value.mergeNumberFormat(R,K)}const $={get id(){return r.value?r.value.id:-1},locale:L,fallbackLocale:O,messages:S,datetimeFormats:U,numberFormats:G,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(R){r.value&&(r.value.inheritLocale=R)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:m},get pluralRules(){return r.value?r.value.pluralRules:d},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:h},set missingWarn(R){r.value&&(r.value.missingWarn=R)},get fallbackWarn(){return r.value?r.value.fallbackWarn:w},set fallbackWarn(R){r.value&&(r.value.missingWarn=R)},get fallbackRoot(){return r.value?r.value.fallbackRoot:x},set fallbackRoot(R){r.value&&(r.value.fallbackRoot=R)},get fallbackFormat(){return r.value?r.value.fallbackFormat:f},set fallbackFormat(R){r.value&&(r.value.fallbackFormat=R)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:v},set warnHtmlMessage(R){r.value&&(r.value.warnHtmlMessage=R)},get escapeParameter(){return r.value?r.value.escapeParameter:p},set escapeParameter(R){r.value&&(r.value.escapeParameter=R)},t:F,getPostTranslationHandler:j,setPostTranslationHandler:M,getMissingHandler:E,setMissingHandler:C,rt:q,d:se,n:Z,tm:oe,te:H,getLocaleMessage:fe,setLocaleMessage:Ae,mergeLocaleMessage:xe,getDateTimeFormat:Ce,setDateTimeFormat:ce,mergeDateTimeFormat:le,getNumberFormat:_e,setNumberFormat:he,mergeNumberFormat:we};function z(R){R.locale.value=i.value,R.fallbackLocale.value=l.value,Object.keys(c.value).forEach(K=>{R.mergeLocaleMessage(K,c.value[K])}),Object.keys(u.value).forEach(K=>{R.mergeDateTimeFormat(K,u.value[K])}),Object.keys(g.value).forEach(K=>{R.mergeNumberFormat(K,g.value[K])}),R.escapeParameter=p,R.fallbackFormat=f,R.fallbackRoot=x,R.fallbackWarn=w,R.missingWarn=h,R.warnHtmlMessage=v}return Jc(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw xt(bt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const R=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=R.locale.value,l.value=R.fallbackLocale.value,c.value=R.messages.value,u.value=R.datetimeFormats.value,g.value=R.numberFormats.value):a&&z(R)}),$}const Zv=["locale","fallbackLocale","availableLocales"],Ap=["t","rt","d","n","tm","te"];function Qv(e,t){const o=Object.create(null);return Zv.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r)throw xt(bt.UNEXPECTED_ERROR);const s=it(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(o,a,s)}),e.config.globalProperties.$i18n=o,Ap.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r||!r.value)throw xt(bt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,Ap.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Pv(),__INTLIFY_JIT_COMPILATION__?zd(Av):zd(Sv),hv(Y0),mv(Rd),__INTLIFY_PROD_DEVTOOLS__){const e=zo();e.__INTLIFY__=!0,av(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const e_=Object.assign({"./locales/ar/aria.json":sb,"./locales/ar/buttons.json":ib,"./locales/ar/detail.json":lb,"./locales/ar/legend.json":cb,"./locales/ar/messages.json":ub,"./locales/ar/options.json":db,"./locales/ar/prayerLaps.json":pb,"./locales/ar/search.json":gb,"./locales/ar/tabs.json":fb,"./locales/de/aria.json":hb,"./locales/de/buttons.json":mb,"./locales/de/detail.json":bb,"./locales/de/legend.json":yb,"./locales/de/messages.json":vb,"./locales/de/options.json":_b,"./locales/de/prayerLaps.json":kb,"./locales/de/search.json":xb,"./locales/de/tabs.json":wb,"./locales/en/aria.json":Sb,"./locales/en/buttons.json":Ab,"./locales/en/detail.json":Lb,"./locales/en/legend.json":Cb,"./locales/en/messages.json":$b,"./locales/en/options.json":Eb,"./locales/en/popup.json":Tb,"./locales/en/prayerLaps.json":Pb,"./locales/en/search.json":Nb,"./locales/en/tabs.json":Ib,"./locales/es/aria.json":Mb,"./locales/es/buttons.json":Fb,"./locales/es/detail.json":Rb,"./locales/es/legend.json":Db,"./locales/es/messages.json":Ob,"./locales/es/options.json":Bb,"./locales/es/prayerLaps.json":jb,"./locales/es/search.json":zb,"./locales/es/tabs.json":Ub,"./locales/fr/aria.json":Gb,"./locales/fr/buttons.json":Kb,"./locales/fr/detail.json":Hb,"./locales/fr/legend.json":Vb,"./locales/fr/messages.json":qb,"./locales/fr/options.json":Wb,"./locales/fr/popup.json":Yb,"./locales/fr/prayerLaps.json":Xb,"./locales/fr/search.json":Jb,"./locales/fr/tabs.json":Zb,"./locales/hi/aria.json":Qb,"./locales/hi/buttons.json":ey,"./locales/hi/detail.json":ty,"./locales/hi/legend.json":oy,"./locales/hi/messages.json":ny,"./locales/hi/options.json":ay,"./locales/hi/prayerLaps.json":ry,"./locales/hi/search.json":sy,"./locales/it/aria.json":iy,"./locales/it/buttons.json":ly,"./locales/it/detail.json":cy,"./locales/it/legend.json":uy,"./locales/it/messages.json":dy,"./locales/it/options.json":py,"./locales/it/prayerLaps.json":gy,"./locales/it/search.json":fy,"./locales/pt/aria.json":hy,"./locales/pt/buttons.json":my,"./locales/pt/detail.json":by,"./locales/pt/legend.json":yy,"./locales/pt/messages.json":vy,"./locales/pt/options.json":_y,"./locales/pt/prayerLaps.json":ky,"./locales/pt/search.json":xy,"./locales/pt/tabs.json":wy,"./locales/ro/aria.json":Sy,"./locales/ro/buttons.json":Ay,"./locales/ro/detail.json":Ly,"./locales/ro/legend.json":Cy,"./locales/ro/messages.json":$y,"./locales/ro/options.json":Ey,"./locales/ro/prayerLaps.json":Ty,"./locales/ro/search.json":Py,"./locales/ru/aria.json":Ny,"./locales/ru/buttons.json":Iy,"./locales/ru/detail.json":My,"./locales/ru/legend.json":Fy,"./locales/ru/messages.json":Ry,"./locales/ru/options.json":Dy,"./locales/ru/prayerLaps.json":Oy,"./locales/ru/search.json":By,"./locales/ru/tabs.json":jy,"./locales/zh/aria.json":zy,"./locales/zh/buttons.json":Uy,"./locales/zh/detail.json":Gy,"./locales/zh/legend.json":Ky,"./locales/zh/messages.json":Hy,"./locales/zh/options.json":Vy,"./locales/zh/prayerLaps.json":qy,"./locales/zh/search.json":Wy}),qa={};for(const[e,t]of Object.entries(e_)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;qa[n]??(qa[n]={}),qa[n][a]=t}const qi=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function t_(){var o;const t=(((o=document==null?void 0:document.documentElement)==null?void 0:o.lang)||"").split("-")[0].toLowerCase();return qi.includes(t)?t:"en"}function o_(){return Gv({legacy:!1,globalInjection:!0,locale:t_(),fallbackLocale:"en",messages:qa,missingWarn:!1,fallbackWarn:!1})}function yt(e,t){const o=t||n_(e);Jt(()=>{var i;const n=yo();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${o}"]`))return;const s=document.createElement("style");s.setAttribute("data-shadow-styles",o),s.textContent=e,r.appendChild(s)})}function n_(e){let t=0;for(let o=0;o(t==null?void 0:t.theme)==="dark"),a=te(()=>{var l;return((l=o==null?void 0:o.value)==null?void 0:l.pinHintLabel)||"Tap a red dot — someone still needs prayer"}),r=ue(!1);let s=null;function i(){r.value=!1}return Jt(()=>{var g,h,w;const l=yo(),c=(w=(h=(g=l==null?void 0:l.proxy)==null?void 0:g.$el)==null?void 0:h.getRootNode)==null?void 0:w.call(h);if(!c||typeof c.querySelector!="function")return;let u=0;s=setInterval(()=>{u++,c.querySelector("canvas")?(clearInterval(s),s=null,r.value=!0):u>40&&(clearInterval(s),s=null)},300)}),ho(()=>{s&&clearInterval(s)}),yt(` .pin-hint { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 2147482000; pointer-events: none; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; @@ -68,7 +67,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(l,c)=>r.value?(X(),re("div",{key:0,class:Te(["pin-hint",{dark:n.value}]),role:"status"},[T("span",a_,[c[0]||(c[0]=T("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),gt(" "+ye(a.value)+" ",1),T("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:i},"×")])],2)):ve("",!0)}},ns="mapbox://styles/mapbox/standard",s_=ns,i_=ns,l_=!1,Lg={lightPreset:"night",theme:"default"},c_={lightPreset:"day",theme:"monochrome"};function u_(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function d_(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let r="dark";function s(y){return u_(y)}function i(y,v){y!=="light"&&y!=="dark"||(r=y,v&&f(v))}function l(){return{...r==="light"?c_:Lg}}function c(){return ns}function u(){return{basemap:l()}}function p(y,v){try{return typeof y.getConfigProperty=="function"?y.getConfigProperty("basemap",v):void 0}catch{return}}function h(y){return!!y&&typeof y.setConfigProperty=="function"&&typeof y.getConfigProperty=="function"}function x(y,v=!1){if(!h(y))return!1;const g=l();let m=!1;try{for(const[d,_]of Object.entries(g))!v&&p(y,d)===_||(y.setConfigProperty("basemap",d,_),m=!0)}catch(d){console.warn("[useMapTheme] setConfigProperty failed:",d)}return m}function w(y){if(!o.has(y)&&(o.add(y),!!h(y)))try{y.on("style.load",()=>x(y)),y.on("styledata",()=>x(y))}catch{}}function f(y){if(!y)return;if(w(y),x(y)&&!t){t=!0;try{y.once("idle",()=>{t=!1,x(y,!0)})}catch{t=!1}}}function b(y){e.toggleTheme(),f(y)}return{setLook:i,lookFor:s,STANDARD_STYLE:ns,LIGHT_STYLE:s_,DARK_STYLE:i_,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:f,swapTheme:b}}let g_=0;const p_=Ci("ui",{state:()=>({_storeInstanceId:++g_,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),f_=Ci("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),h_=Ci("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Bn({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Bn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),Ln={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},Rt=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},m_={class:"profile-loader"},b_={key:0,class:"profile-error"},y_={key:1,class:"profile-error"},v_=Rt({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var g;const o=e,n=te(()=>{if(!o.profileConfig)return null;try{return JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}}),a=te(()=>{var m;return((m=n.value)==null?void 0:m.profile)||null}),r=te(()=>{var m;return((m=n.value)==null?void 0:m.tk)||""}),s=te(()=>{var m;return((m=n.value)==null?void 0:m.dataSource)||Ln.activeSource||"doxa-csv"}),i=te(()=>{var m;return((m=n.value)==null?void 0:m.colorSet)||"default"}),l=te(()=>!1),c=te(()=>{var m;return((m=n.value)==null?void 0:m.pinHint)!==!1}),u=te(()=>{var d,_;const m=(((d=n.value)==null?void 0:d.locale)||((_=n.value)==null?void 0:_.lang)||"").split("-")[0].toLowerCase();return qi.includes(m)?m:""}),p=Pe("appI18n",null);uh(()=>{u.value&&p&&(p.global.locale.value=u.value)});const h=te(()=>{var m,d;return u.value||((d=(m=p==null?void 0:p.global)==null?void 0:m.locale)==null?void 0:d.value)||"en"}),x=te(()=>{var m;return((m=n.value)==null?void 0:m.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),w=Pe("profileModules",null);if(!w)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const f=te(()=>{if(!a.value)return null;const m=`./${a.value}.vue`;return w[m]?Ca(w[m]):(console.error(`[ProfileLoader] Profile not found: "${a.value}". Available:`,Object.keys(w)),null)});kt("mapboxToken",r),kt("dataSource",s),kt("colorSet",i),kt("profileConfig",n),kt("instanceId",x),kt("lang",h);const b=p_(),y=f_(),v=h_();try{const m=typeof localStorage<"u"?localStorage.getItem("theme"):null;m&&((g=b.setTheme)==null||g.call(b,m))}catch{}return kt("uiStore",b),kt("mapStore",y),kt("dataStore",v),(m,d)=>(X(),re("div",m_,[n.value?f.value?(X(),Ge(Qc(f.value),{key:2})):(X(),re("div",y_,[T("p",null,[d[1]||(d[1]=gt("⚠️ Profile ",-1)),T("strong",null,'"'+ye(a.value)+'"',1),d[2]||(d[2]=gt(" not found.",-1))])])):(X(),re("div",b_,[...d[0]||(d[0]=[T("p",null,[gt("⚠️ "),T("strong",null,"doxa-map"),gt(": missing or invalid "),T("code",null,"profile-config"),gt(" prop.")],-1),T("p",null,[gt("Example: "),T("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),f.value&&l.value?(X(),Ge(Qc(de(null)),{key:3})):ve("",!0),f.value&&c.value?(X(),Ge(r_,{key:4})):ve("",!0)]))}},[["__scopeId","data-v-50211124"]]),Cg="adoptionStatus",Ko={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Wi=Ko,Yi={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},__=Yi;function $g(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)?Ko.hasAdoption:Ko.notAdopted}function Xi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Ko.hasAdoption,["==",t,1],Ko.hasAdoption,Ko.notAdopted]}const Eg=Xi,k_=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Wi,ADOPTION_LABELS:__,LABELS:Yi,PALETTE:Ko,PROPERTY_KEY:Cg,applyColor:Xi,buildColorExpression:Eg,default:{name:"Adoption Progress",propertyKey:Cg,palette:Ko,colors:Ko,labels:Yi,getColor:$g,applyColor:Xi,buildColorExpression:Eg},getColor:$g},Symbol.toStringTag,{value:"Module"})),Tg="engagementStatus",Ho={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Ji=Ho,Zi={notEngaged:"Unengaged",hasEngagement:"Engaged"},w_=Zi;function Pg(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)?Ho.hasEngagement:Ho.notEngaged}function Qi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Ho.hasEngagement,["==",t,1],Ho.hasEngagement,Ho.notEngaged]}const Ng=Qi,x_=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Ji,ENGAGEMENT_LABELS:w_,LABELS:Zi,PALETTE:Ho,PROPERTY_KEY:Tg,applyColor:Qi,buildColorExpression:Ng,default:{name:"Engagement Progress",propertyKey:Tg,palette:Ho,colors:Ho,labels:Zi,getColor:Pg,applyColor:Qi,buildColorExpression:Ng},getColor:Pg},Symbol.toStringTag,{value:"Module"})),el="languageFamily",S_="#000000",ln={"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","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Ig=ln;function so(e){return ln[e]||S_}const A_=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(ln))t[e(o)]=o;return t})();function as(e){if(!e)return"Unknown";const t=String(e).trim();return A_[t.toLowerCase()]||t}function Mg(e){var t;return so(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function tl(){const e=["match",["get",el]];return Object.entries(ln).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Fg=tl,L_=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Ig,PALETTE:ln,PROPERTY_KEY:el,applyColor:tl,buildColorExpression:Fg,canonicalFamilyName:as,default:{name:"Language Family",propertyKey:el,palette:ln,colors:ln,getColor:Mg,applyColor:tl,buildColorExpression:Fg,getLanguageFamilyColor:so,canonicalFamilyName:as},defaultFamilyColor:"#95a5a6",getColor:Mg,getLanguageFamilyColor:so,languageFamilyColors:ln},Symbol.toStringTag,{value:"Module"})),Rg="peoplePraying",wo=144,cn={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Cn=cn,ol={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},C_=ol;function rs(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>=wo?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function nl(e){return cn[rs(e)]}function Dg(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 Og(e){return rs(e)==="fullPrayer"}function Bg(e){return nl(e)}function al({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,wo],cn.fullPrayer,[">",t,0],cn.hasPrayer,cn.noPrayer]}const jg=al,$_=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:wo,LABELS:ol,PALETTE:cn,PRAYER_COLORS:Cn,PRAYER_LABELS:C_,PROPERTY_KEY:Rg,applyColor:al,buildColorExpression:jg,checkHasFullPrayer:Og,checkHasPrayer:Dg,default:{name:"Prayer Progress",propertyKey:Rg,palette:cn,colors:cn,labels:ol,threshold:wo,getColor:Bg,applyColor:al,buildColorExpression:jg,getPrayerLevel:rs,getPrayerColor:nl,checkHasPrayer:Dg,checkHasFullPrayer:Og},getColor:Bg,getPrayerColor:nl,getPrayerLevel:rs},Symbol.toStringTag,{value:"Module"})),Ug="religion",rl="#94a3b8",$n={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Gt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Wa(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return $n[t]?t:"U"}function zg(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 Gt[Wa(t)]||rl}function sl(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Gt.C,"M",Gt.M,"H",Gt.H,"B",Gt.B,"E",Gt.E,"J",Gt.J,"S",Gt.S,"N",Gt.N,"O",Gt.O,rl]}const Gg=sl,E_=Object.assign({"./adoption.js":k_,"./engagement.js":x_,"./language-family.js":L_,"./prayer-progress.js":$_,"./religion.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Gt,PROPERTY_KEY:Ug,RELIGION_FAMILIES:$n,applyColor:sl,buildColorExpression:Gg,default:{name:"Religion",propertyKey:Ug,palette:Gt,families:$n,getColor:zg,applyColor:sl,buildColorExpression:Gg,fallback:rl},getColor:zg,getReligionFamily:Wa},Symbol.toStringTag,{value:"Module"}))}),T_=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),P_=e=>e.replace(/-/g,"_").toUpperCase(),Qn={...{STATUS:"status",CUSTOM:"custom"}},il={};function Kg(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=T_(o);Qn[P_(o)]=a,il[a]=n}}Kg(E_);function N_(e){e&&Kg(e)}function xo(e){return il[e]||il[Qn.LANGUAGE_FAMILY]}function I_(e,t={}){return xo(e).applyColor(t)}const M_=Object.assign({"./research-map.vue":()=>eo(()=>Promise.resolve().then(()=>eA),void 0)});if(N_(Object.assign({"./src/colors/affinity-block.js":lf,"./src/colors/doxa-region.js":df,"./src/colors/resource.js":ff})),typeof window<"u"&&((Gp=window.mapboxgl)!=null&&Gp.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}function F_(){return Km(v_,{configureApp(e){e.use(eb());const t=o_();e.use(t),e.provide("appI18n",t),e.provide("profileModules",M_)}})}const R_=F_();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",R_));const D_="rgba(120, 128, 134, 0.28)",Hg="36px",Vg=()=>{};function O_(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Vg;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Vg;const a=v=>v.classList.contains("map-scroll-edge--left");for(const v of n)v.style.background=`linear-gradient(${a(v)?"to right":"to left"}, ${D_} ${Hg}, transparent ${Hg})`,v.style.opacity="0",v.style.transition="opacity 0.16s ease",v.style.userSelect="none",v.style.webkitUserSelect="none";const r=v=>{v.style.opacity="1"},s=v=>{v.style.opacity="0"},i=()=>n.find(v=>!a(v))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const v of n)l.has(v)||s(v)},h=()=>{const v=i();v&&(r(v),u&&clearTimeout(u),u=setTimeout(p,250))},x=()=>h(),w=v=>{if(!(v.touches&&v.touches.length===1))return;const g=v.target;g&&g.classList&&g.classList.contains("map-scroll-edge")||h()},f=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",x,{passive:!0}),e.addEventListener("touchmove",w,{passive:!0}),e.addEventListener("touchend",f,{passive:!0}),e.addEventListener("touchcancel",f,{passive:!0});const b=()=>{c||h()};typeof window<"u"&&window.addEventListener("scroll",b,{passive:!0});const y=[];for(const v of n){const g=()=>{l.add(v),r(v)},m=()=>{l.delete(v),s(v)},d=()=>{c=!0,r(v)},_=()=>{c=!1,s(v)};v.addEventListener("mouseenter",g),v.addEventListener("mouseleave",m),v.addEventListener("touchstart",d,{passive:!0}),v.addEventListener("touchend",_,{passive:!0}),y.push(()=>{v.removeEventListener("mouseenter",g),v.removeEventListener("mouseleave",m),v.removeEventListener("touchstart",d),v.removeEventListener("touchend",_)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",x),e.removeEventListener("touchmove",w),e.removeEventListener("touchend",f),e.removeEventListener("touchcancel",f),typeof window<"u"&&window.removeEventListener("scroll",b);for(const g of y)g();for(const g of n)s(g)}}const B_=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["research-dashboard"]}].map(e=>[e.id,e]));function j_(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0};const o=B_[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0}:{style:o.mapbox,lightPreset:o.lightPreset}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0}:{style:void 0,lightPreset:void 0}}const ea={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function qg(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const U_=ea.mapbox.css,z_="https://tiles.openfreemap.org/styles/liberty";function ll(e){var o;const t=((o=ea[e])==null?void 0:o.global)||ea.mapbox.global;return typeof window<"u"?window[t]:void 0}async function G_(e){const t=ea[e]||ea.mapbox;if(ll(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(ll(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const r=document.createElement("script");r.src=t.js,r.async=!1,r.addEventListener("load",n,{once:!0}),r.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(r)})}async function K_(e,t){const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=s=>new Promise(i=>setTimeout(i,s)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(s=>{a.addEventListener("load",s,{once:!0}),a.addEventListener("error",s,{once:!0})}),n(2e3)]);return}const r=document.createElement("link");r.rel="stylesheet",r.href=t,await Promise.race([new Promise(s=>{r.addEventListener("load",s,{once:!0}),r.addEventListener("error",s,{once:!0}),o.prepend(r)}),n(2e3)])}function H_(e){return typeof e=="string"&&/^https?:\/\//.test(e)?e:z_}const V_=85.0511,Wg=-2,q_=0,W_=-60;function Yg(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Y_(e,t,o,n){if(!e||e<=0||!t||t<=0)return q_;const a=Math.log2(e/512),r=Yg(n)-Yg(V_),s=Math.log2(t/(512*r)),i=Math.max(a,s);return Math.max(Wg,Math.min(i,(o??18)-1))}function X_({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a="mapbox",center:r=[20,10],zoom:s=2,minZoom:i=void 0,maxZoom:l=18,pitch:c=0,bearing:u=0,renderWorldCopies:p=!0,showEdgeBorders:h=!0,southCutoff:x=W_,maxBounds:w=void 0}){const f=xr(null),b=ue(!1);let y=null,v=null;const g=a==="maplibre";async function m(){var P;const L=j_(o,a).style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}await G_(a);const O=ll(a);if(!O){console.error(`[useMapInstance] ${g?"maplibregl":"mapboxgl"} is not available. Add the ${g?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(!g){if(!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}await K_(e.value,g?ea.maplibre.css:U_),await new Promise(F=>requestAnimationFrame(F));const S=e.value,z=S.clientWidth,G=S.clientHeight;if(z===0||G===0){console.error(`[useMapInstance] Container has ZERO dimensions (${z}×${G}). Map will be invisible. Check that parent elements have CSS sizing.`);let F=S.parentElement,q=0;for(;F&&q<5;)F=F.parentElement,q++}const j=t;g||(O.accessToken=j);const M=()=>typeof window<"u"&&window.innerWidth>=1024,E=(F,q)=>{if(!M())return Wg;const se=Y_(F,q,l,x);return typeof i=="number"?Math.max(i,se):se},C=E(S.clientWidth,S.clientHeight);if(g){f.value=new O.Map({container:e.value,style:H_(L),center:r,zoom:s,minZoom:C,maxZoom:l,pitch:c,bearing:u,dragRotate:!1,renderWorldCopies:p,...w?{maxBounds:w}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),qg(f.value);try{e.value.__doxaMap=f.value}catch{}}else{const F=typeof n=="function"?n():n;f.value=new O.Map({accessToken:j,container:e.value,style:L,...F?{config:F}:{},center:r,zoom:s,minZoom:C,maxZoom:l,pitch:c,bearing:u,dragRotate:!1,touchPitch:!1,renderWorldCopies:p,...w?{maxBounds:w}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),qg(f.value);try{e.value.__doxaMap=f.value}catch{}}try{f.value.touchZoomRotate.disableRotation()}catch{}v=O_(((P=e.value)==null?void 0:P.parentElement)||null,{enabled:h}),y=()=>{const F=f.value;if(!F)return;const q=E(S.clientWidth,S.clientHeight);F.setMinZoom(q),F.getZoom(){requestAnimationFrame(()=>{var F;(F=f.value)==null||F.resize(),f.value&&f.value.setMinZoom(E(S.clientWidth,S.clientHeight)),b.value=!0})})}function d(){f.value&&(y&&(f.value.off("resize",y),typeof window<"u"&&(window.removeEventListener("resize",y),window.removeEventListener("orientationchange",y)),y=null),v&&(v(),v=null),f.value.remove(),f.value=null,b.value=!1)}return{map:f,isMapReady:b,initializeMap:m,destroy:d}}const J_=["mapbox","maplibre"],Xg="mapbox";function Z_(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function Q_(e){const t=Z_(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,r=String(o||n||a||Xg).toLowerCase().trim();return J_.includes(r)?r:Xg}function e1(e){return e==="maplibre"?"MapLibre":"Mapbox"}function Jg(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function Ya(e){return Jg(e)?{"circle-emissive-strength":1}:{}}const t1={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}},Zg={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function o1(e){return t1[e]||null}function cl(e="standard"){return Zg.circleRadius[e]||Zg.circleRadius.standard}function Qg(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,r=Pe("uiStore"),{t:s,locale:i}=ht(),l=ue([]);function c(g){const m=n(g.languageFamily),d="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let _=g.imageUrl;(!_||_.includes("NoImageAvailable"))&&(_=d);const L=(g.name||"U")[0].toUpperCase(),O=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],S=L.charCodeAt(0)%O.length;return` +`,"pin-hint"),(l,c)=>r.value?(X(),re("div",{key:0,class:Te(["pin-hint",{dark:n.value}]),role:"status"},[T("span",a_,[c[0]||(c[0]=T("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),pt(" "+ye(a.value)+" ",1),T("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:i},"×")])],2)):ve("",!0)}},ns="mapbox://styles/mapbox/standard",s_=ns,i_=ns,l_=!1,Lp={lightPreset:"night",theme:"default"},c_={lightPreset:"day",theme:"monochrome"};function u_(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function d_(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let r="dark";function s(y){return u_(y)}function i(y,v){y!=="light"&&y!=="dark"||(r=y,v&&f(v))}function l(){return{...r==="light"?c_:Lp}}function c(){return ns}function u(){return{basemap:l()}}function g(y,v){try{return typeof y.getConfigProperty=="function"?y.getConfigProperty("basemap",v):void 0}catch{return}}function h(y){return!!y&&typeof y.setConfigProperty=="function"&&typeof y.getConfigProperty=="function"}function w(y,v=!1){if(!h(y))return!1;const p=l();let m=!1;try{for(const[d,_]of Object.entries(p))!v&&g(y,d)===_||(y.setConfigProperty("basemap",d,_),m=!0)}catch(d){console.warn("[useMapTheme] setConfigProperty failed:",d)}return m}function x(y){if(!o.has(y)&&(o.add(y),!!h(y)))try{y.on("style.load",()=>w(y)),y.on("styledata",()=>w(y))}catch{}}function f(y){if(!y)return;if(x(y),w(y)&&!t){t=!0;try{y.once("idle",()=>{t=!1,w(y,!0)})}catch{t=!1}}}function b(y){e.toggleTheme(),f(y)}return{setLook:i,lookFor:s,STANDARD_STYLE:ns,LIGHT_STYLE:s_,DARK_STYLE:i_,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:f,swapTheme:b}}let p_=0;const g_=Ci("ui",{state:()=>({_storeInstanceId:++p_,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),f_=Ci("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),h_=Ci("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Bn({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Bn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),Ln={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},m_=".profile-loader[data-v-50211124]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;position:relative}.profile-error[data-v-50211124]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Rt=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},b_={class:"profile-loader"},y_={key:0,class:"profile-error"},v_={key:1,class:"profile-error"},__=Rt({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var p;const o=e,n=te(()=>{if(!o.profileConfig)return null;try{return JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}}),a=te(()=>{var m;return((m=n.value)==null?void 0:m.profile)||null}),r=te(()=>{var m;return((m=n.value)==null?void 0:m.tk)||""}),s=te(()=>{var m;return((m=n.value)==null?void 0:m.dataSource)||Ln.activeSource||"doxa-csv"}),i=te(()=>{var m;return((m=n.value)==null?void 0:m.colorSet)||"default"}),l=te(()=>!1),c=te(()=>{var m;return((m=n.value)==null?void 0:m.pinHint)!==!1}),u=te(()=>{var d,_;const m=(((d=n.value)==null?void 0:d.locale)||((_=n.value)==null?void 0:_.lang)||"").split("-")[0].toLowerCase();return qi.includes(m)?m:""}),g=Pe("appI18n",null);uh(()=>{u.value&&g&&(g.global.locale.value=u.value)});const h=te(()=>{var m,d;return u.value||((d=(m=g==null?void 0:g.global)==null?void 0:m.locale)==null?void 0:d.value)||"en"}),w=te(()=>{var m;return((m=n.value)==null?void 0:m.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),x=Pe("profileModules",null);if(!x)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const f=te(()=>{if(!a.value)return null;const m=`./${a.value}.vue`;return x[m]?Ca(x[m]):(console.error(`[ProfileLoader] Profile not found: "${a.value}". Available:`,Object.keys(x)),null)});kt("mapboxToken",r),kt("dataSource",s),kt("colorSet",i),kt("profileConfig",n),kt("instanceId",w),kt("lang",h);const b=g_(),y=f_(),v=h_();try{const m=typeof localStorage<"u"?localStorage.getItem("theme"):null;m&&((p=b.setTheme)==null||p.call(b,m))}catch{}return kt("uiStore",b),kt("mapStore",y),kt("dataStore",v),(m,d)=>(X(),re("div",b_,[n.value?f.value?(X(),Ge(Qc(f.value),{key:2})):(X(),re("div",v_,[T("p",null,[d[1]||(d[1]=pt("⚠️ Profile ",-1)),T("strong",null,'"'+ye(a.value)+'"',1),d[2]||(d[2]=pt(" not found.",-1))])])):(X(),re("div",y_,[...d[0]||(d[0]=[T("p",null,[pt("⚠️ "),T("strong",null,"doxa-map"),pt(": missing or invalid "),T("code",null,"profile-config"),pt(" prop.")],-1),T("p",null,[pt("Example: "),T("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),f.value&&l.value?(X(),Ge(Qc(de(null)),{key:3})):ve("",!0),f.value&&c.value?(X(),Ge(r_,{key:4})):ve("",!0)]))}},[["styles",[m_]],["__scopeId","data-v-50211124"]]),Cp="adoptionStatus",Ko={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Wi=Ko,Yi={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},k_=Yi;function $p(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)?Ko.hasAdoption:Ko.notAdopted}function Xi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Ko.hasAdoption,["==",t,1],Ko.hasAdoption,Ko.notAdopted]}const Ep=Xi,x_=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Wi,ADOPTION_LABELS:k_,LABELS:Yi,PALETTE:Ko,PROPERTY_KEY:Cp,applyColor:Xi,buildColorExpression:Ep,default:{name:"Adoption Progress",propertyKey:Cp,palette:Ko,colors:Ko,labels:Yi,getColor:$p,applyColor:Xi,buildColorExpression:Ep},getColor:$p},Symbol.toStringTag,{value:"Module"})),Tp="engagementStatus",Ho={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Ji=Ho,Zi={notEngaged:"Unengaged",hasEngagement:"Engaged"},w_=Zi;function Pp(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)?Ho.hasEngagement:Ho.notEngaged}function Qi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Ho.hasEngagement,["==",t,1],Ho.hasEngagement,Ho.notEngaged]}const Np=Qi,S_=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Ji,ENGAGEMENT_LABELS:w_,LABELS:Zi,PALETTE:Ho,PROPERTY_KEY:Tp,applyColor:Qi,buildColorExpression:Np,default:{name:"Engagement Progress",propertyKey:Tp,palette:Ho,colors:Ho,labels:Zi,getColor:Pp,applyColor:Qi,buildColorExpression:Np},getColor:Pp},Symbol.toStringTag,{value:"Module"})),el="languageFamily",A_="#000000",ln={"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","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Ip=ln;function so(e){return ln[e]||A_}const L_=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(ln))t[e(o)]=o;return t})();function as(e){if(!e)return"Unknown";const t=String(e).trim();return L_[t.toLowerCase()]||t}function Mp(e){var t;return so(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function tl(){const e=["match",["get",el]];return Object.entries(ln).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Fp=tl,C_=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Ip,PALETTE:ln,PROPERTY_KEY:el,applyColor:tl,buildColorExpression:Fp,canonicalFamilyName:as,default:{name:"Language Family",propertyKey:el,palette:ln,colors:ln,getColor:Mp,applyColor:tl,buildColorExpression:Fp,getLanguageFamilyColor:so,canonicalFamilyName:as},defaultFamilyColor:"#95a5a6",getColor:Mp,getLanguageFamilyColor:so,languageFamilyColors:ln},Symbol.toStringTag,{value:"Module"})),Rp="peoplePraying",xo=144,cn={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Cn=cn,ol={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},$_=ol;function rs(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>=xo?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function nl(e){return cn[rs(e)]}function Dp(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 Op(e){return rs(e)==="fullPrayer"}function Bp(e){return nl(e)}function al({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,xo],cn.fullPrayer,[">",t,0],cn.hasPrayer,cn.noPrayer]}const jp=al,E_=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:xo,LABELS:ol,PALETTE:cn,PRAYER_COLORS:Cn,PRAYER_LABELS:$_,PROPERTY_KEY:Rp,applyColor:al,buildColorExpression:jp,checkHasFullPrayer:Op,checkHasPrayer:Dp,default:{name:"Prayer Progress",propertyKey:Rp,palette:cn,colors:cn,labels:ol,threshold:xo,getColor:Bp,applyColor:al,buildColorExpression:jp,getPrayerLevel:rs,getPrayerColor:nl,checkHasPrayer:Dp,checkHasFullPrayer:Op},getColor:Bp,getPrayerColor:nl,getPrayerLevel:rs},Symbol.toStringTag,{value:"Module"})),zp="religion",rl="#94a3b8",$n={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Gt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Wa(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return $n[t]?t:"U"}function Up(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 Gt[Wa(t)]||rl}function sl(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Gt.C,"M",Gt.M,"H",Gt.H,"B",Gt.B,"E",Gt.E,"J",Gt.J,"S",Gt.S,"N",Gt.N,"O",Gt.O,rl]}const Gp=sl,T_=Object.assign({"./adoption.js":x_,"./engagement.js":S_,"./language-family.js":C_,"./prayer-progress.js":E_,"./religion.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Gt,PROPERTY_KEY:zp,RELIGION_FAMILIES:$n,applyColor:sl,buildColorExpression:Gp,default:{name:"Religion",propertyKey:zp,palette:Gt,families:$n,getColor:Up,applyColor:sl,buildColorExpression:Gp,fallback:rl},getColor:Up,getReligionFamily:Wa},Symbol.toStringTag,{value:"Module"}))}),P_=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),N_=e=>e.replace(/-/g,"_").toUpperCase(),Qn={...{STATUS:"status",CUSTOM:"custom"}},il={};function Kp(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=P_(o);Qn[N_(o)]=a,il[a]=n}}Kp(T_);function I_(e){e&&Kp(e)}function wo(e){return il[e]||il[Qn.LANGUAGE_FAMILY]}function M_(e,t={}){return wo(e).applyColor(t)}const F_=Object.assign({"./research-map.vue":()=>eo(()=>Promise.resolve().then(()=>iA),void 0)});if(I_(Object.assign({"./src/colors/affinity-block.js":lf,"./src/colors/doxa-region.js":df,"./src/colors/resource.js":ff})),typeof window<"u"&&((Gg=window.mapboxgl)!=null&&Gg.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}function R_(){return Km(__,{configureApp(e){e.use(eb());const t=o_();e.use(t),e.provide("appI18n",t),e.provide("profileModules",F_)}})}const D_=R_();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",D_));const O_="rgba(120, 128, 134, 0.28)",Hp="36px",Vp=()=>{};function B_(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Vp;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Vp;const a=v=>v.classList.contains("map-scroll-edge--left");for(const v of n)v.style.background=`linear-gradient(${a(v)?"to right":"to left"}, ${O_} ${Hp}, transparent ${Hp})`,v.style.opacity="0",v.style.transition="opacity 0.16s ease",v.style.userSelect="none",v.style.webkitUserSelect="none";const r=v=>{v.style.opacity="1"},s=v=>{v.style.opacity="0"},i=()=>n.find(v=>!a(v))||null,l=new Set;let c=!1,u=null;const g=()=>{for(const v of n)l.has(v)||s(v)},h=()=>{const v=i();v&&(r(v),u&&clearTimeout(u),u=setTimeout(g,250))},w=()=>h(),x=v=>{if(!(v.touches&&v.touches.length===1))return;const p=v.target;p&&p.classList&&p.classList.contains("map-scroll-edge")||h()},f=()=>{u&&clearTimeout(u),g()};e.addEventListener("wheel",w,{passive:!0}),e.addEventListener("touchmove",x,{passive:!0}),e.addEventListener("touchend",f,{passive:!0}),e.addEventListener("touchcancel",f,{passive:!0});const b=()=>{c||h()};typeof window<"u"&&window.addEventListener("scroll",b,{passive:!0});const y=[];for(const v of n){const p=()=>{l.add(v),r(v)},m=()=>{l.delete(v),s(v)},d=()=>{c=!0,r(v)},_=()=>{c=!1,s(v)};v.addEventListener("mouseenter",p),v.addEventListener("mouseleave",m),v.addEventListener("touchstart",d,{passive:!0}),v.addEventListener("touchend",_,{passive:!0}),y.push(()=>{v.removeEventListener("mouseenter",p),v.removeEventListener("mouseleave",m),v.removeEventListener("touchstart",d),v.removeEventListener("touchend",_)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",w),e.removeEventListener("touchmove",x),e.removeEventListener("touchend",f),e.removeEventListener("touchcancel",f),typeof window<"u"&&window.removeEventListener("scroll",b);for(const p of y)p();for(const p of n)s(p)}}const j_=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",bestFor:["research-dashboard"]}].map(e=>[e.id,e]));function z_(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0};const o=j_[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0}:{style:o.mapbox,lightPreset:o.lightPreset}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0}:{style:void 0,lightPreset:void 0}}const ea={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function qp(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const U_=ea.mapbox.css,G_="https://tiles.openfreemap.org/styles/liberty";function ll(e){var o;const t=((o=ea[e])==null?void 0:o.global)||ea.mapbox.global;return typeof window<"u"?window[t]:void 0}async function K_(e){const t=ea[e]||ea.mapbox;if(ll(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(ll(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const r=document.createElement("script");r.src=t.js,r.async=!1,r.addEventListener("load",n,{once:!0}),r.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(r)})}async function H_(e,t){const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=s=>new Promise(i=>setTimeout(i,s)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(s=>{a.addEventListener("load",s,{once:!0}),a.addEventListener("error",s,{once:!0})}),n(2e3)]);return}const r=document.createElement("link");r.rel="stylesheet",r.href=t,await Promise.race([new Promise(s=>{r.addEventListener("load",s,{once:!0}),r.addEventListener("error",s,{once:!0}),o.prepend(r)}),n(2e3)])}function V_(e){return typeof e=="string"&&/^https?:\/\//.test(e)?e:G_}const q_=85.0511,Wp=-2,W_=0,Y_=-60;function Yp(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function X_(e,t,o,n){if(!e||e<=0||!t||t<=0)return W_;const a=Math.log2(e/512),r=Yp(n)-Yp(q_),s=Math.log2(t/(512*r)),i=Math.max(a,s);return Math.max(Wp,Math.min(i,(o??18)-1))}function J_({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a="mapbox",center:r=[20,10],zoom:s=2,minZoom:i=void 0,maxZoom:l=18,pitch:c=0,bearing:u=0,renderWorldCopies:g=!0,showEdgeBorders:h=!0,southCutoff:w=Y_,maxBounds:x=void 0}){const f=wr(null),b=ue(!1);let y=null,v=null;const p=a==="maplibre";async function m(){var P;const L=z_(o,a).style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}await K_(a);const O=ll(a);if(!O){console.error(`[useMapInstance] ${p?"maplibregl":"mapboxgl"} is not available. Add the ${p?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(!p){if(!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}await H_(e.value,p?ea.maplibre.css:U_),await new Promise(F=>requestAnimationFrame(F));const S=e.value,U=S.clientWidth,G=S.clientHeight;if(U===0||G===0){console.error(`[useMapInstance] Container has ZERO dimensions (${U}×${G}). Map will be invisible. Check that parent elements have CSS sizing.`);let F=S.parentElement,q=0;for(;F&&q<5;)F=F.parentElement,q++}const j=t;p||(O.accessToken=j);const M=()=>typeof window<"u"&&window.innerWidth>=1024,E=(F,q)=>{if(!M())return Wp;const se=X_(F,q,l,w);return typeof i=="number"?Math.max(i,se):se},C=E(S.clientWidth,S.clientHeight);if(p){f.value=new O.Map({container:e.value,style:V_(L),center:r,zoom:s,minZoom:C,maxZoom:l,pitch:c,bearing:u,dragRotate:!1,renderWorldCopies:g,...x?{maxBounds:x}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),qp(f.value);try{e.value.__doxaMap=f.value}catch{}}else{const F=typeof n=="function"?n():n;f.value=new O.Map({accessToken:j,container:e.value,style:L,...F?{config:F}:{},center:r,zoom:s,minZoom:C,maxZoom:l,pitch:c,bearing:u,dragRotate:!1,touchPitch:!1,renderWorldCopies:g,...x?{maxBounds:x}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),qp(f.value);try{e.value.__doxaMap=f.value}catch{}}try{f.value.touchZoomRotate.disableRotation()}catch{}v=B_(((P=e.value)==null?void 0:P.parentElement)||null,{enabled:h}),y=()=>{const F=f.value;if(!F)return;const q=E(S.clientWidth,S.clientHeight);F.setMinZoom(q),F.getZoom(){requestAnimationFrame(()=>{var F;(F=f.value)==null||F.resize(),f.value&&f.value.setMinZoom(E(S.clientWidth,S.clientHeight)),b.value=!0})})}function d(){f.value&&(y&&(f.value.off("resize",y),typeof window<"u"&&(window.removeEventListener("resize",y),window.removeEventListener("orientationchange",y)),y=null),v&&(v(),v=null),f.value.remove(),f.value=null,b.value=!1)}return{map:f,isMapReady:b,initializeMap:m,destroy:d}}const Z_=["mapbox","maplibre"],Xp="mapbox";function Q_(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function e1(e){const t=Q_(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,r=String(o||n||a||Xp).toLowerCase().trim();return Z_.includes(r)?r:Xp}function t1(e){return e==="maplibre"?"MapLibre":"Mapbox"}function Jp(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function Ya(e){return Jp(e)?{"circle-emissive-strength":1}:{}}const o1={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}},Zp={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function n1(e){return o1[e]||null}function cl(e="standard"){return Zp.circleRadius[e]||Zp.circleRadius.standard}function Qp(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,r=Pe("uiStore"),{t:s,locale:i}=ht(),l=ue([]);function c(p){const m=n(p.languageFamily),d="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let _=p.imageUrl;(!_||_.includes("NoImageAvailable"))&&(_=d);const L=(p.name||"U")[0].toUpperCase(),O=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],S=L.charCodeAt(0)%O.length;return`
${g.name} + ">${p.name}

${g.country||"Unknown"} • ${g.status||"Unknown Status"}

+ ">${p.country||"Unknown"} • ${p.status||"Unknown Status"}

@@ -130,7 +129,7 @@ "> ${g.name}

- Language: ${g.language||"Unknown"} + Language: ${p.language||"Unknown"}

Family: - ${g.languageFamily||"Unknown"} + ${p.languageFamily||"Unknown"}

- ${g.population?`

Population: ${g.population}

`:""} - ${g.description?`

${g.description}

`:""} + ${p.population?`

Population: ${p.population}

`:""} + ${p.description?`

${p.description}

`:""} - `}function u(g){const m=g.iso_3166_1_alpha_3||"",_=g["name_"+((i==null?void 0:i.value)||"en")]||g.name_en||g.name||m,L=a(),O=m.toUpperCase(),S=L.filter(E=>{const C=(E.countryIso||E.country||"").toUpperCase();return C&&C===O}),z=S.length,G=S[0],j=(G==null?void 0:G.wagfRegionLabel)||(G==null?void 0:G.doxaRegionLabel)||(G==null?void 0:G.doxaRegion)||(G==null?void 0:G.wagfRegion)||"—",M=(G==null?void 0:G.wagfBlockLabel)||(G==null?void 0:G.wagfBlock)||"—";return` + `}function u(p){const m=p.iso_3166_1_alpha_3||"",_=p["name_"+((i==null?void 0:i.value)||"en")]||p.name_en||p.name||m,L=a(),O=m.toUpperCase(),S=L.filter(E=>{const C=(E.countryIso||E.country||"").toUpperCase();return C&&C===O}),U=S.length,G=S[0],j=(G==null?void 0:G.wagfRegionLabel)||(G==null?void 0:G.doxaRegionLabel)||(G==null?void 0:G.doxaRegion)||(G==null?void 0:G.wagfRegion)||"—",M=(G==null?void 0:G.wagfBlockLabel)||(G==null?void 0:G.wagfBlock)||"—";return`

${_} @@ -170,21 +169,21 @@ ${s("popup.country.country")}: ${_} (${m})

- ${s("popup.country.uupgCount")}: ${z} + ${s("popup.country.uupgCount")}: ${U}

- `}function p(g){const m=t();if(!m)return;const d=g||"language-family-pins";if(!m.getLayer(d))return;const _=L=>{try{const O=L.features[0],S=O.properties,z=O.geometry.coordinates.slice();for(;Math.abs(L.lngLat.lng-z[0])>180;)z[0]+=L.lngLat.lng>z[0]?360:-360;if(r&&r.legendMode!==void 0){r.selectPeopleGroup(O),r.isMobile&&r.legendState==="collapsed"&&r.setLegendState("open"),r.isMobile||window.dispatchEvent(new CustomEvent("doxa:openDesktopLegend",{detail:{mapId:o}}));return}new mapboxgl.Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(z).setHTML(c(S)).addTo(m)}catch(O){console.error(` [${o}] Pin click handler error:`,O)}};m.on("click",d,_),l.value.push({event:"click",layer:d,handler:_})}function h(){const g=t();if(!g)return;const m="regions-fill";if(!g.getLayer(m))return;const d=_=>{const L=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const O of L)if(g.getLayer(O)){const S=g.queryRenderedFeatures(_.point,{layers:[O]});if(S&&S.length>0)return}if(_.features&&_.features.length>0){const O=_.features[0].properties;new mapboxgl.Popup().setLngLat(_.lngLat).setHTML(u(O)).addTo(g)}};g.on("click",m,d),l.value.push({event:"click",layer:m,handler:d})}function x(){const g=t();if(!g)return;const m="clusters";if(!g.getLayer(m))return;const d=_=>{const L=g.queryRenderedFeatures(_.point,{layers:[m]});if(!L.length)return;const O=L[0].properties.cluster_id,S=L[0].source;g.getSource(S).getClusterExpansionZoom(O,(z,G)=>{z||g.easeTo({center:L[0].geometry.coordinates,zoom:G})})};g.on("click",m,d),l.value.push({event:"click",layer:m,handler:d})}function w(g){const m=t();if(!m||!m.getLayer(g))return;const d=()=>{m.getCanvas().style.cursor="pointer"},_=()=>{m.getCanvas().style.cursor=""};m.on("mouseenter",g,d),m.on("mouseleave",g,_),l.value.push({event:"mouseenter",layer:g,handler:d}),l.value.push({event:"mouseleave",layer:g,handler:_})}function f(){p(),w("language-family-pins"),p("language-family-pins-hitbox"),w("language-family-pins-hitbox"),x(),w("clusters")}function b(){h(),w("regions-fill")}function y(){const g=t();g&&(g.getLayer("language-family-pins")&&f(),g.getLayer("regions-fill")&&b(),g.getLayer("people-groups-pins")&&(p(),w("people-groups-pins")))}function v(){const g=t();if(g){for(const{event:m,layer:d,handler:_}of l.value)try{g.off(m,d,_)}catch{}l.value=[]}}return{attachAllEventHandlers:y,attachLanguageFamilyEvents:f,attachRegionEvents:b,attachPinClickHandler:p,attachRegionClickHandler:h,attachClusterClickHandler:x,attachCursorHandlers:w,detachAllEventHandlers:v,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const qe={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"},ul=[">",["to-number",["get","peoplePraying"],0],0],dl={0:.25,8:.4,14:.5},ta={0:.1,8:.18,14:.22},oa={0:1.2,8:1.6,14:2},ep=["interpolate",["linear"],["zoom"],0,["case",ul,dl[0],ta[0]],8,["case",ul,dl[8],ta[8]],14,["case",ul,dl[14],ta[14]]],n1=["interpolate",["linear"],["zoom"],0,oa[0],8,oa[8],14,oa[14]],tp=["==",["to-number",["get","peoplePraying"],0],0],a1={prayer:[tp],prayerProgress:[tp],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function r1(e){const t=a1[e]||[];if(!t.length)return n1;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,ta[0],oa[0]],8,["case",o,ta[8],oa[8]],14,["case",o,ta[14],oa[14]]]}const s1=[[/ sign language$/i,"Sign Language"]];function i1(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(qe[a])return qe[a];if(o.length>=3){const r=[o[1],o[0]].join(" ");if(qe[r])return qe[r]}}if(qe[t])return qe[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&qe[n])return qe[n];for(const[a,r]of s1)if(a.test(t))return r;return null}function l1(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,r=()=>{const le=t();return le?Ue(le):null},s=Qg({getMap:r,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=ue({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=ue({});function c(le,_e="languageFamily"){const he=r();if(!he||!(le!=null&&le.length))return;const xe=I_(_e),$=le.map(D=>{var ne,ae,k,A,V,Q,me,pe,J,N,W,ge,be,Le,Oe,Ie,ct,Ke,et;return{type:"Feature",properties:{uniqueId:D.id||D.uniqueId,slug:D.slug||((ne=D._normalized)==null?void 0:ne.slug)||"",rop3:D.rop3||D.peopleGroupId,peopleId3:D.peopleId3||"",name:D.name,language:D.language,languageFamily:D.languageFamily||((ae=D._normalized)==null?void 0:ae.languageFamily)||i1(D.language)||"Unknown",affinityBlock:D.affinityBlock||D.affbloc||D.Affbloc||((k=D._normalized)==null?void 0:k.affinityBlock)||"Unknown",affinityBlockLabel:D.affinityBlockLabel||((A=D._normalized)==null?void 0:A.affinityBlockLabel)||"",cluster:D.cluster||((V=D._normalized)==null?void 0:V.cluster)||"",clusterLabel:D.clusterLabel||((Q=D._normalized)==null?void 0:Q.clusterLabel)||"",peopleGroup:D.peopleGroup||((me=D._normalized)==null?void 0:me.peopleGroup)||"",peopleGroupLabel:D.peopleGroupLabel||((pe=D._normalized)==null?void 0:pe.peopleGroupLabel)||"",doxaRegion:D.doxaRegion||((J=D._normalized)==null?void 0:J.doxaRegion)||"Unknown",wagfBlock:D.wagfBlock||((N=D._normalized)==null?void 0:N.wagfBlock)||"",wagfBlockLabel:D.wagfBlockLabel||((W=D._normalized)==null?void 0:W.wagfBlockLabel)||"",wagfRegionLabel:D.wagfRegionLabel||((ge=D._normalized)==null?void 0:ge.wagfRegionLabel)||"",country:D.country,countryIso:D.countryIso,countryIsoLabel:D.countryIsoLabel,countryName:D.countryName,religion:D.religion,religionCode:D.religionCode,religionLabel:D.religionLabel,religionName:D.religionName,population:D.population,status:D.status,description:D.description||"",imageUrl:D.imageUrl||"",peoplePraying:Number(D.peoplePraying??((be=D._normalized)==null?void 0:be.peoplePraying)??0),engagementStatus:D.engagementStatus===!0||D.engagementStatus===1||!1,adoptionStatus:D.adoptionStatus===!0||D.adoptionStatus===1||!1,bible:D.bible||((Le=D._normalized)==null?void 0:Le.bible)||"Not Available",jesusFilm:D.jesusFilm||((Oe=D._normalized)==null?void 0:Oe.jesusFilm)||"Not Available",radio:D.radio||((Ie=D._normalized)==null?void 0:Ie.radio)||"Not Available",gospel:D.gospel||((ct=D._normalized)==null?void 0:ct.gospel)||"Not Available",audio:D.audio||((Ke=D._normalized)==null?void 0:Ke.audio)||"Not Available",stories:D.stories||((et=D._normalized)==null?void 0:et.stories)||"Not Available",lng:parseFloat(D.longitude||D.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(D.longitude||D.lng),parseFloat(D.latitude||D.lat)]}}}).filter(D=>!isNaN(D.geometry.coordinates[0])&&!isNaN(D.geometry.coordinates[1])),U=.04,R=D=>`${D.geometry.coordinates[0]},${D.geometry.coordinates[1]}`,K=new Map;for(const D of $){const ne=R(D);K.has(ne)||K.set(ne,[]),K.get(ne).push(D)}for(const D of K.values()){if(D.length<2)continue;const[ne,ae]=D[0].geometry.coordinates,k=D.length;for(let A=0;A",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),he.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":cl("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,s.attachLanguageFamilyEvents()}function u(le,_e="doxa-regions"){const he=r();if(!he)return;he.getLayer("regions-fill")&&he.removeLayer("regions-fill"),he.getLayer("regions-border")&&he.removeLayer("regions-border"),he.getSource("regions")&&he.removeSource("regions");const xe={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},$="#cccccc",U=le&&le.isoToRegion?le.isoToRegion:{},R=[],K={};for(const[ne,ae]of Object.entries(U)){const k=xe[String(ae).toLowerCase()];k&&R.push(ne,k),K[ae]||(K[ae]=[]),K[ae].push(ne)}l.value=K;const ee=R.length?["match",["get","iso_3166_1_alpha_3"],...R,$]:$,D=he.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":he.getLayer("language-family-pins")?"language-family-pins":void 0;he.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),he.addLayer({id:"regions-fill",type:"fill",source:"regions","source-layer":"country_boundaries",paint:{"fill-color":ee,"fill-opacity":_e==="none"?.1:.7,"fill-antialias":!0,"fill-emissive-strength":1,"fill-opacity-transition":{duration:300}}},D),he.addLayer({id:"regions-border",type:"line",source:"regions","source-layer":"country_boundaries",paint:{"line-color":ee,"line-width":1,"line-opacity":.9,"line-emissive-strength":1}},D),i.value.regions=!0,s.attachRegionEvents()}function p(le,_e){const he=r();if(!he||!le||!(_e!=null&&_e.length))return;h();const xe=_e.filter(ee=>{var ne;return(ee.languageFamily||((ne=ee._normalized)==null?void 0:ne.languageFamily)||"Unknown")===le});if(xe.length<2)return;const $=n(le),U=[],R=15,K=[...xe].sort((ee,D)=>(ee.longitude||ee.lng)-(D.longitude||D.lng));for(let ee=0;ee=",["get","peoplePraying"],wo],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const q=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function se(le,_e){const he=["interpolate",["linear"],["zoom"]];for(let xe=0;xe",["get","peoplePraying"],0],he=F();if(!O.every($=>le.getLayer($))){for(const $ of O)if(le.getLayer($))try{le.removeLayer($)}catch{}le.addLayer({id:d,type:"circle",source:"language-families",filter:_e,paint:{"circle-radius":se(q,1),"circle-color":he,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...Ya(le)}},"language-family-pins");for(const $ of L)le.addLayer({id:$,type:"circle",source:"language-families",filter:_e,paint:{"circle-radius":se(q,1),"circle-radius-transition":E,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":he,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":E,...Ya(le)}},"language-family-pins")}}function oe(){const le=r();if(le)for(const _e of O)le.getLayer(_e)&&le.removeLayer(_e)}function H(le){const _e=r();if(!_e)return;const he=[">",["get","peoplePraying"],0],xe=le?["all",he,le]:he;for(const $ of O)if(_e.getLayer($))try{_e.setFilter($,xe)}catch{}}function fe(){const le=r();if(le){if(Z(),v&&(cancelAnimationFrame(v),v=null),g=!0,le.getLayer("language-family-pins"))try{le.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],wo],1,[">",["get","peoplePraying"],0],1,3])}catch{}we(le),Ae()}}function Ae(){v&&(cancelAnimationFrame(v),v=null);const le=++m;let _e=performance.now(),he=-1/0;function xe($){if(!g||le!==m)return;const U=r();if(!U||!O.some(K=>U.getLayer(K))){v=null;return}if($-he"u")return;const _e=typeof le.getContainer=="function"?le.getContainer():null;if(_e)try{P=new IntersectionObserver(he=>{for(const xe of he)C=xe.isIntersecting},{threshold:0}),P.observe(_e)}catch{P=null,C=!0}}function Ce(){if(P){try{P.disconnect()}catch{}P=null}C=!0}function ce(){g=!1,v&&(cancelAnimationFrame(v),v=null),Ce();try{oe();const le=r();le&&le.getLayer("language-family-pins")&&le.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:p,removeFamilyConnectionLines:h,updateLayerSource:x,removeLayer:w,hasLayer:f,setPaintProperty:b,mapEvents:s,startPrayerGlow:fe,stopPrayerGlow:ce,syncGlowFilter:H,cleanup:y}}const io={center:[20,10],zoom:1.8,minZoom:.5,pitch:20,bearing:0};function c1(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:r=(io==null?void 0:io.center)||[20,10],defaultZoom:s=io==null?void 0:io.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(E,C,P={x:150,y:0}){const F=t();if(!F)return E;try{const q=F.getCanvas(),se=q.width,Z=q.height,oe=F.project(E),H=window.devicePixelRatio||1,fe=(P.x||0)*H,Ae=(P.y||0)*H,we={x:oe.x-fe,y:oe.y-Ae},Ce=F.unproject(we);return[Ce.lng,Ce.lat]}catch{return E}}function c(E,C=[]){const P=t();if(!P)return;let F=null,q=5;const se=C.filter(oe=>oe.languageFamily===E);if(se.length>0){let oe=1/0,H=-1/0,fe=1/0,Ae=-1/0;if(se.forEach(we=>{we.longitude&&we.latitude&&(oe=Math.min(oe,we.longitude),H=Math.max(H,we.longitude),fe=Math.min(fe,we.latitude),Ae=Math.max(Ae,we.latitude))}),oe!==1/0){F=[(oe+H)/2,(fe+Ae)/2];const we=H-oe,Ce=Ae-fe,ce=Math.max(we,Ce);ce>50?q=2:ce>20?q=3:ce>10?q=4:ce>5?q=5:q=6}}if(!F)return;const Z=l(F);P.flyTo({center:Z,zoom:q,...i})}function u(E){const C=t();if(!C)return;let P=null,F=4;const q=o1(E);if(q)P=q.center,F=q.zoom||4;else if(a!=null&&a.features){const Z=a.features.find(oe=>{var H,fe;return((H=oe.properties)==null?void 0:H.region)===E||((fe=oe.properties)==null?void 0:fe.name)===E});Z&&(P=p(Z))}if(!P)return;const se=l(P);C.flyTo({center:se,zoom:F,...i})}function p(E){if(!E||!E.geometry)return null;const{type:C,coordinates:P}=E.geometry;let F=[];if(C==="Polygon"?F=P[0]||[]:C==="MultiPolygon"&&P.forEach(Z=>{F=F.concat(Z[0]||[])}),F.length===0)return null;let q=0,se=0;return F.forEach(Z=>{q+=Z[0],se+=Z[1]}),[q/F.length,se/F.length]}function h(E,C={}){const P=t();if(!P)return;const F={center:E,...i,...C};P.flyTo(F)}function x(E,C){const P=t();if(!P||(E==null?void 0:E.longitude)==null||(E==null?void 0:E.latitude)==null)return;const F=C??Math.min(P.getZoom()+2,8);h([E.longitude,E.latitude],{zoom:F})}function w(E,C={top:40,right:40,bottom:40,left:40},P={}){const F=t();if(!F||!E)return;const q=P.maxZoom??4;F.fitBounds(E,{padding:C,maxZoom:q,...i})}function f(){const E=t();E&&E.flyTo({center:r,zoom:s,...i})}const b=80,y=800,v=5,g=5,m=110,d=1.2;function _(E){const C=E.filter(Number.isFinite).slice().sort(($,U)=>$-U),P=C.length;if(!P)return null;let F=-1,q=0;for(let $=0;$F&&(F=R,q=$)}const se=(q+1)%P,Z=new Array(P);for(let $=0;$0&&U(($+180)%360+360)%360-180,Ce=we(fe),ce=24,le=360/ce,_e=new Array(ce).fill(0);for(const $ of C){let U=Math.floor((($+180)%360+360)%360/le);U>=ce&&(U=ce-1),_e[U]++}let he=0;for(let $=1;$_e[he]&&(he=$);return{center:we(-180+(he+.5)*le),minLng:Ce,maxLng:Ce+(Ae-fe),span:Ae-fe}}function L(E){try{const C=E.getContainer&&E.getContainer().clientWidth||0,P=C>0?Math.log2(C/512):d,F=typeof E.getMinZoom=="function"?E.getMinZoom():P;return Math.max(F,P)}catch{return d}}function O(E,C,P,F){E.easeTo({center:[C,(P+F)/2],zoom:L(E),duration:y,essential:!0})}function S(E,C,P){if(P>m)return!0;try{const F=typeof E.cameraForBounds=="function"?E.cameraForBounds(C,{padding:b,maxZoom:v}):null;return F==null?!0:typeof F.zoom=="number"&&F.zoom<=L(E)+.05}catch{return!1}}function z(E,C){if(!Array.isArray(E))return E;switch(E[0]){case"get":return C==null?void 0:C[E[1]];case"literal":return E[1];case"has":return C!=null&&E[1]in C;case"!has":return C==null||!(E[1]in C);case"!":return!z(E[1],C);case"coalesce":{for(let F=1;F2){const se=Number(z(E[2],C));return Number.isFinite(se)?se:0}return NaN}case"to-string":{const F=z(E[1],C);return F==null?"":String(F)}case"to-boolean":return!!z(E[1],C);case"slice":{const F=z(E[1],C),q=z(E[2],C),se=E.length>3?z(E[3],C):void 0;return typeof F!="string"?"":se!=null?F.slice(q,se):F.slice(q)}default:return E}}function G(E,C){if(E===!0)return!0;if(E===!1)return!1;if(!Array.isArray(E))return!!E;const P=E[0];if(P==="all"){for(let F=1;F"||P===">="||P==="<"||P==="<="){const F=typeof E[1]=="string"?C==null?void 0:C[E[1]]:z(E[1],C),q=z(E[2],C);switch(P){case"==":return F===q||F==null&&q==null;case"!=":return!(F===q||F==null&&q==null);case">":return F>q;case">=":return F>=q;case"<":return F{const K=(R==null?void 0:R.properties)||{};return K.region===$||K.name===$||K.id===$});if(U){const R=[];let K=1/0,ee=-1/0;const D=ae=>{for(const k of ae)Array.isArray(k[0])?D(k):Number.isFinite(k[0])&&Number.isFinite(k[1])&&(R.push(k[0]),k[1]ee&&(ee=k[1]))};(_e=U.geometry)!=null&&_e.coordinates&&D(U.geometry.coordinates);const ne=_(R);if(ne&&Number.isFinite(K)){const ae=[[ne.minLng,K],[ne.maxLng,ee]];S(P,ae,ne.span)?O(P,ne.center,K,ee):P.fitBounds(ae,{padding:b,maxZoom:v,duration:y,essential:!0});return}}}const F=C.sourceId??"language-families";if(!P.getSource(F))return;const q=C.matchExpr??E.filter;if(!q)return;const se=j(P,F);if(!se.length)return;const Z=[];let oe=1/0,H=-1/0,fe=0,Ae=0,we=0;const Ce=new Set;for(const xe of se){const $=xe==null?void 0:xe.properties;if(!G(q,$))continue;const U=$==null?void 0:$.uniqueId;if(U!=null){if(Ce.has(U))continue;Ce.add(U)}const R=(he=xe.geometry)==null?void 0:he.coordinates;if(!Array.isArray(R)||R.length<2)continue;const K=R[0],ee=R[1];!Number.isFinite(K)||!Number.isFinite(ee)||(fe===0&&(Ae=K,we=ee),Z.push(K),eeH&&(H=ee),fe++)}if(fe===0)return;if(fe===1){P.flyTo({center:[Ae,we],zoom:g,duration:y,essential:!0});return}const ce=_(Z)||{center:0,minLng:0,maxLng:0,span:0},le=[[ce.minLng,oe],[ce.maxLng,H]];if(S(P,le,ce.span)){O(P,ce.center,oe,H);return}try{P.fitBounds(le,{padding:b,maxZoom:v,duration:y,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:h,flyToCoords:x,fitBounds:w,resetView:f,zoomToLegendRow:M,calculateRegionCenterFromPolygon:p}}const ss="#1a1a1a",Vo="selected-pin-highlight";function u1(e=ss){const t=document.createElement("div");t.className="doxa-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=` + `}function g(p){const m=t();if(!m)return;const d=p||"language-family-pins";if(!m.getLayer(d))return;const _=L=>{try{const O=L.features[0],S=O.properties,U=O.geometry.coordinates.slice();for(;Math.abs(L.lngLat.lng-U[0])>180;)U[0]+=L.lngLat.lng>U[0]?360:-360;if(r&&r.legendMode!==void 0){r.selectPeopleGroup(O),r.isMobile&&r.legendState==="collapsed"&&r.setLegendState("open"),r.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new mapboxgl.Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(U).setHTML(c(S)).addTo(m)}catch(O){console.error(` [${o}] Pin click handler error:`,O)}};m.on("click",d,_),l.value.push({event:"click",layer:d,handler:_})}function h(){const p=t();if(!p)return;const m="regions-fill";if(!p.getLayer(m))return;const d=_=>{const L=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const O of L)if(p.getLayer(O)){const S=p.queryRenderedFeatures(_.point,{layers:[O]});if(S&&S.length>0)return}if(_.features&&_.features.length>0){const O=_.features[0].properties;new mapboxgl.Popup().setLngLat(_.lngLat).setHTML(u(O)).addTo(p)}};p.on("click",m,d),l.value.push({event:"click",layer:m,handler:d})}function w(){const p=t();if(!p)return;const m="clusters";if(!p.getLayer(m))return;const d=_=>{const L=p.queryRenderedFeatures(_.point,{layers:[m]});if(!L.length)return;const O=L[0].properties.cluster_id,S=L[0].source;p.getSource(S).getClusterExpansionZoom(O,(U,G)=>{U||p.easeTo({center:L[0].geometry.coordinates,zoom:G})})};p.on("click",m,d),l.value.push({event:"click",layer:m,handler:d})}function x(p){const m=t();if(!m||!m.getLayer(p))return;const d=()=>{m.getCanvas().style.cursor="pointer"},_=()=>{m.getCanvas().style.cursor=""};m.on("mouseenter",p,d),m.on("mouseleave",p,_),l.value.push({event:"mouseenter",layer:p,handler:d}),l.value.push({event:"mouseleave",layer:p,handler:_})}function f(){g(),x("language-family-pins"),g("language-family-pins-hitbox"),x("language-family-pins-hitbox"),w(),x("clusters")}function b(){h(),x("regions-fill")}function y(){const p=t();p&&(p.getLayer("language-family-pins")&&f(),p.getLayer("regions-fill")&&b(),p.getLayer("people-groups-pins")&&(g(),x("people-groups-pins")))}function v(){const p=t();if(p){for(const{event:m,layer:d,handler:_}of l.value)try{p.off(m,d,_)}catch{}l.value=[]}}return{attachAllEventHandlers:y,attachLanguageFamilyEvents:f,attachRegionEvents:b,attachPinClickHandler:g,attachRegionClickHandler:h,attachClusterClickHandler:w,attachCursorHandlers:x,detachAllEventHandlers:v,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const qe={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"},ul=[">",["to-number",["get","peoplePraying"],0],0],dl={0:.25,8:.4,14:.5},ta={0:.1,8:.18,14:.22},oa={0:1.2,8:1.6,14:2},eg=["interpolate",["linear"],["zoom"],0,["case",ul,dl[0],ta[0]],8,["case",ul,dl[8],ta[8]],14,["case",ul,dl[14],ta[14]]],a1=["interpolate",["linear"],["zoom"],0,oa[0],8,oa[8],14,oa[14]],tg=["==",["to-number",["get","peoplePraying"],0],0],r1={prayer:[tg],prayerProgress:[tg],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function s1(e){const t=r1[e]||[];if(!t.length)return a1;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,ta[0],oa[0]],8,["case",o,ta[8],oa[8]],14,["case",o,ta[14],oa[14]]]}const i1=[[/ sign language$/i,"Sign Language"]];function l1(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(qe[a])return qe[a];if(o.length>=3){const r=[o[1],o[0]].join(" ");if(qe[r])return qe[r]}}if(qe[t])return qe[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&qe[n])return qe[n];for(const[a,r]of i1)if(a.test(t))return r;return null}function c1(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,r=()=>{const le=t();return le?ze(le):null},s=Qp({getMap:r,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=ue({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=ue({});function c(le,_e="languageFamily"){const he=r();if(!he||!(le!=null&&le.length))return;const we=M_(_e),$=le.map(D=>{var ne,ae,k,A,V,Q,me,ge,J,N,W,pe,be,Le,Oe,Ie,ct,Ke,et;return{type:"Feature",properties:{uniqueId:D.id||D.uniqueId,slug:D.slug||((ne=D._normalized)==null?void 0:ne.slug)||"",rop3:D.rop3||D.peopleGroupId,peopleId3:D.peopleId3||"",name:D.name,language:D.language,languageFamily:D.languageFamily||((ae=D._normalized)==null?void 0:ae.languageFamily)||l1(D.language)||"Unknown",affinityBlock:D.affinityBlock||D.affbloc||D.Affbloc||((k=D._normalized)==null?void 0:k.affinityBlock)||"Unknown",affinityBlockLabel:D.affinityBlockLabel||((A=D._normalized)==null?void 0:A.affinityBlockLabel)||"",cluster:D.cluster||((V=D._normalized)==null?void 0:V.cluster)||"",clusterLabel:D.clusterLabel||((Q=D._normalized)==null?void 0:Q.clusterLabel)||"",peopleGroup:D.peopleGroup||((me=D._normalized)==null?void 0:me.peopleGroup)||"",peopleGroupLabel:D.peopleGroupLabel||((ge=D._normalized)==null?void 0:ge.peopleGroupLabel)||"",doxaRegion:D.doxaRegion||((J=D._normalized)==null?void 0:J.doxaRegion)||"Unknown",wagfBlock:D.wagfBlock||((N=D._normalized)==null?void 0:N.wagfBlock)||"",wagfBlockLabel:D.wagfBlockLabel||((W=D._normalized)==null?void 0:W.wagfBlockLabel)||"",wagfRegionLabel:D.wagfRegionLabel||((pe=D._normalized)==null?void 0:pe.wagfRegionLabel)||"",country:D.country,countryIso:D.countryIso,countryIsoLabel:D.countryIsoLabel,countryName:D.countryName,religion:D.religion,religionCode:D.religionCode,religionLabel:D.religionLabel,religionName:D.religionName,population:D.population,status:D.status,description:D.description||"",imageUrl:D.imageUrl||"",peoplePraying:Number(D.peoplePraying??((be=D._normalized)==null?void 0:be.peoplePraying)??0),engagementStatus:D.engagementStatus===!0||D.engagementStatus===1||!1,adoptionStatus:D.adoptionStatus===!0||D.adoptionStatus===1||!1,bible:D.bible||((Le=D._normalized)==null?void 0:Le.bible)||"Not Available",jesusFilm:D.jesusFilm||((Oe=D._normalized)==null?void 0:Oe.jesusFilm)||"Not Available",radio:D.radio||((Ie=D._normalized)==null?void 0:Ie.radio)||"Not Available",gospel:D.gospel||((ct=D._normalized)==null?void 0:ct.gospel)||"Not Available",audio:D.audio||((Ke=D._normalized)==null?void 0:Ke.audio)||"Not Available",stories:D.stories||((et=D._normalized)==null?void 0:et.stories)||"Not Available",lng:parseFloat(D.longitude||D.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(D.longitude||D.lng),parseFloat(D.latitude||D.lat)]}}}).filter(D=>!isNaN(D.geometry.coordinates[0])&&!isNaN(D.geometry.coordinates[1])),z=.04,R=D=>`${D.geometry.coordinates[0]},${D.geometry.coordinates[1]}`,K=new Map;for(const D of $){const ne=R(D);K.has(ne)||K.set(ne,[]),K.get(ne).push(D)}for(const D of K.values()){if(D.length<2)continue;const[ne,ae]=D[0].geometry.coordinates,k=D.length;for(let A=0;A",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),he.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":cl("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,s.attachLanguageFamilyEvents()}function u(le,_e="doxa-regions"){const he=r();if(!he)return;he.getLayer("regions-fill")&&he.removeLayer("regions-fill"),he.getLayer("regions-border")&&he.removeLayer("regions-border"),he.getSource("regions")&&he.removeSource("regions");const we={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},$="#cccccc",z=le&&le.isoToRegion?le.isoToRegion:{},R=[],K={};for(const[ne,ae]of Object.entries(z)){const k=we[String(ae).toLowerCase()];k&&R.push(ne,k),K[ae]||(K[ae]=[]),K[ae].push(ne)}l.value=K;const ee=R.length?["match",["get","iso_3166_1_alpha_3"],...R,$]:$,D=he.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":he.getLayer("language-family-pins")?"language-family-pins":void 0;he.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),he.addLayer({id:"regions-fill",type:"fill",source:"regions","source-layer":"country_boundaries",paint:{"fill-color":ee,"fill-opacity":_e==="none"?.1:.7,"fill-antialias":!0,"fill-emissive-strength":1,"fill-opacity-transition":{duration:300}}},D),he.addLayer({id:"regions-border",type:"line",source:"regions","source-layer":"country_boundaries",paint:{"line-color":ee,"line-width":1,"line-opacity":.9,"line-emissive-strength":1}},D),i.value.regions=!0,s.attachRegionEvents()}function g(le,_e){const he=r();if(!he||!le||!(_e!=null&&_e.length))return;h();const we=_e.filter(ee=>{var ne;return(ee.languageFamily||((ne=ee._normalized)==null?void 0:ne.languageFamily)||"Unknown")===le});if(we.length<2)return;const $=n(le),z=[],R=15,K=[...we].sort((ee,D)=>(ee.longitude||ee.lng)-(D.longitude||D.lng));for(let ee=0;ee=",["get","peoplePraying"],xo],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const q=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function se(le,_e){const he=["interpolate",["linear"],["zoom"]];for(let we=0;we",["get","peoplePraying"],0],he=F();if(!O.every($=>le.getLayer($))){for(const $ of O)if(le.getLayer($))try{le.removeLayer($)}catch{}le.addLayer({id:d,type:"circle",source:"language-families",filter:_e,paint:{"circle-radius":se(q,1),"circle-color":he,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...Ya(le)}},"language-family-pins");for(const $ of L)le.addLayer({id:$,type:"circle",source:"language-families",filter:_e,paint:{"circle-radius":se(q,1),"circle-radius-transition":E,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":he,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":E,...Ya(le)}},"language-family-pins")}}function oe(){const le=r();if(le)for(const _e of O)le.getLayer(_e)&&le.removeLayer(_e)}function H(le){const _e=r();if(!_e)return;const he=[">",["get","peoplePraying"],0],we=le?["all",he,le]:he;for(const $ of O)if(_e.getLayer($))try{_e.setFilter($,we)}catch{}}function fe(){const le=r();if(le){if(Z(),v&&(cancelAnimationFrame(v),v=null),p=!0,le.getLayer("language-family-pins"))try{le.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],xo],1,[">",["get","peoplePraying"],0],1,3])}catch{}xe(le),Ae()}}function Ae(){v&&(cancelAnimationFrame(v),v=null);const le=++m;let _e=performance.now(),he=-1/0;function we($){if(!p||le!==m)return;const z=r();if(!z||!O.some(K=>z.getLayer(K))){v=null;return}if($-he"u")return;const _e=typeof le.getContainer=="function"?le.getContainer():null;if(_e)try{P=new IntersectionObserver(he=>{for(const we of he)C=we.isIntersecting},{threshold:0}),P.observe(_e)}catch{P=null,C=!0}}function Ce(){if(P){try{P.disconnect()}catch{}P=null}C=!0}function ce(){p=!1,v&&(cancelAnimationFrame(v),v=null),Ce();try{oe();const le=r();le&&le.getLayer("language-family-pins")&&le.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:g,removeFamilyConnectionLines:h,updateLayerSource:w,removeLayer:x,hasLayer:f,setPaintProperty:b,mapEvents:s,startPrayerGlow:fe,stopPrayerGlow:ce,syncGlowFilter:H,cleanup:y}}const io={center:[20,10],zoom:1.8,minZoom:.5,pitch:20,bearing:0};function u1(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:r=(io==null?void 0:io.center)||[20,10],defaultZoom:s=io==null?void 0:io.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(E,C,P={x:150,y:0}){const F=t();if(!F)return E;try{const q=F.getCanvas(),se=q.width,Z=q.height,oe=F.project(E),H=window.devicePixelRatio||1,fe=(P.x||0)*H,Ae=(P.y||0)*H,xe={x:oe.x-fe,y:oe.y-Ae},Ce=F.unproject(xe);return[Ce.lng,Ce.lat]}catch{return E}}function c(E,C=[]){const P=t();if(!P)return;let F=null,q=5;const se=C.filter(oe=>oe.languageFamily===E);if(se.length>0){let oe=1/0,H=-1/0,fe=1/0,Ae=-1/0;if(se.forEach(xe=>{xe.longitude&&xe.latitude&&(oe=Math.min(oe,xe.longitude),H=Math.max(H,xe.longitude),fe=Math.min(fe,xe.latitude),Ae=Math.max(Ae,xe.latitude))}),oe!==1/0){F=[(oe+H)/2,(fe+Ae)/2];const xe=H-oe,Ce=Ae-fe,ce=Math.max(xe,Ce);ce>50?q=2:ce>20?q=3:ce>10?q=4:ce>5?q=5:q=6}}if(!F)return;const Z=l(F);P.flyTo({center:Z,zoom:q,...i})}function u(E){const C=t();if(!C)return;let P=null,F=4;const q=n1(E);if(q)P=q.center,F=q.zoom||4;else if(a!=null&&a.features){const Z=a.features.find(oe=>{var H,fe;return((H=oe.properties)==null?void 0:H.region)===E||((fe=oe.properties)==null?void 0:fe.name)===E});Z&&(P=g(Z))}if(!P)return;const se=l(P);C.flyTo({center:se,zoom:F,...i})}function g(E){if(!E||!E.geometry)return null;const{type:C,coordinates:P}=E.geometry;let F=[];if(C==="Polygon"?F=P[0]||[]:C==="MultiPolygon"&&P.forEach(Z=>{F=F.concat(Z[0]||[])}),F.length===0)return null;let q=0,se=0;return F.forEach(Z=>{q+=Z[0],se+=Z[1]}),[q/F.length,se/F.length]}function h(E,C={}){const P=t();if(!P)return;const F={center:E,...i,...C};P.flyTo(F)}function w(E,C){const P=t();if(!P||(E==null?void 0:E.longitude)==null||(E==null?void 0:E.latitude)==null)return;const F=C??Math.min(P.getZoom()+2,8);h([E.longitude,E.latitude],{zoom:F})}function x(E,C={top:40,right:40,bottom:40,left:40},P={}){const F=t();if(!F||!E)return;const q=P.maxZoom??4;F.fitBounds(E,{padding:C,maxZoom:q,...i})}function f(){const E=t();E&&E.flyTo({center:r,zoom:s,...i})}const b=80,y=800,v=5,p=5,m=110,d=1.2;function _(E){const C=E.filter(Number.isFinite).slice().sort(($,z)=>$-z),P=C.length;if(!P)return null;let F=-1,q=0;for(let $=0;$F&&(F=R,q=$)}const se=(q+1)%P,Z=new Array(P);for(let $=0;$0&&z(($+180)%360+360)%360-180,Ce=xe(fe),ce=24,le=360/ce,_e=new Array(ce).fill(0);for(const $ of C){let z=Math.floor((($+180)%360+360)%360/le);z>=ce&&(z=ce-1),_e[z]++}let he=0;for(let $=1;$_e[he]&&(he=$);return{center:xe(-180+(he+.5)*le),minLng:Ce,maxLng:Ce+(Ae-fe),span:Ae-fe}}function L(E){try{const C=E.getContainer&&E.getContainer().clientWidth||0,P=C>0?Math.log2(C/512):d,F=typeof E.getMinZoom=="function"?E.getMinZoom():P;return Math.max(F,P)}catch{return d}}function O(E,C,P,F){E.easeTo({center:[C,(P+F)/2],zoom:L(E),duration:y,essential:!0})}function S(E,C,P){if(P>m)return!0;try{const F=typeof E.cameraForBounds=="function"?E.cameraForBounds(C,{padding:b,maxZoom:v}):null;return F==null?!0:typeof F.zoom=="number"&&F.zoom<=L(E)+.05}catch{return!1}}function U(E,C){if(!Array.isArray(E))return E;switch(E[0]){case"get":return C==null?void 0:C[E[1]];case"literal":return E[1];case"has":return C!=null&&E[1]in C;case"!has":return C==null||!(E[1]in C);case"!":return!U(E[1],C);case"coalesce":{for(let F=1;F2){const se=Number(U(E[2],C));return Number.isFinite(se)?se:0}return NaN}case"to-string":{const F=U(E[1],C);return F==null?"":String(F)}case"to-boolean":return!!U(E[1],C);case"slice":{const F=U(E[1],C),q=U(E[2],C),se=E.length>3?U(E[3],C):void 0;return typeof F!="string"?"":se!=null?F.slice(q,se):F.slice(q)}default:return E}}function G(E,C){if(E===!0)return!0;if(E===!1)return!1;if(!Array.isArray(E))return!!E;const P=E[0];if(P==="all"){for(let F=1;F"||P===">="||P==="<"||P==="<="){const F=typeof E[1]=="string"?C==null?void 0:C[E[1]]:U(E[1],C),q=U(E[2],C);switch(P){case"==":return F===q||F==null&&q==null;case"!=":return!(F===q||F==null&&q==null);case">":return F>q;case">=":return F>=q;case"<":return F{const K=(R==null?void 0:R.properties)||{};return K.region===$||K.name===$||K.id===$});if(z){const R=[];let K=1/0,ee=-1/0;const D=ae=>{for(const k of ae)Array.isArray(k[0])?D(k):Number.isFinite(k[0])&&Number.isFinite(k[1])&&(R.push(k[0]),k[1]ee&&(ee=k[1]))};(_e=z.geometry)!=null&&_e.coordinates&&D(z.geometry.coordinates);const ne=_(R);if(ne&&Number.isFinite(K)){const ae=[[ne.minLng,K],[ne.maxLng,ee]];S(P,ae,ne.span)?O(P,ne.center,K,ee):P.fitBounds(ae,{padding:b,maxZoom:v,duration:y,essential:!0});return}}}const F=C.sourceId??"language-families";if(!P.getSource(F))return;const q=C.matchExpr??E.filter;if(!q)return;const se=j(P,F);if(!se.length)return;const Z=[];let oe=1/0,H=-1/0,fe=0,Ae=0,xe=0;const Ce=new Set;for(const we of se){const $=we==null?void 0:we.properties;if(!G(q,$))continue;const z=$==null?void 0:$.uniqueId;if(z!=null){if(Ce.has(z))continue;Ce.add(z)}const R=(he=we.geometry)==null?void 0:he.coordinates;if(!Array.isArray(R)||R.length<2)continue;const K=R[0],ee=R[1];!Number.isFinite(K)||!Number.isFinite(ee)||(fe===0&&(Ae=K,xe=ee),Z.push(K),eeH&&(H=ee),fe++)}if(fe===0)return;if(fe===1){P.flyTo({center:[Ae,xe],zoom:p,duration:y,essential:!0});return}const ce=_(Z)||{center:0,minLng:0,maxLng:0,span:0},le=[[ce.minLng,oe],[ce.maxLng,H]];if(S(P,le,ce.span)){O(P,ce.center,oe,H);return}try{P.fitBounds(le,{padding:b,maxZoom:v,duration:y,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:h,flyToCoords:w,fitBounds:x,resetView:f,zoomToLegendRow:M,calculateRegionCenterFromPolygon:g}}const ss="#1a1a1a",Vo="selected-pin-highlight";function d1(e=ss){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=` -`,t}function d1(e={}){const{getMap:t=()=>null,getActivePinColor:o=null}=e,n=Pe("uiStore");let a=null,r=null;const s=o??Pe("getActivePinColor",null);let i=ss;function l(){const f=t();f&&(f.getLayer(Vo)||f.getSource("language-families")&&f.addLayer({id:Vo,type:"circle",source:"language-families",paint:{"circle-radius":["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],"circle-color":i,...Ya(f),"circle-opacity":1,"circle-stroke-width":2,"circle-stroke-color":"#FFFFFF","circle-stroke-opacity":1},filter:["==",["get","uniqueId"],"__none__"]}))}function c(){a||(a=u1(ss))}function u(f,b){const y=t();y&&(c(),r&&r.remove(),r=new mapboxgl.Marker({element:a,anchor:"bottom",offset:[0,0]}).setLngLat([f,b]).addTo(y))}function p(){r&&(r.remove(),r=null)}function h(f){var d,_;const b=t();if(!b)return;if(f&&(i=(s==null?void 0:s(f.properties))??ss),l(),b.getLayer(Vo)&&(b.setPaintProperty(Vo,"circle-color",i),Jg(b)&&b.setPaintProperty(Vo,"circle-emissive-strength",1)),!f){b.getLayer(Vo)&&b.setFilter(Vo,["==",["get","uniqueId"],"__none__"]),p();return}const y=((d=f.properties)==null?void 0:d.uniqueId)||"__none__",v=(_=f.geometry)==null?void 0:_.coordinates;if(!v)return;b.getLayer(Vo)&&b.setFilter(Vo,["==",["get","uniqueId"],y]);const[g,m]=v;u(g,m)}Re(()=>n.selectedPeopleGroup,f=>{h(f)});function x(){l()}function w(){p(),a=null}return{initialize:x,cleanup:w,updateSelectedPin:h}}const is="doxa-country-outline",Xa="doxa-country-outline-line",g1="mapbox://mapbox.country-boundaries-v1",p1="country_boundaries";function f1(e,t){if(!e)return"";const o=Array.isArray(t)?t:[],n=Array.isArray(e.memberIds)?e.memberIds.map(String):[],a=new Set(n);let r=n.length?o.find(s=>a.has(String(s.uniqueId??s.id??s.slug??""))):null;if(!r){const s=String(e.label??"").toLowerCase();r=o.find(i=>String(i.countryName??i.country??"").toLowerCase()===s)}return String((r==null?void 0:r.countryIso)??"").trim().toUpperCase()}function h1(e){return["all",["==",["get","iso_3166_1_alpha_3"],e],["any",["==",["get","worldview"],"all"],["in","US",["get","worldview"]]]]}function m1(e,t={}){const o=t.lineColor??"#2563eb",n=t.lineWidth??2.5,a=t.lineOpacity??.8;function r(){const i=typeof e=="function"?e():null;if(i)try{i.getLayer(Xa)&&i.removeLayer(Xa),i.getSource(is)&&i.removeSource(is)}catch{}}function s(i){const l=String(i||"").trim().toUpperCase();if(l.length!==3)return;const c=typeof e=="function"?e():null;if(!c)return;const u=h1(l);if(c.getLayer(Xa))try{c.setFilter(Xa,u);return}catch{}r();try{c.addSource(is,{type:"vector",url:g1}),c.addLayer({id:Xa,type:"line",source:is,"source-layer":p1,filter:u,layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":o,"line-width":n,"line-opacity":a,"line-emissive-strength":1}})}catch{}}return{showCountry:s,clearCountry:r}}const op="doxa-prayed-local",b1=7*24*60*60*1e3;function np(){try{const e=localStorage.getItem(op);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function ap(e){try{localStorage.setItem(op,JSON.stringify(e))}catch{}}function y1(){const e=Date.now(),t=np();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>b1)&&(delete t[n],o=!0);return o&&ap(t),new Set(Object.keys(t))}function v1(e){if(!e)return;const t=np();t[e]=Date.now(),ap(t);try{window.dispatchEvent(new CustomEvent("doxa:prayed-locally",{detail:{slug:e}}))}catch{}}function _1(e){const t=y1();return!t.size||!Array.isArray(e)?e:e.map(o=>(Number(o&&o.peoplePraying)||0)>0||!o||!t.has(o.slug)?o:{...o,peoplePraying:1})}const rp={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"};function gl(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const k1=[[/ sign language$/i,"Sign Language"]];function w1(e){var i,l;const t=gl(e.languageFamily);if(t)return t;const o=String(((l=(i=e._raw)==null?void 0:i.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(o&&rp[o])return rp[o];const n=gl(e.language||e.primary_language);if(!n||typeof n!="string")return"";const a=n.trim(),r=a.split(",").map(c=>c.trim()).filter(Boolean);if(r.length>=2){const c=[...r].reverse().join(" ");if(qe[c])return qe[c];if(r.length>=3){const u=[r[1],r[0]].join(" ");if(qe[u])return qe[u]}}if(qe[a])return qe[a];const s=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(s!==a&&qe[s])return qe[s];for(const[c,u]of k1)if(c.test(a))return u;return""}function x1(e){const{mapId:t="unknown",dataSourceId:o="doxa-csv",dataSourceManager:n=null,dataStore:a=null,markRaw:r=L=>L}=e;n||console.error("useMapData: dataSourceManager is required!");const s=ue(!1),i=ue(null),l=ue(!1),c=ue([]),u=ue([]),p=ue(null),h=ue([]),x=ue([]),w=ue([]),f=ue(null);async function b(){if(!n)throw new Error("dataSourceManager is required for useMapData");s.value=!0,i.value=null;try{if(await n.init(),a&&a.hasSourceData&&a.hasSourceData(o)){const C=a.getSourceData(o);u.value=r(C.normalizedData||[])}else{const C=await n.setActiveSource(o);for(const P of C){const F=gl(P.language||P.primary_language);F&&(P.language=F);const q=w1(P);P.languageFamily=as(q)}u.value=r(C),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:C,timestamp:Date.now()})}c.value=r(_1(u.value.map(C=>({id:C.uniqueId,slug:C.slug||"",rop3:C.peopleGroupId,peopleId3:C.peopleId3,name:C.name,language:C.language,languageFamily:C.languageFamily,country:C.country,population:C.population,status:C.engagementStatus||C.status,latitude:C.latitude,longitude:C.longitude,lng:C.longitude,lat:C.latitude,description:C.description,imageUrl:C.imageUrl,doxaRegion:C.doxaRegion||C.wagfRegion||"",peoplePraying:C.peoplePraying??null,_normalized:C}))));const L=n.getDataByLanguageFamily();h.value=Object.entries(L).map(([C,P])=>{const F=P.reduce((q,se)=>{const Z=parseInt(se.population)||0;return q+Z},0);return{name:C,count:P.length,peopleGroupCount:P.length,population:F,groups:P}}).sort((C,P)=>P.count-C.count);const O=n.getDataByRegion();x.value=Object.entries(O).map(([C,P])=>{const F=P.reduce((q,se)=>{const Z=parseInt(se.population)||0;return q+Z},0);return{name:C,count:P.length,peopleGroupCount:P.length,population:F,groups:P}}).sort((C,P)=>C.name.localeCompare(P.name));const S={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach(C=>{const P=parseInt(C.population)||0;let F=!1;C.bible==="Available"&&(S.bible.count++,S.bible.population+=P,S.bible.groups.push(C),F=!0),C.jesusFilm==="Available"&&(S.jesusFilm.count++,S.jesusFilm.population+=P,S.jesusFilm.groups.push(C),F=!0),C.radio==="Available"&&(S.radio.count++,S.radio.population+=P,S.radio.groups.push(C),F=!0),C.gospel==="Available"&&(S.gospel.count++,S.gospel.population+=P,S.gospel.groups.push(C),F=!0),C.audio==="Available"&&(S.audio.count++,S.audio.population+=P,S.audio.groups.push(C),F=!0),C.stories==="Available"&&(S.stories.count++,S.stories.population+=P,S.stories.groups.push(C),F=!0),F?(S.hasResources.count++,S.hasResources.population+=P,S.hasResources.groups.push(C)):(S.noResources.count++,S.noResources.population+=P,S.noResources.groups.push(C))});const z=u.value.length,G=u.value.reduce((C,P)=>C+(parseInt(P.population)||0),0),j={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},M={bible:{count:z-S.bible.count,population:G-S.bible.population},jesusFilm:{count:z-S.jesusFilm.count,population:G-S.jesusFilm.population},radio:{count:z-S.radio.count,population:G-S.radio.population},gospel:{count:z-S.gospel.count,population:G-S.gospel.population},audio:{count:z-S.audio.count,population:G-S.audio.population},stories:{count:z-S.stories.count,population:G-S.stories.population}},E="#2c3e50";return w.value=[{name:j.bible,key:"bible",count:S.bible.count,population:S.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:M.bible.count,population:M.bible.population,color:E}]},{name:j.jesusFilm,key:"jesusFilm",count:S.jesusFilm.count,population:S.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:M.jesusFilm.count,population:M.jesusFilm.population,color:E}]},{name:j.radio,key:"radio",count:S.radio.count,population:S.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:M.radio.count,population:M.radio.population,color:E}]},{name:j.gospel,key:"gospel",count:S.gospel.count,population:S.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:M.gospel.count,population:M.gospel.population,color:E}]},{name:j.audio,key:"audio",count:S.audio.count,population:S.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:M.audio.count,population:M.audio.population,color:E}]},{name:j.stories,key:"stories",count:S.stories.count,population:S.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:M.stories.count,population:M.stories.population,color:E}]},{name:j.hasResources,key:"hasResources",count:S.hasResources.count,population:S.hasResources.population,isParent:!0,children:[{name:j.noResources,key:"noResources",count:S.noResources.count,population:S.noResources.population,color:E}]}],f.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:h.value,doxaRegionsData:x.value,resourcesData:w.value,stats:f.value}}catch(L){throw console.error(`Failed to load data for map "${t}":`,L),i.value=L.message||"Failed to load data",L}finally{s.value=!1}}async function y(){var L,O,S;try{const z={},G=u.value||[];for(const j of G){const M=j.countryIso||((O=(L=j._raw)==null?void 0:L.country_code)==null?void 0:O.value)||"",E=(S=j._raw)==null?void 0:S.wagf_region,C=j.doxaRegion||j.wagfRegion||(E&&typeof E=="object"?E.value:"")||"";M&&C&&!z[M]&&(z[M]=C)}return p.value={isoToRegion:z},p.value}catch(z){throw console.error(`Error building regions data for map "${t}":`,z),i.value=z.message||"Failed to build regions",z}}function v(){return n?n.getDataByLanguageFamily():{}}function g(){return n?n.getDataByRegion():{}}function m(L){return v()[L]||[]}function d(L){return g()[L]||[]}function _(){c.value=[],u.value=[],p.value=null,h.value=[],x.value=[],w.value=[],f.value=null,l.value=!1,i.value=null}return{isLoading:s,isInitialized:l,error:i,peopleGroups:c,normalizedPeopleGroups:u,regionsData:p,languageFamiliesData:h,doxaRegionsData:x,resourcesData:w,stats:f,loadData:b,loadRegionsData:y,getDataByLanguageFamily:v,getDataByRegion:g,getPeopleGroupsByFamily:m,getPeopleGroupsByRegion:d,clearData:_}}function S1(e){const{map:t,geocoderRef:o,clustering:n,mapStore:a,uiStore:r,mapLayers:s,pplrInstance:i,onSemanticTreeSelect:l,switchTab:c,activeTabId:u,clearAllHighlights:p,clearCountryHighlight:h,mapId:x,supportedKinds:w,legendRouters:f={},peopleGroupResult:b,busAdapter:y}=e,v=e.filterLayerId||"language-family-pins";let g=!1;function m(){var C,P,F,q,se;g=!0;const M=(P=(C=o.value)==null?void 0:C.geocoder)==null?void 0:P.value;(F=M==null?void 0:M.clear)==null||F.call(M);const E=(M==null?void 0:M._inputEl)||((se=(q=M==null?void 0:M.container)==null?void 0:q.querySelector)==null?void 0:se.call(q,"input.mapboxgl-ctrl-geocoder--input"));if(E){E.value="";try{E.dispatchEvent(new Event("input",{bubbles:!0}))}catch{}}g=!1}function d(M,E){const C=`${v}-hitbox`;if(M!=null&&M.getLayer(C))try{M.setFilter(C,E)}catch{}}function _(){typeof window>"u"||typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:reveal-selected",{detail:{mapId:x}}))}const L={country:"countryName","language-family":"languageFamily",language:"language",dialect:"language",religion:"religionName",region:"doxaRegion","affinity-bloc":"affinityBlock",cluster:"cluster","people-group":"peopleGroup"};function O(M,E,C){var P,F,q;if(M.kind==="language")return["any",["==",["get",E],C],["==",["slice",["get",E],0,C.length+1],C+","],["in"," "+C,["get",E]]];if(M.kind==="dialect"){const se=Array.isArray(M.originalLabels)?M.originalLabels:[];return se.length===1?["==",["get",E],se[0]]:se.length>1?["in",["get",E],["literal",se]]:["==",["get",E],C]}else if(M.kind==="affinity-bloc"){const se=M.blocCode||((P=M.properties)==null?void 0:P.blocCode)||"";return se?["==",["get","affinityBlock"],se]:["==",["get","affinityBlockLabel"],C]}else if(M.kind==="cluster"){const se=M.clusterCode||((F=M.properties)==null?void 0:F.clusterCode)||"",Z=M.blocCode||((q=M.properties)==null?void 0:q.blocCode)||"";return se&&Z?["all",["==",["get","affinityBlock"],Z],["==",["get","cluster"],se]]:["==",["get","clusterLabel"],C]}else return["==",["get",E],C]}function S(M){if(!M||w&&!w.includes(M.kind))return null;const E=L[M.kind]||null,C=M.label;return!E||C==null||C===""?null:{kind:M.kind,value:C,property:E,expr:O(M,E,C)}}function z(M){var P,F,q,se;if(!M)return;h==null||h();const E=de(t),C=((P=M.properties)==null?void 0:P.id)||((F=M.properties)==null?void 0:F.uniqueId)||null;if((q=r==null?void 0:r.selectPeopleGroup)==null||q.call(r,{...M,properties:{...M.properties,uniqueId:C}}),E&&C!=null&&E.getLayer(v)){const Z=["==",["get","uniqueId"],C];try{E.setFilter(v,null)}catch{}d(E,Z),E.setPaintProperty(v,"circle-opacity",["case",Z,1,0]),E.setPaintProperty(v,"circle-stroke-opacity",["case",Z,1,0]),E.getLayer(`${v}-shadow`)&&E.setPaintProperty(`${v}-shadow`,"circle-opacity",["case",Z,1,0]),(se=s==null?void 0:s.syncGlowFilter)==null||se.call(s,Z)}}function G(M){var se;if(y){const Z=S(M);if(!Z)return;y.aggregate(Z,M);return}const E=de(t);if(!M||!E||!E.getLayer(v)||w&&!w.includes(M.kind))return;M.kind!=="country"&&(h==null||h());const C=S(M);if(!C)return;const{property:P,value:F}=C;try{E.setFilter(v,C.expr)}catch{}n.setSelectionFilter({property:P,value:F});let q=!1;if(M.kind==="language-family"||M.kind==="family")a.selectFamily(M.label),a.setActiveLegendTab("family"),q=!0;else if(M.kind==="language")a.selectLanguage(M.label),a.setActiveLegendTab("language"),q=!0;else if(M.kind==="dialect"){const Z=Array.isArray(M.originalLabels)?M.originalLabels:[],oe=M.familyDerived||"",H=M.baseLang||"",fe=M.dialectLabel||"",Ae=`${oe}__${H}__${fe}`;(se=a.selectDialect)==null||se.call(a,{key:Ae,originalLabels:Z}),a.setActiveLegendTab("dialect"),q=!0}else if(M.kind==="affinity-bloc"||M.kind==="cluster"||M.kind==="people-group"){let Z=null;if(M.kind==="affinity-bloc"){const oe=M.blocCode||"";Z={id:`bloc:${oe}`,label:M.label,depth:0,filter:oe?["==",["get","affinityBlock"],oe]:null}}else if(M.kind==="cluster"){const oe=M.blocCode||"",H=M.clusterCode||"";Z={id:`cluster:${oe}__${H}`,label:M.label,depth:1,filter:H?["==",["get","cluster"],H]:null}}else if(M.kind==="people-group"){const oe=M.blocCode||"",H=M.clusterCode||"",fe=M.peopleGroupCode||"";Z={id:`pg:${oe}__${H}__${fe}`,label:M.label,depth:2,filter:fe?["==",["get","peopleGroup"],fe]:null}}if(Z&&Z.filter){const oe=()=>{try{E.setFilter(v,null)}catch{}l(Z),i&&i.selection&&(i.selection.value=Z)};u.value!=="affinity-blocks"?(c("affinity-blocks"),Ut(oe)):oe()}q=!0}else f[M.kind]&&(f[M.kind](M,{map:E,filterLayerId:v,clearGeocoder:m,emitLegendReveal:_,property:P,value:F}),q=!0);q&&(m(),_())}function j(){var E,C,P;if(y){y.clear();return}if(g)return;h==null||h();const M=de(t);a.selectedRegion&&((E=a.selectRegion)==null||E.call(a,null)),a.selectedResource&&((C=a.selectResource)==null||C.call(a,null)),M&&M.getLayer(v)?p(M):(a.selectFamily(null),a.selectLanguage(null),(P=a.selectDialect)==null||P.call(a,null),n.setSelectionFilter(null))}return{onPeopleGroupResult:y?M=>y.peopleGroup(M):b||z,onAggregateResult:G,onClear:j,clearGeocoderProgrammatic:m}}const pl={};function fl(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Mn&&Mn.tagName.toUpperCase()==="SCRIPT"&&Mn.src||new URL("doxa-research-map.js",document.baseURI).href}<"u"&&(pl==null?void 0:pl.VITE_API_BASE_URL)||""}const hl=ue(0),ls=ue(0),cs=ue(0),ml=ue(!1),bl=ue(!1),yl=ue(null);let Ja=null;async function A1(){if(!ml.value)return Ja||(bl.value=!0,yl.value=null,Ja=(async()=>{var e,t;try{const o=((e=Ln==null?void 0:Ln.sources)==null?void 0:e[Ln.activeSource])||{},n=fl(),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();hl.value=Number(s.total||0),ls.value=Number(s.total_with_prayer_committed??s.total_with_prayer??0),cs.value=Number(s.total_with_100_committed??s.total_with_full_prayer??0),ml.value=!0}catch(o){yl.value=o&&o.message?o.message:String(o)}finally{bl.value=!1,Ja=null}})(),Ja)}function L1(){return{total:hl,withPrayer:ls,withFullPrayer:cs,loaded:ml,loading:bl,error:yl,load:A1,noPrayerCount:()=>Math.max(0,hl.value-ls.value),hasPrayerCount:()=>Math.max(0,ls.value-cs.value),fullPrayerCount:()=>cs.value}}function C1(e){return(e==null?void 0:e.properties)||e||{}}function us(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function $1(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(qe[n])return qe[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(qe[a])return qe[a]}}if(qe[e])return qe[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&qe[o]?qe[o]:null}const E1=[[/ sign language$/i,"Sign Language"]];function T1(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function P1(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function N1(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=us(t),n=as(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=us(a);if(r){const u=String(r).trim(),p=$1(u);if(p)return p;for(const[h,x]of E1)if(h.test(u))return x}return"Unknown"}function I1(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=us(t);if(s)return String(s).trim()}const o=e.primary_language??e.primaryLanguage??e.language,n=us(o);return n&&String(n).trim()||"— Unknown —"}function M1(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 F1(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 R1(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function D1(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 O1(e,t){return t.peopleGroupCount!==e.peopleGroupCount?t.peopleGroupCount-e.peopleGroupCount:(t.population||0)-(e.population||0)}function ds(e,t){return(t.population||0)!==(e.population||0)?(t.population||0)-(e.population||0):t.peopleGroupCount-e.peopleGroupCount}function vl(e,t={}){t.aggregator;const o=On({});function n(f){return!!o[f]}function a(f){o[f]=!o[f]}function r(f){const b=new Set(Array.isArray(f)?f:[]);for(const y of Object.keys(o))b.has(y)||(o[y]=!1);for(const y of b)o[y]=!0}const s=te(()=>{const f=(e==null?void 0:e.value)||[],b=new Map;for(const y of f){const v=C1(y),g=N1(v),m=I1(v),d=T1(m),_=P1(m),L=M1(v),O=F1(y,v),S=R1(y,v),z=D1(y,v);let G=b.get(g);G||(G={key:g,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},b.set(g,G)),G.peopleGroupCount+=1,G.population+=L,O!=null&&G.pinIds.push(O),z&&G.coords.push(z),S&&!G.clusterId&&(G.clusterId=S);let j=G.languages.get(d);if(j||(j={key:d,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},G.languages.set(d,j)),j.peopleGroupCount+=1,j.population+=L,O!=null&&j.pinIds.push(O),z&&j.coords.push(z),S&&!j.clusterId&&(j.clusterId=S),_){let M=j.dialects.get(_);M?M.originalLabels.add(m):(M={key:_,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([m])},j.dialects.set(_,M)),M.peopleGroupCount+=1,M.population+=L,O!=null&&M.pinIds.push(O),z&&M.coords.push(z)}}return b}),i=t.showAllKnown!==!1,l=te(()=>{const f=s.value,b=[],y=new Set;for(const v of f.values())b.push({key:v.key,label:v.key,color:so(v.key),peopleGroupCount:v.peopleGroupCount,population:v.population,kind:v.clusterId?"cluster":"family",clusterId:v.clusterId||void 0,pinIds:v.pinIds,coords:v.coords}),y.add(v.key);if(i)for(const v of Object.keys(Ig))y.has(v)||b.push({key:v,label:v,color:so(v),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return b.sort(O1),b});function c(f){const b=s.value.get(f);if(!b)return[];const y=[];for(const v of b.languages.values())y.push({key:`${f}__${v.key}`,label:v.key,color:so(f),peopleGroupCount:v.peopleGroupCount,population:v.population,kind:v.clusterId?"cluster":"language",familyKey:f,clusterId:v.clusterId||void 0,pinIds:v.pinIds,coords:v.coords,hasDialects:v.dialects.size>0});return y.sort(ds),y}function u(f){const b=f.indexOf("__");if(b<0)return[];const y=f.slice(0,b),v=f.slice(b+2),g=s.value.get(y);if(!g)return[];const m=g.languages.get(v);if(!m)return[];const d=[];for(const _ of m.dialects.values())d.push({key:`${f}__${_.key}`,label:`${v}, ${_.key}`,dialectOnly:_.key,color:so(y),peopleGroupCount:_.peopleGroupCount,population:_.population,kind:"dialect",languageKey:v,familyKey:y,pinIds:_.pinIds,coords:_.coords,originalLabels:Array.from(_.originalLabels)});return d.sort(ds),d}const p=te(()=>{const f=s.value,b=[];for(const y of f.values())for(const v of y.languages.values())b.push({key:`${y.key}__${v.key}`,label:v.key,color:so(y.key),peopleGroupCount:v.peopleGroupCount,population:v.population,kind:v.clusterId?"cluster":"language",familyKey:y.key,clusterId:v.clusterId||void 0,pinIds:v.pinIds,coords:v.coords,hasDialects:v.dialects.size>0});return b.sort(ds),b}),h=te(()=>{const f=s.value,b=[];for(const y of f.values())for(const v of y.languages.values())for(const g of v.dialects.values())b.push({key:`${y.key}__${v.key}__${g.key}`,label:`${v.key}, ${g.key}`,dialectOnly:g.key,color:so(y.key),peopleGroupCount:g.peopleGroupCount,population:g.population,kind:"dialect",languageKey:v.key,familyKey:y.key,pinIds:g.pinIds,coords:g.coords,originalLabels:Array.from(g.originalLabels)});return b.sort(ds),b});function x(f){let b=f;if(typeof f=="string"&&(b=l.value.find(v=>v.key===f),!b))return;const y={kind:b.kind,pinIds:b.pinIds||[],coords:b.coords||[]};b.kind==="family"&&(y.familyKey=b.label),b.kind==="language"&&(y.languageKey=b.label,y.familyKey=b.familyKey),b.kind==="dialect"&&(y.dialectKey=b.key,y.dialectOnly=b.dialectOnly||b.label,y.languageKey=b.languageKey,y.familyKey=b.familyKey,y.originalLabels=b.originalLabels||[]),b.kind==="cluster"&&(y.clusterId=b.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:y}))}const w=te(()=>{const f=s.value,b=[];for(const y of f.values()){const v=so(y.key),g=[];for(const d of y.languages.values()){d.key&&d.key!=="— Unknown —"&&g.push(d.key);for(const _ of d.dialects.values())for(const L of _.originalLabels)L&&g.push(L)}const m={id:`fam:${y.key}`,label:y.key,color:v,count:y.peopleGroupCount,pop:y.population,filter:g.length>0?["any",["==",["get","languageFamily"],y.key],["in",["get","language"],["literal",Array.from(new Set(g))]]]:["==",["get","languageFamily"],y.key],children:[]};for(const d of y.languages.values()){const _=d.key,L={id:`lang:${y.key}__${_}`,label:_,color:v,count:d.peopleGroupCount,pop:d.population,filter:["any",["==",["get","language"],_],["==",["slice",["get","language"],0,_.length+1],_+","],["in"," "+_,["get","language"]]],children:[]};for(const O of d.dialects.values()){const S=Array.from(O.originalLabels);L.children.push({id:`dial:${y.key}__${_}__${O.key}`,label:`${_}, ${O.key}`,color:v,count:O.peopleGroupCount,pop:O.population,filter:S.length===1?["==",["get","language"],S[0]]:["in",["get","language"],["literal",S]],originalLabels:S,children:[]})}m.children.push(L)}b.push(m)}return b.sort((y,v)=>v.pop-y.pop||v.count-y.count),b});return{rows:l,languageRows:p,dialectRows:h,langTree:w,toggle:a,isExpanded:n,setExpansionToOnly:r,childRowsFor:c,dialectRowsFor:u,highlight:x}}const B1=[];function j1(){const e=xo(Qn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function U1(){const e=xo(Qn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function z1(){const e=xo(Qn.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 En(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 sp=100;function G1(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 _l(e){return t=>{const o=G1(t);return e==="fullPrayer"?o>=sp:e==="hasPrayer"?o>0&&o0||typeof t=="string"&&parseInt(t,10)>0}function lp(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 K1={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 na(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function H1(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function V1(e){return(Number(e)||0).toLocaleString()}function Za(e,t={}){const o=Pe("dataStore"),n=Pe("uiStore"),a=Pe("mapStore"),{t:r}=ht(),s=L1();s.load();const i=te(()=>{if(na(e.value)==="religion")return"Religion";const y=K1[e.value];return y?r(y):""}),l=te(()=>na(e.value)==="affinity-blocs"?B1:[{key:"count",label:r("legend.columns.upgs"),width:48},{key:"population",label:r("legend.columns.population"),width:48}]),c=te(()=>{const b=na(e.value);return b==="prayer"?n.prayerFilter:b==="engagement"?n.engagementFilter:b==="adoption"?n.adoptionFilter:b==="language-families"?a.selectedFamily:b==="doxa-regions"?a.selectedRegion:b==="gospel-resources"?a.selectedResource:b==="religion"?n.religionFilter:null});function u(b){const y=na(e.value);y==="prayer"?n.setPrayerFilter(n.prayerFilter===b?null:b):y==="engagement"?n.setEngagementFilter(n.engagementFilter===b?null:b):y==="adoption"?n.setAdoptionFilter(n.adoptionFilter===b?null:b):y==="language-families"?a.selectFamily(a.selectedFamily===b?null:b):y==="doxa-regions"?a.selectRegion(a.selectedRegion===b?null:b):y==="gospel-resources"?a.selectResource(a.selectedResource===b?null:b):y==="religion"&&n.setReligionFilter(n.religionFilter===b?null:b)}const p=te(()=>{var y,v,g,m;const b=na(e.value);if(b==="prayer"){const d=En(o,_l("noPrayer")),_=En(o,_l("hasPrayer")),L=En(o,_l("fullPrayer")),O=s.loaded.value,S=O?s.noPrayerCount():d.count,z=O?s.hasPrayerCount():_.count,G=O?s.fullPrayerCount():L.count;return[{key:"noPrayer",label:r("legend.prayer.needsPrayer"),color:Cn.noPrayer,count:S,population:d.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:r("legend.prayer.hasPrayer"),color:Cn.hasPrayer,count:z,population:_.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:r("legend.prayer.fullPrayerCoverage"),color:Cn.fullPrayer,count:G,population:L.population,filterKey:"fullPrayer"}]}]}if(b==="engagement"){const d=En(o,L=>!ip(L)),_=En(o,L=>ip(L));return[{key:"notEngaged",label:r("legend.engagement.needsEngagement"),color:Ji.notEngaged,count:d.count,population:d.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:r("legend.engagement.hasEngagement"),color:Ji.hasEngagement,count:_.count,population:_.population,filterKey:"hasEngagement"}]}]}if(b==="adoption"){const d=En(o,L=>!lp(L)),_=En(o,L=>lp(L));return[{key:"notAdopted",label:r("legend.adoption.needsAdoption"),color:Wi.notAdopted,count:d.count,population:d.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:r("legend.adoption.hasAdoption"),color:Wi.hasAdoption,count:_.count,population:_.population,filterKey:"hasAdoption"}]}]}if(b==="religion"){const d={},L=Object.values(o.sources||{}).flatMap(z=>(z==null?void 0:z.features)||[]);for(const z of L){const G=z.properties||z,j=G.religion||((v=(y=G._raw)==null?void 0:y.religion)==null?void 0:v.value)||((g=G._raw)==null?void 0:g.religion)||"",M=Wa(j);d[M]||(d[M]={count:0,population:0}),d[M].count+=1,d[M].population+=parseInt(G.population||((m=G._raw)==null?void 0:m.Population)||0)||0}const O=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const z of O)delete d[z];return Object.keys(d).sort((z,G)=>z==="C"?-1:G==="C"?1:d[G].population-d[z].population).map(z=>({key:z,label:$n[z]||"Unknown",color:Gt[z]||"#94a3b8",count:d[z].count,population:d[z].population,filterKey:z,children:[]}))}if(b==="language-families")return(o.languageFamiliesData||[]).map(d=>({key:d.name,label:d.name,color:so(d.name),count:d.count,population:d.population,filterKey:d.name,children:[]}));if(b==="language-family"){const _={value:Object.values(o.sources||{}).flatMap(O=>(O==null?void 0:O.features)||[])},{rows:L}=vl(_);return L.value.map(O=>({key:O.key,label:O.label,color:O.color,count:O.peopleGroupCount,population:O.population,filterKey:O.key,children:[]}))}if(b==="doxa-regions"){const d=U1();return(o.doxaRegionsData||[]).map(_=>({key:_.name,label:_.name,color:d[_.name]||"#999",count:_.count,population:_.population,filterKey:_.name,children:[]}))}if(b==="gospel-resources"){const d=j1(),_=(d==null?void 0:d.palette)??{},L=(d==null?void 0:d.names)??{},O=o.resourcesData||[];return Object.keys(_).map(S=>{const z=O.find(G=>G.key===S);return{key:S,label:L[S]||S,color:_[S],count:(z==null?void 0:z.count)||0,population:(z==null?void 0:z.population)||0,filterKey:S,children:((z==null?void 0:z.children)||[]).map(G=>({key:G.key,label:G.name||G.key,color:G.color||_[S],count:G.count||0,population:G.population||0,filterKey:G.key}))}})}if(b==="affinity-blocs"){const d=z1();return Object.keys(d).sort().map(_=>({key:_,label:_,color:d[_],filterKey:_,children:[]}))}return[]});function h(b,y){return b.reduce((v,g)=>{var d;let m=g[y]||0;return(d=g.children)!=null&&d.length&&(m+=h(g.children,y)),v+m},0)}const x=te(()=>h(p.value,"count")),w=te(()=>h(p.value,"population")),f=te(()=>{if(na(e.value)!=="prayer")return null;const b=p.value[0];if(!b)return null;const y=(b.children||[]).find(L=>L.key==="hasPrayer"),v=(b.children||[]).find(L=>L.key==="fullPrayer"),g=Number(b.count)||0,m=Number(y==null?void 0:y.count)||0,d=Number(v==null?void 0:v.count)||0,_=(Number(y==null?void 0:y.population)||0)+(Number(v==null?void 0:v.population)||0);return{covered:m+d,total:x.value,coveredPopulation:_,totalPopulation:w.value,segments:[{key:"fullPrayer",label:(v==null?void 0:v.label)??r("legend.prayer.fullPrayerCoverage"),count:d,color:Cn.fullPrayer},{key:"hasPrayer",label:(y==null?void 0:y.label)??r("legend.prayer.hasPrayer"),count:m,color:Cn.hasPrayer},{key:"noPrayer",label:b.label,count:g,color:Cn.noPrayer}]}});return{items:p,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:x,totalPopulation:w,progress:f,fmtPop:H1,fmtCount:V1}}class cp{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=Ln,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",r=!1,s=[],i=!0;for(let l=0;lnull,getActivePinColor:o=null}=e,n=Pe("uiStore");let a=null,r=null;const s=o??Pe("getActivePinColor",null);let i=ss;function l(){const f=t();f&&(f.getLayer(Vo)||f.getSource("language-families")&&f.addLayer({id:Vo,type:"circle",source:"language-families",paint:{"circle-radius":["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],"circle-color":i,...Ya(f),"circle-opacity":1,"circle-stroke-width":2,"circle-stroke-color":"#FFFFFF","circle-stroke-opacity":1},filter:["==",["get","uniqueId"],"__none__"]}))}function c(){a||(a=d1(ss))}function u(f,b){const y=t();y&&(c(),r&&r.remove(),r=new mapboxgl.Marker({element:a,anchor:"bottom",offset:[0,0]}).setLngLat([f,b]).addTo(y))}function g(){r&&(r.remove(),r=null)}function h(f){var d,_;const b=t();if(!b)return;if(f&&(i=(s==null?void 0:s(f.properties))??ss),l(),b.getLayer(Vo)&&(b.setPaintProperty(Vo,"circle-color",i),Jp(b)&&b.setPaintProperty(Vo,"circle-emissive-strength",1)),!f){b.getLayer(Vo)&&b.setFilter(Vo,["==",["get","uniqueId"],"__none__"]),g();return}const y=((d=f.properties)==null?void 0:d.uniqueId)||"__none__",v=(_=f.geometry)==null?void 0:_.coordinates;if(!v)return;b.getLayer(Vo)&&b.setFilter(Vo,["==",["get","uniqueId"],y]);const[p,m]=v;u(p,m)}Re(()=>n.selectedPeopleGroup,f=>{h(f)});function w(){l()}function x(){g(),a=null}return{initialize:w,cleanup:x,updateSelectedPin:h}}const is="doxa-country-outline",Xa="doxa-country-outline-line",g1="mapbox://mapbox.country-boundaries-v1",f1="country_boundaries";function h1(e,t){if(!e)return"";const o=Array.isArray(t)?t:[],n=Array.isArray(e.memberIds)?e.memberIds.map(String):[],a=new Set(n);let r=n.length?o.find(s=>a.has(String(s.uniqueId??s.id??s.slug??""))):null;if(!r){const s=String(e.label??"").toLowerCase();r=o.find(i=>String(i.countryName??i.country??"").toLowerCase()===s)}return String((r==null?void 0:r.countryIso)??"").trim().toUpperCase()}function m1(e){return["all",["==",["get","iso_3166_1_alpha_3"],e],["any",["==",["get","worldview"],"all"],["in","US",["get","worldview"]]]]}function b1(e,t={}){const o=t.lineColor??"#2563eb",n=t.lineWidth??2.5,a=t.lineOpacity??.8;function r(){const i=typeof e=="function"?e():null;if(i)try{i.getLayer(Xa)&&i.removeLayer(Xa),i.getSource(is)&&i.removeSource(is)}catch{}}function s(i){const l=String(i||"").trim().toUpperCase();if(l.length!==3)return;const c=typeof e=="function"?e():null;if(!c)return;const u=m1(l);if(c.getLayer(Xa))try{c.setFilter(Xa,u);return}catch{}r();try{c.addSource(is,{type:"vector",url:g1}),c.addLayer({id:Xa,type:"line",source:is,"source-layer":f1,filter:u,layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":o,"line-width":n,"line-opacity":a,"line-emissive-strength":1}})}catch{}}return{showCountry:s,clearCountry:r}}const og="doxa-prayed-local",y1=7*24*60*60*1e3;function ng(){try{const e=localStorage.getItem(og);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function ag(e){try{localStorage.setItem(og,JSON.stringify(e))}catch{}}function v1(){const e=Date.now(),t=ng();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>y1)&&(delete t[n],o=!0);return o&&ag(t),new Set(Object.keys(t))}function _1(e){if(!e)return;const t=ng();t[e]=Date.now(),ag(t);try{window.dispatchEvent(new CustomEvent("doxa:prayed-locally",{detail:{slug:e}}))}catch{}}function k1(e){const t=v1();return!t.size||!Array.isArray(e)?e:e.map(o=>(Number(o&&o.peoplePraying)||0)>0||!o||!t.has(o.slug)?o:{...o,peoplePraying:1})}const rg={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"};function pl(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const x1=[[/ sign language$/i,"Sign Language"]];function w1(e){var i,l;const t=pl(e.languageFamily);if(t)return t;const o=String(((l=(i=e._raw)==null?void 0:i.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(o&&rg[o])return rg[o];const n=pl(e.language||e.primary_language);if(!n||typeof n!="string")return"";const a=n.trim(),r=a.split(",").map(c=>c.trim()).filter(Boolean);if(r.length>=2){const c=[...r].reverse().join(" ");if(qe[c])return qe[c];if(r.length>=3){const u=[r[1],r[0]].join(" ");if(qe[u])return qe[u]}}if(qe[a])return qe[a];const s=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(s!==a&&qe[s])return qe[s];for(const[c,u]of x1)if(c.test(a))return u;return""}function S1(e){const{mapId:t="unknown",dataSourceId:o="doxa-csv",dataSourceManager:n=null,dataStore:a=null,markRaw:r=L=>L}=e;n||console.error("useMapData: dataSourceManager is required!");const s=ue(!1),i=ue(null),l=ue(!1),c=ue([]),u=ue([]),g=ue(null),h=ue([]),w=ue([]),x=ue([]),f=ue(null);async function b(){if(!n)throw new Error("dataSourceManager is required for useMapData");s.value=!0,i.value=null;try{if(await n.init(),a&&a.hasSourceData&&a.hasSourceData(o)){const C=a.getSourceData(o);u.value=r(C.normalizedData||[])}else{const C=await n.setActiveSource(o);for(const P of C){const F=pl(P.language||P.primary_language);F&&(P.language=F);const q=w1(P);P.languageFamily=as(q)}u.value=r(C),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:C,timestamp:Date.now()})}c.value=r(k1(u.value.map(C=>({id:C.uniqueId,slug:C.slug||"",rop3:C.peopleGroupId,peopleId3:C.peopleId3,name:C.name,language:C.language,languageFamily:C.languageFamily,country:C.country,population:C.population,status:C.engagementStatus||C.status,latitude:C.latitude,longitude:C.longitude,lng:C.longitude,lat:C.latitude,description:C.description,imageUrl:C.imageUrl,doxaRegion:C.doxaRegion||C.wagfRegion||"",peoplePraying:C.peoplePraying??null,_normalized:C}))));const L=n.getDataByLanguageFamily();h.value=Object.entries(L).map(([C,P])=>{const F=P.reduce((q,se)=>{const Z=parseInt(se.population)||0;return q+Z},0);return{name:C,count:P.length,peopleGroupCount:P.length,population:F,groups:P}}).sort((C,P)=>P.count-C.count);const O=n.getDataByRegion();w.value=Object.entries(O).map(([C,P])=>{const F=P.reduce((q,se)=>{const Z=parseInt(se.population)||0;return q+Z},0);return{name:C,count:P.length,peopleGroupCount:P.length,population:F,groups:P}}).sort((C,P)=>C.name.localeCompare(P.name));const S={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach(C=>{const P=parseInt(C.population)||0;let F=!1;C.bible==="Available"&&(S.bible.count++,S.bible.population+=P,S.bible.groups.push(C),F=!0),C.jesusFilm==="Available"&&(S.jesusFilm.count++,S.jesusFilm.population+=P,S.jesusFilm.groups.push(C),F=!0),C.radio==="Available"&&(S.radio.count++,S.radio.population+=P,S.radio.groups.push(C),F=!0),C.gospel==="Available"&&(S.gospel.count++,S.gospel.population+=P,S.gospel.groups.push(C),F=!0),C.audio==="Available"&&(S.audio.count++,S.audio.population+=P,S.audio.groups.push(C),F=!0),C.stories==="Available"&&(S.stories.count++,S.stories.population+=P,S.stories.groups.push(C),F=!0),F?(S.hasResources.count++,S.hasResources.population+=P,S.hasResources.groups.push(C)):(S.noResources.count++,S.noResources.population+=P,S.noResources.groups.push(C))});const U=u.value.length,G=u.value.reduce((C,P)=>C+(parseInt(P.population)||0),0),j={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},M={bible:{count:U-S.bible.count,population:G-S.bible.population},jesusFilm:{count:U-S.jesusFilm.count,population:G-S.jesusFilm.population},radio:{count:U-S.radio.count,population:G-S.radio.population},gospel:{count:U-S.gospel.count,population:G-S.gospel.population},audio:{count:U-S.audio.count,population:G-S.audio.population},stories:{count:U-S.stories.count,population:G-S.stories.population}},E="#2c3e50";return x.value=[{name:j.bible,key:"bible",count:S.bible.count,population:S.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:M.bible.count,population:M.bible.population,color:E}]},{name:j.jesusFilm,key:"jesusFilm",count:S.jesusFilm.count,population:S.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:M.jesusFilm.count,population:M.jesusFilm.population,color:E}]},{name:j.radio,key:"radio",count:S.radio.count,population:S.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:M.radio.count,population:M.radio.population,color:E}]},{name:j.gospel,key:"gospel",count:S.gospel.count,population:S.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:M.gospel.count,population:M.gospel.population,color:E}]},{name:j.audio,key:"audio",count:S.audio.count,population:S.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:M.audio.count,population:M.audio.population,color:E}]},{name:j.stories,key:"stories",count:S.stories.count,population:S.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:M.stories.count,population:M.stories.population,color:E}]},{name:j.hasResources,key:"hasResources",count:S.hasResources.count,population:S.hasResources.population,isParent:!0,children:[{name:j.noResources,key:"noResources",count:S.noResources.count,population:S.noResources.population,color:E}]}],f.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:h.value,doxaRegionsData:w.value,resourcesData:x.value,stats:f.value}}catch(L){throw console.error(`Failed to load data for map "${t}":`,L),i.value=L.message||"Failed to load data",L}finally{s.value=!1}}async function y(){var L,O,S;try{const U={},G=u.value||[];for(const j of G){const M=j.countryIso||((O=(L=j._raw)==null?void 0:L.country_code)==null?void 0:O.value)||"",E=(S=j._raw)==null?void 0:S.wagf_region,C=j.doxaRegion||j.wagfRegion||(E&&typeof E=="object"?E.value:"")||"";M&&C&&!U[M]&&(U[M]=C)}return g.value={isoToRegion:U},g.value}catch(U){throw console.error(`Error building regions data for map "${t}":`,U),i.value=U.message||"Failed to build regions",U}}function v(){return n?n.getDataByLanguageFamily():{}}function p(){return n?n.getDataByRegion():{}}function m(L){return v()[L]||[]}function d(L){return p()[L]||[]}function _(){c.value=[],u.value=[],g.value=null,h.value=[],w.value=[],x.value=[],f.value=null,l.value=!1,i.value=null}return{isLoading:s,isInitialized:l,error:i,peopleGroups:c,normalizedPeopleGroups:u,regionsData:g,languageFamiliesData:h,doxaRegionsData:w,resourcesData:x,stats:f,loadData:b,loadRegionsData:y,getDataByLanguageFamily:v,getDataByRegion:p,getPeopleGroupsByFamily:m,getPeopleGroupsByRegion:d,clearData:_}}function A1(e){const{map:t,geocoderRef:o,clustering:n,mapStore:a,uiStore:r,mapLayers:s,pplrInstance:i,onSemanticTreeSelect:l,switchTab:c,activeTabId:u,clearAllHighlights:g,clearCountryHighlight:h,mapId:w,supportedKinds:x,legendRouters:f={},peopleGroupResult:b,busAdapter:y}=e,v=e.filterLayerId||"language-family-pins";let p=!1;function m(){var C,P,F,q,se;p=!0;const M=(P=(C=o.value)==null?void 0:C.geocoder)==null?void 0:P.value;(F=M==null?void 0:M.clear)==null||F.call(M);const E=(M==null?void 0:M._inputEl)||((se=(q=M==null?void 0:M.container)==null?void 0:q.querySelector)==null?void 0:se.call(q,"input.mapboxgl-ctrl-geocoder--input"));if(E){E.value="";try{E.dispatchEvent(new Event("input",{bubbles:!0}))}catch{}}p=!1}function d(M,E){const C=`${v}-hitbox`;if(M!=null&&M.getLayer(C))try{M.setFilter(C,E)}catch{}}function _(){typeof window>"u"||typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:reveal-selected",{detail:{mapId:w}}))}const L={country:"countryName","language-family":"languageFamily",language:"language",dialect:"language",religion:"religionName",region:"doxaRegion","affinity-bloc":"affinityBlock",cluster:"cluster","people-group":"peopleGroup"};function O(M,E,C){var P,F,q;if(M.kind==="language")return["any",["==",["get",E],C],["==",["slice",["get",E],0,C.length+1],C+","],["in"," "+C,["get",E]]];if(M.kind==="dialect"){const se=Array.isArray(M.originalLabels)?M.originalLabels:[];return se.length===1?["==",["get",E],se[0]]:se.length>1?["in",["get",E],["literal",se]]:["==",["get",E],C]}else if(M.kind==="affinity-bloc"){const se=M.blocCode||((P=M.properties)==null?void 0:P.blocCode)||"";return se?["==",["get","affinityBlock"],se]:["==",["get","affinityBlockLabel"],C]}else if(M.kind==="cluster"){const se=M.clusterCode||((F=M.properties)==null?void 0:F.clusterCode)||"",Z=M.blocCode||((q=M.properties)==null?void 0:q.blocCode)||"";return se&&Z?["all",["==",["get","affinityBlock"],Z],["==",["get","cluster"],se]]:["==",["get","clusterLabel"],C]}else return["==",["get",E],C]}function S(M){if(!M||x&&!x.includes(M.kind))return null;const E=L[M.kind]||null,C=M.label;return!E||C==null||C===""?null:{kind:M.kind,value:C,property:E,expr:O(M,E,C)}}function U(M){var P,F,q,se;if(!M)return;h==null||h();const E=de(t),C=((P=M.properties)==null?void 0:P.id)||((F=M.properties)==null?void 0:F.uniqueId)||null;if((q=r==null?void 0:r.selectPeopleGroup)==null||q.call(r,{...M,properties:{...M.properties,uniqueId:C}}),E&&C!=null&&E.getLayer(v)){const Z=["==",["get","uniqueId"],C];try{E.setFilter(v,null)}catch{}d(E,Z),E.setPaintProperty(v,"circle-opacity",["case",Z,1,0]),E.setPaintProperty(v,"circle-stroke-opacity",["case",Z,1,0]),E.getLayer(`${v}-shadow`)&&E.setPaintProperty(`${v}-shadow`,"circle-opacity",["case",Z,1,0]),(se=s==null?void 0:s.syncGlowFilter)==null||se.call(s,Z)}}function G(M){var se;if(y){const Z=S(M);if(!Z)return;y.aggregate(Z,M);return}const E=de(t);if(!M||!E||!E.getLayer(v)||x&&!x.includes(M.kind))return;M.kind!=="country"&&(h==null||h());const C=S(M);if(!C)return;const{property:P,value:F}=C;try{E.setFilter(v,C.expr)}catch{}n.setSelectionFilter({property:P,value:F});let q=!1;if(M.kind==="language-family"||M.kind==="family")a.selectFamily(M.label),a.setActiveLegendTab("family"),q=!0;else if(M.kind==="language")a.selectLanguage(M.label),a.setActiveLegendTab("language"),q=!0;else if(M.kind==="dialect"){const Z=Array.isArray(M.originalLabels)?M.originalLabels:[],oe=M.familyDerived||"",H=M.baseLang||"",fe=M.dialectLabel||"",Ae=`${oe}__${H}__${fe}`;(se=a.selectDialect)==null||se.call(a,{key:Ae,originalLabels:Z}),a.setActiveLegendTab("dialect"),q=!0}else if(M.kind==="affinity-bloc"||M.kind==="cluster"||M.kind==="people-group"){let Z=null;if(M.kind==="affinity-bloc"){const oe=M.blocCode||"";Z={id:`bloc:${oe}`,label:M.label,depth:0,filter:oe?["==",["get","affinityBlock"],oe]:null}}else if(M.kind==="cluster"){const oe=M.blocCode||"",H=M.clusterCode||"";Z={id:`cluster:${oe}__${H}`,label:M.label,depth:1,filter:H?["==",["get","cluster"],H]:null}}else if(M.kind==="people-group"){const oe=M.blocCode||"",H=M.clusterCode||"",fe=M.peopleGroupCode||"";Z={id:`pg:${oe}__${H}__${fe}`,label:M.label,depth:2,filter:fe?["==",["get","peopleGroup"],fe]:null}}if(Z&&Z.filter){const oe=()=>{try{E.setFilter(v,null)}catch{}l(Z),i&&i.selection&&(i.selection.value=Z)};u.value!=="affinity-blocks"?(c("affinity-blocks"),zt(oe)):oe()}q=!0}else f[M.kind]&&(f[M.kind](M,{map:E,filterLayerId:v,clearGeocoder:m,emitLegendReveal:_,property:P,value:F}),q=!0);q&&(m(),_())}function j(){var E,C,P;if(y){y.clear();return}if(p)return;h==null||h();const M=de(t);a.selectedRegion&&((E=a.selectRegion)==null||E.call(a,null)),a.selectedResource&&((C=a.selectResource)==null||C.call(a,null)),M&&M.getLayer(v)?g(M):(a.selectFamily(null),a.selectLanguage(null),(P=a.selectDialect)==null||P.call(a,null),n.setSelectionFilter(null))}return{onPeopleGroupResult:y?M=>y.peopleGroup(M):b||U,onAggregateResult:G,onClear:j,clearGeocoderProgrammatic:m}}const gl={};function fl(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Mn&&Mn.tagName.toUpperCase()==="SCRIPT"&&Mn.src||new URL("doxa-research-map.js",document.baseURI).href}<"u"&&(gl==null?void 0:gl.VITE_API_BASE_URL)||""}const hl=ue(0),ls=ue(0),cs=ue(0),ml=ue(!1),bl=ue(!1),yl=ue(null);let Ja=null;async function L1(){if(!ml.value)return Ja||(bl.value=!0,yl.value=null,Ja=(async()=>{var e,t;try{const o=((e=Ln==null?void 0:Ln.sources)==null?void 0:e[Ln.activeSource])||{},n=fl(),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();hl.value=Number(s.total||0),ls.value=Number(s.total_with_prayer_committed??s.total_with_prayer??0),cs.value=Number(s.total_with_100_committed??s.total_with_full_prayer??0),ml.value=!0}catch(o){yl.value=o&&o.message?o.message:String(o)}finally{bl.value=!1,Ja=null}})(),Ja)}function C1(){return{total:hl,withPrayer:ls,withFullPrayer:cs,loaded:ml,loading:bl,error:yl,load:L1,noPrayerCount:()=>Math.max(0,hl.value-ls.value),hasPrayerCount:()=>Math.max(0,ls.value-cs.value),fullPrayerCount:()=>cs.value}}function $1(e){return(e==null?void 0:e.properties)||e||{}}function us(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function E1(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(qe[n])return qe[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(qe[a])return qe[a]}}if(qe[e])return qe[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&qe[o]?qe[o]:null}const T1=[[/ sign language$/i,"Sign Language"]];function P1(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function N1(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function I1(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=us(t),n=as(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=us(a);if(r){const u=String(r).trim(),g=E1(u);if(g)return g;for(const[h,w]of T1)if(h.test(u))return w}return"Unknown"}function M1(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=us(t);if(s)return String(s).trim()}const o=e.primary_language??e.primaryLanguage??e.language,n=us(o);return n&&String(n).trim()||"— Unknown —"}function F1(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 R1(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 D1(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function O1(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 B1(e,t){return t.peopleGroupCount!==e.peopleGroupCount?t.peopleGroupCount-e.peopleGroupCount:(t.population||0)-(e.population||0)}function ds(e,t){return(t.population||0)!==(e.population||0)?(t.population||0)-(e.population||0):t.peopleGroupCount-e.peopleGroupCount}function vl(e,t={}){t.aggregator;const o=On({});function n(f){return!!o[f]}function a(f){o[f]=!o[f]}function r(f){const b=new Set(Array.isArray(f)?f:[]);for(const y of Object.keys(o))b.has(y)||(o[y]=!1);for(const y of b)o[y]=!0}const s=te(()=>{const f=(e==null?void 0:e.value)||[],b=new Map;for(const y of f){const v=$1(y),p=I1(v),m=M1(v),d=P1(m),_=N1(m),L=F1(v),O=R1(y,v),S=D1(y,v),U=O1(y,v);let G=b.get(p);G||(G={key:p,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},b.set(p,G)),G.peopleGroupCount+=1,G.population+=L,O!=null&&G.pinIds.push(O),U&&G.coords.push(U),S&&!G.clusterId&&(G.clusterId=S);let j=G.languages.get(d);if(j||(j={key:d,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},G.languages.set(d,j)),j.peopleGroupCount+=1,j.population+=L,O!=null&&j.pinIds.push(O),U&&j.coords.push(U),S&&!j.clusterId&&(j.clusterId=S),_){let M=j.dialects.get(_);M?M.originalLabels.add(m):(M={key:_,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([m])},j.dialects.set(_,M)),M.peopleGroupCount+=1,M.population+=L,O!=null&&M.pinIds.push(O),U&&M.coords.push(U)}}return b}),i=t.showAllKnown!==!1,l=te(()=>{const f=s.value,b=[],y=new Set;for(const v of f.values())b.push({key:v.key,label:v.key,color:so(v.key),peopleGroupCount:v.peopleGroupCount,population:v.population,kind:v.clusterId?"cluster":"family",clusterId:v.clusterId||void 0,pinIds:v.pinIds,coords:v.coords}),y.add(v.key);if(i)for(const v of Object.keys(Ip))y.has(v)||b.push({key:v,label:v,color:so(v),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return b.sort(B1),b});function c(f){const b=s.value.get(f);if(!b)return[];const y=[];for(const v of b.languages.values())y.push({key:`${f}__${v.key}`,label:v.key,color:so(f),peopleGroupCount:v.peopleGroupCount,population:v.population,kind:v.clusterId?"cluster":"language",familyKey:f,clusterId:v.clusterId||void 0,pinIds:v.pinIds,coords:v.coords,hasDialects:v.dialects.size>0});return y.sort(ds),y}function u(f){const b=f.indexOf("__");if(b<0)return[];const y=f.slice(0,b),v=f.slice(b+2),p=s.value.get(y);if(!p)return[];const m=p.languages.get(v);if(!m)return[];const d=[];for(const _ of m.dialects.values())d.push({key:`${f}__${_.key}`,label:`${v}, ${_.key}`,dialectOnly:_.key,color:so(y),peopleGroupCount:_.peopleGroupCount,population:_.population,kind:"dialect",languageKey:v,familyKey:y,pinIds:_.pinIds,coords:_.coords,originalLabels:Array.from(_.originalLabels)});return d.sort(ds),d}const g=te(()=>{const f=s.value,b=[];for(const y of f.values())for(const v of y.languages.values())b.push({key:`${y.key}__${v.key}`,label:v.key,color:so(y.key),peopleGroupCount:v.peopleGroupCount,population:v.population,kind:v.clusterId?"cluster":"language",familyKey:y.key,clusterId:v.clusterId||void 0,pinIds:v.pinIds,coords:v.coords,hasDialects:v.dialects.size>0});return b.sort(ds),b}),h=te(()=>{const f=s.value,b=[];for(const y of f.values())for(const v of y.languages.values())for(const p of v.dialects.values())b.push({key:`${y.key}__${v.key}__${p.key}`,label:`${v.key}, ${p.key}`,dialectOnly:p.key,color:so(y.key),peopleGroupCount:p.peopleGroupCount,population:p.population,kind:"dialect",languageKey:v.key,familyKey:y.key,pinIds:p.pinIds,coords:p.coords,originalLabels:Array.from(p.originalLabels)});return b.sort(ds),b});function w(f){let b=f;if(typeof f=="string"&&(b=l.value.find(v=>v.key===f),!b))return;const y={kind:b.kind,pinIds:b.pinIds||[],coords:b.coords||[]};b.kind==="family"&&(y.familyKey=b.label),b.kind==="language"&&(y.languageKey=b.label,y.familyKey=b.familyKey),b.kind==="dialect"&&(y.dialectKey=b.key,y.dialectOnly=b.dialectOnly||b.label,y.languageKey=b.languageKey,y.familyKey=b.familyKey,y.originalLabels=b.originalLabels||[]),b.kind==="cluster"&&(y.clusterId=b.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:y}))}const x=te(()=>{const f=s.value,b=[];for(const y of f.values()){const v=so(y.key),p=[];for(const d of y.languages.values()){d.key&&d.key!=="— Unknown —"&&p.push(d.key);for(const _ of d.dialects.values())for(const L of _.originalLabels)L&&p.push(L)}const m={id:`fam:${y.key}`,label:y.key,color:v,count:y.peopleGroupCount,pop:y.population,filter:p.length>0?["any",["==",["get","languageFamily"],y.key],["in",["get","language"],["literal",Array.from(new Set(p))]]]:["==",["get","languageFamily"],y.key],children:[]};for(const d of y.languages.values()){const _=d.key,L={id:`lang:${y.key}__${_}`,label:_,color:v,count:d.peopleGroupCount,pop:d.population,filter:["any",["==",["get","language"],_],["==",["slice",["get","language"],0,_.length+1],_+","],["in"," "+_,["get","language"]]],children:[]};for(const O of d.dialects.values()){const S=Array.from(O.originalLabels);L.children.push({id:`dial:${y.key}__${_}__${O.key}`,label:`${_}, ${O.key}`,color:v,count:O.peopleGroupCount,pop:O.population,filter:S.length===1?["==",["get","language"],S[0]]:["in",["get","language"],["literal",S]],originalLabels:S,children:[]})}m.children.push(L)}b.push(m)}return b.sort((y,v)=>v.pop-y.pop||v.count-y.count),b});return{rows:l,languageRows:g,dialectRows:h,langTree:x,toggle:a,isExpanded:n,setExpansionToOnly:r,childRowsFor:c,dialectRowsFor:u,highlight:w}}const j1=[];function z1(){const e=wo(Qn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function U1(){const e=wo(Qn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function G1(){const e=wo(Qn.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 En(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 sg=100;function K1(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 _l(e){return t=>{const o=K1(t);return e==="fullPrayer"?o>=sg:e==="hasPrayer"?o>0&&o0||typeof t=="string"&&parseInt(t,10)>0}function lg(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 H1={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 na(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function V1(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function q1(e){return(Number(e)||0).toLocaleString()}function Za(e,t={}){const o=Pe("dataStore"),n=Pe("uiStore"),a=Pe("mapStore"),{t:r}=ht(),s=C1();s.load();const i=te(()=>{if(na(e.value)==="religion")return"Religion";const y=H1[e.value];return y?r(y):""}),l=te(()=>na(e.value)==="affinity-blocs"?j1:[{key:"count",label:r("legend.columns.upgs"),width:48},{key:"population",label:r("legend.columns.population"),width:48}]),c=te(()=>{const b=na(e.value);return b==="prayer"?n.prayerFilter:b==="engagement"?n.engagementFilter:b==="adoption"?n.adoptionFilter:b==="language-families"?a.selectedFamily:b==="doxa-regions"?a.selectedRegion:b==="gospel-resources"?a.selectedResource:b==="religion"?n.religionFilter:null});function u(b){const y=na(e.value);y==="prayer"?n.setPrayerFilter(n.prayerFilter===b?null:b):y==="engagement"?n.setEngagementFilter(n.engagementFilter===b?null:b):y==="adoption"?n.setAdoptionFilter(n.adoptionFilter===b?null:b):y==="language-families"?a.selectFamily(a.selectedFamily===b?null:b):y==="doxa-regions"?a.selectRegion(a.selectedRegion===b?null:b):y==="gospel-resources"?a.selectResource(a.selectedResource===b?null:b):y==="religion"&&n.setReligionFilter(n.religionFilter===b?null:b)}const g=te(()=>{var y,v,p,m;const b=na(e.value);if(b==="prayer"){const d=En(o,_l("noPrayer")),_=En(o,_l("hasPrayer")),L=En(o,_l("fullPrayer")),O=s.loaded.value,S=O?s.noPrayerCount():d.count,U=O?s.hasPrayerCount():_.count,G=O?s.fullPrayerCount():L.count;return[{key:"noPrayer",label:r("legend.prayer.needsPrayer"),color:Cn.noPrayer,count:S,population:d.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:r("legend.prayer.hasPrayer"),color:Cn.hasPrayer,count:U,population:_.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:r("legend.prayer.fullPrayerCoverage"),color:Cn.fullPrayer,count:G,population:L.population,filterKey:"fullPrayer"}]}]}if(b==="engagement"){const d=En(o,L=>!ig(L)),_=En(o,L=>ig(L));return[{key:"notEngaged",label:r("legend.engagement.needsEngagement"),color:Ji.notEngaged,count:d.count,population:d.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:r("legend.engagement.hasEngagement"),color:Ji.hasEngagement,count:_.count,population:_.population,filterKey:"hasEngagement"}]}]}if(b==="adoption"){const d=En(o,L=>!lg(L)),_=En(o,L=>lg(L));return[{key:"notAdopted",label:r("legend.adoption.needsAdoption"),color:Wi.notAdopted,count:d.count,population:d.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:r("legend.adoption.hasAdoption"),color:Wi.hasAdoption,count:_.count,population:_.population,filterKey:"hasAdoption"}]}]}if(b==="religion"){const d={},L=Object.values(o.sources||{}).flatMap(U=>(U==null?void 0:U.features)||[]);for(const U of L){const G=U.properties||U,j=G.religion||((v=(y=G._raw)==null?void 0:y.religion)==null?void 0:v.value)||((p=G._raw)==null?void 0:p.religion)||"",M=Wa(j);d[M]||(d[M]={count:0,population:0}),d[M].count+=1,d[M].population+=parseInt(G.population||((m=G._raw)==null?void 0:m.Population)||0)||0}const O=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const U of O)delete d[U];return Object.keys(d).sort((U,G)=>U==="C"?-1:G==="C"?1:d[G].population-d[U].population).map(U=>({key:U,label:$n[U]||"Unknown",color:Gt[U]||"#94a3b8",count:d[U].count,population:d[U].population,filterKey:U,children:[]}))}if(b==="language-families")return(o.languageFamiliesData||[]).map(d=>({key:d.name,label:d.name,color:so(d.name),count:d.count,population:d.population,filterKey:d.name,children:[]}));if(b==="language-family"){const _={value:Object.values(o.sources||{}).flatMap(O=>(O==null?void 0:O.features)||[])},{rows:L}=vl(_);return L.value.map(O=>({key:O.key,label:O.label,color:O.color,count:O.peopleGroupCount,population:O.population,filterKey:O.key,children:[]}))}if(b==="doxa-regions"){const d=U1();return(o.doxaRegionsData||[]).map(_=>({key:_.name,label:_.name,color:d[_.name]||"#999",count:_.count,population:_.population,filterKey:_.name,children:[]}))}if(b==="gospel-resources"){const d=z1(),_=(d==null?void 0:d.palette)??{},L=(d==null?void 0:d.names)??{},O=o.resourcesData||[];return Object.keys(_).map(S=>{const U=O.find(G=>G.key===S);return{key:S,label:L[S]||S,color:_[S],count:(U==null?void 0:U.count)||0,population:(U==null?void 0:U.population)||0,filterKey:S,children:((U==null?void 0:U.children)||[]).map(G=>({key:G.key,label:G.name||G.key,color:G.color||_[S],count:G.count||0,population:G.population||0,filterKey:G.key}))}})}if(b==="affinity-blocs"){const d=G1();return Object.keys(d).sort().map(_=>({key:_,label:_,color:d[_],filterKey:_,children:[]}))}return[]});function h(b,y){return b.reduce((v,p)=>{var d;let m=p[y]||0;return(d=p.children)!=null&&d.length&&(m+=h(p.children,y)),v+m},0)}const w=te(()=>h(g.value,"count")),x=te(()=>h(g.value,"population")),f=te(()=>{if(na(e.value)!=="prayer")return null;const b=g.value[0];if(!b)return null;const y=(b.children||[]).find(L=>L.key==="hasPrayer"),v=(b.children||[]).find(L=>L.key==="fullPrayer"),p=Number(b.count)||0,m=Number(y==null?void 0:y.count)||0,d=Number(v==null?void 0:v.count)||0,_=(Number(y==null?void 0:y.population)||0)+(Number(v==null?void 0:v.population)||0);return{covered:m+d,total:w.value,coveredPopulation:_,totalPopulation:x.value,segments:[{key:"fullPrayer",label:(v==null?void 0:v.label)??r("legend.prayer.fullPrayerCoverage"),count:d,color:Cn.fullPrayer},{key:"hasPrayer",label:(y==null?void 0:y.label)??r("legend.prayer.hasPrayer"),count:m,color:Cn.hasPrayer},{key:"noPrayer",label:b.label,count:p,color:Cn.noPrayer}]}});return{items:g,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:w,totalPopulation:x,progress:f,fmtPop:V1,fmtCount:q1}}class cg{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=Ln,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",r=!1,s=[],i=!0;for(let l=0;l0){if(s.push(a.trim()),a="",i)n.push(...s),i=!1;else if(s.length>1){const p={};n.forEach((h,x)=>{p[h]=s[x]||""}),o.push(p)}s=[]}}else a+=c}if((a||s.length>0)&&(s.push(a.trim()),!i&&s.length>1)){const l={};n.forEach((c,u)=>{l[c]=s[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:r}=this.parseCSV(n);return this.rawData=r,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(s=>s.trim())),r=[];for(const[s,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||r.push({systemField:s,sourceField:l,isComposite:!0});else i&&!a.has(i)&&r.push({systemField:s,sourceField:i,isComposite:!1});r.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,r)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=fl(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",r=[];a&&r.push(`fields=${a}`);const s={...t.queryParams||{}};this.locale&&(s.lang=this.locale);for(const[u,p]of Object.entries(s))r.push(`${u}=${encodeURIComponent(p)}`);const i=`${o}${n}?${r.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const p=u.headers.get("content-type")||"";if(!p.includes("application/json"))throw new Error(`API returned "${p}" instead of JSON. Server at ${o} may be down or misconfigured.`);const h=await u.json();return this.rawData=Array.isArray(h)?h:h.posts||h.data||h.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(p=>this.getFieldValue(n,p));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const r=a.engagementStatus;r!=null&&(typeof r=="object"&&"value"in r?(a.engagementStatusLabel=r.label||r.value,a.engagementStatus=r.value==="engaged"):a.engagementStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const s=a.adoptionStatus;s!=null&&(a.adoptionStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="object"&&!!(s!=null&&s.value)||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new cp;const q1=["data-covered","data-total","data-pct"],W1={class:"lpb-track"},Y1=["data-span-pct"],X1=["data-seg","data-count","aria-label","onMouseenter","onFocus","onClick"],J1=["data-seg","data-count","aria-label"],Z1=["aria-valuenow","aria-valuemax","aria-valuetext","aria-label","title"],up=Rt({__name:"LegendProgressBar",props:{covered:{type:Number,default:0},total:{type:Number,default:0},segments:{type:Array,default:()=>[]},isDark:{type:Boolean,default:!1},label:{type:String,default:""},fmtCount:{type:Function,default:e=>(Number(e)||0).toLocaleString()},compact:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},showText:{type:Boolean,default:!0}},emits:["select-segment"],setup(e,{emit:t}){const{t:o}=ht();yt(` +`&&l++,a||s.length>0){if(s.push(a.trim()),a="",i)n.push(...s),i=!1;else if(s.length>1){const g={};n.forEach((h,w)=>{g[h]=s[w]||""}),o.push(g)}s=[]}}else a+=c}if((a||s.length>0)&&(s.push(a.trim()),!i&&s.length>1)){const l={};n.forEach((c,u)=>{l[c]=s[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:r}=this.parseCSV(n);return this.rawData=r,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(s=>s.trim())),r=[];for(const[s,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||r.push({systemField:s,sourceField:l,isComposite:!0});else i&&!a.has(i)&&r.push({systemField:s,sourceField:i,isComposite:!1});r.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,r)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=fl(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",r=[];a&&r.push(`fields=${a}`);const s={...t.queryParams||{}};this.locale&&(s.lang=this.locale);for(const[u,g]of Object.entries(s))r.push(`${u}=${encodeURIComponent(g)}`);const i=`${o}${n}?${r.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const g=u.headers.get("content-type")||"";if(!g.includes("application/json"))throw new Error(`API returned "${g}" instead of JSON. Server at ${o} may be down or misconfigured.`);const h=await u.json();return this.rawData=Array.isArray(h)?h:h.posts||h.data||h.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(g=>this.getFieldValue(n,g));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const r=a.engagementStatus;r!=null&&(typeof r=="object"&&"value"in r?(a.engagementStatusLabel=r.label||r.value,a.engagementStatus=r.value==="engaged"):a.engagementStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const s=a.adoptionStatus;s!=null&&(a.adoptionStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="object"&&!!(s!=null&&s.value)||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new cg;const W1="",Y1=["data-covered","data-total","data-pct"],X1={class:"lpb-track"},J1=["data-span-pct"],Z1=["data-seg","data-count","aria-label","onMouseenter","onFocus","onClick"],Q1=["data-seg","data-count","aria-label"],ek=["aria-valuenow","aria-valuemax","aria-valuetext","aria-label","title"],ug=Rt({__name:"LegendProgressBar",props:{covered:{type:Number,default:0},total:{type:Number,default:0},segments:{type:Array,default:()=>[]},isDark:{type:Boolean,default:!1},label:{type:String,default:""},fmtCount:{type:Function,default:e=>(Number(e)||0).toLocaleString()},compact:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},showText:{type:Boolean,default:!0}},emits:["select-segment"],setup(e,{emit:t}){const{t:o}=ht();yt(` .lpb{position:relative;display:flex;align-items:center;gap:8px;min-width:0;width:100%;box-sizing:border-box;} .lpb-track{position:relative;flex:1 1 auto;min-width:60px;display:flex;height:10px;border-radius:5px;overflow:hidden;background:rgba(110,118,129,0.25);} .lpb-span{display:flex;height:100%;min-width:0;flex:0 0 auto;} @@ -234,7 +233,7 @@ .lpb-light .lpb-pop{background:#f6f8fa;border-color:#d0d7de;color:#1f2328;box-shadow:0 8px 24px rgba(31,35,40,0.18);} .lpb-pop-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-shadow:0 0 0 1px rgba(0,0,0,0.4);} .legend-mobile-sheet.collapsed .lpb{display:none!important;} -`,"legend-progress-bar");const n=e,a=t,r=te(()=>n.total>0?Math.round(n.covered/n.total*100):0),s=te(()=>n.total>0?Math.min(100,Math.max(0,n.covered/n.total*100)):0),i=te(()=>n.segments.slice(0,-1)),l=te(()=>n.segments.length?n.segments[n.segments.length-1]:null);function c(L){return n.covered>0?Math.min(100,Math.max(0,(L.count||0)/n.covered*100)):0}function u(L){return n.total>0?Math.round((L.count||0)/n.total*100):0}const p=te(()=>n.label||o("legend.progress.covered",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value})),h=te(()=>o("legend.progress.short",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value}));function x(L){return o("legend.progress.segment",{label:L.label,count:n.fmtCount(L.count||0),pct:u(L)})}const w=ue(null),f=ue(null),b={},y=ue(null),v=ue(0),g=te(()=>n.segments.find(L=>L.key===y.value)||null);function m(L,O){O?b[L]=O:delete b[L]}async function d(L){y.value=L,await Ut();const O=w.value,S=b[L],z=f.value;if(!O||!S||!z)return;const G=O.getBoundingClientRect(),j=S.getBoundingClientRect(),M=Math.max(0,G.width-z.offsetWidth);v.value=Math.min(Math.max(0,j.left-G.left),M)}function _(){y.value=null}return(L,O)=>(X(),re("div",{ref_key:"rootEl",ref:w,class:Te(["lpb",[e.isDark?"lpb-dark":"lpb-light",{"lpb-stacked":e.stacked}]]),"data-covered":e.covered,"data-total":e.total,"data-pct":r.value,onMouseleave:_},[T("div",W1,[T("span",{class:"lpb-span",style:Xe({width:s.value+"%"}),"data-span-pct":s.value.toFixed(2)},[(X(!0),re(Be,null,At(i.value,S=>(X(),re("button",{key:S.key,type:"button",class:Te(["lpb-seg",{active:y.value===S.key}]),style:Xe({width:c(S)+"%",background:S.color}),"data-seg":S.key,"data-count":S.count||0,"aria-label":x(S),ref_for:!0,ref:z=>m(S.key,z),onMouseenter:z=>d(S.key),onFocus:z=>d(S.key),onBlur:_,onClick:pt(z=>a("select-segment",S.key),["stop"])},null,46,X1))),128))],12,Y1),l.value?(X(),re("button",{key:0,type:"button",class:Te(["lpb-seg lpb-seg-rest",{active:y.value===l.value.key}]),style:Xe({background:l.value.color}),"data-seg":l.value.key,"data-count":l.value.count||0,"aria-label":x(l.value),ref:S=>m(l.value.key,S),onMouseenter:O[0]||(O[0]=S=>d(l.value.key)),onFocus:O[1]||(O[1]=S=>d(l.value.key)),onBlur:_,onClick:O[2]||(O[2]=pt(S=>a("select-segment",l.value.key),["stop"]))},null,46,J1)):ve("",!0)]),e.showText?(X(),re("span",{key:0,class:"lpb-text",role:"progressbar","aria-valuenow":e.covered,"aria-valuemin":"0","aria-valuemax":e.total,"aria-valuetext":h.value,"aria-label":p.value,title:p.value},ye(e.compact?r.value+"%":h.value),9,Z1)):ve("",!0),g.value?(X(),re("div",{key:1,ref_key:"popEl",ref:f,class:"lpb-pop",role:"tooltip",style:Xe({left:v.value+"px"})},[T("span",{class:"lpb-pop-dot",style:Xe({background:g.value.color})},null,4),gt(ye(x(g.value)),1)],4)):ve("",!0)],42,q1))}},[["__scopeId","data-v-acafdbf6"]]),Q1={key:0,class:"lrg-title-row"},ek={class:"lrg-title-caret-slot"},tk={class:"lrg-title"},ok=["data-lrg-filter-key"],nk=["onClick"],ak={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},rk=["onClick"],sk={class:"lrg-name"},ik={class:"lrg-badge-inner"},lk=["data-lrg-filter-key"],ck=["onClick"],uk={class:"lrg-name"},dk={class:"lrg-badge-inner"},gk={key:1,class:"lrg-footer"},pk={class:"lrg-footer-label"},dp=Rt({__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}=ht();yt(` +`,"legend-progress-bar");const n=e,a=t,r=te(()=>n.total>0?Math.round(n.covered/n.total*100):0),s=te(()=>n.total>0?Math.min(100,Math.max(0,n.covered/n.total*100)):0),i=te(()=>n.segments.slice(0,-1)),l=te(()=>n.segments.length?n.segments[n.segments.length-1]:null);function c(L){return n.covered>0?Math.min(100,Math.max(0,(L.count||0)/n.covered*100)):0}function u(L){return n.total>0?Math.round((L.count||0)/n.total*100):0}const g=te(()=>n.label||o("legend.progress.covered",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value})),h=te(()=>o("legend.progress.short",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value}));function w(L){return o("legend.progress.segment",{label:L.label,count:n.fmtCount(L.count||0),pct:u(L)})}const x=ue(null),f=ue(null),b={},y=ue(null),v=ue(0),p=te(()=>n.segments.find(L=>L.key===y.value)||null);function m(L,O){O?b[L]=O:delete b[L]}async function d(L){y.value=L,await zt();const O=x.value,S=b[L],U=f.value;if(!O||!S||!U)return;const G=O.getBoundingClientRect(),j=S.getBoundingClientRect(),M=Math.max(0,G.width-U.offsetWidth);v.value=Math.min(Math.max(0,j.left-G.left),M)}function _(){y.value=null}return(L,O)=>(X(),re("div",{ref_key:"rootEl",ref:x,class:Te(["lpb",[e.isDark?"lpb-dark":"lpb-light",{"lpb-stacked":e.stacked}]]),"data-covered":e.covered,"data-total":e.total,"data-pct":r.value,onMouseleave:_},[T("div",X1,[T("span",{class:"lpb-span",style:Xe({width:s.value+"%"}),"data-span-pct":s.value.toFixed(2)},[(X(!0),re(Be,null,At(i.value,S=>(X(),re("button",{key:S.key,type:"button",class:Te(["lpb-seg",{active:y.value===S.key}]),style:Xe({width:c(S)+"%",background:S.color}),"data-seg":S.key,"data-count":S.count||0,"aria-label":w(S),ref_for:!0,ref:U=>m(S.key,U),onMouseenter:U=>d(S.key),onFocus:U=>d(S.key),onBlur:_,onClick:gt(U=>a("select-segment",S.key),["stop"])},null,46,Z1))),128))],12,J1),l.value?(X(),re("button",{key:0,type:"button",class:Te(["lpb-seg lpb-seg-rest",{active:y.value===l.value.key}]),style:Xe({background:l.value.color}),"data-seg":l.value.key,"data-count":l.value.count||0,"aria-label":w(l.value),ref:S=>m(l.value.key,S),onMouseenter:O[0]||(O[0]=S=>d(l.value.key)),onFocus:O[1]||(O[1]=S=>d(l.value.key)),onBlur:_,onClick:O[2]||(O[2]=gt(S=>a("select-segment",l.value.key),["stop"]))},null,46,Q1)):ve("",!0)]),e.showText?(X(),re("span",{key:0,class:"lpb-text",role:"progressbar","aria-valuenow":e.covered,"aria-valuemin":"0","aria-valuemax":e.total,"aria-valuetext":h.value,"aria-label":g.value,title:g.value},ye(e.compact?r.value+"%":h.value),9,ek)):ve("",!0),p.value?(X(),re("div",{key:1,ref_key:"popEl",ref:f,class:"lpb-pop",role:"tooltip",style:Xe({left:v.value+"px"})},[T("span",{class:"lpb-pop-dot",style:Xe({background:p.value.color})},null,4),pt(ye(w(p.value)),1)],4)):ve("",!0)],42,Y1))}},[["styles",[W1]],["__scopeId","data-v-acafdbf6"]]),tk="",ok={key:0,class:"lrg-title-row"},nk={class:"lrg-title-caret-slot"},ak={class:"lrg-title"},rk=["data-lrg-filter-key"],sk=["onClick"],ik={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},lk=["onClick"],ck={class:"lrg-name"},uk={class:"lrg-badge-inner"},dk=["data-lrg-filter-key"],pk=["onClick"],gk={class:"lrg-name"},fk={class:"lrg-badge-inner"},hk={key:1,class:"lrg-footer"},mk={class:"lrg-footer-label"},dg=Rt({__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}=ht();yt(` .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;} @@ -271,7 +270,7 @@ .lrg-dark .lrg-header-col{color:rgba(243,243,241,0.65);} .lrg-dark .lrg-footer{background:#2a332a;border-top-color:rgba(255,255,255,0.1);color:rgba(243,243,241,0.75);} .lrg-dark .lrg-footer-label{color:rgba(243,243,241,0.65);} -`,"legend-row-group");const o=e,n=Pe("legendProgress",null),a=te(()=>o.progress??de(n)??null),r=te(()=>a.value?t("legend.progress.title"):o.title),s=ue(null);function i(h){let x=h.parentElement;for(;x;){const w=getComputedStyle(x).overflowY;if((w==="auto"||w==="scroll")&&x.scrollHeight>x.clientHeight+1){const f=h.getBoundingClientRect(),b=x.getBoundingClientRect();x.scrollTop+=f.top-b.top-8}x=x.parentElement}}let l=0;Re(()=>o.activeFilter,async h=>{if(!h)return;const x=++l,w=s.value;if(!w)return;await Ut();const f=(b=0)=>{if(x!==l)return;const y=w.querySelector(`[data-lrg-filter-key="${CSS.escape(String(h))}"]`);y&&i(y),b<6&&setTimeout(()=>f(b+1),70)};f(0)});const c=On({});function u(h){c[h]=!c[h]}const p=te(()=>`var(--lrg-caret-col) minmax(80px, 1fr) ${o.columns.map(()=>"auto").join(" ")} var(--lrg-caret-col)`);return(h,x)=>(X(),re("div",{class:Te(["legend-row-group",e.isDark?"lrg-dark":"lrg-light"])},[T("div",{class:"lrg-items",style:Xe({"--lrg-grid-cols":p.value}),ref_key:"itemsContainer",ref:s},[!e.hideColumnHeader&&(e.title||e.columns.length)?(X(),re("div",Q1,[T("span",ek,[Ro(h.$slots,"title-caret",{},void 0,!0)]),T("span",tk,ye(r.value),1),(X(!0),re(Be,null,At(e.columns,w=>(X(),re("span",{key:w.key,class:"lrg-header-col"},ye(w.label),1))),128)),a.value?(X(),Ge(up,{key:0,class:"lrg-progress",covered:a.value.covered,total:a.value.total,segments:a.value.segments,"is-dark":e.isDark,"fmt-count":e.fmtCount,onSelectSegment:x[0]||(x[0]=w=>h.$emit("filter-click",w))},null,8,["covered","total","segments","is-dark","fmt-count"])):ve("",!0)])):ve("",!0),(X(!0),re(Be,null,At(e.items,w=>(X(),re(Be,{key:w.key},[T("div",{class:"lrg-row","data-lrg-filter-key":w.filterKey},[w.children&&w.children.length&&!e.disableCollapse?(X(),re("button",{key:0,class:Te(["lrg-caret",{expanded:!c[w.key]}]),onClick:pt(f=>u(w.key),["stop"]),"aria-label":"Toggle children"},[...x[1]||(x[1]=[T("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,nk)):(X(),re("span",ak)),T("div",{class:Te(["lrg-item",{selected:e.activeFilter===w.filterKey}]),onClick:f=>h.$emit("filter-click",w.filterKey)},[T("div",{class:"lrg-item-inner",style:Xe({backgroundColor:w.color,"--lrg-item-color":w.color})},[T("span",sk,ye(w.label),1),(X(!0),re(Be,null,At(e.columns,f=>(X(),re("span",{key:f.key,class:"lrg-badge"},[T("span",ik,ye(f.key==="population"?e.fmtPop(w.population):e.fmtCount(w.count)),1)]))),128))],4)],10,rk)],8,ok),w.children&&w.children.length&&!c[w.key]?(X(!0),re(Be,{key:0},At(w.children,f=>(X(),re("div",{key:f.key,class:"lrg-row lrg-row-child","data-lrg-filter-key":f.filterKey},[x[2]||(x[2]=T("span",{class:"lrg-caret-placeholder","aria-hidden":"true"},null,-1)),T("div",{class:Te(["lrg-item",{selected:e.activeFilter===f.filterKey}]),onClick:b=>h.$emit("filter-click",f.filterKey)},[T("div",{class:"lrg-item-inner",style:Xe({backgroundColor:f.color,"--lrg-item-color":f.color})},[T("span",uk,ye(f.label),1),(X(!0),re(Be,null,At(e.columns,b=>(X(),re("span",{key:b.key,class:"lrg-badge"},[T("span",dk,ye(b.key==="population"?e.fmtPop(f.population):e.fmtCount(f.count)),1)]))),128))],4)],10,ck)],8,lk))),128)):ve("",!0)],64))),128)),e.columns.length&&e.showFooter?(X(),re("div",gk,[x[3]||(x[3]=T("span",{class:"lrg-footer-caret-slot","aria-hidden":"true"},null,-1)),T("span",pk,ye(de(t)("legend.footer.total")),1),(X(!0),re(Be,null,At(e.columns,w=>(X(),re("span",{key:w.key,class:"lrg-footer-value"},ye(w.key==="population"?e.fmtPop(e.totalPopulation):e.fmtCount(e.totalCount)),1))),128))])):ve("",!0)],4)],2))}},[["__scopeId","data-v-3bddba9a"]]),gp=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"];function pp(e){const t=(e||"U")[0].toUpperCase(),o=t.charCodeAt(0)%gp.length,n=gp[o];return{letter:t,color:"#ffffff",backgroundColor:n}}function fk(e,t={}){const{size:o=32,borderRadius:n=4}=t,a=pp(e);return{width:`${o}px`,height:`${o}px`,borderRadius:`${n}px`,backgroundColor:a.backgroundColor,color:a.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"600",fontSize:`${Math.floor(o*.5)}px`,flexShrink:"0"}}const hk={key:0,class:"detail-header"},mk={class:"header-left"},bk={class:"header-text"},yk={class:"people-group-name"},vk={class:"people-group-subtitle"},_k=["aria-label"],kk={class:"detail-content"},wk={key:0,class:"pg-name-lead"},xk={class:"action-buttons"},Sk={class:"quick-stats"},Ak={class:"stat-item"},Lk={class:"stat-label"},Ck={class:"stat-value"},$k={class:"stat-item"},Ek={class:"stat-label"},Tk={class:"stat-value"},Pk={class:"stat-item"},Nk={class:"stat-label"},Ik={class:"stat-value"},Mk={class:"stat-item"},Fk={class:"stat-label"},Rk={class:"stat-value"},Dk={class:"stat-item stat-committed"},Ok={class:"stat-label"},Bk={class:"stat-value"},jk={key:1,class:"image-container position-inside"},Uk=["src","alt"],zk={key:2,class:"description-section"},Gk={key:0,class:"description-text"},Kk={key:1,class:"description-text empty"},fp="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",kl=Rt({__name:"PeopleGroupDetail",props:{peopleGroup:{type:Object,required:!0},hideHeader:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},action:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)}},setup(e){const{t,locale:o}=ht();yt(` +`,"legend-row-group");const o=e,n=Pe("legendProgress",null),a=te(()=>o.progress??de(n)??null),r=te(()=>a.value?t("legend.progress.title"):o.title),s=ue(null);function i(h){let w=h.parentElement;for(;w;){const x=getComputedStyle(w).overflowY;if((x==="auto"||x==="scroll")&&w.scrollHeight>w.clientHeight+1){const f=h.getBoundingClientRect(),b=w.getBoundingClientRect();w.scrollTop+=f.top-b.top-8}w=w.parentElement}}let l=0;Re(()=>o.activeFilter,async h=>{if(!h)return;const w=++l,x=s.value;if(!x)return;await zt();const f=(b=0)=>{if(w!==l)return;const y=x.querySelector(`[data-lrg-filter-key="${CSS.escape(String(h))}"]`);y&&i(y),b<6&&setTimeout(()=>f(b+1),70)};f(0)});const c=On({});function u(h){c[h]=!c[h]}const g=te(()=>`var(--lrg-caret-col) minmax(80px, 1fr) ${o.columns.map(()=>"auto").join(" ")} var(--lrg-caret-col)`);return(h,w)=>(X(),re("div",{class:Te(["legend-row-group",e.isDark?"lrg-dark":"lrg-light"])},[T("div",{class:"lrg-items",style:Xe({"--lrg-grid-cols":g.value}),ref_key:"itemsContainer",ref:s},[!e.hideColumnHeader&&(e.title||e.columns.length)?(X(),re("div",ok,[T("span",nk,[Ro(h.$slots,"title-caret",{},void 0,!0)]),T("span",ak,ye(r.value),1),(X(!0),re(Be,null,At(e.columns,x=>(X(),re("span",{key:x.key,class:"lrg-header-col"},ye(x.label),1))),128)),a.value?(X(),Ge(ug,{key:0,class:"lrg-progress",covered:a.value.covered,total:a.value.total,segments:a.value.segments,"is-dark":e.isDark,"fmt-count":e.fmtCount,onSelectSegment:w[0]||(w[0]=x=>h.$emit("filter-click",x))},null,8,["covered","total","segments","is-dark","fmt-count"])):ve("",!0)])):ve("",!0),(X(!0),re(Be,null,At(e.items,x=>(X(),re(Be,{key:x.key},[T("div",{class:"lrg-row","data-lrg-filter-key":x.filterKey},[x.children&&x.children.length&&!e.disableCollapse?(X(),re("button",{key:0,class:Te(["lrg-caret",{expanded:!c[x.key]}]),onClick:gt(f=>u(x.key),["stop"]),"aria-label":"Toggle children"},[...w[1]||(w[1]=[T("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,sk)):(X(),re("span",ik)),T("div",{class:Te(["lrg-item",{selected:e.activeFilter===x.filterKey}]),onClick:f=>h.$emit("filter-click",x.filterKey)},[T("div",{class:"lrg-item-inner",style:Xe({backgroundColor:x.color,"--lrg-item-color":x.color})},[T("span",ck,ye(x.label),1),(X(!0),re(Be,null,At(e.columns,f=>(X(),re("span",{key:f.key,class:"lrg-badge"},[T("span",uk,ye(f.key==="population"?e.fmtPop(x.population):e.fmtCount(x.count)),1)]))),128))],4)],10,lk)],8,rk),x.children&&x.children.length&&!c[x.key]?(X(!0),re(Be,{key:0},At(x.children,f=>(X(),re("div",{key:f.key,class:"lrg-row lrg-row-child","data-lrg-filter-key":f.filterKey},[w[2]||(w[2]=T("span",{class:"lrg-caret-placeholder","aria-hidden":"true"},null,-1)),T("div",{class:Te(["lrg-item",{selected:e.activeFilter===f.filterKey}]),onClick:b=>h.$emit("filter-click",f.filterKey)},[T("div",{class:"lrg-item-inner",style:Xe({backgroundColor:f.color,"--lrg-item-color":f.color})},[T("span",gk,ye(f.label),1),(X(!0),re(Be,null,At(e.columns,b=>(X(),re("span",{key:b.key,class:"lrg-badge"},[T("span",fk,ye(b.key==="population"?e.fmtPop(f.population):e.fmtCount(f.count)),1)]))),128))],4)],10,pk)],8,dk))),128)):ve("",!0)],64))),128)),e.columns.length&&e.showFooter?(X(),re("div",hk,[w[3]||(w[3]=T("span",{class:"lrg-footer-caret-slot","aria-hidden":"true"},null,-1)),T("span",mk,ye(de(t)("legend.footer.total")),1),(X(!0),re(Be,null,At(e.columns,x=>(X(),re("span",{key:x.key,class:"lrg-footer-value"},ye(x.key==="population"?e.fmtPop(e.totalPopulation):e.fmtCount(e.totalCount)),1))),128))])):ve("",!0)],4)],2))}},[["styles",[tk]],["__scopeId","data-v-3bddba9a"]]),pg=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"];function gg(e){const t=(e||"U")[0].toUpperCase(),o=t.charCodeAt(0)%pg.length,n=pg[o];return{letter:t,color:"#ffffff",backgroundColor:n}}function bk(e,t={}){const{size:o=32,borderRadius:n=4}=t,a=gg(e);return{width:`${o}px`,height:`${o}px`,borderRadius:`${n}px`,backgroundColor:a.backgroundColor,color:a.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"600",fontSize:`${Math.floor(o*.5)}px`,flexShrink:"0"}}const yk=".people-group-detail[data-v-8142ca9c]{display:flex;flex-direction:column;height:100%;overflow-y:auto}.detail-header[data-v-8142ca9c]{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:#fff;position:sticky;top:0;z-index:10}.header-left[data-v-8142ca9c]{display:flex;gap:12px;align-items:center;flex:1;min-width:0}.header-text[data-v-8142ca9c]{flex:1;min-width:0}.people-group-name[data-v-8142ca9c]{margin:0;font-size:18px;font-weight:700;color:#333;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text}.people-group-subtitle[data-v-8142ca9c]{margin:4px 0 0;font-size:13px;color:#666;line-height:1.2}.close-button[data-v-8142ca9c]{background:none;border:none;padding:4px;cursor:pointer;color:#666;transition:color .2s ease;flex-shrink:0}.close-button[data-v-8142ca9c]:hover{color:#333}.detail-content[data-v-8142ca9c]{padding:6px 12px 12px;flex:1;overflow-y:auto}.quick-stats[data-v-8142ca9c]{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.stat-item[data-v-8142ca9c]{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.stat-label[data-v-8142ca9c]{color:#666;font-weight:500}.stat-value[data-v-8142ca9c]{color:#333;font-weight:600;text-align:right}.action-buttons[data-v-8142ca9c]{display:flex;gap:8px;padding-top:12px;margin-bottom:10px;overflow-x:auto;padding-bottom:2px}.action-btn[data-v-8142ca9c]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.action-btn.primary[data-v-8142ca9c]{background:#92b195;color:#fff}.action-btn.primary[data-v-8142ca9c]:hover{background:#73a17f;box-shadow:0 2px 4px #92b1954d}.action-btn.secondary[data-v-8142ca9c]{background:#ecf0f1;color:#333}.action-btn.secondary[data-v-8142ca9c]:hover{background:#d5dbdb}.btn-icon[data-v-8142ca9c]{flex-shrink:0}.image-container[data-v-8142ca9c]{margin-bottom:16px;border-radius:8px;overflow:hidden;background:#f5f5f5}.image-container.position-above[data-v-8142ca9c]{width:120px;height:150px;margin:0 auto 16px}.image-container.position-inside[data-v-8142ca9c]{width:200px;height:250px;margin:0 auto 16px}.people-group-image[data-v-8142ca9c]{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease}.people-group-image.loaded[data-v-8142ca9c]{opacity:1}.image-placeholder-svg[data-v-8142ca9c]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f0f0f0;transition:opacity .3s ease}.image-placeholder-svg.hidden[data-v-8142ca9c]{opacity:0;pointer-events:none}.image-container[data-v-8142ca9c]{position:relative}.description-section[data-v-8142ca9c]{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0}.description-text[data-v-8142ca9c]{margin:0;font-size:14px;line-height:1.6;color:#555}.description-text.empty[data-v-8142ca9c]{color:#999;font-style:italic}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar{height:4px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width: 480px){.people-group-name[data-v-8142ca9c]{font-size:16px}.stat-item[data-v-8142ca9c]{font-size:13px}.action-btn[data-v-8142ca9c]{padding:8px 14px;font-size:13px}}",vk={key:0,class:"detail-header"},_k={class:"header-left"},kk={class:"header-text"},xk={class:"people-group-name"},wk={class:"people-group-subtitle"},Sk=["aria-label"],Ak={class:"detail-content"},Lk={key:0,class:"pg-name-lead"},Ck={class:"action-buttons"},$k={class:"quick-stats"},Ek={class:"stat-item"},Tk={class:"stat-label"},Pk={class:"stat-value"},Nk={class:"stat-item"},Ik={class:"stat-label"},Mk={class:"stat-value"},Fk={class:"stat-item"},Rk={class:"stat-label"},Dk={class:"stat-value"},Ok={class:"stat-item"},Bk={class:"stat-label"},jk={class:"stat-value"},zk={class:"stat-item stat-committed"},Uk={class:"stat-label"},Gk={class:"stat-value"},Kk={key:1,class:"image-container position-inside"},Hk=["src","alt"],Vk={key:2,class:"description-section"},qk={key:0,class:"description-text"},Wk={key:1,class:"description-text empty"},fg="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",kl=Rt({__name:"PeopleGroupDetail",props:{peopleGroup:{type:Object,required:!0},hideHeader:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},action:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)}},setup(e){const{t,locale:o}=ht();yt(` .people-group-detail{display:flex;flex-direction:column;height:100%;overflow-y:auto;} .people-group-detail.dark-mode{background:#1a1a2e;color:#eee;} .detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:white;position:sticky;top:0;z-index:10;} @@ -322,7 +321,7 @@ .dark-mode .description-text{color:#d1d5db;} .description-text.empty{color:#999;font-style:italic;} .dark-mode .description-text.empty{color:#6b7280;} -`,"legend-people-group-detail");const n=e,a=Pe("uiStore"),r=Pe("profileConfig",null),s=te(()=>a.legendState),i=te(()=>a.isMobile),l=te(()=>!i.value||s.value==="fullyOpen"),c=te(()=>pp(n.peopleGroup.properties.name)),u=te(()=>c.value.letter),p=te(()=>fk(n.peopleGroup.properties.name,{size:32,borderRadius:4})),h=te(()=>n.peopleGroup.properties),x=ue(null),w=ue(!1),f=te(()=>h.value.slug||"");async function b(Z){if(!Z)return;const oe=fl();if(oe)try{const H=await fetch(`${oe}/api/people-groups/detail/${encodeURIComponent(Z)}?lang=${encodeURIComponent(o.value)}`);if(!H.ok)throw new Error(`HTTP ${H.status}`);x.value=await H.json()}catch{x.value=null}}Re(f,Z=>{w.value=!1,x.value=null,b(Z)},{immediate:!0});const y=te(()=>{var Z;return h.value.countryName||h.value.countryIsoLabel||h.value.country||h.value.countryIso||((Z=h.value._raw)==null?void 0:Z.Country)||""}),v=te(()=>{var H;const Z=h.value.status||((H=h.value._raw)==null?void 0:H.Status),oe=y.value||"Unknown";return Z?`${oe} • ${Z}`:oe}),g=te(()=>{var oe;const Z=h.value.language||((oe=h.value._raw)==null?void 0:oe.Language);if(!Z)return"Unknown";if(typeof Z=="object"&&Z.label)return Z.label;if(typeof Z=="string"&&Z.startsWith("{"))try{const H=JSON.parse(Z);if(H!=null&&H.label)return H.label}catch{}return Z}),m=te(()=>{var Z;return h.value.population||((Z=h.value._raw)==null?void 0:Z.Population)||0}),d=te(()=>{var oe,H;const Z=[(oe=x.value)==null?void 0:oe.people_praying,h.value.peoplePraying,(H=h.value._raw)==null?void 0:H.people_praying];for(const fe of Z)if(fe!=null&&fe!=="")return Number(fe);return null}),_=te(()=>d.value===null?"—":d.value.toLocaleString()),L=te(()=>{var Z;return h.value.religionName||h.value.religionLabel||h.value.religion||((Z=h.value._raw)==null?void 0:Z.Religion)||""}),O=te(()=>{var Z,oe,H;return((Z=x.value)==null?void 0:Z.imb_people_description)||((oe=x.value)==null?void 0:oe.description)||h.value.description||((H=h.value._raw)==null?void 0:H.Description)||""}),S=te(()=>{var Z,oe,H;return((Z=x.value)==null?void 0:Z.image_url)||((oe=x.value)==null?void 0:oe.imageUrl)||h.value.imageUrl||((H=h.value._raw)==null?void 0:H.ImageURL)||fp}),z=te(()=>{const Z=parseInt(m.value);return Z>=1e6?`${(Z/1e6).toFixed(1)}M`:Z>=1e3?`${(Z/1e3).toFixed(1)}K`:Z.toLocaleString()});function G(){a.selectPeopleGroup(null)}function j(){var fe;let Z="";try{Z=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const oe=(fe=r==null?void 0:r.value)==null?void 0:fe.utmSource,H=typeof window<"u"&&window.DOXA_UTM_SOURCE||"";return encodeURIComponent(String(Z||oe||H||"agwm"))}function M(Z){return`https://pray.doxa.life/${encodeURIComponent(Z)}?source=doxalife&utm_source=${j()}`}function E(Z){return`${C()}/adopt/${encodeURIComponent(Z)}/?source=doxalife&utm_source=${j()}`}function C(){const Z=typeof window<"u"&&window.DOXA_SITE_URL||"";return String(Z||"https://doxa.life").replace(/\/+$/,"")}function P(Z){return`${C()}/research/${encodeURIComponent(Z)}/?utm_source=${j()}`}function F(){const Z=f.value;if(!Z)return;n.action!=="adopt"&&v1(Z);const oe=n.action==="adopt"?E(Z):M(Z);window.open(oe,"_blank","noopener")}function q(){const Z=f.value;Z&&window.open(P(Z),"_blank","noopener")}function se(Z){Z.target.dataset.usedFallback||(Z.target.dataset.usedFallback="true",Z.target.src=fp)}return(Z,oe)=>(X(),re("div",{class:Te(["people-group-detail",{"dark-mode":e.dark}])},[e.hideHeader?ve("",!0):(X(),re("div",hk,[T("div",mk,[T("div",{class:"avatar",style:Xe(p.value)},ye(u.value),5),T("div",bk,[T("h3",yk,ye(e.peopleGroup.properties.name),1),T("p",vk,ye(v.value),1)])]),T("button",{class:"close-button",onClick:G,"aria-label":de(t)("aria.closeDetailView")},[...oe[1]||(oe[1]=[T("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},[T("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,_k)])),T("div",kk,[e.hideHeader?(X(),re("h3",wk,ye(e.peopleGroup.properties.name||de(t)("legend.header.peopleGroupFallback")),1)):ve("",!0),T("div",xk,[e.action==="pray"||e.action==="adopt"?(X(),re("button",{key:0,class:"action-btn primary",onClick:F},[oe[2]||(oe[2]=T("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[T("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),T("span",null,ye(e.action==="adopt"?de(t)("buttons.adoptThem"):de(t)("buttons.prayForThem")),1)])):ve("",!0),T("button",{class:"action-btn secondary",onClick:q},[oe[3]||(oe[3]=T("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[T("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),T("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),T("span",null,ye(de(t)("buttons.moreInfo")),1)])]),T("div",Sk,[T("div",Ak,[T("span",Lk,ye(de(t)("detail.labels.country")),1),T("span",Ck,ye(y.value||"—"),1)]),T("div",$k,[T("span",Ek,ye(de(t)("detail.labels.population")),1),T("span",Tk,ye(z.value||"—"),1)]),T("div",Pk,[T("span",Nk,ye(de(t)("detail.labels.language")),1),T("span",Ik,ye(g.value||"—"),1)]),T("div",Mk,[T("span",Fk,ye(de(t)("detail.labels.religion")),1),T("span",Rk,ye(L.value||"—"),1)]),T("div",Dk,[T("span",Ok,ye(de(t)("detail.labels.peopleCommitted")),1),T("span",Bk,ye(_.value),1)])]),l.value?(X(),re("div",jk,[T("div",{class:Te(["image-placeholder-svg",{hidden:w.value}])},[...oe[4]||(oe[4]=[T("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 120",width:"80",height:"96","aria-hidden":"true"},[T("circle",{cx:"50",cy:"36",r:"22",fill:"#ccc"}),T("ellipse",{cx:"50",cy:"95",rx:"36",ry:"28",fill:"#ccc"})],-1)])],2),S.value?(X(),re("img",{key:0,src:S.value,alt:`${e.peopleGroup.properties.name} people group`,class:Te(["people-group-image",{loaded:w.value}]),onLoad:oe[0]||(oe[0]=H=>w.value=!0),onError:se},null,42,Uk)):ve("",!0)])):ve("",!0),l.value?(X(),re("div",zk,[O.value?(X(),re("p",Gk,ye(O.value),1)):(X(),re("p",Kk,ye(de(t)("detail.messages.noDescription")),1))])):ve("",!0)])],2))}},[["__scopeId","data-v-8142ca9c"]]),Hk=Object.freeze(Object.defineProperty({__proto__:null,default:kl},Symbol.toStringTag,{value:"Module"})),gs={excludeReligionFamilies:["C"]},Vk={class:"legend-reopen-label"},qk=["aria-label"],Wk=["aria-label"],Yk=["aria-label"],Xk=Rt({__name:"LegendDesktop",props:{legendType:{type:String,required:!0},initiallyCollapsed:{type:Boolean,default:!1},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const t=Ca(()=>eo(()=>Promise.resolve().then(()=>Sp),void 0)),{t:o}=ht();yt(` +`,"legend-people-group-detail");const n=e,a=Pe("uiStore"),r=Pe("profileConfig",null),s=te(()=>a.legendState),i=te(()=>a.isMobile),l=te(()=>!i.value||s.value==="fullyOpen"),c=te(()=>gg(n.peopleGroup.properties.name)),u=te(()=>c.value.letter),g=te(()=>bk(n.peopleGroup.properties.name,{size:32,borderRadius:4})),h=te(()=>n.peopleGroup.properties),w=ue(null),x=ue(!1),f=te(()=>h.value.slug||"");async function b(Z){if(!Z)return;const oe=fl();if(oe)try{const H=await fetch(`${oe}/api/people-groups/detail/${encodeURIComponent(Z)}?lang=${encodeURIComponent(o.value)}`);if(!H.ok)throw new Error(`HTTP ${H.status}`);w.value=await H.json()}catch{w.value=null}}Re(f,Z=>{x.value=!1,w.value=null,b(Z)},{immediate:!0});const y=te(()=>{var Z;return h.value.countryName||h.value.countryIsoLabel||h.value.country||h.value.countryIso||((Z=h.value._raw)==null?void 0:Z.Country)||""}),v=te(()=>{var H;const Z=h.value.status||((H=h.value._raw)==null?void 0:H.Status),oe=y.value||"Unknown";return Z?`${oe} • ${Z}`:oe}),p=te(()=>{var oe;const Z=h.value.language||((oe=h.value._raw)==null?void 0:oe.Language);if(!Z)return"Unknown";if(typeof Z=="object"&&Z.label)return Z.label;if(typeof Z=="string"&&Z.startsWith("{"))try{const H=JSON.parse(Z);if(H!=null&&H.label)return H.label}catch{}return Z}),m=te(()=>{var Z;return h.value.population||((Z=h.value._raw)==null?void 0:Z.Population)||0}),d=te(()=>{var oe,H;const Z=[(oe=w.value)==null?void 0:oe.people_praying,h.value.peoplePraying,(H=h.value._raw)==null?void 0:H.people_praying];for(const fe of Z)if(fe!=null&&fe!=="")return Number(fe);return null}),_=te(()=>d.value===null?"—":d.value.toLocaleString()),L=te(()=>{var Z;return h.value.religionName||h.value.religionLabel||h.value.religion||((Z=h.value._raw)==null?void 0:Z.Religion)||""}),O=te(()=>{var Z,oe,H;return((Z=w.value)==null?void 0:Z.imb_people_description)||((oe=w.value)==null?void 0:oe.description)||h.value.description||((H=h.value._raw)==null?void 0:H.Description)||""}),S=te(()=>{var Z,oe,H;return((Z=w.value)==null?void 0:Z.image_url)||((oe=w.value)==null?void 0:oe.imageUrl)||h.value.imageUrl||((H=h.value._raw)==null?void 0:H.ImageURL)||fg}),U=te(()=>{const Z=parseInt(m.value);return Z>=1e6?`${(Z/1e6).toFixed(1)}M`:Z>=1e3?`${(Z/1e3).toFixed(1)}K`:Z.toLocaleString()});function G(){a.selectPeopleGroup(null)}function j(){var fe;let Z="";try{Z=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const oe=(fe=r==null?void 0:r.value)==null?void 0:fe.utmSource,H=typeof window<"u"&&window.DOXA_UTM_SOURCE||"";return encodeURIComponent(String(Z||oe||H||"agwm"))}function M(Z){return`https://pray.doxa.life/${encodeURIComponent(Z)}?source=doxalife&utm_source=${j()}`}function E(Z){return`${C()}/adopt/${encodeURIComponent(Z)}/?source=doxalife&utm_source=${j()}`}function C(){const Z=typeof window<"u"&&window.DOXA_SITE_URL||"";return String(Z||"https://doxa.life").replace(/\/+$/,"")}function P(Z){return`${C()}/research/${encodeURIComponent(Z)}/?utm_source=${j()}`}function F(){const Z=f.value;if(!Z)return;n.action!=="adopt"&&_1(Z);const oe=n.action==="adopt"?E(Z):M(Z);window.open(oe,"_blank","noopener")}function q(){const Z=f.value;Z&&window.open(P(Z),"_blank","noopener")}function se(Z){Z.target.dataset.usedFallback||(Z.target.dataset.usedFallback="true",Z.target.src=fg)}return(Z,oe)=>(X(),re("div",{class:Te(["people-group-detail",{"dark-mode":e.dark}])},[e.hideHeader?ve("",!0):(X(),re("div",vk,[T("div",_k,[T("div",{class:"avatar",style:Xe(g.value)},ye(u.value),5),T("div",kk,[T("h3",xk,ye(e.peopleGroup.properties.name),1),T("p",wk,ye(v.value),1)])]),T("button",{class:"close-button",onClick:G,"aria-label":de(t)("aria.closeDetailView")},[...oe[1]||(oe[1]=[T("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},[T("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,Sk)])),T("div",Ak,[e.hideHeader?(X(),re("h3",Lk,ye(e.peopleGroup.properties.name||de(t)("legend.header.peopleGroupFallback")),1)):ve("",!0),T("div",Ck,[e.action==="pray"||e.action==="adopt"?(X(),re("button",{key:0,class:"action-btn primary",onClick:F},[oe[2]||(oe[2]=T("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[T("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),T("span",null,ye(e.action==="adopt"?de(t)("buttons.adoptThem"):de(t)("buttons.prayForThem")),1)])):ve("",!0),T("button",{class:"action-btn secondary",onClick:q},[oe[3]||(oe[3]=T("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[T("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),T("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),T("span",null,ye(de(t)("buttons.moreInfo")),1)])]),T("div",$k,[T("div",Ek,[T("span",Tk,ye(de(t)("detail.labels.country")),1),T("span",Pk,ye(y.value||"—"),1)]),T("div",Nk,[T("span",Ik,ye(de(t)("detail.labels.population")),1),T("span",Mk,ye(U.value||"—"),1)]),T("div",Fk,[T("span",Rk,ye(de(t)("detail.labels.language")),1),T("span",Dk,ye(p.value||"—"),1)]),T("div",Ok,[T("span",Bk,ye(de(t)("detail.labels.religion")),1),T("span",jk,ye(L.value||"—"),1)]),T("div",zk,[T("span",Uk,ye(de(t)("detail.labels.peopleCommitted")),1),T("span",Gk,ye(_.value),1)])]),l.value?(X(),re("div",Kk,[T("div",{class:Te(["image-placeholder-svg",{hidden:x.value}])},[...oe[4]||(oe[4]=[T("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 120",width:"80",height:"96","aria-hidden":"true"},[T("circle",{cx:"50",cy:"36",r:"22",fill:"#ccc"}),T("ellipse",{cx:"50",cy:"95",rx:"36",ry:"28",fill:"#ccc"})],-1)])],2),S.value?(X(),re("img",{key:0,src:S.value,alt:`${e.peopleGroup.properties.name} people group`,class:Te(["people-group-image",{loaded:x.value}]),onLoad:oe[0]||(oe[0]=H=>x.value=!0),onError:se},null,42,Hk)):ve("",!0)])):ve("",!0),l.value?(X(),re("div",Vk,[O.value?(X(),re("p",qk,ye(O.value),1)):(X(),re("p",Wk,ye(de(t)("detail.messages.noDescription")),1))])):ve("",!0)])],2))}},[["styles",[yk]],["__scopeId","data-v-8142ca9c"]]),Yk=Object.freeze(Object.defineProperty({__proto__:null,default:kl},Symbol.toStringTag,{value:"Module"})),ps={excludeReligionFamilies:["C"]},Xk="",Jk={class:"legend-reopen-label"},Zk=["aria-label"],Qk=["aria-label"],ex=["aria-label"],tx=Rt({__name:"LegendDesktop",props:{legendType:{type:String,required:!0},initiallyCollapsed:{type:Boolean,default:!1},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const t=Ca(()=>eo(()=>Promise.resolve().then(()=>Sg),void 0)),{t:o}=ht();yt(` .legend-container{position:absolute;top:60px;left:8px;width:var(--map-legend-width,380px);max-height:calc(100vh - 80px);background:#fff;border-radius:var(--map-radius,16px);box-shadow:0 2px 8px rgba(0,0,0,0.12),0 1px 3px rgba(0,0,0,0.08);z-index:1000;overflow:hidden;display:flex;flex-direction:column;transition:width 200ms cubic-bezier(0.2,0,0,1),max-height 200ms cubic-bezier(0.2,0,0,1),min-width 200ms cubic-bezier(0.2,0,0,1),border-radius 200ms linear,box-shadow 200ms linear;will-change:width,max-height;} .legend-container .lrg-title{font-size:15px;} .legend-container .lrg-header-col{font-size:11px;} @@ -399,7 +398,7 @@ .legend-dark .legend-item-selected{outline-color:rgba(255,255,255,0.5)!important;} .legend-dark .legend-tree-caret{color:rgba(243,243,241,0.7)!important;} .legend-dark .legend-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.18);} -`,"legend-component");const n=e;Pe("mapStore"),Pe("dataStore");const a=Pe("uiStore"),r=Sr(n,"legendType"),{items:s,columns:i,title:l,activeFilter:c,setFilter:u,totalCount:p,totalPopulation:h,progress:x,fmtPop:w,fmtCount:f}=Za(r,gs);Pe("normalizedPeopleGroups",null);const b=Pe("mapId",null),y=te(()=>a.isMobile),v=te(()=>a.legendMode),g=te(()=>a.selectedPeopleGroup),m=ue(n.initiallyCollapsed);let d=null;const _=te(()=>{var S;return v.value==="detail"&&g.value?((S=g.value.properties)==null?void 0:S.name)||o("legend.header.peopleGroupFallback"):m.value?o("legend.header.collapsed"):l.value});function L(){m.value=!m.value}Re(v,(S,z)=>{S==="detail"&&z!=="detail"&&m.value&&(m.value=!1)});function O(S){u(S)}return Jt(()=>{window.innerWidth<768&&(m.value=!0),d=S=>{var z;b&&((z=S.detail)!=null&&z.mapId)&&S.detail.mapId!==b||(m.value=!1)},window.addEventListener("doxa:openDesktopLegend",d)}),ho(()=>{d&&window.removeEventListener("doxa:openDesktopLegend",d)}),(S,z)=>y.value?(X(),Ge(de(t),{key:0,legendType:e.legendType,popupAction:e.popupAction,isDark:e.isDark,disableCollapse:e.disableCollapse},null,8,["legendType","popupAction","isDark","disableCollapse"])):m.value?(X(),re("button",{key:1,class:Te(["legend-reopen",{"legend-reopen-light":!e.isDark}]),title:"Expand legend",onClick:z[0]||(z[0]=G=>m.value=!1)},[z[2]||(z[2]=T("svg",{class:"legend-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),T("span",Vk,ye(de(l)),1),z[3]||(z[3]=T("svg",{class:"legend-reopen-caret",width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],2)):(X(),re("div",{key:2,class:Te(["legend-container",{"legend-dark":e.isDark}])},[v.value==="detail"?(X(),re("button",{key:0,class:"detail-collapse-btn",onClick:pt(L,["stop"]),"aria-label":de(o)("aria.toggleLegend")},null,8,qk)):ve("",!0),v.value==="detail"?(X(),re("button",{key:1,class:"detail-close-btn",onClick:z[1]||(z[1]=pt(G=>de(a).selectPeopleGroup(null),["stop"])),"aria-label":de(o)("aria.backToLegend")},[...z[4]||(z[4]=[T("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[T("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,Wk)):ve("",!0),T("div",{class:Te(["legend-content",{"no-padding":de(i).length>0}])},[v.value==="detail"&&g.value?(X(),Ge(kl,{key:0,peopleGroup:g.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):e.legendType==="language-family"?(X(),re(Be,{key:1},[],64)):(X(),Ge(dp,{key:2,title:_.value,items:de(s),columns:de(i),activeFilter:de(c),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:de(p),totalPopulation:de(h),fmtPop:de(w),fmtCount:de(f),progress:de(x),onFilterClick:O},{"title-caret":Dt(()=>[T("button",{class:"legend-collapse-caret",onClick:pt(L,["stop"]),"aria-label":de(o)("aria.toggleLegend")},[...z[5]||(z[5]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:"rotate(180deg)","transform-origin":"center"}})],-1)])],8,Yk)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount","progress"]))],2)],2))}},[["__scopeId","data-v-b18c719c"]]),Jk={class:"lt-btn-group"},Zk=["title"],Qk={class:"lt-btn-text"},ew=["title"],tw={class:"lt-btn-group"},ow=["title"],nw={key:0,width:"12",height:"12",viewBox:"0 0 12 12"},aw=["title"],rw=Rt({__name:"LegendTools",props:{legendType:{type:String,required:!0},isDark:{type:Boolean,default:!1}},emits:["legend-row-fly"],setup(e,{emit:t}){yt(` +`,"legend-component");const n=e;Pe("mapStore"),Pe("dataStore");const a=Pe("uiStore"),r=Sr(n,"legendType"),{items:s,columns:i,title:l,activeFilter:c,setFilter:u,totalCount:g,totalPopulation:h,progress:w,fmtPop:x,fmtCount:f}=Za(r,ps);Pe("normalizedPeopleGroups",null);const b=Pe("mapId",null),y=te(()=>a.isMobile),v=te(()=>a.legendMode),p=te(()=>a.selectedPeopleGroup),m=ue(n.initiallyCollapsed);let d=null;const _=te(()=>{var S;return v.value==="detail"&&p.value?((S=p.value.properties)==null?void 0:S.name)||o("legend.header.peopleGroupFallback"):m.value?o("legend.header.collapsed"):l.value});function L(){m.value=!m.value}Re(v,(S,U)=>{S==="detail"&&U!=="detail"&&m.value&&(m.value=!1)});function O(S){u(S)}return Jt(()=>{window.innerWidth<768&&(m.value=!0),d=S=>{var U;b&&((U=S.detail)!=null&&U.mapId)&&S.detail.mapId!==b||(m.value=!1)},window.addEventListener("dxm:openDesktopLegend",d)}),ho(()=>{d&&window.removeEventListener("dxm:openDesktopLegend",d)}),(S,U)=>y.value?(X(),Ge(de(t),{key:0,legendType:e.legendType,popupAction:e.popupAction,isDark:e.isDark,disableCollapse:e.disableCollapse},null,8,["legendType","popupAction","isDark","disableCollapse"])):m.value?(X(),re("button",{key:1,class:Te(["legend-reopen",{"legend-reopen-light":!e.isDark}]),title:"Expand legend",onClick:U[0]||(U[0]=G=>m.value=!1)},[U[2]||(U[2]=T("svg",{class:"legend-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),T("span",Jk,ye(de(l)),1),U[3]||(U[3]=T("svg",{class:"legend-reopen-caret",width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],2)):(X(),re("div",{key:2,class:Te(["legend-container",{"legend-dark":e.isDark}])},[v.value==="detail"?(X(),re("button",{key:0,class:"detail-collapse-btn",onClick:gt(L,["stop"]),"aria-label":de(o)("aria.toggleLegend")},null,8,Zk)):ve("",!0),v.value==="detail"?(X(),re("button",{key:1,class:"detail-close-btn",onClick:U[1]||(U[1]=gt(G=>de(a).selectPeopleGroup(null),["stop"])),"aria-label":de(o)("aria.backToLegend")},[...U[4]||(U[4]=[T("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[T("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,Qk)):ve("",!0),T("div",{class:Te(["legend-content",{"no-padding":de(i).length>0}])},[v.value==="detail"&&p.value?(X(),Ge(kl,{key:0,peopleGroup:p.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):e.legendType==="language-family"?(X(),re(Be,{key:1},[],64)):(X(),Ge(dg,{key:2,title:_.value,items:de(s),columns:de(i),activeFilter:de(c),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:de(g),totalPopulation:de(h),fmtPop:de(x),fmtCount:de(f),progress:de(w),onFilterClick:O},{"title-caret":Dt(()=>[T("button",{class:"legend-collapse-caret",onClick:gt(L,["stop"]),"aria-label":de(o)("aria.toggleLegend")},[...U[5]||(U[5]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:"rotate(180deg)","transform-origin":"center"}})],-1)])],8,ex)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount","progress"]))],2)],2))}},[["styles",[Xk]],["__scopeId","data-v-c8a288c5"]]),ox="",nx={class:"lt-btn-group"},ax=["title"],rx={class:"lt-btn-text"},sx=["title"],ix={class:"lt-btn-group"},lx=["title"],cx={key:0,width:"12",height:"12",viewBox:"0 0 12 12"},ux=["title"],dx=Rt({__name:"LegendTools",props:{legendType:{type:String,required:!0},isDark:{type:Boolean,default:!1}},emits:["legend-row-fly"],setup(e,{emit:t}){yt(` .lt-root{position:absolute;top:14px;left:calc(10px + var(--map-legend-width,340px) / 2);transform:translateX(-50%);z-index:1050;display:flex;gap:8px;align-items:center;flex-wrap:nowrap;background:transparent;pointer-events:auto;} @media(max-width:767px){ .lt-root{display:none;} @@ -432,7 +431,7 @@ .lt-dark .lt-popup-row{color:rgba(243,243,241,0.85);} .lt-dark .lt-popup-row:hover{background:rgba(255,255,255,0.06);} .lt-dark .lt-popup-row.active{background:rgba(124,140,248,0.18);color:#7c8cf8;} -`,"legend-tools");const o=e,n=t,{t:a}=ht(),r=Pe("mapStore"),s=Sr(o,"legendType"),{items:i,setFilter:l}=Za(s,gs),c=ue(!1),u=ue(!1),p=ue(0),h=ue(null),x=te(()=>r.isAutoFlying),w=te(()=>r.isGuidedTourActive),f=te(()=>r.flySpeed),b=te(()=>r.showClusters),y=te(()=>{const M=o.legendType;return M==="doxa-regions"||M==="language-family"||M==="language-families"}),v=te(()=>({slow:a("buttons.speedOption.slow"),normal:a("buttons.speedOption.normal"),fast:a("buttons.speedOption.fast")})[f.value]||a("buttons.speedOption.normal")),g=te(()=>({slow:8e3,normal:5e3,fast:3e3})[f.value]||5e3);function m(){c.value=!c.value,c.value&&(u.value=!1)}function d(M){r.setFlySpeed(M),setTimeout(()=>{c.value=!1},300)}function _(){r.toggleClusters()}function L(M){r.setClusterMode(M),setTimeout(()=>{u.value=!1},500)}function O(){x.value?z():(w.value,S())}function S(){i.value.length!==0&&(p.value=0,r.startAutoFly([]),j(),G())}function z(){h.value&&(clearTimeout(h.value),h.value=null),r.stopAutoFly()}function G(){h.value=setTimeout(()=>{x.value&&(p.value=(p.value+1)%i.value.length,j(),G())},g.value)}function j(){const M=i.value[p.value];M&&(l(M.filterKey),n("legend-row-fly",{index:p.value,filterKey:M.filterKey}))}return ho(()=>{h.value&&clearTimeout(h.value)}),(M,E)=>y.value?(X(),re("div",{key:0,class:Te(["lt-root",{"lt-dark":e.isDark}])},[T("div",Jk,[T("button",{class:Te(["lt-btn",{active:x.value}]),onClick:pt(O,["stop"]),title:x.value?de(a)("buttons.stopFlight"):de(a)("buttons.startAutoFly")},[E[8]||(E[8]=T("span",{class:"lt-btn-icon"},"✈️",-1)),T("span",Qk,ye(x.value?"Stop":"Fly"),1)],10,Zk),T("button",{class:"lt-side-btn",onClick:pt(m,["stop"]),title:de(a)("buttons.speedLabel")+" "+v.value},[...E[9]||(E[9]=[T("span",{class:"lt-side-icon"},"⏱️",-1)])],8,ew),c.value?(X(),re("div",{key:0,class:"lt-popup",onClick:E[3]||(E[3]=pt(()=>{},["stop"]))},[T("div",{class:Te(["lt-popup-row",{active:f.value==="slow"}]),onClick:E[0]||(E[0]=C=>d("slow"))},ye(de(a)("buttons.speedOption.slow")),3),T("div",{class:Te(["lt-popup-row",{active:f.value==="normal"}]),onClick:E[1]||(E[1]=C=>d("normal"))},ye(de(a)("buttons.speedOption.normal")),3),T("div",{class:Te(["lt-popup-row",{active:f.value==="fast"}]),onClick:E[2]||(E[2]=C=>d("fast"))},ye(de(a)("buttons.speedOption.fast")),3)])):ve("",!0)]),T("div",tw,[T("button",{class:Te(["lt-btn",{active:b.value}]),onClick:pt(_,["stop"]),title:de(a)("buttons.showClusters")},[T("span",{class:Te(["lt-checkbox",{checked:b.value}])},[b.value?(X(),re("svg",nw,[...E[10]||(E[10]=[T("path",{d:"M2 6l3 3 5-6",stroke:"#3498db","stroke-width":"2",fill:"none"},null,-1)])])):ve("",!0)],2),E[11]||(E[11]=T("span",{class:"lt-btn-text"},"Clusters",-1))],10,ow),T("button",{class:"lt-side-btn",onClick:E[4]||(E[4]=pt(C=>u.value=!u.value,["stop"])),title:de(a)("buttons.clusterSettings")},[...E[12]||(E[12]=[T("span",{class:"lt-side-icon"},"⚙️",-1)])],8,aw),u.value?(X(),re("div",{key:0,class:"lt-popup",onClick:E[6]||(E[6]=pt(()=>{},["stop"]))},[T("div",{class:"lt-popup-row active",onClick:E[5]||(E[5]=C=>L("mst"))},[...E[13]||(E[13]=[T("span",{class:"lt-popup-icon"},"⌬",-1),T("span",null,[gt("Minimum Spanning Tree"),T("br"),T("small",{style:{opacity:"0.7","font-weight":"400"}},"click a legend row to cluster only that group")],-1)])])])):ve("",!0),u.value?(X(),re("div",{key:1,class:"lt-overlay",onClick:E[7]||(E[7]=pt(C=>u.value=!1,["stop"]))})):ve("",!0)])],2)):ve("",!0)}},[["__scopeId","data-v-2768aea7"]]),sw={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=ue(null);return kt("mapToolbar",{el:t}),yt(` +`,"legend-tools");const o=e,n=t,{t:a}=ht(),r=Pe("mapStore"),s=Sr(o,"legendType"),{items:i,setFilter:l}=Za(s,ps),c=ue(!1),u=ue(!1),g=ue(0),h=ue(null),w=te(()=>r.isAutoFlying),x=te(()=>r.isGuidedTourActive),f=te(()=>r.flySpeed),b=te(()=>r.showClusters),y=te(()=>{const M=o.legendType;return M==="doxa-regions"||M==="language-family"||M==="language-families"}),v=te(()=>({slow:a("buttons.speedOption.slow"),normal:a("buttons.speedOption.normal"),fast:a("buttons.speedOption.fast")})[f.value]||a("buttons.speedOption.normal")),p=te(()=>({slow:8e3,normal:5e3,fast:3e3})[f.value]||5e3);function m(){c.value=!c.value,c.value&&(u.value=!1)}function d(M){r.setFlySpeed(M),setTimeout(()=>{c.value=!1},300)}function _(){r.toggleClusters()}function L(M){r.setClusterMode(M),setTimeout(()=>{u.value=!1},500)}function O(){w.value?U():(x.value,S())}function S(){i.value.length!==0&&(g.value=0,r.startAutoFly([]),j(),G())}function U(){h.value&&(clearTimeout(h.value),h.value=null),r.stopAutoFly()}function G(){h.value=setTimeout(()=>{w.value&&(g.value=(g.value+1)%i.value.length,j(),G())},p.value)}function j(){const M=i.value[g.value];M&&(l(M.filterKey),n("legend-row-fly",{index:g.value,filterKey:M.filterKey}))}return ho(()=>{h.value&&clearTimeout(h.value)}),(M,E)=>y.value?(X(),re("div",{key:0,class:Te(["lt-root",{"lt-dark":e.isDark}])},[T("div",nx,[T("button",{class:Te(["lt-btn",{active:w.value}]),onClick:gt(O,["stop"]),title:w.value?de(a)("buttons.stopFlight"):de(a)("buttons.startAutoFly")},[E[8]||(E[8]=T("span",{class:"lt-btn-icon"},"✈️",-1)),T("span",rx,ye(w.value?"Stop":"Fly"),1)],10,ax),T("button",{class:"lt-side-btn",onClick:gt(m,["stop"]),title:de(a)("buttons.speedLabel")+" "+v.value},[...E[9]||(E[9]=[T("span",{class:"lt-side-icon"},"⏱️",-1)])],8,sx),c.value?(X(),re("div",{key:0,class:"lt-popup",onClick:E[3]||(E[3]=gt(()=>{},["stop"]))},[T("div",{class:Te(["lt-popup-row",{active:f.value==="slow"}]),onClick:E[0]||(E[0]=C=>d("slow"))},ye(de(a)("buttons.speedOption.slow")),3),T("div",{class:Te(["lt-popup-row",{active:f.value==="normal"}]),onClick:E[1]||(E[1]=C=>d("normal"))},ye(de(a)("buttons.speedOption.normal")),3),T("div",{class:Te(["lt-popup-row",{active:f.value==="fast"}]),onClick:E[2]||(E[2]=C=>d("fast"))},ye(de(a)("buttons.speedOption.fast")),3)])):ve("",!0)]),T("div",ix,[T("button",{class:Te(["lt-btn",{active:b.value}]),onClick:gt(_,["stop"]),title:de(a)("buttons.showClusters")},[T("span",{class:Te(["lt-checkbox",{checked:b.value}])},[b.value?(X(),re("svg",cx,[...E[10]||(E[10]=[T("path",{d:"M2 6l3 3 5-6",stroke:"#3498db","stroke-width":"2",fill:"none"},null,-1)])])):ve("",!0)],2),E[11]||(E[11]=T("span",{class:"lt-btn-text"},"Clusters",-1))],10,lx),T("button",{class:"lt-side-btn",onClick:E[4]||(E[4]=gt(C=>u.value=!u.value,["stop"])),title:de(a)("buttons.clusterSettings")},[...E[12]||(E[12]=[T("span",{class:"lt-side-icon"},"⚙️",-1)])],8,ux),u.value?(X(),re("div",{key:0,class:"lt-popup",onClick:E[6]||(E[6]=gt(()=>{},["stop"]))},[T("div",{class:"lt-popup-row active",onClick:E[5]||(E[5]=C=>L("mst"))},[...E[13]||(E[13]=[T("span",{class:"lt-popup-icon"},"⌬",-1),T("span",null,[pt("Minimum Spanning Tree"),T("br"),T("small",{style:{opacity:"0.7","font-weight":"400"}},"click a legend row to cluster only that group")],-1)])])])):ve("",!0),u.value?(X(),re("div",{key:1,class:"lt-overlay",onClick:E[7]||(E[7]=gt(C=>u.value=!1,["stop"]))})):ve("",!0)])],2)):ve("",!0)}},[["styles",[ox]],["__scopeId","data-v-2768aea7"]]),px={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=ue(null);return kt("mapToolbar",{el:t}),yt(` .map-toolbar { position: absolute; top: 6px; @@ -449,7 +448,7 @@ .map-toolbar { top: 72px; gap: 6px; } .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } } -`,"map-toolbar"),(o,n)=>(X(),re("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Ro(o.$slots,"default")],2))}},iw=["title","disabled"],aa={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return yt(` +`,"map-toolbar"),(o,n)=>(X(),re("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Ro(o.$slots,"default")],2))}},gx=["title","disabled"],aa={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return yt(` .mcb{ width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); background:#fff; @@ -473,7 +472,7 @@ .mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);} .mcb.dark.active{background:#4e594f;color:#92b195;} @media(max-width:767px){.mcb{width:36px;height:36px;}} -`,"map-control-button"),(t,o)=>(X(),re("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[Ro(t.$slots,"default")],10,iw))}},lw={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=ht(),o=e;function n(){var a;(a=o.map)==null||a.zoomIn()}return(a,r)=>(X(),Ge(aa,{"is-dark":e.isDark,title:de(t)("buttons.zoomIn"),onClick:n},{default:Dt(()=>[...r[0]||(r[0]=[T("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","title"]))}},cw={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=ht(),o=e;function n(){var a;(a=o.map)==null||a.zoomOut()}return(a,r)=>(X(),Ge(aa,{"is-dark":e.isDark,title:de(t)("buttons.zoomOut"),onClick:n},{default:Dt(()=>[...r[0]||(r[0]=[T("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","title"]))}},uw={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=ht(),o=e;function n(){var r;(r=o.map)==null||r.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:s,latitude:i}=r.coords;Number.isFinite(s)&&Number.isFinite(i)?o.map.flyTo({center:[s,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,s)=>(X(),Ge(aa,{"is-dark":e.isDark,title:de(t)("buttons.resetView"),onClick:a},{default:Dt(()=>[...s[0]||(s[0]=[T("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[T("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},dw={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},gw={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},pw={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=ht(),n=e,a=t,r=ue(!1);let s=null,i=null,l=null,c=null,u=null,p=null,h=null,x=null,w=null,f=null,b=null,y=0,v=0,g=null,m=null;function d(){if(typeof document>"u")return!1;const C=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(C)||C.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function _(){var C,P,F;return((F=(P=(C=n.mapContainer)==null?void 0:C.getRootNode)==null?void 0:P.call(C))==null?void 0:F.host)??null}function L(){var P,F;const C=(F=(P=n.mapContainer)==null?void 0:P.getRootNode)==null?void 0:F.call(P);return document.fullscreenElement||document.webkitFullscreenElement||(C&&C instanceof ShadowRoot?C.fullscreenElement:null)||null}function O(C){const P=C.requestFullscreen||C.webkitRequestFullscreen;if(!P)return Promise.reject(new Error("Fullscreen API unavailable"));const F=P.call(C);return F&&typeof F.then=="function"?F:Promise.resolve()}function S(){const C=document.exitFullscreen||document.webkitExitFullscreen;if(!C)return Promise.reject(new Error("Fullscreen API unavailable"));const P=C.call(document);return P&&typeof P.then=="function"?P:Promise.resolve()}function z(){const C=_();if(!C)return!1;if(l=C,i=C.style.cssText,C.style.position="fixed",C.style.top="0",C.style.left="0",C.style.right="0",C.style.bottom="0",C.style.width="100vw",C.style.height="100vh",C.style.height="100dvh",C.style.zIndex="2147483647",C.style.margin="0",C.style.borderRadius="0",C.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){y=window.scrollY||window.pageYOffset||0,v=window.scrollX||window.pageXOffset||0;const P=document.body,F=document.documentElement;c=P?P.style.overflow:null,u=F?F.style.overflow:null,p=P?P.style.position:null,h=P?P.style.top:null,x=P?P.style.left:null,w=P?P.style.width:null,f=P?P.style.touchAction:null,b=F?F.style.touchAction:null,F&&(F.style.overflow="hidden",F.style.touchAction="none"),P&&(P.style.overflow="hidden",P.style.position="fixed",P.style.top=`-${y}px`,P.style.left=`-${v}px`,P.style.width="100%",P.style.touchAction="none"),g=q=>{if(!l)return;const se=q.target;se&&(se===l||l.contains&&l.contains(se))||q.cancelable&&q.preventDefault()},m=q=>{if(!l)return;const se=q.target;se&&(se===l||l.contains&&l.contains(se))||q.cancelable&&q.preventDefault()},document.addEventListener("touchmove",g,{passive:!1,capture:!0}),document.addEventListener("wheel",m,{passive:!1,capture:!0})}return!0}function G(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const C=document.body,P=document.documentElement;C&&(C.style.overflow=c??"",C.style.position=p??"",C.style.top=h??"",C.style.left=x??"",C.style.width=w??"",C.style.touchAction=f??""),P&&(P.style.overflow=u??"",P.style.touchAction=b??""),g&&(document.removeEventListener("touchmove",g,{capture:!0}),g=null),m&&(document.removeEventListener("wheel",m,{capture:!0}),m=null),typeof window<"u"&&(y||v)&&window.scrollTo(v,y)}c=null,u=null,p=null,h=null,x=null,w=null,f=null,b=null,y=0,v=0}}function j(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function M(){if(!d()){r.value?(G(),r.value=!1,a("change",!1)):z()&&(r.value=!0,a("change",!0)),j();return}if(L())S().then(()=>{r.value=!1,a("change",!1)}).catch(()=>{});else{const P=_()??document.documentElement;O(P).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{O(document.documentElement).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{})})}}function E(){r.value=!!L(),a("change",r.value)}return Jt(()=>{var P,F;document.addEventListener("fullscreenchange",E),document.addEventListener("webkitfullscreenchange",E);const C=(F=(P=n.mapContainer)==null?void 0:P.getRootNode)==null?void 0:F.call(P);C instanceof ShadowRoot&&(s=C,C.addEventListener("fullscreenchange",E),C.addEventListener("webkitfullscreenchange",E))}),ho(()=>{document.removeEventListener("fullscreenchange",E),document.removeEventListener("webkitfullscreenchange",E),s&&(s.removeEventListener("fullscreenchange",E),s.removeEventListener("webkitfullscreenchange",E),s=null),l&&G()}),(C,P)=>(X(),Ge(aa,{"is-dark":e.isDark,active:r.value,title:de(o)("buttons.toggleFullscreen"),onClick:M},{default:Dt(()=>[r.value?(X(),re("svg",gw,[...P[1]||(P[1]=[T("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(X(),re("svg",dw,[...P[0]||(P[0]=[T("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},fw={style:{"font-size":"16px","line-height":"1"}},hw={__name:"ThemeToggleButton",props:{isDark:{type:Boolean,default:!1}},emits:["toggle"],setup(e){const{t}=ht();return(o,n)=>de(l_)?(X(),Ge(aa,{key:0,"is-dark":e.isDark,title:e.isDark?de(t)("buttons.switchToLightMode"):de(t)("buttons.switchToDarkMode"),onClick:n[0]||(n[0]=a=>o.$emit("toggle"))},{default:Dt(()=>[T("span",fw,ye(e.isDark?"☀️":"🌙"),1)]),_:1},8,["is-dark","title"])):ve("",!0)}},mw=["blocs","clusters","peopleGroups","families","languages","dialects","people","places","regions","wagfBlocks","religions"],bw={"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 yw(e){return bw[e]||mw}const vw={blocs:3,clusters:3,peopleGroups:3,families:3,languages:3,dialects:3,people:5,places:2,regions:3,wagfBlocks:3,religions:2},ps=["peopleGroups","people","places","languages","religions"],_w={regions:[...ps,"regions","wagfBlocks"],"people-groups":[...ps,"blocs","clusters"],language:[...ps,"dialects","families"],religion:[...ps]},kw=100,ww=50,xw=25,Sw=10,wl=5,hp=20,Aw=[[/ sign language$/i,"Sign Language"]];function Lw(e){if(!e||typeof e!="string")return"";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function Cw(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function $w(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(qe[n])return qe[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(qe[a])return qe[a]}}if(qe[e])return qe[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();if(o!==e&&qe[o])return qe[o];for(const[n,a]of Aw)if(n.test(e))return a;return null}function mp(e,t){return{id:`doxa-section-header-${xl(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 xl(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Fe(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 fs(e){return e==null?"":typeof e=="string"?e:typeof e=="object"?e.label||e.value||"":String(e)}function Ew(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=Fe(i.name)+" "+Fe(i.displayName)+" "+Fe(i.alternateName),p=Fe(i.countryName)+" "+Fe(i.country)+" "+Fe(i.countryIso)+" "+Fe(i.countryIsoLabel),h=Fe(i.religionName)+" "+Fe(i.religion)+" "+Fe(i.religionLabel)+" "+Fe(i.religionCode),x=Fe(i.language)+" "+Fe(i.languageFamily)+" "+Fe(i.languageCode),w=Fe(i.doxaRegion)+" "+Fe(i.wagfRegion)+" "+Fe(i.wagfBlock),f=Fe(i.affinityBlock)+" "+Fe(i.affinityBlockLabel)+" "+Fe((o=i._raw)==null?void 0:o.rop1),b=Fe(i.cluster)+" "+Fe(i.clusterLabel)+" "+Fe((n=i._raw)==null?void 0:n.imb_reg_of_people_2),y=Fe(i.peopleGroup)+" "+Fe(i.peopleGroupLabel)+" "+Fe((a=i._raw)==null?void 0:a.imb_reg_of_people_25),v=((r=i._raw)==null?void 0:r.primary_language)??((s=i._raw)==null?void 0:s.PrimaryLanguage),g=v&&(typeof v=="object"?v.label||v.value:v)||fs(i.language)||fs(i.primaryLanguage)||"",m=Lw(g),d=Cw(g);t.push({feature:i,nameHay:u,countryHay:p,religionHay:h,languageHay:x,regionHay:w,haystack:u+" "+p+" "+h+" "+x+" "+w+" "+f+" "+b+" "+y,blocHay:f,clusterHay:b,pgHay:y,lat:l,lng:c,familyDerived:$w(g)||null,languageLabel:g,baseLang:m,dialectLabel:d})}return t}function Tw(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:fs(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=>Fe(o.feature.countryName)||Fe(o.feature.country)||Fe(o.feature.countryIso),o=>o.feature.countryName||o.feature.country||o.feature.countryIso||""),families:t(o=>Fe(o.familyDerived),o=>o.familyDerived||""),languages:t(o=>Fe(o.baseLang),o=>o.baseLang||""),dialects:t(o=>o.dialectLabel?`${Fe(o.baseLang)}__${Fe(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 Wa(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 $n[Wa(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=>Fe(o.feature.doxaRegion)||Fe(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=>Fe(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=>Fe(o.feature.affinityBlockLabel)||Fe(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=>Fe(o.feature.peopleGroup)||Fe(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 Pw(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||xl(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 So(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=fs(t.label)||t.key,r=xl(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 Nw(e={}){const{dataStore:t,dataSourceId:o,getActiveFilter:n,getActiveContext:a}=e,{t:r}=ht(),s=te(()=>{var p,h;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((h=w==null?void 0:w.features)!=null&&h.length)return w.features}return[]}),i=te(()=>Ew(s.value)),l=te(()=>Tw(i.value));function c(p){const h=String(p||"").trim().toLowerCase(),x={people:[],places:[],regions:[],wagfBlocks:[],families:[],languages:[],dialects:[],religions:[],blocs:[],clusters:[],peopleGroups:[]};if(h.length<2)return x;const w=h.split(/[\s,;]+/).filter(Boolean);if(!w.length)return x;const f=i.value;if(!f.length)return x;const b=l.value,y=[];for(const P of f){let F=!0;for(const se of w)if(!P.haystack.includes(se)){F=!1;break}if(!F)continue;let q=0;w.some(se=>P.nameHay.includes(se))&&(q+=kw),w.some(se=>P.countryHay.includes(se))&&(q+=ww),w.some(se=>P.religionHay.includes(se))&&(q+=xw),w.some(se=>P.languageHay.includes(se))&&(q+=Sw),y.push({entry:P,score:q})}y.sort((P,F)=>F.score-P.score);const v=y.slice(0,wl).map(P=>Pw(P.entry)),g=P=>P.filter(F=>w.every(q=>F.key.includes(q)||Fe(F.label).includes(q))).sort((F,q)=>q.count-F.count).slice(0,wl),m=g(b.countries).map(P=>So("country",P)),d=g(b.regions).map(P=>So("region",P)),_=g(b.wagfBlocks).map(P=>So("region",P)),L=g(b.families).map(P=>So("language-family",P)),O=g(b.languages).map(P=>So("language",P)),S=g(b.dialects).map(P=>So("dialect",P)),z=g(b.religions).map(P=>So("religion",P)),G=g(b.blocs).map(P=>So("affinity-bloc",P));let j=g(b.clusters).map(P=>So("cluster",P)),M=g(b.peopleGroups).map(P=>So("people-group",P));const E=new Set(G.map(P=>Fe(P.text)));j=j.filter(P=>!E.has(Fe(P.text)));const C=new Set(j.map(P=>Fe(P.text)));return M=M.filter(P=>!E.has(Fe(P.text))&&!C.has(Fe(P.text))),{people:v,places:m,regions:d,wagfBlocks:_,families:L,languages:O,dialects:S,religions:z,blocs:G,clusters:j,peopleGroups:M}}function u(p){const h=typeof n=="function"?n():null,x=typeof a=="function"?a():null,w=c(p),f=yw(x),b=_w[x],y=b?Object.fromEntries(b.filter(L=>w[L]).map(L=>[L,w[L]])):w,v=f.flatMap(L=>y[L]||[]);if(!(h!=null&&h.key)||!v.length)return v.slice(0,hp);const g=[];for(const L of w.people){const O=i.value.find(z=>z.feature===L.feature);let S=!1;O&&(h.kind==="family"?S=(O.familyDerived||"").toLowerCase()===h.key.toLowerCase():h.kind==="language"&&(S=O.languageLabel.toLowerCase()===h.key.toLowerCase())),S&&g.push(L)}const m=[],d=h.key;g.length&&(m.push(mp(r("search.sections.within",{selection:d}),!1)),m.push(...g.slice(0,wl)));const _=f.flatMap(L=>(y[L]||[]).slice(0,vw[L]??3)).map(L=>({...L,properties:{...L.properties,_allDataSection:!0}}));return m.push(mp(r("search.sections.allData"),!0)),m.push(..._),m.slice(0,hp+8)}return{search:u,searchGrouped:c,index:i,aggregates:l}}const bp="https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.min.js",Iw={__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(G){return G+G.replace(/mapboxgl/g,"maplibregl")}yt(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"),yt(n(".mapboxgl-ctrl-geocoder--icon-loading{display:none !important;}"),"geocoder-hide-loading"),yt(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"),yt(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}=ht(),s=e,i=te(()=>s.placeholder||a("search.placeholder")),l=o,c={"&":"&","<":"<",">":">",'"':""","'":"'"};function u(G){return String(G??"").replace(/[&<>"']/g,j=>c[j])}function p(G){return G==null?"":typeof G=="string"?G:typeof G=="object"?G.label||G.value||"":String(G)}const h={"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(G){const j=h[G];if(!j)return"";const M=a("search.kinds."+j);return`${u(M)}`}function w(G){var E;if(!G)return"";const j=G.place_type||[];if(j.includes("doxa-section-header"))return`
${u(((E=G.properties)==null?void 0:E.headerLabel)||G.text||"")}
`;if(j.includes("people-group")){const C=G.properties||{},P=p(C.name)||p(C.displayName)||p(G.text)||"",F=p(C.countryName)||p(C.country)||p(C.countryIso)||"",q=p(C.language)||p(C.primaryLanguage)||p(C.languageFamily)||"",se=p(C.religionName)||p(C.religion)||"",Z=a("search.labels.place"),oe=a("search.labels.language"),H=a("search.labels.religion"),fe=[];return F&&fe.push(`${u(Z)} ${u(F)}`),q&&fe.push(`${u(oe)} ${u(q)}`),se&&fe.push(`${u(H)} ${u(se)}`),`
${x("people-group")}${u(P)}
`+(fe.length?`
${fe.join("")}
`:"")}const M=j.find(C=>C.startsWith("doxa-"));if(M){const C=G.properties||{},P=u(p(C.label)||G.text||""),F=Number(C.count)||0,q=F?` ${F}`:"";return`
${x(M)}${P}${q}
`}return`
${u(G.place_name||G.text||"")}
`}const f=Pe("dataStore",null),b=Pe("mapStore",null),y=Pe("uiStore",null);function v(){return b?b.selectedFamily?{kind:"family",key:b.selectedFamily}:b.selectedLanguage?{kind:"language",key:b.selectedLanguage}:null:null}const{search:g}=Nw({dataStore:f,dataSourceId:s.dataSourceId||void 0,getActiveFilter:v,getActiveContext:()=>s.activeContext||null}),m=xr(null),d=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(G,j){const M=_[j]||_.mapbox;if(G.querySelector(`link[href="${M}"]`))return;const E=document.createElement("link");E.rel="stylesheet",E.href=M,G.prepend(E)}async function O(){if(typeof window<"u"&&window.MaplibreGeocoder||typeof document>"u")return;const G=document.querySelector(`script[src="${bp}"]`);if(G){if(window.MaplibreGeocoder)return;await new Promise(j=>{G.addEventListener("load",j,{once:!0}),G.addEventListener("error",j,{once:!0})});return}await new Promise((j,M)=>{const E=document.createElement("script");E.src=bp,E.async=!1,E.addEventListener("load",j,{once:!0}),E.addEventListener("error",()=>M(new Error("[GeocoderComponent] Failed to load MapLibre geocoder")),{once:!0}),document.head.appendChild(E)})}function S(G,j){return async M=>{const E={features:[]};if(!G||!(M!=null&&M.query))return E;try{const C=Array.isArray(M.language)?M.language[0]:M.language||j()||"en",P=new URLSearchParams({access_token:G,autocomplete:"true",limit:String(M.limit||5)});C&&P.set("language",C);const F=`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(M.query)}.json?${P.toString()}`,q=await fetch(F);if(!q.ok)return E;const se=await q.json();return se&&Array.isArray(se.features)?se:E}catch{return E}}}Jt(async()=>{var C,P,F,q,se;const G=s.provider==="maplibre";if(G){if(await O(),typeof MaplibreGeocoder>"u"){console.error("[GeocoderComponent] MaplibreGeocoder global unavailable.");return}}else if(typeof MapboxGeocoder>"u")return;const j=s.mapInstance;if(!s.standalone&&!j)return;const M=s.standalone?(P=(C=d.value)==null?void 0:C.getRootNode)==null?void 0:P.call(C):(se=(q=(F=j.getContainer)==null?void 0:F.call(j))==null?void 0:q.getRootNode)==null?void 0:se.call(q);M instanceof ShadowRoot&&L(M,s.provider);const E={marker:!1,flyTo:!s.standalone,trackProximity:!s.standalone,placeholder:i.value,language:r.value||"en",localGeocoder:g,limit:20,zoom:6,render:w};if(G){const Z=typeof maplibregl<"u"?maplibregl:void 0,oe={forwardGeocode:S(s.accessToken,()=>r.value)};m.value=new MaplibreGeocoder(oe,{...E,maplibregl:Z,showResultsWhileTyping:!0,reverseGeocode:!1})}else m.value=new MapboxGeocoder({accessToken:s.accessToken,mapboxgl,...E});if(m.value.on("result",Z=>{var H,fe,Ae,we,Ce,ce,le,_e,he,xe,$,U,R,K,ee,D,ne,ae,k,A,V,Q,me,pe,J,N,W,ge,be,Le;const oe=Z==null?void 0:Z.result;oe&&((H=oe.place_type)!=null&&H.includes("doxa-section-header")||(b&&(b.selectedRegion=null,b.selectedResource=null,b.selectedAffinityBlock=null,b.selectedDialect=null),y&&((fe=y.setPrayerFilter)==null||fe.call(y,null),(Ae=y.setEngagementFilter)==null||Ae.call(y,null),(we=y.setAdoptionFilter)==null||we.call(y,null),(Ce=y.setReligionFilter)==null||Ce.call(y,null)),(ce=oe.properties)!=null&&ce._allDataSection&&b&&(b.selectedFamily=null,b.selectedLanguage=null),l("result",Z),(le=oe.place_type)!=null&&le.includes("people-group")&&oe.feature?l("people-group-result",{type:"Feature",properties:oe.properties||oe.feature,geometry:oe.geometry||{type:"Point",coordinates:oe.center}}):((_e=oe.place_type)!=null&&_e.includes("doxa-country")||(he=oe.place_type)!=null&&he.includes("doxa-region")||(xe=oe.place_type)!=null&&xe.includes("doxa-language-family")||($=oe.place_type)!=null&&$.includes("doxa-language")||(U=oe.place_type)!=null&&U.includes("doxa-dialect")||(R=oe.place_type)!=null&&R.includes("doxa-religion")||(K=oe.place_type)!=null&&K.includes("doxa-affinity-bloc")||(ee=oe.place_type)!=null&&ee.includes("doxa-cluster")||(D=oe.place_type)!=null&&D.includes("doxa-people-group"))&&l("aggregate-result",{kind:oe.place_type[0].replace(/^doxa-/,""),label:((ne=oe.properties)==null?void 0:ne.label)||oe.text,count:((ae=oe.properties)==null?void 0:ae.count)||0,memberIds:((k=oe.properties)==null?void 0:k.memberIds)||[],bounds:((A=oe.properties)==null?void 0:A.bounds)||null,center:oe.center,originalLabels:((V=oe.properties)==null?void 0:V.originalLabels)||null,familyDerived:((Q=oe.properties)==null?void 0:Q.familyDerived)||"",baseLang:((me=oe.properties)==null?void 0:me.baseLang)||"",dialectLabel:((pe=oe.properties)==null?void 0:pe.dialectLabel)||"",slug:((J=oe.properties)==null?void 0:J.slug)||null,id:oe.id||null,blocCode:((N=oe.properties)==null?void 0:N.blocCode)||"",blocLabel:((W=oe.properties)==null?void 0:W.blocLabel)||"",clusterCode:((ge=oe.properties)==null?void 0:ge.clusterCode)||"",clusterLabel:((be=oe.properties)==null?void 0:be.clusterLabel)||"",peopleGroupCode:((Le=oe.properties)==null?void 0:Le.peopleGroupCode)||"",properties:oe.properties||null})))}),m.value.on("clear",()=>l("clear")),m.value.on("error",Z=>l("error",Z)),s.standalone){if(d.value){const Z={on(){},off(){},fire(){},getContainer:()=>d.value,getZoom:()=>0,getCenter:()=>({lng:0,lat:0}),getBounds:()=>null,flyTo(){},fitBounds(){},addControl(){},removeControl(){},hasControl:()=>!1};try{const oe=m.value.onAdd(s.mapInstance||Z);oe&&d.value.appendChild(oe)}catch(oe){l("error",oe)}}}else j.addControl(m.value,"top-left"),z()});function z(){var j,M;const G=(M=(j=m.value)==null?void 0:j.container)==null?void 0:M.parentElement;G&&(G.classList.add("dg-search-band"),G.classList.toggle("dg-search-band--dark",!!s.isDark))}return Re(()=>s.isDark,()=>z()),Re(i,G=>{var E,C;const j=m.value;if(!j)return;const M=j._inputEl||((C=(E=j.container)==null?void 0:E.querySelector)==null?void 0:C.call(E,"input.mapboxgl-ctrl-geocoder--input"));M&&(M.placeholder=G,M.setAttribute("placeholder",G)),j.options&&(j.options.placeholder=G)}),Re(r,G=>{const j=m.value;j!=null&&j.options&&(j.options.language=G||"en")}),ho(()=>{var G,j;if(m.value){try{s.standalone?(j=(G=m.value).onRemove)==null||j.call(G):s.mapInstance&&s.mapInstance.removeControl(m.value)}catch{}m.value=null}}),t({geocoder:m}),(G,j)=>e.standalone?(X(),re("div",{key:0,ref_key:"standaloneContainer",ref:d,class:"dg-standalone-geocoder"},null,512)):Ro(G.$slots,"default",{},void 0,void 0,1)}},Mw=Mn&&Mn.tagName.toUpperCase()==="SCRIPT"&&Mn.src||new URL("doxa-research-map.js",document.baseURI).href,Sl=e=>String(e||"").trim().replace(/\/+$/,"");function Fw(){try{const t=String(Mw||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Rw(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Sl(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Sl(o)}return Sl(Fw()||"")}function Dw({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=Rw(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const Ow=["aria-label"],Bw={class:"mcm-header"},jw={class:"mcm-title"},Uw={class:"mcm-body"},zw=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",Al="doxa-map-menu-open",Gw={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){yt(` +`,"map-control-button"),(t,o)=>(X(),re("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[Ro(t.$slots,"default")],10,gx))}},fx={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=ht(),o=e;function n(){var a;(a=o.map)==null||a.zoomIn()}return(a,r)=>(X(),Ge(aa,{"is-dark":e.isDark,title:de(t)("buttons.zoomIn"),onClick:n},{default:Dt(()=>[...r[0]||(r[0]=[T("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","title"]))}},hx={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=ht(),o=e;function n(){var a;(a=o.map)==null||a.zoomOut()}return(a,r)=>(X(),Ge(aa,{"is-dark":e.isDark,title:de(t)("buttons.zoomOut"),onClick:n},{default:Dt(()=>[...r[0]||(r[0]=[T("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","title"]))}},mx={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=ht(),o=e;function n(){var r;(r=o.map)==null||r.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:s,latitude:i}=r.coords;Number.isFinite(s)&&Number.isFinite(i)?o.map.flyTo({center:[s,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,s)=>(X(),Ge(aa,{"is-dark":e.isDark,title:de(t)("buttons.resetView"),onClick:a},{default:Dt(()=>[...s[0]||(s[0]=[T("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[T("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},bx={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},yx={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},vx={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=ht(),n=e,a=t,r=ue(!1);let s=null,i=null,l=null,c=null,u=null,g=null,h=null,w=null,x=null,f=null,b=null,y=0,v=0,p=null,m=null;function d(){if(typeof document>"u")return!1;const C=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(C)||C.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function _(){var C,P,F;return((F=(P=(C=n.mapContainer)==null?void 0:C.getRootNode)==null?void 0:P.call(C))==null?void 0:F.host)??null}function L(){var P,F;const C=(F=(P=n.mapContainer)==null?void 0:P.getRootNode)==null?void 0:F.call(P);return document.fullscreenElement||document.webkitFullscreenElement||(C&&C instanceof ShadowRoot?C.fullscreenElement:null)||null}function O(C){const P=C.requestFullscreen||C.webkitRequestFullscreen;if(!P)return Promise.reject(new Error("Fullscreen API unavailable"));const F=P.call(C);return F&&typeof F.then=="function"?F:Promise.resolve()}function S(){const C=document.exitFullscreen||document.webkitExitFullscreen;if(!C)return Promise.reject(new Error("Fullscreen API unavailable"));const P=C.call(document);return P&&typeof P.then=="function"?P:Promise.resolve()}function U(){const C=_();if(!C)return!1;if(l=C,i=C.style.cssText,C.style.position="fixed",C.style.top="0",C.style.left="0",C.style.right="0",C.style.bottom="0",C.style.width="100vw",C.style.height="100vh",C.style.height="100dvh",C.style.zIndex="2147483647",C.style.margin="0",C.style.borderRadius="0",C.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){y=window.scrollY||window.pageYOffset||0,v=window.scrollX||window.pageXOffset||0;const P=document.body,F=document.documentElement;c=P?P.style.overflow:null,u=F?F.style.overflow:null,g=P?P.style.position:null,h=P?P.style.top:null,w=P?P.style.left:null,x=P?P.style.width:null,f=P?P.style.touchAction:null,b=F?F.style.touchAction:null,F&&(F.style.overflow="hidden",F.style.touchAction="none"),P&&(P.style.overflow="hidden",P.style.position="fixed",P.style.top=`-${y}px`,P.style.left=`-${v}px`,P.style.width="100%",P.style.touchAction="none"),p=q=>{if(!l)return;const se=q.target;se&&(se===l||l.contains&&l.contains(se))||q.cancelable&&q.preventDefault()},m=q=>{if(!l)return;const se=q.target;se&&(se===l||l.contains&&l.contains(se))||q.cancelable&&q.preventDefault()},document.addEventListener("touchmove",p,{passive:!1,capture:!0}),document.addEventListener("wheel",m,{passive:!1,capture:!0})}return!0}function G(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const C=document.body,P=document.documentElement;C&&(C.style.overflow=c??"",C.style.position=g??"",C.style.top=h??"",C.style.left=w??"",C.style.width=x??"",C.style.touchAction=f??""),P&&(P.style.overflow=u??"",P.style.touchAction=b??""),p&&(document.removeEventListener("touchmove",p,{capture:!0}),p=null),m&&(document.removeEventListener("wheel",m,{capture:!0}),m=null),typeof window<"u"&&(y||v)&&window.scrollTo(v,y)}c=null,u=null,g=null,h=null,w=null,x=null,f=null,b=null,y=0,v=0}}function j(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function M(){if(!d()){r.value?(G(),r.value=!1,a("change",!1)):U()&&(r.value=!0,a("change",!0)),j();return}if(L())S().then(()=>{r.value=!1,a("change",!1)}).catch(()=>{});else{const P=_()??document.documentElement;O(P).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{O(document.documentElement).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{})})}}function E(){r.value=!!L(),a("change",r.value)}return Jt(()=>{var P,F;document.addEventListener("fullscreenchange",E),document.addEventListener("webkitfullscreenchange",E);const C=(F=(P=n.mapContainer)==null?void 0:P.getRootNode)==null?void 0:F.call(P);C instanceof ShadowRoot&&(s=C,C.addEventListener("fullscreenchange",E),C.addEventListener("webkitfullscreenchange",E))}),ho(()=>{document.removeEventListener("fullscreenchange",E),document.removeEventListener("webkitfullscreenchange",E),s&&(s.removeEventListener("fullscreenchange",E),s.removeEventListener("webkitfullscreenchange",E),s=null),l&&G()}),(C,P)=>(X(),Ge(aa,{"is-dark":e.isDark,active:r.value,title:de(o)("buttons.toggleFullscreen"),onClick:M},{default:Dt(()=>[r.value?(X(),re("svg",yx,[...P[1]||(P[1]=[T("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(X(),re("svg",bx,[...P[0]||(P[0]=[T("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},_x={style:{"font-size":"16px","line-height":"1"}},kx={__name:"ThemeToggleButton",props:{isDark:{type:Boolean,default:!1}},emits:["toggle"],setup(e){const{t}=ht();return(o,n)=>de(l_)?(X(),Ge(aa,{key:0,"is-dark":e.isDark,title:e.isDark?de(t)("buttons.switchToLightMode"):de(t)("buttons.switchToDarkMode"),onClick:n[0]||(n[0]=a=>o.$emit("toggle"))},{default:Dt(()=>[T("span",_x,ye(e.isDark?"☀️":"🌙"),1)]),_:1},8,["is-dark","title"])):ve("",!0)}},xx=["blocs","clusters","peopleGroups","families","languages","dialects","people","places","regions","wagfBlocks","religions"],wx={"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 Sx(e){return wx[e]||xx}const Ax={blocs:3,clusters:3,peopleGroups:3,families:3,languages:3,dialects:3,people:5,places:2,regions:3,wagfBlocks:3,religions:2},gs=["peopleGroups","people","places","languages","religions"],Lx={regions:[...gs,"regions","wagfBlocks"],"people-groups":[...gs,"blocs","clusters"],language:[...gs,"dialects","families"],religion:[...gs]},Cx=100,$x=50,Ex=25,Tx=10,xl=5,hg=20,Px=[[/ sign language$/i,"Sign Language"]];function Nx(e){if(!e||typeof e!="string")return"";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function Ix(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function Mx(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(qe[n])return qe[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(qe[a])return qe[a]}}if(qe[e])return qe[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();if(o!==e&&qe[o])return qe[o];for(const[n,a]of Px)if(n.test(e))return a;return null}function mg(e,t){return{id:`doxa-section-header-${wl(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 wl(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Fe(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 fs(e){return e==null?"":typeof e=="string"?e:typeof e=="object"?e.label||e.value||"":String(e)}function Fx(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=Fe(i.name)+" "+Fe(i.displayName)+" "+Fe(i.alternateName),g=Fe(i.countryName)+" "+Fe(i.country)+" "+Fe(i.countryIso)+" "+Fe(i.countryIsoLabel),h=Fe(i.religionName)+" "+Fe(i.religion)+" "+Fe(i.religionLabel)+" "+Fe(i.religionCode),w=Fe(i.language)+" "+Fe(i.languageFamily)+" "+Fe(i.languageCode),x=Fe(i.doxaRegion)+" "+Fe(i.wagfRegion)+" "+Fe(i.wagfBlock),f=Fe(i.affinityBlock)+" "+Fe(i.affinityBlockLabel)+" "+Fe((o=i._raw)==null?void 0:o.rop1),b=Fe(i.cluster)+" "+Fe(i.clusterLabel)+" "+Fe((n=i._raw)==null?void 0:n.imb_reg_of_people_2),y=Fe(i.peopleGroup)+" "+Fe(i.peopleGroupLabel)+" "+Fe((a=i._raw)==null?void 0:a.imb_reg_of_people_25),v=((r=i._raw)==null?void 0:r.primary_language)??((s=i._raw)==null?void 0:s.PrimaryLanguage),p=v&&(typeof v=="object"?v.label||v.value:v)||fs(i.language)||fs(i.primaryLanguage)||"",m=Nx(p),d=Ix(p);t.push({feature:i,nameHay:u,countryHay:g,religionHay:h,languageHay:w,regionHay:x,haystack:u+" "+g+" "+h+" "+w+" "+x+" "+f+" "+b+" "+y,blocHay:f,clusterHay:b,pgHay:y,lat:l,lng:c,familyDerived:Mx(p)||null,languageLabel:p,baseLang:m,dialectLabel:d})}return t}function Rx(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:fs(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=>Fe(o.feature.countryName)||Fe(o.feature.country)||Fe(o.feature.countryIso),o=>o.feature.countryName||o.feature.country||o.feature.countryIso||""),families:t(o=>Fe(o.familyDerived),o=>o.familyDerived||""),languages:t(o=>Fe(o.baseLang),o=>o.baseLang||""),dialects:t(o=>o.dialectLabel?`${Fe(o.baseLang)}__${Fe(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 Wa(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 $n[Wa(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=>Fe(o.feature.doxaRegion)||Fe(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=>Fe(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=>Fe(o.feature.affinityBlockLabel)||Fe(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=>Fe(o.feature.peopleGroup)||Fe(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 Dx(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||wl(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 So(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=fs(t.label)||t.key,r=wl(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,g=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}:{},...g||{},...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 Ox(e={}){const{dataStore:t,dataSourceId:o,getActiveFilter:n,getActiveContext:a}=e,{t:r}=ht(),s=te(()=>{var g,h;if(!t||!t.sources)return[];if(o&&((g=t.sources[o])!=null&&g.features))return t.sources[o].features;for(const w of Object.keys(t.sources)){const x=t.sources[w];if((h=x==null?void 0:x.features)!=null&&h.length)return x.features}return[]}),i=te(()=>Fx(s.value)),l=te(()=>Rx(i.value));function c(g){const h=String(g||"").trim().toLowerCase(),w={people:[],places:[],regions:[],wagfBlocks:[],families:[],languages:[],dialects:[],religions:[],blocs:[],clusters:[],peopleGroups:[]};if(h.length<2)return w;const x=h.split(/[\s,;]+/).filter(Boolean);if(!x.length)return w;const f=i.value;if(!f.length)return w;const b=l.value,y=[];for(const P of f){let F=!0;for(const se of x)if(!P.haystack.includes(se)){F=!1;break}if(!F)continue;let q=0;x.some(se=>P.nameHay.includes(se))&&(q+=Cx),x.some(se=>P.countryHay.includes(se))&&(q+=$x),x.some(se=>P.religionHay.includes(se))&&(q+=Ex),x.some(se=>P.languageHay.includes(se))&&(q+=Tx),y.push({entry:P,score:q})}y.sort((P,F)=>F.score-P.score);const v=y.slice(0,xl).map(P=>Dx(P.entry)),p=P=>P.filter(F=>x.every(q=>F.key.includes(q)||Fe(F.label).includes(q))).sort((F,q)=>q.count-F.count).slice(0,xl),m=p(b.countries).map(P=>So("country",P)),d=p(b.regions).map(P=>So("region",P)),_=p(b.wagfBlocks).map(P=>So("region",P)),L=p(b.families).map(P=>So("language-family",P)),O=p(b.languages).map(P=>So("language",P)),S=p(b.dialects).map(P=>So("dialect",P)),U=p(b.religions).map(P=>So("religion",P)),G=p(b.blocs).map(P=>So("affinity-bloc",P));let j=p(b.clusters).map(P=>So("cluster",P)),M=p(b.peopleGroups).map(P=>So("people-group",P));const E=new Set(G.map(P=>Fe(P.text)));j=j.filter(P=>!E.has(Fe(P.text)));const C=new Set(j.map(P=>Fe(P.text)));return M=M.filter(P=>!E.has(Fe(P.text))&&!C.has(Fe(P.text))),{people:v,places:m,regions:d,wagfBlocks:_,families:L,languages:O,dialects:S,religions:U,blocs:G,clusters:j,peopleGroups:M}}function u(g){const h=typeof n=="function"?n():null,w=typeof a=="function"?a():null,x=c(g),f=Sx(w),b=Lx[w],y=b?Object.fromEntries(b.filter(L=>x[L]).map(L=>[L,x[L]])):x,v=f.flatMap(L=>y[L]||[]);if(!(h!=null&&h.key)||!v.length)return v.slice(0,hg);const p=[];for(const L of x.people){const O=i.value.find(U=>U.feature===L.feature);let S=!1;O&&(h.kind==="family"?S=(O.familyDerived||"").toLowerCase()===h.key.toLowerCase():h.kind==="language"&&(S=O.languageLabel.toLowerCase()===h.key.toLowerCase())),S&&p.push(L)}const m=[],d=h.key;p.length&&(m.push(mg(r("search.sections.within",{selection:d}),!1)),m.push(...p.slice(0,xl)));const _=f.flatMap(L=>(y[L]||[]).slice(0,Ax[L]??3)).map(L=>({...L,properties:{...L.properties,_allDataSection:!0}}));return m.push(mg(r("search.sections.allData"),!0)),m.push(..._),m.slice(0,hg+8)}return{search:u,searchGrouped:c,index:i,aggregates:l}}const bg="https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.min.js",Bx={__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(G){return G+G.replace(/mapboxgl/g,"maplibregl")}yt(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"),yt(n(".mapboxgl-ctrl-geocoder--icon-loading{display:none !important;}"),"geocoder-hide-loading"),yt(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"),yt(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}=ht(),s=e,i=te(()=>s.placeholder||a("search.placeholder")),l=o,c={"&":"&","<":"<",">":">",'"':""","'":"'"};function u(G){return String(G??"").replace(/[&<>"']/g,j=>c[j])}function g(G){return G==null?"":typeof G=="string"?G:typeof G=="object"?G.label||G.value||"":String(G)}const h={"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 w(G){const j=h[G];if(!j)return"";const M=a("search.kinds."+j);return`${u(M)}`}function x(G){var E;if(!G)return"";const j=G.place_type||[];if(j.includes("doxa-section-header"))return`
${u(((E=G.properties)==null?void 0:E.headerLabel)||G.text||"")}
`;if(j.includes("people-group")){const C=G.properties||{},P=g(C.name)||g(C.displayName)||g(G.text)||"",F=g(C.countryName)||g(C.country)||g(C.countryIso)||"",q=g(C.language)||g(C.primaryLanguage)||g(C.languageFamily)||"",se=g(C.religionName)||g(C.religion)||"",Z=a("search.labels.place"),oe=a("search.labels.language"),H=a("search.labels.religion"),fe=[];return F&&fe.push(`${u(Z)} ${u(F)}`),q&&fe.push(`${u(oe)} ${u(q)}`),se&&fe.push(`${u(H)} ${u(se)}`),`
${w("people-group")}${u(P)}
`+(fe.length?`
${fe.join("")}
`:"")}const M=j.find(C=>C.startsWith("doxa-"));if(M){const C=G.properties||{},P=u(g(C.label)||G.text||""),F=Number(C.count)||0,q=F?` ${F}`:"";return`
${w(M)}${P}${q}
`}return`
${u(G.place_name||G.text||"")}
`}const f=Pe("dataStore",null),b=Pe("mapStore",null),y=Pe("uiStore",null);function v(){return b?b.selectedFamily?{kind:"family",key:b.selectedFamily}:b.selectedLanguage?{kind:"language",key:b.selectedLanguage}:null:null}const{search:p}=Ox({dataStore:f,dataSourceId:s.dataSourceId||void 0,getActiveFilter:v,getActiveContext:()=>s.activeContext||null}),m=wr(null),d=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(G,j){const M=_[j]||_.mapbox;if(G.querySelector(`link[href="${M}"]`))return;const E=document.createElement("link");E.rel="stylesheet",E.href=M,G.prepend(E)}async function O(){if(typeof window<"u"&&window.MaplibreGeocoder||typeof document>"u")return;const G=document.querySelector(`script[src="${bg}"]`);if(G){if(window.MaplibreGeocoder)return;await new Promise(j=>{G.addEventListener("load",j,{once:!0}),G.addEventListener("error",j,{once:!0})});return}await new Promise((j,M)=>{const E=document.createElement("script");E.src=bg,E.async=!1,E.addEventListener("load",j,{once:!0}),E.addEventListener("error",()=>M(new Error("[GeocoderComponent] Failed to load MapLibre geocoder")),{once:!0}),document.head.appendChild(E)})}function S(G,j){return async M=>{const E={features:[]};if(!G||!(M!=null&&M.query))return E;try{const C=Array.isArray(M.language)?M.language[0]:M.language||j()||"en",P=new URLSearchParams({access_token:G,autocomplete:"true",limit:String(M.limit||5)});C&&P.set("language",C);const F=`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(M.query)}.json?${P.toString()}`,q=await fetch(F);if(!q.ok)return E;const se=await q.json();return se&&Array.isArray(se.features)?se:E}catch{return E}}}Jt(async()=>{var C,P,F,q,se;const G=s.provider==="maplibre";if(G){if(await O(),typeof MaplibreGeocoder>"u"){console.error("[GeocoderComponent] MaplibreGeocoder global unavailable.");return}}else if(typeof MapboxGeocoder>"u")return;const j=s.mapInstance;if(!s.standalone&&!j)return;const M=s.standalone?(P=(C=d.value)==null?void 0:C.getRootNode)==null?void 0:P.call(C):(se=(q=(F=j.getContainer)==null?void 0:F.call(j))==null?void 0:q.getRootNode)==null?void 0:se.call(q);M instanceof ShadowRoot&&L(M,s.provider);const E={marker:!1,flyTo:!s.standalone,trackProximity:!s.standalone,placeholder:i.value,language:r.value||"en",localGeocoder:p,limit:20,zoom:6,render:x};if(G){const Z=typeof maplibregl<"u"?maplibregl:void 0,oe={forwardGeocode:S(s.accessToken,()=>r.value)};m.value=new MaplibreGeocoder(oe,{...E,maplibregl:Z,showResultsWhileTyping:!0,reverseGeocode:!1})}else m.value=new MapboxGeocoder({accessToken:s.accessToken,mapboxgl,...E});if(m.value.on("result",Z=>{var H,fe,Ae,xe,Ce,ce,le,_e,he,we,$,z,R,K,ee,D,ne,ae,k,A,V,Q,me,ge,J,N,W,pe,be,Le;const oe=Z==null?void 0:Z.result;oe&&((H=oe.place_type)!=null&&H.includes("doxa-section-header")||(b&&(b.selectedRegion=null,b.selectedResource=null,b.selectedAffinityBlock=null,b.selectedDialect=null),y&&((fe=y.setPrayerFilter)==null||fe.call(y,null),(Ae=y.setEngagementFilter)==null||Ae.call(y,null),(xe=y.setAdoptionFilter)==null||xe.call(y,null),(Ce=y.setReligionFilter)==null||Ce.call(y,null)),(ce=oe.properties)!=null&&ce._allDataSection&&b&&(b.selectedFamily=null,b.selectedLanguage=null),l("result",Z),(le=oe.place_type)!=null&&le.includes("people-group")&&oe.feature?l("people-group-result",{type:"Feature",properties:oe.properties||oe.feature,geometry:oe.geometry||{type:"Point",coordinates:oe.center}}):((_e=oe.place_type)!=null&&_e.includes("doxa-country")||(he=oe.place_type)!=null&&he.includes("doxa-region")||(we=oe.place_type)!=null&&we.includes("doxa-language-family")||($=oe.place_type)!=null&&$.includes("doxa-language")||(z=oe.place_type)!=null&&z.includes("doxa-dialect")||(R=oe.place_type)!=null&&R.includes("doxa-religion")||(K=oe.place_type)!=null&&K.includes("doxa-affinity-bloc")||(ee=oe.place_type)!=null&&ee.includes("doxa-cluster")||(D=oe.place_type)!=null&&D.includes("doxa-people-group"))&&l("aggregate-result",{kind:oe.place_type[0].replace(/^doxa-/,""),label:((ne=oe.properties)==null?void 0:ne.label)||oe.text,count:((ae=oe.properties)==null?void 0:ae.count)||0,memberIds:((k=oe.properties)==null?void 0:k.memberIds)||[],bounds:((A=oe.properties)==null?void 0:A.bounds)||null,center:oe.center,originalLabels:((V=oe.properties)==null?void 0:V.originalLabels)||null,familyDerived:((Q=oe.properties)==null?void 0:Q.familyDerived)||"",baseLang:((me=oe.properties)==null?void 0:me.baseLang)||"",dialectLabel:((ge=oe.properties)==null?void 0:ge.dialectLabel)||"",slug:((J=oe.properties)==null?void 0:J.slug)||null,id:oe.id||null,blocCode:((N=oe.properties)==null?void 0:N.blocCode)||"",blocLabel:((W=oe.properties)==null?void 0:W.blocLabel)||"",clusterCode:((pe=oe.properties)==null?void 0:pe.clusterCode)||"",clusterLabel:((be=oe.properties)==null?void 0:be.clusterLabel)||"",peopleGroupCode:((Le=oe.properties)==null?void 0:Le.peopleGroupCode)||"",properties:oe.properties||null})))}),m.value.on("clear",()=>l("clear")),m.value.on("error",Z=>l("error",Z)),s.standalone){if(d.value){const Z={on(){},off(){},fire(){},getContainer:()=>d.value,getZoom:()=>0,getCenter:()=>({lng:0,lat:0}),getBounds:()=>null,flyTo(){},fitBounds(){},addControl(){},removeControl(){},hasControl:()=>!1};try{const oe=m.value.onAdd(s.mapInstance||Z);oe&&d.value.appendChild(oe)}catch(oe){l("error",oe)}}}else j.addControl(m.value,"top-left"),U()});function U(){var j,M;const G=(M=(j=m.value)==null?void 0:j.container)==null?void 0:M.parentElement;G&&(G.classList.add("dg-search-band"),G.classList.toggle("dg-search-band--dark",!!s.isDark))}return Re(()=>s.isDark,()=>U()),Re(i,G=>{var E,C;const j=m.value;if(!j)return;const M=j._inputEl||((C=(E=j.container)==null?void 0:E.querySelector)==null?void 0:C.call(E,"input.mapboxgl-ctrl-geocoder--input"));M&&(M.placeholder=G,M.setAttribute("placeholder",G)),j.options&&(j.options.placeholder=G)}),Re(r,G=>{const j=m.value;j!=null&&j.options&&(j.options.language=G||"en")}),ho(()=>{var G,j;if(m.value){try{s.standalone?(j=(G=m.value).onRemove)==null||j.call(G):s.mapInstance&&s.mapInstance.removeControl(m.value)}catch{}m.value=null}}),t({geocoder:m}),(G,j)=>e.standalone?(X(),re("div",{key:0,ref_key:"standaloneContainer",ref:d,class:"dg-standalone-geocoder"},null,512)):Ro(G.$slots,"default",{},void 0,void 0,1)}},jx=Mn&&Mn.tagName.toUpperCase()==="SCRIPT"&&Mn.src||new URL("doxa-research-map.js",document.baseURI).href,Sl=e=>String(e||"").trim().replace(/\/+$/,"");function zx(){try{const t=String(jx||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Ux(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Sl(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Sl(o)}return Sl(zx()||"")}function Gx({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=Ux(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const Kx=["aria-label"],Hx={class:"mcm-header"},Vx={class:"mcm-title"},qx={class:"mcm-body"},Wx=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",Al="doxa-map-menu-open",Yx={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){yt(` .mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box; background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45); color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px; @@ -489,7 +488,7 @@ .mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} .mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} .mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;} -`,"map-control-menu");const o=e,n=t,a=Pe("mapToolbar",null),r=ue(null),s=ue(null),i=ue({});function l(){var O;const x=(O=a==null?void 0:a.el)==null?void 0:O.value,w=r.value;if(!x||!w){i.value={};return}const f=w.getBoundingClientRect(),b=x.getBoundingClientRect(),y=(b.left+b.right)/2>(f.left+f.right)/2,v=8,g=12,m=y?f.right-b.left+v:b.right-f.left+v,d=Math.max(200,Math.min(o.width,f.width-m-g)),_=Math.max(0,b.top-f.top);let L=Math.max(120,f.height-_-g);o.matchToolbar&&(L=Math.max(120,Math.min(L,b.height))),o.maxHeight&&(L=Math.min(L,o.maxHeight)),i.value={top:`${Math.round(_)}px`,[y?"right":"left"]:`${Math.round(m)}px`,width:`${Math.round(d)}px`,maxHeight:`${Math.round(L)}px`,...o.height?{height:`${Math.round(Math.min(o.height,L))}px`}:{}}}function c(x){o.open&&x.detail!==s.value&&n("close")}Re(()=>o.open,async x=>{var w;if(x){await Ut(),l();try{(w=r.value)==null||w.dispatchEvent(new CustomEvent(Al,{detail:s.value}))}catch{}}});function u(){o.open&&l()}function p(x){x.key==="Escape"&&o.open&&n("close")}function h(x){var f;if(!o.open)return;const w=x.composedPath?x.composedPath():[x.target];s.value&&w.includes(s.value)||(f=a==null?void 0:a.el)!=null&&f.value&&w.includes(a.el.value)||w.some(b=>{var y,v,g,m;return((v=(y=b==null?void 0:b.classList)==null?void 0:y.contains)==null?void 0:v.call(y,"mapboxgl-canvas"))||((m=(g=b==null?void 0:b.classList)==null?void 0:g.contains)==null?void 0:m.call(g,"maplibregl-canvas"))})&&n("close")}return Jt(()=>{var x,w,f;r.value=((w=(x=a==null?void 0:a.el)==null?void 0:x.value)==null?void 0:w.closest(zw))||null,(f=r.value)==null||f.addEventListener(Al,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",p)}),ho(()=>{var x;(x=r.value)==null||x.removeEventListener(Al,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",p)}),(x,w)=>(X(),Ge(hh,{to:r.value,disabled:!r.value},[e.open?(X(),re("div",{key:0,ref_key:"el",ref:s,class:Te(["mcm",{light:!e.isDark}]),style:Xe(i.value),role:"dialog","aria-label":e.title},[T("div",Bw,[T("span",jw,ye(e.title),1),T("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:w[0]||(w[0]=f=>n("close"))},[...w[1]||(w[1]=[T("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[T("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),T("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),T("div",Uw,[Ro(x.$slots,"default")])],14,Ow)):ve("",!0)],8,["to","disabled"]))}},Kw={class:"share-steps"},Hw={class:"share-tabs"},Vw={key:0,class:"share-body"},qw={class:"share-url-box"},Ww={class:"share-url-text"},Yw={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Xw={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Jw={key:1,class:"share-body"},Zw={class:"share-size-pills"},Qw=["onClick"],ex={class:"share-code-box"},tx={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},ox={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},nx={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){yt(` +`,"map-control-menu");const o=e,n=t,a=Pe("mapToolbar",null),r=ue(null),s=ue(null),i=ue({});function l(){var O;const w=(O=a==null?void 0:a.el)==null?void 0:O.value,x=r.value;if(!w||!x){i.value={};return}const f=x.getBoundingClientRect(),b=w.getBoundingClientRect(),y=(b.left+b.right)/2>(f.left+f.right)/2,v=8,p=12,m=y?f.right-b.left+v:b.right-f.left+v,d=Math.max(200,Math.min(o.width,f.width-m-p)),_=Math.max(0,b.top-f.top);let L=Math.max(120,f.height-_-p);o.matchToolbar&&(L=Math.max(120,Math.min(L,b.height))),o.maxHeight&&(L=Math.min(L,o.maxHeight)),i.value={top:`${Math.round(_)}px`,[y?"right":"left"]:`${Math.round(m)}px`,width:`${Math.round(d)}px`,maxHeight:`${Math.round(L)}px`,...o.height?{height:`${Math.round(Math.min(o.height,L))}px`}:{}}}function c(w){o.open&&w.detail!==s.value&&n("close")}Re(()=>o.open,async w=>{var x;if(w){await zt(),l();try{(x=r.value)==null||x.dispatchEvent(new CustomEvent(Al,{detail:s.value}))}catch{}}});function u(){o.open&&l()}function g(w){w.key==="Escape"&&o.open&&n("close")}function h(w){var f;if(!o.open)return;const x=w.composedPath?w.composedPath():[w.target];s.value&&x.includes(s.value)||(f=a==null?void 0:a.el)!=null&&f.value&&x.includes(a.el.value)||x.some(b=>{var y,v,p,m;return((v=(y=b==null?void 0:b.classList)==null?void 0:y.contains)==null?void 0:v.call(y,"mapboxgl-canvas"))||((m=(p=b==null?void 0:b.classList)==null?void 0:p.contains)==null?void 0:m.call(p,"maplibregl-canvas"))})&&n("close")}return Jt(()=>{var w,x,f;r.value=((x=(w=a==null?void 0:a.el)==null?void 0:w.value)==null?void 0:x.closest(Wx))||null,(f=r.value)==null||f.addEventListener(Al,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",g)}),ho(()=>{var w;(w=r.value)==null||w.removeEventListener(Al,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",g)}),(w,x)=>(X(),Ge(hh,{to:r.value,disabled:!r.value},[e.open?(X(),re("div",{key:0,ref_key:"el",ref:s,class:Te(["mcm",{light:!e.isDark}]),style:Xe(i.value),role:"dialog","aria-label":e.title},[T("div",Hx,[T("span",Vx,ye(e.title),1),T("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:x[0]||(x[0]=f=>n("close"))},[...x[1]||(x[1]=[T("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[T("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),T("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),T("div",qx,[Ro(w.$slots,"default")])],14,Kx)):ve("",!0)],8,["to","disabled"]))}},Xx={class:"share-steps"},Jx={class:"share-tabs"},Zx={key:0,class:"share-body"},Qx={class:"share-url-box"},ew={class:"share-url-text"},tw={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},ow={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},nw={key:1,class:"share-body"},aw={class:"share-size-pills"},rw=["onClick"],sw={class:"share-code-box"},iw={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},lw={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},cw={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){yt(` .share-wrap{position:relative;display:inline-block;border-radius:50%;} .share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none; background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b); @@ -742,7 +741,7 @@ border-color:rgba(46,164,79,0.30); color:#2ea44f; } -`,"share-button");const{t,tm:o,rt:n}=ht(),a=e,r=ue(null),s=ue(!1),i=ue(null),l=ue(null),c=ue("link"),u=ue(!1),p=ue(!1),h=ue("medium"),x={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},w=Pe("profileConfig",null),f=te(()=>Dw({embedPath:a.embedPath,profileConfig:de(w)||null})),b=te(()=>{const _=x[h.value].height;return''});function y(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,p.value=!1)}function v(){s.value=!1}async function g(_){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(_),!0}catch{}try{const L=document.createElement("textarea");L.value=_,L.setAttribute("readonly",""),L.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(L),L.select();const O=document.execCommand("copy");return document.body.removeChild(L),O}catch{return!1}}async function m(){await g(f.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function d(){await g(b.value)&&(p.value=!0,setTimeout(()=>{p.value=!1},2e3))}return(_,L)=>(X(),re("div",{ref_key:"rootEl",ref:r,class:"share-wrap"},[Je(aa,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:de(t)("buttons.share"),onClick:y},{default:Dt(()=>[...L[2]||(L[2]=[T("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"},[T("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),T("polyline",{points:"16 6 12 2 8 6"}),T("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),Je(Gw,{open:s.value,title:de(t)("buttons.share"),"is-dark":e.isDark,onClose:v},{default:Dt(()=>[T("div",{ref_key:"popoverEl",ref:i,class:Te(["share-pop",{light:!e.isDark}])},[T("ul",Kw,[(X(!0),re(Be,null,At(de(o)("buttons.shareSteps"),(O,S)=>(X(),re("li",{key:S},ye(de(n)(O)),1))),128))]),T("div",Hw,[T("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:L[0]||(L[0]=O=>c.value="link")},"Embed link",2),T("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:L[1]||(L[1]=O=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(X(),re("div",Vw,[T("div",qw,[T("div",Ww,ye(f.value),1)]),T("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:m},[u.value?(X(),re("svg",Xw,[...L[4]||(L[4]=[T("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(X(),re("svg",Yw,[...L[3]||(L[3]=[T("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),T("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),gt(" "+ye(u.value?"Copied!":"Copy Link"),1)],2)])):ve("",!0),c.value==="embed"?(X(),re("div",Jw,[L[7]||(L[7]=T("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),T("div",Zw,[(X(),re(Be,null,At(x,(O,S)=>T("button",{key:S,class:Te(["share-size-pill",{active:h.value===S}]),onClick:z=>h.value=S},ye(O.label),11,Qw)),64))]),T("div",ex,ye(b.value),1),T("button",{class:Te(["share-secondary-btn",{copied:p.value}]),onClick:d},[p.value?(X(),re("svg",ox,[...L[6]||(L[6]=[T("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(X(),re("svg",tx,[...L[5]||(L[5]=[T("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),T("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),gt(" "+ye(p.value?"Copied!":"Copy Code"),1)],2)])):ve("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},ax={class:"rm-side-header"},rx={class:"rm-side-body"},sx={class:"rm-section"},ix={class:"rm-cluster-grid"},lx=["onClick"],cx={class:"label"},ux={class:"desc"},dx={key:0,class:"rm-slider-row"},gx=["value"],px={class:"val"},fx={class:"rm-section"},hx={class:"rm-side-footer"},mx={__name:"ResearchMapSideMenu",props:{isOpen:{type:Boolean,default:!1}},emits:["close","open-poster","reload-map"],setup(e,{emit:t}){const o=t,n=Pe("mapStore");Pe("uiStore");const a=[{id:"off",label:"Off",desc:"Show every pin individually"},{id:"mapbox",label:"Native",desc:"Mapbox circle clusters (fastest)"},{id:"mst",label:"MST",desc:"Minimum-spanning-tree affinity webs"},{id:"network",label:"Network",desc:"Nearest-neighbor connection lines"}],r=te({get:()=>(n==null?void 0:n.clusteringMode)??"off",set:i=>{n&&(n.clusteringMode=i)}}),s=te({get:()=>(n==null?void 0:n.clusterPinOpacity)??.6,set:i=>{n&&(n.clusterPinOpacity=Number(i))}});return yt(` +`,"share-button");const{t,tm:o,rt:n}=ht(),a=e,r=ue(null),s=ue(!1),i=ue(null),l=ue(null),c=ue("link"),u=ue(!1),g=ue(!1),h=ue("medium"),w={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},x=Pe("profileConfig",null),f=te(()=>Gx({embedPath:a.embedPath,profileConfig:de(x)||null})),b=te(()=>{const _=w[h.value].height;return''});function y(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,g.value=!1)}function v(){s.value=!1}async function p(_){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(_),!0}catch{}try{const L=document.createElement("textarea");L.value=_,L.setAttribute("readonly",""),L.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(L),L.select();const O=document.execCommand("copy");return document.body.removeChild(L),O}catch{return!1}}async function m(){await p(f.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function d(){await p(b.value)&&(g.value=!0,setTimeout(()=>{g.value=!1},2e3))}return(_,L)=>(X(),re("div",{ref_key:"rootEl",ref:r,class:"share-wrap"},[Je(aa,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:de(t)("buttons.share"),onClick:y},{default:Dt(()=>[...L[2]||(L[2]=[T("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"},[T("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),T("polyline",{points:"16 6 12 2 8 6"}),T("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),Je(Yx,{open:s.value,title:de(t)("buttons.share"),"is-dark":e.isDark,onClose:v},{default:Dt(()=>[T("div",{ref_key:"popoverEl",ref:i,class:Te(["share-pop",{light:!e.isDark}])},[T("ul",Xx,[(X(!0),re(Be,null,At(de(o)("buttons.shareSteps"),(O,S)=>(X(),re("li",{key:S},ye(de(n)(O)),1))),128))]),T("div",Jx,[T("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:L[0]||(L[0]=O=>c.value="link")},"Embed link",2),T("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:L[1]||(L[1]=O=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(X(),re("div",Zx,[T("div",Qx,[T("div",ew,ye(f.value),1)]),T("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:m},[u.value?(X(),re("svg",ow,[...L[4]||(L[4]=[T("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(X(),re("svg",tw,[...L[3]||(L[3]=[T("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),T("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),pt(" "+ye(u.value?"Copied!":"Copy Link"),1)],2)])):ve("",!0),c.value==="embed"?(X(),re("div",nw,[L[7]||(L[7]=T("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),T("div",aw,[(X(),re(Be,null,At(w,(O,S)=>T("button",{key:S,class:Te(["share-size-pill",{active:h.value===S}]),onClick:U=>h.value=S},ye(O.label),11,rw)),64))]),T("div",sw,ye(b.value),1),T("button",{class:Te(["share-secondary-btn",{copied:g.value}]),onClick:d},[g.value?(X(),re("svg",lw,[...L[6]||(L[6]=[T("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(X(),re("svg",iw,[...L[5]||(L[5]=[T("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),T("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),pt(" "+ye(g.value?"Copied!":"Copy Code"),1)],2)])):ve("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},uw={class:"rm-side-header"},dw={class:"rm-side-body"},pw={class:"rm-section"},gw={class:"rm-cluster-grid"},fw=["onClick"],hw={class:"label"},mw={class:"desc"},bw={key:0,class:"rm-slider-row"},yw=["value"],vw={class:"val"},_w={class:"rm-section"},kw={class:"rm-side-footer"},xw={__name:"ResearchMapSideMenu",props:{isOpen:{type:Boolean,default:!1}},emits:["close","open-poster","reload-map"],setup(e,{emit:t}){const o=t,n=Pe("mapStore");Pe("uiStore");const a=[{id:"off",label:"Off",desc:"Show every pin individually"},{id:"mapbox",label:"Native",desc:"Mapbox circle clusters (fastest)"},{id:"mst",label:"MST",desc:"Minimum-spanning-tree affinity webs"},{id:"network",label:"Network",desc:"Nearest-neighbor connection lines"}],r=te({get:()=>(n==null?void 0:n.clusteringMode)??"off",set:i=>{n&&(n.clusteringMode=i)}}),s=te({get:()=>(n==null?void 0:n.clusterPinOpacity)??.6,set:i=>{n&&(n.clusterPinOpacity=Number(i))}});return yt(` .rm-side-backdrop { position:absolute;inset:0;background:rgba(0,0,0,0.45);z-index:1500;opacity:0;pointer-events:none;transition:opacity .18s; } .rm-side-backdrop.open { opacity:1;pointer-events:auto; } .rm-side-drawer { position:absolute;top:0;right:0;bottom:0;width:340px;max-width:100vw;background:#171c23;color:#e7ebf0;border-left:1px solid #232a33;z-index:1600;transform:translateX(100%);transition:transform .22s ease;display:flex;flex-direction:column;font:13px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; } @@ -768,7 +767,7 @@ .rm-btn:hover { background:#9aa6ff; } .rm-btn.ghost { background:transparent;color:#a8b2bd;border:1px solid #2c343f; } .rm-btn.ghost:hover { background:#232a33;color:#e7ebf0; } -`,"research-map-side-menu"),(i,l)=>(X(),re(Be,null,[T("div",{class:Te(["rm-side-backdrop",{open:e.isOpen}]),onClick:l[0]||(l[0]=c=>o("close"))},null,2),T("aside",{class:Te(["rm-side-drawer",{open:e.isOpen}]),role:"dialog","aria-label":"Research map controls"},[T("header",ax,[l[5]||(l[5]=T("h3",{class:"rm-side-title"},"Research controls",-1)),T("button",{class:"rm-side-close","aria-label":"Close",onClick:l[1]||(l[1]=c=>o("close"))},"×")]),T("div",rx,[T("div",sx,[l[7]||(l[7]=T("h4",null,"Clustering",-1)),T("div",ix,[(X(),re(Be,null,At(a,c=>T("button",{key:c.id,class:Te(["rm-cluster-btn",{active:r.value===c.id}]),onClick:u=>r.value=c.id},[T("span",cx,ye(c.label),1),T("span",ux,ye(c.desc),1)],10,lx)),64))]),r.value!=="off"?(X(),re("div",dx,[l[6]||(l[6]=T("label",{for:"rm-pin-op"},"Pin dim",-1)),T("input",{id:"rm-pin-op",type:"range",min:"0.05",max:"1",step:"0.05",value:s.value,onInput:l[2]||(l[2]=c=>s.value=c.target.value)},null,40,gx),T("span",px,ye(Math.round(s.value*100))+"%",1)])):ve("",!0)]),T("div",fx,[l[8]||(l[8]=T("h4",null,"Filters",-1)),Ro(i.$slots,"default")])]),T("footer",hx,[T("button",{class:"rm-btn",onClick:l[3]||(l[3]=c=>o("open-poster"))},"Export poster…"),T("button",{class:"rm-btn ghost",onClick:l[4]||(l[4]=c=>o("reload-map"))},"Reload data")])],2)],64))}},bx={class:"rm-filter"},yx={class:"field"},vx={class:"rm-pop-row"},_x=["value"],kx=["value"],wx={class:"field"},xx=["value"],Sx={class:"field"},Ax=["value"],Lx={class:"field"},Cx={class:"rm-chips"},$x={key:0,class:"rm-empty"},Ex=["onClick"],Tx={class:"field"},Px={class:"rm-chips"},Nx={key:0,class:"rm-empty"},Ix=["onClick"],Mx={class:"rm-filter-footer"},Fx={class:"rm-pill"},Rx={__name:"ResearchMapFilterPanel",setup(e){const t=Pe("mapStore"),o=Pe("dataStore"),n={populationMin:null,populationMax:null,engagement:"any",adoption:"any",languages:[],religions:[]};t&&!t.filters&&(t.filters={...n});const a=te({get:()=>{var d;return((d=t==null?void 0:t.filters)==null?void 0:d.populationMin)??""},set:d=>{t.filters.populationMin=d===""?null:Number(d)}}),r=te({get:()=>{var d;return((d=t==null?void 0:t.filters)==null?void 0:d.populationMax)??""},set:d=>{t.filters.populationMax=d===""?null:Number(d)}}),s=te({get:()=>{var d;return((d=t==null?void 0:t.filters)==null?void 0:d.engagement)??"any"},set:d=>{t.filters.engagement=d}}),i=te({get:()=>{var d;return((d=t==null?void 0:t.filters)==null?void 0:d.adoption)??"any"},set:d=>{t.filters.adoption=d}}),l=te(()=>(o==null?void 0:o.facets)??{}),c=te(()=>{var d;return((d=l.value)==null?void 0:d.languages)??[]}),u=te(()=>{var d;return((d=l.value)==null?void 0:d.religions)??[]});function p(d){const _=t.filters.languages??[],L=_.indexOf(d);L===-1?_.push(d):_.splice(L,1),t.filters.languages=[..._]}function h(d){const _=t.filters.religions??[],L=_.indexOf(d);L===-1?_.push(d):_.splice(L,1),t.filters.religions=[..._]}const x=ue(""),w=ue(""),f=te(()=>{const d=x.value.trim().toLowerCase();return d?c.value.filter(_=>_.toLowerCase().includes(d)):c.value}),b=te(()=>{const d=w.value.trim().toLowerCase();return d?u.value.filter(_=>_.toLowerCase().includes(d)):u.value});function y(d){var _;return(((_=t==null?void 0:t.filters)==null?void 0:_.languages)??[]).includes(d)}function v(d){var _;return(((_=t==null?void 0:t.filters)==null?void 0:_.religions)??[]).includes(d)}function g(){t&&(t.filters={...n,languages:[],religions:[]})}const m=te(()=>{var L,O;const d=(t==null?void 0:t.filters)??{};let _=0;return d.populationMin!=null&&_++,d.populationMax!=null&&_++,d.engagement&&d.engagement!=="any"&&_++,d.adoption&&d.adoption!=="any"&&_++,(L=d.languages)!=null&&L.length&&_++,(O=d.religions)!=null&&O.length&&_++,_});return yt(` +`,"research-map-side-menu"),(i,l)=>(X(),re(Be,null,[T("div",{class:Te(["rm-side-backdrop",{open:e.isOpen}]),onClick:l[0]||(l[0]=c=>o("close"))},null,2),T("aside",{class:Te(["rm-side-drawer",{open:e.isOpen}]),role:"dialog","aria-label":"Research map controls"},[T("header",uw,[l[5]||(l[5]=T("h3",{class:"rm-side-title"},"Research controls",-1)),T("button",{class:"rm-side-close","aria-label":"Close",onClick:l[1]||(l[1]=c=>o("close"))},"×")]),T("div",dw,[T("div",pw,[l[7]||(l[7]=T("h4",null,"Clustering",-1)),T("div",gw,[(X(),re(Be,null,At(a,c=>T("button",{key:c.id,class:Te(["rm-cluster-btn",{active:r.value===c.id}]),onClick:u=>r.value=c.id},[T("span",hw,ye(c.label),1),T("span",mw,ye(c.desc),1)],10,fw)),64))]),r.value!=="off"?(X(),re("div",bw,[l[6]||(l[6]=T("label",{for:"rm-pin-op"},"Pin dim",-1)),T("input",{id:"rm-pin-op",type:"range",min:"0.05",max:"1",step:"0.05",value:s.value,onInput:l[2]||(l[2]=c=>s.value=c.target.value)},null,40,yw),T("span",vw,ye(Math.round(s.value*100))+"%",1)])):ve("",!0)]),T("div",_w,[l[8]||(l[8]=T("h4",null,"Filters",-1)),Ro(i.$slots,"default")])]),T("footer",kw,[T("button",{class:"rm-btn",onClick:l[3]||(l[3]=c=>o("open-poster"))},"Export poster…"),T("button",{class:"rm-btn ghost",onClick:l[4]||(l[4]=c=>o("reload-map"))},"Reload data")])],2)],64))}},ww={class:"rm-filter"},Sw={class:"field"},Aw={class:"rm-pop-row"},Lw=["value"],Cw=["value"],$w={class:"field"},Ew=["value"],Tw={class:"field"},Pw=["value"],Nw={class:"field"},Iw={class:"rm-chips"},Mw={key:0,class:"rm-empty"},Fw=["onClick"],Rw={class:"field"},Dw={class:"rm-chips"},Ow={key:0,class:"rm-empty"},Bw=["onClick"],jw={class:"rm-filter-footer"},zw={class:"rm-pill"},Uw={__name:"ResearchMapFilterPanel",setup(e){const t=Pe("mapStore"),o=Pe("dataStore"),n={populationMin:null,populationMax:null,engagement:"any",adoption:"any",languages:[],religions:[]};t&&!t.filters&&(t.filters={...n});const a=te({get:()=>{var d;return((d=t==null?void 0:t.filters)==null?void 0:d.populationMin)??""},set:d=>{t.filters.populationMin=d===""?null:Number(d)}}),r=te({get:()=>{var d;return((d=t==null?void 0:t.filters)==null?void 0:d.populationMax)??""},set:d=>{t.filters.populationMax=d===""?null:Number(d)}}),s=te({get:()=>{var d;return((d=t==null?void 0:t.filters)==null?void 0:d.engagement)??"any"},set:d=>{t.filters.engagement=d}}),i=te({get:()=>{var d;return((d=t==null?void 0:t.filters)==null?void 0:d.adoption)??"any"},set:d=>{t.filters.adoption=d}}),l=te(()=>(o==null?void 0:o.facets)??{}),c=te(()=>{var d;return((d=l.value)==null?void 0:d.languages)??[]}),u=te(()=>{var d;return((d=l.value)==null?void 0:d.religions)??[]});function g(d){const _=t.filters.languages??[],L=_.indexOf(d);L===-1?_.push(d):_.splice(L,1),t.filters.languages=[..._]}function h(d){const _=t.filters.religions??[],L=_.indexOf(d);L===-1?_.push(d):_.splice(L,1),t.filters.religions=[..._]}const w=ue(""),x=ue(""),f=te(()=>{const d=w.value.trim().toLowerCase();return d?c.value.filter(_=>_.toLowerCase().includes(d)):c.value}),b=te(()=>{const d=x.value.trim().toLowerCase();return d?u.value.filter(_=>_.toLowerCase().includes(d)):u.value});function y(d){var _;return(((_=t==null?void 0:t.filters)==null?void 0:_.languages)??[]).includes(d)}function v(d){var _;return(((_=t==null?void 0:t.filters)==null?void 0:_.religions)??[]).includes(d)}function p(){t&&(t.filters={...n,languages:[],religions:[]})}const m=te(()=>{var L,O;const d=(t==null?void 0:t.filters)??{};let _=0;return d.populationMin!=null&&_++,d.populationMax!=null&&_++,d.engagement&&d.engagement!=="any"&&_++,d.adoption&&d.adoption!=="any"&&_++,(L=d.languages)!=null&&L.length&&_++,(O=d.religions)!=null&&O.length&&_++,_});return yt(` .rm-filter { display:flex;flex-direction:column;gap:14px;font:12px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#e7ebf0; } .rm-filter .row { display:flex;align-items:center;gap:8px; } .rm-filter label { font-size:11px;color:#a8b2bd;letter-spacing:.04em;text-transform:uppercase;font-weight:600; } @@ -789,7 +788,7 @@ .rm-pill { background:rgba(124,140,248,0.12);color:#a8b8ff;padding:2px 8px;border-radius:11px;font-size:11px;font-weight:600; } .rm-link-btn { background:none;border:none;color:#7c8cf8;cursor:pointer;font-size:11px;padding:0; } .rm-link-btn:hover { text-decoration:underline; } -`,"research-map-filter-panel"),(d,_)=>(X(),re("div",bx,[T("div",yx,[_[6]||(_[6]=T("label",null,"Population",-1)),T("div",vx,[T("input",{type:"number",min:"0",placeholder:"min",value:a.value,onInput:_[0]||(_[0]=L=>a.value=L.target.value)},null,40,_x),T("input",{type:"number",min:"0",placeholder:"max",value:r.value,onInput:_[1]||(_[1]=L=>r.value=L.target.value)},null,40,kx)])]),T("div",wx,[_[8]||(_[8]=T("label",null,"Engagement",-1)),T("select",{value:s.value,onChange:_[2]||(_[2]=L=>s.value=L.target.value)},[..._[7]||(_[7]=[T("option",{value:"any"},"Any",-1),T("option",{value:"engaged"},"Engaged",-1),T("option",{value:"unengaged"},"Unengaged",-1)])],40,xx)]),T("div",Sx,[_[10]||(_[10]=T("label",null,"Adoption",-1)),T("select",{value:i.value,onChange:_[3]||(_[3]=L=>i.value=L.target.value)},[..._[9]||(_[9]=[T("option",{value:"any"},"Any",-1),T("option",{value:"adopted"},"Adopted",-1),T("option",{value:"unadopted"},"Unadopted",-1)])],40,Ax)]),T("div",Lx,[_[11]||(_[11]=T("label",null,"Language",-1)),Wt(T("input",{type:"search","onUpdate:modelValue":_[4]||(_[4]=L=>x.value=L),placeholder:"Search languages…"},null,512),[[Hr,x.value]]),T("div",Cx,[f.value.length?ve("",!0):(X(),re("span",$x,"No languages loaded yet")),(X(!0),re(Be,null,At(f.value,L=>(X(),re("button",{key:L,class:Te(["rm-chip",{active:y(L)}]),onClick:O=>p(L)},ye(L),11,Ex))),128))])]),T("div",Tx,[_[12]||(_[12]=T("label",null,"Religion",-1)),Wt(T("input",{type:"search","onUpdate:modelValue":_[5]||(_[5]=L=>w.value=L),placeholder:"Search religions…"},null,512),[[Hr,w.value]]),T("div",Px,[b.value.length?ve("",!0):(X(),re("span",Nx,"No religions loaded yet")),(X(!0),re(Be,null,At(b.value,L=>(X(),re("button",{key:L,class:Te(["rm-chip",{active:v(L)}]),onClick:O=>h(L)},ye(L),11,Ix))),128))])]),T("div",Mx,[T("span",Fx,ye(m.value)+" active",1),T("button",{class:"rm-link-btn",onClick:g},"Reset all")])]))}},yp="pplrInstance";function Dx(e){return{instanceId:e,selection:ue(null),activeTab:ue(0),isSearching:ue(!1),geocoderText:ue(""),pinDetail:ue(null),theme:ue("dark")}}function Ox(e){kt(yp,e)}function Bx(){return Pe(yp,null)}const jx=["data-theme"],Ux={class:"stl-inner"},zx={class:"stl-tb-caret-slot"},Gx=["title"],Kx={class:"stl-tb-eyebrow"},Hx=["title","aria-label"],Vx=["title"],qx={key:2,class:"stl-tb-title"},Wx={key:0,class:"stl-tabs-wrap"},Yx={class:"stl-tabs"},Xx=["onClick"],Jx=["title","onClick"],Zx={key:0,class:"stl-info-pop"},Qx={class:"stl-col-hdr"},eS={class:"stl-hdr-name"},tS=["title"],oS={key:0,class:"stl-sort-arrow"},nS=["title"],aS={key:0,class:"stl-sort-arrow"},rS=["data-stl-node-id","onClick"],sS=["onClick"],iS={key:1,class:"stl-caret-sp"},lS={key:3,class:"stl-dot-sp"},cS={class:"stl-name"},uS={key:4,class:"stl-num"},dS={key:5,class:"stl-num"},gS={class:"stl-x-slot"},pS={key:0,class:"stl-empty stl-loading"},fS={key:1,class:"stl-empty"},hS={key:2,class:"stl-empty"},mS={key:3,class:"stl-overflow"},bS=["data-theme"],yS={class:"stl-reopen-label"},vp=Rt({__name:"SemanticTreeLegend",props:{nodes:{type:Array,default:()=>[]},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columns:{type:Array,default:()=>["count","pop"]},title:{type:String,default:"Legend"},hideTabs:{type:Boolean,default:!1},columnLabel:{type:String,default:""},open:{type:Boolean,default:null},exportEnabled:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["select","update:open","export"],setup(e,{emit:t}){const{t:o,te:n}=ht();function a(N){const W="tabs."+((N==null?void 0:N.i18nKey)||(N==null?void 0:N.id));return N&&n(W)?o(W):(N==null?void 0:N.label)??""}const r=e,s=t,i=Bx(),l=Pe("legendProgress",null),c=te(()=>r.progress??de(l)??null),u=te(()=>c.value?o("legend.progress.title"):r.title),p=te(()=>((i==null?void 0:i.theme.value)||"dark")==="dark");function h(N,W){var ge;for(const be of N||[]){if((be==null?void 0:be.id)===W)return be;const Le=(ge=be==null?void 0:be.children)!=null&&ge.length?h(be.children,W):null;if(Le)return Le}return null}function x(N){const W=h(g.value,N);W&&ee(W)}function w(N,W=0){return N!=null&&N.length?Math.max(...N.map(ge=>w(ge.children??[],W+1))):W}function f(N,W,ge=0){return ge===W?N.slice():N.flatMap(be=>f(be.children??[],W,ge+1))}function b(N,W,ge=[]){var be;for(const Le of N){if(Le.id===W)return ge;if((be=Le.children)!=null&&be.length){const Oe=b(Le.children,W,[...ge,Le]);if(Oe)return Oe}}return null}function y(N,W=new Set){var ge;if(!((ge=N==null?void 0:N.children)!=null&&ge.length))return W;for(const be of N.children)W.add(be.id),y(be,W);return W}function v(N,W="root"){var be;if(!Array.isArray(N))return[];const ge=[];for(const Le of N){if(!Le||typeof Le!="object"){try{console.warn("[SemanticTreeLegend] dropped null node under",W)}catch{}continue}ge.push((be=Le.children)!=null&&be.length?{...Le,children:v(Le.children,Le.label||Le.id||W)}:Le)}return ge}const g=te(()=>v(r.nodes)),m=te(()=>w(g.value)),d=te(()=>{const N=r.tabs??[],W=N.length||m.value+1;return Array.from({length:W},(ge,be)=>N[be]??{id:`gen${be+1}`,label:`Generation ${be+1}`})}),_=ue(Math.max(0,r.defaultTab|0)),L=ue(new Set),O=ue(null),S=ue(r.open!==null?r.open:!0),z=ue(null),G=ue(!1),j=ue(null),M=ue("desc"),E=te({get:()=>r.hideTabs?0:i?i.activeTab.value:_.value,set:N=>{r.hideTabs||(i?i.activeTab.value=N:_.value=N)}}),C=te({get:()=>i?i.selection.value:O.value,set:N=>{i?i.selection.value=N:O.value=N}}),P=te(()=>{var N;return((N=C.value)==null?void 0:N.id)||null}),F=ue(null);Re(()=>r.open,N=>{N!==null&&(S.value=N)}),Re(()=>g.value,()=>{const N=i==null?void 0:i.activeTab.value,W=Math.min(Math.max(0,r.defaultTab|0),Math.max(0,d.value.length-1));E.value=typeof N=="number"&&N>=0?N:W,L.value=new Set,C.value=null,s("select",null)},{deep:!1});let q=null;i&&Re(()=>i.selection.value,N=>{if((N==null?void 0:N.id)===q)return;if(!N){q=null;return}q=N.id;const W=b(g.value,N.id)||[];typeof N.depth=="number"&&(E.value=Math.min(N.depth,d.value.length-1));const ge=new Set;W.forEach(be=>ge.add(be.id)),L.value=ge,s("select",N)});function se(N,W){const ge=(W.pop??0)-(N.pop??0);return ge!==0?ge:(W.count??0)-(N.count??0)}const Z=te(()=>{if(!j.value)return se;const N=j.value,W=M.value==="asc"?1:-1;return(ge,be)=>((ge[N]??0)-(be[N]??0))*W});function oe(N){j.value===N?M.value==="desc"?M.value="asc":(j.value=null,M.value="desc"):(j.value=N,M.value="desc")}const H=ue([]),fe=ue(!1);let Ae=-1;function we(N){if(H.value[N]){fe.value=!1;return}fe.value=!0,Ae=N,setTimeout(()=>{if(Ae!==N)return;const W=[...f(g.value,N)].sort(Z.value),ge=[...H.value];ge[N]=W,H.value=ge,fe.value=!1},0)}Re(E,N=>we(N),{immediate:!0}),Re(()=>[g.value,j.value,M.value],()=>{H.value=[],we(E.value)},{deep:!1});const Ce=te(()=>H.value[E.value]||[]),ce=te(()=>{var W;const N=(W=d.value[E.value])==null?void 0:W.topLimit;return N?Ce.value.slice(0,N):Ce.value}),le=te(()=>{var W;const N=(W=d.value[E.value])==null?void 0:W.topLimit;return N?Math.max(0,Ce.value.length-N):0});function _e(N,W,ge,be,Le){var Oe;for(const Ie of W)Ie&&(N.push({node:Ie,relDepth:ge,parent:be,ancestors:Le}),L.value.has(Ie.id)&&((Oe=Ie.children)!=null&&Oe.length)&&_e(N,[...Ie.children].sort(Z.value),ge+1,Ie,[...Le,Ie]))}const he=te(()=>{const N=[];_e(N,ce.value,0,null,[]);for(let W=0;WLe+1&&Ke.ancestors[Le]}if(Le===ge.relDepth-1){let ct=!1;for(let Ke=W+1;KeP.value!==null),$=te(()=>r.columns.includes("count")),U=te(()=>r.columns.includes("pop")),R=te(()=>C.value?y(C.value):new Set),K=te(()=>{var Oe;const N=C.value;if(!N)return null;const W=b(g.value,N.id);if(!W||!W.length)return null;const ge=W[W.length-1],be=W.length-1,Le=((Oe=d.value[be])==null?void 0:Oe.label)||"Parent";return{node:ge,tabName:Le,depth:be}});function ee(N){P.value===N.id?(q=null,C.value=null,s("select",null)):(q=N.id,C.value=N,s("select",N))}function D(N,W){W==null||W.stopPropagation();const ge=new Set(L.value),be=ge.has(N);if(be?ge.delete(N):ge.add(N),L.value=ge,be&&C.value){const Le=b(g.value,C.value.id);Le&&Le.some(Oe=>Oe.id===N)&&(q=null,C.value=null,s("select",null))}}function ne(){const N=K.value;N!=null&&N.node&&(!r.hideTabs&&typeof N.depth=="number"&&(E.value=N.depth),L.value=new Set,ee(N.node))}function ae(N){if(E.value===N){z.value=z.value===N?null:N;return}E.value=N,L.value=new Set,q=null,C.value=null,z.value=null,s("select",null)}function k(N){N==null||N.stopPropagation(),q=null,C.value=null,s("select",null)}function A(N,W){W==null||W.stopPropagation(),z.value=z.value===N?null:N}Re(P,N=>{N||(G.value=!1)});function V(N){let W=N.parentElement;for(;W;){const ge=getComputedStyle(W).overflowY;if((ge==="auto"||ge==="scroll")&&W.scrollHeight>W.clientHeight+1){const be=N.getBoundingClientRect(),Le=W.getBoundingClientRect();W.scrollTop+=be.top-Le.top-8}W=W.parentElement}}let Q=0;Re(P,async N=>{if(!N)return;const W=++Q,ge=F.value;if(!ge)return;await Ut();const be=(Le=0)=>{if(W!==Q)return;const Oe=ge.querySelector(`[data-stl-node-id="${CSS.escape(String(N))}"]`);Oe&&V(Oe),Le<6&&setTimeout(()=>be(Le+1),70)};be(0)});function me(N){return N?N>=1e6?(N/1e6).toFixed(1)+"M":N>=1e3?Math.round(N/1e3)+"k":N.toLocaleString():"—"}function pe(N){return N!=null?N.toLocaleString():"—"}function J(N){var W;return{selected:P.value===N.node.id,descendant:xe.value&&R.value.has(N.node.id),child:N.relDepth>0,leaf:!((W=N.node.children)!=null&&W.length)}}return yt(` +`,"research-map-filter-panel"),(d,_)=>(X(),re("div",ww,[T("div",Sw,[_[6]||(_[6]=T("label",null,"Population",-1)),T("div",Aw,[T("input",{type:"number",min:"0",placeholder:"min",value:a.value,onInput:_[0]||(_[0]=L=>a.value=L.target.value)},null,40,Lw),T("input",{type:"number",min:"0",placeholder:"max",value:r.value,onInput:_[1]||(_[1]=L=>r.value=L.target.value)},null,40,Cw)])]),T("div",$w,[_[8]||(_[8]=T("label",null,"Engagement",-1)),T("select",{value:s.value,onChange:_[2]||(_[2]=L=>s.value=L.target.value)},[..._[7]||(_[7]=[T("option",{value:"any"},"Any",-1),T("option",{value:"engaged"},"Engaged",-1),T("option",{value:"unengaged"},"Unengaged",-1)])],40,Ew)]),T("div",Tw,[_[10]||(_[10]=T("label",null,"Adoption",-1)),T("select",{value:i.value,onChange:_[3]||(_[3]=L=>i.value=L.target.value)},[..._[9]||(_[9]=[T("option",{value:"any"},"Any",-1),T("option",{value:"adopted"},"Adopted",-1),T("option",{value:"unadopted"},"Unadopted",-1)])],40,Pw)]),T("div",Nw,[_[11]||(_[11]=T("label",null,"Language",-1)),Wt(T("input",{type:"search","onUpdate:modelValue":_[4]||(_[4]=L=>w.value=L),placeholder:"Search languages…"},null,512),[[Hr,w.value]]),T("div",Iw,[f.value.length?ve("",!0):(X(),re("span",Mw,"No languages loaded yet")),(X(!0),re(Be,null,At(f.value,L=>(X(),re("button",{key:L,class:Te(["rm-chip",{active:y(L)}]),onClick:O=>g(L)},ye(L),11,Fw))),128))])]),T("div",Rw,[_[12]||(_[12]=T("label",null,"Religion",-1)),Wt(T("input",{type:"search","onUpdate:modelValue":_[5]||(_[5]=L=>x.value=L),placeholder:"Search religions…"},null,512),[[Hr,x.value]]),T("div",Dw,[b.value.length?ve("",!0):(X(),re("span",Ow,"No religions loaded yet")),(X(!0),re(Be,null,At(b.value,L=>(X(),re("button",{key:L,class:Te(["rm-chip",{active:v(L)}]),onClick:O=>h(L)},ye(L),11,Bw))),128))])]),T("div",jw,[T("span",zw,ye(m.value)+" active",1),T("button",{class:"rm-link-btn",onClick:p},"Reset all")])]))}},yg="pplrInstance";function Gw(e){return{instanceId:e,selection:ue(null),activeTab:ue(0),isSearching:ue(!1),geocoderText:ue(""),pinDetail:ue(null),theme:ue("dark")}}function Kw(e){kt(yg,e)}function Hw(){return Pe(yg,null)}const Vw="",qw=["data-theme"],Ww={class:"stl-inner"},Yw={class:"stl-tb-caret-slot"},Xw=["title"],Jw={class:"stl-tb-eyebrow"},Zw=["title","aria-label"],Qw=["title"],eS={key:2,class:"stl-tb-title"},tS={key:0,class:"stl-tabs-wrap"},oS={class:"stl-tabs"},nS=["onClick"],aS=["title","onClick"],rS={key:0,class:"stl-info-pop"},sS={class:"stl-col-hdr"},iS={class:"stl-hdr-name"},lS=["title"],cS={key:0,class:"stl-sort-arrow"},uS=["title"],dS={key:0,class:"stl-sort-arrow"},pS=["data-stl-node-id","onClick"],gS=["onClick"],fS={key:1,class:"stl-caret-sp"},hS={key:3,class:"stl-dot-sp"},mS={class:"stl-name"},bS={key:4,class:"stl-num"},yS={key:5,class:"stl-num"},vS={class:"stl-x-slot"},_S={key:0,class:"stl-empty stl-loading"},kS={key:1,class:"stl-empty"},xS={key:2,class:"stl-empty"},wS={key:3,class:"stl-overflow"},SS=["data-theme"],AS={class:"stl-reopen-label"},vg=Rt({__name:"SemanticTreeLegend",props:{nodes:{type:Array,default:()=>[]},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columns:{type:Array,default:()=>["count","pop"]},title:{type:String,default:"Legend"},hideTabs:{type:Boolean,default:!1},columnLabel:{type:String,default:""},open:{type:Boolean,default:null},exportEnabled:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["select","update:open","export"],setup(e,{emit:t}){const{t:o,te:n}=ht();function a(N){const W="tabs."+((N==null?void 0:N.i18nKey)||(N==null?void 0:N.id));return N&&n(W)?o(W):(N==null?void 0:N.label)??""}const r=e,s=t,i=Hw(),l=Pe("legendProgress",null),c=te(()=>r.progress??de(l)??null),u=te(()=>c.value?o("legend.progress.title"):r.title),g=te(()=>((i==null?void 0:i.theme.value)||"dark")==="dark");function h(N,W){var pe;for(const be of N||[]){if((be==null?void 0:be.id)===W)return be;const Le=(pe=be==null?void 0:be.children)!=null&&pe.length?h(be.children,W):null;if(Le)return Le}return null}function w(N){const W=h(p.value,N);W&&ee(W)}function x(N,W=0){return N!=null&&N.length?Math.max(...N.map(pe=>x(pe.children??[],W+1))):W}function f(N,W,pe=0){return pe===W?N.slice():N.flatMap(be=>f(be.children??[],W,pe+1))}function b(N,W,pe=[]){var be;for(const Le of N){if(Le.id===W)return pe;if((be=Le.children)!=null&&be.length){const Oe=b(Le.children,W,[...pe,Le]);if(Oe)return Oe}}return null}function y(N,W=new Set){var pe;if(!((pe=N==null?void 0:N.children)!=null&&pe.length))return W;for(const be of N.children)W.add(be.id),y(be,W);return W}function v(N,W="root"){var be;if(!Array.isArray(N))return[];const pe=[];for(const Le of N){if(!Le||typeof Le!="object"){try{console.warn("[SemanticTreeLegend] dropped null node under",W)}catch{}continue}pe.push((be=Le.children)!=null&&be.length?{...Le,children:v(Le.children,Le.label||Le.id||W)}:Le)}return pe}const p=te(()=>v(r.nodes)),m=te(()=>x(p.value)),d=te(()=>{const N=r.tabs??[],W=N.length||m.value+1;return Array.from({length:W},(pe,be)=>N[be]??{id:`gen${be+1}`,label:`Generation ${be+1}`})}),_=ue(Math.max(0,r.defaultTab|0)),L=ue(new Set),O=ue(null),S=ue(r.open!==null?r.open:!0),U=ue(null),G=ue(!1),j=ue(null),M=ue("desc"),E=te({get:()=>r.hideTabs?0:i?i.activeTab.value:_.value,set:N=>{r.hideTabs||(i?i.activeTab.value=N:_.value=N)}}),C=te({get:()=>i?i.selection.value:O.value,set:N=>{i?i.selection.value=N:O.value=N}}),P=te(()=>{var N;return((N=C.value)==null?void 0:N.id)||null}),F=ue(null);Re(()=>r.open,N=>{N!==null&&(S.value=N)}),Re(()=>p.value,()=>{const N=i==null?void 0:i.activeTab.value,W=Math.min(Math.max(0,r.defaultTab|0),Math.max(0,d.value.length-1));E.value=typeof N=="number"&&N>=0?N:W,L.value=new Set,C.value=null,s("select",null)},{deep:!1});let q=null;i&&Re(()=>i.selection.value,N=>{if((N==null?void 0:N.id)===q)return;if(!N){q=null;return}q=N.id;const W=b(p.value,N.id)||[];typeof N.depth=="number"&&(E.value=Math.min(N.depth,d.value.length-1));const pe=new Set;W.forEach(be=>pe.add(be.id)),L.value=pe,s("select",N)});function se(N,W){const pe=(W.pop??0)-(N.pop??0);return pe!==0?pe:(W.count??0)-(N.count??0)}const Z=te(()=>{if(!j.value)return se;const N=j.value,W=M.value==="asc"?1:-1;return(pe,be)=>((pe[N]??0)-(be[N]??0))*W});function oe(N){j.value===N?M.value==="desc"?M.value="asc":(j.value=null,M.value="desc"):(j.value=N,M.value="desc")}const H=ue([]),fe=ue(!1);let Ae=-1;function xe(N){if(H.value[N]){fe.value=!1;return}fe.value=!0,Ae=N,setTimeout(()=>{if(Ae!==N)return;const W=[...f(p.value,N)].sort(Z.value),pe=[...H.value];pe[N]=W,H.value=pe,fe.value=!1},0)}Re(E,N=>xe(N),{immediate:!0}),Re(()=>[p.value,j.value,M.value],()=>{H.value=[],xe(E.value)},{deep:!1});const Ce=te(()=>H.value[E.value]||[]),ce=te(()=>{var W;const N=(W=d.value[E.value])==null?void 0:W.topLimit;return N?Ce.value.slice(0,N):Ce.value}),le=te(()=>{var W;const N=(W=d.value[E.value])==null?void 0:W.topLimit;return N?Math.max(0,Ce.value.length-N):0});function _e(N,W,pe,be,Le){var Oe;for(const Ie of W)Ie&&(N.push({node:Ie,relDepth:pe,parent:be,ancestors:Le}),L.value.has(Ie.id)&&((Oe=Ie.children)!=null&&Oe.length)&&_e(N,[...Ie.children].sort(Z.value),pe+1,Ie,[...Le,Ie]))}const he=te(()=>{const N=[];_e(N,ce.value,0,null,[]);for(let W=0;WLe+1&&Ke.ancestors[Le]}if(Le===pe.relDepth-1){let ct=!1;for(let Ke=W+1;KeP.value!==null),$=te(()=>r.columns.includes("count")),z=te(()=>r.columns.includes("pop")),R=te(()=>C.value?y(C.value):new Set),K=te(()=>{var Oe;const N=C.value;if(!N)return null;const W=b(p.value,N.id);if(!W||!W.length)return null;const pe=W[W.length-1],be=W.length-1,Le=((Oe=d.value[be])==null?void 0:Oe.label)||"Parent";return{node:pe,tabName:Le,depth:be}});function ee(N){P.value===N.id?(q=null,C.value=null,s("select",null)):(q=N.id,C.value=N,s("select",N))}function D(N,W){W==null||W.stopPropagation();const pe=new Set(L.value),be=pe.has(N);if(be?pe.delete(N):pe.add(N),L.value=pe,be&&C.value){const Le=b(p.value,C.value.id);Le&&Le.some(Oe=>Oe.id===N)&&(q=null,C.value=null,s("select",null))}}function ne(){const N=K.value;N!=null&&N.node&&(!r.hideTabs&&typeof N.depth=="number"&&(E.value=N.depth),L.value=new Set,ee(N.node))}function ae(N){if(E.value===N){U.value=U.value===N?null:N;return}E.value=N,L.value=new Set,q=null,C.value=null,U.value=null,s("select",null)}function k(N){N==null||N.stopPropagation(),q=null,C.value=null,s("select",null)}function A(N,W){W==null||W.stopPropagation(),U.value=U.value===N?null:N}Re(P,N=>{N||(G.value=!1)});function V(N){let W=N.parentElement;for(;W;){const pe=getComputedStyle(W).overflowY;if((pe==="auto"||pe==="scroll")&&W.scrollHeight>W.clientHeight+1){const be=N.getBoundingClientRect(),Le=W.getBoundingClientRect();W.scrollTop+=be.top-Le.top-8}W=W.parentElement}}let Q=0;Re(P,async N=>{if(!N)return;const W=++Q,pe=F.value;if(!pe)return;await zt();const be=(Le=0)=>{if(W!==Q)return;const Oe=pe.querySelector(`[data-stl-node-id="${CSS.escape(String(N))}"]`);Oe&&V(Oe),Le<6&&setTimeout(()=>be(Le+1),70)};be(0)});function me(N){return N?N>=1e6?(N/1e6).toFixed(1)+"M":N>=1e3?Math.round(N/1e3)+"k":N.toLocaleString():"—"}function ge(N){return N!=null?N.toLocaleString():"—"}function J(N){var W;return{selected:P.value===N.node.id,descendant:we.value&&R.value.has(N.node.id),child:N.relDepth>0,leaf:!((W=N.node.children)!=null&&W.length)}}return yt(` .stl-inner { --stl-pad-x: 10px; --stl-gap: 6px; @@ -1241,7 +1240,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"),(N,W)=>{var ge,be,Le,Oe;return X(),re(Be,null,[T("div",{class:Te(["stl-panel",{closed:!S.value,"fit-content":e.hideTabs}]),"data-theme":((ge=de(i))==null?void 0:ge.theme.value)||"dark"},[T("div",Ux,[T("div",{class:Te(["stl-titlebar",{"has-progress":!!c.value}])},[T("span",zx,[Ro(N.$slots,"title-caret",{},void 0,!0)]),N.$slots["title-caret"]?ve("",!0):(X(),re("button",{key:0,class:Te(["stl-collapse-btn",{closed:!S.value}]),title:S.value?"Collapse legend":"Expand legend",onClick:W[0]||(W[0]=Ie=>{S.value=!S.value,s("update:open",S.value)})},[...W[8]||(W[8]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,Gx)),K.value&&C.value?(X(),re(Be,{key:1},[T("span",Kx,ye(K.value.tabName),1),T("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:pt(ne,["stop"])},[W[9]||(W[9]=T("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[T("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?(X(),re("span",{key:0,class:"stl-tb-dot",style:Xe({background:K.value.node.color})},null,4)):ve("",!0),T("span",{class:"stl-tb-text",title:K.value.node.label},ye(K.value.node.label),9,Vx)],8,Hx)],64)):(X(),re("span",qx,ye(u.value),1)),ve("",!0),c.value?(X(),Ge(up,{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":pe,onSelectSegment:x},null,8,["covered","total","segments","is-dark"])):ve("",!0)],2),e.hideTabs?ve("",!0):(X(),re("div",Wx,[T("div",Yx,[(X(!0),re(Be,null,At(d.value,(Ie,ct)=>(X(),re("div",{key:Ie.id,class:Te(["stl-tab-chip",{active:E.value===ct}])},[T("button",{class:"stl-tab",onClick:Ke=>ae(ct)},ye(a(Ie)),9,Xx),Ie.info?(X(),re("button",{key:0,class:"stl-tab-info",title:Ie.info,onClick:Ke=>A(ct,Ke)},"i",8,Jx)):ve("",!0)],2))),128))]),z.value!==null&&((be=d.value[z.value])!=null&&be.info)?(X(),re("div",Zx,ye(d.value[z.value].info),1)):ve("",!0)])),T("div",Qx,[W[13]||(W[13]=T("span",{class:"stl-caret-sp"},null,-1)),W[14]||(W[14]=T("span",{class:"stl-dot-sp"},null,-1)),T("span",eS,ye(e.columnLabel||(e.hideTabs?e.title:a(d.value[E.value])||de(o)("legend.columns.name"))),1),$.value?(X(),re("button",{key:0,class:Te(["stl-hdr-num",{active:j.value==="count"}]),title:de(o)("legend.sortByUpgs"),onClick:W[4]||(W[4]=Ie=>oe("count"))},[gt(ye(de(o)("legend.columns.upgs"))+" ",1),j.value==="count"?(X(),re("span",oS,ye(M.value==="desc"?"▼":"▲"),1)):ve("",!0)],10,tS)):ve("",!0),U.value?(X(),re("button",{key:1,class:Te(["stl-hdr-num",{active:j.value==="pop"}]),title:de(o)("legend.sortByPop"),onClick:W[5]||(W[5]=Ie=>oe("pop"))},[gt(ye(de(o)("legend.columns.population"))+" ",1),j.value==="pop"?(X(),re("span",aS,ye(M.value==="desc"?"▼":"▲"),1)):ve("",!0)],10,nS)):ve("",!0),W[15]||(W[15]=T("span",{class:"stl-x-slot"},null,-1))]),T("div",{class:Te(["stl-rows",{"has-sel":xe.value}]),ref_key:"rowsContainer",ref:F},[(X(!0),re(Be,null,At(he.value,Ie=>{var ct,Ke;return X(),re("div",{key:Ie.node.id,class:Te(["stl-row",J(Ie)]),"data-stl-node-id":Ie.node.id,style:Xe({"--trunk-color":((ct=Ie.parent)==null?void 0:ct.color)||"#6e7681","--row-color":Ie.node.color||"#73A17F"}),onClick:et=>ee(Ie.node)},[(X(!0),re(Be,null,At(Ie.trunks,(et,Pn)=>(X(),re("span",{key:`tr${Pn}`,class:Te(["stl-trunk",`stl-trunk-${et}`])},null,2))),128)),(Ke=Ie.node.children)!=null&&Ke.length?(X(),re("button",{key:0,class:Te(["stl-caret",{open:L.value.has(Ie.node.id)}]),onClick:pt(et=>D(Ie.node.id,et),["stop"])},[...W[16]||(W[16]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,sS)):(X(),re("span",iS)),Ie.node.color?(X(),re("span",{key:2,class:"stl-dot",style:Xe({background:Ie.node.color})},null,4)):(X(),re("span",lS)),T("span",cS,ye(Ie.node.label),1),$.value?(X(),re("span",uS,ye(pe(Ie.node.count)),1)):ve("",!0),U.value?(X(),re("span",dS,ye(me(Ie.node.pop)),1)):ve("",!0),T("span",gS,[P.value===Ie.node.id?(X(),re("button",{key:0,class:"stl-x-chip",title:"Clear selection",onClick:W[6]||(W[6]=pt(et=>k(et),["stop"]))},[...W[17]||(W[17]=[T("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])):ve("",!0)])],14,rS)}),128)),fe.value&&!he.value.length?(X(),re("div",pS,[W[18]||(W[18]=T("span",{class:"stl-spinner"},null,-1)),T("span",null,"Loading "+ye(((Le=d.value[E.value])==null?void 0:Le.label)||"rows")+"…",1)])):!he.value.length&&e.nodes.length===0?(X(),re("div",fS,"Loading data…")):he.value.length?ve("",!0):(X(),re("div",hS,"No data at this level")),le.value>0?(X(),re("div",mS,[gt(" Showing top "+ye(d.value[E.value].topLimit.toLocaleString())+" of "+ye(Ce.value.length.toLocaleString())+" — ",1),W[19]||(W[19]=T("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):ve("",!0)],2)])],10,jx),S.value?ve("",!0):(X(),re("button",{key:0,class:"stl-reopen","data-theme":((Oe=de(i))==null?void 0:Oe.theme.value)||"dark",title:"Expand legend",onClick:W[7]||(W[7]=Ie=>{S.value=!0,s("update:open",!0)})},[W[20]||(W[20]=T("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),T("span",yS,[C.value?(X(),re(Be,{key:0},[C.value.color?(X(),re("span",{key:0,class:"stl-reopen-dot",style:Xe({background:C.value.color})},null,4)):ve("",!0),gt(" "+ye(C.value.label),1)],64)):(X(),re(Be,{key:1},[gt(ye(u.value),1)],64))]),W[21]||(W[21]=T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,bS))],64)}}},[["__scopeId","data-v-78a7a96e"]]),vS="#6b7280";function _S(){const e=xo(Qn.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function kS(e,t){const o=_S();return e&&o[e]?o[e]:vS}function wS(e){return(e==null?void 0:e.properties)||e||{}}function Ll(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function xS(e){var t;return String(e.affinityBlock||Ll((t=e._raw)==null?void 0:t.rop1)||"").trim()}function SS(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function AS(e){var t;return String(e.cluster||Ll((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function LS(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function CS(e){var t;return String(e.peopleGroup||Ll((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function $S(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function ES(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function TS(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function PS(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function NS(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function _p(e){const t=te(()=>{const r=e&&e.value||[],s=new Map;for(const i of r){const l=wS(i),c=xS(l),u=SS(l)||c||"— Unknown —",p=AS(l),h=LS(l)||p||"— Unknown —",x=CS(l),w=$S(l)||x||"— Unknown —",f=ES(l),b=TS(l)||f,y=PS(l),v=NS(l);if(!f)continue;let g=s.get(c||"__unknown__");g||(g={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},s.set(c||"__unknown__",g)),g.count+=1,g.pop+=y,g.memberIds.push(f);let m=g.clusters.get(p||"__unknown__");m||(m={code:p,label:h,count:0,pop:0,memberIds:[],peopleGroups:new Map},g.clusters.set(p||"__unknown__",m)),m.count+=1,m.pop+=y,m.memberIds.push(f);let d=m.peopleGroups.get(x||"__unknown__");d||(d={code:x,label:w,count:0,pop:0,memberIds:[],instances:[]},m.peopleGroups.set(x||"__unknown__",d)),d.count+=1,d.pop+=y,d.memberIds.push(f),d.instances.push({id:f,name:b,country:v,pop:y})}return s}),o=r=>r&&r.length?["in",["get","uniqueId"],["literal",r]]:["==",["get","uniqueId"],"__none__"],n=te(()=>{const r=t.value,s=[];for(const i of r.values()){const l=kS(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const p={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const h of u.peopleGroups.values()){const x={id:`pg:${i.code}__${u.code}__${h.code||h.label}`,label:`${h.label} (PG)`,color:l,count:h.count,pop:h.pop,filter:o(h.memberIds),children:[]};h.instances.sort((w,f)=>f.pop-w.pop||w.country.localeCompare(f.country));for(const w of h.instances)x.children.push({id:`pgic:${w.id}`,label:`${w.country?`${w.name}, ${w.country}`:w.name} (PGIC)`,color:l,count:1,pop:w.pop,filter:["==",["get","uniqueId"],w.id],children:[]});p.children.push(x)}p.children.sort((h,x)=>x.count-h.count||x.pop-h.pop),c.children.push(p)}c.children.sort((u,p)=>p.count-u.count||p.pop-u.pop),s.push(c)}return s.sort((i,l)=>l.count-i.count||l.pop-i.pop),s});function a(r){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!r){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const s=String(r.id||""),i={kind:null,label:r.label,filterExpr:r.filter};s.startsWith("bloc:")?i.kind="bloc":s.startsWith("cluster:")?i.kind="cluster":s.startsWith("pg:")?i.kind="people-group":s.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}const IS={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},MS="#95a5a6";function FS(e){return IS[String(e||"").toLowerCase()]||MS}function RS(e){return(e==null?void 0:e.properties)||e||{}}function DS(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function OS(e){var t,o;return String(e.doxaRegion||e.wagfRegion||((o=(t=e._raw)==null?void 0:t.wagf_region)==null?void 0:o.value)||"").trim()}function BS(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_region;return String(e.wagfRegionLabel||e.doxaRegionLabel||(t&&typeof t=="object"?t.label:"")||e.doxaRegion||"").trim()}function jS(e){var t,o;return String(e.wagfBlock||((o=(t=e._raw)==null?void 0:t.wagf_block)==null?void 0:o.value)||"").trim()}function US(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_block;return String(e.wagfBlockLabel||(t&&typeof t=="object"?t.label:"")||e.wagfBlock||"").trim()}function zS(e){var t,o;return String(e.countryIso||((o=(t=e._raw)==null?void 0:t.country_code)==null?void 0:o.value)||"").trim().toUpperCase()}function GS(e){var o;const t=(o=e._raw)==null?void 0:o.country_code;return String(e.countryIsoLabel||(t&&typeof t=="object"?t.label:"")||e.countryIso||"").trim()}function kp(e){const t=te(()=>{const a=e&&e.value||[],r=new Map;for(const s of a){const i=RS(s),l=OS(i),c=BS(i)||l||"— Unknown —",u=jS(i),p=US(i)||u||"— Unknown —",h=zS(i),x=GS(i)||h||"— Unknown —",w=DS(i);if(!l||l==="na"||l==="none")continue;let f=r.get(l);if(f||(f={slug:l,label:c,count:0,pop:0,blocks:new Map},r.set(l,f)),f.count+=1,f.pop+=w,!u||u==="na")continue;let b=f.blocks.get(u);if(b||(b={slug:u,label:p,count:0,pop:0,countries:new Map},f.blocks.set(u,b)),b.count+=1,b.pop+=w,!h)continue;let y=b.countries.get(h);y||(y={iso:h,name:x,count:0,pop:0},b.countries.set(h,y)),y.count+=1,y.pop+=w}return r}),o=te(()=>{const a=t.value,r=[];for(const s of a.values()){const i=FS(s.slug),l=[],c=[],u=[...s.blocks.values()].sort((p,h)=>h.pop-p.pop||p.label.localeCompare(h.label));for(const p of u){const h=[],x=[],w=[...p.countries.values()].sort((f,b)=>b.pop-f.pop||f.name.localeCompare(b.name));for(const f of w)h.push(f.iso),l.push(f.iso),x.push({id:`country:${s.slug}__${p.slug}__${f.iso}`,label:f.name,color:i,count:f.count,pop:f.pop,filter:["==",["get","countryIso"],f.iso],isoCodes:[f.iso],children:[]});c.push({id:`block:${s.slug}__${p.slug}`,label:`${p.label} (Bloc)`,color:i,count:p.count,pop:p.pop,filter:["==",["get","wagfBlock"],p.slug],isoCodes:h,children:x})}r.push({id:`region:${s.slug}`,label:`${s.label} (Region)`,color:i,count:s.count,pop:s.pop,filter:["==",["get","doxaRegion"],s.slug],isoCodes:[...new Set(l)],children:c})}return r.sort((s,i)=>i.pop-s.pop||s.label.localeCompare(i.label)),r});function n(a){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!a){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(a.id||""),s={kind:null,label:a.label,filterExpr:a.filter};r.startsWith("region:")?s.kind="region":r.startsWith("block:")?s.kind="block":r.startsWith("country:")&&(s.kind="country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:s}))}return{aggregated:t,regionsTree:o,highlight:n}}const KS=["onClick"],HS={key:0,class:"rm-tab-sep","aria-hidden":"true"},VS={class:"rm-map-area"},qS={key:0,class:"rm-loading"},WS={key:1,class:"rm-error"},YS=["data-provider"],XS={class:"rm-legend-desktop-slot"},JS={class:"rm-legend-mobile-slot"},ZS=!0,QS=22,eA=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"research-map",setup(e){var Zp,Qp,ef,tf,of,nf,af,rf,sf;let t=null,o=null;function n(I,B){if(I!=null&&I.getLayer("language-family-pins-hitbox"))try{I.setFilter("language-family-pins-hitbox",B)}catch{}}function a(){return t||(t=eo(()=>Promise.resolve().then(()=>AA),void 0).then(I=>I.useMapPoster({sourceMap:()=>ce.value,mapboxToken:c.value,styleUrl:()=>{var B,Y,ie,Se;return((ie=(Y=(B=ce.value)==null?void 0:B.getStyle())==null?void 0:Y.sprite)==null?void 0:ie.replace(/\/sprite.*$/,""))||((Se=l==null?void 0:l.value)==null?void 0:Se.style)}}))),t}const r=Ca(()=>eo(()=>Promise.resolve().then(()=>Sp),void 0)),s=Ca(()=>eo(()=>Promise.resolve().then(()=>Hk),void 0)),i=Ca(()=>eo(()=>Promise.resolve().then(()=>rL),void 0));yt(` +`,"semantic-tree-legend"),(N,W)=>{var pe,be,Le,Oe;return X(),re(Be,null,[T("div",{class:Te(["stl-panel",{closed:!S.value,"fit-content":e.hideTabs}]),"data-theme":((pe=de(i))==null?void 0:pe.theme.value)||"dark"},[T("div",Ww,[T("div",{class:Te(["stl-titlebar",{"has-progress":!!c.value}])},[T("span",Yw,[Ro(N.$slots,"title-caret",{},void 0,!0)]),N.$slots["title-caret"]?ve("",!0):(X(),re("button",{key:0,class:Te(["stl-collapse-btn",{closed:!S.value}]),title:S.value?"Collapse legend":"Expand legend",onClick:W[0]||(W[0]=Ie=>{S.value=!S.value,s("update:open",S.value)})},[...W[8]||(W[8]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,Xw)),K.value&&C.value?(X(),re(Be,{key:1},[T("span",Jw,ye(K.value.tabName),1),T("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:gt(ne,["stop"])},[W[9]||(W[9]=T("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[T("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?(X(),re("span",{key:0,class:"stl-tb-dot",style:Xe({background:K.value.node.color})},null,4)):ve("",!0),T("span",{class:"stl-tb-text",title:K.value.node.label},ye(K.value.node.label),9,Qw)],8,Zw)],64)):(X(),re("span",eS,ye(u.value),1)),ve("",!0),c.value?(X(),Ge(ug,{key:4,class:"stl-progress","show-text":!1,covered:c.value.covered,total:c.value.total,segments:c.value.segments,"is-dark":g.value,"fmt-count":ge,onSelectSegment:w},null,8,["covered","total","segments","is-dark"])):ve("",!0)],2),e.hideTabs?ve("",!0):(X(),re("div",tS,[T("div",oS,[(X(!0),re(Be,null,At(d.value,(Ie,ct)=>(X(),re("div",{key:Ie.id,class:Te(["stl-tab-chip",{active:E.value===ct}])},[T("button",{class:"stl-tab",onClick:Ke=>ae(ct)},ye(a(Ie)),9,nS),Ie.info?(X(),re("button",{key:0,class:"stl-tab-info",title:Ie.info,onClick:Ke=>A(ct,Ke)},"i",8,aS)):ve("",!0)],2))),128))]),U.value!==null&&((be=d.value[U.value])!=null&&be.info)?(X(),re("div",rS,ye(d.value[U.value].info),1)):ve("",!0)])),T("div",sS,[W[13]||(W[13]=T("span",{class:"stl-caret-sp"},null,-1)),W[14]||(W[14]=T("span",{class:"stl-dot-sp"},null,-1)),T("span",iS,ye(e.columnLabel||(e.hideTabs?e.title:a(d.value[E.value])||de(o)("legend.columns.name"))),1),$.value?(X(),re("button",{key:0,class:Te(["stl-hdr-num",{active:j.value==="count"}]),title:de(o)("legend.sortByUpgs"),onClick:W[4]||(W[4]=Ie=>oe("count"))},[pt(ye(de(o)("legend.columns.upgs"))+" ",1),j.value==="count"?(X(),re("span",cS,ye(M.value==="desc"?"▼":"▲"),1)):ve("",!0)],10,lS)):ve("",!0),z.value?(X(),re("button",{key:1,class:Te(["stl-hdr-num",{active:j.value==="pop"}]),title:de(o)("legend.sortByPop"),onClick:W[5]||(W[5]=Ie=>oe("pop"))},[pt(ye(de(o)("legend.columns.population"))+" ",1),j.value==="pop"?(X(),re("span",dS,ye(M.value==="desc"?"▼":"▲"),1)):ve("",!0)],10,uS)):ve("",!0),W[15]||(W[15]=T("span",{class:"stl-x-slot"},null,-1))]),T("div",{class:Te(["stl-rows",{"has-sel":we.value}]),ref_key:"rowsContainer",ref:F},[(X(!0),re(Be,null,At(he.value,Ie=>{var ct,Ke;return X(),re("div",{key:Ie.node.id,class:Te(["stl-row",J(Ie)]),"data-stl-node-id":Ie.node.id,style:Xe({"--trunk-color":((ct=Ie.parent)==null?void 0:ct.color)||"#6e7681","--row-color":Ie.node.color||"#73A17F"}),onClick:et=>ee(Ie.node)},[(X(!0),re(Be,null,At(Ie.trunks,(et,Pn)=>(X(),re("span",{key:`tr${Pn}`,class:Te(["stl-trunk",`stl-trunk-${et}`])},null,2))),128)),(Ke=Ie.node.children)!=null&&Ke.length?(X(),re("button",{key:0,class:Te(["stl-caret",{open:L.value.has(Ie.node.id)}]),onClick:gt(et=>D(Ie.node.id,et),["stop"])},[...W[16]||(W[16]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,gS)):(X(),re("span",fS)),Ie.node.color?(X(),re("span",{key:2,class:"stl-dot",style:Xe({background:Ie.node.color})},null,4)):(X(),re("span",hS)),T("span",mS,ye(Ie.node.label),1),$.value?(X(),re("span",bS,ye(ge(Ie.node.count)),1)):ve("",!0),z.value?(X(),re("span",yS,ye(me(Ie.node.pop)),1)):ve("",!0),T("span",vS,[P.value===Ie.node.id?(X(),re("button",{key:0,class:"stl-x-chip",title:"Clear selection",onClick:W[6]||(W[6]=gt(et=>k(et),["stop"]))},[...W[17]||(W[17]=[T("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])):ve("",!0)])],14,pS)}),128)),fe.value&&!he.value.length?(X(),re("div",_S,[W[18]||(W[18]=T("span",{class:"stl-spinner"},null,-1)),T("span",null,"Loading "+ye(((Le=d.value[E.value])==null?void 0:Le.label)||"rows")+"…",1)])):!he.value.length&&e.nodes.length===0?(X(),re("div",kS,"Loading data…")):he.value.length?ve("",!0):(X(),re("div",xS,"No data at this level")),le.value>0?(X(),re("div",wS,[pt(" Showing top "+ye(d.value[E.value].topLimit.toLocaleString())+" of "+ye(Ce.value.length.toLocaleString())+" — ",1),W[19]||(W[19]=T("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):ve("",!0)],2)])],10,qw),S.value?ve("",!0):(X(),re("button",{key:0,class:"stl-reopen","data-theme":((Oe=de(i))==null?void 0:Oe.theme.value)||"dark",title:"Expand legend",onClick:W[7]||(W[7]=Ie=>{S.value=!0,s("update:open",!0)})},[W[20]||(W[20]=T("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),T("span",AS,[C.value?(X(),re(Be,{key:0},[C.value.color?(X(),re("span",{key:0,class:"stl-reopen-dot",style:Xe({background:C.value.color})},null,4)):ve("",!0),pt(" "+ye(C.value.label),1)],64)):(X(),re(Be,{key:1},[pt(ye(u.value),1)],64))]),W[21]||(W[21]=T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,SS))],64)}}},[["styles",[Vw]],["__scopeId","data-v-78a7a96e"]]),LS="#6b7280";function CS(){const e=wo(Qn.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function $S(e,t){const o=CS();return e&&o[e]?o[e]:LS}function ES(e){return(e==null?void 0:e.properties)||e||{}}function Ll(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function TS(e){var t;return String(e.affinityBlock||Ll((t=e._raw)==null?void 0:t.rop1)||"").trim()}function PS(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function NS(e){var t;return String(e.cluster||Ll((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function IS(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function MS(e){var t;return String(e.peopleGroup||Ll((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function FS(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function RS(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function DS(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function OS(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function BS(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function _g(e){const t=te(()=>{const r=e&&e.value||[],s=new Map;for(const i of r){const l=ES(i),c=TS(l),u=PS(l)||c||"— Unknown —",g=NS(l),h=IS(l)||g||"— Unknown —",w=MS(l),x=FS(l)||w||"— Unknown —",f=RS(l),b=DS(l)||f,y=OS(l),v=BS(l);if(!f)continue;let p=s.get(c||"__unknown__");p||(p={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},s.set(c||"__unknown__",p)),p.count+=1,p.pop+=y,p.memberIds.push(f);let m=p.clusters.get(g||"__unknown__");m||(m={code:g,label:h,count:0,pop:0,memberIds:[],peopleGroups:new Map},p.clusters.set(g||"__unknown__",m)),m.count+=1,m.pop+=y,m.memberIds.push(f);let d=m.peopleGroups.get(w||"__unknown__");d||(d={code:w,label:x,count:0,pop:0,memberIds:[],instances:[]},m.peopleGroups.set(w||"__unknown__",d)),d.count+=1,d.pop+=y,d.memberIds.push(f),d.instances.push({id:f,name:b,country:v,pop:y})}return s}),o=r=>r&&r.length?["in",["get","uniqueId"],["literal",r]]:["==",["get","uniqueId"],"__none__"],n=te(()=>{const r=t.value,s=[];for(const i of r.values()){const l=$S(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const g={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const h of u.peopleGroups.values()){const w={id:`pg:${i.code}__${u.code}__${h.code||h.label}`,label:`${h.label} (PG)`,color:l,count:h.count,pop:h.pop,filter:o(h.memberIds),children:[]};h.instances.sort((x,f)=>f.pop-x.pop||x.country.localeCompare(f.country));for(const x of h.instances)w.children.push({id:`pgic:${x.id}`,label:`${x.country?`${x.name}, ${x.country}`:x.name} (PGIC)`,color:l,count:1,pop:x.pop,filter:["==",["get","uniqueId"],x.id],children:[]});g.children.push(w)}g.children.sort((h,w)=>w.count-h.count||w.pop-h.pop),c.children.push(g)}c.children.sort((u,g)=>g.count-u.count||g.pop-u.pop),s.push(c)}return s.sort((i,l)=>l.count-i.count||l.pop-i.pop),s});function a(r){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!r){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const s=String(r.id||""),i={kind:null,label:r.label,filterExpr:r.filter};s.startsWith("bloc:")?i.kind="bloc":s.startsWith("cluster:")?i.kind="cluster":s.startsWith("pg:")?i.kind="people-group":s.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}const jS={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},zS="#95a5a6";function US(e){return jS[String(e||"").toLowerCase()]||zS}function GS(e){return(e==null?void 0:e.properties)||e||{}}function KS(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function HS(e){var t,o;return String(e.doxaRegion||e.wagfRegion||((o=(t=e._raw)==null?void 0:t.wagf_region)==null?void 0:o.value)||"").trim()}function VS(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_region;return String(e.wagfRegionLabel||e.doxaRegionLabel||(t&&typeof t=="object"?t.label:"")||e.doxaRegion||"").trim()}function qS(e){var t,o;return String(e.wagfBlock||((o=(t=e._raw)==null?void 0:t.wagf_block)==null?void 0:o.value)||"").trim()}function WS(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_block;return String(e.wagfBlockLabel||(t&&typeof t=="object"?t.label:"")||e.wagfBlock||"").trim()}function YS(e){var t,o;return String(e.countryIso||((o=(t=e._raw)==null?void 0:t.country_code)==null?void 0:o.value)||"").trim().toUpperCase()}function XS(e){var o;const t=(o=e._raw)==null?void 0:o.country_code;return String(e.countryIsoLabel||(t&&typeof t=="object"?t.label:"")||e.countryIso||"").trim()}function kg(e){const t=te(()=>{const a=e&&e.value||[],r=new Map;for(const s of a){const i=GS(s),l=HS(i),c=VS(i)||l||"— Unknown —",u=qS(i),g=WS(i)||u||"— Unknown —",h=YS(i),w=XS(i)||h||"— Unknown —",x=KS(i);if(!l||l==="na"||l==="none")continue;let f=r.get(l);if(f||(f={slug:l,label:c,count:0,pop:0,blocks:new Map},r.set(l,f)),f.count+=1,f.pop+=x,!u||u==="na")continue;let b=f.blocks.get(u);if(b||(b={slug:u,label:g,count:0,pop:0,countries:new Map},f.blocks.set(u,b)),b.count+=1,b.pop+=x,!h)continue;let y=b.countries.get(h);y||(y={iso:h,name:w,count:0,pop:0},b.countries.set(h,y)),y.count+=1,y.pop+=x}return r}),o=te(()=>{const a=t.value,r=[];for(const s of a.values()){const i=US(s.slug),l=[],c=[],u=[...s.blocks.values()].sort((g,h)=>h.pop-g.pop||g.label.localeCompare(h.label));for(const g of u){const h=[],w=[],x=[...g.countries.values()].sort((f,b)=>b.pop-f.pop||f.name.localeCompare(b.name));for(const f of x)h.push(f.iso),l.push(f.iso),w.push({id:`country:${s.slug}__${g.slug}__${f.iso}`,label:f.name,color:i,count:f.count,pop:f.pop,filter:["==",["get","countryIso"],f.iso],isoCodes:[f.iso],children:[]});c.push({id:`block:${s.slug}__${g.slug}`,label:`${g.label} (Bloc)`,color:i,count:g.count,pop:g.pop,filter:["==",["get","wagfBlock"],g.slug],isoCodes:h,children:w})}r.push({id:`region:${s.slug}`,label:`${s.label} (Region)`,color:i,count:s.count,pop:s.pop,filter:["==",["get","doxaRegion"],s.slug],isoCodes:[...new Set(l)],children:c})}return r.sort((s,i)=>i.pop-s.pop||s.label.localeCompare(i.label)),r});function n(a){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!a){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(a.id||""),s={kind:null,label:a.label,filterExpr:a.filter};r.startsWith("region:")?s.kind="region":r.startsWith("block:")?s.kind="block":r.startsWith("country:")&&(s.kind="country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:s}))}return{aggregated:t,regionsTree:o,highlight:n}}const JS=["onClick"],ZS={key:0,class:"rm-tab-sep","aria-hidden":"true"},QS={class:"rm-map-area"},eA={key:0,class:"rm-loading"},tA={key:1,class:"rm-error"},oA=["data-provider"],nA={class:"rm-legend-desktop-slot"},aA={class:"rm-legend-mobile-slot"},rA=!0,sA=22,iA=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"research-map",setup(e){var Zg,Qg,ef,tf,of,nf,af,rf,sf;let t=null,o=null;function n(I,B){if(I!=null&&I.getLayer("language-family-pins-hitbox"))try{I.setFilter("language-family-pins-hitbox",B)}catch{}}function a(){return t||(t=eo(()=>Promise.resolve().then(()=>IA),void 0).then(I=>I.useMapPoster({sourceMap:()=>ce.value,mapboxToken:c.value,styleUrl:()=>{var B,Y,ie,Se;return((ie=(Y=(B=ce.value)==null?void 0:B.getStyle())==null?void 0:Y.sprite)==null?void 0:ie.replace(/\/sprite.*$/,""))||((Se=l==null?void 0:l.value)==null?void 0:Se.style)}}))),t}const r=Ca(()=>eo(()=>Promise.resolve().then(()=>Sg),void 0)),s=Ca(()=>eo(()=>Promise.resolve().then(()=>Yk),void 0)),i=Ca(()=>eo(()=>Promise.resolve().then(()=>_L),void 0));yt(` .mapboxgl-ctrl-top-left { top:12px!important;left:8px!important;width:var(--map-legend-width,380px)!important;max-width:var(--map-legend-width,380px)!important;z-index:1200!important; } .mapboxgl-ctrl-top-left .mapboxgl-ctrl { margin:0!important;float:none!important; } .mapboxgl-ctrl-geocoder { width:100%!important;max-width:100%!important;min-width:0!important;border-radius:999px!important;box-shadow:0 2px 8px rgba(0,0,0,0.15)!important;background:#fff;transition:box-shadow 0.12s,border-color 0.12s; } @@ -1362,7 +1361,7 @@ .map-scroll-edge { position:absolute;top:0;bottom:0;width:calc(var(--map-btn-size,32px) + 6px);z-index:2;touch-action:pan-y;pointer-events:auto;background:transparent; } .map-scroll-edge--left { left:0; } .map-scroll-edge--right { right:0; } -`,"research-map");const l=Pe("profileConfig"),c=Pe("mapboxToken"),u=Q_(l),p=e1(u),h=Pe("dataSource");Pe("colorSet");const x=Pe("instanceId",null),w=(()=>{var B;const I=(B=l==null?void 0:l.value)==null?void 0:B.locale;return I&&qi.includes(I)?I:null})(),{locale:f,t:b,te:y}=ht();w&&(f.value=w);function v(I){const B="tabs."+((I==null?void 0:I.i18nKey)||(I==null?void 0:I.id));return I&&y(B)?b(B):(I==null?void 0:I.label)??""}const g=Pe("mapStore"),m=Pe("dataStore"),d=Pe("uiStore"),_=d_(d),L={doxaRegions:!0,adoption:!1,share:!0,hamburgerMenu:!1,geocoderPersistAcrossTabs:!1},S=[{id:"prayer",label:"Prayer",colorStrategy:"prayerProgress",legend:"prayer",popup:"pray",feature:null},{id:"adoption",label:"Adoption",colorStrategy:"adoption",legend:"adoption",popup:"adopt",feature:"adoption"},{id:"engagement",label:"Engagement",colorStrategy:"engagement",legend:"engagement",popup:"pray",feature:null,sepAfter:!0},{id:"affinity-blocks",label:"People Groups (Affinity)",colorStrategy:"affinityBlock",legend:"affinity-block",popup:"pray",feature:null},{id:"doxa-regions",label:"Regions",colorStrategy:"doxaRegion",legend:"doxa-regions",popup:"pray",feature:"doxaRegions",i18nKey:"regions"},{id:"language-families",label:"Languages",colorStrategy:"languageFamily",legend:"language-family",popup:"pray",feature:null},{id:"religion",label:"Religions",colorStrategy:"religion",legend:"religion",popup:"pray",feature:null}].filter(I=>!I.feature||L[I.feature]),z=te(()=>S),G=te(()=>!0),j=ue(null),M=te(()=>z.value.find(I=>I.id===j.value)??z.value[0]);_.setLook(_.lookFor((Zp=M.value)==null?void 0:Zp.colorStrategy)),Re(()=>{var I;return(I=M.value)==null?void 0:I.colorStrategy},I=>_.setLook(_.lookFor(I),ce.value));const E=te(()=>{var I;return((I=M.value)==null?void 0:I.legend)??"default"}),C=te(()=>{var I;return((I=M.value)==null?void 0:I.popup)??"pray"}),P=te(()=>{var I,B,Y,ie;return((I=M.value)==null?void 0:I.id)==="language-families"?"Search language family, language, dialect/variety":((B=M.value)==null?void 0:B.id)==="affinity-blocks"?"Search affinity bloc, cluster, people group":((Y=M.value)==null?void 0:Y.id)==="doxa-regions"?"Search region, country, people group":((ie=M.value)==null?void 0:ie.id)==="religion"?"Search religion, people group":""}),F={"affinity-blocks":"people-groups",prayer:"people-groups",adoption:"people-groups",engagement:"people-groups","language-families":"language","doxa-regions":"regions",religion:"religion"},q=te(()=>{var I;return F[(I=M.value)==null?void 0:I.id]||""}),se=(x==null?void 0:x.value)||x||"research-map-"+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8);kt("mapId",se);const Z=ue(null),oe=ue(null),H=ue(null),fe=new Map;Re(()=>j==null?void 0:j.value,async(I,B)=>{var ie,Se,Ee,He,rt;if(B!==void 0&&I!==B){B&&fe.set(B,d.legendState);const st=fe.get(I)||(d.isMobile?"collapsed":"open");st==="fullyOpen"?(ie=d.fullyOpenLegend)==null||ie.call(d):st==="open"?(Se=d.openLegend)==null||Se.call(d):(Ee=d.collapseLegend)==null||Ee.call(d)}await Ut();const Y=(He=oe.value)==null?void 0:He.querySelector(".rm-tab.active");(rt=Y==null?void 0:Y.scrollIntoView)==null||rt.call(Y,{inline:"center",block:"nearest",behavior:"smooth"})});const Ae=ue(null),we=ue(!1),Ce=ue(null),{map:ce,initializeMap:le,destroy:_e}=X_({containerRef:Ae,accessToken:c.value,provider:u,style:((Qp=l==null?void 0:l.value)==null?void 0:Qp.style)??_.bootStyle(),config:_.bootConfig,center:((ef=l==null?void 0:l.value)==null?void 0:ef.center)??io.center??[20,10],zoom:((tf=l==null?void 0:l.value)==null?void 0:tf.zoom)??io.zoom??1.8,pitch:((of=l==null?void 0:l.value)==null?void 0:of.pitch)??io.pitch??0,bearing:((nf=l==null?void 0:l.value)==null?void 0:nf.bearing)??io.bearing??0,minZoom:((af=l==null?void 0:l.value)==null?void 0:af.minZoom)??io.minZoom??.5,maxZoom:QS}),he=new cp({sourcesConfig:Ln,locale:w}),xe=x1({mapId:se,dataSourceId:h.value,dataSourceManager:he,dataStore:m,markRaw:I=>I});async function $(I){const B=String(I||"").trim().toUpperCase();if(B.length!==3)return;await or();const Y=ce.value;if(!Y||!Y.getLayer("regions-fill"))return;Y.setLayoutProperty("regions-fill","visibility","visible"),Y.setLayoutProperty("regions-border","visibility","visible");const ie=["literal",[B]];Y.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],ie],.3,.02]),Y.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],ie],"#111827","rgba(60,60,80,0.15)"]),Y.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],ie],2.5,.3]),Y.getLayer("language-family-pins")&&Y.moveLayer("language-family-pins")}function U(){var B;V.clearCountry();const I=ce.value;!I||!I.getLayer("regions-fill")||(I.setPaintProperty("regions-fill","fill-opacity",.2),I.setPaintProperty("regions-fill","fill-outline-color",null),I.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),I.setPaintProperty("regions-border","line-width",.6),((B=M.value)==null?void 0:B.id)!=="doxa-regions"&&(I.setLayoutProperty("regions-fill","visibility","none"),I.setLayoutProperty("regions-border","visibility","none")))}const R=l1({getMap:()=>ce.value,mapId:se,getLanguageFamilyColor:I=>{var Y,ie;const B=xo((Y=M.value)==null?void 0:Y.colorStrategy);return((ie=B==null?void 0:B.colors)==null?void 0:ie[I])??(B==null?void 0:B.fallback)??"#7c8cf8"},getNormalizedPeopleGroups:()=>xe.normalizedPeopleGroups.value||[]});Qg({getMap:()=>ce.value,mapId:se,getLanguageFamilyColor:()=>"#7c8cf8",getNormalizedPeopleGroups:()=>xe.normalizedPeopleGroups.value||[]});const K=c1({getMap:()=>ce.value,mapId:se,mapStore:g,defaultCenter:((rf=l==null?void 0:l.value)==null?void 0:rf.center)??[20,10],defaultZoom:((sf=l==null?void 0:l.value)==null?void 0:sf.zoom)??1.8}),ee=d1({getMap:()=>ce.value,getActivePinColor:I=>{var Y,ie;const B=xo(((Y=M.value)==null?void 0:Y.colorStrategy)??"languageFamily");return((ie=B==null?void 0:B.getColor)==null?void 0:ie.call(B,I))??"#1a1a1a"}});let D=null,ne=null;function ae(){return D?Promise.resolve(D):(ne||(ne=eo(()=>Promise.resolve().then(()=>dL),void 0).then(I=>(D=I.useMapClustering({getMap:()=>ce.value,mapId:se,mapStore:g,getPeopleGroups:()=>xe.normalizedPeopleGroups.value||[],getClusterColor:()=>{var B,Y;return((Y=xo((B=M.value)==null?void 0:B.colorStrategy))==null?void 0:Y.fallback)??"#7c8cf8"}}),D))),ne)}const k={setData(I){var B;(B=D==null?void 0:D.setData)==null||B.call(D,I)},applyFilters(I){var B;(B=D==null?void 0:D.applyFilters)==null||B.call(D,I)},refreshColors(){var I;(I=D==null?void 0:D.refreshColors)==null||I.call(D)},cleanup(){var I;(I=D==null?void 0:D.cleanup)==null||I.call(D)},async setEnabled(I){var B,Y;(Y=(B=await ae()).setEnabled)==null||Y.call(B,I)},async setMode(I){var B,Y;(Y=(B=await ae()).setMode)==null||Y.call(B,I)},_pendingSelectionFilter:null,setSelectionFilter(I){this._pendingSelectionFilter=I||null,D!=null&&D.setSelectionFilter&&D.setSelectionFilter(I)},flushSelectionFilter(){D!=null&&D.setSelectionFilter&&D.setSelectionFilter(this._pendingSelectionFilter)}},A=Za({});kt("legendRows",A.rows),kt("normalizedPeopleGroups",xe.normalizedPeopleGroups);const V=m1(()=>ce.value),Q=Dx(se);Ox(Q);const{onPeopleGroupResult:me,onAggregateResult:pe,onClear:J,clearGeocoderProgrammatic:N}=S1({map:ce,geocoderRef:H,clustering:k,mapStore:g,uiStore:d,mapLayers:R,pplrInstance:Q,onSemanticTreeSelect:ca,switchTab:bs,activeTabId:j,clearAllHighlights:ys,clearCountryHighlight:U,mapId:se,legendRouters:{country:ML,region:IL,religion:NL}});Q.activeTab.value=1;function W(I){return I==="affinity-block"?0:I==="language-family"?1:0}Re(E,I=>{Q.activeTab.value=W(I)});const ge={get value(){return xe.normalizedPeopleGroups.value||[]}},{langTree:be}=vl(ge),Le=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor (e.g. Indo-European, Afro-Asiatic)."},{id:"language",label:"Language",info:"A language is a system of communication used by a people (e.g. Arabic, Bengali, Hindi)."},{id:"dialect",label:"Dialect/Variety",info:"A dialect/variety is a regional or social form of a language (e.g. Arabic, Sudanese; Pakistan Sign Language)."}],{affinityTree:Oe}=_p(ge),Ie=[{id:"bloc",label:"Affinity Block",info:"Affinity Block (field: rop1) — broadest grouping by cultural/linguistic/geographic kinship. 16 blocks total. Examples: Malay Peoples, South Asian Peoples, Deaf, Arab World."},{id:"cluster",label:"Cluster",info:'Cluster (field: imb_reg_of_people_2, ROP 2) — finer-grained grouping inside a bloc. 194 clusters total. Suffix "(Cluster)" appears on each row to distinguish from PG/PGIC. Example: Borneo-Kalimantan within Malay Peoples.'},{id:"group",label:"People Group",info:'People Group (field: imb_reg_of_people_25, ROP 2.5) — abstract ethnolinguistic identity, country-agnostic. Suffix "(PG)" on each row. 1,736 PGs total; 131 of them have rows in multiple countries (e.g. Deaf in 123 countries). Example: Abai Sungai (PG) is one ROP25 code regardless of where its people live.'},{id:"pgic",label:"PG in Country",info:'PGIC = People Group In Country (field: imb_reg_of_people_3 + country_code) — one row per (people group, country) pair. Suffix "(PGIC)" on each row. 2,106 rows total. Example: "Abai Sungai, Malaysia (PGIC)" is the Abai Sungai PG specifically as it exists in Malaysia.'}],{regionsTree:ct}=kp(ge),Ke=[{id:"region",label:"WAGF Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"WAGF Bloc",info:'WAGF bloc — the organizational sub-grouping within each region (e.g. "South East Asia", "West Africa").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],et=Za(Sr(()=>E.value),gs),Pn=et.progress;kt("legendProgress",Pn);function hs(I){const B=[];for(const Y of I){B.push({id:Y.key,label:Y.label,color:Y.color,count:Y.count??0,pop:Y.population??0,filter:Y.filterKey?["==",["get","_flat_filter"],Y.filterKey]:null,children:[]});for(const ie of Y.children||[])B.push({id:ie.key,label:ie.label,color:ie.color,count:ie.count??0,pop:ie.population??0,filter:ie.filterKey?["==",["get","_flat_filter"],ie.filterKey]:null,children:[]})}return B}const dn=te(()=>["prayer","engagement","adoption","religion"].includes(E.value)),kL=te(()=>dn.value?hs(et.items.value):E.value==="affinity-block"?Oe.value:E.value==="doxa-regions"?ct.value:be.value),wL=te(()=>dn.value?null:E.value==="affinity-block"?Ie:E.value==="doxa-regions"?Ke:Le),xL=te(()=>dn.value),SL=te(()=>E.value==="religion"?b("legend.colLabel.religion"):E.value==="prayer"?b("legend.colLabel.prayer"):E.value==="engagement"?b("legend.colLabel.engagement"):E.value==="adoption"?b("legend.colLabel.adoption"):dn.value?b("legend.colLabel.status"):""),AL=te(()=>d.legendState!=="collapsed");function LL(I){I?d.openLegend():d.collapseLegend()}const Kp=te(()=>dn.value?b("legend.titleBar.legend"):E.value==="affinity-block"?b("legend.titleBar.peopleGroups"):E.value==="doxa-regions"?b("legend.titleBar.wagfRegions"):b("legend.titleBar.languages"));function Nn(I,B){var Y;for(const ie of I){if(B(ie))return ie;if((Y=ie.children)!=null&&Y.length){const Se=Nn(ie.children,B);if(Se)return Se}}return null}kt("onSemanticTreeSelect",I=>ca(I)),kt("getActivePinColor",I=>{var Y,ie;const B=xo(((Y=M.value)==null?void 0:Y.colorStrategy)??"languageFamily");return((ie=B==null?void 0:B.getColor)==null?void 0:ie.call(B,I))??"#1a1a1a"});function CL(I,B){if(!I||!B)return null;const Y=I.id;if(B==="prayer"){const ie=["to-number",["get","peoplePraying"]];if(Y==="noPrayer")return["==",ie,0];if(Y==="fullPrayer")return[">=",ie,wo];if(Y==="hasPrayer")return["all",[">",ie,0],["<",ie,wo]]}else if(B==="engagement"){if(Y==="hasEngagement")return["==",["get","engagementStatus"],!0];if(Y==="notEngaged")return["==",["get","engagementStatus"],!1]}else if(B==="adoption"){if(Y==="hasAdoption")return["==",["get","adoptionStatus"],!0];if(Y==="notAdopted")return["==",["get","adoptionStatus"],!1]}else if(B==="religion")return["==",["slice",["coalesce",["get","religion"],""],0,1],Y];return null}function ca(I){var ie,Se,Ee,He,rt,st,vt,pn;const B=ce.value;if(I){const tt=dn.value?CL(I,E.value):null,ze=((ie=M.value)==null?void 0:ie.id)==="doxa-regions",xt=tt?{matchExpr:tt}:{};ze&&(xt.regionPolygonSource="regions"),(Se=K.zoomToLegendRow)==null||Se.call(K,I,Object.keys(xt).length?xt:void 0)}if(!I){if(dn.value){const tt=E.value;tt==="prayer"?d.setPrayerFilter(null):tt==="engagement"?d.setEngagementFilter(null):tt==="adoption"?d.setAdoptionFilter(null):tt==="religion"&&d.setReligionFilter(null)}if(B&&B.getLayer("language-family-pins")){try{B.setFilter("language-family-pins",null)}catch{}n(B,null),B.setPaintProperty("language-family-pins","circle-opacity",1),B.setPaintProperty("language-family-pins","circle-stroke-opacity",1),B.getLayer("language-family-pins-shadow")&&B.setPaintProperty("language-family-pins-shadow","circle-opacity",1),R.syncGlowFilter(null)}B&&B.getLayer("regions-fill")&&(B.setPaintProperty("regions-fill","fill-opacity",.7),B.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),B.setPaintProperty("regions-border","line-width",.6)),g.selectedFamily&&g.selectFamily(null),g.selectedLanguage&&g.selectLanguage(null),g.selectedDialect&&((Ee=g.selectDialect)==null||Ee.call(g,null)),g.selectedRegion&&((He=g.selectRegion)==null||He.call(g,null)),N();return}if(dn.value){const tt=E.value;tt==="prayer"?d.setPrayerFilter(I.id):tt==="engagement"?d.setEngagementFilter(I.id):tt==="adoption"?d.setAdoptionFilter(I.id):tt==="religion"&&d.setReligionFilter(I.id);return}if(B&&B.getLayer("language-family-pins")&&I.filter){try{B.setFilter("language-family-pins",I.filter)}catch{}n(B,I.filter),B.setPaintProperty("language-family-pins","circle-opacity",1),B.setPaintProperty("language-family-pins","circle-stroke-opacity",1),R.syncGlowFilter(I.filter)}const Y=String(I.id||"");if(Y.startsWith("fam:"))(rt=g.selectFamily)==null||rt.call(g,I.label);else if(Y.startsWith("lang:"))(st=g.selectLanguage)==null||st.call(g,I.label);else if(Y.startsWith("dial:"))(vt=g.selectDialect)==null||vt.call(g,{key:Y.slice(5),originalLabels:I.originalLabels||[]});else if(Y.startsWith("bloc:")||Y.startsWith("cluster:")||Y.startsWith("pg:")||Y.startsWith("pgic:")){if(B&&B.getLayer("language-family-pins")&&I.filter){try{B.setFilter("language-family-pins",null)}catch{}n(B,I.filter),B.setPaintProperty("language-family-pins","circle-opacity",["case",I.filter,1,0]),B.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",I.filter,1,0]),B.getLayer("language-family-pins-shadow")&&B.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",I.filter,1,0]),R.syncGlowFilter(I.filter)}}else if(Y.startsWith("region:")||Y.startsWith("block:")||Y.startsWith("country:")){if(B&&B.getLayer("language-family-pins")&&I.filter){try{B.setFilter("language-family-pins",I.filter)}catch{}n(B,I.filter),B.setPaintProperty("language-family-pins","circle-opacity",1),B.setPaintProperty("language-family-pins","circle-stroke-opacity",1)}if(Y.startsWith("region:")&&((pn=g.selectRegion)==null||pn.call(g,Y.slice(7))),B&&B.getLayer("regions-fill")){const tt=I.isoCodes||[];if(tt.length){const ze=["literal",tt];B.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],ze],.85,.15]),B.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],ze],"#111827","rgba(60,60,80,0.15)"]),B.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],ze],2.5,.3])}else B.setPaintProperty("regions-fill","fill-opacity",.7),B.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),B.setPaintProperty("regions-border","line-width",.6)}}}Re(()=>d.theme,I=>{Q.theme.value=I==="dark"?"dark":"light"},{immediate:!0});function gn(I,B){var ie,Se;if(!B){const Ee=Q.selection.value;Ee&&((ie=Ee.id)!=null&&ie.startsWith(I+":"))&&(Q.selection.value=null);return}const Y=Q.selection.value;Y&&((Se=Y.id)!=null&&Se.startsWith(I+":"))&&Y.label===B.label||(Q.selection.value=B)}Re(()=>g.selectedFamily,I=>{if(!I)return gn("fam",null);const B=Nn(be.value,Y=>Y.id.startsWith("fam:")&&Y.label===I);B&&gn("fam",{...B,depth:0})}),Re(()=>g.selectedLanguage,I=>{if(!I)return gn("lang",null);const B=Nn(be.value,Y=>Y.id.startsWith("lang:")&&Y.label===I);B&&gn("lang",{...B,depth:1})}),Re(()=>g.selectedDialect,I=>{if(!(I!=null&&I.key))return gn("dial",null);const B=`dial:${I.key}`,Y=Nn(be.value,ie=>ie.id===B);Y&&gn("dial",{...Y,depth:2})}),Re(()=>g.selectedRegion,I=>{if(!I)return gn("region",null);const B=Nn(ct.value,Y=>Y.id===`region:${I}`);B&&gn("region",{...B,depth:0})});const ms=ue(null);async function Hp(){ms.value||(ms.value=await a()),Nl.value=!0}function $L(I){if(I==="poster")return Hp();if(I==="packet")return TL()}let Pl=!1;function EL(I,B){const Y=URL.createObjectURL(I),ie=document.createElement("a");ie.href=Y,ie.download=B,document.body.appendChild(ie),ie.click(),ie.remove(),setTimeout(()=>URL.revokeObjectURL(Y),1e3)}async function TL(){var I;if(!Pl){Pl=!0;try{o||(o=eo(()=>Promise.resolve().then(()=>_L),void 0).then(He=>He.useMapPacket(()=>ce.value)));const B=await o;let Y=xe.normalizedPeopleGroups.value||[];Y.length>50&&(console.warn(`[research-map] packet export truncated ${Y.length} → 50 people groups`),Y=Y.slice(0,50));const{defaultPosterSpec:ie}=await eo(async()=>{const{defaultPosterSpec:He}=await Promise.resolve().then(()=>fA);return{defaultPosterSpec:He}},void 0),Se=ie({widthIn:8.27,heightIn:11.69,dpi:150,orientation:"portrait"});Se.slots.title={...Se.slots.title,text:Kp.value||"Doxa Map"},Se.slots.legend={...Se.slots.legend,rows:((I=A==null?void 0:A.rows)==null?void 0:I.value)||[]};const Ee=await B.renderPacket(Se,Y,{source:"pray.doxa.life",date:new Date().toISOString().slice(0,10)});EL(Ee,"packet.pdf")}catch(B){console.error("[research-map] packet export failed:",B)}finally{Pl=!1}}}const Vp=ue(!1),Nl=ue(!1),qp=te(()=>g.selectedFeature),Kt=te(()=>d.isDarkTheme),Il=te(()=>Lg.lightPreset==="night");function Ml(){var Y;const I=ce.value;if(!I||!I.getLayer("language-family-pins"))return;const B=Il.value?"#ffffff":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"];I.setPaintProperty("language-family-pins","circle-stroke-color",B),I.setPaintProperty("language-family-pins","circle-stroke-width",Il.value?r1((Y=M.value)==null?void 0:Y.colorStrategy):ep)}Re(Il,Ml,{immediate:!1}),Re(()=>{var I;return(I=M.value)==null?void 0:I.id},Ml),Re(()=>d.theme,()=>_.applyTheme(ce.value));function PL(){_.swapTheme(ce.value)}const Wp=ue(!1);let tr=null;async function or(){if(!Wp.value)return tr||(tr=(async()=>{var I,B,Y;try{const ie=await((I=xe.loadRegionsData)==null?void 0:I.call(xe));ie&&ce.value&&((B=R.addRegionsLayer)==null||B.call(R,ie,"doxa-regions"),ce.value.getLayer("regions-fill")&&((Y=M.value)==null?void 0:Y.id)!=="doxa-regions"&&(ce.value.setLayoutProperty("regions-fill","visibility","none"),ce.value.setLayoutProperty("regions-border","visibility","none")),ce.value.getLayer("language-family-pins")&&ce.value.moveLayer("language-family-pins")),Wp.value=!0,xe.regionsData.value=null}catch(ie){console.warn("[research-map] regions layer failed:",ie)}finally{tr=null}})(),tr)}function bs(I){var ie,Se,Ee;if(I===j.value)return;j.value=I,(ie=d.setActiveTab)==null||ie.call(d,I),N();const B=z.value.find(He=>He.id===I);if(!B||!ce.value)return;_.setLook(_.lookFor(B.colorStrategy),ce.value),B.id==="doxa-regions"&&or();const Y=xo(B.colorStrategy);if(ce.value.getLayer("language-family-pins")&&(Y!=null&&Y.buildColorExpression)){const He=B.id==="doxa-regions"?"#a30000":Y.buildColorExpression();ce.value.setPaintProperty("language-family-pins","circle-color",He),ys(ce.value),B.id==="prayer"?R.startPrayerGlow():R.stopPrayerGlow();const rt=B.id==="doxa-regions";ce.value.getLayer("regions-fill")&&(ce.value.setLayoutProperty("regions-fill","visibility",rt?"visible":"none"),ce.value.setLayoutProperty("regions-border","visibility",rt?"visible":"none")),ce.value.getLayer("language-family-pins")&&ce.value.moveLayer("language-family-pins")}(Se=A.refresh)==null||Se.call(A),(Ee=k.refreshColors)==null||Ee.call(k)}function Yp(I){var Y,ie;const B=I==null?void 0:I.detail;!B||B.mapId!==se||(B.center&&Array.isArray(B.center)?(Y=K.flyToCoords)==null||Y.call(K,{longitude:B.center[0],latitude:B.center[1]},B.zoom??4):B.bounds&&((ie=K.fitBounds)==null||ie.call(K,B.bounds,60)))}function Xp(I){var st,vt,pn;const B=I==null?void 0:I.detail;if(!B||($t(B),!((st=B.coords)!=null&&st.length)))return;const Y=B.coords;if(Y.length===1){(vt=K.flyToCoords)==null||vt.call(K,{longitude:Y[0][0],latitude:Y[0][1]},3);return}let ie=1/0,Se=-1/0,Ee=1/0,He=-1/0;for(const[tt,ze]of Y)ttSe&&(Se=tt),zeHe&&(He=ze);const rt=B.kind==="region"?2.2:3;(pn=K.fitBounds)==null||pn.call(K,[[ie,Ee],[Se,He]],60,{maxZoom:rt})}const Ht={family:null,language:null,dialect:null,region:null,prayer:null,engagement:null,adoption:null};function ys(I){I.setPaintProperty("language-family-pins","circle-opacity",1),I.setPaintProperty("language-family-pins","circle-stroke-opacity",1),I.getLayer("language-family-pins-shadow")&&I.setPaintProperty("language-family-pins-shadow","circle-opacity",1),I.setFilter("language-family-pins",null),n(I,null),R.syncGlowFilter(null),I.getLayer("regions-fill")&&(I.setPaintProperty("regions-fill","fill-opacity",.7),I.setPaintProperty("regions-fill","fill-outline-color",null)),I.getLayer("regions-border")&&(I.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),I.setPaintProperty("regions-border","line-width",.6)),Ht.family=Ht.language=Ht.dialect=Ht.region=null,Ht.prayer=Ht.engagement=Ht.adoption=null,d.prayerFilter&&d.setPrayerFilter(null),d.engagementFilter&&d.setEngagementFilter(null),d.adoptionFilter&&d.setAdoptionFilter(null),d.religionFilter&&d.setReligionFilter(null),k.setSelectionFilter(null),g.selectedFamily&&g.selectFamily(null),g.selectedLanguage&&g.selectLanguage(null),g.selectedDialect&&g.selectDialect(null);try{Q&&Q.selection&&Q.selection.value&&(Q.selection.value=null)}catch{}}let vs=null,_s=0;function $t(I){var rt,st,vt,pn,tt;const B=ce.value;if(!B||!B.getLayer("language-family-pins"))return;let Y,ie,Se;if(I.kind==="family")Se="family",Y="languageFamily",ie=I.familyKey;else if(I.kind==="language")Se="language",Y="language",ie=I.languageKey;else if(I.kind==="region")Se="region",Y="doxaRegion",ie=I.regionKey;else if(I.kind==="prayer")Se="prayer",Y=I.property||"peoplePraying",ie=I.expectedValue;else if(I.kind==="engagement")Se="engagement",Y=I.property||"engagementStatus",ie=I.expectedValue;else if(I.kind==="adoption")Se="adoption",Y=I.property||"adoptionStatus",ie=I.expectedValue;else if(I.kind==="religion")Se="religion",Y=I.property||"religion",ie=I.expectedValue;else if(I.kind==="dialect")Se="dialect",Y="language",ie=I.dialectKey||"";else{ys(B),N();for(const ze of Object.keys(Ht))Ht[ze]=null;vs=null,_s=0;return}const Ee=Date.now(),He=`${Se}|${ie}`;if(!(vs===He&&Ee-_s<80)){if(vs=He,_s=Ee,Ht[Se]===ie){ys(B),N(),vs=null,_s=0;return}for(const ze of Object.keys(Ht))Ht[ze]=null;if(Ht[Se]=ie,Se==="family"?(rt=g.selectFamily)==null||rt.call(g,ie):Se==="region"?(st=g.selectRegion)==null||st.call(g,ie):Se==="language"?(vt=g.selectLanguage)==null||vt.call(g,ie):Se==="dialect"&&((pn=g.selectDialect)==null||pn.call(g,{key:ie,originalLabels:I.originalLabels||[]})),k.setSelectionFilter({property:Y,value:ie}),Se==="region"){if(B.setFilter("language-family-pins",["==",["get","doxaRegion"],ie]),n(B,["==",["get","doxaRegion"],ie]),B.setPaintProperty("language-family-pins","circle-opacity",1),B.setPaintProperty("language-family-pins","circle-stroke-opacity",1),B.getLayer("regions-fill")){const ze=((tt=R.regionIsoMap)==null?void 0:tt.value)||{},xt=In=>String(In).toLowerCase().replace(/[^a-z]/g,""),RL=xt(ie);let ks=ze[ie]||[];if(!ks.length){for(const[In,DL]of Object.entries(ze))if(xt(In)===RL){ks=DL;break}}if(ks.length){const In=["literal",ks];B.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],In],.85,.15]),B.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],In],"#111827","rgba(60,60,80,0.15)"]),B.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],In],2.5,.3])}else B.setPaintProperty("regions-fill","fill-opacity",.7),B.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),B.setPaintProperty("regions-border","line-width",.6)}}else{B.setFilter("language-family-pins",null);let ze;if(Se==="prayer"){const xt=["to-number",["get",Y]];ie==="noPrayer"?ze=["==",xt,0]:ie==="fullPrayer"?ze=[">=",xt,wo]:ie==="hasPrayer"?ze=["all",[">",xt,0],["<",xt,wo]]:ze=["==",["get",Y],ie]}else if(Se==="engagement")ze=["==",["get",Y],ie==="hasEngagement"];else if(Se==="adoption")ze=["==",["get",Y],ie==="hasAdoption"];else if(Se==="religion")ze=["==",["slice",["coalesce",["get",Y],""],0,1],ie];else if(I.filterExpr)ze=I.filterExpr;else if(Se==="language")ze=["any",["==",["get",Y],ie],["==",["slice",["get",Y],0,ie.length+1],ie+","],["in"," "+ie,["get",Y]]];else if(Se==="dialect"){const xt=I.originalLabels||[];xt.length===1?ze=["==",["get",Y],xt[0]]:xt.length>1?ze=["in",["get",Y],["literal",xt]]:ze=["==",["get",Y],ie]}else ze=["==",["get",Y],ie];B.setPaintProperty("language-family-pins","circle-opacity",["case",ze,1,0]),B.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",ze,1,0]),B.getLayer("language-family-pins-shadow")&&B.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",ze,1,0]),n(B,ze),R.syncGlowFilter(ze),B.getLayer("regions-fill")&&(B.setPaintProperty("regions-fill","fill-opacity",.2),B.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),B.setPaintProperty("regions-border","line-width",.6))}}}function NL(I,{map:B,filterLayerId:Y}){const ie=I.label;try{B.setFilter(Y,null)}catch{}const Se=Object.keys($n).find(Ee=>$n[Ee]===ie);if(Se){const Ee={id:Se,label:ie,depth:0},He=()=>{try{B.setFilter(Y,null)}catch{}ca(Ee),Q&&Q.selection&&(Q.selection.value=Ee)};j.value!=="religion"&&bs("religion"),Ut(He)}}function IL(I,{map:B,filterLayerId:Y}){const ie=I.label,Se=st=>String(st).toLowerCase().replace(/[^a-z0-9]/g,""),Ee=st=>String(st||"").replace(/\s*\((?:Region|Bloc)\)\s*$/i,""),He=Se(ie),rt=()=>{try{B.setFilter(Y,null)}catch{}const st=Nn(ct.value,vt=>(vt.id.startsWith("region:")||vt.id.startsWith("block:"))&&Se(Ee(vt.label))===He);st&&(ca(st),Q&&Q.selection&&(Q.selection.value=st))};j.value!=="doxa-regions"?(bs("doxa-regions"),Promise.resolve(or()).finally(()=>Ut(rt))):rt()}function ML(I){var Y,ie,Se,Ee;if(Array.isArray(I.bounds)&&I.bounds.length===4){const[He,rt,st,vt]=I.bounds;(Y=K.fitBounds)==null||Y.call(K,[[He,rt],[st,vt]],60)}else Array.isArray(I.center)&&I.center.length===2&&((ie=K.flyTo)==null||ie.call(K,I.center));const B=f1(I,xe.normalizedPeopleGroups.value||[]);if(B&&$(B),B&&((Se=M.value)==null?void 0:Se.id)!=="doxa-regions"&&V.showCountry(B),B&&((Ee=M.value)==null?void 0:Ee.id)==="doxa-regions"){const He=()=>{const rt=Nn(ct.value,st=>st.id.startsWith("country:")&&(st.isoCodes||[]).includes(B));rt&&(ca(rt),Q&&Q.selection&&(Q.selection.value=rt))};Promise.resolve(or()).finally(()=>Ut(He))}}Re(()=>g.filters,()=>{var I,B;(I=R.applyFilters)==null||I.call(R,g.filters),(B=k.applyFilters)==null||B.call(k,g.filters)},{deep:!0}),Re(()=>g.selectedRegion,I=>{$t(I?{kind:"region",regionKey:I}:{kind:null})}),Re(()=>g.selectedFamily,I=>{I?$t({kind:"family",familyKey:I}):!g.selectedLanguage&&!g.selectedDialect&&$t({kind:null})}),Re(()=>g.selectedLanguage,I=>{I?$t({kind:"language",languageKey:I}):!g.selectedFamily&&!g.selectedDialect&&$t({kind:null})}),Re(()=>g.selectedDialect,I=>{I!=null&&I.key?$t({kind:"dialect",dialectKey:I.key,originalLabels:I.originalLabels||[]}):!g.selectedFamily&&!g.selectedLanguage&&$t({kind:null})}),Re(()=>d.prayerFilter,I=>{$t(I?{kind:"prayer",property:"peoplePraying",expectedValue:I}:{kind:null})}),Re(()=>d.engagementFilter,I=>{$t(I?{kind:"engagement",property:"engagementStatus",expectedValue:I}:{kind:null})}),Re(()=>d.adoptionFilter,I=>{$t(I?{kind:"adoption",property:"adoptionStatus",expectedValue:I}:{kind:null})}),Re(()=>d.religionFilter,I=>{$t(I?{kind:"religion",property:"religion",expectedValue:I}:{kind:null})}),Re(()=>g.showClusters,async I=>{var B,Y,ie,Se;I?(await((B=k.setMode)==null?void 0:B.call(k,"mst")),(Y=k.flushSelectionFilter)==null||Y.call(k),await((ie=k.setEnabled)==null?void 0:ie.call(k,!0))):await((Se=k.setEnabled)==null?void 0:Se.call(k,!1))});async function FL(I){var B,Y,ie,Se,Ee,He,rt;g.registerMap(se,ce.value);try{ce.value.setProjection("mercator")}catch{}_.applyTheme(ce.value),I!=null&&I.length&&(R.addLanguageFamilyLayer(I,((B=M.value)==null?void 0:B.colorStrategy)??"languageFamily"),((Y=M.value)==null?void 0:Y.id)==="doxa-regions"&&((ie=ce.value)!=null&&ie.getLayer("language-family-pins"))&&ce.value.setPaintProperty("language-family-pins","circle-color","#4b5563"),((Se=M.value)==null?void 0:Se.id)==="prayer"&&R.startPrayerGlow(),(Ee=k.setData)==null||Ee.call(k,I),(He=A.build)==null||He.call(A,I),ee.initialize()),((rt=M.value)==null?void 0:rt.id)==="doxa-regions"&&(typeof window<"u"&&window.requestIdleCallback?vt=>window.requestIdleCallback(vt,{timeout:2e3}):vt=>setTimeout(vt,800))(()=>{or()}),Ml(),g.setMapReady(se),we.value=!0}let nr=null;function Jp(I){const B=Z.value;B&&(getComputedStyle(B).getPropertyValue("--map-radius").trim()||(B.style.setProperty("--map-radius","16px"),B.style.setProperty("--map-radius-sm","8px")),I>=700?(B.style.setProperty("--map-btn-size","40px"),B.style.setProperty("--map-toolbar-gap","8px"),B.style.setProperty("--map-font-md","13px"),B.style.setProperty("--map-font-sm","11px"),B.style.setProperty("--map-legend-width","380px")):I>=500?(B.style.setProperty("--map-btn-size","36px"),B.style.setProperty("--map-toolbar-gap","6px"),B.style.setProperty("--map-font-md","12px"),B.style.setProperty("--map-font-sm","10px"),B.style.setProperty("--map-legend-width","360px")):(B.style.setProperty("--map-btn-size","32px"),B.style.setProperty("--map-toolbar-gap","5px"),B.style.setProperty("--map-font-md","11px"),B.style.setProperty("--map-font-sm","10px"),B.style.setProperty("--map-legend-width","280px")))}return Jt(async()=>{var B,Y,ie,Se;(B=d.init)==null||B.call(d),j.value=((Y=z.value[0])==null?void 0:Y.id)??"doxa-regions",d.isMobile?(ie=d.collapseLegend)==null||ie.call(d):(Se=d.openLegend)==null||Se.call(d),Z.value&&(Jp(Z.value.getBoundingClientRect().width),typeof ResizeObserver<"u"&&(nr=new ResizeObserver(Ee=>{for(const He of Ee)Jp(He.contentRect.width)}),nr.observe(Z.value))),window.addEventListener("doxa:legend-row-click",Yp),window.addEventListener("legend:highlight",Xp);const I=xe.loadData().catch(Ee=>(console.error("[research-map] data load failed:",Ee),{normalizedPeopleGroups:[]}));try{await le()}catch(Ee){console.error("[research-map] Map failed to initialize —",Ee),Ce.value=String((Ee==null?void 0:Ee.message)||Ee);return}{const Ee=ce.value?Ue(ce.value):null;Ee&&Ee!==ce.value&&(ce.value=null,ce.value=Bn(Ee))}if(!ce.value){console.error("[research-map] Map failed to initialize — check token and container"),Ce.value="Map failed to initialize — check token and container";return}ce.value.once("style.load",async()=>{try{const{normalizedPeopleGroups:Ee}=await I;await FL(Ee)}catch(Ee){console.error("[research-map] onMapReady failed:",Ee),Ce.value=String((Ee==null?void 0:Ee.message)||Ee)}})}),ho(()=>{var I,B,Y,ie;window.removeEventListener("doxa:legend-row-click",Yp),window.removeEventListener("legend:highlight",Xp),nr&&(nr.disconnect(),nr=null),(B=(I=ms.value)==null?void 0:I.cleanup)==null||B.call(I),R.stopPrayerGlow(),(Y=k.cleanup)==null||Y.call(k),(ie=ee.cleanup)==null||ie.call(ee),g.unregisterMap(se),_e()}),(I,B)=>(X(),re("div",{ref_key:"rmRoot",ref:Z,class:Te(["rm-root",{"rm-dark":Kt.value,"dsm-dark":Kt.value}])},[G.value?(X(),re("div",{key:0,ref_key:"tabBar",ref:oe,class:"rm-tab-bar"},[(X(!0),re(Be,null,At(z.value,Y=>(X(),re(Be,{key:Y.id},[T("button",{class:Te(["rm-tab",{active:j.value===Y.id}]),onClick:ie=>bs(Y.id)},ye(v(Y)),11,KS),Y.sepAfter?(X(),re("div",HS)):ve("",!0)],64))),128))],512)):ve("",!0),T("div",VS,[!we.value&&!Ce.value?(X(),re("div",qS,"Research map loading…")):ve("",!0),Ce.value?(X(),re("div",WS,"The map could not be loaded. "+ye(Ce.value),1)):ve("",!0),T("div",{ref_key:"mapContainer",ref:Ae,class:"rm-map-canvas"},null,512),B[4]||(B[4]=T("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),B[5]||(B[5]=T("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),de(u)!=="mapbox"?(X(),re("div",{key:2,class:"rm-provider-badge","data-provider":de(u)},ye(de(p)),9,YS)):ve("",!0),we.value&&de(ce)?(X(),Ge(Iw,{key:3,ref_key:"geocoderRef",ref:H,"map-instance":de(ce),"access-token":de(c),provider:de(u),"data-source-id":de(h),"is-dark":Kt.value,placeholder:P.value,"active-context":q.value,onPeopleGroupResult:de(me),onAggregateResult:de(pe),onClear:de(J)},null,8,["map-instance","access-token","provider","data-source-id","is-dark","placeholder","active-context","onPeopleGroupResult","onAggregateResult","onClear"])):ve("",!0),ve("",!0),we.value&&de(ce)?(X(),Ge(sw,{key:5},{default:Dt(()=>[Je(lw,{map:de(ce),"is-dark":Kt.value},null,8,["map","is-dark"]),Je(cw,{map:de(ce),"is-dark":Kt.value},null,8,["map","is-dark"]),Je(uw,{map:de(ce),"is-dark":Kt.value},null,8,["map","is-dark"]),Je(pw,{"map-container":Ae.value,"is-dark":Kt.value},null,8,["map-container","is-dark"]),Je(hw,{"is-dark":Kt.value,onToggle:PL},null,8,["is-dark"]),L.share?(X(),Ge(nx,{key:0,"is-dark":Kt.value,"embed-path":"doxa-research-map/research-map/index.html"},null,8,["is-dark"])):ve("",!0)]),_:1})):ve("",!0),we.value?(X(),Ge(rw,{key:6,"legend-type":E.value,"is-dark":Kt.value},null,8,["legend-type","is-dark"])):ve("",!0),we.value?(X(),Ge(mx,{key:7,"is-open":Vp.value,onClose:B[1]||(B[1]=Y=>Vp.value=!1),onOpenPoster:Hp},{default:Dt(()=>[Je(Rx)]),_:1},8,["is-open"])):ve("",!0),T("div",XS,[we.value&&de(d).legendMode==="detail"&&de(d).selectedPeopleGroup?(X(),Ge(Xk,{key:0,"legend-type":E.value,"popup-action":C.value,"initially-collapsed":!1,"is-dark":Kt.value},null,8,["legend-type","popup-action","is-dark"])):ve("",!0),Wt(T("div",null,[we.value?(X(),Ge(vp,{key:0,nodes:kL.value,tabs:wL.value,title:Kp.value,hideTabs:xL.value,columnLabel:SL.value,progress:de(Pn),open:AL.value,"export-enabled":ZS,onSelect:ca,onExport:$L,"onUpdate:open":LL},null,8,["nodes","tabs","title","hideTabs","columnLabel","progress","open"])):ve("",!0)],512),[[Cm,!(de(d).legendMode==="detail"&&de(d).selectedPeopleGroup)]])]),T("div",JS,[we.value?(X(),Ge(de(r),{key:0,"legend-type":E.value,"popup-action":C.value,"is-dark":Kt.value},null,8,["legend-type","popup-action","is-dark"])):ve("",!0)]),we.value&&qp.value?(X(),Ge(de(s),{key:8,feature:qp.value,action:C.value,dark:Kt.value,onClose:B[2]||(B[2]=Y=>de(g).selectFeature(null))},null,8,["feature","action","dark"])):ve("",!0),Nl.value?(X(),Ge(de(i),{key:9,poster:ms.value,"legend-rows":de(A).rows,"active-tab":M.value,onClose:B[3]||(B[3]=Y=>Nl.value=!1)},null,8,["poster","legend-rows","active-tab"])):ve("",!0)])],2))}}},Symbol.toStringTag,{value:"Module"})),tA={class:"legend-sheet-root"},oA=["src","alt"],nA={key:0,class:"pull-tab-handle"},aA=["aria-label"],rA=["aria-label"],sA=["aria-label"],iA={class:"collapsed-detail-title"},lA={class:"legend-content"},cA=["aria-label"],uA=["aria-label"],wp=80,dA=48,gA=44,pA=24,xp="--legend-sheet-h",Sp=Object.freeze(Object.defineProperty({__proto__:null,default:Rt({__name:"LegendMobile",props:{legendType:{type:String,required:!0},nodes:{type:Array,default:null},tabs:{type:Array,default:null},columnLabel:{type:String,default:null},title:{type:String,default:null},columns:{type:Array,default:null},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const{t}=ht();yt(` +`,"research-map");const l=Pe("profileConfig"),c=Pe("mapboxToken"),u=e1(l),g=t1(u),h=Pe("dataSource");Pe("colorSet");const w=Pe("instanceId",null),x=(()=>{var B;const I=(B=l==null?void 0:l.value)==null?void 0:B.locale;return I&&qi.includes(I)?I:null})(),{locale:f,t:b,te:y}=ht();x&&(f.value=x);function v(I){const B="tabs."+((I==null?void 0:I.i18nKey)||(I==null?void 0:I.id));return I&&y(B)?b(B):(I==null?void 0:I.label)??""}const p=Pe("mapStore"),m=Pe("dataStore"),d=Pe("uiStore"),_=d_(d),L={doxaRegions:!0,adoption:!1,share:!0,hamburgerMenu:!1,geocoderPersistAcrossTabs:!1},S=[{id:"prayer",label:"Prayer",colorStrategy:"prayerProgress",legend:"prayer",popup:"pray",feature:null},{id:"adoption",label:"Adoption",colorStrategy:"adoption",legend:"adoption",popup:"adopt",feature:"adoption"},{id:"engagement",label:"Engagement",colorStrategy:"engagement",legend:"engagement",popup:"pray",feature:null,sepAfter:!0},{id:"affinity-blocks",label:"People Groups (Affinity)",colorStrategy:"affinityBlock",legend:"affinity-block",popup:"pray",feature:null},{id:"doxa-regions",label:"Regions",colorStrategy:"doxaRegion",legend:"doxa-regions",popup:"pray",feature:"doxaRegions",i18nKey:"regions"},{id:"language-families",label:"Languages",colorStrategy:"languageFamily",legend:"language-family",popup:"pray",feature:null},{id:"religion",label:"Religions",colorStrategy:"religion",legend:"religion",popup:"pray",feature:null}].filter(I=>!I.feature||L[I.feature]),U=te(()=>S),G=te(()=>!0),j=ue(null),M=te(()=>U.value.find(I=>I.id===j.value)??U.value[0]);_.setLook(_.lookFor((Zg=M.value)==null?void 0:Zg.colorStrategy)),Re(()=>{var I;return(I=M.value)==null?void 0:I.colorStrategy},I=>_.setLook(_.lookFor(I),ce.value));const E=te(()=>{var I;return((I=M.value)==null?void 0:I.legend)??"default"}),C=te(()=>{var I;return((I=M.value)==null?void 0:I.popup)??"pray"}),P=te(()=>{var I,B,Y,ie;return((I=M.value)==null?void 0:I.id)==="language-families"?"Search language family, language, dialect/variety":((B=M.value)==null?void 0:B.id)==="affinity-blocks"?"Search affinity bloc, cluster, people group":((Y=M.value)==null?void 0:Y.id)==="doxa-regions"?"Search region, country, people group":((ie=M.value)==null?void 0:ie.id)==="religion"?"Search religion, people group":""}),F={"affinity-blocks":"people-groups",prayer:"people-groups",adoption:"people-groups",engagement:"people-groups","language-families":"language","doxa-regions":"regions",religion:"religion"},q=te(()=>{var I;return F[(I=M.value)==null?void 0:I.id]||""}),se=(w==null?void 0:w.value)||w||"research-map-"+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8);kt("mapId",se);const Z=ue(null),oe=ue(null),H=ue(null),fe=new Map;Re(()=>j==null?void 0:j.value,async(I,B)=>{var ie,Se,Ee,He,rt;if(B!==void 0&&I!==B){B&&fe.set(B,d.legendState);const st=fe.get(I)||(d.isMobile?"collapsed":"open");st==="fullyOpen"?(ie=d.fullyOpenLegend)==null||ie.call(d):st==="open"?(Se=d.openLegend)==null||Se.call(d):(Ee=d.collapseLegend)==null||Ee.call(d)}await zt();const Y=(He=oe.value)==null?void 0:He.querySelector(".rm-tab.active");(rt=Y==null?void 0:Y.scrollIntoView)==null||rt.call(Y,{inline:"center",block:"nearest",behavior:"smooth"})});const Ae=ue(null),xe=ue(!1),Ce=ue(null),{map:ce,initializeMap:le,destroy:_e}=J_({containerRef:Ae,accessToken:c.value,provider:u,style:((Qg=l==null?void 0:l.value)==null?void 0:Qg.style)??_.bootStyle(),config:_.bootConfig,center:((ef=l==null?void 0:l.value)==null?void 0:ef.center)??io.center??[20,10],zoom:((tf=l==null?void 0:l.value)==null?void 0:tf.zoom)??io.zoom??1.8,pitch:((of=l==null?void 0:l.value)==null?void 0:of.pitch)??io.pitch??0,bearing:((nf=l==null?void 0:l.value)==null?void 0:nf.bearing)??io.bearing??0,minZoom:((af=l==null?void 0:l.value)==null?void 0:af.minZoom)??io.minZoom??.5,maxZoom:sA}),he=new cg({sourcesConfig:Ln,locale:x}),we=S1({mapId:se,dataSourceId:h.value,dataSourceManager:he,dataStore:m,markRaw:I=>I});async function $(I){const B=String(I||"").trim().toUpperCase();if(B.length!==3)return;await or();const Y=ce.value;if(!Y||!Y.getLayer("regions-fill"))return;Y.setLayoutProperty("regions-fill","visibility","visible"),Y.setLayoutProperty("regions-border","visibility","visible");const ie=["literal",[B]];Y.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],ie],.3,.02]),Y.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],ie],"#111827","rgba(60,60,80,0.15)"]),Y.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],ie],2.5,.3]),Y.getLayer("language-family-pins")&&Y.moveLayer("language-family-pins")}function z(){var B;V.clearCountry();const I=ce.value;!I||!I.getLayer("regions-fill")||(I.setPaintProperty("regions-fill","fill-opacity",.2),I.setPaintProperty("regions-fill","fill-outline-color",null),I.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),I.setPaintProperty("regions-border","line-width",.6),((B=M.value)==null?void 0:B.id)!=="doxa-regions"&&(I.setLayoutProperty("regions-fill","visibility","none"),I.setLayoutProperty("regions-border","visibility","none")))}const R=c1({getMap:()=>ce.value,mapId:se,getLanguageFamilyColor:I=>{var Y,ie;const B=wo((Y=M.value)==null?void 0:Y.colorStrategy);return((ie=B==null?void 0:B.colors)==null?void 0:ie[I])??(B==null?void 0:B.fallback)??"#7c8cf8"},getNormalizedPeopleGroups:()=>we.normalizedPeopleGroups.value||[]});Qp({getMap:()=>ce.value,mapId:se,getLanguageFamilyColor:()=>"#7c8cf8",getNormalizedPeopleGroups:()=>we.normalizedPeopleGroups.value||[]});const K=u1({getMap:()=>ce.value,mapId:se,mapStore:p,defaultCenter:((rf=l==null?void 0:l.value)==null?void 0:rf.center)??[20,10],defaultZoom:((sf=l==null?void 0:l.value)==null?void 0:sf.zoom)??1.8}),ee=p1({getMap:()=>ce.value,getActivePinColor:I=>{var Y,ie;const B=wo(((Y=M.value)==null?void 0:Y.colorStrategy)??"languageFamily");return((ie=B==null?void 0:B.getColor)==null?void 0:ie.call(B,I))??"#1a1a1a"}});let D=null,ne=null;function ae(){return D?Promise.resolve(D):(ne||(ne=eo(()=>Promise.resolve().then(()=>LL),void 0).then(I=>(D=I.useMapClustering({getMap:()=>ce.value,mapId:se,mapStore:p,getPeopleGroups:()=>we.normalizedPeopleGroups.value||[],getClusterColor:()=>{var B,Y;return((Y=wo((B=M.value)==null?void 0:B.colorStrategy))==null?void 0:Y.fallback)??"#7c8cf8"}}),D))),ne)}const k={setData(I){var B;(B=D==null?void 0:D.setData)==null||B.call(D,I)},applyFilters(I){var B;(B=D==null?void 0:D.applyFilters)==null||B.call(D,I)},refreshColors(){var I;(I=D==null?void 0:D.refreshColors)==null||I.call(D)},cleanup(){var I;(I=D==null?void 0:D.cleanup)==null||I.call(D)},async setEnabled(I){var B,Y;(Y=(B=await ae()).setEnabled)==null||Y.call(B,I)},async setMode(I){var B,Y;(Y=(B=await ae()).setMode)==null||Y.call(B,I)},_pendingSelectionFilter:null,setSelectionFilter(I){this._pendingSelectionFilter=I||null,D!=null&&D.setSelectionFilter&&D.setSelectionFilter(I)},flushSelectionFilter(){D!=null&&D.setSelectionFilter&&D.setSelectionFilter(this._pendingSelectionFilter)}},A=Za({});kt("legendRows",A.rows),kt("normalizedPeopleGroups",we.normalizedPeopleGroups);const V=b1(()=>ce.value),Q=Gw(se);Kw(Q);const{onPeopleGroupResult:me,onAggregateResult:ge,onClear:J,clearGeocoderProgrammatic:N}=A1({map:ce,geocoderRef:H,clustering:k,mapStore:p,uiStore:d,mapLayers:R,pplrInstance:Q,onSemanticTreeSelect:ca,switchTab:bs,activeTabId:j,clearAllHighlights:ys,clearCountryHighlight:z,mapId:se,legendRouters:{country:YL,region:WL,religion:qL}});Q.activeTab.value=1;function W(I){return I==="affinity-block"?0:I==="language-family"?1:0}Re(E,I=>{Q.activeTab.value=W(I)});const pe={get value(){return we.normalizedPeopleGroups.value||[]}},{langTree:be}=vl(pe),Le=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor (e.g. Indo-European, Afro-Asiatic)."},{id:"language",label:"Language",info:"A language is a system of communication used by a people (e.g. Arabic, Bengali, Hindi)."},{id:"dialect",label:"Dialect/Variety",info:"A dialect/variety is a regional or social form of a language (e.g. Arabic, Sudanese; Pakistan Sign Language)."}],{affinityTree:Oe}=_g(pe),Ie=[{id:"bloc",label:"Affinity Block",info:"Affinity Block (field: rop1) — broadest grouping by cultural/linguistic/geographic kinship. 16 blocks total. Examples: Malay Peoples, South Asian Peoples, Deaf, Arab World."},{id:"cluster",label:"Cluster",info:'Cluster (field: imb_reg_of_people_2, ROP 2) — finer-grained grouping inside a bloc. 194 clusters total. Suffix "(Cluster)" appears on each row to distinguish from PG/PGIC. Example: Borneo-Kalimantan within Malay Peoples.'},{id:"group",label:"People Group",info:'People Group (field: imb_reg_of_people_25, ROP 2.5) — abstract ethnolinguistic identity, country-agnostic. Suffix "(PG)" on each row. 1,736 PGs total; 131 of them have rows in multiple countries (e.g. Deaf in 123 countries). Example: Abai Sungai (PG) is one ROP25 code regardless of where its people live.'},{id:"pgic",label:"PG in Country",info:'PGIC = People Group In Country (field: imb_reg_of_people_3 + country_code) — one row per (people group, country) pair. Suffix "(PGIC)" on each row. 2,106 rows total. Example: "Abai Sungai, Malaysia (PGIC)" is the Abai Sungai PG specifically as it exists in Malaysia.'}],{regionsTree:ct}=kg(pe),Ke=[{id:"region",label:"WAGF Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"WAGF Bloc",info:'WAGF bloc — the organizational sub-grouping within each region (e.g. "South East Asia", "West Africa").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],et=Za(Sr(()=>E.value),ps),Pn=et.progress;kt("legendProgress",Pn);function hs(I){const B=[];for(const Y of I){B.push({id:Y.key,label:Y.label,color:Y.color,count:Y.count??0,pop:Y.population??0,filter:Y.filterKey?["==",["get","_flat_filter"],Y.filterKey]:null,children:[]});for(const ie of Y.children||[])B.push({id:ie.key,label:ie.label,color:ie.color,count:ie.count??0,pop:ie.population??0,filter:ie.filterKey?["==",["get","_flat_filter"],ie.filterKey]:null,children:[]})}return B}const dn=te(()=>["prayer","engagement","adoption","religion"].includes(E.value)),RL=te(()=>dn.value?hs(et.items.value):E.value==="affinity-block"?Oe.value:E.value==="doxa-regions"?ct.value:be.value),DL=te(()=>dn.value?null:E.value==="affinity-block"?Ie:E.value==="doxa-regions"?Ke:Le),OL=te(()=>dn.value),BL=te(()=>E.value==="religion"?b("legend.colLabel.religion"):E.value==="prayer"?b("legend.colLabel.prayer"):E.value==="engagement"?b("legend.colLabel.engagement"):E.value==="adoption"?b("legend.colLabel.adoption"):dn.value?b("legend.colLabel.status"):""),jL=te(()=>d.legendState!=="collapsed");function zL(I){I?d.openLegend():d.collapseLegend()}const Kg=te(()=>dn.value?b("legend.titleBar.legend"):E.value==="affinity-block"?b("legend.titleBar.peopleGroups"):E.value==="doxa-regions"?b("legend.titleBar.wagfRegions"):b("legend.titleBar.languages"));function Nn(I,B){var Y;for(const ie of I){if(B(ie))return ie;if((Y=ie.children)!=null&&Y.length){const Se=Nn(ie.children,B);if(Se)return Se}}return null}kt("onSemanticTreeSelect",I=>ca(I)),kt("getActivePinColor",I=>{var Y,ie;const B=wo(((Y=M.value)==null?void 0:Y.colorStrategy)??"languageFamily");return((ie=B==null?void 0:B.getColor)==null?void 0:ie.call(B,I))??"#1a1a1a"});function UL(I,B){if(!I||!B)return null;const Y=I.id;if(B==="prayer"){const ie=["to-number",["get","peoplePraying"]];if(Y==="noPrayer")return["==",ie,0];if(Y==="fullPrayer")return[">=",ie,xo];if(Y==="hasPrayer")return["all",[">",ie,0],["<",ie,xo]]}else if(B==="engagement"){if(Y==="hasEngagement")return["==",["get","engagementStatus"],!0];if(Y==="notEngaged")return["==",["get","engagementStatus"],!1]}else if(B==="adoption"){if(Y==="hasAdoption")return["==",["get","adoptionStatus"],!0];if(Y==="notAdopted")return["==",["get","adoptionStatus"],!1]}else if(B==="religion")return["==",["slice",["coalesce",["get","religion"],""],0,1],Y];return null}function ca(I){var ie,Se,Ee,He,rt,st,vt,gn;const B=ce.value;if(I){const tt=dn.value?UL(I,E.value):null,Ue=((ie=M.value)==null?void 0:ie.id)==="doxa-regions",wt=tt?{matchExpr:tt}:{};Ue&&(wt.regionPolygonSource="regions"),(Se=K.zoomToLegendRow)==null||Se.call(K,I,Object.keys(wt).length?wt:void 0)}if(!I){if(dn.value){const tt=E.value;tt==="prayer"?d.setPrayerFilter(null):tt==="engagement"?d.setEngagementFilter(null):tt==="adoption"?d.setAdoptionFilter(null):tt==="religion"&&d.setReligionFilter(null)}if(B&&B.getLayer("language-family-pins")){try{B.setFilter("language-family-pins",null)}catch{}n(B,null),B.setPaintProperty("language-family-pins","circle-opacity",1),B.setPaintProperty("language-family-pins","circle-stroke-opacity",1),B.getLayer("language-family-pins-shadow")&&B.setPaintProperty("language-family-pins-shadow","circle-opacity",1),R.syncGlowFilter(null)}B&&B.getLayer("regions-fill")&&(B.setPaintProperty("regions-fill","fill-opacity",.7),B.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),B.setPaintProperty("regions-border","line-width",.6)),p.selectedFamily&&p.selectFamily(null),p.selectedLanguage&&p.selectLanguage(null),p.selectedDialect&&((Ee=p.selectDialect)==null||Ee.call(p,null)),p.selectedRegion&&((He=p.selectRegion)==null||He.call(p,null)),N();return}if(dn.value){const tt=E.value;tt==="prayer"?d.setPrayerFilter(I.id):tt==="engagement"?d.setEngagementFilter(I.id):tt==="adoption"?d.setAdoptionFilter(I.id):tt==="religion"&&d.setReligionFilter(I.id);return}if(B&&B.getLayer("language-family-pins")&&I.filter){try{B.setFilter("language-family-pins",I.filter)}catch{}n(B,I.filter),B.setPaintProperty("language-family-pins","circle-opacity",1),B.setPaintProperty("language-family-pins","circle-stroke-opacity",1),R.syncGlowFilter(I.filter)}const Y=String(I.id||"");if(Y.startsWith("fam:"))(rt=p.selectFamily)==null||rt.call(p,I.label);else if(Y.startsWith("lang:"))(st=p.selectLanguage)==null||st.call(p,I.label);else if(Y.startsWith("dial:"))(vt=p.selectDialect)==null||vt.call(p,{key:Y.slice(5),originalLabels:I.originalLabels||[]});else if(Y.startsWith("bloc:")||Y.startsWith("cluster:")||Y.startsWith("pg:")||Y.startsWith("pgic:")){if(B&&B.getLayer("language-family-pins")&&I.filter){try{B.setFilter("language-family-pins",null)}catch{}n(B,I.filter),B.setPaintProperty("language-family-pins","circle-opacity",["case",I.filter,1,0]),B.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",I.filter,1,0]),B.getLayer("language-family-pins-shadow")&&B.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",I.filter,1,0]),R.syncGlowFilter(I.filter)}}else if(Y.startsWith("region:")||Y.startsWith("block:")||Y.startsWith("country:")){if(B&&B.getLayer("language-family-pins")&&I.filter){try{B.setFilter("language-family-pins",I.filter)}catch{}n(B,I.filter),B.setPaintProperty("language-family-pins","circle-opacity",1),B.setPaintProperty("language-family-pins","circle-stroke-opacity",1)}if(Y.startsWith("region:")&&((gn=p.selectRegion)==null||gn.call(p,Y.slice(7))),B&&B.getLayer("regions-fill")){const tt=I.isoCodes||[];if(tt.length){const Ue=["literal",tt];B.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],Ue],.85,.15]),B.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],Ue],"#111827","rgba(60,60,80,0.15)"]),B.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],Ue],2.5,.3])}else B.setPaintProperty("regions-fill","fill-opacity",.7),B.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),B.setPaintProperty("regions-border","line-width",.6)}}}Re(()=>d.theme,I=>{Q.theme.value=I==="dark"?"dark":"light"},{immediate:!0});function pn(I,B){var ie,Se;if(!B){const Ee=Q.selection.value;Ee&&((ie=Ee.id)!=null&&ie.startsWith(I+":"))&&(Q.selection.value=null);return}const Y=Q.selection.value;Y&&((Se=Y.id)!=null&&Se.startsWith(I+":"))&&Y.label===B.label||(Q.selection.value=B)}Re(()=>p.selectedFamily,I=>{if(!I)return pn("fam",null);const B=Nn(be.value,Y=>Y.id.startsWith("fam:")&&Y.label===I);B&&pn("fam",{...B,depth:0})}),Re(()=>p.selectedLanguage,I=>{if(!I)return pn("lang",null);const B=Nn(be.value,Y=>Y.id.startsWith("lang:")&&Y.label===I);B&&pn("lang",{...B,depth:1})}),Re(()=>p.selectedDialect,I=>{if(!(I!=null&&I.key))return pn("dial",null);const B=`dial:${I.key}`,Y=Nn(be.value,ie=>ie.id===B);Y&&pn("dial",{...Y,depth:2})}),Re(()=>p.selectedRegion,I=>{if(!I)return pn("region",null);const B=Nn(ct.value,Y=>Y.id===`region:${I}`);B&&pn("region",{...B,depth:0})});const ms=ue(null);async function Hg(){ms.value||(ms.value=await a()),Nl.value=!0}function GL(I){if(I==="poster")return Hg();if(I==="packet")return HL()}let Pl=!1;function KL(I,B){const Y=URL.createObjectURL(I),ie=document.createElement("a");ie.href=Y,ie.download=B,document.body.appendChild(ie),ie.click(),ie.remove(),setTimeout(()=>URL.revokeObjectURL(Y),1e3)}async function HL(){var I;if(!Pl){Pl=!0;try{o||(o=eo(()=>Promise.resolve().then(()=>FL),void 0).then(He=>He.useMapPacket(()=>ce.value)));const B=await o;let Y=we.normalizedPeopleGroups.value||[];Y.length>50&&(console.warn(`[research-map] packet export truncated ${Y.length} → 50 people groups`),Y=Y.slice(0,50));const{defaultPosterSpec:ie}=await eo(async()=>{const{defaultPosterSpec:He}=await Promise.resolve().then(()=>xA);return{defaultPosterSpec:He}},void 0),Se=ie({widthIn:8.27,heightIn:11.69,dpi:150,orientation:"portrait"});Se.slots.title={...Se.slots.title,text:Kg.value||"Doxa Map"},Se.slots.legend={...Se.slots.legend,rows:((I=A==null?void 0:A.rows)==null?void 0:I.value)||[]};const Ee=await B.renderPacket(Se,Y,{source:"pray.doxa.life",date:new Date().toISOString().slice(0,10)});KL(Ee,"packet.pdf")}catch(B){console.error("[research-map] packet export failed:",B)}finally{Pl=!1}}}const Vg=ue(!1),Nl=ue(!1),qg=te(()=>p.selectedFeature),Kt=te(()=>d.isDarkTheme),Il=te(()=>Lp.lightPreset==="night");function Ml(){var Y;const I=ce.value;if(!I||!I.getLayer("language-family-pins"))return;const B=Il.value?"#ffffff":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"];I.setPaintProperty("language-family-pins","circle-stroke-color",B),I.setPaintProperty("language-family-pins","circle-stroke-width",Il.value?s1((Y=M.value)==null?void 0:Y.colorStrategy):eg)}Re(Il,Ml,{immediate:!1}),Re(()=>{var I;return(I=M.value)==null?void 0:I.id},Ml),Re(()=>d.theme,()=>_.applyTheme(ce.value));function VL(){_.swapTheme(ce.value)}const Wg=ue(!1);let tr=null;async function or(){if(!Wg.value)return tr||(tr=(async()=>{var I,B,Y;try{const ie=await((I=we.loadRegionsData)==null?void 0:I.call(we));ie&&ce.value&&((B=R.addRegionsLayer)==null||B.call(R,ie,"doxa-regions"),ce.value.getLayer("regions-fill")&&((Y=M.value)==null?void 0:Y.id)!=="doxa-regions"&&(ce.value.setLayoutProperty("regions-fill","visibility","none"),ce.value.setLayoutProperty("regions-border","visibility","none")),ce.value.getLayer("language-family-pins")&&ce.value.moveLayer("language-family-pins")),Wg.value=!0,we.regionsData.value=null}catch(ie){console.warn("[research-map] regions layer failed:",ie)}finally{tr=null}})(),tr)}function bs(I){var ie,Se,Ee;if(I===j.value)return;j.value=I,(ie=d.setActiveTab)==null||ie.call(d,I),N();const B=U.value.find(He=>He.id===I);if(!B||!ce.value)return;_.setLook(_.lookFor(B.colorStrategy),ce.value),B.id==="doxa-regions"&&or();const Y=wo(B.colorStrategy);if(ce.value.getLayer("language-family-pins")&&(Y!=null&&Y.buildColorExpression)){const He=B.id==="doxa-regions"?"#a30000":Y.buildColorExpression();ce.value.setPaintProperty("language-family-pins","circle-color",He),ys(ce.value),B.id==="prayer"?R.startPrayerGlow():R.stopPrayerGlow();const rt=B.id==="doxa-regions";ce.value.getLayer("regions-fill")&&(ce.value.setLayoutProperty("regions-fill","visibility",rt?"visible":"none"),ce.value.setLayoutProperty("regions-border","visibility",rt?"visible":"none")),ce.value.getLayer("language-family-pins")&&ce.value.moveLayer("language-family-pins")}(Se=A.refresh)==null||Se.call(A),(Ee=k.refreshColors)==null||Ee.call(k)}function Yg(I){var Y,ie;const B=I==null?void 0:I.detail;!B||B.mapId!==se||(B.center&&Array.isArray(B.center)?(Y=K.flyToCoords)==null||Y.call(K,{longitude:B.center[0],latitude:B.center[1]},B.zoom??4):B.bounds&&((ie=K.fitBounds)==null||ie.call(K,B.bounds,60)))}function Xg(I){var st,vt,gn;const B=I==null?void 0:I.detail;if(!B||($t(B),!((st=B.coords)!=null&&st.length)))return;const Y=B.coords;if(Y.length===1){(vt=K.flyToCoords)==null||vt.call(K,{longitude:Y[0][0],latitude:Y[0][1]},3);return}let ie=1/0,Se=-1/0,Ee=1/0,He=-1/0;for(const[tt,Ue]of Y)ttSe&&(Se=tt),UeHe&&(He=Ue);const rt=B.kind==="region"?2.2:3;(gn=K.fitBounds)==null||gn.call(K,[[ie,Ee],[Se,He]],60,{maxZoom:rt})}const Ht={family:null,language:null,dialect:null,region:null,prayer:null,engagement:null,adoption:null};function ys(I){I.setPaintProperty("language-family-pins","circle-opacity",1),I.setPaintProperty("language-family-pins","circle-stroke-opacity",1),I.getLayer("language-family-pins-shadow")&&I.setPaintProperty("language-family-pins-shadow","circle-opacity",1),I.setFilter("language-family-pins",null),n(I,null),R.syncGlowFilter(null),I.getLayer("regions-fill")&&(I.setPaintProperty("regions-fill","fill-opacity",.7),I.setPaintProperty("regions-fill","fill-outline-color",null)),I.getLayer("regions-border")&&(I.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),I.setPaintProperty("regions-border","line-width",.6)),Ht.family=Ht.language=Ht.dialect=Ht.region=null,Ht.prayer=Ht.engagement=Ht.adoption=null,d.prayerFilter&&d.setPrayerFilter(null),d.engagementFilter&&d.setEngagementFilter(null),d.adoptionFilter&&d.setAdoptionFilter(null),d.religionFilter&&d.setReligionFilter(null),k.setSelectionFilter(null),p.selectedFamily&&p.selectFamily(null),p.selectedLanguage&&p.selectLanguage(null),p.selectedDialect&&p.selectDialect(null);try{Q&&Q.selection&&Q.selection.value&&(Q.selection.value=null)}catch{}}let vs=null,_s=0;function $t(I){var rt,st,vt,gn,tt;const B=ce.value;if(!B||!B.getLayer("language-family-pins"))return;let Y,ie,Se;if(I.kind==="family")Se="family",Y="languageFamily",ie=I.familyKey;else if(I.kind==="language")Se="language",Y="language",ie=I.languageKey;else if(I.kind==="region")Se="region",Y="doxaRegion",ie=I.regionKey;else if(I.kind==="prayer")Se="prayer",Y=I.property||"peoplePraying",ie=I.expectedValue;else if(I.kind==="engagement")Se="engagement",Y=I.property||"engagementStatus",ie=I.expectedValue;else if(I.kind==="adoption")Se="adoption",Y=I.property||"adoptionStatus",ie=I.expectedValue;else if(I.kind==="religion")Se="religion",Y=I.property||"religion",ie=I.expectedValue;else if(I.kind==="dialect")Se="dialect",Y="language",ie=I.dialectKey||"";else{ys(B),N();for(const Ue of Object.keys(Ht))Ht[Ue]=null;vs=null,_s=0;return}const Ee=Date.now(),He=`${Se}|${ie}`;if(!(vs===He&&Ee-_s<80)){if(vs=He,_s=Ee,Ht[Se]===ie){ys(B),N(),vs=null,_s=0;return}for(const Ue of Object.keys(Ht))Ht[Ue]=null;if(Ht[Se]=ie,Se==="family"?(rt=p.selectFamily)==null||rt.call(p,ie):Se==="region"?(st=p.selectRegion)==null||st.call(p,ie):Se==="language"?(vt=p.selectLanguage)==null||vt.call(p,ie):Se==="dialect"&&((gn=p.selectDialect)==null||gn.call(p,{key:ie,originalLabels:I.originalLabels||[]})),k.setSelectionFilter({property:Y,value:ie}),Se==="region"){if(B.setFilter("language-family-pins",["==",["get","doxaRegion"],ie]),n(B,["==",["get","doxaRegion"],ie]),B.setPaintProperty("language-family-pins","circle-opacity",1),B.setPaintProperty("language-family-pins","circle-stroke-opacity",1),B.getLayer("regions-fill")){const Ue=((tt=R.regionIsoMap)==null?void 0:tt.value)||{},wt=In=>String(In).toLowerCase().replace(/[^a-z]/g,""),JL=wt(ie);let ks=Ue[ie]||[];if(!ks.length){for(const[In,ZL]of Object.entries(Ue))if(wt(In)===JL){ks=ZL;break}}if(ks.length){const In=["literal",ks];B.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],In],.85,.15]),B.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],In],"#111827","rgba(60,60,80,0.15)"]),B.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],In],2.5,.3])}else B.setPaintProperty("regions-fill","fill-opacity",.7),B.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),B.setPaintProperty("regions-border","line-width",.6)}}else{B.setFilter("language-family-pins",null);let Ue;if(Se==="prayer"){const wt=["to-number",["get",Y]];ie==="noPrayer"?Ue=["==",wt,0]:ie==="fullPrayer"?Ue=[">=",wt,xo]:ie==="hasPrayer"?Ue=["all",[">",wt,0],["<",wt,xo]]:Ue=["==",["get",Y],ie]}else if(Se==="engagement")Ue=["==",["get",Y],ie==="hasEngagement"];else if(Se==="adoption")Ue=["==",["get",Y],ie==="hasAdoption"];else if(Se==="religion")Ue=["==",["slice",["coalesce",["get",Y],""],0,1],ie];else if(I.filterExpr)Ue=I.filterExpr;else if(Se==="language")Ue=["any",["==",["get",Y],ie],["==",["slice",["get",Y],0,ie.length+1],ie+","],["in"," "+ie,["get",Y]]];else if(Se==="dialect"){const wt=I.originalLabels||[];wt.length===1?Ue=["==",["get",Y],wt[0]]:wt.length>1?Ue=["in",["get",Y],["literal",wt]]:Ue=["==",["get",Y],ie]}else Ue=["==",["get",Y],ie];B.setPaintProperty("language-family-pins","circle-opacity",["case",Ue,1,0]),B.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",Ue,1,0]),B.getLayer("language-family-pins-shadow")&&B.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",Ue,1,0]),n(B,Ue),R.syncGlowFilter(Ue),B.getLayer("regions-fill")&&(B.setPaintProperty("regions-fill","fill-opacity",.2),B.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),B.setPaintProperty("regions-border","line-width",.6))}}}function qL(I,{map:B,filterLayerId:Y}){const ie=I.label;try{B.setFilter(Y,null)}catch{}const Se=Object.keys($n).find(Ee=>$n[Ee]===ie);if(Se){const Ee={id:Se,label:ie,depth:0},He=()=>{try{B.setFilter(Y,null)}catch{}ca(Ee),Q&&Q.selection&&(Q.selection.value=Ee)};j.value!=="religion"&&bs("religion"),zt(He)}}function WL(I,{map:B,filterLayerId:Y}){const ie=I.label,Se=st=>String(st).toLowerCase().replace(/[^a-z0-9]/g,""),Ee=st=>String(st||"").replace(/\s*\((?:Region|Bloc)\)\s*$/i,""),He=Se(ie),rt=()=>{try{B.setFilter(Y,null)}catch{}const st=Nn(ct.value,vt=>(vt.id.startsWith("region:")||vt.id.startsWith("block:"))&&Se(Ee(vt.label))===He);st&&(ca(st),Q&&Q.selection&&(Q.selection.value=st))};j.value!=="doxa-regions"?(bs("doxa-regions"),Promise.resolve(or()).finally(()=>zt(rt))):rt()}function YL(I){var Y,ie,Se,Ee;if(Array.isArray(I.bounds)&&I.bounds.length===4){const[He,rt,st,vt]=I.bounds;(Y=K.fitBounds)==null||Y.call(K,[[He,rt],[st,vt]],60)}else Array.isArray(I.center)&&I.center.length===2&&((ie=K.flyTo)==null||ie.call(K,I.center));const B=h1(I,we.normalizedPeopleGroups.value||[]);if(B&&$(B),B&&((Se=M.value)==null?void 0:Se.id)!=="doxa-regions"&&V.showCountry(B),B&&((Ee=M.value)==null?void 0:Ee.id)==="doxa-regions"){const He=()=>{const rt=Nn(ct.value,st=>st.id.startsWith("country:")&&(st.isoCodes||[]).includes(B));rt&&(ca(rt),Q&&Q.selection&&(Q.selection.value=rt))};Promise.resolve(or()).finally(()=>zt(He))}}Re(()=>p.filters,()=>{var I,B;(I=R.applyFilters)==null||I.call(R,p.filters),(B=k.applyFilters)==null||B.call(k,p.filters)},{deep:!0}),Re(()=>p.selectedRegion,I=>{$t(I?{kind:"region",regionKey:I}:{kind:null})}),Re(()=>p.selectedFamily,I=>{I?$t({kind:"family",familyKey:I}):!p.selectedLanguage&&!p.selectedDialect&&$t({kind:null})}),Re(()=>p.selectedLanguage,I=>{I?$t({kind:"language",languageKey:I}):!p.selectedFamily&&!p.selectedDialect&&$t({kind:null})}),Re(()=>p.selectedDialect,I=>{I!=null&&I.key?$t({kind:"dialect",dialectKey:I.key,originalLabels:I.originalLabels||[]}):!p.selectedFamily&&!p.selectedLanguage&&$t({kind:null})}),Re(()=>d.prayerFilter,I=>{$t(I?{kind:"prayer",property:"peoplePraying",expectedValue:I}:{kind:null})}),Re(()=>d.engagementFilter,I=>{$t(I?{kind:"engagement",property:"engagementStatus",expectedValue:I}:{kind:null})}),Re(()=>d.adoptionFilter,I=>{$t(I?{kind:"adoption",property:"adoptionStatus",expectedValue:I}:{kind:null})}),Re(()=>d.religionFilter,I=>{$t(I?{kind:"religion",property:"religion",expectedValue:I}:{kind:null})}),Re(()=>p.showClusters,async I=>{var B,Y,ie,Se;I?(await((B=k.setMode)==null?void 0:B.call(k,"mst")),(Y=k.flushSelectionFilter)==null||Y.call(k),await((ie=k.setEnabled)==null?void 0:ie.call(k,!0))):await((Se=k.setEnabled)==null?void 0:Se.call(k,!1))});async function XL(I){var B,Y,ie,Se,Ee,He,rt;p.registerMap(se,ce.value);try{ce.value.setProjection("mercator")}catch{}_.applyTheme(ce.value),I!=null&&I.length&&(R.addLanguageFamilyLayer(I,((B=M.value)==null?void 0:B.colorStrategy)??"languageFamily"),((Y=M.value)==null?void 0:Y.id)==="doxa-regions"&&((ie=ce.value)!=null&&ie.getLayer("language-family-pins"))&&ce.value.setPaintProperty("language-family-pins","circle-color","#4b5563"),((Se=M.value)==null?void 0:Se.id)==="prayer"&&R.startPrayerGlow(),(Ee=k.setData)==null||Ee.call(k,I),(He=A.build)==null||He.call(A,I),ee.initialize()),((rt=M.value)==null?void 0:rt.id)==="doxa-regions"&&(typeof window<"u"&&window.requestIdleCallback?vt=>window.requestIdleCallback(vt,{timeout:2e3}):vt=>setTimeout(vt,800))(()=>{or()}),Ml(),p.setMapReady(se),xe.value=!0}let nr=null;function Jg(I){const B=Z.value;B&&(getComputedStyle(B).getPropertyValue("--map-radius").trim()||(B.style.setProperty("--map-radius","16px"),B.style.setProperty("--map-radius-sm","8px")),I>=700?(B.style.setProperty("--map-btn-size","40px"),B.style.setProperty("--map-toolbar-gap","8px"),B.style.setProperty("--map-font-md","13px"),B.style.setProperty("--map-font-sm","11px"),B.style.setProperty("--map-legend-width","380px")):I>=500?(B.style.setProperty("--map-btn-size","36px"),B.style.setProperty("--map-toolbar-gap","6px"),B.style.setProperty("--map-font-md","12px"),B.style.setProperty("--map-font-sm","10px"),B.style.setProperty("--map-legend-width","360px")):(B.style.setProperty("--map-btn-size","32px"),B.style.setProperty("--map-toolbar-gap","5px"),B.style.setProperty("--map-font-md","11px"),B.style.setProperty("--map-font-sm","10px"),B.style.setProperty("--map-legend-width","280px")))}return Jt(async()=>{var B,Y,ie,Se;(B=d.init)==null||B.call(d),j.value=((Y=U.value[0])==null?void 0:Y.id)??"doxa-regions",d.isMobile?(ie=d.collapseLegend)==null||ie.call(d):(Se=d.openLegend)==null||Se.call(d),Z.value&&(Jg(Z.value.getBoundingClientRect().width),typeof ResizeObserver<"u"&&(nr=new ResizeObserver(Ee=>{for(const He of Ee)Jg(He.contentRect.width)}),nr.observe(Z.value))),window.addEventListener("doxa:legend-row-click",Yg),window.addEventListener("legend:highlight",Xg);const I=we.loadData().catch(Ee=>(console.error("[research-map] data load failed:",Ee),{normalizedPeopleGroups:[]}));try{await le()}catch(Ee){console.error("[research-map] Map failed to initialize —",Ee),Ce.value=String((Ee==null?void 0:Ee.message)||Ee);return}{const Ee=ce.value?ze(ce.value):null;Ee&&Ee!==ce.value&&(ce.value=null,ce.value=Bn(Ee))}if(!ce.value){console.error("[research-map] Map failed to initialize — check token and container"),Ce.value="Map failed to initialize — check token and container";return}ce.value.once("style.load",async()=>{try{const{normalizedPeopleGroups:Ee}=await I;await XL(Ee)}catch(Ee){console.error("[research-map] onMapReady failed:",Ee),Ce.value=String((Ee==null?void 0:Ee.message)||Ee)}})}),ho(()=>{var I,B,Y,ie;window.removeEventListener("doxa:legend-row-click",Yg),window.removeEventListener("legend:highlight",Xg),nr&&(nr.disconnect(),nr=null),(B=(I=ms.value)==null?void 0:I.cleanup)==null||B.call(I),R.stopPrayerGlow(),(Y=k.cleanup)==null||Y.call(k),(ie=ee.cleanup)==null||ie.call(ee),p.unregisterMap(se),_e()}),(I,B)=>(X(),re("div",{ref_key:"rmRoot",ref:Z,class:Te(["rm-root",{"rm-dark":Kt.value,"dsm-dark":Kt.value}])},[G.value?(X(),re("div",{key:0,ref_key:"tabBar",ref:oe,class:"rm-tab-bar"},[(X(!0),re(Be,null,At(U.value,Y=>(X(),re(Be,{key:Y.id},[T("button",{class:Te(["rm-tab",{active:j.value===Y.id}]),onClick:ie=>bs(Y.id)},ye(v(Y)),11,JS),Y.sepAfter?(X(),re("div",ZS)):ve("",!0)],64))),128))],512)):ve("",!0),T("div",QS,[!xe.value&&!Ce.value?(X(),re("div",eA,"Research map loading…")):ve("",!0),Ce.value?(X(),re("div",tA,"The map could not be loaded. "+ye(Ce.value),1)):ve("",!0),T("div",{ref_key:"mapContainer",ref:Ae,class:"rm-map-canvas"},null,512),B[4]||(B[4]=T("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),B[5]||(B[5]=T("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),de(u)!=="mapbox"?(X(),re("div",{key:2,class:"rm-provider-badge","data-provider":de(u)},ye(de(g)),9,oA)):ve("",!0),xe.value&&de(ce)?(X(),Ge(Bx,{key:3,ref_key:"geocoderRef",ref:H,"map-instance":de(ce),"access-token":de(c),provider:de(u),"data-source-id":de(h),"is-dark":Kt.value,placeholder:P.value,"active-context":q.value,onPeopleGroupResult:de(me),onAggregateResult:de(ge),onClear:de(J)},null,8,["map-instance","access-token","provider","data-source-id","is-dark","placeholder","active-context","onPeopleGroupResult","onAggregateResult","onClear"])):ve("",!0),ve("",!0),xe.value&&de(ce)?(X(),Ge(px,{key:5},{default:Dt(()=>[Je(fx,{map:de(ce),"is-dark":Kt.value},null,8,["map","is-dark"]),Je(hx,{map:de(ce),"is-dark":Kt.value},null,8,["map","is-dark"]),Je(mx,{map:de(ce),"is-dark":Kt.value},null,8,["map","is-dark"]),Je(vx,{"map-container":Ae.value,"is-dark":Kt.value},null,8,["map-container","is-dark"]),Je(kx,{"is-dark":Kt.value,onToggle:VL},null,8,["is-dark"]),L.share?(X(),Ge(cw,{key:0,"is-dark":Kt.value,"embed-path":"doxa-research-map/research-map/index.html"},null,8,["is-dark"])):ve("",!0)]),_:1})):ve("",!0),xe.value?(X(),Ge(dx,{key:6,"legend-type":E.value,"is-dark":Kt.value},null,8,["legend-type","is-dark"])):ve("",!0),xe.value?(X(),Ge(xw,{key:7,"is-open":Vg.value,onClose:B[1]||(B[1]=Y=>Vg.value=!1),onOpenPoster:Hg},{default:Dt(()=>[Je(Uw)]),_:1},8,["is-open"])):ve("",!0),T("div",nA,[xe.value&&de(d).legendMode==="detail"&&de(d).selectedPeopleGroup?(X(),Ge(tx,{key:0,"legend-type":E.value,"popup-action":C.value,"initially-collapsed":!1,"is-dark":Kt.value},null,8,["legend-type","popup-action","is-dark"])):ve("",!0),Wt(T("div",null,[xe.value?(X(),Ge(vg,{key:0,nodes:RL.value,tabs:DL.value,title:Kg.value,hideTabs:OL.value,columnLabel:BL.value,progress:de(Pn),open:jL.value,"export-enabled":rA,onSelect:ca,onExport:GL,"onUpdate:open":zL},null,8,["nodes","tabs","title","hideTabs","columnLabel","progress","open"])):ve("",!0)],512),[[Cm,!(de(d).legendMode==="detail"&&de(d).selectedPeopleGroup)]])]),T("div",aA,[xe.value?(X(),Ge(de(r),{key:0,"legend-type":E.value,"popup-action":C.value,"is-dark":Kt.value},null,8,["legend-type","popup-action","is-dark"])):ve("",!0)]),xe.value&&qg.value?(X(),Ge(de(s),{key:8,feature:qg.value,action:C.value,dark:Kt.value,onClose:B[2]||(B[2]=Y=>de(p).selectFeature(null))},null,8,["feature","action","dark"])):ve("",!0),Nl.value?(X(),Ge(de(i),{key:9,poster:ms.value,"legend-rows":de(A).rows,"active-tab":M.value,onClose:B[3]||(B[3]=Y=>Nl.value=!1)},null,8,["poster","legend-rows","active-tab"])):ve("",!0)])],2))}}},Symbol.toStringTag,{value:"Module"})),lA="",cA={class:"legend-sheet-root"},uA=["src","alt"],dA={key:0,class:"pull-tab-handle"},pA=["aria-label"],gA=["aria-label"],fA=["aria-label"],hA={class:"collapsed-detail-title"},mA={class:"legend-content"},bA=["aria-label"],yA=["aria-label"],xg=80,vA=48,_A=44,kA=24,wg="--legend-sheet-h",Sg=Object.freeze(Object.defineProperty({__proto__:null,default:Rt({__name:"LegendMobile",props:{legendType:{type:String,required:!0},nodes:{type:Array,default:null},tabs:{type:Array,default:null},columnLabel:{type:String,default:null},title:{type:String,default:null},columns:{type:Array,default:null},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const{t}=ht();yt(` .floating-mini-image{position:absolute;left:16px;bottom:calc(30% + 16px);z-index:999;pointer-events:auto;cursor:pointer;} .mini-image{width:120px;height:150px;object-fit:cover;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.25);display:block;} .legend-sheet-root{position:absolute;inset:0;pointer-events:none;overflow:hidden;} @@ -1452,33 +1451,33 @@ .sheet-dark .pull-tab-handle{background:rgba(243,243,241,0.3)!important;} .sheet-dark .legend-content{background:#3b463d!important;} .sheet-dark .legend-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);} -`,"legend-mobile-sheet");const o=e,n=Pe("uiStore");Pe("mapStore");const a=Pe("dataStore"),r=Pe("onSemanticTreeSelect",()=>{}),s=Sr(o,"legendType"),{items:i,columns:l,title:c,activeFilter:u,setFilter:p,totalCount:h,totalPopulation:x,fmtPop:w,fmtCount:f}=Za(s,gs),b=Pe("normalizedPeopleGroups",null),y=te(()=>{var ae,k;if((ae=b==null?void 0:b.value)!=null&&ae.length)return b.value;const ne=[];for(const A in(a==null?void 0:a.sources)||{}){const V=a.sources[A];(k=V==null?void 0:V.features)!=null&&k.length&&ne.push(...V.features)}return ne}),v={get value(){return y.value}},{langTree:g}=vl(v),{affinityTree:m}=_p(v),{regionsTree:d}=kp(v),_=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor."},{id:"language",label:"Language",info:"A language is a system of communication used by a people."},{id:"dialect",label:"Dialect",info:"A dialect/variety is a regional or social form of a language."}],L=[{id:"bloc",label:"Block",info:"Affinity Block (rop1) — broadest grouping. 16 blocks total."},{id:"cluster",label:"Cluster",info:"Cluster (imb_reg_of_people_2, ROP 2) — finer grouping inside a block. 194 total."},{id:"group",label:"PG",info:"People Group (imb_reg_of_people_25, ROP 2.5) — abstract identity. 1,736 PGs."},{id:"pgic",label:"PGIC",info:"PG in Country (imb_reg_of_people_3 + country_code) — one row per PG-country pair. 2,106 rows."}],O=[{id:"region",label:"Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"Bloc",info:'WAGF bloc — organizational sub-grouping within each region (e.g. "South East Asia").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],S=te(()=>["prayer","engagement","adoption","religion"].includes(o.legendType));function z(ne){const ae=[];for(const k of ne){ae.push({id:k.key,label:k.label,color:k.color,count:k.count??0,pop:k.population??0,filter:k.filterKey?["==",["get","_flat_filter"],k.filterKey]:null,children:[]});for(const A of k.children||[])ae.push({id:A.key,label:A.label,color:A.color,count:A.count??0,pop:A.population??0,filter:A.filterKey?["==",["get","_flat_filter"],A.filterKey]:null,children:[]})}return ae}const G=te(()=>o.nodes?o.nodes:S.value?z(i.value):o.legendType==="affinity-block"?m.value:o.legendType==="doxa-regions"?d.value:g.value),j=te(()=>o.nodes?o.tabs:S.value?null:o.legendType==="affinity-block"?L:o.legendType==="doxa-regions"?O:_),M=te(()=>o.title?o.title:S.value?"Legend":o.legendType==="affinity-block"?"People Groups":o.legendType==="doxa-regions"?"WAGF Regions":"Languages"),E=te(()=>o.columnLabel!==null?o.columnLabel:o.legendType==="religion"?"UUPG Religions":o.legendType==="prayer"?"Prayer Status":o.legendType==="engagement"?"Engagement Status":o.legendType==="adoption"?"Adoption Status":S.value?"Status":""),C=ue(null),P=ue(!1),F={pending:null,active:!1,startY:0,startH:0,startState:"",containerH:0,maxH:0,lastH:0,contentEl:null};let q=0;const se=()=>Date.now()-q<400,Z=te(()=>n.legendState),oe=te(()=>n.legendHeight),H=te(()=>n.caretRotation),fe=te(()=>n.showPullTab),Ae=te(()=>n.legendMode),we=te(()=>n.selectedPeopleGroup),Ce=te(()=>{var ne;return Ae.value==="detail"&&we.value?((ne=we.value.properties)==null?void 0:ne.name)||t("legend.header.peopleGroupFallback"):Z.value==="collapsed"?o.title||t("legend.header.collapsed"):o.title||c.value});function ce(ne){n.handleLegendItemClick(),p(ne)}function le(){se()||n.toggleLegend()}function _e(){se()||(n.selectPeopleGroup(null),n.openLegend())}const he=te(()=>{var ae;if(!we.value)return null;const ne=we.value.properties||{};return ne.imageUrl||((ae=ne._raw)==null?void 0:ae.ImageURL)||null});function xe(ne){var Q;if(Z.value==="collapsed")return;const ae=ne.touches[0],k=C.value;if(!ae||!k)return;const V=ae.clientY-k.getBoundingClientRect().top<=gA?"grab":Ae.value==="detail"?"content":null;V&&(F.pending=V,F.active=!1,F.startY=ae.clientY,F.startH=k.offsetHeight,F.lastH=F.startH,F.startState=Z.value,F.containerH=((Q=k.parentElement)==null?void 0:Q.offsetHeight)||window.innerHeight,F.maxH=F.containerH-wp,F.contentEl=k.querySelector(".legend-content"))}function $(ne){if(!F.pending&&!F.active)return;const ae=ne.touches[0];if(!ae)return;const k=F.startY-ae.clientY;if(!F.active){if(k===0)return;let V=F.pending==="grab";if(F.pending==="content"){const Q=!F.contentEl||F.contentEl.scrollTop<=0;V=k>0?F.startH0?n.fullyOpenLegend():F.startState==="fullyOpen"?n.openLegend():n.collapseLegend()}function R(ne){ne==="fullyOpen"?n.fullyOpenLegend():ne==="collapsed"?n.collapseLegend():n.openLegend()}let K=null,ee=null,D=null;return Jt(()=>{const ne=C.value;if(!ne||typeof ResizeObserver>"u")return;const ae=ne.getRootNode();ee=ae instanceof ShadowRoot?ae.host:ae.documentElement||null,ee&&(D=ne,K=new ResizeObserver(()=>{const k=ne.offsetHeight;k<=0||(ee.style.setProperty(xp,`${k}px`),ee.__legendSheetVarOwner=ne)}),K.observe(ne))}),ho(()=>{K&&(K.disconnect(),K=null),ee&&ee.__legendSheetVarOwner===D&&(ee.style.removeProperty(xp),ee.__legendSheetVarOwner=null),ee=null,D=null}),(ne,ae)=>{var k;return X(),re("div",tA,[Ae.value==="detail"&&we.value&&Z.value==="open"&&he.value?(X(),re("div",{key:0,class:"floating-mini-image",onClick:ae[0]||(ae[0]=A=>de(n).fullyOpenLegend())},[T("img",{src:he.value,alt:(k=we.value.properties)==null?void 0:k.name,class:"mini-image"},null,8,oA)])):ve("",!0),T("div",{ref_key:"sheetRef",ref:C,class:Te(["legend-mobile-sheet",[Z.value,{"sheet-dark":e.isDark,dragging:P.value}]]),style:Xe({height:oe.value,"--legend-sheet-top-reserve":wp+"px"}),onTouchstart:xe,onTouchmove:$,onTouchend:U,onTouchcancel:U},[T("div",{class:"sheet-drag-strip",onClick:le},[fe.value?(X(),re("div",nA)):ve("",!0)]),Ae.value==="detail"&&Z.value!=="collapsed"?(X(),re("button",{key:0,class:"detail-collapse-btn-mobile",onClick:pt(le,["stop"]),"aria-label":de(t)("aria.toggleLegend")},null,8,aA)):ve("",!0),Ae.value==="detail"&&Z.value!=="collapsed"?(X(),re("button",{key:1,class:"detail-close-btn",onClick:pt(_e,["stop"]),"aria-label":de(t)("aria.backToLegend")},[...ae[1]||(ae[1]=[T("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[T("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,rA)):ve("",!0),Z.value==="collapsed"&&Ae.value==="detail"&&we.value?(X(),re("div",{key:2,class:"collapsed-detail-footer",onClick:le},[T("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),"aria-label":de(t)("aria.toggleLegend"),tabindex:"-1"},[...ae[2]||(ae[2]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,sA),T("span",iA,ye(Ce.value),1)])):ve("",!0),T("div",lA,[Ae.value==="detail"&&we.value?(X(),re(Be,{key:0},[Z.value!=="collapsed"?(X(),Ge(kl,{key:0,peopleGroup:we.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):ve("",!0)],64)):e.legendType!=="default"?(X(),Ge(vp,{key:1,nodes:G.value,tabs:j.value,title:Ce.value||M.value,hideTabs:e.nodes?!e.tabs:S.value,columnLabel:E.value,columns:e.columns||["count","pop"],onSelect:de(r)},{"title-caret":Dt(()=>[T("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),onClick:pt(le,["stop"]),"aria-label":de(t)("aria.toggleLegend")},[...ae[3]||(ae[3]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,cA)]),_:1},8,["nodes","tabs","title","hideTabs","columnLabel","columns","onSelect"])):(X(),Ge(dp,{key:2,title:Ce.value,items:de(i),columns:de(l),activeFilter:de(u),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:de(h),totalPopulation:de(x),fmtPop:de(w),fmtCount:de(f),onFilterClick:ce},{"title-caret":Dt(()=>[T("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),onClick:pt(le,["stop"]),"aria-label":de(t)("aria.toggleLegend")},[...ae[4]||(ae[4]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,uA)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount"]))])],38)])}}},[["__scopeId","data-v-87b1df09"]])},Symbol.toStringTag,{value:"Module"})),dt={dpi:300,margins:{top:.75,right:.75,bottom:.75,left:.75},bleed:.125,gutter:{in:.2},title:{heightIn:1.25,fontFamily:'Inter, system-ui, -apple-system, "Segoe UI", sans-serif',fontWeightTitle:700,fontWeightSubtitle:500,fontSizeTitlePt:36,fontSizeSubtitlePt:16,color:"#0a0a0a"},legend:{widthIn:3,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:11,swatchSize:14,backgroundColor:"rgba(255,255,255,0.94)",borderColor:"#cccccc"},chromeBand:{heightIn:.6},scaleBar:{widthIn:2.5,units:"both",color:"#111",backgroundColor:"rgba(255,255,255,0.9)"},north:{sizeIn:.6,color:"#111"},footer:{heightIn:.45,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:10,color:"#222",attribution:"© Mapbox © OpenStreetMap",backgroundColor:"rgba(255,255,255,0.92)"}};function Cl(e){return{widthIn:e.widthIn,heightIn:e.heightIn,dpi:e.dpi||dt.dpi,orientation:e.orientation||(e.heightIn>=e.widthIn?"portrait":"landscape"),margins:{...dt.margins},bleed:dt.bleed,slots:{title:{text:"Untitled",subtitle:"",heightIn:dt.title.heightIn},legend:{rows:[],type:"generic",widthIn:dt.legend.widthIn},scaleBar:!0,north:!0,footer:{left:"",right:"",attribution:dt.footer.attribution,heightIn:dt.footer.heightIn}},renderPath:"auto"}}const fA=Object.freeze(Object.defineProperty({__proto__:null,defaultPosterSpec:Cl,posterDefaults:dt},Symbol.toStringTag,{value:"Module"}));function Pt(e,t){return Math.round(e*t)}function Ap(e,t){var d,_,L,O,S,z,G,j;const o=t.dpi,n=e.margins||dt.margins,a={x:0,y:0,w:t.width,h:t.height},r={x:Pt(n.left,o),y:Pt(n.top,o),w:t.width-Pt(n.left+n.right,o),h:t.height-Pt(n.top+n.bottom,o)},s=(d=e.slots)!=null&&d.title?Pt(e.slots.title.heightIn||dt.title.heightIn,o):0,i={x:r.x,y:r.y,w:r.w,h:s},l=Pt(((L=(_=e.slots)==null?void 0:_.footer)==null?void 0:L.heightIn)||dt.footer.heightIn,o),c={x:r.x,y:r.y+r.h-l,w:r.w,h:l},u=(O=e.slots)!=null&&O.legend?Pt(e.slots.legend.widthIn||dt.legend.widthIn,o):0,p=(S=e.slots)!=null&&S.scaleBar||(z=e.slots)!=null&&z.north?Pt(dt.chromeBand.heightIn,o):0,h=r.y+s+(s?Pt(dt.gutter.in,o):0),x=c.y-p-(p?Pt(dt.gutter.in,o):0),w={x:r.x,y:h,w:r.w-(u?u+Pt(dt.gutter.in,o):0),h:x-h},f=u?{x:r.x+r.w-u,y:h,w:u,h:w.h}:{x:0,y:0,w:0,h:0},b=Pt(dt.scaleBar.widthIn,o),y=p,v=(G=e.slots)!=null&&G.scaleBar?{x:r.x,y:x+(p?Pt(dt.gutter.in,o):0),w:b,h:y}:{x:0,y:0,w:0,h:0},g=Pt(dt.north.sizeIn,o),m=(j=e.slots)!=null&&j.north?{x:r.x+r.w-g-(u?u+Pt(dt.gutter.in,o):0),y:x+(p?Pt(dt.gutter.in,o):0),w:g,h:g}:{x:0,y:0,w:0,h:0};return{page:a,content:r,title:i,map:w,legend:f,scaleBar:v,north:m,footer:c}}const Tn=4096,Ao=2048,Lp=15e3;function $l(e){const t=ue({phase:"idle",completed:0,total:0,message:"",fraction:0,percent:0}),o=ue(!1);let n=null;async function a(w,f="png"){if(o.value)throw new Error("useMapPoster: already rendering");const b=e();if(!b)throw new Error("useMapPoster: no source map");n=new AbortController;const y=vA(w.signal,n.signal);o.value=!0,l=0,c("init",1,1,"preparing render");try{const v=El(w),g=hA(w.renderPath||"auto",v);g==="single"&&(v.width>Tn||v.height>Tn)&&console.warn(`[useMapPoster] requested single-canvas ${v.width}×${v.height}px > ${Tn}; auto-switching to tile-stitch.`);const d=(g==="single"&&(v.width>Tn||v.height>Tn)?"stitch":g)==="single"?await u(b,v,y):await p(b,v,y);c("compose",0,1,"compositing overlay");const _=await h(d,w,v);c("encode",0,1,`encoding ${f.toUpperCase()}`);const L=f==="pdf"?await yA(_,w):await bA(_,"image/png");return c("done",1,1,"render complete"),L}finally{o.value=!1,n=null}}function r(){n&&n.abort()}const s={init:.02,"hidden-map":.3,stitch:.42,capture:.14,compose:.06,encode:.05,done:.01},i=["init","hidden-map","stitch","capture","compose","encode","done"];let l=0;function c(w,f,b,y){const v=i.indexOf(w);let g=0;for(let _=0;_0?Math.min(1,f/b):0,d=g+(s[w]||0)*m;l=w==="init"?d:Math.max(l,d),t.value={phase:w,completed:f,total:b,message:y,fraction:Math.min(1,l),percent:Math.round(Math.min(1,l)*100)}}async function u(w,f,b){c("hidden-map",0,3,"creating hidden map");const{hiddenMap:y,restoreDpr:v,container:g}=await Cp(w,f.width,f.height);try{Tl(b),c("hidden-map",1,3,"loading map tiles"),await $p(y),c("hidden-map",3,3,"tiles loaded"),Tl(b),c("capture",0,1,"capturing canvas");const m=y.getCanvas().toDataURL("image/png"),d=await Ep(m),_=document.createElement("canvas");return _.width=f.width,_.height=f.height,_.getContext("2d").drawImage(d,0,0,f.width,f.height),_}finally{try{y.remove()}catch{}g!=null&&g.parentNode&&g.parentNode.removeChild(g),v()}}async function p(w,f,b){const y=Math.ceil(f.width/Ao),v=Math.ceil(f.height/Ao),g=y*v;c("hidden-map",0,g,`creating hidden map (${y}×${v} tiles)`);const m=w.getBounds(),d=w.getCenter(),_=w.getZoom(),L=w.getBearing(),O=w.getPitch(),{hiddenMap:S,restoreDpr:z,container:G}=await Cp(w,Ao,Ao,{preserveBounds:!0,bounds:m});try{const j=document.createElement("canvas");j.width=f.width,j.height=f.height;const M=j.getContext("2d"),E=m.getNorthEast(),C=m.getSouthWest(),P=E.lng-C.lng,F=E.lat-C.lat,q=P/y,se=F/v;let Z=0;for(let oe=0;oet&&([t,o]=[o,t]),e.orientation==="portrait"&&t>o&&([t,o]=[o,t]);const n=e.dpi||300;return{width:Math.round(t*n),height:Math.round(o*n),dpi:n}}function hA(e,t){return e==="single"||e==="stitch"?e:t.width>Tn||t.height>Tn?"stitch":"single"}async function Cp(e,t,o,n={}){const a=document.createElement("div");a.style.cssText=` +`,"legend-mobile-sheet");const o=e,n=Pe("uiStore");Pe("mapStore");const a=Pe("dataStore"),r=Pe("onSemanticTreeSelect",()=>{}),s=Sr(o,"legendType"),{items:i,columns:l,title:c,activeFilter:u,setFilter:g,totalCount:h,totalPopulation:w,fmtPop:x,fmtCount:f}=Za(s,ps),b=Pe("normalizedPeopleGroups",null),y=te(()=>{var ae,k;if((ae=b==null?void 0:b.value)!=null&&ae.length)return b.value;const ne=[];for(const A in(a==null?void 0:a.sources)||{}){const V=a.sources[A];(k=V==null?void 0:V.features)!=null&&k.length&&ne.push(...V.features)}return ne}),v={get value(){return y.value}},{langTree:p}=vl(v),{affinityTree:m}=_g(v),{regionsTree:d}=kg(v),_=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor."},{id:"language",label:"Language",info:"A language is a system of communication used by a people."},{id:"dialect",label:"Dialect",info:"A dialect/variety is a regional or social form of a language."}],L=[{id:"bloc",label:"Block",info:"Affinity Block (rop1) — broadest grouping. 16 blocks total."},{id:"cluster",label:"Cluster",info:"Cluster (imb_reg_of_people_2, ROP 2) — finer grouping inside a block. 194 total."},{id:"group",label:"PG",info:"People Group (imb_reg_of_people_25, ROP 2.5) — abstract identity. 1,736 PGs."},{id:"pgic",label:"PGIC",info:"PG in Country (imb_reg_of_people_3 + country_code) — one row per PG-country pair. 2,106 rows."}],O=[{id:"region",label:"Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"Bloc",info:'WAGF bloc — organizational sub-grouping within each region (e.g. "South East Asia").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],S=te(()=>["prayer","engagement","adoption","religion"].includes(o.legendType));function U(ne){const ae=[];for(const k of ne){ae.push({id:k.key,label:k.label,color:k.color,count:k.count??0,pop:k.population??0,filter:k.filterKey?["==",["get","_flat_filter"],k.filterKey]:null,children:[]});for(const A of k.children||[])ae.push({id:A.key,label:A.label,color:A.color,count:A.count??0,pop:A.population??0,filter:A.filterKey?["==",["get","_flat_filter"],A.filterKey]:null,children:[]})}return ae}const G=te(()=>o.nodes?o.nodes:S.value?U(i.value):o.legendType==="affinity-block"?m.value:o.legendType==="doxa-regions"?d.value:p.value),j=te(()=>o.nodes?o.tabs:S.value?null:o.legendType==="affinity-block"?L:o.legendType==="doxa-regions"?O:_),M=te(()=>o.title?o.title:S.value?"Legend":o.legendType==="affinity-block"?"People Groups":o.legendType==="doxa-regions"?"WAGF Regions":"Languages"),E=te(()=>o.columnLabel!==null?o.columnLabel:o.legendType==="religion"?"UUPG Religions":o.legendType==="prayer"?"Prayer Status":o.legendType==="engagement"?"Engagement Status":o.legendType==="adoption"?"Adoption Status":S.value?"Status":""),C=ue(null),P=ue(!1),F={pending:null,active:!1,startY:0,startH:0,startState:"",containerH:0,maxH:0,lastH:0,contentEl:null};let q=0;const se=()=>Date.now()-q<400,Z=te(()=>n.legendState),oe=te(()=>n.legendHeight),H=te(()=>n.caretRotation),fe=te(()=>n.showPullTab),Ae=te(()=>n.legendMode),xe=te(()=>n.selectedPeopleGroup),Ce=te(()=>{var ne;return Ae.value==="detail"&&xe.value?((ne=xe.value.properties)==null?void 0:ne.name)||t("legend.header.peopleGroupFallback"):Z.value==="collapsed"?o.title||t("legend.header.collapsed"):o.title||c.value});function ce(ne){n.handleLegendItemClick(),g(ne)}function le(){se()||n.toggleLegend()}function _e(){se()||(n.selectPeopleGroup(null),n.openLegend())}const he=te(()=>{var ae;if(!xe.value)return null;const ne=xe.value.properties||{};return ne.imageUrl||((ae=ne._raw)==null?void 0:ae.ImageURL)||null});function we(ne){var Q;if(Z.value==="collapsed")return;const ae=ne.touches[0],k=C.value;if(!ae||!k)return;const V=ae.clientY-k.getBoundingClientRect().top<=_A?"grab":Ae.value==="detail"?"content":null;V&&(F.pending=V,F.active=!1,F.startY=ae.clientY,F.startH=k.offsetHeight,F.lastH=F.startH,F.startState=Z.value,F.containerH=((Q=k.parentElement)==null?void 0:Q.offsetHeight)||window.innerHeight,F.maxH=F.containerH-xg,F.contentEl=k.querySelector(".legend-content"))}function $(ne){if(!F.pending&&!F.active)return;const ae=ne.touches[0];if(!ae)return;const k=F.startY-ae.clientY;if(!F.active){if(k===0)return;let V=F.pending==="grab";if(F.pending==="content"){const Q=!F.contentEl||F.contentEl.scrollTop<=0;V=k>0?F.startH0?n.fullyOpenLegend():F.startState==="fullyOpen"?n.openLegend():n.collapseLegend()}function R(ne){ne==="fullyOpen"?n.fullyOpenLegend():ne==="collapsed"?n.collapseLegend():n.openLegend()}let K=null,ee=null,D=null;return Jt(()=>{const ne=C.value;if(!ne||typeof ResizeObserver>"u")return;const ae=ne.getRootNode();ee=ae instanceof ShadowRoot?ae.host:ae.documentElement||null,ee&&(D=ne,K=new ResizeObserver(()=>{const k=ne.offsetHeight;k<=0||(ee.style.setProperty(wg,`${k}px`),ee.__legendSheetVarOwner=ne)}),K.observe(ne))}),ho(()=>{K&&(K.disconnect(),K=null),ee&&ee.__legendSheetVarOwner===D&&(ee.style.removeProperty(wg),ee.__legendSheetVarOwner=null),ee=null,D=null}),(ne,ae)=>{var k;return X(),re("div",cA,[Ae.value==="detail"&&xe.value&&Z.value==="open"&&he.value?(X(),re("div",{key:0,class:"floating-mini-image",onClick:ae[0]||(ae[0]=A=>de(n).fullyOpenLegend())},[T("img",{src:he.value,alt:(k=xe.value.properties)==null?void 0:k.name,class:"mini-image"},null,8,uA)])):ve("",!0),T("div",{ref_key:"sheetRef",ref:C,class:Te(["legend-mobile-sheet",[Z.value,{"sheet-dark":e.isDark,dragging:P.value}]]),style:Xe({height:oe.value,"--legend-sheet-top-reserve":xg+"px"}),onTouchstart:we,onTouchmove:$,onTouchend:z,onTouchcancel:z},[T("div",{class:"sheet-drag-strip",onClick:le},[fe.value?(X(),re("div",dA)):ve("",!0)]),Ae.value==="detail"&&Z.value!=="collapsed"?(X(),re("button",{key:0,class:"detail-collapse-btn-mobile",onClick:gt(le,["stop"]),"aria-label":de(t)("aria.toggleLegend")},null,8,pA)):ve("",!0),Ae.value==="detail"&&Z.value!=="collapsed"?(X(),re("button",{key:1,class:"detail-close-btn",onClick:gt(_e,["stop"]),"aria-label":de(t)("aria.backToLegend")},[...ae[1]||(ae[1]=[T("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[T("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,gA)):ve("",!0),Z.value==="collapsed"&&Ae.value==="detail"&&xe.value?(X(),re("div",{key:2,class:"collapsed-detail-footer",onClick:le},[T("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),"aria-label":de(t)("aria.toggleLegend"),tabindex:"-1"},[...ae[2]||(ae[2]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,fA),T("span",hA,ye(Ce.value),1)])):ve("",!0),T("div",mA,[Ae.value==="detail"&&xe.value?(X(),re(Be,{key:0},[Z.value!=="collapsed"?(X(),Ge(kl,{key:0,peopleGroup:xe.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):ve("",!0)],64)):e.legendType!=="default"?(X(),Ge(vg,{key:1,nodes:G.value,tabs:j.value,title:Ce.value||M.value,hideTabs:e.nodes?!e.tabs:S.value,columnLabel:E.value,columns:e.columns||["count","pop"],onSelect:de(r)},{"title-caret":Dt(()=>[T("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),onClick:gt(le,["stop"]),"aria-label":de(t)("aria.toggleLegend")},[...ae[3]||(ae[3]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,bA)]),_:1},8,["nodes","tabs","title","hideTabs","columnLabel","columns","onSelect"])):(X(),Ge(dg,{key:2,title:Ce.value,items:de(i),columns:de(l),activeFilter:de(u),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:de(h),totalPopulation:de(w),fmtPop:de(x),fmtCount:de(f),onFilterClick:ce},{"title-caret":Dt(()=>[T("button",{class:"mobile-collapse-caret",style:Xe({transform:`rotate(${H.value}deg)`}),onClick:gt(le,["stop"]),"aria-label":de(t)("aria.toggleLegend")},[...ae[4]||(ae[4]=[T("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[T("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,yA)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount"]))])],38)])}}},[["styles",[lA]],["__scopeId","data-v-87b1df09"]])},Symbol.toStringTag,{value:"Module"})),dt={dpi:300,margins:{top:.75,right:.75,bottom:.75,left:.75},bleed:.125,gutter:{in:.2},title:{heightIn:1.25,fontFamily:'Inter, system-ui, -apple-system, "Segoe UI", sans-serif',fontWeightTitle:700,fontWeightSubtitle:500,fontSizeTitlePt:36,fontSizeSubtitlePt:16,color:"#0a0a0a"},legend:{widthIn:3,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:11,swatchSize:14,backgroundColor:"rgba(255,255,255,0.94)",borderColor:"#cccccc"},chromeBand:{heightIn:.6},scaleBar:{widthIn:2.5,units:"both",color:"#111",backgroundColor:"rgba(255,255,255,0.9)"},north:{sizeIn:.6,color:"#111"},footer:{heightIn:.45,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:10,color:"#222",attribution:"© Mapbox © OpenStreetMap",backgroundColor:"rgba(255,255,255,0.92)"}};function Cl(e){return{widthIn:e.widthIn,heightIn:e.heightIn,dpi:e.dpi||dt.dpi,orientation:e.orientation||(e.heightIn>=e.widthIn?"portrait":"landscape"),margins:{...dt.margins},bleed:dt.bleed,slots:{title:{text:"Untitled",subtitle:"",heightIn:dt.title.heightIn},legend:{rows:[],type:"generic",widthIn:dt.legend.widthIn},scaleBar:!0,north:!0,footer:{left:"",right:"",attribution:dt.footer.attribution,heightIn:dt.footer.heightIn}},renderPath:"auto"}}const xA=Object.freeze(Object.defineProperty({__proto__:null,defaultPosterSpec:Cl,posterDefaults:dt},Symbol.toStringTag,{value:"Module"}));function Pt(e,t){return Math.round(e*t)}function Ag(e,t){var d,_,L,O,S,U,G,j;const o=t.dpi,n=e.margins||dt.margins,a={x:0,y:0,w:t.width,h:t.height},r={x:Pt(n.left,o),y:Pt(n.top,o),w:t.width-Pt(n.left+n.right,o),h:t.height-Pt(n.top+n.bottom,o)},s=(d=e.slots)!=null&&d.title?Pt(e.slots.title.heightIn||dt.title.heightIn,o):0,i={x:r.x,y:r.y,w:r.w,h:s},l=Pt(((L=(_=e.slots)==null?void 0:_.footer)==null?void 0:L.heightIn)||dt.footer.heightIn,o),c={x:r.x,y:r.y+r.h-l,w:r.w,h:l},u=(O=e.slots)!=null&&O.legend?Pt(e.slots.legend.widthIn||dt.legend.widthIn,o):0,g=(S=e.slots)!=null&&S.scaleBar||(U=e.slots)!=null&&U.north?Pt(dt.chromeBand.heightIn,o):0,h=r.y+s+(s?Pt(dt.gutter.in,o):0),w=c.y-g-(g?Pt(dt.gutter.in,o):0),x={x:r.x,y:h,w:r.w-(u?u+Pt(dt.gutter.in,o):0),h:w-h},f=u?{x:r.x+r.w-u,y:h,w:u,h:x.h}:{x:0,y:0,w:0,h:0},b=Pt(dt.scaleBar.widthIn,o),y=g,v=(G=e.slots)!=null&&G.scaleBar?{x:r.x,y:w+(g?Pt(dt.gutter.in,o):0),w:b,h:y}:{x:0,y:0,w:0,h:0},p=Pt(dt.north.sizeIn,o),m=(j=e.slots)!=null&&j.north?{x:r.x+r.w-p-(u?u+Pt(dt.gutter.in,o):0),y:w+(g?Pt(dt.gutter.in,o):0),w:p,h:p}:{x:0,y:0,w:0,h:0};return{page:a,content:r,title:i,map:x,legend:f,scaleBar:v,north:m,footer:c}}const Tn=4096,Ao=2048,Lg=15e3;function $l(e){const t=ue({phase:"idle",completed:0,total:0,message:"",fraction:0,percent:0}),o=ue(!1);let n=null;async function a(x,f="png"){if(o.value)throw new Error("useMapPoster: already rendering");const b=e();if(!b)throw new Error("useMapPoster: no source map");n=new AbortController;const y=CA(x.signal,n.signal);o.value=!0,l=0,c("init",1,1,"preparing render");try{const v=El(x),p=wA(x.renderPath||"auto",v);p==="single"&&(v.width>Tn||v.height>Tn)&&console.warn(`[useMapPoster] requested single-canvas ${v.width}×${v.height}px > ${Tn}; auto-switching to tile-stitch.`);const d=(p==="single"&&(v.width>Tn||v.height>Tn)?"stitch":p)==="single"?await u(b,v,y):await g(b,v,y);c("compose",0,1,"compositing overlay");const _=await h(d,x,v);c("encode",0,1,`encoding ${f.toUpperCase()}`);const L=f==="pdf"?await LA(_,x):await AA(_,"image/png");return c("done",1,1,"render complete"),L}finally{o.value=!1,n=null}}function r(){n&&n.abort()}const s={init:.02,"hidden-map":.3,stitch:.42,capture:.14,compose:.06,encode:.05,done:.01},i=["init","hidden-map","stitch","capture","compose","encode","done"];let l=0;function c(x,f,b,y){const v=i.indexOf(x);let p=0;for(let _=0;_0?Math.min(1,f/b):0,d=p+(s[x]||0)*m;l=x==="init"?d:Math.max(l,d),t.value={phase:x,completed:f,total:b,message:y,fraction:Math.min(1,l),percent:Math.round(Math.min(1,l)*100)}}async function u(x,f,b){c("hidden-map",0,3,"creating hidden map");const{hiddenMap:y,restoreDpr:v,container:p}=await Cg(x,f.width,f.height);try{Tl(b),c("hidden-map",1,3,"loading map tiles"),await $g(y),c("hidden-map",3,3,"tiles loaded"),Tl(b),c("capture",0,1,"capturing canvas");const m=y.getCanvas().toDataURL("image/png"),d=await Eg(m),_=document.createElement("canvas");return _.width=f.width,_.height=f.height,_.getContext("2d").drawImage(d,0,0,f.width,f.height),_}finally{try{y.remove()}catch{}p!=null&&p.parentNode&&p.parentNode.removeChild(p),v()}}async function g(x,f,b){const y=Math.ceil(f.width/Ao),v=Math.ceil(f.height/Ao),p=y*v;c("hidden-map",0,p,`creating hidden map (${y}×${v} tiles)`);const m=x.getBounds(),d=x.getCenter(),_=x.getZoom(),L=x.getBearing(),O=x.getPitch(),{hiddenMap:S,restoreDpr:U,container:G}=await Cg(x,Ao,Ao,{preserveBounds:!0,bounds:m});try{const j=document.createElement("canvas");j.width=f.width,j.height=f.height;const M=j.getContext("2d"),E=m.getNorthEast(),C=m.getSouthWest(),P=E.lng-C.lng,F=E.lat-C.lat,q=P/y,se=F/v;let Z=0;for(let oe=0;oet&&([t,o]=[o,t]),e.orientation==="portrait"&&t>o&&([t,o]=[o,t]);const n=e.dpi||300;return{width:Math.round(t*n),height:Math.round(o*n),dpi:n}}function wA(e,t){return e==="single"||e==="stitch"?e:t.width>Tn||t.height>Tn?"stitch":"single"}async function Cg(e,t,o,n={}){const a=document.createElement("div");a.style.cssText=` position: fixed; top: -100000px; left: -100000px; width: ${t}px; height: ${o}px; pointer-events: none; visibility: hidden; - `,document.body.appendChild(a);const r=window.devicePixelRatio,s=()=>{try{Object.defineProperty(window,"devicePixelRatio",{value:r,configurable:!0})}catch{}};try{Object.defineProperty(window,"devicePixelRatio",{value:1,configurable:!0})}catch{}const i=typeof window<"u"?window.mapboxgl:null;if(!i)throw new Error("useMapPoster: mapboxgl global not found");const l=e.getStyle(),c=new i.Map({container:a,style:l,center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),interactive:!1,attributionControl:!1,preserveDrawingBuffer:!0,fadeDuration:0});return await new Promise((u,p)=>{let h=!1;const x=setTimeout(()=>{h||(h=!0,p(new Error("useMapPoster: hidden map style.load timeout")))},Lp);c.once("style.load",()=>{h||(h=!0,clearTimeout(x),u())})}),n.preserveBounds&&n.bounds&&c.fitBounds(n.bounds,{padding:0,animate:!1,duration:0}),{hiddenMap:c,restoreDpr:s,container:a}}function $p(e){return new Promise((t,o)=>{let n=!1;const a=setTimeout(()=>{n||(n=!0,o(new Error("useMapPoster: hidden map idle timeout")))},Lp),r=()=>{n||(n=!0,clearTimeout(a),requestAnimationFrame(()=>t()))};e.loaded()&&!e.isMoving()?r():e.once("idle",r)})}function Ep(e){return new Promise((t,o)=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>t(n),n.onerror=a=>o(new Error("image load failed: "+((a==null?void 0:a.message)||"unknown"))),n.src=typeof e=="string"?e:URL.createObjectURL(e)})}function mA(e,t,o){const n=new Blob([e],{type:"image/svg+xml;charset=utf-8"}),a=URL.createObjectURL(n);return new Promise((r,s)=>{const i=new Image;i.onload=()=>{URL.revokeObjectURL(a),r(i)},i.onerror=l=>{URL.revokeObjectURL(a),s(new Error("svg load failed: "+((l==null?void 0:l.message)||"unknown")))},i.width=t,i.height=o,i.src=a})}function bA(e,t){return new Promise((o,n)=>{e.toBlob(a=>a?o(a):n(new Error("toBlob failed")),t)})}async function yA(e,t){let o;try{const s=await eo(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);o=s.jsPDF||s.default}catch{throw new Error("useMapPoster.toPdf: jspdf not installed (npm i jspdf svg2pdf.js)")}const n=e.toDataURL("image/png"),a=e.width>e.height?"l":"p",r=new o({orientation:a,unit:"in",format:[t.widthIn,t.heightIn]});return r.addImage(n,"PNG",0,0,t.widthIn,t.heightIn),r.output("blob")}function Tl(e){if(e!=null&&e.aborted)throw new DOMException("useMapPoster: aborted","AbortError")}function vA(...e){const t=new AbortController;for(const o of e)if(o){if(o.aborted){t.abort();break}o.addEventListener("abort",()=>t.abort(),{once:!0})}return t.signal}function _A(e,t){var a,r,s,i;const o=(((r=(a=e.slots)==null?void 0:a.title)==null?void 0:r.text)||"").replace(/[<>&]/g,ra),n=(((i=(s=e.slots)==null?void 0:s.title)==null?void 0:i.subtitle)||"").replace(/[<>&]/g,ra);return` + `,document.body.appendChild(a);const r=window.devicePixelRatio,s=()=>{try{Object.defineProperty(window,"devicePixelRatio",{value:r,configurable:!0})}catch{}};try{Object.defineProperty(window,"devicePixelRatio",{value:1,configurable:!0})}catch{}const i=typeof window<"u"?window.mapboxgl:null;if(!i)throw new Error("useMapPoster: mapboxgl global not found");const l=e.getStyle(),c=new i.Map({container:a,style:l,center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),interactive:!1,attributionControl:!1,preserveDrawingBuffer:!0,fadeDuration:0});return await new Promise((u,g)=>{let h=!1;const w=setTimeout(()=>{h||(h=!0,g(new Error("useMapPoster: hidden map style.load timeout")))},Lg);c.once("style.load",()=>{h||(h=!0,clearTimeout(w),u())})}),n.preserveBounds&&n.bounds&&c.fitBounds(n.bounds,{padding:0,animate:!1,duration:0}),{hiddenMap:c,restoreDpr:s,container:a}}function $g(e){return new Promise((t,o)=>{let n=!1;const a=setTimeout(()=>{n||(n=!0,o(new Error("useMapPoster: hidden map idle timeout")))},Lg),r=()=>{n||(n=!0,clearTimeout(a),requestAnimationFrame(()=>t()))};e.loaded()&&!e.isMoving()?r():e.once("idle",r)})}function Eg(e){return new Promise((t,o)=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>t(n),n.onerror=a=>o(new Error("image load failed: "+((a==null?void 0:a.message)||"unknown"))),n.src=typeof e=="string"?e:URL.createObjectURL(e)})}function SA(e,t,o){const n=new Blob([e],{type:"image/svg+xml;charset=utf-8"}),a=URL.createObjectURL(n);return new Promise((r,s)=>{const i=new Image;i.onload=()=>{URL.revokeObjectURL(a),r(i)},i.onerror=l=>{URL.revokeObjectURL(a),s(new Error("svg load failed: "+((l==null?void 0:l.message)||"unknown")))},i.width=t,i.height=o,i.src=a})}function AA(e,t){return new Promise((o,n)=>{e.toBlob(a=>a?o(a):n(new Error("toBlob failed")),t)})}async function LA(e,t){let o;try{const s=await eo(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);o=s.jsPDF||s.default}catch{throw new Error("useMapPoster.toPdf: jspdf not installed (npm i jspdf svg2pdf.js)")}const n=e.toDataURL("image/png"),a=e.width>e.height?"l":"p",r=new o({orientation:a,unit:"in",format:[t.widthIn,t.heightIn]});return r.addImage(n,"PNG",0,0,t.widthIn,t.heightIn),r.output("blob")}function Tl(e){if(e!=null&&e.aborted)throw new DOMException("useMapPoster: aborted","AbortError")}function CA(...e){const t=new AbortController;for(const o of e)if(o){if(o.aborted){t.abort();break}o.addEventListener("abort",()=>t.abort(),{once:!0})}return t.signal}function $A(e,t){var a,r,s,i;const o=(((r=(a=e.slots)==null?void 0:a.title)==null?void 0:r.text)||"").replace(/[<>&]/g,ra),n=(((i=(s=e.slots)==null?void 0:s.title)==null?void 0:i.subtitle)||"").replace(/[<>&]/g,ra);return` ${o} ${n?`${n}`:""} - `}function kA(e,t){var a,r;const n=(((r=(a=e.slots)==null?void 0:a.legend)==null?void 0:r.rows)||[]).slice(0,24).map((s,i)=>{const l=30+i*26,c=(s.color||"#999").replace(/[<>&]/g,ra),u=(s.label||"").replace(/[<>&]/g,ra);return`${u}`}).join("");return` + `}function EA(e,t){var a,r;const n=(((r=(a=e.slots)==null?void 0:a.legend)==null?void 0:r.rows)||[]).slice(0,24).map((s,i)=>{const l=30+i*26,c=(s.color||"#999").replace(/[<>&]/g,ra),u=(s.label||"").replace(/[<>&]/g,ra);return`${u}`}).join("");return` Legend ${n} - `}function wA(e,t){return` + `}function TA(e,t){return` scale - `}function xA(e,t){const o=Math.min(t.w,t.h);return` + `}function PA(e,t){const o=Math.min(t.w,t.h);return` N - `}function SA(e,t){var r,s,i,l,c,u;const o=(((s=(r=e.slots)==null?void 0:r.footer)==null?void 0:s.left)||"").replace(/[<>&]/g,ra),n=(((l=(i=e.slots)==null?void 0:i.footer)==null?void 0:l.right)||"").replace(/[<>&]/g,ra),a=((u=(c=e.slots)==null?void 0:c.footer)==null?void 0:u.attribution)||"© Mapbox © OpenStreetMap";return` + `}function NA(e,t){var r,s,i,l,c,u;const o=(((s=(r=e.slots)==null?void 0:r.footer)==null?void 0:s.left)||"").replace(/[<>&]/g,ra),n=(((l=(i=e.slots)==null?void 0:i.footer)==null?void 0:l.right)||"").replace(/[<>&]/g,ra),a=((u=(c=e.slots)==null?void 0:c.footer)==null?void 0:u.attribution)||"© Mapbox © OpenStreetMap";return` ${o} ${a} ${n} - `}function ra(e){return e==="<"?"<":e===">"?">":"&"}const AA=Object.freeze(Object.defineProperty({__proto__:null,posterPixels:El,useMapPoster:$l},Symbol.toStringTag,{value:"Module"})),LA={class:"title-slot__title"},CA={key:0,class:"title-slot__subtitle"},$A=Rt({__name:"TitleSlot",props:{title:{type:String,default:""},subtitle:{type:String,default:""},align:{type:String,default:"left"}},emits:[],setup(e){const t=e,o=te(()=>({textAlign:t.align,fontFamily:dt.title.fontFamily,background:"rgba(255,255,255,0.92)",borderBottom:"1px solid #eee"}));return(n,a)=>(X(),re("div",{class:"title-slot",style:Xe(o.value)},[T("div",LA,ye(e.title||"Untitled"),1),e.subtitle?(X(),re("div",CA,ye(e.subtitle),1)):ve("",!0)],4))}},[["__scopeId","data-v-7caa85cc"]]),EA={class:"poster-slot poster-slot--LegendSlot","data-slot":"LegendSlot"},TA=Rt({__name:"LegendSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(X(),re("div",EA))}},[["__scopeId","data-v-1a65b1e9"]]),PA={class:"poster-slot poster-slot--ScaleBarSlot","data-slot":"ScaleBarSlot"},NA=Rt({__name:"ScaleBarSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(X(),re("div",PA))}},[["__scopeId","data-v-2cbe964e"]]),IA={class:"poster-slot poster-slot--NorthArrowSlot","data-slot":"NorthArrowSlot"},MA=Rt({__name:"NorthArrowSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(X(),re("div",IA))}},[["__scopeId","data-v-d12819c9"]]),FA={class:"poster-slot poster-slot--FooterSlot","data-slot":"FooterSlot"},RA=Rt({__name:"FooterSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(X(),re("div",FA))}},[["__scopeId","data-v-93c6c172"]]),DA=["src"],OA=Rt({__name:"PosterPreview",props:{spec:{type:Object,required:!0},getMap:{type:Function,required:!0},legendRows:{type:Array,default:()=>[]},metadata:{type:Object,default:()=>({})}},setup(e){const t=e,o=ue(null),n=ue(""),a=ue(800),r=ue(0),s=ue(0),i=ue(null),l=te(()=>El(t.spec)),c=te(()=>Ap(t.spec,l.value)),u=te(()=>{const f=l.value.width;return f?Math.min(1,(a.value-24)/f):1}),p=te(()=>({width:l.value.width+"px",height:l.value.height+"px",transform:`scale(${u.value})`,transformOrigin:"top left",background:"#fff",position:"relative",boxShadow:"0 6px 24px rgba(0,0,0,0.25)"}));function h(f){return f?{position:"absolute",left:f.x+"px",top:f.y+"px",width:f.w+"px",height:f.h+"px"}:{display:"none"}}let x=null;Jt(()=>{o.value&&typeof ResizeObserver<"u"&&(x=new ResizeObserver(()=>{var f;a.value=((f=o.value)==null?void 0:f.clientWidth)||800}),x.observe(o.value),a.value=o.value.clientWidth),w()}),Ea(()=>{x&&(x.disconnect(),x=null)}),Re(()=>[t.spec.widthIn,t.spec.heightIn,t.spec.orientation,t.spec.dpi],()=>{w()});async function w(){var b,y,v,g;const f=(b=t.getMap)==null?void 0:b.call(t);if(f)try{(!f.loaded()||f.isMoving())&&await new Promise(d=>f.once("idle",d)),n.value=f.getCanvas().toDataURL("image/png"),r.value=((y=f.getBearing)==null?void 0:y.call(f))||0;const m=(v=f.getCenter)==null?void 0:v.call(f);s.value=(m==null?void 0:m.lat)||0,i.value=(g=f.getBounds)==null?void 0:g.call(f)}catch(m){console.warn("[PosterPreview] snapshot failed",m)}}return(f,b)=>{var y,v,g,m,d,_,L,O,S,z,G;return X(),re("div",{ref_key:"rootEl",ref:o,class:"poster-preview"},[T("div",{class:"poster-preview__page",style:Xe(p.value)},[n.value?(X(),re("img",{key:0,class:"poster-preview__map",src:n.value,style:Xe(h(c.value.map)),alt:"map preview"},null,12,DA)):(X(),re("div",{key:1,class:"poster-preview__map placeholder",style:Xe(h(c.value.map))}," Loading map snapshot… ",4)),(y=e.spec.slots)!=null&&y.title?(X(),Ge($A,{key:2,class:"poster-preview__slot",style:Xe(h(c.value.title)),title:e.spec.slots.title.text,subtitle:e.spec.slots.title.subtitle},null,8,["style","title","subtitle"])):ve("",!0),(v=e.spec.slots)!=null&&v.legend&&((g=e.spec.slots.legend.rows)!=null&&g.length)?(X(),Ge(TA,{key:3,class:"poster-preview__slot",style:Xe(h(c.value.legend)),rows:e.spec.slots.legend.rows,type:e.spec.slots.legend.type},null,8,["style","rows","type"])):ve("",!0),(m=e.spec.slots)!=null&&m.scaleBar?(X(),Ge(NA,{key:4,class:"poster-preview__slot",style:Xe(h(c.value.scaleBar)),"map-bounds":i.value,"map-center-lat":s.value},null,8,["style","map-bounds","map-center-lat"])):ve("",!0),(d=e.spec.slots)!=null&&d.north?(X(),Ge(MA,{key:5,class:"poster-preview__slot",style:Xe(h(c.value.north)),bearing:r.value},null,8,["style","bearing"])):ve("",!0),Je(RA,{class:"poster-preview__slot",style:Xe(h(c.value.footer)),left:(L=(_=e.spec.slots)==null?void 0:_.footer)==null?void 0:L.left,right:(S=(O=e.spec.slots)==null?void 0:O.footer)==null?void 0:S.right,attribution:(G=(z=e.spec.slots)==null?void 0:z.footer)==null?void 0:G.attribution,metadata:e.metadata},null,8,["style","left","right","attribution","metadata"])],4)],512)}}},[["__scopeId","data-v-563f7dcd"]]),Tp=25.4,Pp=e=>e/Tp,Np=e=>e*Tp;function Lo(e,t,o,n,a,r,s,i){const l=a==="in"?{w:o,h:n}:{w:Ip(Pp(o)),h:Ip(Pp(n))},c=a==="mm"?{w:o,h:n}:{w:Mp(Np(o)),h:Mp(Np(n))},u={w:Math.round(l.w*300),h:Math.round(l.h*300)};return{id:e,label:t,inches:l,mm:c,px300:u,category:r,orientation:s,recommendedDpi:i}}function Ip(e){return Math.round(e*1e3)/1e3}function Mp(e){return Math.round(e*10)/10}const Fp={letter:Lo("letter",'Letter (8.5×11")',8.5,11,"in","us","either",300),tabloid:Lo("tabloid",'Tabloid (11×17")',11,17,"in","us","either",300),"18x24":Lo("18x24",'18 × 24"',18,24,"in","us","portrait",300),"24x36":Lo("24x36",'24 × 36"',24,36,"in","us","portrait",300),"27x40":Lo("27x40",'27 × 40"',27,40,"in","us","portrait",200),a4:Lo("a4","A4 (210 × 297 mm)",210,297,"mm","iso","either",300),a3:Lo("a3","A3 (297 × 420 mm)",297,420,"mm","iso","either",300),a2:Lo("a2","A2 (420 × 594 mm)",420,594,"mm","iso","portrait",300),a1:Lo("a1","A1 (594 × 841 mm)",594,841,"mm","iso","portrait",200),a0:Lo("a0","A0 (841 × 1189 mm)",841,1189,"mm","iso","portrait",150)},BA=["letter","tabloid","18x24","24x36","27x40","a4","a3","a2","a1","a0"],jA="24x36";function Rp(e){return Fp[e]||null}function UA(){return BA.map(e=>Fp[e])}const zA={class:"poster-dlg",role:"dialog","aria-modal":"true","aria-label":"Export Poster"},GA={class:"poster-dlg__header"},KA={class:"poster-dlg__body"},HA={class:"poster-dlg__controls"},VA={class:"ctl"},qA=["value"],WA={class:"ctl"},YA={class:"ctl"},XA={class:"ctl"},JA={class:"ctl"},ZA={class:"ctl"},QA={class:"ctl ctl--check"},eL={key:0,class:"render-status"},tL=["max","value"],oL={class:"actions"},nL=["disabled"],aL={class:"poster-dlg__preview"},rL=Object.freeze(Object.defineProperty({__proto__:null,default:Rt({__name:"PosterDialog",props:{modelValue:{type:Boolean,default:!1},getMap:{type:Function,required:!0},legendRows:{type:Array,default:()=>[]},metadata:{type:Object,default:()=>({})},initialSize:{type:String,default:jA}},emits:["update:modelValue","rendered","error"],setup(e,{emit:t}){const o=e,n=t,a=te({get:()=>o.modelValue,set:m=>n("update:modelValue",m)}),r=UA(),s=ue(o.initialSize),i=ue("portrait"),l=ue(300),c=ue("png"),u=ue(""),p=ue(""),h=ue(!0),x=ue(!0),w=ue(!0);Re(s,m=>{const d=Rp(m);d&&(l.value=d.recommendedDpi,d.orientation!=="either"&&(i.value=d.orientation))},{immediate:!0});const f=te(()=>{const m=Rp(s.value);if(!m)return Cl({widthIn:24,heightIn:36});const d=Cl({widthIn:m.inches.w,heightIn:m.inches.h,dpi:l.value,orientation:i.value});return d.slots.title={...d.slots.title,text:u.value,subtitle:p.value},d.slots.legend=h.value?{...d.slots.legend,rows:o.legendRows}:null,d.slots.scaleBar=x.value,d.slots.north=w.value,d.slots.footer={...d.slots.footer,left:o.metadata.source?`Source: ${o.metadata.source}`:"",right:o.metadata.date?`${o.metadata.date}`:new Date().toISOString().slice(0,10),attribution:dt.footer.attribution},d}),b=$l(o.getMap);async function y(){try{const m=await b.render(f.value,c.value),d=c.value==="pdf"?"pdf":"png",_=(u.value||"poster").replace(/\W+/g,"-").toLowerCase();g(m,`${_}.${d}`),n("rendered",{blob:m,format:c.value,spec:f.value})}catch(m){console.error("[PosterDialog] render failed",m),n("error",m)}}function v(){a.value=!1}function g(m,d){const _=URL.createObjectURL(m),L=document.createElement("a");L.href=_,L.download=d,document.body.appendChild(L),L.click(),L.remove(),setTimeout(()=>URL.revokeObjectURL(_),1500)}return(m,d)=>(X(),Ge(km,{name:"poster-dlg"},{default:Dt(()=>[a.value?(X(),re("div",{key:0,class:"poster-dlg-backdrop",onClick:pt(v,["self"])},[T("section",zA,[T("header",GA,[Ro(m.$slots,"header",{},()=>[d[10]||(d[10]=T("h2",null,"Export Poster",-1))],!0),T("button",{class:"poster-dlg__close",type:"button","aria-label":"Close",onClick:v},"×")]),T("div",KA,[T("aside",HA,[T("label",VA,[d[11]||(d[11]=T("span",null,"Size",-1)),Wt(T("select",{"onUpdate:modelValue":d[0]||(d[0]=_=>s.value=_)},[(X(!0),re(Be,null,At(de(r),_=>(X(),re("option",{key:_.id,value:_.id},ye(_.label),9,qA))),128))],512),[[Vr,s.value]])]),T("label",WA,[d[13]||(d[13]=T("span",null,"Orientation",-1)),Wt(T("select",{"onUpdate:modelValue":d[1]||(d[1]=_=>i.value=_)},[...d[12]||(d[12]=[T("option",{value:"portrait"},"Portrait",-1),T("option",{value:"landscape"},"Landscape",-1)])],512),[[Vr,i.value]])]),T("label",YA,[d[15]||(d[15]=T("span",null,"DPI",-1)),Wt(T("select",{"onUpdate:modelValue":d[2]||(d[2]=_=>l.value=_)},[...d[14]||(d[14]=[T("option",{value:150},"150 (large posters)",-1),T("option",{value:200},"200 (balanced)",-1),T("option",{value:300},"300 (sharp)",-1)])],512),[[Vr,l.value,void 0,{number:!0}]])]),T("label",XA,[d[17]||(d[17]=T("span",null,"Format",-1)),Wt(T("select",{"onUpdate:modelValue":d[3]||(d[3]=_=>c.value=_)},[...d[16]||(d[16]=[T("option",{value:"png"},"PNG (raster)",-1),T("option",{value:"pdf"},"PDF (raster on vector page)",-1)])],512),[[Vr,c.value]]),Ro(m.$slots,"format-extras",{},void 0,!0)]),T("label",JA,[d[18]||(d[18]=T("span",null,"Title",-1)),Wt(T("input",{"onUpdate:modelValue":d[4]||(d[4]=_=>u.value=_),type:"text",placeholder:"Map title"},null,512),[[Hr,u.value]])]),T("label",ZA,[d[19]||(d[19]=T("span",null,"Subtitle",-1)),Wt(T("input",{"onUpdate:modelValue":d[5]||(d[5]=_=>p.value=_),type:"text",placeholder:"(optional)"},null,512),[[Hr,p.value]])]),T("fieldset",QA,[d[23]||(d[23]=T("legend",null,"Slots",-1)),T("label",null,[Wt(T("input",{"onUpdate:modelValue":d[6]||(d[6]=_=>h.value=_),type:"checkbox"},null,512),[[xi,h.value]]),d[20]||(d[20]=gt(" Legend",-1))]),T("label",null,[Wt(T("input",{"onUpdate:modelValue":d[7]||(d[7]=_=>x.value=_),type:"checkbox"},null,512),[[xi,x.value]]),d[21]||(d[21]=gt(" Scale bar",-1))]),T("label",null,[Wt(T("input",{"onUpdate:modelValue":d[8]||(d[8]=_=>w.value=_),type:"checkbox"},null,512),[[xi,w.value]]),d[22]||(d[22]=gt(" North arrow",-1))]),d[24]||(d[24]=T("label",{class:"muted"},[T("input",{type:"checkbox",checked:"",disabled:""}),gt(" Footer (attribution required)")],-1))]),de(b).isRendering.value?(X(),re("div",eL,[T("strong",null,ye(de(b).progress.value.phase),1),T("progress",{max:de(b).progress.value.total||1,value:de(b).progress.value.completed},null,8,tL),T("small",null,ye(de(b).progress.value.message),1),T("button",{class:"btn btn--ghost",type:"button",onClick:d[9]||(d[9]=(..._)=>de(b).cancel&&de(b).cancel(..._))},"Cancel")])):ve("",!0),T("div",oL,[T("button",{class:"btn btn--ghost",type:"button",onClick:v},"Close"),T("button",{class:"btn btn--primary",type:"button",disabled:de(b).isRendering.value,onClick:y},ye(de(b).isRendering.value?"Rendering…":`Render ${c.value.toUpperCase()}`),9,nL)])]),T("main",aL,[Je(OA,{spec:f.value,"get-map":e.getMap,"legend-rows":e.legendRows,metadata:e.metadata},null,8,["spec","get-map","legend-rows","metadata"])])])])])):ve("",!0)]),_:3}))}},[["__scopeId","data-v-1e730db1"]])},Symbol.toStringTag,{value:"Module"}));function Dp(e,t,o,n){const a=parseFloat(t)-parseFloat(n),r=parseFloat(e)-parseFloat(o);return Math.sqrt(a*a+r*r)}function sL(e,t){const o={};for(const n of e){const a=t(n);o[a]||(o[a]=[]),o[a].push(n)}return o}const iL=Object.freeze({cluster:!0,clusterMaxZoom:6,clusterRadius:40}),lL=Object.freeze(["step",["get","point_count"],"#51bbd6",10,"#f1f075",50,"#f28cb1",500,"#e74c3c"]),cL=Object.freeze(["step",["get","point_count"],15,10,20,50,25,500,35]);class Op{constructor(t={}){this.maxConnectionDistance=t.maxConnectionDistance??1/0}_calculateDistance(t,o){return Dp(parseFloat(t.latitude),parseFloat(t.longitude),parseFloat(o.latitude),parseFloat(o.longitude))}_createUnionFind(t){const o=Array.from({length:t},(s,i)=>i),n=new Array(t).fill(0),a=s=>(o[s]!==s&&(o[s]=a(o[s])),o[s]);return{find:a,union:(s,i)=>{const l=a(s),c=a(i);return l===c?!1:(n[l]n[c]?o[c]=l:(o[c]=l,n[l]++),!0)}}}generateMSTLines(t,o={}){const n=o.maxConnectionDistance??this.maxConnectionDistance;if(!t||t.length<2)return[];const a=t.filter(p=>{const h=parseFloat(p.latitude),x=parseFloat(p.longitude);return!isNaN(h)&&!isNaN(x)});if(a.length<2)return[];const r=[];for(let p=0;pp.distance-h.distance);const s=this._createUnionFind(a.length),i=[];let l=0;const c=a.length-1;for(const p of r){if(l>=c)break;s.union(p.from,p.to)&&(i.push(p),l++)}const u=i.map(p=>({type:"Feature",geometry:{type:"LineString",coordinates:[[parseFloat(p.fromPoint.longitude),parseFloat(p.fromPoint.latitude)],[parseFloat(p.toPoint.longitude),parseFloat(p.toPoint.latitude)]]},properties:{distance:p.distance,algorithm:"MST"}}));return i.length${n} deg).`),u}generateMultiGroupMSTLines(t,o=null,n={}){const a={},r=Object.keys(t).sort((s,i)=>t[i].length-t[s].length);for(const s of r){const i=t[s];if(!i||i.length<2){a[s]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateMSTLines(i,n);if(typeof o=="function"){const c=o(s);l.forEach(u=>{u.properties={...u.properties,group:s,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:s}});a[s]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllMSTLines(t,o=null,n={}){const a=this.generateMultiGroupMSTLines(t,o,n),r=[];for(const s in a)r.push(...a[s].lines);return r}getMSTStats(t,o={}){const n=this.generateMultiGroupMSTLines(t,null,o);let a=0,r=0;const s=[];for(const l in n){const{lines:c,pointCount:u}=n[l];a+=c.length,r+=u;const p=Math.max(0,u-1),h=u>1?(c.length/p*100).toFixed(1):100;s.push({name:l,points:u,lines:c.length,expected:p,coverage:h+"%",hasOrphans:c.lengthc.points-l.points);const i=s.filter(l=>l.hasOrphans).length;return{algorithm:"MST (Minimum Spanning Tree)",totalGroups:Object.keys(t).length,totalPoints:r,totalLines:a,expectedLines:Math.max(0,r-Object.keys(t).length),groupsWithOrphans:i,allPointsConnected:i===0,groups:s}}}new Op;class Bp{constructor(t={}){this.maxDistance=t.maxDistance??15,this.maxNeighbors=t.maxNeighbors??15,this.sortKey=t.sortKey??"longitude"}_calculateDistance(t,o,n,a){return Dp(t,o,n,a)}generateNetworkLines(t,o={}){const n=o.maxDistance??this.maxDistance,a=o.maxNeighbors??this.maxNeighbors,r=o.sortKey??this.sortKey,s=o.connectOrphans??!0;if(!t||t.length<2)return[];const i=t.filter(p=>{const h=parseFloat(p.latitude),x=parseFloat(p.longitude);return!isNaN(h)&&!isNaN(x)});if(i.length<2)return[];const l=[],c=new Set,u=[...i].sort((p,h)=>parseFloat(p[r])-parseFloat(h[r]));for(let p=0;pt[i].length-t[s].length);for(const s of r){const i=t[s];if(!i||i.length<2){a[s]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateNetworkLines(i,n);if(typeof o=="function"){const c=o(s);l.forEach(u=>{u.properties={...u.properties,group:s,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:s}});a[s]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllNetworkLines(t,o=null,n={}){const a=this.generateMultiGroupNetworkLines(t,o,n),r=[];for(const s in a)r.push(...a[s].lines);return r}getClusteringStats(t,o={}){const n=this.generateMultiGroupNetworkLines(t,null,o);let a=0,r=0;const s=[];for(const i in n){const{lines:l,pointCount:c}=n[i];a+=l.length,r+=c,s.push({name:i,points:c,lines:l.length,ratio:c>0?(l.length/c).toFixed(2):0})}return s.sort((i,l)=>l.points-i.points),{algorithm:"Network (nearest-neighbor)",totalGroups:Object.keys(t).length,totalPoints:r,totalLines:a,avgLinesPerPoint:r>0?(a/r).toFixed(2):0,groups:s}}}new Bp({maxDistance:15,maxNeighbors:15,sortKey:"longitude"});const sa="cluster-lines-source",ia="cluster-lines",un="mapbox-clusters",Qt="mapbox-clusters-circle",la="mapbox-clusters-count",uL=Object.freeze({type:"FeatureCollection",features:[]});function jp(e={}){const{getMap:t=()=>null,mapId:o="unknown",getPeopleGroups:n=()=>[],pinSourceId:a="language-families",pinLayerId:r="language-family-pins",groupKey:s="languageFamily",getGroupColor:i=null,mapboxClusterOptions:l={}}=e,c=Pe("mapStore",null),u=new Op({maxConnectionDistance:1/0}),p=new Bp({maxDistance:15,maxNeighbors:15,sortKey:"longitude"}),h=ue(!1),x=ue("mapbox"),w=te(()=>c&&"clusteringEnabled"in c?!!c.clusteringEnabled:h.value),f=te(()=>c&&c.clusteringMode?c.clusteringMode:x.value),b=ue([]);let y=null,v=null,g=null;function m(H){const fe=["mapbox","mst","network"];if(!fe.includes(H)){console.warn(`[${o}] useMapClustering.setMode: unknown mode "${H}". Allowed: ${fe.join(", ")}`);return}c&&typeof c.setClusteringMode=="function"?c.setClusteringMode(H):c&&"clusteringMode"in c?c.clusteringMode=H:x.value=H,w.value&&(z(),S())}function d(H){const fe=!!H;c&&typeof c.setClusteringEnabled=="function"?c.setClusteringEnabled(fe):c&&"clusteringEnabled"in c?c.clusteringEnabled=fe:h.value=fe,fe?S():z()}function _(H){!H||!H.property||H.value==null?g=null:g={property:H.property,value:H.value},c&&("clusterFilterProperty"in c&&(c.clusterFilterProperty=(g==null?void 0:g.property)??null),"clusterFilterValue"in c&&(c.clusterFilterValue=(g==null?void 0:g.value)??null)),w.value&&(z(),S())}function L(H){if(!g)return H;const{property:fe,value:Ae}=g,we=ce=>String(ce||"").toLowerCase().replace(/[^a-z0-9]+/g,""),Ce=we(Ae);return Ce?H.filter(ce=>{var _e,he;const le=(ce==null?void 0:ce[fe])??((_e=ce==null?void 0:ce.properties)==null?void 0:_e[fe])??((he=ce==null?void 0:ce._normalized)==null?void 0:he[fe]);return we(le)===Ce}):H}function O(H){y=H}function S(){const H=t();if(H){switch(z(),f.value){case"mapbox":E(H);break;case"mst":C(H,"mst");break;case"network":C(H,"network");break;default:console.warn(`[${o}] Unknown clustering mode: ${f.value}`)}oe(H,!0)}}function z(){const H=t();H&&(j(H,la,!1),j(H,Qt,!1),M(H,un),j(H,ia,!1),M(H,sa),b.value=[],F(H),oe(H,!1))}function G(){const H=t();H&&(F(H),H.getLayer(la)&&H.removeLayer(la),H.getLayer(Qt)&&H.removeLayer(Qt),H.getSource(un)&&H.removeSource(un),H.getLayer(ia)&&H.removeLayer(ia),H.getSource(sa)&&H.removeSource(sa),oe(H,!1)),b.value=[],y=null}function j(H,fe,Ae){if(H.getLayer(fe))try{H.setLayoutProperty(fe,"visibility",Ae?"visible":"none")}catch{}}function M(H,fe){const Ae=H.getSource(fe);if(Ae&&typeof Ae.setData=="function")try{Ae.setData(uL)}catch{}}function E(H){const fe=L(n());if(!fe.length)return;const Ae=fe.map(ce=>{const le=parseFloat(ce.longitude??ce.lng),_e=parseFloat(ce.latitude??ce.lat);return isNaN(le)||isNaN(_e)?null:{type:"Feature",geometry:{type:"Point",coordinates:[le,_e]},properties:{...ce.properties||ce}}}).filter(Boolean),we={type:"FeatureCollection",features:Ae},Ce=H.getSource(un);Ce&&typeof Ce.setData=="function"?Ce.setData(we):H.addSource(un,{type:"geojson",data:we,...iL,...l}),H.getLayer(Qt)?j(H,Qt,!0):H.addLayer({id:Qt,type:"circle",source:un,filter:["has","point_count"],paint:{"circle-color":lL,"circle-radius":cL,"circle-stroke-width":2,"circle-stroke-color":"#ffffff",...Ya(H),"circle-opacity":.85}}),H.getLayer(la)?j(H,la,!0):H.addLayer({id:la,type:"symbol",source:un,filter:["has","point_count"],layout:{"text-field":["get","point_count_abbreviated"],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Bold"],"text-size":12},paint:{"text-color":"#000000"}}),P(H),console.log(`[${o}] Clustering: mapbox-native applied (${Ae.length} features)`)}function C(H,fe){const Ae=L(n());if(!Ae.length)return;const we=sL(Ae,xe=>{var $;return xe[s]??(($=xe._normalized)==null?void 0:$[s])??"Unknown"}),Ce=typeof i=="function"?i:()=>"#666666";let ce=[],le=null;if(fe==="mst"?(ce=u.generateAllMSTLines(we,Ce),le=u.getMSTStats(we)):(ce=p.generateAllNetworkLines(we,Ce),le=p.getClusteringStats(we)),b.value=ce,ce.length===0)return;const _e={type:"FeatureCollection",features:ce},he=H.getSource(sa);if(he&&typeof he.setData=="function"?he.setData(_e):H.addSource(sa,{type:"geojson",data:_e}),H.getLayer(ia))j(H,ia,!0);else{const xe={id:ia,type:"line",source:sa,paint:{"line-color":["coalesce",["get","color"],"#666666"],"line-width":["interpolate",["linear"],["zoom"],0,.5,4,.75,8,1,12,1.5],"line-emissive-strength":1,"line-opacity":.5},layout:{"line-cap":"round","line-join":"round"}};H.getLayer(r)?H.addLayer(xe,r):H.addLayer(xe)}console.log(`[${o}] Clustering: ${fe} applied — ${ce.length} lines across ${(le==null?void 0:le.totalGroups)??0} groups`)}function P(H){H.getLayer(Qt)&&(H.on("click",Qt,q),H.on("mouseenter",Qt,se),H.on("mouseleave",Qt,Z),v=Qt)}function F(H){if(!v)return;const fe=v;try{H.off("click",fe,q),H.off("mouseenter",fe,se),H.off("mouseleave",fe,Z)}catch{}v=null}function q(H){const fe=t();if(!fe)return;const Ae=fe.queryRenderedFeatures(H.point,{layers:[Qt]});if(!Ae.length)return;const we=Ae[0],Ce=we.properties.cluster_id,ce=we.geometry.coordinates,le=we.properties.point_count;if(typeof y=="function"){y({clusterId:Ce,coordinates:ce,pointCount:le,originalEvent:H});return}const _e=fe.getSource(un);!_e||typeof _e.getClusterExpansionZoom!="function"||_e.getClusterExpansionZoom(Ce,(he,xe)=>{he||fe.easeTo({center:ce,zoom:xe})})}function se(){const H=t();H&&(H.getCanvas().style.cursor="pointer")}function Z(){const H=t();H&&(H.getCanvas().style.cursor="")}function oe(H,fe){if(H.getLayer(r))try{H.setPaintProperty(r,"circle-opacity",fe?.25:.9)}catch{}}return{enabled:w,mode:f,clusterLines:b,setMode:m,setEnabled:d,setSelectionFilter:_,onClusterClick:O,applyClustering:S,clearClustering:z,cleanup:G,mstUtil:u,networkUtil:p}}const dL=Object.freeze(Object.defineProperty({__proto__:null,default:jp,useMapClustering:jp},Symbol.toStringTag,{value:"Module"}));function gL(e){const t=ue({phase:"idle",completed:0,total:0,message:""}),o=ue(!1);function n(r,s,i,l){t.value={phase:r,completed:s,total:i,message:l}}async function a(r,s,i={}){if(o.value)throw new Error("useMapPacket: already rendering");o.value=!0;const l=Array.isArray(s)?s:[],c=1+l.length;try{n("map",0,c,"rendering map page");const u=await $l(e).render(r,"png"),p=await vL(u);n("pdf-init",1,c,"building PDF");let h;try{const y=await eo(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);h=y.jsPDF||y.default}catch{throw new Error("useMapPacket: jspdf not installed (npm i jspdf)")}const x=new h({orientation:r.widthIn>r.heightIn?"l":"p",unit:"in",format:[r.widthIn,r.heightIn]}),w=r.widthIn,f=r.heightIn,b=fL(i);x.addImage(p,"PNG",0,0,w,f),Up(x,w,f,b);for(let y=0;y0&&r<=1?r*100:r).toFixed(1)}%`}function yL(e){var a;const t=Qa(e),o=er(t.peoplePraying,(a=t._raw)==null?void 0:a.people_praying,e.peoplePraying);if(o===void 0)return"—";const n=Number(o);return Number.isNaN(n)?"—":n.toLocaleString()}function vL(e){return new Promise((t,o)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>o(new Error("useMapPacket: failed to read map blob")),n.readAsDataURL(e)})}const _L=Object.freeze(Object.defineProperty({__proto__:null,useMapPacket:gL},Symbol.toStringTag,{value:"Module"}))})(); + `}function ra(e){return e==="<"?"<":e===">"?">":"&"}const IA=Object.freeze(Object.defineProperty({__proto__:null,posterPixels:El,useMapPoster:$l},Symbol.toStringTag,{value:"Module"})),MA=".title-slot[data-v-7caa85cc]{padding:4% 2%;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;width:100%;height:100%;color:#0a0a0a}.title-slot__title[data-v-7caa85cc]{font-weight:700;font-size:clamp(20px,6vw,64px);line-height:1.05;letter-spacing:-.01em}.title-slot__subtitle[data-v-7caa85cc]{margin-top:.35em;font-weight:500;font-size:clamp(12px,2.4vw,28px);color:#444}",FA={class:"title-slot__title"},RA={key:0,class:"title-slot__subtitle"},DA=Rt({__name:"TitleSlot",props:{title:{type:String,default:""},subtitle:{type:String,default:""},align:{type:String,default:"left"}},emits:[],setup(e){const t=e,o=te(()=>({textAlign:t.align,fontFamily:dt.title.fontFamily,background:"rgba(255,255,255,0.92)",borderBottom:"1px solid #eee"}));return(n,a)=>(X(),re("div",{class:"title-slot",style:Xe(o.value)},[T("div",FA,ye(e.title||"Untitled"),1),e.subtitle?(X(),re("div",RA,ye(e.subtitle),1)):ve("",!0)],4))}},[["styles",[MA]],["__scopeId","data-v-7caa85cc"]]),OA=".poster-slot[data-v-1a65b1e9]{display:none}",BA={class:"poster-slot poster-slot--LegendSlot","data-slot":"LegendSlot"},jA=Rt({__name:"LegendSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(X(),re("div",BA))}},[["styles",[OA]],["__scopeId","data-v-1a65b1e9"]]),zA=".poster-slot[data-v-2cbe964e]{display:none}",UA={class:"poster-slot poster-slot--ScaleBarSlot","data-slot":"ScaleBarSlot"},GA=Rt({__name:"ScaleBarSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(X(),re("div",UA))}},[["styles",[zA]],["__scopeId","data-v-2cbe964e"]]),KA=".poster-slot[data-v-d12819c9]{display:none}",HA={class:"poster-slot poster-slot--NorthArrowSlot","data-slot":"NorthArrowSlot"},VA=Rt({__name:"NorthArrowSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(X(),re("div",HA))}},[["styles",[KA]],["__scopeId","data-v-d12819c9"]]),qA=".poster-slot[data-v-93c6c172]{display:none}",WA={class:"poster-slot poster-slot--FooterSlot","data-slot":"FooterSlot"},YA=Rt({__name:"FooterSlot",props:{spec:{type:Object,default:()=>({})}},setup(e){return(t,o)=>(X(),re("div",WA))}},[["styles",[qA]],["__scopeId","data-v-93c6c172"]]),XA=".poster-preview[data-v-563f7dcd]{width:100%;height:100%;display:flex;align-items:flex-start;justify-content:center;padding:0}.poster-preview__page[data-v-563f7dcd]{display:block}.poster-preview__map[data-v-563f7dcd]{object-fit:cover;display:block}.poster-preview__map.placeholder[data-v-563f7dcd]{display:flex;align-items:center;justify-content:center;background:#ddd;color:#555;font-size:14px}.poster-preview__slot[data-v-563f7dcd]{pointer-events:none}",JA=["src"],ZA=Rt({__name:"PosterPreview",props:{spec:{type:Object,required:!0},getMap:{type:Function,required:!0},legendRows:{type:Array,default:()=>[]},metadata:{type:Object,default:()=>({})}},setup(e){const t=e,o=ue(null),n=ue(""),a=ue(800),r=ue(0),s=ue(0),i=ue(null),l=te(()=>El(t.spec)),c=te(()=>Ag(t.spec,l.value)),u=te(()=>{const f=l.value.width;return f?Math.min(1,(a.value-24)/f):1}),g=te(()=>({width:l.value.width+"px",height:l.value.height+"px",transform:`scale(${u.value})`,transformOrigin:"top left",background:"#fff",position:"relative",boxShadow:"0 6px 24px rgba(0,0,0,0.25)"}));function h(f){return f?{position:"absolute",left:f.x+"px",top:f.y+"px",width:f.w+"px",height:f.h+"px"}:{display:"none"}}let w=null;Jt(()=>{o.value&&typeof ResizeObserver<"u"&&(w=new ResizeObserver(()=>{var f;a.value=((f=o.value)==null?void 0:f.clientWidth)||800}),w.observe(o.value),a.value=o.value.clientWidth),x()}),Ea(()=>{w&&(w.disconnect(),w=null)}),Re(()=>[t.spec.widthIn,t.spec.heightIn,t.spec.orientation,t.spec.dpi],()=>{x()});async function x(){var b,y,v,p;const f=(b=t.getMap)==null?void 0:b.call(t);if(f)try{(!f.loaded()||f.isMoving())&&await new Promise(d=>f.once("idle",d)),n.value=f.getCanvas().toDataURL("image/png"),r.value=((y=f.getBearing)==null?void 0:y.call(f))||0;const m=(v=f.getCenter)==null?void 0:v.call(f);s.value=(m==null?void 0:m.lat)||0,i.value=(p=f.getBounds)==null?void 0:p.call(f)}catch(m){console.warn("[PosterPreview] snapshot failed",m)}}return(f,b)=>{var y,v,p,m,d,_,L,O,S,U,G;return X(),re("div",{ref_key:"rootEl",ref:o,class:"poster-preview"},[T("div",{class:"poster-preview__page",style:Xe(g.value)},[n.value?(X(),re("img",{key:0,class:"poster-preview__map",src:n.value,style:Xe(h(c.value.map)),alt:"map preview"},null,12,JA)):(X(),re("div",{key:1,class:"poster-preview__map placeholder",style:Xe(h(c.value.map))}," Loading map snapshot… ",4)),(y=e.spec.slots)!=null&&y.title?(X(),Ge(DA,{key:2,class:"poster-preview__slot",style:Xe(h(c.value.title)),title:e.spec.slots.title.text,subtitle:e.spec.slots.title.subtitle},null,8,["style","title","subtitle"])):ve("",!0),(v=e.spec.slots)!=null&&v.legend&&((p=e.spec.slots.legend.rows)!=null&&p.length)?(X(),Ge(jA,{key:3,class:"poster-preview__slot",style:Xe(h(c.value.legend)),rows:e.spec.slots.legend.rows,type:e.spec.slots.legend.type},null,8,["style","rows","type"])):ve("",!0),(m=e.spec.slots)!=null&&m.scaleBar?(X(),Ge(GA,{key:4,class:"poster-preview__slot",style:Xe(h(c.value.scaleBar)),"map-bounds":i.value,"map-center-lat":s.value},null,8,["style","map-bounds","map-center-lat"])):ve("",!0),(d=e.spec.slots)!=null&&d.north?(X(),Ge(VA,{key:5,class:"poster-preview__slot",style:Xe(h(c.value.north)),bearing:r.value},null,8,["style","bearing"])):ve("",!0),Je(YA,{class:"poster-preview__slot",style:Xe(h(c.value.footer)),left:(L=(_=e.spec.slots)==null?void 0:_.footer)==null?void 0:L.left,right:(S=(O=e.spec.slots)==null?void 0:O.footer)==null?void 0:S.right,attribution:(G=(U=e.spec.slots)==null?void 0:U.footer)==null?void 0:G.attribution,metadata:e.metadata},null,8,["style","left","right","attribution","metadata"])],4)],512)}}},[["styles",[XA]],["__scopeId","data-v-563f7dcd"]]),Tg=25.4,Pg=e=>e/Tg,Ng=e=>e*Tg;function Lo(e,t,o,n,a,r,s,i){const l=a==="in"?{w:o,h:n}:{w:Ig(Pg(o)),h:Ig(Pg(n))},c=a==="mm"?{w:o,h:n}:{w:Mg(Ng(o)),h:Mg(Ng(n))},u={w:Math.round(l.w*300),h:Math.round(l.h*300)};return{id:e,label:t,inches:l,mm:c,px300:u,category:r,orientation:s,recommendedDpi:i}}function Ig(e){return Math.round(e*1e3)/1e3}function Mg(e){return Math.round(e*10)/10}const Fg={letter:Lo("letter",'Letter (8.5×11")',8.5,11,"in","us","either",300),tabloid:Lo("tabloid",'Tabloid (11×17")',11,17,"in","us","either",300),"18x24":Lo("18x24",'18 × 24"',18,24,"in","us","portrait",300),"24x36":Lo("24x36",'24 × 36"',24,36,"in","us","portrait",300),"27x40":Lo("27x40",'27 × 40"',27,40,"in","us","portrait",200),a4:Lo("a4","A4 (210 × 297 mm)",210,297,"mm","iso","either",300),a3:Lo("a3","A3 (297 × 420 mm)",297,420,"mm","iso","either",300),a2:Lo("a2","A2 (420 × 594 mm)",420,594,"mm","iso","portrait",300),a1:Lo("a1","A1 (594 × 841 mm)",594,841,"mm","iso","portrait",200),a0:Lo("a0","A0 (841 × 1189 mm)",841,1189,"mm","iso","portrait",150)},QA=["letter","tabloid","18x24","24x36","27x40","a4","a3","a2","a1","a0"],eL="24x36";function Rg(e){return Fg[e]||null}function tL(){return QA.map(e=>Fg[e])}const oL=".poster-dlg-backdrop[data-v-1e730db1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:9999}.poster-dlg[data-v-1e730db1]{background:#fff;width:min(1100px,95vw);height:min(800px,92vh);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000059}.poster-dlg__header[data-v-1e730db1]{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid #eee}.poster-dlg__header h2[data-v-1e730db1]{margin:0;font-size:16px;font-weight:600}.poster-dlg__close[data-v-1e730db1]{background:none;border:0;font-size:22px;cursor:pointer;color:#555}.poster-dlg__body[data-v-1e730db1]{flex:1;min-height:0;display:grid;grid-template-columns:280px 1fr}.poster-dlg__controls[data-v-1e730db1]{padding:14px;border-right:1px solid #eee;overflow-y:auto;display:flex;flex-direction:column;gap:10px;background:#fafafa}.poster-dlg__preview[data-v-1e730db1]{padding:14px;overflow:auto;background:#2b2b2b}.ctl[data-v-1e730db1]{display:flex;flex-direction:column;font-size:12px;color:#444;gap:4px}.ctl--check[data-v-1e730db1]{border:0;padding:0;margin:0}.ctl--check legend[data-v-1e730db1]{font-size:12px;color:#444;padding:0 0 4px}.ctl--check label[data-v-1e730db1]{display:flex;align-items:center;gap:6px;font-size:12px}.ctl input[data-v-1e730db1],.ctl select[data-v-1e730db1]{padding:6px 8px;border:1px solid #ccc;border-radius:4px;font-size:13px}.muted[data-v-1e730db1]{opacity:.65}.actions[data-v-1e730db1]{display:flex;gap:8px;margin-top:auto}.btn[data-v-1e730db1]{padding:8px 12px;border-radius:4px;border:1px solid #ccc;cursor:pointer;font-size:13px}.btn--primary[data-v-1e730db1]{background:#26d;color:#fff;border-color:#26d}.btn--primary[data-v-1e730db1]:disabled{background:#88aae0;cursor:progress}.btn--ghost[data-v-1e730db1]{background:transparent}.render-status[data-v-1e730db1]{display:flex;flex-direction:column;gap:6px;padding:8px;background:#fff;border:1px solid #eee;border-radius:4px;font-size:12px}.render-status progress[data-v-1e730db1]{width:100%}.poster-dlg-enter-active[data-v-1e730db1],.poster-dlg-leave-active[data-v-1e730db1]{transition:opacity .15s ease}.poster-dlg-enter-from[data-v-1e730db1],.poster-dlg-leave-to[data-v-1e730db1]{opacity:0}",nL={class:"poster-dlg",role:"dialog","aria-modal":"true","aria-label":"Export Poster"},aL={class:"poster-dlg__header"},rL={class:"poster-dlg__body"},sL={class:"poster-dlg__controls"},iL={class:"ctl"},lL=["value"],cL={class:"ctl"},uL={class:"ctl"},dL={class:"ctl"},pL={class:"ctl"},gL={class:"ctl"},fL={class:"ctl ctl--check"},hL={key:0,class:"render-status"},mL=["max","value"],bL={class:"actions"},yL=["disabled"],vL={class:"poster-dlg__preview"},_L=Object.freeze(Object.defineProperty({__proto__:null,default:Rt({__name:"PosterDialog",props:{modelValue:{type:Boolean,default:!1},getMap:{type:Function,required:!0},legendRows:{type:Array,default:()=>[]},metadata:{type:Object,default:()=>({})},initialSize:{type:String,default:eL}},emits:["update:modelValue","rendered","error"],setup(e,{emit:t}){const o=e,n=t,a=te({get:()=>o.modelValue,set:m=>n("update:modelValue",m)}),r=tL(),s=ue(o.initialSize),i=ue("portrait"),l=ue(300),c=ue("png"),u=ue(""),g=ue(""),h=ue(!0),w=ue(!0),x=ue(!0);Re(s,m=>{const d=Rg(m);d&&(l.value=d.recommendedDpi,d.orientation!=="either"&&(i.value=d.orientation))},{immediate:!0});const f=te(()=>{const m=Rg(s.value);if(!m)return Cl({widthIn:24,heightIn:36});const d=Cl({widthIn:m.inches.w,heightIn:m.inches.h,dpi:l.value,orientation:i.value});return d.slots.title={...d.slots.title,text:u.value,subtitle:g.value},d.slots.legend=h.value?{...d.slots.legend,rows:o.legendRows}:null,d.slots.scaleBar=w.value,d.slots.north=x.value,d.slots.footer={...d.slots.footer,left:o.metadata.source?`Source: ${o.metadata.source}`:"",right:o.metadata.date?`${o.metadata.date}`:new Date().toISOString().slice(0,10),attribution:dt.footer.attribution},d}),b=$l(o.getMap);async function y(){try{const m=await b.render(f.value,c.value),d=c.value==="pdf"?"pdf":"png",_=(u.value||"poster").replace(/\W+/g,"-").toLowerCase();p(m,`${_}.${d}`),n("rendered",{blob:m,format:c.value,spec:f.value})}catch(m){console.error("[PosterDialog] render failed",m),n("error",m)}}function v(){a.value=!1}function p(m,d){const _=URL.createObjectURL(m),L=document.createElement("a");L.href=_,L.download=d,document.body.appendChild(L),L.click(),L.remove(),setTimeout(()=>URL.revokeObjectURL(_),1500)}return(m,d)=>(X(),Ge(km,{name:"poster-dlg"},{default:Dt(()=>[a.value?(X(),re("div",{key:0,class:"poster-dlg-backdrop",onClick:gt(v,["self"])},[T("section",nL,[T("header",aL,[Ro(m.$slots,"header",{},()=>[d[10]||(d[10]=T("h2",null,"Export Poster",-1))],!0),T("button",{class:"poster-dlg__close",type:"button","aria-label":"Close",onClick:v},"×")]),T("div",rL,[T("aside",sL,[T("label",iL,[d[11]||(d[11]=T("span",null,"Size",-1)),Wt(T("select",{"onUpdate:modelValue":d[0]||(d[0]=_=>s.value=_)},[(X(!0),re(Be,null,At(de(r),_=>(X(),re("option",{key:_.id,value:_.id},ye(_.label),9,lL))),128))],512),[[Vr,s.value]])]),T("label",cL,[d[13]||(d[13]=T("span",null,"Orientation",-1)),Wt(T("select",{"onUpdate:modelValue":d[1]||(d[1]=_=>i.value=_)},[...d[12]||(d[12]=[T("option",{value:"portrait"},"Portrait",-1),T("option",{value:"landscape"},"Landscape",-1)])],512),[[Vr,i.value]])]),T("label",uL,[d[15]||(d[15]=T("span",null,"DPI",-1)),Wt(T("select",{"onUpdate:modelValue":d[2]||(d[2]=_=>l.value=_)},[...d[14]||(d[14]=[T("option",{value:150},"150 (large posters)",-1),T("option",{value:200},"200 (balanced)",-1),T("option",{value:300},"300 (sharp)",-1)])],512),[[Vr,l.value,void 0,{number:!0}]])]),T("label",dL,[d[17]||(d[17]=T("span",null,"Format",-1)),Wt(T("select",{"onUpdate:modelValue":d[3]||(d[3]=_=>c.value=_)},[...d[16]||(d[16]=[T("option",{value:"png"},"PNG (raster)",-1),T("option",{value:"pdf"},"PDF (raster on vector page)",-1)])],512),[[Vr,c.value]]),Ro(m.$slots,"format-extras",{},void 0,!0)]),T("label",pL,[d[18]||(d[18]=T("span",null,"Title",-1)),Wt(T("input",{"onUpdate:modelValue":d[4]||(d[4]=_=>u.value=_),type:"text",placeholder:"Map title"},null,512),[[Hr,u.value]])]),T("label",gL,[d[19]||(d[19]=T("span",null,"Subtitle",-1)),Wt(T("input",{"onUpdate:modelValue":d[5]||(d[5]=_=>g.value=_),type:"text",placeholder:"(optional)"},null,512),[[Hr,g.value]])]),T("fieldset",fL,[d[23]||(d[23]=T("legend",null,"Slots",-1)),T("label",null,[Wt(T("input",{"onUpdate:modelValue":d[6]||(d[6]=_=>h.value=_),type:"checkbox"},null,512),[[wi,h.value]]),d[20]||(d[20]=pt(" Legend",-1))]),T("label",null,[Wt(T("input",{"onUpdate:modelValue":d[7]||(d[7]=_=>w.value=_),type:"checkbox"},null,512),[[wi,w.value]]),d[21]||(d[21]=pt(" Scale bar",-1))]),T("label",null,[Wt(T("input",{"onUpdate:modelValue":d[8]||(d[8]=_=>x.value=_),type:"checkbox"},null,512),[[wi,x.value]]),d[22]||(d[22]=pt(" North arrow",-1))]),d[24]||(d[24]=T("label",{class:"muted"},[T("input",{type:"checkbox",checked:"",disabled:""}),pt(" Footer (attribution required)")],-1))]),de(b).isRendering.value?(X(),re("div",hL,[T("strong",null,ye(de(b).progress.value.phase),1),T("progress",{max:de(b).progress.value.total||1,value:de(b).progress.value.completed},null,8,mL),T("small",null,ye(de(b).progress.value.message),1),T("button",{class:"btn btn--ghost",type:"button",onClick:d[9]||(d[9]=(..._)=>de(b).cancel&&de(b).cancel(..._))},"Cancel")])):ve("",!0),T("div",bL,[T("button",{class:"btn btn--ghost",type:"button",onClick:v},"Close"),T("button",{class:"btn btn--primary",type:"button",disabled:de(b).isRendering.value,onClick:y},ye(de(b).isRendering.value?"Rendering…":`Render ${c.value.toUpperCase()}`),9,yL)])]),T("main",vL,[Je(ZA,{spec:f.value,"get-map":e.getMap,"legend-rows":e.legendRows,metadata:e.metadata},null,8,["spec","get-map","legend-rows","metadata"])])])])])):ve("",!0)]),_:3}))}},[["styles",[oL]],["__scopeId","data-v-1e730db1"]])},Symbol.toStringTag,{value:"Module"}));function Dg(e,t,o,n){const a=parseFloat(t)-parseFloat(n),r=parseFloat(e)-parseFloat(o);return Math.sqrt(a*a+r*r)}function kL(e,t){const o={};for(const n of e){const a=t(n);o[a]||(o[a]=[]),o[a].push(n)}return o}const xL=Object.freeze({cluster:!0,clusterMaxZoom:6,clusterRadius:40}),wL=Object.freeze(["step",["get","point_count"],"#51bbd6",10,"#f1f075",50,"#f28cb1",500,"#e74c3c"]),SL=Object.freeze(["step",["get","point_count"],15,10,20,50,25,500,35]);class Og{constructor(t={}){this.maxConnectionDistance=t.maxConnectionDistance??1/0}_calculateDistance(t,o){return Dg(parseFloat(t.latitude),parseFloat(t.longitude),parseFloat(o.latitude),parseFloat(o.longitude))}_createUnionFind(t){const o=Array.from({length:t},(s,i)=>i),n=new Array(t).fill(0),a=s=>(o[s]!==s&&(o[s]=a(o[s])),o[s]);return{find:a,union:(s,i)=>{const l=a(s),c=a(i);return l===c?!1:(n[l]n[c]?o[c]=l:(o[c]=l,n[l]++),!0)}}}generateMSTLines(t,o={}){const n=o.maxConnectionDistance??this.maxConnectionDistance;if(!t||t.length<2)return[];const a=t.filter(g=>{const h=parseFloat(g.latitude),w=parseFloat(g.longitude);return!isNaN(h)&&!isNaN(w)});if(a.length<2)return[];const r=[];for(let g=0;gg.distance-h.distance);const s=this._createUnionFind(a.length),i=[];let l=0;const c=a.length-1;for(const g of r){if(l>=c)break;s.union(g.from,g.to)&&(i.push(g),l++)}const u=i.map(g=>({type:"Feature",geometry:{type:"LineString",coordinates:[[parseFloat(g.fromPoint.longitude),parseFloat(g.fromPoint.latitude)],[parseFloat(g.toPoint.longitude),parseFloat(g.toPoint.latitude)]]},properties:{distance:g.distance,algorithm:"MST"}}));return i.length${n} deg).`),u}generateMultiGroupMSTLines(t,o=null,n={}){const a={},r=Object.keys(t).sort((s,i)=>t[i].length-t[s].length);for(const s of r){const i=t[s];if(!i||i.length<2){a[s]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateMSTLines(i,n);if(typeof o=="function"){const c=o(s);l.forEach(u=>{u.properties={...u.properties,group:s,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:s}});a[s]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllMSTLines(t,o=null,n={}){const a=this.generateMultiGroupMSTLines(t,o,n),r=[];for(const s in a)r.push(...a[s].lines);return r}getMSTStats(t,o={}){const n=this.generateMultiGroupMSTLines(t,null,o);let a=0,r=0;const s=[];for(const l in n){const{lines:c,pointCount:u}=n[l];a+=c.length,r+=u;const g=Math.max(0,u-1),h=u>1?(c.length/g*100).toFixed(1):100;s.push({name:l,points:u,lines:c.length,expected:g,coverage:h+"%",hasOrphans:c.lengthc.points-l.points);const i=s.filter(l=>l.hasOrphans).length;return{algorithm:"MST (Minimum Spanning Tree)",totalGroups:Object.keys(t).length,totalPoints:r,totalLines:a,expectedLines:Math.max(0,r-Object.keys(t).length),groupsWithOrphans:i,allPointsConnected:i===0,groups:s}}}new Og;class Bg{constructor(t={}){this.maxDistance=t.maxDistance??15,this.maxNeighbors=t.maxNeighbors??15,this.sortKey=t.sortKey??"longitude"}_calculateDistance(t,o,n,a){return Dg(t,o,n,a)}generateNetworkLines(t,o={}){const n=o.maxDistance??this.maxDistance,a=o.maxNeighbors??this.maxNeighbors,r=o.sortKey??this.sortKey,s=o.connectOrphans??!0;if(!t||t.length<2)return[];const i=t.filter(g=>{const h=parseFloat(g.latitude),w=parseFloat(g.longitude);return!isNaN(h)&&!isNaN(w)});if(i.length<2)return[];const l=[],c=new Set,u=[...i].sort((g,h)=>parseFloat(g[r])-parseFloat(h[r]));for(let g=0;gt[i].length-t[s].length);for(const s of r){const i=t[s];if(!i||i.length<2){a[s]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateNetworkLines(i,n);if(typeof o=="function"){const c=o(s);l.forEach(u=>{u.properties={...u.properties,group:s,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:s}});a[s]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllNetworkLines(t,o=null,n={}){const a=this.generateMultiGroupNetworkLines(t,o,n),r=[];for(const s in a)r.push(...a[s].lines);return r}getClusteringStats(t,o={}){const n=this.generateMultiGroupNetworkLines(t,null,o);let a=0,r=0;const s=[];for(const i in n){const{lines:l,pointCount:c}=n[i];a+=l.length,r+=c,s.push({name:i,points:c,lines:l.length,ratio:c>0?(l.length/c).toFixed(2):0})}return s.sort((i,l)=>l.points-i.points),{algorithm:"Network (nearest-neighbor)",totalGroups:Object.keys(t).length,totalPoints:r,totalLines:a,avgLinesPerPoint:r>0?(a/r).toFixed(2):0,groups:s}}}new Bg({maxDistance:15,maxNeighbors:15,sortKey:"longitude"});const sa="cluster-lines-source",ia="cluster-lines",un="mapbox-clusters",Qt="mapbox-clusters-circle",la="mapbox-clusters-count",AL=Object.freeze({type:"FeatureCollection",features:[]});function jg(e={}){const{getMap:t=()=>null,mapId:o="unknown",getPeopleGroups:n=()=>[],pinSourceId:a="language-families",pinLayerId:r="language-family-pins",groupKey:s="languageFamily",getGroupColor:i=null,mapboxClusterOptions:l={}}=e,c=Pe("mapStore",null),u=new Og({maxConnectionDistance:1/0}),g=new Bg({maxDistance:15,maxNeighbors:15,sortKey:"longitude"}),h=ue(!1),w=ue("mapbox"),x=te(()=>c&&"clusteringEnabled"in c?!!c.clusteringEnabled:h.value),f=te(()=>c&&c.clusteringMode?c.clusteringMode:w.value),b=ue([]);let y=null,v=null,p=null;function m(H){const fe=["mapbox","mst","network"];if(!fe.includes(H)){console.warn(`[${o}] useMapClustering.setMode: unknown mode "${H}". Allowed: ${fe.join(", ")}`);return}c&&typeof c.setClusteringMode=="function"?c.setClusteringMode(H):c&&"clusteringMode"in c?c.clusteringMode=H:w.value=H,x.value&&(U(),S())}function d(H){const fe=!!H;c&&typeof c.setClusteringEnabled=="function"?c.setClusteringEnabled(fe):c&&"clusteringEnabled"in c?c.clusteringEnabled=fe:h.value=fe,fe?S():U()}function _(H){!H||!H.property||H.value==null?p=null:p={property:H.property,value:H.value},c&&("clusterFilterProperty"in c&&(c.clusterFilterProperty=(p==null?void 0:p.property)??null),"clusterFilterValue"in c&&(c.clusterFilterValue=(p==null?void 0:p.value)??null)),x.value&&(U(),S())}function L(H){if(!p)return H;const{property:fe,value:Ae}=p,xe=ce=>String(ce||"").toLowerCase().replace(/[^a-z0-9]+/g,""),Ce=xe(Ae);return Ce?H.filter(ce=>{var _e,he;const le=(ce==null?void 0:ce[fe])??((_e=ce==null?void 0:ce.properties)==null?void 0:_e[fe])??((he=ce==null?void 0:ce._normalized)==null?void 0:he[fe]);return xe(le)===Ce}):H}function O(H){y=H}function S(){const H=t();if(H){switch(U(),f.value){case"mapbox":E(H);break;case"mst":C(H,"mst");break;case"network":C(H,"network");break;default:console.warn(`[${o}] Unknown clustering mode: ${f.value}`)}oe(H,!0)}}function U(){const H=t();H&&(j(H,la,!1),j(H,Qt,!1),M(H,un),j(H,ia,!1),M(H,sa),b.value=[],F(H),oe(H,!1))}function G(){const H=t();H&&(F(H),H.getLayer(la)&&H.removeLayer(la),H.getLayer(Qt)&&H.removeLayer(Qt),H.getSource(un)&&H.removeSource(un),H.getLayer(ia)&&H.removeLayer(ia),H.getSource(sa)&&H.removeSource(sa),oe(H,!1)),b.value=[],y=null}function j(H,fe,Ae){if(H.getLayer(fe))try{H.setLayoutProperty(fe,"visibility",Ae?"visible":"none")}catch{}}function M(H,fe){const Ae=H.getSource(fe);if(Ae&&typeof Ae.setData=="function")try{Ae.setData(AL)}catch{}}function E(H){const fe=L(n());if(!fe.length)return;const Ae=fe.map(ce=>{const le=parseFloat(ce.longitude??ce.lng),_e=parseFloat(ce.latitude??ce.lat);return isNaN(le)||isNaN(_e)?null:{type:"Feature",geometry:{type:"Point",coordinates:[le,_e]},properties:{...ce.properties||ce}}}).filter(Boolean),xe={type:"FeatureCollection",features:Ae},Ce=H.getSource(un);Ce&&typeof Ce.setData=="function"?Ce.setData(xe):H.addSource(un,{type:"geojson",data:xe,...xL,...l}),H.getLayer(Qt)?j(H,Qt,!0):H.addLayer({id:Qt,type:"circle",source:un,filter:["has","point_count"],paint:{"circle-color":wL,"circle-radius":SL,"circle-stroke-width":2,"circle-stroke-color":"#ffffff",...Ya(H),"circle-opacity":.85}}),H.getLayer(la)?j(H,la,!0):H.addLayer({id:la,type:"symbol",source:un,filter:["has","point_count"],layout:{"text-field":["get","point_count_abbreviated"],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Bold"],"text-size":12},paint:{"text-color":"#000000"}}),P(H),console.log(`[${o}] Clustering: mapbox-native applied (${Ae.length} features)`)}function C(H,fe){const Ae=L(n());if(!Ae.length)return;const xe=kL(Ae,we=>{var $;return we[s]??(($=we._normalized)==null?void 0:$[s])??"Unknown"}),Ce=typeof i=="function"?i:()=>"#666666";let ce=[],le=null;if(fe==="mst"?(ce=u.generateAllMSTLines(xe,Ce),le=u.getMSTStats(xe)):(ce=g.generateAllNetworkLines(xe,Ce),le=g.getClusteringStats(xe)),b.value=ce,ce.length===0)return;const _e={type:"FeatureCollection",features:ce},he=H.getSource(sa);if(he&&typeof he.setData=="function"?he.setData(_e):H.addSource(sa,{type:"geojson",data:_e}),H.getLayer(ia))j(H,ia,!0);else{const we={id:ia,type:"line",source:sa,paint:{"line-color":["coalesce",["get","color"],"#666666"],"line-width":["interpolate",["linear"],["zoom"],0,.5,4,.75,8,1,12,1.5],"line-emissive-strength":1,"line-opacity":.5},layout:{"line-cap":"round","line-join":"round"}};H.getLayer(r)?H.addLayer(we,r):H.addLayer(we)}console.log(`[${o}] Clustering: ${fe} applied — ${ce.length} lines across ${(le==null?void 0:le.totalGroups)??0} groups`)}function P(H){H.getLayer(Qt)&&(H.on("click",Qt,q),H.on("mouseenter",Qt,se),H.on("mouseleave",Qt,Z),v=Qt)}function F(H){if(!v)return;const fe=v;try{H.off("click",fe,q),H.off("mouseenter",fe,se),H.off("mouseleave",fe,Z)}catch{}v=null}function q(H){const fe=t();if(!fe)return;const Ae=fe.queryRenderedFeatures(H.point,{layers:[Qt]});if(!Ae.length)return;const xe=Ae[0],Ce=xe.properties.cluster_id,ce=xe.geometry.coordinates,le=xe.properties.point_count;if(typeof y=="function"){y({clusterId:Ce,coordinates:ce,pointCount:le,originalEvent:H});return}const _e=fe.getSource(un);!_e||typeof _e.getClusterExpansionZoom!="function"||_e.getClusterExpansionZoom(Ce,(he,we)=>{he||fe.easeTo({center:ce,zoom:we})})}function se(){const H=t();H&&(H.getCanvas().style.cursor="pointer")}function Z(){const H=t();H&&(H.getCanvas().style.cursor="")}function oe(H,fe){if(H.getLayer(r))try{H.setPaintProperty(r,"circle-opacity",fe?.25:.9)}catch{}}return{enabled:x,mode:f,clusterLines:b,setMode:m,setEnabled:d,setSelectionFilter:_,onClusterClick:O,applyClustering:S,clearClustering:U,cleanup:G,mstUtil:u,networkUtil:g}}const LL=Object.freeze(Object.defineProperty({__proto__:null,default:jg,useMapClustering:jg},Symbol.toStringTag,{value:"Module"}));function CL(e){const t=ue({phase:"idle",completed:0,total:0,message:""}),o=ue(!1);function n(r,s,i,l){t.value={phase:r,completed:s,total:i,message:l}}async function a(r,s,i={}){if(o.value)throw new Error("useMapPacket: already rendering");o.value=!0;const l=Array.isArray(s)?s:[],c=1+l.length;try{n("map",0,c,"rendering map page");const u=await $l(e).render(r,"png"),g=await ML(u);n("pdf-init",1,c,"building PDF");let h;try{const y=await eo(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);h=y.jsPDF||y.default}catch{throw new Error("useMapPacket: jspdf not installed (npm i jspdf)")}const w=new h({orientation:r.widthIn>r.heightIn?"l":"p",unit:"in",format:[r.widthIn,r.heightIn]}),x=r.widthIn,f=r.heightIn,b=EL(i);w.addImage(g,"PNG",0,0,x,f),zg(w,x,f,b);for(let y=0;y0&&r<=1?r*100:r).toFixed(1)}%`}function IL(e){var a;const t=Qa(e),o=er(t.peoplePraying,(a=t._raw)==null?void 0:a.people_praying,e.peoplePraying);if(o===void 0)return"—";const n=Number(o);return Number.isNaN(n)?"—":n.toLocaleString()}function ML(e){return new Promise((t,o)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>o(new Error("useMapPacket: failed to read map blob")),n.readAsDataURL(e)})}const FL=Object.freeze(Object.defineProperty({__proto__:null,useMapPacket:CL},Symbol.toStringTag,{value:"Module"}))})(); diff --git a/public/doxa-maps/doxa-research-map/index.html b/public/doxa-maps/doxa-research-map/index.html index 46c230e50..be107e18d 100644 --- a/public/doxa-maps/doxa-research-map/index.html +++ b/public/doxa-maps/doxa-research-map/index.html @@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut) + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":15,"profileCount":24,"bundles":[{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-vRpFMM3qHzSJawYncAsSzfYGtaoTnN60BemQnTRCuhzuRgwk0m8+T7083ZCdzHdr","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"","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 src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-vRpFMM3qHzSJawYncAsSzfYGtaoTnN60BemQnTRCuhzuRgwk0m8+T7083ZCdzHdr\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\"}'>\u003c/doxa-research-map>"}}]}]}; - + - + - + - + - + + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":15,"profileCount":24,"bundles":[{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-geJElAF1NH652taaeh5nN+RvVNNdXKmy7vpT6BDAZKM7FjdJGHDelUTOMZmYUDi+","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"","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 src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-geJElAF1NH652taaeh5nN+RvVNNdXKmy7vpT6BDAZKM7FjdJGHDelUTOMZmYUDi+\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\"}'>\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>"}}]}]}]}; + + + + + + diff --git a/public/doxa-maps/doxa-vision-card/doxa-vision-card/frontier/index.html b/public/doxa-maps/doxa-vision-card/doxa-vision-card/frontier/index.html new file mode 100644 index 000000000..23b270dd5 --- /dev/null +++ b/public/doxa-maps/doxa-vision-card/doxa-vision-card/frontier/index.html @@ -0,0 +1,150 @@ + + + + + + Vision card — frontier accent · doxa-vision-card + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/doxa-vision-card/doxa-vision-card/index.html b/public/doxa-maps/doxa-vision-card/doxa-vision-card/index.html new file mode 100644 index 000000000..5abb643af --- /dev/null +++ b/public/doxa-maps/doxa-vision-card/doxa-vision-card/index.html @@ -0,0 +1,150 @@ + + + + + + doxa-vision-card · doxa-vision-card + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/doxa-vision-card/index.html b/public/doxa-maps/doxa-vision-card/index.html new file mode 100644 index 000000000..ca90cd9d7 --- /dev/null +++ b/public/doxa-maps/doxa-vision-card/index.html @@ -0,0 +1,371 @@ + + + + + + doxa-maps + + + + + +
+

doxa-maps / doxa-vision-card

+
doxa-vision-card — one bundle, its profiles as paste-anywhere maps
+
+
loading…
+ +
+ +
+
+ + + + + diff --git a/public/doxa-maps/gospel-resources/charts/index.html b/public/doxa-maps/gospel-resources/charts/index.html index 6716bd88f..0ffed967d 100644 --- a/public/doxa-maps/gospel-resources/charts/index.html +++ b/public/doxa-maps/gospel-resources/charts/index.html @@ -5,13 +5,10 @@ charts · gospel-resources - - - - - - + '+A+``),$.document.close(),f.value={...f.value,phase:"done",message:"print preview opened",pct:100},setTimeout(()=>{f.value=null},900)}catch(b){f.value={label:p.label,kind:"Poster",phase:"error",message:String((b==null?void 0:b.message)||b).slice(0,140),pct:0}}}}function k(){f.value=null}return wt(`.wall{position:absolute;inset:0;overflow-y:auto;padding:22px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.wall.is-dark{background:#0a1410;color:#e5e7eb}.wall-h{margin:0 0 6px;font-size:19px;font-weight:700;text-align:center}.wall-tag{margin:0 auto 12px;width:fit-content;padding:3px 11px;border-radius:999px;background:rgba(16,185,129,.13);color:#0b7a5b;border:1px solid rgba(16,185,129,.28);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.is-dark .wall-tag{background:rgba(16,185,129,.16);color:#6ee7b7;border-color:rgba(110,231,183,.32)}.wall-sub{margin:0 auto 22px;max-width:620px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.wall-sub strong{font-weight:700;opacity:1;color:inherit}.grid{display:grid;gap:64px 30px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));max-width:1180px;margin:0 auto}.card{position:relative;background:#fff;border:1px solid #e3e6ea;border-radius:3px;padding:24px 12px 26px;box-shadow:0 1px 3px rgba(0,0,0,.10),0 6px 18px rgba(0,0,0,.07);transition:transform .16s ease,box-shadow .16s ease}.card:hover{transform:translateY(-3px);box-shadow:0 3px 8px rgba(0,0,0,.14),0 12px 28px rgba(0,0,0,.10)}.is-dark .card{background:#132019;border-color:rgba(110,231,183,.20)}.tape{box-sizing:border-box;position:absolute;left:50%;transform:translateX(-50%);z-index:2;font-size:10.5px;font-weight:600;letter-spacing:.02em;cursor:pointer;border:1px solid rgba(0,0,0,.08);background:#eef2f6;color:#23303c}.is-dark .tape{background:#1d2b23;color:#cfe9d9;border-color:rgba(255,255,255,.10)}.tape-h{top:-11px;width:82%;padding:4px 8px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:5px}.tape-h:hover{background:#e2e8ee}.hcount{font-weight:800;font-variant-numeric:tabular-nums}.hsep{opacity:.45}.hlabel{font-weight:600}.card.is-last{box-shadow:0 0 0 2px #10b981,0 6px 18px rgba(0,0,0,.10)}.card.is-last .tape-h{background:#10b981;color:#04241a;border-color:#10b981}.pfs{position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);width:82%;margin:0;padding:0 4px 3px;border:1px solid rgba(0,0,0,.14);border-radius:2px;background:#fff;display:flex;gap:2px;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.10)}.is-dark .pfs{background:#132019;border-color:rgba(110,231,183,.24)}.pfs > legend{margin:0 auto;padding:0 5px;font-size:8px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:#8a93a0}.is-dark .pfs > legend{color:#7f9c8c}.pbtn{position:relative;flex:1;border:0;background:none;color:#5b6672;font:inherit;font-size:10.5px;font-weight:600;padding:2px 6px 3px;cursor:pointer;white-space:nowrap;transition:color .15s}.pbtn::after{content:"";position:absolute;left:6px;right:6px;bottom:0;height:2px;border-radius:2px;background:transparent;transition:background .15s}.pbtn:hover{color:#10b981}.pbtn:hover::after{background:#10b981}.is-dark .pbtn{color:#9fb3a8}.sec{max-width:1180px;margin:0 auto 56px}.sec-head{display:flex;align-items:baseline;gap:10px;margin:0 2px 14px;padding-bottom:7px;border-bottom:1px solid rgba(0,0,0,.10)}.is-dark .sec-head{border-bottom-color:rgba(255,255,255,.12)}.sec-name{margin:0;font-size:15px;font-weight:700;letter-spacing:.01em}.sec-count{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.main{position:relative;aspect-ratio:1/1;border:1px solid #dfe3e7;overflow:hidden;background:#fbfcfd;display:flex;align-items:center;justify-content:center}.is-dark .main{background:#0c1712;border-color:rgba(255,255,255,.08)}.img{width:100%;height:100%;object-fit:contain;display:block}.img.is-clickable{cursor:zoom-in}.img.is-clickable:hover{outline:2px solid #38bdf8;outline-offset:-2px}.img.is-clickable:focus-visible{outline:2px solid #38bdf8;outline-offset:-2px}.pbtn-print{font-weight:600}.ph{padding:14px 10px;text-align:center}.ph-label{font-size:12.5px;font-weight:700;line-height:1.3}.ph-count{margin-top:5px;font-size:11px;opacity:.7}.ph-note{margin-top:10px;font-size:9.5px;text-transform:uppercase;letter-spacing:.09em;opacity:.45}.spinner{width:22px;height:22px;margin:0 auto 8px;border:2px solid rgba(0,0,0,.12);border-top-color:rgba(0,0,0,.45);border-radius:50%;animation:upgspin .8s linear infinite}.is-dark .spinner{border-color:rgba(255,255,255,.16);border-top-color:rgba(255,255,255,.55)}@keyframes upgspin{to{transform:rotate(360deg)}}.modal-scrim{position:fixed;inset:0;z-index:1000;background:rgba(8,12,16,.55);display:grid;place-items:center;padding:22px}.modal{width:min(340px,100%);background:#fff;color:#0f1419;border-radius:14px;padding:20px 22px;box-shadow:0 10px 40px rgba(0,0,0,.35);text-align:center}.is-dark .modal{background:#132019;color:#e5e7eb}.modal-kind{font-size:10px;text-transform:uppercase;letter-spacing:.1em;opacity:.55}.modal-title{margin:3px 0 14px;font-size:15px;font-weight:700;line-height:1.3}.bar{height:5px;border-radius:99px;background:rgba(0,0,0,.10);overflow:hidden}.is-dark .bar{background:rgba(255,255,255,.12)}.bar-fill{height:100%;background:#10b981;border-radius:99px;transition:width .25s ease}.modal-phase{margin-top:10px;font-size:12.5px;font-weight:600}.modal-hint{margin-top:6px;font-size:11px;line-height:1.5;opacity:.62}.modal-soon{font-size:13px;line-height:1.5;color:#5f5849;margin:6px 0 14px}.modal-err{font-size:12.5px;line-height:1.55;color:#b42318;margin-bottom:14px}.is-dark .modal-err{color:#fda29b}.modal-btn{border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit;font:inherit;font-size:12.5px;padding:6px 18px;border-radius:8px;cursor:pointer}.modal-btn:hover{background:rgba(0,0,0,.06)}`,"upg-poster-wall"),(p,b)=>(H(),Q("div",{class:Le(["wall",{"is-dark":a.value}])},[b[6]||(b[6]=E("h2",{class:"wall-h"},"My UPG 100 List — Prayer Lists & Posters",-1)),b[7]||(b[7]=E("div",{class:"wall-tag"},"Prayer Mobilization",-1)),b[8]||(b[8]=E("p",{class:"wall-sub"},[dt(" Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them "),E("strong",null,"by their people group name"),dt(". ")],-1)),(H(!0),Q(Ce,null,At(c.value,$=>(H(),Q("section",{key:$.name,class:"sec"},[E("div",Cy,[E("h3",Ty,ce($.name),1),E("span",Ey,ce($.total.toLocaleString())+" people groups · "+ce($.items.length)+" "+ce($.items.length===1?"list":"lists"),1)]),E("div",Py,[(H(!0),Q(Ce,null,At($.items,A=>(H(),Q("div",{key:A.id,class:Le(["card",{"is-last":u.value===A.id}]),"data-list-id":A.id},[E("button",{type:"button",class:"tape tape-h","aria-label":`Show ${A.label} on the map`,onClick:P=>d(A)},[E("span",Iy,ce(A.count)+" UPG",1),b[1]||(b[1]=E("span",{class:"hsep"},"·",-1)),b[2]||(b[2]=E("span",{class:"hlabel"},"Show on map",-1))],8,Ny),E("div",Ry,[v.value[A.id]?(H(),Q("div",Oy,[E("div",Dy,ce(A.label),1),A.count?(H(),Q("div",By,ce(A.count)+" people groups",1)):me("",!0),b[3]||(b[3]=E("div",{class:"ph-note"},"poster not generated yet",-1))])):(H(),Q("img",{key:0,class:"img is-clickable",src:h(A.id),alt:`${A.label} — UPG 100 list prayer poster (click to preview and print)`,loading:"lazy",decoding:"async",role:"button",tabindex:"0",title:`Preview & print the ${A.label} poster`,onClick:P=>S(A),onKeydown:[ts(Dt(P=>S(A),["prevent"]),["enter"]),ts(Dt(P=>S(A),["prevent"]),["space"])],onError:P=>v.value[A.id]=!0},null,40,Fy))]),E("fieldset",jy,[b[4]||(b[4]=E("legend",null,"Print Options",-1)),E("button",{type:"button",class:"pbtn pbtn-print",onClick:P=>S(A),"aria-label":`Preview and print the ${A.label} poster`},"🖨 Print poster",8,Gy),E("button",{type:"button",class:"pbtn",onClick:P=>_(A),"aria-label":`Download the ${A.label} poster file`},"Download",8,Uy),E("button",{type:"button",class:"pbtn",onClick:P=>m(A)},"Prayer List",8,Ky)])],10,My))),128))])]))),128)),f.value?(H(),Q("div",{key:0,class:"modal-scrim",onClick:b[0]||(b[0]=Dt($=>f.value.phase==="error"&&k(),["self"]))},[E("div",zy,[E("div",Hy,ce(f.value.kind),1),E("div",Vy,ce(f.value.label),1),f.value.phase==="error"?(H(),Q(Ce,{key:0},[E("div",Wy,ce(f.value.message),1),E("button",{type:"button",class:"modal-btn",onClick:k},"Close")],64)):f.value.phase==="soon"?(H(),Q(Ce,{key:1},[E("div",Yy,ce(f.value.message),1),E("button",{type:"button",class:"modal-btn",onClick:k},"Close")],64)):(H(),Q(Ce,{key:2},[E("div",Jy,[E("div",{class:"bar-fill",style:tt({width:f.value.pct+"%"})},null,4)]),E("div",qy,ce(f.value.message),1),b[5]||(b[5]=E("div",{class:"modal-hint"}," Rendering a print-quality image in your browser — nothing is uploaded. ",-1))],64))])])):me("",!0)],2))}}},Symbol.toStringTag,{value:"Module"})),Lu="pplrInstance";function Xy(e){return{instanceId:e,selection:ue(null),activeTab:ue(0),isSearching:ue(!1),geocoderText:ue(""),pinDetail:ue(null),theme:ue("dark")}}function Qy(e){Ft(Lu,e)}function e_(){return Ee(Lu,null)}const t_="",o_=["data-covered","data-total","data-pct"],n_={class:"lpb-track"},a_=["data-span-pct"],r_=["data-seg","data-count","aria-label","onMouseenter","onFocus","onClick"],s_=["data-seg","data-count","aria-label"],i_=["aria-valuenow","aria-valuemax","aria-valuetext","aria-label","title"],Cu=bn({__name:"LegendProgressBar",props:{covered:{type:Number,default:0},total:{type:Number,default:0},segments:{type:Array,default:()=>[]},isDark:{type:Boolean,default:!1},label:{type:String,default:""},fmtCount:{type:Function,default:e=>(Number(e)||0).toLocaleString()},compact:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},showText:{type:Boolean,default:!0}},emits:["select-segment"],setup(e,{emit:t}){const{t:o}=kt();wt(` .lpb{position:relative;display:flex;align-items:center;gap:8px;min-width:0;width:100%;box-sizing:border-box;} .lpb-track{position:relative;flex:1 1 auto;min-width:60px;display:flex;height:10px;border-radius:5px;overflow:hidden;background:rgba(110,118,129,0.25);} .lpb-span{display:flex;height:100%;min-width:0;flex:0 0 auto;} @@ -86,7 +85,7 @@ .lpb-light .lpb-pop{background:#f6f8fa;border-color:#d0d7de;color:#1f2328;box-shadow:0 8px 24px rgba(31,35,40,0.18);} .lpb-pop-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-shadow:0 0 0 1px rgba(0,0,0,0.4);} .legend-mobile-sheet.collapsed .lpb{display:none!important;} -`,"legend-progress-bar");const n=e,a=t,r=X(()=>n.total>0?Math.round(n.covered/n.total*100):0),s=X(()=>n.total>0?Math.min(100,Math.max(0,n.covered/n.total*100)):0),i=X(()=>n.segments.slice(0,-1)),l=X(()=>n.segments.length?n.segments[n.segments.length-1]:null);function c(A){return n.covered>0?Math.min(100,Math.max(0,(A.count||0)/n.covered*100)):0}function u(A){return n.total>0?Math.round((A.count||0)/n.total*100):0}const d=X(()=>n.label||o("legend.progress.covered",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value})),f=X(()=>o("legend.progress.short",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value}));function k(A){return o("legend.progress.segment",{label:A.label,count:n.fmtCount(A.count||0),pct:u(A)})}const m=ue(null),_=ue(null),h={},x=ue(null),S=ue(0),b=X(()=>n.segments.find(A=>A.key===x.value)||null);function p(A,N){N?h[A]=N:delete h[A]}async function v(A){x.value=A,await Lo();const N=m.value,M=h[A],V=_.value;if(!N||!M||!V)return;const G=N.getBoundingClientRect(),U=M.getBoundingClientRect(),re=Math.max(0,G.width-V.offsetWidth);S.value=Math.min(Math.max(0,U.left-G.left),re)}function C(){x.value=null}return(A,N)=>(z(),Q("div",{ref_key:"rootEl",ref:m,class:Le(["lpb",[e.isDark?"lpb-dark":"lpb-light",{"lpb-stacked":e.stacked}]]),"data-covered":e.covered,"data-total":e.total,"data-pct":r.value,onMouseleave:C},[E("div",e_,[E("span",{class:"lpb-span",style:tt({width:s.value+"%"}),"data-span-pct":s.value.toFixed(2)},[(z(!0),Q(Ce,null,At(i.value,M=>(z(),Q("button",{key:M.key,type:"button",class:Le(["lpb-seg",{active:x.value===M.key}]),style:tt({width:c(M)+"%",background:M.color}),"data-seg":M.key,"data-count":M.count||0,"aria-label":k(M),ref_for:!0,ref:V=>p(M.key,V),onMouseenter:V=>v(M.key),onFocus:V=>v(M.key),onBlur:C,onClick:Ht(V=>a("select-segment",M.key),["stop"])},null,46,o_))),128))],12,t_),l.value?(z(),Q("button",{key:0,type:"button",class:Le(["lpb-seg lpb-seg-rest",{active:x.value===l.value.key}]),style:tt({background:l.value.color}),"data-seg":l.value.key,"data-count":l.value.count||0,"aria-label":k(l.value),ref:M=>p(l.value.key,M),onMouseenter:N[0]||(N[0]=M=>v(l.value.key)),onFocus:N[1]||(N[1]=M=>v(l.value.key)),onBlur:C,onClick:N[2]||(N[2]=Ht(M=>a("select-segment",l.value.key),["stop"]))},null,46,n_)):me("",!0)]),e.showText?(z(),Q("span",{key:0,class:"lpb-text",role:"progressbar","aria-valuenow":e.covered,"aria-valuemin":"0","aria-valuemax":e.total,"aria-valuetext":f.value,"aria-label":d.value,title:d.value},ce(e.compact?r.value+"%":f.value),9,a_)):me("",!0),b.value?(z(),Q("div",{key:1,ref_key:"popEl",ref:_,class:"lpb-pop",role:"tooltip",style:tt({left:S.value+"px"})},[E("span",{class:"lpb-pop-dot",style:tt({background:b.value.color})},null,4),dt(ce(k(b.value)),1)],4)):me("",!0)],42,Qy))}},[["__scopeId","data-v-acafdbf6"]]),r_=["data-theme"],s_={class:"stl-inner"},i_={class:"stl-tb-caret-slot"},l_=["title"],c_={class:"stl-tb-eyebrow"},u_=["title","aria-label"],d_=["title"],p_={key:2,class:"stl-tb-title"},g_={key:0,class:"stl-tabs-wrap"},f_={class:"stl-tabs"},h_=["onClick"],m_=["title","onClick"],b_={key:0,class:"stl-info-pop"},y_={class:"stl-col-hdr"},__={class:"stl-hdr-name"},v_=["title"],k_={key:0,class:"stl-sort-arrow"},w_=["title"],x_={key:0,class:"stl-sort-arrow"},S_=["data-stl-node-id","onClick"],A_=["onClick"],$_={key:1,class:"stl-caret-sp"},L_={key:3,class:"stl-dot-sp"},C_={class:"stl-name"},T_={key:4,class:"stl-num"},E_={key:5,class:"stl-num"},P_={class:"stl-x-slot"},M_={key:0,class:"stl-empty stl-loading"},N_={key:1,class:"stl-empty"},I_={key:2,class:"stl-empty"},R_={key:3,class:"stl-overflow"},F_=["data-theme"],O_={class:"stl-reopen-label"},Cu=bn({__name:"SemanticTreeLegend",props:{nodes:{type:Array,default:()=>[]},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columns:{type:Array,default:()=>["count","pop"]},title:{type:String,default:"Legend"},hideTabs:{type:Boolean,default:!1},columnLabel:{type:String,default:""},open:{type:Boolean,default:null},exportEnabled:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["select","update:open","export"],setup(e,{emit:t}){const{t:o,te:n}=kt();function a(w){const I="tabs."+((w==null?void 0:w.i18nKey)||(w==null?void 0:w.id));return w&&n(I)?o(I):(w==null?void 0:w.label)??""}const r=e,s=t,i=Xy(),l=Ee("legendProgress",null),c=X(()=>r.progress??be(l)??null),u=X(()=>c.value?o("legend.progress.title"):r.title),d=X(()=>((i==null?void 0:i.theme.value)||"dark")==="dark");function f(w,I){var oe;for(const de of w||[]){if((de==null?void 0:de.id)===I)return de;const fe=(oe=de==null?void 0:de.children)!=null&&oe.length?f(de.children,I):null;if(fe)return fe}return null}function k(w){const I=f(b.value,w);I&&W(I)}function m(w,I=0){return w!=null&&w.length?Math.max(...w.map(oe=>m(oe.children??[],I+1))):I}function _(w,I,oe=0){return oe===I?w.slice():w.flatMap(de=>_(de.children??[],I,oe+1))}function h(w,I,oe=[]){var de;for(const fe of w){if(fe.id===I)return oe;if((de=fe.children)!=null&&de.length){const Ae=h(fe.children,I,[...oe,fe]);if(Ae)return Ae}}return null}function x(w,I=new Set){var oe;if(!((oe=w==null?void 0:w.children)!=null&&oe.length))return I;for(const de of w.children)I.add(de.id),x(de,I);return I}function S(w,I="root"){var de;if(!Array.isArray(w))return[];const oe=[];for(const fe of w){if(!fe||typeof fe!="object"){try{console.warn("[SemanticTreeLegend] dropped null node under",I)}catch{}continue}oe.push((de=fe.children)!=null&&de.length?{...fe,children:S(fe.children,fe.label||fe.id||I)}:fe)}return oe}const b=X(()=>S(r.nodes)),p=X(()=>m(b.value)),v=X(()=>{const w=r.tabs??[],I=w.length||p.value+1;return Array.from({length:I},(oe,de)=>w[de]??{id:`gen${de+1}`,label:`Generation ${de+1}`})}),C=ue(Math.max(0,r.defaultTab|0)),A=ue(new Set),N=ue(null),M=ue(r.open!==null?r.open:!0),V=ue(null),G=ue(!1),U=ue(null),re=ue("desc"),B=X({get:()=>r.hideTabs?0:i?i.activeTab.value:C.value,set:w=>{r.hideTabs||(i?i.activeTab.value=w:C.value=w)}}),H=X({get:()=>i?i.selection.value:N.value,set:w=>{i?i.selection.value=w:N.value=w}}),L=X(()=>{var w;return((w=H.value)==null?void 0:w.id)||null}),K=ue(null);rt(()=>r.open,w=>{w!==null&&(M.value=w)}),rt(()=>b.value,()=>{const w=i==null?void 0:i.activeTab.value,I=Math.min(Math.max(0,r.defaultTab|0),Math.max(0,v.value.length-1));B.value=typeof w=="number"&&w>=0?w:I,A.value=new Set,H.value=null,s("select",null)},{deep:!1});let se=null;i&&rt(()=>i.selection.value,w=>{if((w==null?void 0:w.id)===se)return;if(!w){se=null;return}se=w.id;const I=h(b.value,w.id)||[];typeof w.depth=="number"&&(B.value=Math.min(w.depth,v.value.length-1));const oe=new Set;I.forEach(de=>oe.add(de.id)),A.value=oe,s("select",w)});function ye(w,I){const oe=(I.pop??0)-(w.pop??0);return oe!==0?oe:(I.count??0)-(w.count??0)}const ne=X(()=>{if(!U.value)return ye;const w=U.value,I=re.value==="asc"?1:-1;return(oe,de)=>((oe[w]??0)-(de[w]??0))*I});function te(w){U.value===w?re.value==="desc"?re.value="asc":(U.value=null,re.value="desc"):(U.value=w,re.value="desc")}const ge=ue([]),Me=ue(!1);let We=-1;function Ze(w){if(ge.value[w]){Me.value=!1;return}Me.value=!0,We=w,setTimeout(()=>{if(We!==w)return;const I=[..._(b.value,w)].sort(ne.value),oe=[...ge.value];oe[w]=I,ge.value=oe,Me.value=!1},0)}rt(B,w=>Ze(w),{immediate:!0}),rt(()=>[b.value,U.value,re.value],()=>{ge.value=[],Ze(B.value)},{deep:!1});const Xe=X(()=>ge.value[B.value]||[]),ot=X(()=>{var I;const w=(I=v.value[B.value])==null?void 0:I.topLimit;return w?Xe.value.slice(0,w):Xe.value}),Qe=X(()=>{var I;const w=(I=v.value[B.value])==null?void 0:I.topLimit;return w?Math.max(0,Xe.value.length-w):0});function gt(w,I,oe,de,fe){var Ae;for(const we of I)we&&(w.push({node:we,relDepth:oe,parent:de,ancestors:fe}),A.value.has(we.id)&&((Ae=we.children)!=null&&Ae.length)&>(w,[...we.children].sort(ne.value),oe+1,we,[...fe,we]))}const et=X(()=>{const w=[];gt(w,ot.value,0,null,[]);for(let I=0;Ife+1&&Re.ancestors[fe]}if(fe===oe.relDepth-1){let ft=!1;for(let Re=I+1;ReL.value!==null),$=X(()=>r.columns.includes("count")),P=X(()=>r.columns.includes("pop")),T=X(()=>H.value?x(H.value):new Set),O=X(()=>{var Ae;const w=H.value;if(!w)return null;const I=h(b.value,w.id);if(!I||!I.length)return null;const oe=I[I.length-1],de=I.length-1,fe=((Ae=v.value[de])==null?void 0:Ae.label)||"Parent";return{node:oe,tabName:fe,depth:de}});function W(w){L.value===w.id?(se=null,H.value=null,s("select",null)):(se=w.id,H.value=w,s("select",w))}function q(w,I){I==null||I.stopPropagation();const oe=new Set(A.value),de=oe.has(w);if(de?oe.delete(w):oe.add(w),A.value=oe,de&&H.value){const fe=h(b.value,H.value.id);fe&&fe.some(Ae=>Ae.id===w)&&(se=null,H.value=null,s("select",null))}}function Z(){const w=O.value;w!=null&&w.node&&(!r.hideTabs&&typeof w.depth=="number"&&(B.value=w.depth),A.value=new Set,W(w.node))}function Y(w){if(B.value===w){V.value=V.value===w?null:w;return}B.value=w,A.value=new Set,se=null,H.value=null,V.value=null,s("select",null)}function g(w){w==null||w.stopPropagation(),se=null,H.value=null,s("select",null)}function y(w,I){I==null||I.stopPropagation(),V.value=V.value===w?null:w}rt(L,w=>{w||(G.value=!1)});function R(w){let I=w.parentElement;for(;I;){const oe=getComputedStyle(I).overflowY;if((oe==="auto"||oe==="scroll")&&I.scrollHeight>I.clientHeight+1){const de=w.getBoundingClientRect(),fe=I.getBoundingClientRect();I.scrollTop+=de.top-fe.top-8}I=I.parentElement}}let j=0;rt(L,async w=>{if(!w)return;const I=++j,oe=K.value;if(!oe)return;await Lo();const de=(fe=0)=>{if(I!==j)return;const Ae=oe.querySelector(`[data-stl-node-id="${CSS.escape(String(w))}"]`);Ae&&R(Ae),fe<6&&setTimeout(()=>de(fe+1),70)};de(0)});function ie(w){return w?w>=1e6?(w/1e6).toFixed(1)+"M":w>=1e3?Math.round(w/1e3)+"k":w.toLocaleString():"—"}function ae(w){return w!=null?w.toLocaleString():"—"}function F(w){var I;return{selected:L.value===w.node.id,descendant:xt.value&&T.value.has(w.node.id),child:w.relDepth>0,leaf:!((I=w.node.children)!=null&&I.length)}}return wt(` +`,"legend-progress-bar");const n=e,a=t,r=X(()=>n.total>0?Math.round(n.covered/n.total*100):0),s=X(()=>n.total>0?Math.min(100,Math.max(0,n.covered/n.total*100)):0),i=X(()=>n.segments.slice(0,-1)),l=X(()=>n.segments.length?n.segments[n.segments.length-1]:null);function c(A){return n.covered>0?Math.min(100,Math.max(0,(A.count||0)/n.covered*100)):0}function u(A){return n.total>0?Math.round((A.count||0)/n.total*100):0}const d=X(()=>n.label||o("legend.progress.covered",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value})),h=X(()=>o("legend.progress.short",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value}));function v(A){return o("legend.progress.segment",{label:A.label,count:n.fmtCount(A.count||0),pct:u(A)})}const f=ue(null),_=ue(null),m={},x=ue(null),S=ue(0),k=X(()=>n.segments.find(A=>A.key===x.value)||null);function p(A,P){P?m[A]=P:delete m[A]}async function b(A){x.value=A,await Lo();const P=f.value,N=m[A],V=_.value;if(!P||!N||!V)return;const G=P.getBoundingClientRect(),U=N.getBoundingClientRect(),re=Math.max(0,G.width-V.offsetWidth);S.value=Math.min(Math.max(0,U.left-G.left),re)}function $(){x.value=null}return(A,P)=>(H(),Q("div",{ref_key:"rootEl",ref:f,class:Le(["lpb",[e.isDark?"lpb-dark":"lpb-light",{"lpb-stacked":e.stacked}]]),"data-covered":e.covered,"data-total":e.total,"data-pct":r.value,onMouseleave:$},[E("div",n_,[E("span",{class:"lpb-span",style:tt({width:s.value+"%"}),"data-span-pct":s.value.toFixed(2)},[(H(!0),Q(Ce,null,At(i.value,N=>(H(),Q("button",{key:N.key,type:"button",class:Le(["lpb-seg",{active:x.value===N.key}]),style:tt({width:c(N)+"%",background:N.color}),"data-seg":N.key,"data-count":N.count||0,"aria-label":v(N),ref_for:!0,ref:V=>p(N.key,V),onMouseenter:V=>b(N.key),onFocus:V=>b(N.key),onBlur:$,onClick:Dt(V=>a("select-segment",N.key),["stop"])},null,46,r_))),128))],12,a_),l.value?(H(),Q("button",{key:0,type:"button",class:Le(["lpb-seg lpb-seg-rest",{active:x.value===l.value.key}]),style:tt({background:l.value.color}),"data-seg":l.value.key,"data-count":l.value.count||0,"aria-label":v(l.value),ref:N=>p(l.value.key,N),onMouseenter:P[0]||(P[0]=N=>b(l.value.key)),onFocus:P[1]||(P[1]=N=>b(l.value.key)),onBlur:$,onClick:P[2]||(P[2]=Dt(N=>a("select-segment",l.value.key),["stop"]))},null,46,s_)):me("",!0)]),e.showText?(H(),Q("span",{key:0,class:"lpb-text",role:"progressbar","aria-valuenow":e.covered,"aria-valuemin":"0","aria-valuemax":e.total,"aria-valuetext":h.value,"aria-label":d.value,title:d.value},ce(e.compact?r.value+"%":h.value),9,i_)):me("",!0),k.value?(H(),Q("div",{key:1,ref_key:"popEl",ref:_,class:"lpb-pop",role:"tooltip",style:tt({left:S.value+"px"})},[E("span",{class:"lpb-pop-dot",style:tt({background:k.value.color})},null,4),dt(ce(v(k.value)),1)],4)):me("",!0)],42,o_))}},[["styles",[t_]],["__scopeId","data-v-acafdbf6"]]),l_="",c_=["data-theme"],u_={class:"stl-inner"},d_={class:"stl-tb-caret-slot"},p_=["title"],g_={class:"stl-tb-eyebrow"},f_=["title","aria-label"],h_=["title"],m_={key:2,class:"stl-tb-title"},b_={key:0,class:"stl-tabs-wrap"},y_={class:"stl-tabs"},__=["onClick"],v_=["title","onClick"],k_={key:0,class:"stl-info-pop"},w_={class:"stl-col-hdr"},x_={class:"stl-hdr-name"},S_=["title"],A_={key:0,class:"stl-sort-arrow"},$_=["title"],L_={key:0,class:"stl-sort-arrow"},C_=["data-stl-node-id","onClick"],T_=["onClick"],E_={key:1,class:"stl-caret-sp"},P_={key:3,class:"stl-dot-sp"},M_={class:"stl-name"},N_={key:4,class:"stl-num"},I_={key:5,class:"stl-num"},R_={class:"stl-x-slot"},F_={key:0,class:"stl-empty stl-loading"},O_={key:1,class:"stl-empty"},D_={key:2,class:"stl-empty"},B_={key:3,class:"stl-overflow"},j_=["data-theme"],G_={class:"stl-reopen-label"},Tu=bn({__name:"SemanticTreeLegend",props:{nodes:{type:Array,default:()=>[]},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columns:{type:Array,default:()=>["count","pop"]},title:{type:String,default:"Legend"},hideTabs:{type:Boolean,default:!1},columnLabel:{type:String,default:""},open:{type:Boolean,default:null},exportEnabled:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["select","update:open","export"],setup(e,{emit:t}){const{t:o,te:n}=kt();function a(w){const I="tabs."+((w==null?void 0:w.i18nKey)||(w==null?void 0:w.id));return w&&n(I)?o(I):(w==null?void 0:w.label)??""}const r=e,s=t,i=e_(),l=Ee("legendProgress",null),c=X(()=>r.progress??be(l)??null),u=X(()=>c.value?o("legend.progress.title"):r.title),d=X(()=>((i==null?void 0:i.theme.value)||"dark")==="dark");function h(w,I){var oe;for(const de of w||[]){if((de==null?void 0:de.id)===I)return de;const fe=(oe=de==null?void 0:de.children)!=null&&oe.length?h(de.children,I):null;if(fe)return fe}return null}function v(w){const I=h(k.value,w);I&&W(I)}function f(w,I=0){return w!=null&&w.length?Math.max(...w.map(oe=>f(oe.children??[],I+1))):I}function _(w,I,oe=0){return oe===I?w.slice():w.flatMap(de=>_(de.children??[],I,oe+1))}function m(w,I,oe=[]){var de;for(const fe of w){if(fe.id===I)return oe;if((de=fe.children)!=null&&de.length){const Ae=m(fe.children,I,[...oe,fe]);if(Ae)return Ae}}return null}function x(w,I=new Set){var oe;if(!((oe=w==null?void 0:w.children)!=null&&oe.length))return I;for(const de of w.children)I.add(de.id),x(de,I);return I}function S(w,I="root"){var de;if(!Array.isArray(w))return[];const oe=[];for(const fe of w){if(!fe||typeof fe!="object"){try{console.warn("[SemanticTreeLegend] dropped null node under",I)}catch{}continue}oe.push((de=fe.children)!=null&&de.length?{...fe,children:S(fe.children,fe.label||fe.id||I)}:fe)}return oe}const k=X(()=>S(r.nodes)),p=X(()=>f(k.value)),b=X(()=>{const w=r.tabs??[],I=w.length||p.value+1;return Array.from({length:I},(oe,de)=>w[de]??{id:`gen${de+1}`,label:`Generation ${de+1}`})}),$=ue(Math.max(0,r.defaultTab|0)),A=ue(new Set),P=ue(null),N=ue(r.open!==null?r.open:!0),V=ue(null),G=ue(!1),U=ue(null),re=ue("desc"),B=X({get:()=>r.hideTabs?0:i?i.activeTab.value:$.value,set:w=>{r.hideTabs||(i?i.activeTab.value=w:$.value=w)}}),z=X({get:()=>i?i.selection.value:P.value,set:w=>{i?i.selection.value=w:P.value=w}}),C=X(()=>{var w;return((w=z.value)==null?void 0:w.id)||null}),K=ue(null);rt(()=>r.open,w=>{w!==null&&(N.value=w)}),rt(()=>k.value,()=>{const w=i==null?void 0:i.activeTab.value,I=Math.min(Math.max(0,r.defaultTab|0),Math.max(0,b.value.length-1));B.value=typeof w=="number"&&w>=0?w:I,A.value=new Set,z.value=null,s("select",null)},{deep:!1});let se=null;i&&rt(()=>i.selection.value,w=>{if((w==null?void 0:w.id)===se)return;if(!w){se=null;return}se=w.id;const I=m(k.value,w.id)||[];typeof w.depth=="number"&&(B.value=Math.min(w.depth,b.value.length-1));const oe=new Set;I.forEach(de=>oe.add(de.id)),A.value=oe,s("select",w)});function ye(w,I){const oe=(I.pop??0)-(w.pop??0);return oe!==0?oe:(I.count??0)-(w.count??0)}const ne=X(()=>{if(!U.value)return ye;const w=U.value,I=re.value==="asc"?1:-1;return(oe,de)=>((oe[w]??0)-(de[w]??0))*I});function te(w){U.value===w?re.value==="desc"?re.value="asc":(U.value=null,re.value="desc"):(U.value=w,re.value="desc")}const ge=ue([]),Me=ue(!1);let We=-1;function Ze(w){if(ge.value[w]){Me.value=!1;return}Me.value=!0,We=w,setTimeout(()=>{if(We!==w)return;const I=[..._(k.value,w)].sort(ne.value),oe=[...ge.value];oe[w]=I,ge.value=oe,Me.value=!1},0)}rt(B,w=>Ze(w),{immediate:!0}),rt(()=>[k.value,U.value,re.value],()=>{ge.value=[],Ze(B.value)},{deep:!1});const Xe=X(()=>ge.value[B.value]||[]),ot=X(()=>{var I;const w=(I=b.value[B.value])==null?void 0:I.topLimit;return w?Xe.value.slice(0,w):Xe.value}),Qe=X(()=>{var I;const w=(I=b.value[B.value])==null?void 0:I.topLimit;return w?Math.max(0,Xe.value.length-w):0});function gt(w,I,oe,de,fe){var Ae;for(const we of I)we&&(w.push({node:we,relDepth:oe,parent:de,ancestors:fe}),A.value.has(we.id)&&((Ae=we.children)!=null&&Ae.length)&>(w,[...we.children].sort(ne.value),oe+1,we,[...fe,we]))}const et=X(()=>{const w=[];gt(w,ot.value,0,null,[]);for(let I=0;Ife+1&&Re.ancestors[fe]}if(fe===oe.relDepth-1){let ft=!1;for(let Re=I+1;ReC.value!==null),L=X(()=>r.columns.includes("count")),M=X(()=>r.columns.includes("pop")),T=X(()=>z.value?x(z.value):new Set),O=X(()=>{var Ae;const w=z.value;if(!w)return null;const I=m(k.value,w.id);if(!I||!I.length)return null;const oe=I[I.length-1],de=I.length-1,fe=((Ae=b.value[de])==null?void 0:Ae.label)||"Parent";return{node:oe,tabName:fe,depth:de}});function W(w){C.value===w.id?(se=null,z.value=null,s("select",null)):(se=w.id,z.value=w,s("select",w))}function q(w,I){I==null||I.stopPropagation();const oe=new Set(A.value),de=oe.has(w);if(de?oe.delete(w):oe.add(w),A.value=oe,de&&z.value){const fe=m(k.value,z.value.id);fe&&fe.some(Ae=>Ae.id===w)&&(se=null,z.value=null,s("select",null))}}function Z(){const w=O.value;w!=null&&w.node&&(!r.hideTabs&&typeof w.depth=="number"&&(B.value=w.depth),A.value=new Set,W(w.node))}function Y(w){if(B.value===w){V.value=V.value===w?null:w;return}B.value=w,A.value=new Set,se=null,z.value=null,V.value=null,s("select",null)}function g(w){w==null||w.stopPropagation(),se=null,z.value=null,s("select",null)}function y(w,I){I==null||I.stopPropagation(),V.value=V.value===w?null:w}rt(C,w=>{w||(G.value=!1)});function R(w){let I=w.parentElement;for(;I;){const oe=getComputedStyle(I).overflowY;if((oe==="auto"||oe==="scroll")&&I.scrollHeight>I.clientHeight+1){const de=w.getBoundingClientRect(),fe=I.getBoundingClientRect();I.scrollTop+=de.top-fe.top-8}I=I.parentElement}}let j=0;rt(C,async w=>{if(!w)return;const I=++j,oe=K.value;if(!oe)return;await Lo();const de=(fe=0)=>{if(I!==j)return;const Ae=oe.querySelector(`[data-stl-node-id="${CSS.escape(String(w))}"]`);Ae&&R(Ae),fe<6&&setTimeout(()=>de(fe+1),70)};de(0)});function ie(w){return w?w>=1e6?(w/1e6).toFixed(1)+"M":w>=1e3?Math.round(w/1e3)+"k":w.toLocaleString():"—"}function ae(w){return w!=null?w.toLocaleString():"—"}function F(w){var I;return{selected:C.value===w.node.id,descendant:xt.value&&T.value.has(w.node.id),child:w.relDepth>0,leaf:!((I=w.node.children)!=null&&I.length)}}return wt(` .stl-inner { --stl-pad-x: 10px; --stl-gap: 6px; @@ -538,7 +537,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"),(w,I)=>{var oe,de,fe,Ae;return z(),Q(Ce,null,[E("div",{class:Le(["stl-panel",{closed:!M.value,"fit-content":e.hideTabs}]),"data-theme":((oe=be(i))==null?void 0:oe.theme.value)||"dark"},[E("div",s_,[E("div",{class:Le(["stl-titlebar",{"has-progress":!!c.value}])},[E("span",i_,[sn(w.$slots,"title-caret",{},void 0,!0)]),w.$slots["title-caret"]?me("",!0):(z(),Q("button",{key:0,class:Le(["stl-collapse-btn",{closed:!M.value}]),title:M.value?"Collapse legend":"Expand legend",onClick:I[0]||(I[0]=we=>{M.value=!M.value,s("update:open",M.value)})},[...I[8]||(I[8]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,l_)),O.value&&H.value?(z(),Q(Ce,{key:1},[E("span",c_,ce(O.value.tabName),1),E("button",{type:"button",class:"stl-tb-up",title:`Go up to ${O.value.node.label}`,"aria-label":`Go up to ${O.value.tabName} ${O.value.node.label}`,onClick:Ht(Z,["stop"])},[I[9]||(I[9]=E("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[E("path",{d:"M3 7.5L6 4.5L9 7.5",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),O.value.node.color?(z(),Q("span",{key:0,class:"stl-tb-dot",style:tt({background:O.value.node.color})},null,4)):me("",!0),E("span",{class:"stl-tb-text",title:O.value.node.label},ce(O.value.node.label),9,d_)],8,u_)],64)):(z(),Q("span",p_,ce(u.value),1)),me("",!0),c.value?(z(),st(Lu,{key:4,class:"stl-progress","show-text":!1,covered:c.value.covered,total:c.value.total,segments:c.value.segments,"is-dark":d.value,"fmt-count":ae,onSelectSegment:k},null,8,["covered","total","segments","is-dark"])):me("",!0)],2),e.hideTabs?me("",!0):(z(),Q("div",g_,[E("div",f_,[(z(!0),Q(Ce,null,At(v.value,(we,ft)=>(z(),Q("div",{key:we.id,class:Le(["stl-tab-chip",{active:B.value===ft}])},[E("button",{class:"stl-tab",onClick:Re=>Y(ft)},ce(a(we)),9,h_),we.info?(z(),Q("button",{key:0,class:"stl-tab-info",title:we.info,onClick:Re=>y(ft,Re)},"i",8,m_)):me("",!0)],2))),128))]),V.value!==null&&((de=v.value[V.value])!=null&&de.info)?(z(),Q("div",b_,ce(v.value[V.value].info),1)):me("",!0)])),E("div",y_,[I[13]||(I[13]=E("span",{class:"stl-caret-sp"},null,-1)),I[14]||(I[14]=E("span",{class:"stl-dot-sp"},null,-1)),E("span",__,ce(e.columnLabel||(e.hideTabs?e.title:a(v.value[B.value])||be(o)("legend.columns.name"))),1),$.value?(z(),Q("button",{key:0,class:Le(["stl-hdr-num",{active:U.value==="count"}]),title:be(o)("legend.sortByUpgs"),onClick:I[4]||(I[4]=we=>te("count"))},[dt(ce(be(o)("legend.columns.upgs"))+" ",1),U.value==="count"?(z(),Q("span",k_,ce(re.value==="desc"?"▼":"▲"),1)):me("",!0)],10,v_)):me("",!0),P.value?(z(),Q("button",{key:1,class:Le(["stl-hdr-num",{active:U.value==="pop"}]),title:be(o)("legend.sortByPop"),onClick:I[5]||(I[5]=we=>te("pop"))},[dt(ce(be(o)("legend.columns.population"))+" ",1),U.value==="pop"?(z(),Q("span",x_,ce(re.value==="desc"?"▼":"▲"),1)):me("",!0)],10,w_)):me("",!0),I[15]||(I[15]=E("span",{class:"stl-x-slot"},null,-1))]),E("div",{class:Le(["stl-rows",{"has-sel":xt.value}]),ref_key:"rowsContainer",ref:K},[(z(!0),Q(Ce,null,At(et.value,we=>{var ft,Re;return z(),Q("div",{key:we.node.id,class:Le(["stl-row",F(we)]),"data-stl-node-id":we.node.id,style:tt({"--trunk-color":((ft=we.parent)==null?void 0:ft.color)||"#6e7681","--row-color":we.node.color||"#73A17F"}),onClick:Ke=>W(we.node)},[(z(!0),Q(Ce,null,At(we.trunks,(Ke,wn)=>(z(),Q("span",{key:`tr${wn}`,class:Le(["stl-trunk",`stl-trunk-${Ke}`])},null,2))),128)),(Re=we.node.children)!=null&&Re.length?(z(),Q("button",{key:0,class:Le(["stl-caret",{open:A.value.has(we.node.id)}]),onClick:Ht(Ke=>q(we.node.id,Ke),["stop"])},[...I[16]||(I[16]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,A_)):(z(),Q("span",$_)),we.node.color?(z(),Q("span",{key:2,class:"stl-dot",style:tt({background:we.node.color})},null,4)):(z(),Q("span",L_)),E("span",C_,ce(we.node.label),1),$.value?(z(),Q("span",T_,ce(ae(we.node.count)),1)):me("",!0),P.value?(z(),Q("span",E_,ce(ie(we.node.pop)),1)):me("",!0),E("span",P_,[L.value===we.node.id?(z(),Q("button",{key:0,class:"stl-x-chip",title:"Clear selection",onClick:I[6]||(I[6]=Ht(Ke=>g(Ke),["stop"]))},[...I[17]||(I[17]=[E("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])):me("",!0)])],14,S_)}),128)),Me.value&&!et.value.length?(z(),Q("div",M_,[I[18]||(I[18]=E("span",{class:"stl-spinner"},null,-1)),E("span",null,"Loading "+ce(((fe=v.value[B.value])==null?void 0:fe.label)||"rows")+"…",1)])):!et.value.length&&e.nodes.length===0?(z(),Q("div",N_,"Loading data…")):et.value.length?me("",!0):(z(),Q("div",I_,"No data at this level")),Qe.value>0?(z(),Q("div",R_,[dt(" Showing top "+ce(v.value[B.value].topLimit.toLocaleString())+" of "+ce(Xe.value.length.toLocaleString())+" — ",1),I[19]||(I[19]=E("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):me("",!0)],2)])],10,r_),M.value?me("",!0):(z(),Q("button",{key:0,class:"stl-reopen","data-theme":((Ae=be(i))==null?void 0:Ae.theme.value)||"dark",title:"Expand legend",onClick:I[7]||(I[7]=we=>{M.value=!0,s("update:open",!0)})},[I[20]||(I[20]=E("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),E("span",O_,[H.value?(z(),Q(Ce,{key:0},[H.value.color?(z(),Q("span",{key:0,class:"stl-reopen-dot",style:tt({background:H.value.color})},null,4)):me("",!0),dt(" "+ce(H.value.label),1)],64)):(z(),Q(Ce,{key:1},[dt(ce(u.value),1)],64))]),I[21]||(I[21]=E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,F_))],64)}}},[["__scopeId","data-v-78a7a96e"]]),Tu="peoplePraying",nr=144,Fo={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Yo=Fo,Ss={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},D_=Ss;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 As(e){return Fo[ar(e)]}function Eu(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 Pu(e){return ar(e)==="fullPrayer"}function Mu(e){return As(e)}function $s({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,nr],Fo.fullPrayer,[">",t,0],Fo.hasPrayer,Fo.noPrayer]}const Nu=$s,B_=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:nr,LABELS:Ss,PALETTE:Fo,PRAYER_COLORS:Yo,PRAYER_LABELS:D_,PROPERTY_KEY:Tu,applyColor:$s,buildColorExpression:Nu,checkHasFullPrayer:Pu,checkHasPrayer:Eu,default:{name:"Prayer Progress",propertyKey:Tu,palette:Fo,colors:Fo,labels:Ss,threshold:nr,getColor:Mu,applyColor:$s,buildColorExpression:Nu,getPrayerLevel:ar,getPrayerColor:As,checkHasPrayer:Eu,checkHasFullPrayer:Pu},getColor:Mu,getPrayerColor:As,getPrayerLevel:ar},Symbol.toStringTag,{value:"Module"})),Ls={};function Iu(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Zo&&Zo.tagName.toUpperCase()==="SCRIPT"&&Zo.src||new URL("my-upg-100-list.js",document.baseURI).href}<"u"&&(Ls==null?void 0:Ls.VITE_API_BASE_URL)||""}const Cs=ue(0),rr=ue(0),sr=ue(0),Ts=ue(!1),Es=ue(!1),Ps=ue(null);let oa=null;async function j_(){if(!Ts.value)return oa||(Es.value=!0,Ps.value=null,oa=(async()=>{var e,t;try{const o=((e=ta==null?void 0:ta.sources)==null?void 0:e[ta.activeSource])||{},n=Iu(),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();Cs.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),Ts.value=!0}catch(o){Ps.value=o&&o.message?o.message:String(o)}finally{Es.value=!1,oa=null}})(),oa)}function G_(){return{total:Cs,withPrayer:rr,withFullPrayer:sr,loaded:Ts,loading:Es,error:Ps,load:j_,noPrayerCount:()=>Math.max(0,Cs.value-rr.value),hasPrayerCount:()=>Math.max(0,rr.value-sr.value),fullPrayerCount:()=>sr.value}}const Ru="engagementStatus",xo={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Ms=xo,Ns={notEngaged:"Unengaged",hasEngagement:"Engaged"},U_=Ns;function Fu(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)?xo.hasEngagement:xo.notEngaged}function Is({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],xo.hasEngagement,["==",t,1],xo.hasEngagement,xo.notEngaged]}const Ou=Is,K_=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Ms,ENGAGEMENT_LABELS:U_,LABELS:Ns,PALETTE:xo,PROPERTY_KEY:Ru,applyColor:Is,buildColorExpression:Ou,default:{name:"Engagement Progress",propertyKey:Ru,palette:xo,colors:xo,labels:Ns,getColor:Fu,applyColor:Is,buildColorExpression:Ou},getColor:Fu},Symbol.toStringTag,{value:"Module"})),Du="adoptionStatus",So={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Rs=So,Fs={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},H_=Fs;function Bu(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)?So.hasAdoption:So.notAdopted}function Os({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],So.hasAdoption,["==",t,1],So.hasAdoption,So.notAdopted]}const ju=Os,z_=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Rs,ADOPTION_LABELS:H_,LABELS:Fs,PALETTE:So,PROPERTY_KEY:Du,applyColor:Os,buildColorExpression:ju,default:{name:"Adoption Progress",propertyKey:Du,palette:So,colors:So,labels:Fs,getColor:Bu,applyColor:Os,buildColorExpression:ju},getColor:Bu},Symbol.toStringTag,{value:"Module"})),Ds="languageFamily",V_="#000000",Oo={"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","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Gu=Oo;function Yt(e){return Oo[e]||V_}const W_=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(Oo))t[e(o)]=o;return t})();function Bs(e){if(!e)return"Unknown";const t=String(e).trim();return W_[t.toLowerCase()]||t}function Uu(e){var t;return Yt(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function js(){const e=["match",["get",Ds]];return Object.entries(Oo).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Ku=js,Y_=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Gu,PALETTE:Oo,PROPERTY_KEY:Ds,applyColor:js,buildColorExpression:Ku,canonicalFamilyName:Bs,default:{name:"Language Family",propertyKey:Ds,palette:Oo,colors:Oo,getColor:Uu,applyColor:js,buildColorExpression:Ku,getLanguageFamilyColor:Yt,canonicalFamilyName:Bs},defaultFamilyColor:"#95a5a6",getColor:Uu,getLanguageFamilyColor:Yt,languageFamilyColors:Oo},Symbol.toStringTag,{value:"Module"})),Hu="religion",Gs="#94a3b8",na={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Dt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function aa(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return na[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 Dt[aa(t)]||Gs}function Us(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Dt.C,"M",Dt.M,"H",Dt.H,"B",Dt.B,"E",Dt.E,"J",Dt.J,"S",Dt.S,"N",Dt.N,"O",Dt.O,Gs]}const Vu=Us,J_=Object.assign({"./adoption.js":z_,"./engagement.js":K_,"./language-family.js":Y_,"./prayer-progress.js":B_,"./religion.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Dt,PROPERTY_KEY:Hu,RELIGION_FAMILIES:na,applyColor:Us,buildColorExpression:Vu,default:{name:"Religion",propertyKey:Hu,palette:Dt,families:na,getColor:zu,applyColor:Us,buildColorExpression:Vu,fallback:Gs},getColor:zu,getReligionFamily:aa},Symbol.toStringTag,{value:"Module"}))}),q_=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),Z_=e=>e.replace(/-/g,"_").toUpperCase(),yn={...{STATUS:"status",CUSTOM:"custom"}},Ks={};function X_(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=q_(o);yn[Z_(o)]=a,Ks[a]=n}}X_(J_);function ir(e){return Ks[e]||Ks[yn.LANGUAGE_FAMILY]}const $t={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 Q_(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 e0(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($t[n])return $t[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if($t[a])return $t[a]}}if($t[e])return $t[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&$t[o]?$t[o]:null}const t0=[[/ sign language$/i,"Sign Language"]];function o0(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function n0(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function a0(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=Bs(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(),d=e0(u);if(d)return d;for(const[f,k]of t0)if(f.test(u))return k}return"Unknown"}function r0(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 s0(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 i0(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 l0(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function c0(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 u0(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 Wu(e,t={}){t.aggregator;const o=en({});function n(_){return!!o[_]}function a(_){o[_]=!o[_]}function r(_){const h=new Set(Array.isArray(_)?_:[]);for(const x of Object.keys(o))h.has(x)||(o[x]=!1);for(const x of h)o[x]=!0}const s=X(()=>{const _=(e==null?void 0:e.value)||[],h=new Map;for(const x of _){const S=Q_(x),b=a0(S),p=r0(S),v=o0(p),C=n0(p),A=s0(S),N=i0(x,S),M=l0(x,S),V=c0(x,S);let G=h.get(b);G||(G={key:b,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},h.set(b,G)),G.peopleGroupCount+=1,G.population+=A,N!=null&&G.pinIds.push(N),V&&G.coords.push(V),M&&!G.clusterId&&(G.clusterId=M);let U=G.languages.get(v);if(U||(U={key:v,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},G.languages.set(v,U)),U.peopleGroupCount+=1,U.population+=A,N!=null&&U.pinIds.push(N),V&&U.coords.push(V),M&&!U.clusterId&&(U.clusterId=M),C){let re=U.dialects.get(C);re?re.originalLabels.add(p):(re={key:C,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([p])},U.dialects.set(C,re)),re.peopleGroupCount+=1,re.population+=A,N!=null&&re.pinIds.push(N),V&&re.coords.push(V)}}return h}),i=t.showAllKnown!==!1,l=X(()=>{const _=s.value,h=[],x=new Set;for(const S of _.values())h.push({key:S.key,label:S.key,color:Yt(S.key),peopleGroupCount:S.peopleGroupCount,population:S.population,kind:S.clusterId?"cluster":"family",clusterId:S.clusterId||void 0,pinIds:S.pinIds,coords:S.coords}),x.add(S.key);if(i)for(const S of Object.keys(Gu))x.has(S)||h.push({key:S,label:S,color:Yt(S),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return h.sort(u0),h});function c(_){const h=s.value.get(_);if(!h)return[];const x=[];for(const S of h.languages.values())x.push({key:`${_}__${S.key}`,label:S.key,color:Yt(_),peopleGroupCount:S.peopleGroupCount,population:S.population,kind:S.clusterId?"cluster":"language",familyKey:_,clusterId:S.clusterId||void 0,pinIds:S.pinIds,coords:S.coords,hasDialects:S.dialects.size>0});return x.sort(cr),x}function u(_){const h=_.indexOf("__");if(h<0)return[];const x=_.slice(0,h),S=_.slice(h+2),b=s.value.get(x);if(!b)return[];const p=b.languages.get(S);if(!p)return[];const v=[];for(const C of p.dialects.values())v.push({key:`${_}__${C.key}`,label:`${S}, ${C.key}`,dialectOnly:C.key,color:Yt(x),peopleGroupCount:C.peopleGroupCount,population:C.population,kind:"dialect",languageKey:S,familyKey:x,pinIds:C.pinIds,coords:C.coords,originalLabels:Array.from(C.originalLabels)});return v.sort(cr),v}const d=X(()=>{const _=s.value,h=[];for(const x of _.values())for(const S of x.languages.values())h.push({key:`${x.key}__${S.key}`,label:S.key,color:Yt(x.key),peopleGroupCount:S.peopleGroupCount,population:S.population,kind:S.clusterId?"cluster":"language",familyKey:x.key,clusterId:S.clusterId||void 0,pinIds:S.pinIds,coords:S.coords,hasDialects:S.dialects.size>0});return h.sort(cr),h}),f=X(()=>{const _=s.value,h=[];for(const x of _.values())for(const S of x.languages.values())for(const b of S.dialects.values())h.push({key:`${x.key}__${S.key}__${b.key}`,label:`${S.key}, ${b.key}`,dialectOnly:b.key,color:Yt(x.key),peopleGroupCount:b.peopleGroupCount,population:b.population,kind:"dialect",languageKey:S.key,familyKey:x.key,pinIds:b.pinIds,coords:b.coords,originalLabels:Array.from(b.originalLabels)});return h.sort(cr),h});function k(_){let h=_;if(typeof _=="string"&&(h=l.value.find(S=>S.key===_),!h))return;const x={kind:h.kind,pinIds:h.pinIds||[],coords:h.coords||[]};h.kind==="family"&&(x.familyKey=h.label),h.kind==="language"&&(x.languageKey=h.label,x.familyKey=h.familyKey),h.kind==="dialect"&&(x.dialectKey=h.key,x.dialectOnly=h.dialectOnly||h.label,x.languageKey=h.languageKey,x.familyKey=h.familyKey,x.originalLabels=h.originalLabels||[]),h.kind==="cluster"&&(x.clusterId=h.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:x}))}const m=X(()=>{const _=s.value,h=[];for(const x of _.values()){const S=Yt(x.key),b=[];for(const v of x.languages.values()){v.key&&v.key!=="— Unknown —"&&b.push(v.key);for(const C of v.dialects.values())for(const A of C.originalLabels)A&&b.push(A)}const p={id:`fam:${x.key}`,label:x.key,color:S,count:x.peopleGroupCount,pop:x.population,filter:b.length>0?["any",["==",["get","languageFamily"],x.key],["in",["get","language"],["literal",Array.from(new Set(b))]]]:["==",["get","languageFamily"],x.key],children:[]};for(const v of x.languages.values()){const C=v.key,A={id:`lang:${x.key}__${C}`,label:C,color:S,count:v.peopleGroupCount,pop:v.population,filter:["any",["==",["get","language"],C],["==",["slice",["get","language"],0,C.length+1],C+","],["in"," "+C,["get","language"]]],children:[]};for(const N of v.dialects.values()){const M=Array.from(N.originalLabels);A.children.push({id:`dial:${x.key}__${C}__${N.key}`,label:`${C}, ${N.key}`,color:S,count:N.peopleGroupCount,pop:N.population,filter:M.length===1?["==",["get","language"],M[0]]:["in",["get","language"],["literal",M]],originalLabels:M,children:[]})}p.children.push(A)}h.push(p)}return h.sort((x,S)=>S.pop-x.pop||S.count-x.count),h});return{rows:l,languageRows:d,dialectRows:f,langTree:m,toggle:a,isExpanded:n,setExpansionToOnly:r,childRowsFor:c,dialectRowsFor:u,highlight:k}}const d0=[];function p0(){const e=ir(yn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function g0(){const e=ir(yn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function f0(){const e=ir(yn.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 Jo(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 Yu=100;function h0(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 Hs(e){return t=>{const o=h0(t);return e==="fullPrayer"?o>=Yu:e==="hasPrayer"?o>0&&o0||typeof t=="string"&&parseInt(t,10)>0}function qu(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 m0={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 _n(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function b0(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function y0(e){return(Number(e)||0).toLocaleString()}function _0(e,t={}){const o=Ee("dataStore"),n=Ee("uiStore"),a=Ee("mapStore"),{t:r}=kt(),s=G_();s.load();const i=X(()=>{if(_n(e.value)==="religion")return"Religion";const x=m0[e.value];return x?r(x):""}),l=X(()=>_n(e.value)==="affinity-blocs"?d0:[{key:"count",label:r("legend.columns.upgs"),width:48},{key:"population",label:r("legend.columns.population"),width:48}]),c=X(()=>{const h=_n(e.value);return h==="prayer"?n.prayerFilter:h==="engagement"?n.engagementFilter:h==="adoption"?n.adoptionFilter:h==="language-families"?a.selectedFamily:h==="doxa-regions"?a.selectedRegion:h==="gospel-resources"?a.selectedResource:h==="religion"?n.religionFilter:null});function u(h){const x=_n(e.value);x==="prayer"?n.setPrayerFilter(n.prayerFilter===h?null:h):x==="engagement"?n.setEngagementFilter(n.engagementFilter===h?null:h):x==="adoption"?n.setAdoptionFilter(n.adoptionFilter===h?null:h):x==="language-families"?a.selectFamily(a.selectedFamily===h?null:h):x==="doxa-regions"?a.selectRegion(a.selectedRegion===h?null:h):x==="gospel-resources"?a.selectResource(a.selectedResource===h?null:h):x==="religion"&&n.setReligionFilter(n.religionFilter===h?null:h)}const d=X(()=>{var x,S,b,p;const h=_n(e.value);if(h==="prayer"){const v=Jo(o,Hs("noPrayer")),C=Jo(o,Hs("hasPrayer")),A=Jo(o,Hs("fullPrayer")),N=s.loaded.value,M=N?s.noPrayerCount():v.count,V=N?s.hasPrayerCount():C.count,G=N?s.fullPrayerCount():A.count;return[{key:"noPrayer",label:r("legend.prayer.needsPrayer"),color:Yo.noPrayer,count:M,population:v.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:r("legend.prayer.hasPrayer"),color:Yo.hasPrayer,count:V,population:C.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:r("legend.prayer.fullPrayerCoverage"),color:Yo.fullPrayer,count:G,population:A.population,filterKey:"fullPrayer"}]}]}if(h==="engagement"){const v=Jo(o,A=>!Ju(A)),C=Jo(o,A=>Ju(A));return[{key:"notEngaged",label:r("legend.engagement.needsEngagement"),color:Ms.notEngaged,count:v.count,population:v.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:r("legend.engagement.hasEngagement"),color:Ms.hasEngagement,count:C.count,population:C.population,filterKey:"hasEngagement"}]}]}if(h==="adoption"){const v=Jo(o,A=>!qu(A)),C=Jo(o,A=>qu(A));return[{key:"notAdopted",label:r("legend.adoption.needsAdoption"),color:Rs.notAdopted,count:v.count,population:v.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:r("legend.adoption.hasAdoption"),color:Rs.hasAdoption,count:C.count,population:C.population,filterKey:"hasAdoption"}]}]}if(h==="religion"){const v={},A=Object.values(o.sources||{}).flatMap(V=>(V==null?void 0:V.features)||[]);for(const V of A){const G=V.properties||V,U=G.religion||((S=(x=G._raw)==null?void 0:x.religion)==null?void 0:S.value)||((b=G._raw)==null?void 0:b.religion)||"",re=aa(U);v[re]||(v[re]={count:0,population:0}),v[re].count+=1,v[re].population+=parseInt(G.population||((p=G._raw)==null?void 0:p.Population)||0)||0}const N=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const V of N)delete v[V];return Object.keys(v).sort((V,G)=>V==="C"?-1:G==="C"?1:v[G].population-v[V].population).map(V=>({key:V,label:na[V]||"Unknown",color:Dt[V]||"#94a3b8",count:v[V].count,population:v[V].population,filterKey:V,children:[]}))}if(h==="language-families")return(o.languageFamiliesData||[]).map(v=>({key:v.name,label:v.name,color:Yt(v.name),count:v.count,population:v.population,filterKey:v.name,children:[]}));if(h==="language-family"){const C={value:Object.values(o.sources||{}).flatMap(N=>(N==null?void 0:N.features)||[])},{rows:A}=Wu(C);return A.value.map(N=>({key:N.key,label:N.label,color:N.color,count:N.peopleGroupCount,population:N.population,filterKey:N.key,children:[]}))}if(h==="doxa-regions"){const v=g0();return(o.doxaRegionsData||[]).map(C=>({key:C.name,label:C.name,color:v[C.name]||"#999",count:C.count,population:C.population,filterKey:C.name,children:[]}))}if(h==="gospel-resources"){const v=p0(),C=(v==null?void 0:v.palette)??{},A=(v==null?void 0:v.names)??{},N=o.resourcesData||[];return Object.keys(C).map(M=>{const V=N.find(G=>G.key===M);return{key:M,label:A[M]||M,color:C[M],count:(V==null?void 0:V.count)||0,population:(V==null?void 0:V.population)||0,filterKey:M,children:((V==null?void 0:V.children)||[]).map(G=>({key:G.key,label:G.name||G.key,color:G.color||C[M],count:G.count||0,population:G.population||0,filterKey:G.key}))}})}if(h==="affinity-blocs"){const v=f0();return Object.keys(v).sort().map(C=>({key:C,label:C,color:v[C],filterKey:C,children:[]}))}return[]});function f(h,x){return h.reduce((S,b)=>{var v;let p=b[x]||0;return(v=b.children)!=null&&v.length&&(p+=f(b.children,x)),S+p},0)}const k=X(()=>f(d.value,"count")),m=X(()=>f(d.value,"population")),_=X(()=>{if(_n(e.value)!=="prayer")return null;const h=d.value[0];if(!h)return null;const x=(h.children||[]).find(A=>A.key==="hasPrayer"),S=(h.children||[]).find(A=>A.key==="fullPrayer"),b=Number(h.count)||0,p=Number(x==null?void 0:x.count)||0,v=Number(S==null?void 0:S.count)||0,C=(Number(x==null?void 0:x.population)||0)+(Number(S==null?void 0:S.population)||0);return{covered:p+v,total:k.value,coveredPopulation:C,totalPopulation:m.value,segments:[{key:"fullPrayer",label:(S==null?void 0:S.label)??r("legend.prayer.fullPrayerCoverage"),count:v,color:Yo.fullPrayer},{key:"hasPrayer",label:(x==null?void 0:x.label)??r("legend.prayer.hasPrayer"),count:p,color:Yo.hasPrayer},{key:"noPrayer",label:h.label,count:b,color:Yo.noPrayer}]}});return{items:d,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:k,totalPopulation:m,progress:_,fmtPop:b0,fmtCount:y0}}const v0={excludeReligionFamilies:["C"]},k0={key:0,class:"lrg-title-row"},w0={class:"lrg-title-caret-slot"},x0={class:"lrg-title"},S0=["data-lrg-filter-key"],A0=["onClick"],$0={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},L0=["onClick"],C0={class:"lrg-name"},T0={class:"lrg-badge-inner"},E0=["data-lrg-filter-key"],P0=["onClick"],M0={class:"lrg-name"},N0={class:"lrg-badge-inner"},I0={key:1,class:"lrg-footer"},R0={class:"lrg-footer-label"},F0=bn({__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"),(w,I)=>{var oe,de,fe,Ae;return H(),Q(Ce,null,[E("div",{class:Le(["stl-panel",{closed:!N.value,"fit-content":e.hideTabs}]),"data-theme":((oe=be(i))==null?void 0:oe.theme.value)||"dark"},[E("div",u_,[E("div",{class:Le(["stl-titlebar",{"has-progress":!!c.value}])},[E("span",d_,[sn(w.$slots,"title-caret",{},void 0,!0)]),w.$slots["title-caret"]?me("",!0):(H(),Q("button",{key:0,class:Le(["stl-collapse-btn",{closed:!N.value}]),title:N.value?"Collapse legend":"Expand legend",onClick:I[0]||(I[0]=we=>{N.value=!N.value,s("update:open",N.value)})},[...I[8]||(I[8]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,p_)),O.value&&z.value?(H(),Q(Ce,{key:1},[E("span",g_,ce(O.value.tabName),1),E("button",{type:"button",class:"stl-tb-up",title:`Go up to ${O.value.node.label}`,"aria-label":`Go up to ${O.value.tabName} ${O.value.node.label}`,onClick:Dt(Z,["stop"])},[I[9]||(I[9]=E("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[E("path",{d:"M3 7.5L6 4.5L9 7.5",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),O.value.node.color?(H(),Q("span",{key:0,class:"stl-tb-dot",style:tt({background:O.value.node.color})},null,4)):me("",!0),E("span",{class:"stl-tb-text",title:O.value.node.label},ce(O.value.node.label),9,h_)],8,f_)],64)):(H(),Q("span",m_,ce(u.value),1)),me("",!0),c.value?(H(),st(Cu,{key:4,class:"stl-progress","show-text":!1,covered:c.value.covered,total:c.value.total,segments:c.value.segments,"is-dark":d.value,"fmt-count":ae,onSelectSegment:v},null,8,["covered","total","segments","is-dark"])):me("",!0)],2),e.hideTabs?me("",!0):(H(),Q("div",b_,[E("div",y_,[(H(!0),Q(Ce,null,At(b.value,(we,ft)=>(H(),Q("div",{key:we.id,class:Le(["stl-tab-chip",{active:B.value===ft}])},[E("button",{class:"stl-tab",onClick:Re=>Y(ft)},ce(a(we)),9,__),we.info?(H(),Q("button",{key:0,class:"stl-tab-info",title:we.info,onClick:Re=>y(ft,Re)},"i",8,v_)):me("",!0)],2))),128))]),V.value!==null&&((de=b.value[V.value])!=null&&de.info)?(H(),Q("div",k_,ce(b.value[V.value].info),1)):me("",!0)])),E("div",w_,[I[13]||(I[13]=E("span",{class:"stl-caret-sp"},null,-1)),I[14]||(I[14]=E("span",{class:"stl-dot-sp"},null,-1)),E("span",x_,ce(e.columnLabel||(e.hideTabs?e.title:a(b.value[B.value])||be(o)("legend.columns.name"))),1),L.value?(H(),Q("button",{key:0,class:Le(["stl-hdr-num",{active:U.value==="count"}]),title:be(o)("legend.sortByUpgs"),onClick:I[4]||(I[4]=we=>te("count"))},[dt(ce(be(o)("legend.columns.upgs"))+" ",1),U.value==="count"?(H(),Q("span",A_,ce(re.value==="desc"?"▼":"▲"),1)):me("",!0)],10,S_)):me("",!0),M.value?(H(),Q("button",{key:1,class:Le(["stl-hdr-num",{active:U.value==="pop"}]),title:be(o)("legend.sortByPop"),onClick:I[5]||(I[5]=we=>te("pop"))},[dt(ce(be(o)("legend.columns.population"))+" ",1),U.value==="pop"?(H(),Q("span",L_,ce(re.value==="desc"?"▼":"▲"),1)):me("",!0)],10,$_)):me("",!0),I[15]||(I[15]=E("span",{class:"stl-x-slot"},null,-1))]),E("div",{class:Le(["stl-rows",{"has-sel":xt.value}]),ref_key:"rowsContainer",ref:K},[(H(!0),Q(Ce,null,At(et.value,we=>{var ft,Re;return H(),Q("div",{key:we.node.id,class:Le(["stl-row",F(we)]),"data-stl-node-id":we.node.id,style:tt({"--trunk-color":((ft=we.parent)==null?void 0:ft.color)||"#6e7681","--row-color":we.node.color||"#73A17F"}),onClick:Ke=>W(we.node)},[(H(!0),Q(Ce,null,At(we.trunks,(Ke,wn)=>(H(),Q("span",{key:`tr${wn}`,class:Le(["stl-trunk",`stl-trunk-${Ke}`])},null,2))),128)),(Re=we.node.children)!=null&&Re.length?(H(),Q("button",{key:0,class:Le(["stl-caret",{open:A.value.has(we.node.id)}]),onClick:Dt(Ke=>q(we.node.id,Ke),["stop"])},[...I[16]||(I[16]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,T_)):(H(),Q("span",E_)),we.node.color?(H(),Q("span",{key:2,class:"stl-dot",style:tt({background:we.node.color})},null,4)):(H(),Q("span",P_)),E("span",M_,ce(we.node.label),1),L.value?(H(),Q("span",N_,ce(ae(we.node.count)),1)):me("",!0),M.value?(H(),Q("span",I_,ce(ie(we.node.pop)),1)):me("",!0),E("span",R_,[C.value===we.node.id?(H(),Q("button",{key:0,class:"stl-x-chip",title:"Clear selection",onClick:I[6]||(I[6]=Dt(Ke=>g(Ke),["stop"]))},[...I[17]||(I[17]=[E("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])):me("",!0)])],14,C_)}),128)),Me.value&&!et.value.length?(H(),Q("div",F_,[I[18]||(I[18]=E("span",{class:"stl-spinner"},null,-1)),E("span",null,"Loading "+ce(((fe=b.value[B.value])==null?void 0:fe.label)||"rows")+"…",1)])):!et.value.length&&e.nodes.length===0?(H(),Q("div",O_,"Loading data…")):et.value.length?me("",!0):(H(),Q("div",D_,"No data at this level")),Qe.value>0?(H(),Q("div",B_,[dt(" Showing top "+ce(b.value[B.value].topLimit.toLocaleString())+" of "+ce(Xe.value.length.toLocaleString())+" — ",1),I[19]||(I[19]=E("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):me("",!0)],2)])],10,c_),N.value?me("",!0):(H(),Q("button",{key:0,class:"stl-reopen","data-theme":((Ae=be(i))==null?void 0:Ae.theme.value)||"dark",title:"Expand legend",onClick:I[7]||(I[7]=we=>{N.value=!0,s("update:open",!0)})},[I[20]||(I[20]=E("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),E("span",G_,[z.value?(H(),Q(Ce,{key:0},[z.value.color?(H(),Q("span",{key:0,class:"stl-reopen-dot",style:tt({background:z.value.color})},null,4)):me("",!0),dt(" "+ce(z.value.label),1)],64)):(H(),Q(Ce,{key:1},[dt(ce(u.value),1)],64))]),I[21]||(I[21]=E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,j_))],64)}}},[["styles",[l_]],["__scopeId","data-v-78a7a96e"]]),Eu="peoplePraying",nr=144,Fo={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Yo=Fo,As={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},U_=As;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 $s(e){return Fo[ar(e)]}function Pu(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 Mu(e){return ar(e)==="fullPrayer"}function Nu(e){return $s(e)}function Ls({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,nr],Fo.fullPrayer,[">",t,0],Fo.hasPrayer,Fo.noPrayer]}const Iu=Ls,K_=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:nr,LABELS:As,PALETTE:Fo,PRAYER_COLORS:Yo,PRAYER_LABELS:U_,PROPERTY_KEY:Eu,applyColor:Ls,buildColorExpression:Iu,checkHasFullPrayer:Mu,checkHasPrayer:Pu,default:{name:"Prayer Progress",propertyKey:Eu,palette:Fo,colors:Fo,labels:As,threshold:nr,getColor:Nu,applyColor:Ls,buildColorExpression:Iu,getPrayerLevel:ar,getPrayerColor:$s,checkHasPrayer:Pu,checkHasFullPrayer:Mu},getColor:Nu,getPrayerColor:$s,getPrayerLevel:ar},Symbol.toStringTag,{value:"Module"})),Cs={};function Ru(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Zo&&Zo.tagName.toUpperCase()==="SCRIPT"&&Zo.src||new URL("my-upg-100-list.js",document.baseURI).href}<"u"&&(Cs==null?void 0:Cs.VITE_API_BASE_URL)||""}const Ts=ue(0),rr=ue(0),sr=ue(0),Es=ue(!1),Ps=ue(!1),Ms=ue(null);let oa=null;async function z_(){if(!Es.value)return oa||(Ps.value=!0,Ms.value=null,oa=(async()=>{var e,t;try{const o=((e=ta==null?void 0:ta.sources)==null?void 0:e[ta.activeSource])||{},n=Ru(),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();Ts.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),Es.value=!0}catch(o){Ms.value=o&&o.message?o.message:String(o)}finally{Ps.value=!1,oa=null}})(),oa)}function H_(){return{total:Ts,withPrayer:rr,withFullPrayer:sr,loaded:Es,loading:Ps,error:Ms,load:z_,noPrayerCount:()=>Math.max(0,Ts.value-rr.value),hasPrayerCount:()=>Math.max(0,rr.value-sr.value),fullPrayerCount:()=>sr.value}}const Fu="engagementStatus",xo={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Ns=xo,Is={notEngaged:"Unengaged",hasEngagement:"Engaged"},V_=Is;function Ou(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)?xo.hasEngagement:xo.notEngaged}function Rs({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],xo.hasEngagement,["==",t,1],xo.hasEngagement,xo.notEngaged]}const Du=Rs,W_=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Ns,ENGAGEMENT_LABELS:V_,LABELS:Is,PALETTE:xo,PROPERTY_KEY:Fu,applyColor:Rs,buildColorExpression:Du,default:{name:"Engagement Progress",propertyKey:Fu,palette:xo,colors:xo,labels:Is,getColor:Ou,applyColor:Rs,buildColorExpression:Du},getColor:Ou},Symbol.toStringTag,{value:"Module"})),Bu="adoptionStatus",So={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Fs=So,Os={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Y_=Os;function ju(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)?So.hasAdoption:So.notAdopted}function Ds({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],So.hasAdoption,["==",t,1],So.hasAdoption,So.notAdopted]}const Gu=Ds,J_=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Fs,ADOPTION_LABELS:Y_,LABELS:Os,PALETTE:So,PROPERTY_KEY:Bu,applyColor:Ds,buildColorExpression:Gu,default:{name:"Adoption Progress",propertyKey:Bu,palette:So,colors:So,labels:Os,getColor:ju,applyColor:Ds,buildColorExpression:Gu},getColor:ju},Symbol.toStringTag,{value:"Module"})),Bs="languageFamily",q_="#000000",Oo={"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","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Uu=Oo;function Yt(e){return Oo[e]||q_}const Z_=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(Oo))t[e(o)]=o;return t})();function js(e){if(!e)return"Unknown";const t=String(e).trim();return Z_[t.toLowerCase()]||t}function Ku(e){var t;return Yt(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function Gs(){const e=["match",["get",Bs]];return Object.entries(Oo).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const zu=Gs,X_=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Uu,PALETTE:Oo,PROPERTY_KEY:Bs,applyColor:Gs,buildColorExpression:zu,canonicalFamilyName:js,default:{name:"Language Family",propertyKey:Bs,palette:Oo,colors:Oo,getColor:Ku,applyColor:Gs,buildColorExpression:zu,getLanguageFamilyColor:Yt,canonicalFamilyName:js},defaultFamilyColor:"#95a5a6",getColor:Ku,getLanguageFamilyColor:Yt,languageFamilyColors:Oo},Symbol.toStringTag,{value:"Module"})),Hu="religion",Us="#94a3b8",na={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 aa(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return na[t]?t:"U"}function Vu(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[aa(t)]||Us}function Ks(){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,Us]}const Wu=Ks,Q_=Object.assign({"./adoption.js":J_,"./engagement.js":W_,"./language-family.js":X_,"./prayer-progress.js":K_,"./religion.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Bt,PROPERTY_KEY:Hu,RELIGION_FAMILIES:na,applyColor:Ks,buildColorExpression:Wu,default:{name:"Religion",propertyKey:Hu,palette:Bt,families:na,getColor:Vu,applyColor:Ks,buildColorExpression:Wu,fallback:Us},getColor:Vu,getReligionFamily:aa},Symbol.toStringTag,{value:"Module"}))}),e0=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),t0=e=>e.replace(/-/g,"_").toUpperCase(),yn={...{STATUS:"status",CUSTOM:"custom"}},zs={};function o0(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=e0(o);yn[t0(o)]=a,zs[a]=n}}o0(Q_);function ir(e){return zs[e]||zs[yn.LANGUAGE_FAMILY]}const $t={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 n0(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 a0(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($t[n])return $t[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if($t[a])return $t[a]}}if($t[e])return $t[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&$t[o]?$t[o]:null}const r0=[[/ sign language$/i,"Sign Language"]];function s0(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function i0(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function l0(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=js(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(),d=a0(u);if(d)return d;for(const[h,v]of r0)if(h.test(u))return v}return"Unknown"}function c0(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 u0(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 d0(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 p0(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function g0(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 f0(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 Yu(e,t={}){t.aggregator;const o=en({});function n(_){return!!o[_]}function a(_){o[_]=!o[_]}function r(_){const m=new Set(Array.isArray(_)?_:[]);for(const x of Object.keys(o))m.has(x)||(o[x]=!1);for(const x of m)o[x]=!0}const s=X(()=>{const _=(e==null?void 0:e.value)||[],m=new Map;for(const x of _){const S=n0(x),k=l0(S),p=c0(S),b=s0(p),$=i0(p),A=u0(S),P=d0(x,S),N=p0(x,S),V=g0(x,S);let G=m.get(k);G||(G={key:k,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},m.set(k,G)),G.peopleGroupCount+=1,G.population+=A,P!=null&&G.pinIds.push(P),V&&G.coords.push(V),N&&!G.clusterId&&(G.clusterId=N);let U=G.languages.get(b);if(U||(U={key:b,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},G.languages.set(b,U)),U.peopleGroupCount+=1,U.population+=A,P!=null&&U.pinIds.push(P),V&&U.coords.push(V),N&&!U.clusterId&&(U.clusterId=N),$){let re=U.dialects.get($);re?re.originalLabels.add(p):(re={key:$,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([p])},U.dialects.set($,re)),re.peopleGroupCount+=1,re.population+=A,P!=null&&re.pinIds.push(P),V&&re.coords.push(V)}}return m}),i=t.showAllKnown!==!1,l=X(()=>{const _=s.value,m=[],x=new Set;for(const S of _.values())m.push({key:S.key,label:S.key,color:Yt(S.key),peopleGroupCount:S.peopleGroupCount,population:S.population,kind:S.clusterId?"cluster":"family",clusterId:S.clusterId||void 0,pinIds:S.pinIds,coords:S.coords}),x.add(S.key);if(i)for(const S of Object.keys(Uu))x.has(S)||m.push({key:S,label:S,color:Yt(S),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return m.sort(f0),m});function c(_){const m=s.value.get(_);if(!m)return[];const x=[];for(const S of m.languages.values())x.push({key:`${_}__${S.key}`,label:S.key,color:Yt(_),peopleGroupCount:S.peopleGroupCount,population:S.population,kind:S.clusterId?"cluster":"language",familyKey:_,clusterId:S.clusterId||void 0,pinIds:S.pinIds,coords:S.coords,hasDialects:S.dialects.size>0});return x.sort(cr),x}function u(_){const m=_.indexOf("__");if(m<0)return[];const x=_.slice(0,m),S=_.slice(m+2),k=s.value.get(x);if(!k)return[];const p=k.languages.get(S);if(!p)return[];const b=[];for(const $ of p.dialects.values())b.push({key:`${_}__${$.key}`,label:`${S}, ${$.key}`,dialectOnly:$.key,color:Yt(x),peopleGroupCount:$.peopleGroupCount,population:$.population,kind:"dialect",languageKey:S,familyKey:x,pinIds:$.pinIds,coords:$.coords,originalLabels:Array.from($.originalLabels)});return b.sort(cr),b}const d=X(()=>{const _=s.value,m=[];for(const x of _.values())for(const S of x.languages.values())m.push({key:`${x.key}__${S.key}`,label:S.key,color:Yt(x.key),peopleGroupCount:S.peopleGroupCount,population:S.population,kind:S.clusterId?"cluster":"language",familyKey:x.key,clusterId:S.clusterId||void 0,pinIds:S.pinIds,coords:S.coords,hasDialects:S.dialects.size>0});return m.sort(cr),m}),h=X(()=>{const _=s.value,m=[];for(const x of _.values())for(const S of x.languages.values())for(const k of S.dialects.values())m.push({key:`${x.key}__${S.key}__${k.key}`,label:`${S.key}, ${k.key}`,dialectOnly:k.key,color:Yt(x.key),peopleGroupCount:k.peopleGroupCount,population:k.population,kind:"dialect",languageKey:S.key,familyKey:x.key,pinIds:k.pinIds,coords:k.coords,originalLabels:Array.from(k.originalLabels)});return m.sort(cr),m});function v(_){let m=_;if(typeof _=="string"&&(m=l.value.find(S=>S.key===_),!m))return;const x={kind:m.kind,pinIds:m.pinIds||[],coords:m.coords||[]};m.kind==="family"&&(x.familyKey=m.label),m.kind==="language"&&(x.languageKey=m.label,x.familyKey=m.familyKey),m.kind==="dialect"&&(x.dialectKey=m.key,x.dialectOnly=m.dialectOnly||m.label,x.languageKey=m.languageKey,x.familyKey=m.familyKey,x.originalLabels=m.originalLabels||[]),m.kind==="cluster"&&(x.clusterId=m.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:x}))}const f=X(()=>{const _=s.value,m=[];for(const x of _.values()){const S=Yt(x.key),k=[];for(const b of x.languages.values()){b.key&&b.key!=="— Unknown —"&&k.push(b.key);for(const $ of b.dialects.values())for(const A of $.originalLabels)A&&k.push(A)}const p={id:`fam:${x.key}`,label:x.key,color:S,count:x.peopleGroupCount,pop:x.population,filter:k.length>0?["any",["==",["get","languageFamily"],x.key],["in",["get","language"],["literal",Array.from(new Set(k))]]]:["==",["get","languageFamily"],x.key],children:[]};for(const b of x.languages.values()){const $=b.key,A={id:`lang:${x.key}__${$}`,label:$,color:S,count:b.peopleGroupCount,pop:b.population,filter:["any",["==",["get","language"],$],["==",["slice",["get","language"],0,$.length+1],$+","],["in"," "+$,["get","language"]]],children:[]};for(const P of b.dialects.values()){const N=Array.from(P.originalLabels);A.children.push({id:`dial:${x.key}__${$}__${P.key}`,label:`${$}, ${P.key}`,color:S,count:P.peopleGroupCount,pop:P.population,filter:N.length===1?["==",["get","language"],N[0]]:["in",["get","language"],["literal",N]],originalLabels:N,children:[]})}p.children.push(A)}m.push(p)}return m.sort((x,S)=>S.pop-x.pop||S.count-x.count),m});return{rows:l,languageRows:d,dialectRows:h,langTree:f,toggle:a,isExpanded:n,setExpansionToOnly:r,childRowsFor:c,dialectRowsFor:u,highlight:v}}const h0=[];function m0(){const e=ir(yn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function b0(){const e=ir(yn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function y0(){const e=ir(yn.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 Jo(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 Ju=100;function _0(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 Hs(e){return t=>{const o=_0(t);return e==="fullPrayer"?o>=Ju:e==="hasPrayer"?o>0&&o0||typeof t=="string"&&parseInt(t,10)>0}function Zu(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 v0={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 _n(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function k0(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function w0(e){return(Number(e)||0).toLocaleString()}function x0(e,t={}){const o=Ee("dataStore"),n=Ee("uiStore"),a=Ee("mapStore"),{t:r}=kt(),s=H_();s.load();const i=X(()=>{if(_n(e.value)==="religion")return"Religion";const x=v0[e.value];return x?r(x):""}),l=X(()=>_n(e.value)==="affinity-blocs"?h0:[{key:"count",label:r("legend.columns.upgs"),width:48},{key:"population",label:r("legend.columns.population"),width:48}]),c=X(()=>{const m=_n(e.value);return m==="prayer"?n.prayerFilter:m==="engagement"?n.engagementFilter:m==="adoption"?n.adoptionFilter:m==="language-families"?a.selectedFamily:m==="doxa-regions"?a.selectedRegion:m==="gospel-resources"?a.selectedResource:m==="religion"?n.religionFilter:null});function u(m){const x=_n(e.value);x==="prayer"?n.setPrayerFilter(n.prayerFilter===m?null:m):x==="engagement"?n.setEngagementFilter(n.engagementFilter===m?null:m):x==="adoption"?n.setAdoptionFilter(n.adoptionFilter===m?null:m):x==="language-families"?a.selectFamily(a.selectedFamily===m?null:m):x==="doxa-regions"?a.selectRegion(a.selectedRegion===m?null:m):x==="gospel-resources"?a.selectResource(a.selectedResource===m?null:m):x==="religion"&&n.setReligionFilter(n.religionFilter===m?null:m)}const d=X(()=>{var x,S,k,p;const m=_n(e.value);if(m==="prayer"){const b=Jo(o,Hs("noPrayer")),$=Jo(o,Hs("hasPrayer")),A=Jo(o,Hs("fullPrayer")),P=s.loaded.value,N=P?s.noPrayerCount():b.count,V=P?s.hasPrayerCount():$.count,G=P?s.fullPrayerCount():A.count;return[{key:"noPrayer",label:r("legend.prayer.needsPrayer"),color:Yo.noPrayer,count:N,population:b.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:r("legend.prayer.hasPrayer"),color:Yo.hasPrayer,count:V,population:$.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:r("legend.prayer.fullPrayerCoverage"),color:Yo.fullPrayer,count:G,population:A.population,filterKey:"fullPrayer"}]}]}if(m==="engagement"){const b=Jo(o,A=>!qu(A)),$=Jo(o,A=>qu(A));return[{key:"notEngaged",label:r("legend.engagement.needsEngagement"),color:Ns.notEngaged,count:b.count,population:b.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:r("legend.engagement.hasEngagement"),color:Ns.hasEngagement,count:$.count,population:$.population,filterKey:"hasEngagement"}]}]}if(m==="adoption"){const b=Jo(o,A=>!Zu(A)),$=Jo(o,A=>Zu(A));return[{key:"notAdopted",label:r("legend.adoption.needsAdoption"),color:Fs.notAdopted,count:b.count,population:b.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:r("legend.adoption.hasAdoption"),color:Fs.hasAdoption,count:$.count,population:$.population,filterKey:"hasAdoption"}]}]}if(m==="religion"){const b={},A=Object.values(o.sources||{}).flatMap(V=>(V==null?void 0:V.features)||[]);for(const V of A){const G=V.properties||V,U=G.religion||((S=(x=G._raw)==null?void 0:x.religion)==null?void 0:S.value)||((k=G._raw)==null?void 0:k.religion)||"",re=aa(U);b[re]||(b[re]={count:0,population:0}),b[re].count+=1,b[re].population+=parseInt(G.population||((p=G._raw)==null?void 0:p.Population)||0)||0}const P=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const V of P)delete b[V];return Object.keys(b).sort((V,G)=>V==="C"?-1:G==="C"?1:b[G].population-b[V].population).map(V=>({key:V,label:na[V]||"Unknown",color:Bt[V]||"#94a3b8",count:b[V].count,population:b[V].population,filterKey:V,children:[]}))}if(m==="language-families")return(o.languageFamiliesData||[]).map(b=>({key:b.name,label:b.name,color:Yt(b.name),count:b.count,population:b.population,filterKey:b.name,children:[]}));if(m==="language-family"){const $={value:Object.values(o.sources||{}).flatMap(P=>(P==null?void 0:P.features)||[])},{rows:A}=Yu($);return A.value.map(P=>({key:P.key,label:P.label,color:P.color,count:P.peopleGroupCount,population:P.population,filterKey:P.key,children:[]}))}if(m==="doxa-regions"){const b=b0();return(o.doxaRegionsData||[]).map($=>({key:$.name,label:$.name,color:b[$.name]||"#999",count:$.count,population:$.population,filterKey:$.name,children:[]}))}if(m==="gospel-resources"){const b=m0(),$=(b==null?void 0:b.palette)??{},A=(b==null?void 0:b.names)??{},P=o.resourcesData||[];return Object.keys($).map(N=>{const V=P.find(G=>G.key===N);return{key:N,label:A[N]||N,color:$[N],count:(V==null?void 0:V.count)||0,population:(V==null?void 0:V.population)||0,filterKey:N,children:((V==null?void 0:V.children)||[]).map(G=>({key:G.key,label:G.name||G.key,color:G.color||$[N],count:G.count||0,population:G.population||0,filterKey:G.key}))}})}if(m==="affinity-blocs"){const b=y0();return Object.keys(b).sort().map($=>({key:$,label:$,color:b[$],filterKey:$,children:[]}))}return[]});function h(m,x){return m.reduce((S,k)=>{var b;let p=k[x]||0;return(b=k.children)!=null&&b.length&&(p+=h(k.children,x)),S+p},0)}const v=X(()=>h(d.value,"count")),f=X(()=>h(d.value,"population")),_=X(()=>{if(_n(e.value)!=="prayer")return null;const m=d.value[0];if(!m)return null;const x=(m.children||[]).find(A=>A.key==="hasPrayer"),S=(m.children||[]).find(A=>A.key==="fullPrayer"),k=Number(m.count)||0,p=Number(x==null?void 0:x.count)||0,b=Number(S==null?void 0:S.count)||0,$=(Number(x==null?void 0:x.population)||0)+(Number(S==null?void 0:S.population)||0);return{covered:p+b,total:v.value,coveredPopulation:$,totalPopulation:f.value,segments:[{key:"fullPrayer",label:(S==null?void 0:S.label)??r("legend.prayer.fullPrayerCoverage"),count:b,color:Yo.fullPrayer},{key:"hasPrayer",label:(x==null?void 0:x.label)??r("legend.prayer.hasPrayer"),count:p,color:Yo.hasPrayer},{key:"noPrayer",label:m.label,count:k,color:Yo.noPrayer}]}});return{items:d,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:v,totalPopulation:f,progress:_,fmtPop:k0,fmtCount:w0}}const S0={excludeReligionFamilies:["C"]},A0="",$0={key:0,class:"lrg-title-row"},L0={class:"lrg-title-caret-slot"},C0={class:"lrg-title"},T0=["data-lrg-filter-key"],E0=["onClick"],P0={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},M0=["onClick"],N0={class:"lrg-name"},I0={class:"lrg-badge-inner"},R0=["data-lrg-filter-key"],F0=["onClick"],O0={class:"lrg-name"},D0={class:"lrg-badge-inner"},B0={key:1,class:"lrg-footer"},j0={class:"lrg-footer-label"},G0=bn({__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;} @@ -575,7 +574,7 @@ .lrg-dark .lrg-header-col{color:rgba(243,243,241,0.65);} .lrg-dark .lrg-footer{background:#2a332a;border-top-color:rgba(255,255,255,0.1);color:rgba(243,243,241,0.75);} .lrg-dark .lrg-footer-label{color:rgba(243,243,241,0.65);} -`,"legend-row-group");const o=e,n=Ee("legendProgress",null),a=X(()=>o.progress??be(n)??null),r=X(()=>a.value?t("legend.progress.title"):o.title),s=ue(null);function i(f){let k=f.parentElement;for(;k;){const m=getComputedStyle(k).overflowY;if((m==="auto"||m==="scroll")&&k.scrollHeight>k.clientHeight+1){const _=f.getBoundingClientRect(),h=k.getBoundingClientRect();k.scrollTop+=_.top-h.top-8}k=k.parentElement}}let l=0;rt(()=>o.activeFilter,async f=>{if(!f)return;const k=++l,m=s.value;if(!m)return;await Lo();const _=(h=0)=>{if(k!==l)return;const x=m.querySelector(`[data-lrg-filter-key="${CSS.escape(String(f))}"]`);x&&i(x),h<6&&setTimeout(()=>_(h+1),70)};_(0)});const c=en({});function u(f){c[f]=!c[f]}const d=X(()=>`var(--lrg-caret-col) minmax(80px, 1fr) ${o.columns.map(()=>"auto").join(" ")} var(--lrg-caret-col)`);return(f,k)=>(z(),Q("div",{class:Le(["legend-row-group",e.isDark?"lrg-dark":"lrg-light"])},[E("div",{class:"lrg-items",style:tt({"--lrg-grid-cols":d.value}),ref_key:"itemsContainer",ref:s},[!e.hideColumnHeader&&(e.title||e.columns.length)?(z(),Q("div",k0,[E("span",w0,[sn(f.$slots,"title-caret",{},void 0,!0)]),E("span",x0,ce(r.value),1),(z(!0),Q(Ce,null,At(e.columns,m=>(z(),Q("span",{key:m.key,class:"lrg-header-col"},ce(m.label),1))),128)),a.value?(z(),st(Lu,{key:0,class:"lrg-progress",covered:a.value.covered,total:a.value.total,segments:a.value.segments,"is-dark":e.isDark,"fmt-count":e.fmtCount,onSelectSegment:k[0]||(k[0]=m=>f.$emit("filter-click",m))},null,8,["covered","total","segments","is-dark","fmt-count"])):me("",!0)])):me("",!0),(z(!0),Q(Ce,null,At(e.items,m=>(z(),Q(Ce,{key:m.key},[E("div",{class:"lrg-row","data-lrg-filter-key":m.filterKey},[m.children&&m.children.length&&!e.disableCollapse?(z(),Q("button",{key:0,class:Le(["lrg-caret",{expanded:!c[m.key]}]),onClick:Ht(_=>u(m.key),["stop"]),"aria-label":"Toggle children"},[...k[1]||(k[1]=[E("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,A0)):(z(),Q("span",$0)),E("div",{class:Le(["lrg-item",{selected:e.activeFilter===m.filterKey}]),onClick:_=>f.$emit("filter-click",m.filterKey)},[E("div",{class:"lrg-item-inner",style:tt({backgroundColor:m.color,"--lrg-item-color":m.color})},[E("span",C0,ce(m.label),1),(z(!0),Q(Ce,null,At(e.columns,_=>(z(),Q("span",{key:_.key,class:"lrg-badge"},[E("span",T0,ce(_.key==="population"?e.fmtPop(m.population):e.fmtCount(m.count)),1)]))),128))],4)],10,L0)],8,S0),m.children&&m.children.length&&!c[m.key]?(z(!0),Q(Ce,{key:0},At(m.children,_=>(z(),Q("div",{key:_.key,class:"lrg-row lrg-row-child","data-lrg-filter-key":_.filterKey},[k[2]||(k[2]=E("span",{class:"lrg-caret-placeholder","aria-hidden":"true"},null,-1)),E("div",{class:Le(["lrg-item",{selected:e.activeFilter===_.filterKey}]),onClick:h=>f.$emit("filter-click",_.filterKey)},[E("div",{class:"lrg-item-inner",style:tt({backgroundColor:_.color,"--lrg-item-color":_.color})},[E("span",M0,ce(_.label),1),(z(!0),Q(Ce,null,At(e.columns,h=>(z(),Q("span",{key:h.key,class:"lrg-badge"},[E("span",N0,ce(h.key==="population"?e.fmtPop(_.population):e.fmtCount(_.count)),1)]))),128))],4)],10,P0)],8,E0))),128)):me("",!0)],64))),128)),e.columns.length&&e.showFooter?(z(),Q("div",I0,[k[3]||(k[3]=E("span",{class:"lrg-footer-caret-slot","aria-hidden":"true"},null,-1)),E("span",R0,ce(be(t)("legend.footer.total")),1),(z(!0),Q(Ce,null,At(e.columns,m=>(z(),Q("span",{key:m.key,class:"lrg-footer-value"},ce(m.key==="population"?e.fmtPop(e.totalPopulation):e.fmtCount(e.totalCount)),1))),128))])):me("",!0)],4)],2))}},[["__scopeId","data-v-3bddba9a"]]),O0="#6b7280";function D0(){const e=ir(yn.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function B0(e,t){const o=D0();return e&&o[e]?o[e]:O0}function j0(e){return(e==null?void 0:e.properties)||e||{}}function zs(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function G0(e){var t;return String(e.affinityBlock||zs((t=e._raw)==null?void 0:t.rop1)||"").trim()}function U0(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function K0(e){var t;return String(e.cluster||zs((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function H0(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function z0(e){var t;return String(e.peopleGroup||zs((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function V0(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function W0(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function Y0(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function J0(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function q0(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function Z0(e){const t=X(()=>{const r=e&&e.value||[],s=new Map;for(const i of r){const l=j0(i),c=G0(l),u=U0(l)||c||"— Unknown —",d=K0(l),f=H0(l)||d||"— Unknown —",k=z0(l),m=V0(l)||k||"— Unknown —",_=W0(l),h=Y0(l)||_,x=J0(l),S=q0(l);if(!_)continue;let b=s.get(c||"__unknown__");b||(b={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},s.set(c||"__unknown__",b)),b.count+=1,b.pop+=x,b.memberIds.push(_);let p=b.clusters.get(d||"__unknown__");p||(p={code:d,label:f,count:0,pop:0,memberIds:[],peopleGroups:new Map},b.clusters.set(d||"__unknown__",p)),p.count+=1,p.pop+=x,p.memberIds.push(_);let v=p.peopleGroups.get(k||"__unknown__");v||(v={code:k,label:m,count:0,pop:0,memberIds:[],instances:[]},p.peopleGroups.set(k||"__unknown__",v)),v.count+=1,v.pop+=x,v.memberIds.push(_),v.instances.push({id:_,name:h,country:S,pop:x})}return s}),o=r=>r&&r.length?["in",["get","uniqueId"],["literal",r]]:["==",["get","uniqueId"],"__none__"],n=X(()=>{const r=t.value,s=[];for(const i of r.values()){const l=B0(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const d={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const f of u.peopleGroups.values()){const k={id:`pg:${i.code}__${u.code}__${f.code||f.label}`,label:`${f.label} (PG)`,color:l,count:f.count,pop:f.pop,filter:o(f.memberIds),children:[]};f.instances.sort((m,_)=>_.pop-m.pop||m.country.localeCompare(_.country));for(const m of f.instances)k.children.push({id:`pgic:${m.id}`,label:`${m.country?`${m.name}, ${m.country}`:m.name} (PGIC)`,color:l,count:1,pop:m.pop,filter:["==",["get","uniqueId"],m.id],children:[]});d.children.push(k)}d.children.sort((f,k)=>k.count-f.count||k.pop-f.pop),c.children.push(d)}c.children.sort((u,d)=>d.count-u.count||d.pop-u.pop),s.push(c)}return s.sort((i,l)=>l.count-i.count||l.pop-i.pop),s});function a(r){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!r){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const s=String(r.id||""),i={kind:null,label:r.label,filterExpr:r.filter};s.startsWith("bloc:")?i.kind="bloc":s.startsWith("cluster:")?i.kind="cluster":s.startsWith("pg:")?i.kind="people-group":s.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}const X0={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Q0="#95a5a6";function ev(e){return X0[String(e||"").toLowerCase()]||Q0}function tv(e){return(e==null?void 0:e.properties)||e||{}}function ov(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function nv(e){var t,o;return String(e.doxaRegion||e.wagfRegion||((o=(t=e._raw)==null?void 0:t.wagf_region)==null?void 0:o.value)||"").trim()}function av(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_region;return String(e.wagfRegionLabel||e.doxaRegionLabel||(t&&typeof t=="object"?t.label:"")||e.doxaRegion||"").trim()}function rv(e){var t,o;return String(e.wagfBlock||((o=(t=e._raw)==null?void 0:t.wagf_block)==null?void 0:o.value)||"").trim()}function sv(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_block;return String(e.wagfBlockLabel||(t&&typeof t=="object"?t.label:"")||e.wagfBlock||"").trim()}function iv(e){var t,o;return String(e.countryIso||((o=(t=e._raw)==null?void 0:t.country_code)==null?void 0:o.value)||"").trim().toUpperCase()}function lv(e){var o;const t=(o=e._raw)==null?void 0:o.country_code;return String(e.countryIsoLabel||(t&&typeof t=="object"?t.label:"")||e.countryIso||"").trim()}function cv(e){const t=X(()=>{const a=e&&e.value||[],r=new Map;for(const s of a){const i=tv(s),l=nv(i),c=av(i)||l||"— Unknown —",u=rv(i),d=sv(i)||u||"— Unknown —",f=iv(i),k=lv(i)||f||"— Unknown —",m=ov(i);if(!l||l==="na"||l==="none")continue;let _=r.get(l);if(_||(_={slug:l,label:c,count:0,pop:0,blocks:new Map},r.set(l,_)),_.count+=1,_.pop+=m,!u||u==="na")continue;let h=_.blocks.get(u);if(h||(h={slug:u,label:d,count:0,pop:0,countries:new Map},_.blocks.set(u,h)),h.count+=1,h.pop+=m,!f)continue;let x=h.countries.get(f);x||(x={iso:f,name:k,count:0,pop:0},h.countries.set(f,x)),x.count+=1,x.pop+=m}return r}),o=X(()=>{const a=t.value,r=[];for(const s of a.values()){const i=ev(s.slug),l=[],c=[],u=[...s.blocks.values()].sort((d,f)=>f.pop-d.pop||d.label.localeCompare(f.label));for(const d of u){const f=[],k=[],m=[...d.countries.values()].sort((_,h)=>h.pop-_.pop||_.name.localeCompare(h.name));for(const _ of m)f.push(_.iso),l.push(_.iso),k.push({id:`country:${s.slug}__${d.slug}__${_.iso}`,label:_.name,color:i,count:_.count,pop:_.pop,filter:["==",["get","countryIso"],_.iso],isoCodes:[_.iso],children:[]});c.push({id:`block:${s.slug}__${d.slug}`,label:`${d.label} (Bloc)`,color:i,count:d.count,pop:d.pop,filter:["==",["get","wagfBlock"],d.slug],isoCodes:f,children:k})}r.push({id:`region:${s.slug}`,label:`${s.label} (Region)`,color:i,count:s.count,pop:s.pop,filter:["==",["get","doxaRegion"],s.slug],isoCodes:[...new Set(l)],children:c})}return r.sort((s,i)=>i.pop-s.pop||s.label.localeCompare(i.label)),r});function n(a){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!a){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(a.id||""),s={kind:null,label:a.label,filterExpr:a.filter};r.startsWith("region:")?s.kind="region":r.startsWith("block:")?s.kind="block":r.startsWith("country:")&&(s.kind="country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:s}))}return{aggregated:t,regionsTree:o,highlight:n}}const Zu="doxa-prayed-local";function uv(){try{const e=localStorage.getItem(Zu);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function dv(e){try{localStorage.setItem(Zu,JSON.stringify(e))}catch{}}function pv(e){if(!e)return;const t=uv();t[e]=Date.now(),dv(t);try{window.dispatchEvent(new CustomEvent("doxa:prayed-locally",{detail:{slug:e}}))}catch{}}const Xu=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"];function Qu(e){const t=(e||"U")[0].toUpperCase(),o=t.charCodeAt(0)%Xu.length,n=Xu[o];return{letter:t,color:"#ffffff",backgroundColor:n}}function gv(e,t={}){const{size:o=32,borderRadius:n=4}=t,a=Qu(e);return{width:`${o}px`,height:`${o}px`,borderRadius:`${n}px`,backgroundColor:a.backgroundColor,color:a.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"600",fontSize:`${Math.floor(o*.5)}px`,flexShrink:"0"}}const fv={key:0,class:"detail-header"},hv={class:"header-left"},mv={class:"header-text"},bv={class:"people-group-name"},yv={class:"people-group-subtitle"},_v=["aria-label"],vv={class:"detail-content"},kv={key:0,class:"pg-name-lead"},wv={class:"action-buttons"},xv={class:"quick-stats"},Sv={class:"stat-item"},Av={class:"stat-label"},$v={class:"stat-value"},Lv={class:"stat-item"},Cv={class:"stat-label"},Tv={class:"stat-value"},Ev={class:"stat-item"},Pv={class:"stat-label"},Mv={class:"stat-value"},Nv={class:"stat-item"},Iv={class:"stat-label"},Rv={class:"stat-value"},Fv={class:"stat-item stat-committed"},Ov={class:"stat-label"},Dv={class:"stat-value"},Bv={key:1,class:"image-container position-inside"},jv=["src","alt"],Gv={key:2,class:"description-section"},Uv={key:0,class:"description-text"},Kv={key:1,class:"description-text empty"},ed="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",td=bn({__name:"PeopleGroupDetail",props:{peopleGroup:{type:Object,required:!0},hideHeader:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},action:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)}},setup(e){const{t,locale:o}=kt();wt(` +`,"legend-row-group");const o=e,n=Ee("legendProgress",null),a=X(()=>o.progress??be(n)??null),r=X(()=>a.value?t("legend.progress.title"):o.title),s=ue(null);function i(h){let v=h.parentElement;for(;v;){const f=getComputedStyle(v).overflowY;if((f==="auto"||f==="scroll")&&v.scrollHeight>v.clientHeight+1){const _=h.getBoundingClientRect(),m=v.getBoundingClientRect();v.scrollTop+=_.top-m.top-8}v=v.parentElement}}let l=0;rt(()=>o.activeFilter,async h=>{if(!h)return;const v=++l,f=s.value;if(!f)return;await Lo();const _=(m=0)=>{if(v!==l)return;const x=f.querySelector(`[data-lrg-filter-key="${CSS.escape(String(h))}"]`);x&&i(x),m<6&&setTimeout(()=>_(m+1),70)};_(0)});const c=en({});function u(h){c[h]=!c[h]}const d=X(()=>`var(--lrg-caret-col) minmax(80px, 1fr) ${o.columns.map(()=>"auto").join(" ")} var(--lrg-caret-col)`);return(h,v)=>(H(),Q("div",{class:Le(["legend-row-group",e.isDark?"lrg-dark":"lrg-light"])},[E("div",{class:"lrg-items",style:tt({"--lrg-grid-cols":d.value}),ref_key:"itemsContainer",ref:s},[!e.hideColumnHeader&&(e.title||e.columns.length)?(H(),Q("div",$0,[E("span",L0,[sn(h.$slots,"title-caret",{},void 0,!0)]),E("span",C0,ce(r.value),1),(H(!0),Q(Ce,null,At(e.columns,f=>(H(),Q("span",{key:f.key,class:"lrg-header-col"},ce(f.label),1))),128)),a.value?(H(),st(Cu,{key:0,class:"lrg-progress",covered:a.value.covered,total:a.value.total,segments:a.value.segments,"is-dark":e.isDark,"fmt-count":e.fmtCount,onSelectSegment:v[0]||(v[0]=f=>h.$emit("filter-click",f))},null,8,["covered","total","segments","is-dark","fmt-count"])):me("",!0)])):me("",!0),(H(!0),Q(Ce,null,At(e.items,f=>(H(),Q(Ce,{key:f.key},[E("div",{class:"lrg-row","data-lrg-filter-key":f.filterKey},[f.children&&f.children.length&&!e.disableCollapse?(H(),Q("button",{key:0,class:Le(["lrg-caret",{expanded:!c[f.key]}]),onClick:Dt(_=>u(f.key),["stop"]),"aria-label":"Toggle children"},[...v[1]||(v[1]=[E("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,E0)):(H(),Q("span",P0)),E("div",{class:Le(["lrg-item",{selected:e.activeFilter===f.filterKey}]),onClick:_=>h.$emit("filter-click",f.filterKey)},[E("div",{class:"lrg-item-inner",style:tt({backgroundColor:f.color,"--lrg-item-color":f.color})},[E("span",N0,ce(f.label),1),(H(!0),Q(Ce,null,At(e.columns,_=>(H(),Q("span",{key:_.key,class:"lrg-badge"},[E("span",I0,ce(_.key==="population"?e.fmtPop(f.population):e.fmtCount(f.count)),1)]))),128))],4)],10,M0)],8,T0),f.children&&f.children.length&&!c[f.key]?(H(!0),Q(Ce,{key:0},At(f.children,_=>(H(),Q("div",{key:_.key,class:"lrg-row lrg-row-child","data-lrg-filter-key":_.filterKey},[v[2]||(v[2]=E("span",{class:"lrg-caret-placeholder","aria-hidden":"true"},null,-1)),E("div",{class:Le(["lrg-item",{selected:e.activeFilter===_.filterKey}]),onClick:m=>h.$emit("filter-click",_.filterKey)},[E("div",{class:"lrg-item-inner",style:tt({backgroundColor:_.color,"--lrg-item-color":_.color})},[E("span",O0,ce(_.label),1),(H(!0),Q(Ce,null,At(e.columns,m=>(H(),Q("span",{key:m.key,class:"lrg-badge"},[E("span",D0,ce(m.key==="population"?e.fmtPop(_.population):e.fmtCount(_.count)),1)]))),128))],4)],10,F0)],8,R0))),128)):me("",!0)],64))),128)),e.columns.length&&e.showFooter?(H(),Q("div",B0,[v[3]||(v[3]=E("span",{class:"lrg-footer-caret-slot","aria-hidden":"true"},null,-1)),E("span",j0,ce(be(t)("legend.footer.total")),1),(H(!0),Q(Ce,null,At(e.columns,f=>(H(),Q("span",{key:f.key,class:"lrg-footer-value"},ce(f.key==="population"?e.fmtPop(e.totalPopulation):e.fmtCount(e.totalCount)),1))),128))])):me("",!0)],4)],2))}},[["styles",[A0]],["__scopeId","data-v-3bddba9a"]]),U0="#6b7280";function K0(){const e=ir(yn.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function z0(e,t){const o=K0();return e&&o[e]?o[e]:U0}function H0(e){return(e==null?void 0:e.properties)||e||{}}function Vs(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function V0(e){var t;return String(e.affinityBlock||Vs((t=e._raw)==null?void 0:t.rop1)||"").trim()}function W0(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function Y0(e){var t;return String(e.cluster||Vs((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function J0(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function q0(e){var t;return String(e.peopleGroup||Vs((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function Z0(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function X0(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function Q0(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function ev(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function tv(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function ov(e){const t=X(()=>{const r=e&&e.value||[],s=new Map;for(const i of r){const l=H0(i),c=V0(l),u=W0(l)||c||"— Unknown —",d=Y0(l),h=J0(l)||d||"— Unknown —",v=q0(l),f=Z0(l)||v||"— Unknown —",_=X0(l),m=Q0(l)||_,x=ev(l),S=tv(l);if(!_)continue;let k=s.get(c||"__unknown__");k||(k={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},s.set(c||"__unknown__",k)),k.count+=1,k.pop+=x,k.memberIds.push(_);let p=k.clusters.get(d||"__unknown__");p||(p={code:d,label:h,count:0,pop:0,memberIds:[],peopleGroups:new Map},k.clusters.set(d||"__unknown__",p)),p.count+=1,p.pop+=x,p.memberIds.push(_);let b=p.peopleGroups.get(v||"__unknown__");b||(b={code:v,label:f,count:0,pop:0,memberIds:[],instances:[]},p.peopleGroups.set(v||"__unknown__",b)),b.count+=1,b.pop+=x,b.memberIds.push(_),b.instances.push({id:_,name:m,country:S,pop:x})}return s}),o=r=>r&&r.length?["in",["get","uniqueId"],["literal",r]]:["==",["get","uniqueId"],"__none__"],n=X(()=>{const r=t.value,s=[];for(const i of r.values()){const l=z0(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const d={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const h of u.peopleGroups.values()){const v={id:`pg:${i.code}__${u.code}__${h.code||h.label}`,label:`${h.label} (PG)`,color:l,count:h.count,pop:h.pop,filter:o(h.memberIds),children:[]};h.instances.sort((f,_)=>_.pop-f.pop||f.country.localeCompare(_.country));for(const f of h.instances)v.children.push({id:`pgic:${f.id}`,label:`${f.country?`${f.name}, ${f.country}`:f.name} (PGIC)`,color:l,count:1,pop:f.pop,filter:["==",["get","uniqueId"],f.id],children:[]});d.children.push(v)}d.children.sort((h,v)=>v.count-h.count||v.pop-h.pop),c.children.push(d)}c.children.sort((u,d)=>d.count-u.count||d.pop-u.pop),s.push(c)}return s.sort((i,l)=>l.count-i.count||l.pop-i.pop),s});function a(r){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!r){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const s=String(r.id||""),i={kind:null,label:r.label,filterExpr:r.filter};s.startsWith("bloc:")?i.kind="bloc":s.startsWith("cluster:")?i.kind="cluster":s.startsWith("pg:")?i.kind="people-group":s.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}const nv={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},av="#95a5a6";function rv(e){return nv[String(e||"").toLowerCase()]||av}function sv(e){return(e==null?void 0:e.properties)||e||{}}function iv(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function lv(e){var t,o;return String(e.doxaRegion||e.wagfRegion||((o=(t=e._raw)==null?void 0:t.wagf_region)==null?void 0:o.value)||"").trim()}function cv(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_region;return String(e.wagfRegionLabel||e.doxaRegionLabel||(t&&typeof t=="object"?t.label:"")||e.doxaRegion||"").trim()}function uv(e){var t,o;return String(e.wagfBlock||((o=(t=e._raw)==null?void 0:t.wagf_block)==null?void 0:o.value)||"").trim()}function dv(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_block;return String(e.wagfBlockLabel||(t&&typeof t=="object"?t.label:"")||e.wagfBlock||"").trim()}function pv(e){var t,o;return String(e.countryIso||((o=(t=e._raw)==null?void 0:t.country_code)==null?void 0:o.value)||"").trim().toUpperCase()}function gv(e){var o;const t=(o=e._raw)==null?void 0:o.country_code;return String(e.countryIsoLabel||(t&&typeof t=="object"?t.label:"")||e.countryIso||"").trim()}function fv(e){const t=X(()=>{const a=e&&e.value||[],r=new Map;for(const s of a){const i=sv(s),l=lv(i),c=cv(i)||l||"— Unknown —",u=uv(i),d=dv(i)||u||"— Unknown —",h=pv(i),v=gv(i)||h||"— Unknown —",f=iv(i);if(!l||l==="na"||l==="none")continue;let _=r.get(l);if(_||(_={slug:l,label:c,count:0,pop:0,blocks:new Map},r.set(l,_)),_.count+=1,_.pop+=f,!u||u==="na")continue;let m=_.blocks.get(u);if(m||(m={slug:u,label:d,count:0,pop:0,countries:new Map},_.blocks.set(u,m)),m.count+=1,m.pop+=f,!h)continue;let x=m.countries.get(h);x||(x={iso:h,name:v,count:0,pop:0},m.countries.set(h,x)),x.count+=1,x.pop+=f}return r}),o=X(()=>{const a=t.value,r=[];for(const s of a.values()){const i=rv(s.slug),l=[],c=[],u=[...s.blocks.values()].sort((d,h)=>h.pop-d.pop||d.label.localeCompare(h.label));for(const d of u){const h=[],v=[],f=[...d.countries.values()].sort((_,m)=>m.pop-_.pop||_.name.localeCompare(m.name));for(const _ of f)h.push(_.iso),l.push(_.iso),v.push({id:`country:${s.slug}__${d.slug}__${_.iso}`,label:_.name,color:i,count:_.count,pop:_.pop,filter:["==",["get","countryIso"],_.iso],isoCodes:[_.iso],children:[]});c.push({id:`block:${s.slug}__${d.slug}`,label:`${d.label} (Bloc)`,color:i,count:d.count,pop:d.pop,filter:["==",["get","wagfBlock"],d.slug],isoCodes:h,children:v})}r.push({id:`region:${s.slug}`,label:`${s.label} (Region)`,color:i,count:s.count,pop:s.pop,filter:["==",["get","doxaRegion"],s.slug],isoCodes:[...new Set(l)],children:c})}return r.sort((s,i)=>i.pop-s.pop||s.label.localeCompare(i.label)),r});function n(a){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!a){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(a.id||""),s={kind:null,label:a.label,filterExpr:a.filter};r.startsWith("region:")?s.kind="region":r.startsWith("block:")?s.kind="block":r.startsWith("country:")&&(s.kind="country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:s}))}return{aggregated:t,regionsTree:o,highlight:n}}const Xu="doxa-prayed-local";function hv(){try{const e=localStorage.getItem(Xu);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function mv(e){try{localStorage.setItem(Xu,JSON.stringify(e))}catch{}}function bv(e){if(!e)return;const t=hv();t[e]=Date.now(),mv(t);try{window.dispatchEvent(new CustomEvent("doxa:prayed-locally",{detail:{slug:e}}))}catch{}}const Qu=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"];function ed(e){const t=(e||"U")[0].toUpperCase(),o=t.charCodeAt(0)%Qu.length,n=Qu[o];return{letter:t,color:"#ffffff",backgroundColor:n}}function yv(e,t={}){const{size:o=32,borderRadius:n=4}=t,a=ed(e);return{width:`${o}px`,height:`${o}px`,borderRadius:`${n}px`,backgroundColor:a.backgroundColor,color:a.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"600",fontSize:`${Math.floor(o*.5)}px`,flexShrink:"0"}}const _v=".people-group-detail[data-v-8142ca9c]{display:flex;flex-direction:column;height:100%;overflow-y:auto}.detail-header[data-v-8142ca9c]{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:#fff;position:sticky;top:0;z-index:10}.header-left[data-v-8142ca9c]{display:flex;gap:12px;align-items:center;flex:1;min-width:0}.header-text[data-v-8142ca9c]{flex:1;min-width:0}.people-group-name[data-v-8142ca9c]{margin:0;font-size:18px;font-weight:700;color:#333;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text}.people-group-subtitle[data-v-8142ca9c]{margin:4px 0 0;font-size:13px;color:#666;line-height:1.2}.close-button[data-v-8142ca9c]{background:none;border:none;padding:4px;cursor:pointer;color:#666;transition:color .2s ease;flex-shrink:0}.close-button[data-v-8142ca9c]:hover{color:#333}.detail-content[data-v-8142ca9c]{padding:6px 12px 12px;flex:1;overflow-y:auto}.quick-stats[data-v-8142ca9c]{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.stat-item[data-v-8142ca9c]{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.stat-label[data-v-8142ca9c]{color:#666;font-weight:500}.stat-value[data-v-8142ca9c]{color:#333;font-weight:600;text-align:right}.action-buttons[data-v-8142ca9c]{display:flex;gap:8px;padding-top:12px;margin-bottom:10px;overflow-x:auto;padding-bottom:2px}.action-btn[data-v-8142ca9c]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.action-btn.primary[data-v-8142ca9c]{background:#92b195;color:#fff}.action-btn.primary[data-v-8142ca9c]:hover{background:#73a17f;box-shadow:0 2px 4px #92b1954d}.action-btn.secondary[data-v-8142ca9c]{background:#ecf0f1;color:#333}.action-btn.secondary[data-v-8142ca9c]:hover{background:#d5dbdb}.btn-icon[data-v-8142ca9c]{flex-shrink:0}.image-container[data-v-8142ca9c]{margin-bottom:16px;border-radius:8px;overflow:hidden;background:#f5f5f5}.image-container.position-above[data-v-8142ca9c]{width:120px;height:150px;margin:0 auto 16px}.image-container.position-inside[data-v-8142ca9c]{width:200px;height:250px;margin:0 auto 16px}.people-group-image[data-v-8142ca9c]{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease}.people-group-image.loaded[data-v-8142ca9c]{opacity:1}.image-placeholder-svg[data-v-8142ca9c]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f0f0f0;transition:opacity .3s ease}.image-placeholder-svg.hidden[data-v-8142ca9c]{opacity:0;pointer-events:none}.image-container[data-v-8142ca9c]{position:relative}.description-section[data-v-8142ca9c]{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0}.description-text[data-v-8142ca9c]{margin:0;font-size:14px;line-height:1.6;color:#555}.description-text.empty[data-v-8142ca9c]{color:#999;font-style:italic}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar{height:4px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.action-buttons[data-v-8142ca9c]::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width: 480px){.people-group-name[data-v-8142ca9c]{font-size:16px}.stat-item[data-v-8142ca9c]{font-size:13px}.action-btn[data-v-8142ca9c]{padding:8px 14px;font-size:13px}}",vv={key:0,class:"detail-header"},kv={class:"header-left"},wv={class:"header-text"},xv={class:"people-group-name"},Sv={class:"people-group-subtitle"},Av=["aria-label"],$v={class:"detail-content"},Lv={key:0,class:"pg-name-lead"},Cv={class:"action-buttons"},Tv={class:"quick-stats"},Ev={class:"stat-item"},Pv={class:"stat-label"},Mv={class:"stat-value"},Nv={class:"stat-item"},Iv={class:"stat-label"},Rv={class:"stat-value"},Fv={class:"stat-item"},Ov={class:"stat-label"},Dv={class:"stat-value"},Bv={class:"stat-item"},jv={class:"stat-label"},Gv={class:"stat-value"},Uv={class:"stat-item stat-committed"},Kv={class:"stat-label"},zv={class:"stat-value"},Hv={key:1,class:"image-container position-inside"},Vv=["src","alt"],Wv={key:2,class:"description-section"},Yv={key:0,class:"description-text"},Jv={key:1,class:"description-text empty"},td="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",od=bn({__name:"PeopleGroupDetail",props:{peopleGroup:{type:Object,required:!0},hideHeader:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},action:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)}},setup(e){const{t,locale:o}=kt();wt(` .people-group-detail{display:flex;flex-direction:column;height:100%;overflow-y:auto;} .people-group-detail.dark-mode{background:#1a1a2e;color:#eee;} .detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:white;position:sticky;top:0;z-index:10;} @@ -626,7 +625,7 @@ .dark-mode .description-text{color:#d1d5db;} .description-text.empty{color:#999;font-style:italic;} .dark-mode .description-text.empty{color:#6b7280;} -`,"legend-people-group-detail");const n=e,a=Ee("uiStore"),r=Ee("profileConfig",null),s=X(()=>a.legendState),i=X(()=>a.isMobile),l=X(()=>!i.value||s.value==="fullyOpen"),c=X(()=>Qu(n.peopleGroup.properties.name)),u=X(()=>c.value.letter),d=X(()=>gv(n.peopleGroup.properties.name,{size:32,borderRadius:4})),f=X(()=>n.peopleGroup.properties),k=ue(null),m=ue(!1),_=X(()=>f.value.slug||"");async function h(ne){if(!ne)return;const te=Iu();if(te)try{const ge=await fetch(`${te}/api/people-groups/detail/${encodeURIComponent(ne)}?lang=${encodeURIComponent(o.value)}`);if(!ge.ok)throw new Error(`HTTP ${ge.status}`);k.value=await ge.json()}catch{k.value=null}}rt(_,ne=>{m.value=!1,k.value=null,h(ne)},{immediate:!0});const x=X(()=>{var ne;return f.value.countryName||f.value.countryIsoLabel||f.value.country||f.value.countryIso||((ne=f.value._raw)==null?void 0:ne.Country)||""}),S=X(()=>{var ge;const ne=f.value.status||((ge=f.value._raw)==null?void 0:ge.Status),te=x.value||"Unknown";return ne?`${te} • ${ne}`:te}),b=X(()=>{var te;const ne=f.value.language||((te=f.value._raw)==null?void 0:te.Language);if(!ne)return"Unknown";if(typeof ne=="object"&&ne.label)return ne.label;if(typeof ne=="string"&&ne.startsWith("{"))try{const ge=JSON.parse(ne);if(ge!=null&&ge.label)return ge.label}catch{}return ne}),p=X(()=>{var ne;return f.value.population||((ne=f.value._raw)==null?void 0:ne.Population)||0}),v=X(()=>{var te,ge;const ne=[(te=k.value)==null?void 0:te.people_praying,f.value.peoplePraying,(ge=f.value._raw)==null?void 0:ge.people_praying];for(const Me of ne)if(Me!=null&&Me!=="")return Number(Me);return null}),C=X(()=>v.value===null?"—":v.value.toLocaleString()),A=X(()=>{var ne;return f.value.religionName||f.value.religionLabel||f.value.religion||((ne=f.value._raw)==null?void 0:ne.Religion)||""}),N=X(()=>{var ne,te,ge;return((ne=k.value)==null?void 0:ne.imb_people_description)||((te=k.value)==null?void 0:te.description)||f.value.description||((ge=f.value._raw)==null?void 0:ge.Description)||""}),M=X(()=>{var ne,te,ge;return((ne=k.value)==null?void 0:ne.image_url)||((te=k.value)==null?void 0:te.imageUrl)||f.value.imageUrl||((ge=f.value._raw)==null?void 0:ge.ImageURL)||ed}),V=X(()=>{const ne=parseInt(p.value);return ne>=1e6?`${(ne/1e6).toFixed(1)}M`:ne>=1e3?`${(ne/1e3).toFixed(1)}K`:ne.toLocaleString()});function G(){a.selectPeopleGroup(null)}function U(){var Me;let ne="";try{ne=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const te=(Me=r==null?void 0:r.value)==null?void 0:Me.utmSource,ge=typeof window<"u"&&window.DOXA_UTM_SOURCE||"";return encodeURIComponent(String(ne||te||ge||"agwm"))}function re(ne){return`https://pray.doxa.life/${encodeURIComponent(ne)}?source=doxalife&utm_source=${U()}`}function B(ne){return`${H()}/adopt/${encodeURIComponent(ne)}/?source=doxalife&utm_source=${U()}`}function H(){const ne=typeof window<"u"&&window.DOXA_SITE_URL||"";return String(ne||"https://doxa.life").replace(/\/+$/,"")}function L(ne){return`${H()}/research/${encodeURIComponent(ne)}/?utm_source=${U()}`}function K(){const ne=_.value;if(!ne)return;n.action!=="adopt"&&pv(ne);const te=n.action==="adopt"?B(ne):re(ne);window.open(te,"_blank","noopener")}function se(){const ne=_.value;ne&&window.open(L(ne),"_blank","noopener")}function ye(ne){ne.target.dataset.usedFallback||(ne.target.dataset.usedFallback="true",ne.target.src=ed)}return(ne,te)=>(z(),Q("div",{class:Le(["people-group-detail",{"dark-mode":e.dark}])},[e.hideHeader?me("",!0):(z(),Q("div",fv,[E("div",hv,[E("div",{class:"avatar",style:tt(d.value)},ce(u.value),5),E("div",mv,[E("h3",bv,ce(e.peopleGroup.properties.name),1),E("p",yv,ce(S.value),1)])]),E("button",{class:"close-button",onClick:G,"aria-label":be(t)("aria.closeDetailView")},[...te[1]||(te[1]=[E("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},[E("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,_v)])),E("div",vv,[e.hideHeader?(z(),Q("h3",kv,ce(e.peopleGroup.properties.name||be(t)("legend.header.peopleGroupFallback")),1)):me("",!0),E("div",wv,[e.action==="pray"||e.action==="adopt"?(z(),Q("button",{key:0,class:"action-btn primary",onClick:K},[te[2]||(te[2]=E("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[E("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),E("span",null,ce(e.action==="adopt"?be(t)("buttons.adoptThem"):be(t)("buttons.prayForThem")),1)])):me("",!0),E("button",{class:"action-btn secondary",onClick:se},[te[3]||(te[3]=E("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[E("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),E("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),E("span",null,ce(be(t)("buttons.moreInfo")),1)])]),E("div",xv,[E("div",Sv,[E("span",Av,ce(be(t)("detail.labels.country")),1),E("span",$v,ce(x.value||"—"),1)]),E("div",Lv,[E("span",Cv,ce(be(t)("detail.labels.population")),1),E("span",Tv,ce(V.value||"—"),1)]),E("div",Ev,[E("span",Pv,ce(be(t)("detail.labels.language")),1),E("span",Mv,ce(b.value||"—"),1)]),E("div",Nv,[E("span",Iv,ce(be(t)("detail.labels.religion")),1),E("span",Rv,ce(A.value||"—"),1)]),E("div",Fv,[E("span",Ov,ce(be(t)("detail.labels.peopleCommitted")),1),E("span",Dv,ce(C.value),1)])]),l.value?(z(),Q("div",Bv,[E("div",{class:Le(["image-placeholder-svg",{hidden:m.value}])},[...te[4]||(te[4]=[E("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 120",width:"80",height:"96","aria-hidden":"true"},[E("circle",{cx:"50",cy:"36",r:"22",fill:"#ccc"}),E("ellipse",{cx:"50",cy:"95",rx:"36",ry:"28",fill:"#ccc"})],-1)])],2),M.value?(z(),Q("img",{key:0,src:M.value,alt:`${e.peopleGroup.properties.name} people group`,class:Le(["people-group-image",{loaded:m.value}]),onLoad:te[0]||(te[0]=ge=>m.value=!0),onError:ye},null,42,jv)):me("",!0)])):me("",!0),l.value?(z(),Q("div",Gv,[N.value?(z(),Q("p",Uv,ce(N.value),1)):(z(),Q("p",Kv,ce(be(t)("detail.messages.noDescription")),1))])):me("",!0)])],2))}},[["__scopeId","data-v-8142ca9c"]]),Hv=Object.freeze(Object.defineProperty({__proto__:null,default:td},Symbol.toStringTag,{value:"Module"})),zv={class:"legend-sheet-root"},Vv=["src","alt"],Wv={key:0,class:"pull-tab-handle"},Yv=["aria-label"],Jv=["aria-label"],qv=["aria-label"],Zv={class:"collapsed-detail-title"},Xv={class:"legend-content"},Qv=["aria-label"],e1=["aria-label"],od=80,t1=48,o1=44,n1=24,nd="--legend-sheet-h",a1=bn({__name:"LegendMobile",props:{legendType:{type:String,required:!0},nodes:{type:Array,default:null},tabs:{type:Array,default:null},columnLabel:{type:String,default:null},title:{type:String,default:null},columns:{type:Array,default:null},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const{t}=kt();wt(` +`,"legend-people-group-detail");const n=e,a=Ee("uiStore"),r=Ee("profileConfig",null),s=X(()=>a.legendState),i=X(()=>a.isMobile),l=X(()=>!i.value||s.value==="fullyOpen"),c=X(()=>ed(n.peopleGroup.properties.name)),u=X(()=>c.value.letter),d=X(()=>yv(n.peopleGroup.properties.name,{size:32,borderRadius:4})),h=X(()=>n.peopleGroup.properties),v=ue(null),f=ue(!1),_=X(()=>h.value.slug||"");async function m(ne){if(!ne)return;const te=Ru();if(te)try{const ge=await fetch(`${te}/api/people-groups/detail/${encodeURIComponent(ne)}?lang=${encodeURIComponent(o.value)}`);if(!ge.ok)throw new Error(`HTTP ${ge.status}`);v.value=await ge.json()}catch{v.value=null}}rt(_,ne=>{f.value=!1,v.value=null,m(ne)},{immediate:!0});const x=X(()=>{var ne;return h.value.countryName||h.value.countryIsoLabel||h.value.country||h.value.countryIso||((ne=h.value._raw)==null?void 0:ne.Country)||""}),S=X(()=>{var ge;const ne=h.value.status||((ge=h.value._raw)==null?void 0:ge.Status),te=x.value||"Unknown";return ne?`${te} • ${ne}`:te}),k=X(()=>{var te;const ne=h.value.language||((te=h.value._raw)==null?void 0:te.Language);if(!ne)return"Unknown";if(typeof ne=="object"&&ne.label)return ne.label;if(typeof ne=="string"&&ne.startsWith("{"))try{const ge=JSON.parse(ne);if(ge!=null&&ge.label)return ge.label}catch{}return ne}),p=X(()=>{var ne;return h.value.population||((ne=h.value._raw)==null?void 0:ne.Population)||0}),b=X(()=>{var te,ge;const ne=[(te=v.value)==null?void 0:te.people_praying,h.value.peoplePraying,(ge=h.value._raw)==null?void 0:ge.people_praying];for(const Me of ne)if(Me!=null&&Me!=="")return Number(Me);return null}),$=X(()=>b.value===null?"—":b.value.toLocaleString()),A=X(()=>{var ne;return h.value.religionName||h.value.religionLabel||h.value.religion||((ne=h.value._raw)==null?void 0:ne.Religion)||""}),P=X(()=>{var ne,te,ge;return((ne=v.value)==null?void 0:ne.imb_people_description)||((te=v.value)==null?void 0:te.description)||h.value.description||((ge=h.value._raw)==null?void 0:ge.Description)||""}),N=X(()=>{var ne,te,ge;return((ne=v.value)==null?void 0:ne.image_url)||((te=v.value)==null?void 0:te.imageUrl)||h.value.imageUrl||((ge=h.value._raw)==null?void 0:ge.ImageURL)||td}),V=X(()=>{const ne=parseInt(p.value);return ne>=1e6?`${(ne/1e6).toFixed(1)}M`:ne>=1e3?`${(ne/1e3).toFixed(1)}K`:ne.toLocaleString()});function G(){a.selectPeopleGroup(null)}function U(){var Me;let ne="";try{ne=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const te=(Me=r==null?void 0:r.value)==null?void 0:Me.utmSource,ge=typeof window<"u"&&window.DOXA_UTM_SOURCE||"";return encodeURIComponent(String(ne||te||ge||"agwm"))}function re(ne){return`https://pray.doxa.life/${encodeURIComponent(ne)}?source=doxalife&utm_source=${U()}`}function B(ne){return`${z()}/adopt/${encodeURIComponent(ne)}/?source=doxalife&utm_source=${U()}`}function z(){const ne=typeof window<"u"&&window.DOXA_SITE_URL||"";return String(ne||"https://doxa.life").replace(/\/+$/,"")}function C(ne){return`${z()}/research/${encodeURIComponent(ne)}/?utm_source=${U()}`}function K(){const ne=_.value;if(!ne)return;n.action!=="adopt"&&bv(ne);const te=n.action==="adopt"?B(ne):re(ne);window.open(te,"_blank","noopener")}function se(){const ne=_.value;ne&&window.open(C(ne),"_blank","noopener")}function ye(ne){ne.target.dataset.usedFallback||(ne.target.dataset.usedFallback="true",ne.target.src=td)}return(ne,te)=>(H(),Q("div",{class:Le(["people-group-detail",{"dark-mode":e.dark}])},[e.hideHeader?me("",!0):(H(),Q("div",vv,[E("div",kv,[E("div",{class:"avatar",style:tt(d.value)},ce(u.value),5),E("div",wv,[E("h3",xv,ce(e.peopleGroup.properties.name),1),E("p",Sv,ce(S.value),1)])]),E("button",{class:"close-button",onClick:G,"aria-label":be(t)("aria.closeDetailView")},[...te[1]||(te[1]=[E("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},[E("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,Av)])),E("div",$v,[e.hideHeader?(H(),Q("h3",Lv,ce(e.peopleGroup.properties.name||be(t)("legend.header.peopleGroupFallback")),1)):me("",!0),E("div",Cv,[e.action==="pray"||e.action==="adopt"?(H(),Q("button",{key:0,class:"action-btn primary",onClick:K},[te[2]||(te[2]=E("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[E("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),E("span",null,ce(e.action==="adopt"?be(t)("buttons.adoptThem"):be(t)("buttons.prayForThem")),1)])):me("",!0),E("button",{class:"action-btn secondary",onClick:se},[te[3]||(te[3]=E("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[E("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),E("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),E("span",null,ce(be(t)("buttons.moreInfo")),1)])]),E("div",Tv,[E("div",Ev,[E("span",Pv,ce(be(t)("detail.labels.country")),1),E("span",Mv,ce(x.value||"—"),1)]),E("div",Nv,[E("span",Iv,ce(be(t)("detail.labels.population")),1),E("span",Rv,ce(V.value||"—"),1)]),E("div",Fv,[E("span",Ov,ce(be(t)("detail.labels.language")),1),E("span",Dv,ce(k.value||"—"),1)]),E("div",Bv,[E("span",jv,ce(be(t)("detail.labels.religion")),1),E("span",Gv,ce(A.value||"—"),1)]),E("div",Uv,[E("span",Kv,ce(be(t)("detail.labels.peopleCommitted")),1),E("span",zv,ce($.value),1)])]),l.value?(H(),Q("div",Hv,[E("div",{class:Le(["image-placeholder-svg",{hidden:f.value}])},[...te[4]||(te[4]=[E("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 120",width:"80",height:"96","aria-hidden":"true"},[E("circle",{cx:"50",cy:"36",r:"22",fill:"#ccc"}),E("ellipse",{cx:"50",cy:"95",rx:"36",ry:"28",fill:"#ccc"})],-1)])],2),N.value?(H(),Q("img",{key:0,src:N.value,alt:`${e.peopleGroup.properties.name} people group`,class:Le(["people-group-image",{loaded:f.value}]),onLoad:te[0]||(te[0]=ge=>f.value=!0),onError:ye},null,42,Vv)):me("",!0)])):me("",!0),l.value?(H(),Q("div",Wv,[P.value?(H(),Q("p",Yv,ce(P.value),1)):(H(),Q("p",Jv,ce(be(t)("detail.messages.noDescription")),1))])):me("",!0)])],2))}},[["styles",[_v]],["__scopeId","data-v-8142ca9c"]]),qv=Object.freeze(Object.defineProperty({__proto__:null,default:od},Symbol.toStringTag,{value:"Module"})),Zv="",Xv={class:"legend-sheet-root"},Qv=["src","alt"],e1={key:0,class:"pull-tab-handle"},t1=["aria-label"],o1=["aria-label"],n1=["aria-label"],a1={class:"collapsed-detail-title"},r1={class:"legend-content"},s1=["aria-label"],i1=["aria-label"],nd=80,l1=48,c1=44,u1=24,ad="--legend-sheet-h",d1=bn({__name:"LegendMobile",props:{legendType:{type:String,required:!0},nodes:{type:Array,default:null},tabs:{type:Array,default:null},columnLabel:{type:String,default:null},title:{type:String,default:null},columns:{type:Array,default:null},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const{t}=kt();wt(` .floating-mini-image{position:absolute;left:16px;bottom:calc(30% + 16px);z-index:999;pointer-events:auto;cursor:pointer;} .mini-image{width:120px;height:150px;object-fit:cover;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.25);display:block;} .legend-sheet-root{position:absolute;inset:0;pointer-events:none;overflow:hidden;} @@ -716,7 +715,7 @@ .sheet-dark .pull-tab-handle{background:rgba(243,243,241,0.3)!important;} .sheet-dark .legend-content{background:#3b463d!important;} .sheet-dark .legend-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);} -`,"legend-mobile-sheet");const o=e,n=Ee("uiStore");Ee("mapStore");const a=Ee("dataStore"),r=Ee("onSemanticTreeSelect",()=>{}),s=ip(o,"legendType"),{items:i,columns:l,title:c,activeFilter:u,setFilter:d,totalCount:f,totalPopulation:k,fmtPop:m,fmtCount:_}=_0(s,v0),h=Ee("normalizedPeopleGroups",null),x=X(()=>{var Y,g;if((Y=h==null?void 0:h.value)!=null&&Y.length)return h.value;const Z=[];for(const y in(a==null?void 0:a.sources)||{}){const R=a.sources[y];(g=R==null?void 0:R.features)!=null&&g.length&&Z.push(...R.features)}return Z}),S={get value(){return x.value}},{langTree:b}=Wu(S),{affinityTree:p}=Z0(S),{regionsTree:v}=cv(S),C=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor."},{id:"language",label:"Language",info:"A language is a system of communication used by a people."},{id:"dialect",label:"Dialect",info:"A dialect/variety is a regional or social form of a language."}],A=[{id:"bloc",label:"Block",info:"Affinity Block (rop1) — broadest grouping. 16 blocks total."},{id:"cluster",label:"Cluster",info:"Cluster (imb_reg_of_people_2, ROP 2) — finer grouping inside a block. 194 total."},{id:"group",label:"PG",info:"People Group (imb_reg_of_people_25, ROP 2.5) — abstract identity. 1,736 PGs."},{id:"pgic",label:"PGIC",info:"PG in Country (imb_reg_of_people_3 + country_code) — one row per PG-country pair. 2,106 rows."}],N=[{id:"region",label:"Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"Bloc",info:'WAGF bloc — organizational sub-grouping within each region (e.g. "South East Asia").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],M=X(()=>["prayer","engagement","adoption","religion"].includes(o.legendType));function V(Z){const Y=[];for(const g of Z){Y.push({id:g.key,label:g.label,color:g.color,count:g.count??0,pop:g.population??0,filter:g.filterKey?["==",["get","_flat_filter"],g.filterKey]:null,children:[]});for(const y of g.children||[])Y.push({id:y.key,label:y.label,color:y.color,count:y.count??0,pop:y.population??0,filter:y.filterKey?["==",["get","_flat_filter"],y.filterKey]:null,children:[]})}return Y}const G=X(()=>o.nodes?o.nodes:M.value?V(i.value):o.legendType==="affinity-block"?p.value:o.legendType==="doxa-regions"?v.value:b.value),U=X(()=>o.nodes?o.tabs:M.value?null:o.legendType==="affinity-block"?A:o.legendType==="doxa-regions"?N:C),re=X(()=>o.title?o.title:M.value?"Legend":o.legendType==="affinity-block"?"People Groups":o.legendType==="doxa-regions"?"WAGF Regions":"Languages"),B=X(()=>o.columnLabel!==null?o.columnLabel:o.legendType==="religion"?"UUPG Religions":o.legendType==="prayer"?"Prayer Status":o.legendType==="engagement"?"Engagement Status":o.legendType==="adoption"?"Adoption Status":M.value?"Status":""),H=ue(null),L=ue(!1),K={pending:null,active:!1,startY:0,startH:0,startState:"",containerH:0,maxH:0,lastH:0,contentEl:null};let se=0;const ye=()=>Date.now()-se<400,ne=X(()=>n.legendState),te=X(()=>n.legendHeight),ge=X(()=>n.caretRotation),Me=X(()=>n.showPullTab),We=X(()=>n.legendMode),Ze=X(()=>n.selectedPeopleGroup),Xe=X(()=>{var Z;return We.value==="detail"&&Ze.value?((Z=Ze.value.properties)==null?void 0:Z.name)||t("legend.header.peopleGroupFallback"):ne.value==="collapsed"?o.title||t("legend.header.collapsed"):o.title||c.value});function ot(Z){n.handleLegendItemClick(),d(Z)}function Qe(){ye()||n.toggleLegend()}function gt(){ye()||(n.selectPeopleGroup(null),n.openLegend())}const et=X(()=>{var Y;if(!Ze.value)return null;const Z=Ze.value.properties||{};return Z.imageUrl||((Y=Z._raw)==null?void 0:Y.ImageURL)||null});function xt(Z){var j;if(ne.value==="collapsed")return;const Y=Z.touches[0],g=H.value;if(!Y||!g)return;const R=Y.clientY-g.getBoundingClientRect().top<=o1?"grab":We.value==="detail"?"content":null;R&&(K.pending=R,K.active=!1,K.startY=Y.clientY,K.startH=g.offsetHeight,K.lastH=K.startH,K.startState=ne.value,K.containerH=((j=g.parentElement)==null?void 0:j.offsetHeight)||window.innerHeight,K.maxH=K.containerH-od,K.contentEl=g.querySelector(".legend-content"))}function $(Z){if(!K.pending&&!K.active)return;const Y=Z.touches[0];if(!Y)return;const g=K.startY-Y.clientY;if(!K.active){if(g===0)return;let R=K.pending==="grab";if(K.pending==="content"){const j=!K.contentEl||K.contentEl.scrollTop<=0;R=g>0?K.startH0?n.fullyOpenLegend():K.startState==="fullyOpen"?n.openLegend():n.collapseLegend()}function T(Z){Z==="fullyOpen"?n.fullyOpenLegend():Z==="collapsed"?n.collapseLegend():n.openLegend()}let O=null,W=null,q=null;return to(()=>{const Z=H.value;if(!Z||typeof ResizeObserver>"u")return;const Y=Z.getRootNode();W=Y instanceof ShadowRoot?Y.host:Y.documentElement||null,W&&(q=Z,O=new ResizeObserver(()=>{const g=Z.offsetHeight;g<=0||(W.style.setProperty(nd,`${g}px`),W.__legendSheetVarOwner=Z)}),O.observe(Z))}),To(()=>{O&&(O.disconnect(),O=null),W&&W.__legendSheetVarOwner===q&&(W.style.removeProperty(nd),W.__legendSheetVarOwner=null),W=null,q=null}),(Z,Y)=>{var g;return z(),Q("div",zv,[We.value==="detail"&&Ze.value&&ne.value==="open"&&et.value?(z(),Q("div",{key:0,class:"floating-mini-image",onClick:Y[0]||(Y[0]=y=>be(n).fullyOpenLegend())},[E("img",{src:et.value,alt:(g=Ze.value.properties)==null?void 0:g.name,class:"mini-image"},null,8,Vv)])):me("",!0),E("div",{ref_key:"sheetRef",ref:H,class:Le(["legend-mobile-sheet",[ne.value,{"sheet-dark":e.isDark,dragging:L.value}]]),style:tt({height:te.value,"--legend-sheet-top-reserve":od+"px"}),onTouchstart:xt,onTouchmove:$,onTouchend:P,onTouchcancel:P},[E("div",{class:"sheet-drag-strip",onClick:Qe},[Me.value?(z(),Q("div",Wv)):me("",!0)]),We.value==="detail"&&ne.value!=="collapsed"?(z(),Q("button",{key:0,class:"detail-collapse-btn-mobile",onClick:Ht(Qe,["stop"]),"aria-label":be(t)("aria.toggleLegend")},null,8,Yv)):me("",!0),We.value==="detail"&&ne.value!=="collapsed"?(z(),Q("button",{key:1,class:"detail-close-btn",onClick:Ht(gt,["stop"]),"aria-label":be(t)("aria.backToLegend")},[...Y[1]||(Y[1]=[E("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[E("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,Jv)):me("",!0),ne.value==="collapsed"&&We.value==="detail"&&Ze.value?(z(),Q("div",{key:2,class:"collapsed-detail-footer",onClick:Qe},[E("button",{class:"mobile-collapse-caret",style:tt({transform:`rotate(${ge.value}deg)`}),"aria-label":be(t)("aria.toggleLegend"),tabindex:"-1"},[...Y[2]||(Y[2]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,qv),E("span",Zv,ce(Xe.value),1)])):me("",!0),E("div",Xv,[We.value==="detail"&&Ze.value?(z(),Q(Ce,{key:0},[ne.value!=="collapsed"?(z(),st(td,{key:0,peopleGroup:Ze.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):me("",!0)],64)):e.legendType!=="default"?(z(),st(Cu,{key:1,nodes:G.value,tabs:U.value,title:Xe.value||re.value,hideTabs:e.nodes?!e.tabs:M.value,columnLabel:B.value,columns:e.columns||["count","pop"],onSelect:be(r)},{"title-caret":Bt(()=>[E("button",{class:"mobile-collapse-caret",style:tt({transform:`rotate(${ge.value}deg)`}),onClick:Ht(Qe,["stop"]),"aria-label":be(t)("aria.toggleLegend")},[...Y[3]||(Y[3]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,Qv)]),_:1},8,["nodes","tabs","title","hideTabs","columnLabel","columns","onSelect"])):(z(),st(F0,{key:2,title:Xe.value,items:be(i),columns:be(l),activeFilter:be(u),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:be(f),totalPopulation:be(k),fmtPop:be(m),fmtCount:be(_),onFilterClick:ot},{"title-caret":Bt(()=>[E("button",{class:"mobile-collapse-caret",style:tt({transform:`rotate(${ge.value}deg)`}),onClick:Ht(Qe,["stop"]),"aria-label":be(t)("aria.toggleLegend")},[...Y[4]||(Y[4]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,e1)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount"]))])],38)])}}},[["__scopeId","data-v-87b1df09"]]),r1={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=ue(null);return Ft("mapToolbar",{el:t}),wt(` +`,"legend-mobile-sheet");const o=e,n=Ee("uiStore");Ee("mapStore");const a=Ee("dataStore"),r=Ee("onSemanticTreeSelect",()=>{}),s=lp(o,"legendType"),{items:i,columns:l,title:c,activeFilter:u,setFilter:d,totalCount:h,totalPopulation:v,fmtPop:f,fmtCount:_}=x0(s,S0),m=Ee("normalizedPeopleGroups",null),x=X(()=>{var Y,g;if((Y=m==null?void 0:m.value)!=null&&Y.length)return m.value;const Z=[];for(const y in(a==null?void 0:a.sources)||{}){const R=a.sources[y];(g=R==null?void 0:R.features)!=null&&g.length&&Z.push(...R.features)}return Z}),S={get value(){return x.value}},{langTree:k}=Yu(S),{affinityTree:p}=ov(S),{regionsTree:b}=fv(S),$=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor."},{id:"language",label:"Language",info:"A language is a system of communication used by a people."},{id:"dialect",label:"Dialect",info:"A dialect/variety is a regional or social form of a language."}],A=[{id:"bloc",label:"Block",info:"Affinity Block (rop1) — broadest grouping. 16 blocks total."},{id:"cluster",label:"Cluster",info:"Cluster (imb_reg_of_people_2, ROP 2) — finer grouping inside a block. 194 total."},{id:"group",label:"PG",info:"People Group (imb_reg_of_people_25, ROP 2.5) — abstract identity. 1,736 PGs."},{id:"pgic",label:"PGIC",info:"PG in Country (imb_reg_of_people_3 + country_code) — one row per PG-country pair. 2,106 rows."}],P=[{id:"region",label:"Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"Bloc",info:'WAGF bloc — organizational sub-grouping within each region (e.g. "South East Asia").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],N=X(()=>["prayer","engagement","adoption","religion"].includes(o.legendType));function V(Z){const Y=[];for(const g of Z){Y.push({id:g.key,label:g.label,color:g.color,count:g.count??0,pop:g.population??0,filter:g.filterKey?["==",["get","_flat_filter"],g.filterKey]:null,children:[]});for(const y of g.children||[])Y.push({id:y.key,label:y.label,color:y.color,count:y.count??0,pop:y.population??0,filter:y.filterKey?["==",["get","_flat_filter"],y.filterKey]:null,children:[]})}return Y}const G=X(()=>o.nodes?o.nodes:N.value?V(i.value):o.legendType==="affinity-block"?p.value:o.legendType==="doxa-regions"?b.value:k.value),U=X(()=>o.nodes?o.tabs:N.value?null:o.legendType==="affinity-block"?A:o.legendType==="doxa-regions"?P:$),re=X(()=>o.title?o.title:N.value?"Legend":o.legendType==="affinity-block"?"People Groups":o.legendType==="doxa-regions"?"WAGF Regions":"Languages"),B=X(()=>o.columnLabel!==null?o.columnLabel:o.legendType==="religion"?"UUPG Religions":o.legendType==="prayer"?"Prayer Status":o.legendType==="engagement"?"Engagement Status":o.legendType==="adoption"?"Adoption Status":N.value?"Status":""),z=ue(null),C=ue(!1),K={pending:null,active:!1,startY:0,startH:0,startState:"",containerH:0,maxH:0,lastH:0,contentEl:null};let se=0;const ye=()=>Date.now()-se<400,ne=X(()=>n.legendState),te=X(()=>n.legendHeight),ge=X(()=>n.caretRotation),Me=X(()=>n.showPullTab),We=X(()=>n.legendMode),Ze=X(()=>n.selectedPeopleGroup),Xe=X(()=>{var Z;return We.value==="detail"&&Ze.value?((Z=Ze.value.properties)==null?void 0:Z.name)||t("legend.header.peopleGroupFallback"):ne.value==="collapsed"?o.title||t("legend.header.collapsed"):o.title||c.value});function ot(Z){n.handleLegendItemClick(),d(Z)}function Qe(){ye()||n.toggleLegend()}function gt(){ye()||(n.selectPeopleGroup(null),n.openLegend())}const et=X(()=>{var Y;if(!Ze.value)return null;const Z=Ze.value.properties||{};return Z.imageUrl||((Y=Z._raw)==null?void 0:Y.ImageURL)||null});function xt(Z){var j;if(ne.value==="collapsed")return;const Y=Z.touches[0],g=z.value;if(!Y||!g)return;const R=Y.clientY-g.getBoundingClientRect().top<=c1?"grab":We.value==="detail"?"content":null;R&&(K.pending=R,K.active=!1,K.startY=Y.clientY,K.startH=g.offsetHeight,K.lastH=K.startH,K.startState=ne.value,K.containerH=((j=g.parentElement)==null?void 0:j.offsetHeight)||window.innerHeight,K.maxH=K.containerH-nd,K.contentEl=g.querySelector(".legend-content"))}function L(Z){if(!K.pending&&!K.active)return;const Y=Z.touches[0];if(!Y)return;const g=K.startY-Y.clientY;if(!K.active){if(g===0)return;let R=K.pending==="grab";if(K.pending==="content"){const j=!K.contentEl||K.contentEl.scrollTop<=0;R=g>0?K.startH0?n.fullyOpenLegend():K.startState==="fullyOpen"?n.openLegend():n.collapseLegend()}function T(Z){Z==="fullyOpen"?n.fullyOpenLegend():Z==="collapsed"?n.collapseLegend():n.openLegend()}let O=null,W=null,q=null;return to(()=>{const Z=z.value;if(!Z||typeof ResizeObserver>"u")return;const Y=Z.getRootNode();W=Y instanceof ShadowRoot?Y.host:Y.documentElement||null,W&&(q=Z,O=new ResizeObserver(()=>{const g=Z.offsetHeight;g<=0||(W.style.setProperty(ad,`${g}px`),W.__legendSheetVarOwner=Z)}),O.observe(Z))}),To(()=>{O&&(O.disconnect(),O=null),W&&W.__legendSheetVarOwner===q&&(W.style.removeProperty(ad),W.__legendSheetVarOwner=null),W=null,q=null}),(Z,Y)=>{var g;return H(),Q("div",Xv,[We.value==="detail"&&Ze.value&&ne.value==="open"&&et.value?(H(),Q("div",{key:0,class:"floating-mini-image",onClick:Y[0]||(Y[0]=y=>be(n).fullyOpenLegend())},[E("img",{src:et.value,alt:(g=Ze.value.properties)==null?void 0:g.name,class:"mini-image"},null,8,Qv)])):me("",!0),E("div",{ref_key:"sheetRef",ref:z,class:Le(["legend-mobile-sheet",[ne.value,{"sheet-dark":e.isDark,dragging:C.value}]]),style:tt({height:te.value,"--legend-sheet-top-reserve":nd+"px"}),onTouchstart:xt,onTouchmove:L,onTouchend:M,onTouchcancel:M},[E("div",{class:"sheet-drag-strip",onClick:Qe},[Me.value?(H(),Q("div",e1)):me("",!0)]),We.value==="detail"&&ne.value!=="collapsed"?(H(),Q("button",{key:0,class:"detail-collapse-btn-mobile",onClick:Dt(Qe,["stop"]),"aria-label":be(t)("aria.toggleLegend")},null,8,t1)):me("",!0),We.value==="detail"&&ne.value!=="collapsed"?(H(),Q("button",{key:1,class:"detail-close-btn",onClick:Dt(gt,["stop"]),"aria-label":be(t)("aria.backToLegend")},[...Y[1]||(Y[1]=[E("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[E("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,o1)):me("",!0),ne.value==="collapsed"&&We.value==="detail"&&Ze.value?(H(),Q("div",{key:2,class:"collapsed-detail-footer",onClick:Qe},[E("button",{class:"mobile-collapse-caret",style:tt({transform:`rotate(${ge.value}deg)`}),"aria-label":be(t)("aria.toggleLegend"),tabindex:"-1"},[...Y[2]||(Y[2]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,n1),E("span",a1,ce(Xe.value),1)])):me("",!0),E("div",r1,[We.value==="detail"&&Ze.value?(H(),Q(Ce,{key:0},[ne.value!=="collapsed"?(H(),st(od,{key:0,peopleGroup:Ze.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):me("",!0)],64)):e.legendType!=="default"?(H(),st(Tu,{key:1,nodes:G.value,tabs:U.value,title:Xe.value||re.value,hideTabs:e.nodes?!e.tabs:N.value,columnLabel:B.value,columns:e.columns||["count","pop"],onSelect:be(r)},{"title-caret":jt(()=>[E("button",{class:"mobile-collapse-caret",style:tt({transform:`rotate(${ge.value}deg)`}),onClick:Dt(Qe,["stop"]),"aria-label":be(t)("aria.toggleLegend")},[...Y[3]||(Y[3]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,s1)]),_:1},8,["nodes","tabs","title","hideTabs","columnLabel","columns","onSelect"])):(H(),st(G0,{key:2,title:Xe.value,items:be(i),columns:be(l),activeFilter:be(u),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:be(h),totalPopulation:be(v),fmtPop:be(f),fmtCount:be(_),onFilterClick:ot},{"title-caret":jt(()=>[E("button",{class:"mobile-collapse-caret",style:tt({transform:`rotate(${ge.value}deg)`}),onClick:Dt(Qe,["stop"]),"aria-label":be(t)("aria.toggleLegend")},[...Y[4]||(Y[4]=[E("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[E("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,i1)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount"]))])],38)])}}},[["styles",[Zv]],["__scopeId","data-v-87b1df09"]]),p1={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=ue(null);return Ft("mapToolbar",{el:t}),wt(` .map-toolbar { position: absolute; top: 6px; @@ -733,7 +732,7 @@ .map-toolbar { top: 72px; gap: 6px; } .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } } -`,"map-toolbar"),(o,n)=>(z(),Q("div",{ref_key:"toolbarEl",ref:t,class:Le(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[sn(o.$slots,"default")],2))}},s1=["title","disabled"],qo={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return wt(` +`,"map-toolbar"),(o,n)=>(H(),Q("div",{ref_key:"toolbarEl",ref:t,class:Le(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[sn(o.$slots,"default")],2))}},g1=["title","disabled"],qo={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return wt(` .mcb{ width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); background:#fff; @@ -757,7 +756,7 @@ .mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);} .mcb.dark.active{background:#4e594f;color:#92b195;} @media(max-width:767px){.mcb{width:36px;height:36px;}} -`,"map-control-button"),(t,o)=>(z(),Q("button",{class:Le(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[sn(t.$slots,"default")],10,s1))}},i1={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=kt(),o=e;function n(){var a;(a=o.map)==null||a.zoomIn()}return(a,r)=>(z(),st(qo,{"is-dark":e.isDark,title:be(t)("buttons.zoomIn"),onClick:n},{default:Bt(()=>[...r[0]||(r[0]=[E("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","title"]))}},l1={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=kt(),o=e;function n(){var a;(a=o.map)==null||a.zoomOut()}return(a,r)=>(z(),st(qo,{"is-dark":e.isDark,title:be(t)("buttons.zoomOut"),onClick:n},{default:Bt(()=>[...r[0]||(r[0]=[E("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","title"]))}},c1={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=kt(),o=e;function n(){var r;(r=o.map)==null||r.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:s,latitude:i}=r.coords;Number.isFinite(s)&&Number.isFinite(i)?o.map.flyTo({center:[s,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,s)=>(z(),st(qo,{"is-dark":e.isDark,title:be(t)("buttons.resetView"),onClick:a},{default:Bt(()=>[...s[0]||(s[0]=[E("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[E("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},u1={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},d1={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},p1={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=kt(),n=e,a=t,r=ue(!1);let s=null,i=null,l=null,c=null,u=null,d=null,f=null,k=null,m=null,_=null,h=null,x=0,S=0,b=null,p=null;function v(){if(typeof document>"u")return!1;const H=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(H)||H.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function C(){var H,L,K;return((K=(L=(H=n.mapContainer)==null?void 0:H.getRootNode)==null?void 0:L.call(H))==null?void 0:K.host)??null}function A(){var L,K;const H=(K=(L=n.mapContainer)==null?void 0:L.getRootNode)==null?void 0:K.call(L);return document.fullscreenElement||document.webkitFullscreenElement||(H&&H instanceof ShadowRoot?H.fullscreenElement:null)||null}function N(H){const L=H.requestFullscreen||H.webkitRequestFullscreen;if(!L)return Promise.reject(new Error("Fullscreen API unavailable"));const K=L.call(H);return K&&typeof K.then=="function"?K:Promise.resolve()}function M(){const H=document.exitFullscreen||document.webkitExitFullscreen;if(!H)return Promise.reject(new Error("Fullscreen API unavailable"));const L=H.call(document);return L&&typeof L.then=="function"?L:Promise.resolve()}function V(){const H=C();if(!H)return!1;if(l=H,i=H.style.cssText,H.style.position="fixed",H.style.top="0",H.style.left="0",H.style.right="0",H.style.bottom="0",H.style.width="100vw",H.style.height="100vh",H.style.height="100dvh",H.style.zIndex="2147483647",H.style.margin="0",H.style.borderRadius="0",H.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){x=window.scrollY||window.pageYOffset||0,S=window.scrollX||window.pageXOffset||0;const L=document.body,K=document.documentElement;c=L?L.style.overflow:null,u=K?K.style.overflow:null,d=L?L.style.position:null,f=L?L.style.top:null,k=L?L.style.left:null,m=L?L.style.width:null,_=L?L.style.touchAction:null,h=K?K.style.touchAction:null,K&&(K.style.overflow="hidden",K.style.touchAction="none"),L&&(L.style.overflow="hidden",L.style.position="fixed",L.style.top=`-${x}px`,L.style.left=`-${S}px`,L.style.width="100%",L.style.touchAction="none"),b=se=>{if(!l)return;const ye=se.target;ye&&(ye===l||l.contains&&l.contains(ye))||se.cancelable&&se.preventDefault()},p=se=>{if(!l)return;const ye=se.target;ye&&(ye===l||l.contains&&l.contains(ye))||se.cancelable&&se.preventDefault()},document.addEventListener("touchmove",b,{passive:!1,capture:!0}),document.addEventListener("wheel",p,{passive:!1,capture:!0})}return!0}function G(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const H=document.body,L=document.documentElement;H&&(H.style.overflow=c??"",H.style.position=d??"",H.style.top=f??"",H.style.left=k??"",H.style.width=m??"",H.style.touchAction=_??""),L&&(L.style.overflow=u??"",L.style.touchAction=h??""),b&&(document.removeEventListener("touchmove",b,{capture:!0}),b=null),p&&(document.removeEventListener("wheel",p,{capture:!0}),p=null),typeof window<"u"&&(x||S)&&window.scrollTo(S,x)}c=null,u=null,d=null,f=null,k=null,m=null,_=null,h=null,x=0,S=0}}function U(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function re(){if(!v()){r.value?(G(),r.value=!1,a("change",!1)):V()&&(r.value=!0,a("change",!0)),U();return}if(A())M().then(()=>{r.value=!1,a("change",!1)}).catch(()=>{});else{const L=C()??document.documentElement;N(L).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{N(document.documentElement).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{})})}}function B(){r.value=!!A(),a("change",r.value)}return to(()=>{var L,K;document.addEventListener("fullscreenchange",B),document.addEventListener("webkitfullscreenchange",B);const H=(K=(L=n.mapContainer)==null?void 0:L.getRootNode)==null?void 0:K.call(L);H instanceof ShadowRoot&&(s=H,H.addEventListener("fullscreenchange",B),H.addEventListener("webkitfullscreenchange",B))}),To(()=>{document.removeEventListener("fullscreenchange",B),document.removeEventListener("webkitfullscreenchange",B),s&&(s.removeEventListener("fullscreenchange",B),s.removeEventListener("webkitfullscreenchange",B),s=null),l&&G()}),(H,L)=>(z(),st(qo,{"is-dark":e.isDark,active:r.value,title:be(o)("buttons.toggleFullscreen"),onClick:re},{default:Bt(()=>[r.value?(z(),Q("svg",d1,[...L[1]||(L[1]=[E("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(z(),Q("svg",u1,[...L[0]||(L[0]=[E("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},g1={style:{"font-size":"16px","line-height":"1"}},f1={__name:"ThemeToggleButton",props:{isDark:{type:Boolean,default:!1}},emits:["toggle"],setup(e){const{t}=kt();return(o,n)=>be(hy)?(z(),st(qo,{key:0,"is-dark":e.isDark,title:e.isDark?be(t)("buttons.switchToLightMode"):be(t)("buttons.switchToDarkMode"),onClick:n[0]||(n[0]=a=>o.$emit("toggle"))},{default:Bt(()=>[E("span",g1,ce(e.isDark?"☀️":"🌙"),1)]),_:1},8,["is-dark","title"])):me("",!0)}},h1=Zo&&Zo.tagName.toUpperCase()==="SCRIPT"&&Zo.src||new URL("my-upg-100-list.js",document.baseURI).href,Vs=e=>String(e||"").trim().replace(/\/+$/,"");function m1(){try{const t=String(h1||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function b1(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Vs(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Vs(o)}return Vs(m1()||"")}function y1({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=b1(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const _1=["aria-label"],v1={class:"mcm-header"},k1={class:"mcm-title"},w1={class:"mcm-body"},x1=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",Ws="doxa-map-menu-open",S1={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){wt(` +`,"map-control-button"),(t,o)=>(H(),Q("button",{class:Le(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[sn(t.$slots,"default")],10,g1))}},f1={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=kt(),o=e;function n(){var a;(a=o.map)==null||a.zoomIn()}return(a,r)=>(H(),st(qo,{"is-dark":e.isDark,title:be(t)("buttons.zoomIn"),onClick:n},{default:jt(()=>[...r[0]||(r[0]=[E("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","title"]))}},h1={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1}},setup(e){const{t}=kt(),o=e;function n(){var a;(a=o.map)==null||a.zoomOut()}return(a,r)=>(H(),st(qo,{"is-dark":e.isDark,title:be(t)("buttons.zoomOut"),onClick:n},{default:jt(()=>[...r[0]||(r[0]=[E("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","title"]))}},m1={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=kt(),o=e;function n(){var r;(r=o.map)==null||r.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:s,latitude:i}=r.coords;Number.isFinite(s)&&Number.isFinite(i)?o.map.flyTo({center:[s,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,s)=>(H(),st(qo,{"is-dark":e.isDark,title:be(t)("buttons.resetView"),onClick:a},{default:jt(()=>[...s[0]||(s[0]=[E("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[E("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},b1={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},y1={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},_1={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=kt(),n=e,a=t,r=ue(!1);let s=null,i=null,l=null,c=null,u=null,d=null,h=null,v=null,f=null,_=null,m=null,x=0,S=0,k=null,p=null;function b(){if(typeof document>"u")return!1;const z=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(z)||z.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function $(){var z,C,K;return((K=(C=(z=n.mapContainer)==null?void 0:z.getRootNode)==null?void 0:C.call(z))==null?void 0:K.host)??null}function A(){var C,K;const z=(K=(C=n.mapContainer)==null?void 0:C.getRootNode)==null?void 0:K.call(C);return document.fullscreenElement||document.webkitFullscreenElement||(z&&z instanceof ShadowRoot?z.fullscreenElement:null)||null}function P(z){const C=z.requestFullscreen||z.webkitRequestFullscreen;if(!C)return Promise.reject(new Error("Fullscreen API unavailable"));const K=C.call(z);return K&&typeof K.then=="function"?K:Promise.resolve()}function N(){const z=document.exitFullscreen||document.webkitExitFullscreen;if(!z)return Promise.reject(new Error("Fullscreen API unavailable"));const C=z.call(document);return C&&typeof C.then=="function"?C:Promise.resolve()}function V(){const z=$();if(!z)return!1;if(l=z,i=z.style.cssText,z.style.position="fixed",z.style.top="0",z.style.left="0",z.style.right="0",z.style.bottom="0",z.style.width="100vw",z.style.height="100vh",z.style.height="100dvh",z.style.zIndex="2147483647",z.style.margin="0",z.style.borderRadius="0",z.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){x=window.scrollY||window.pageYOffset||0,S=window.scrollX||window.pageXOffset||0;const C=document.body,K=document.documentElement;c=C?C.style.overflow:null,u=K?K.style.overflow:null,d=C?C.style.position:null,h=C?C.style.top:null,v=C?C.style.left:null,f=C?C.style.width:null,_=C?C.style.touchAction:null,m=K?K.style.touchAction:null,K&&(K.style.overflow="hidden",K.style.touchAction="none"),C&&(C.style.overflow="hidden",C.style.position="fixed",C.style.top=`-${x}px`,C.style.left=`-${S}px`,C.style.width="100%",C.style.touchAction="none"),k=se=>{if(!l)return;const ye=se.target;ye&&(ye===l||l.contains&&l.contains(ye))||se.cancelable&&se.preventDefault()},p=se=>{if(!l)return;const ye=se.target;ye&&(ye===l||l.contains&&l.contains(ye))||se.cancelable&&se.preventDefault()},document.addEventListener("touchmove",k,{passive:!1,capture:!0}),document.addEventListener("wheel",p,{passive:!1,capture:!0})}return!0}function G(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const z=document.body,C=document.documentElement;z&&(z.style.overflow=c??"",z.style.position=d??"",z.style.top=h??"",z.style.left=v??"",z.style.width=f??"",z.style.touchAction=_??""),C&&(C.style.overflow=u??"",C.style.touchAction=m??""),k&&(document.removeEventListener("touchmove",k,{capture:!0}),k=null),p&&(document.removeEventListener("wheel",p,{capture:!0}),p=null),typeof window<"u"&&(x||S)&&window.scrollTo(S,x)}c=null,u=null,d=null,h=null,v=null,f=null,_=null,m=null,x=0,S=0}}function U(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function re(){if(!b()){r.value?(G(),r.value=!1,a("change",!1)):V()&&(r.value=!0,a("change",!0)),U();return}if(A())N().then(()=>{r.value=!1,a("change",!1)}).catch(()=>{});else{const C=$()??document.documentElement;P(C).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{P(document.documentElement).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{})})}}function B(){r.value=!!A(),a("change",r.value)}return to(()=>{var C,K;document.addEventListener("fullscreenchange",B),document.addEventListener("webkitfullscreenchange",B);const z=(K=(C=n.mapContainer)==null?void 0:C.getRootNode)==null?void 0:K.call(C);z instanceof ShadowRoot&&(s=z,z.addEventListener("fullscreenchange",B),z.addEventListener("webkitfullscreenchange",B))}),To(()=>{document.removeEventListener("fullscreenchange",B),document.removeEventListener("webkitfullscreenchange",B),s&&(s.removeEventListener("fullscreenchange",B),s.removeEventListener("webkitfullscreenchange",B),s=null),l&&G()}),(z,C)=>(H(),st(qo,{"is-dark":e.isDark,active:r.value,title:be(o)("buttons.toggleFullscreen"),onClick:re},{default:jt(()=>[r.value?(H(),Q("svg",y1,[...C[1]||(C[1]=[E("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(H(),Q("svg",b1,[...C[0]||(C[0]=[E("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},v1={style:{"font-size":"16px","line-height":"1"}},k1={__name:"ThemeToggleButton",props:{isDark:{type:Boolean,default:!1}},emits:["toggle"],setup(e){const{t}=kt();return(o,n)=>be(hy)?(H(),st(qo,{key:0,"is-dark":e.isDark,title:e.isDark?be(t)("buttons.switchToLightMode"):be(t)("buttons.switchToDarkMode"),onClick:n[0]||(n[0]=a=>o.$emit("toggle"))},{default:jt(()=>[E("span",v1,ce(e.isDark?"☀️":"🌙"),1)]),_:1},8,["is-dark","title"])):me("",!0)}},w1=Zo&&Zo.tagName.toUpperCase()==="SCRIPT"&&Zo.src||new URL("my-upg-100-list.js",document.baseURI).href,Ws=e=>String(e||"").trim().replace(/\/+$/,"");function x1(){try{const t=String(w1||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function S1(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Ws(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Ws(o)}return Ws(x1()||"")}function A1({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=S1(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const $1=["aria-label"],L1={class:"mcm-header"},C1={class:"mcm-title"},T1={class:"mcm-body"},E1=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",Ys="doxa-map-menu-open",P1={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){wt(` .mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box; background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45); color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px; @@ -773,7 +772,7 @@ .mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} .mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} .mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;} -`,"map-control-menu");const o=e,n=t,a=Ee("mapToolbar",null),r=ue(null),s=ue(null),i=ue({});function l(){var N;const k=(N=a==null?void 0:a.el)==null?void 0:N.value,m=r.value;if(!k||!m){i.value={};return}const _=m.getBoundingClientRect(),h=k.getBoundingClientRect(),x=(h.left+h.right)/2>(_.left+_.right)/2,S=8,b=12,p=x?_.right-h.left+S:h.right-_.left+S,v=Math.max(200,Math.min(o.width,_.width-p-b)),C=Math.max(0,h.top-_.top);let A=Math.max(120,_.height-C-b);o.matchToolbar&&(A=Math.max(120,Math.min(A,h.height))),o.maxHeight&&(A=Math.min(A,o.maxHeight)),i.value={top:`${Math.round(C)}px`,[x?"right":"left"]:`${Math.round(p)}px`,width:`${Math.round(v)}px`,maxHeight:`${Math.round(A)}px`,...o.height?{height:`${Math.round(Math.min(o.height,A))}px`}:{}}}function c(k){o.open&&k.detail!==s.value&&n("close")}rt(()=>o.open,async k=>{var m;if(k){await Lo(),l();try{(m=r.value)==null||m.dispatchEvent(new CustomEvent(Ws,{detail:s.value}))}catch{}}});function u(){o.open&&l()}function d(k){k.key==="Escape"&&o.open&&n("close")}function f(k){var _;if(!o.open)return;const m=k.composedPath?k.composedPath():[k.target];s.value&&m.includes(s.value)||(_=a==null?void 0:a.el)!=null&&_.value&&m.includes(a.el.value)||m.some(h=>{var x,S,b,p;return((S=(x=h==null?void 0:h.classList)==null?void 0:x.contains)==null?void 0:S.call(x,"mapboxgl-canvas"))||((p=(b=h==null?void 0:h.classList)==null?void 0:b.contains)==null?void 0:p.call(b,"maplibregl-canvas"))})&&n("close")}return to(()=>{var k,m,_;r.value=((m=(k=a==null?void 0:a.el)==null?void 0:k.value)==null?void 0:m.closest(x1))||null,(_=r.value)==null||_.addEventListener(Ws,c),window.addEventListener("resize",u),document.addEventListener("click",f,!0),document.addEventListener("keydown",d)}),To(()=>{var k;(k=r.value)==null||k.removeEventListener(Ws,c),window.removeEventListener("resize",u),document.removeEventListener("click",f,!0),document.removeEventListener("keydown",d)}),(k,m)=>(z(),st(Cp,{to:r.value,disabled:!r.value},[e.open?(z(),Q("div",{key:0,ref_key:"el",ref:s,class:Le(["mcm",{light:!e.isDark}]),style:tt(i.value),role:"dialog","aria-label":e.title},[E("div",v1,[E("span",k1,ce(e.title),1),E("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:m[0]||(m[0]=_=>n("close"))},[...m[1]||(m[1]=[E("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[E("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),E("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),E("div",w1,[sn(k.$slots,"default")])],14,_1)):me("",!0)],8,["to","disabled"]))}},A1={class:"share-steps"},$1={class:"share-tabs"},L1={key:0,class:"share-body"},C1={class:"share-url-box"},T1={class:"share-url-text"},E1={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},P1={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},M1={key:1,class:"share-body"},N1={class:"share-size-pills"},I1=["onClick"],R1={class:"share-code-box"},F1={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},O1={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},ad={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){wt(` +`,"map-control-menu");const o=e,n=t,a=Ee("mapToolbar",null),r=ue(null),s=ue(null),i=ue({});function l(){var P;const v=(P=a==null?void 0:a.el)==null?void 0:P.value,f=r.value;if(!v||!f){i.value={};return}const _=f.getBoundingClientRect(),m=v.getBoundingClientRect(),x=(m.left+m.right)/2>(_.left+_.right)/2,S=8,k=12,p=x?_.right-m.left+S:m.right-_.left+S,b=Math.max(200,Math.min(o.width,_.width-p-k)),$=Math.max(0,m.top-_.top);let A=Math.max(120,_.height-$-k);o.matchToolbar&&(A=Math.max(120,Math.min(A,m.height))),o.maxHeight&&(A=Math.min(A,o.maxHeight)),i.value={top:`${Math.round($)}px`,[x?"right":"left"]:`${Math.round(p)}px`,width:`${Math.round(b)}px`,maxHeight:`${Math.round(A)}px`,...o.height?{height:`${Math.round(Math.min(o.height,A))}px`}:{}}}function c(v){o.open&&v.detail!==s.value&&n("close")}rt(()=>o.open,async v=>{var f;if(v){await Lo(),l();try{(f=r.value)==null||f.dispatchEvent(new CustomEvent(Ys,{detail:s.value}))}catch{}}});function u(){o.open&&l()}function d(v){v.key==="Escape"&&o.open&&n("close")}function h(v){var _;if(!o.open)return;const f=v.composedPath?v.composedPath():[v.target];s.value&&f.includes(s.value)||(_=a==null?void 0:a.el)!=null&&_.value&&f.includes(a.el.value)||f.some(m=>{var x,S,k,p;return((S=(x=m==null?void 0:m.classList)==null?void 0:x.contains)==null?void 0:S.call(x,"mapboxgl-canvas"))||((p=(k=m==null?void 0:m.classList)==null?void 0:k.contains)==null?void 0:p.call(k,"maplibregl-canvas"))})&&n("close")}return to(()=>{var v,f,_;r.value=((f=(v=a==null?void 0:a.el)==null?void 0:v.value)==null?void 0:f.closest(E1))||null,(_=r.value)==null||_.addEventListener(Ys,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",d)}),To(()=>{var v;(v=r.value)==null||v.removeEventListener(Ys,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",d)}),(v,f)=>(H(),st(Tp,{to:r.value,disabled:!r.value},[e.open?(H(),Q("div",{key:0,ref_key:"el",ref:s,class:Le(["mcm",{light:!e.isDark}]),style:tt(i.value),role:"dialog","aria-label":e.title},[E("div",L1,[E("span",C1,ce(e.title),1),E("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:f[0]||(f[0]=_=>n("close"))},[...f[1]||(f[1]=[E("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[E("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),E("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),E("div",T1,[sn(v.$slots,"default")])],14,$1)):me("",!0)],8,["to","disabled"]))}},M1={class:"share-steps"},N1={class:"share-tabs"},I1={key:0,class:"share-body"},R1={class:"share-url-box"},F1={class:"share-url-text"},O1={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},D1={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},B1={key:1,class:"share-body"},j1={class:"share-size-pills"},G1=["onClick"],U1={class:"share-code-box"},K1={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},z1={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},rd={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){wt(` .share-wrap{position:relative;display:inline-block;border-radius:50%;} .share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none; background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b); @@ -1026,10 +1025,10 @@ border-color:rgba(46,164,79,0.30); color:#2ea44f; } -`,"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),d=ue(!1),f=ue("medium"),k={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},m=Ee("profileConfig",null),_=X(()=>y1({embedPath:a.embedPath,profileConfig:be(m)||null})),h=X(()=>{const C=k[f.value].height;return''});function x(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,d.value=!1)}function S(){s.value=!1}async function b(C){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(C),!0}catch{}try{const A=document.createElement("textarea");A.value=C,A.setAttribute("readonly",""),A.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(A),A.select();const N=document.execCommand("copy");return document.body.removeChild(A),N}catch{return!1}}async function p(){await b(_.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function v(){await b(h.value)&&(d.value=!0,setTimeout(()=>{d.value=!1},2e3))}return(C,A)=>(z(),Q("div",{ref_key:"rootEl",ref:r,class:"share-wrap"},[je(qo,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:be(t)("buttons.share"),onClick:x},{default:Bt(()=>[...A[2]||(A[2]=[E("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"},[E("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),E("polyline",{points:"16 6 12 2 8 6"}),E("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),je(S1,{open:s.value,title:be(t)("buttons.share"),"is-dark":e.isDark,onClose:S},{default:Bt(()=>[E("div",{ref_key:"popoverEl",ref:i,class:Le(["share-pop",{light:!e.isDark}])},[E("ul",A1,[(z(!0),Q(Ce,null,At(be(o)("buttons.shareSteps"),(N,M)=>(z(),Q("li",{key:M},ce(be(n)(N)),1))),128))]),E("div",$1,[E("button",{class:Le(["share-tab",{active:c.value==="link"}]),onClick:A[0]||(A[0]=N=>c.value="link")},"Embed link",2),E("button",{class:Le(["share-tab",{active:c.value==="embed"}]),onClick:A[1]||(A[1]=N=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(z(),Q("div",L1,[E("div",C1,[E("div",T1,ce(_.value),1)]),E("button",{class:Le(["share-primary-btn",{copied:u.value}]),onClick:p},[u.value?(z(),Q("svg",P1,[...A[4]||(A[4]=[E("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(z(),Q("svg",E1,[...A[3]||(A[3]=[E("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),E("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(" "+ce(u.value?"Copied!":"Copy Link"),1)],2)])):me("",!0),c.value==="embed"?(z(),Q("div",M1,[A[7]||(A[7]=E("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),E("div",N1,[(z(),Q(Ce,null,At(k,(N,M)=>E("button",{key:M,class:Le(["share-size-pill",{active:f.value===M}]),onClick:V=>f.value=M},ce(N.label),11,I1)),64))]),E("div",R1,ce(h.value),1),E("button",{class:Le(["share-secondary-btn",{copied:d.value}]),onClick:v},[d.value?(z(),Q("svg",O1,[...A[6]||(A[6]=[E("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(z(),Q("svg",F1,[...A[5]||(A[5]=[E("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),E("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(" "+ce(d.value?"Copied!":"Copy Code"),1)],2)])):me("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},D1=["blocs","clusters","peopleGroups","families","languages","dialects","people","places","regions","wagfBlocks","religions"],B1={"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 j1(e){return B1[e]||D1}const G1={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"],U1={regions:[...ur,"regions","wagfBlocks"],"people-groups":[...ur,"blocs","clusters"],language:[...ur,"dialects","families"],religion:[...ur]},K1=100,H1=50,z1=25,V1=10,Ys=5,rd=20,W1=[[/ sign language$/i,"Sign Language"]];function Y1(e){if(!e||typeof e!="string")return"";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function J1(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function q1(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($t[n])return $t[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if($t[a])return $t[a]}}if($t[e])return $t[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();if(o!==e&&$t[o])return $t[o];for(const[n,a]of W1)if(n.test(e))return a;return null}function sd(e,t){return{id:`doxa-section-header-${Js(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 Js(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 Z1(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),d=xe(i.countryName)+" "+xe(i.country)+" "+xe(i.countryIso)+" "+xe(i.countryIsoLabel),f=xe(i.religionName)+" "+xe(i.religion)+" "+xe(i.religionLabel)+" "+xe(i.religionCode),k=xe(i.language)+" "+xe(i.languageFamily)+" "+xe(i.languageCode),m=xe(i.doxaRegion)+" "+xe(i.wagfRegion)+" "+xe(i.wagfBlock),_=xe(i.affinityBlock)+" "+xe(i.affinityBlockLabel)+" "+xe((o=i._raw)==null?void 0:o.rop1),h=xe(i.cluster)+" "+xe(i.clusterLabel)+" "+xe((n=i._raw)==null?void 0:n.imb_reg_of_people_2),x=xe(i.peopleGroup)+" "+xe(i.peopleGroupLabel)+" "+xe((a=i._raw)==null?void 0:a.imb_reg_of_people_25),S=((r=i._raw)==null?void 0:r.primary_language)??((s=i._raw)==null?void 0:s.PrimaryLanguage),b=S&&(typeof S=="object"?S.label||S.value:S)||dr(i.language)||dr(i.primaryLanguage)||"",p=Y1(b),v=J1(b);t.push({feature:i,nameHay:u,countryHay:d,religionHay:f,languageHay:k,regionHay:m,haystack:u+" "+d+" "+f+" "+k+" "+m+" "+_+" "+h+" "+x,blocHay:_,clusterHay:h,pgHay:x,lat:l,lng:c,familyDerived:q1(b)||null,languageLabel:b,baseLang:p,dialectLabel:v})}return t}function X1(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 aa(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 na[aa(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 Q1(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||Js(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=Js(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,d=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}:{},...d||{},...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 ek(e={}){const{dataStore:t,dataSourceId:o,getActiveFilter:n,getActiveContext:a}=e,{t:r}=kt(),s=X(()=>{var d,f;if(!t||!t.sources)return[];if(o&&((d=t.sources[o])!=null&&d.features))return t.sources[o].features;for(const k of Object.keys(t.sources)){const m=t.sources[k];if((f=m==null?void 0:m.features)!=null&&f.length)return m.features}return[]}),i=X(()=>Z1(s.value)),l=X(()=>X1(i.value));function c(d){const f=String(d||"").trim().toLowerCase(),k={people:[],places:[],regions:[],wagfBlocks:[],families:[],languages:[],dialects:[],religions:[],blocs:[],clusters:[],peopleGroups:[]};if(f.length<2)return k;const m=f.split(/[\s,;]+/).filter(Boolean);if(!m.length)return k;const _=i.value;if(!_.length)return k;const h=l.value,x=[];for(const L of _){let K=!0;for(const ye of m)if(!L.haystack.includes(ye)){K=!1;break}if(!K)continue;let se=0;m.some(ye=>L.nameHay.includes(ye))&&(se+=K1),m.some(ye=>L.countryHay.includes(ye))&&(se+=H1),m.some(ye=>L.religionHay.includes(ye))&&(se+=z1),m.some(ye=>L.languageHay.includes(ye))&&(se+=V1),x.push({entry:L,score:se})}x.sort((L,K)=>K.score-L.score);const S=x.slice(0,Ys).map(L=>Q1(L.entry)),b=L=>L.filter(K=>m.every(se=>K.key.includes(se)||xe(K.label).includes(se))).sort((K,se)=>se.count-K.count).slice(0,Ys),p=b(h.countries).map(L=>io("country",L)),v=b(h.regions).map(L=>io("region",L)),C=b(h.wagfBlocks).map(L=>io("region",L)),A=b(h.families).map(L=>io("language-family",L)),N=b(h.languages).map(L=>io("language",L)),M=b(h.dialects).map(L=>io("dialect",L)),V=b(h.religions).map(L=>io("religion",L)),G=b(h.blocs).map(L=>io("affinity-bloc",L));let U=b(h.clusters).map(L=>io("cluster",L)),re=b(h.peopleGroups).map(L=>io("people-group",L));const B=new Set(G.map(L=>xe(L.text)));U=U.filter(L=>!B.has(xe(L.text)));const H=new Set(U.map(L=>xe(L.text)));return re=re.filter(L=>!B.has(xe(L.text))&&!H.has(xe(L.text))),{people:S,places:p,regions:v,wagfBlocks:C,families:A,languages:N,dialects:M,religions:V,blocs:G,clusters:U,peopleGroups:re}}function u(d){const f=typeof n=="function"?n():null,k=typeof a=="function"?a():null,m=c(d),_=j1(k),h=U1[k],x=h?Object.fromEntries(h.filter(A=>m[A]).map(A=>[A,m[A]])):m,S=_.flatMap(A=>x[A]||[]);if(!(f!=null&&f.key)||!S.length)return S.slice(0,rd);const b=[];for(const A of m.people){const N=i.value.find(V=>V.feature===A.feature);let M=!1;N&&(f.kind==="family"?M=(N.familyDerived||"").toLowerCase()===f.key.toLowerCase():f.kind==="language"&&(M=N.languageLabel.toLowerCase()===f.key.toLowerCase())),M&&b.push(A)}const p=[],v=f.key;b.length&&(p.push(sd(r("search.sections.within",{selection:v}),!1)),p.push(...b.slice(0,Ys)));const C=_.flatMap(A=>(x[A]||[]).slice(0,G1[A]??3)).map(A=>({...A,properties:{...A.properties,_allDataSection:!0}}));return p.push(sd(r("search.sections.allData"),!0)),p.push(...C),p.slice(0,rd+8)}return{search:u,searchGrouped:c,index:i,aggregates:l}}const id="https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.min.js",tk={__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(G){return G+G.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=X(()=>s.placeholder||a("search.placeholder")),l=o,c={"&":"&","<":"<",">":">",'"':""","'":"'"};function u(G){return String(G??"").replace(/[&<>"']/g,U=>c[U])}function d(G){return G==null?"":typeof G=="string"?G:typeof G=="object"?G.label||G.value||"":String(G)}const f={"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 k(G){const U=f[G];if(!U)return"";const re=a("search.kinds."+U);return`${u(re)}`}function m(G){var B;if(!G)return"";const U=G.place_type||[];if(U.includes("doxa-section-header"))return`
${u(((B=G.properties)==null?void 0:B.headerLabel)||G.text||"")}
`;if(U.includes("people-group")){const H=G.properties||{},L=d(H.name)||d(H.displayName)||d(G.text)||"",K=d(H.countryName)||d(H.country)||d(H.countryIso)||"",se=d(H.language)||d(H.primaryLanguage)||d(H.languageFamily)||"",ye=d(H.religionName)||d(H.religion)||"",ne=a("search.labels.place"),te=a("search.labels.language"),ge=a("search.labels.religion"),Me=[];return K&&Me.push(`${u(ne)} ${u(K)}`),se&&Me.push(`${u(te)} ${u(se)}`),ye&&Me.push(`${u(ge)} ${u(ye)}`),`
${k("people-group")}${u(L)}
`+(Me.length?`
${Me.join("")}
`:"")}const re=U.find(H=>H.startsWith("doxa-"));if(re){const H=G.properties||{},L=u(d(H.label)||G.text||""),K=Number(H.count)||0,se=K?` ${K}`:"";return`
${k(re)}${L}${se}
`}return`
${u(G.place_name||G.text||"")}
`}const _=Ee("dataStore",null),h=Ee("mapStore",null),x=Ee("uiStore",null);function S(){return h?h.selectedFamily?{kind:"family",key:h.selectedFamily}:h.selectedLanguage?{kind:"language",key:h.selectedLanguage}:null:null}const{search:b}=ek({dataStore:_,dataSourceId:s.dataSourceId||void 0,getActiveFilter:S,getActiveContext:()=>s.activeContext||null}),p=Nn(null),v=ue(null),C={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 A(G,U){const re=C[U]||C.mapbox;if(G.querySelector(`link[href="${re}"]`))return;const B=document.createElement("link");B.rel="stylesheet",B.href=re,G.prepend(B)}async function N(){if(typeof window<"u"&&window.MaplibreGeocoder||typeof document>"u")return;const G=document.querySelector(`script[src="${id}"]`);if(G){if(window.MaplibreGeocoder)return;await new Promise(U=>{G.addEventListener("load",U,{once:!0}),G.addEventListener("error",U,{once:!0})});return}await new Promise((U,re)=>{const B=document.createElement("script");B.src=id,B.async=!1,B.addEventListener("load",U,{once:!0}),B.addEventListener("error",()=>re(new Error("[GeocoderComponent] Failed to load MapLibre geocoder")),{once:!0}),document.head.appendChild(B)})}function M(G,U){return async re=>{const B={features:[]};if(!G||!(re!=null&&re.query))return B;try{const H=Array.isArray(re.language)?re.language[0]:re.language||U()||"en",L=new URLSearchParams({access_token:G,autocomplete:"true",limit:String(re.limit||5)});H&&L.set("language",H);const K=`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(re.query)}.json?${L.toString()}`,se=await fetch(K);if(!se.ok)return B;const ye=await se.json();return ye&&Array.isArray(ye.features)?ye:B}catch{return B}}}to(async()=>{var H,L,K,se,ye;const G=s.provider==="maplibre";if(G){if(await N(),typeof MaplibreGeocoder>"u"){console.error("[GeocoderComponent] MaplibreGeocoder global unavailable.");return}}else if(typeof MapboxGeocoder>"u")return;const U=s.mapInstance;if(!s.standalone&&!U)return;const re=s.standalone?(L=(H=v.value)==null?void 0:H.getRootNode)==null?void 0:L.call(H):(ye=(se=(K=U.getContainer)==null?void 0:K.call(U))==null?void 0:se.getRootNode)==null?void 0:ye.call(se);re instanceof ShadowRoot&&A(re,s.provider);const B={marker:!1,flyTo:!s.standalone,trackProximity:!s.standalone,placeholder:i.value,language:r.value||"en",localGeocoder:b,limit:20,zoom:6,render:m};if(G){const ne=typeof maplibregl<"u"?maplibregl:void 0,te={forwardGeocode:M(s.accessToken,()=>r.value)};p.value=new MaplibreGeocoder(te,{...B,maplibregl:ne,showResultsWhileTyping:!0,reverseGeocode:!1})}else p.value=new MapboxGeocoder({accessToken:s.accessToken,mapboxgl,...B});if(p.value.on("result",ne=>{var ge,Me,We,Ze,Xe,ot,Qe,gt,et,xt,$,P,T,O,W,q,Z,Y,g,y,R,j,ie,ae,F,w,I,oe,de,fe;const te=ne==null?void 0:ne.result;te&&((ge=te.place_type)!=null&&ge.includes("doxa-section-header")||(h&&(h.selectedRegion=null,h.selectedResource=null,h.selectedAffinityBlock=null,h.selectedDialect=null),x&&((Me=x.setPrayerFilter)==null||Me.call(x,null),(We=x.setEngagementFilter)==null||We.call(x,null),(Ze=x.setAdoptionFilter)==null||Ze.call(x,null),(Xe=x.setReligionFilter)==null||Xe.call(x,null)),(ot=te.properties)!=null&&ot._allDataSection&&h&&(h.selectedFamily=null,h.selectedLanguage=null),l("result",ne),(Qe=te.place_type)!=null&&Qe.includes("people-group")&&te.feature?l("people-group-result",{type:"Feature",properties:te.properties||te.feature,geometry:te.geometry||{type:"Point",coordinates:te.center}}):((gt=te.place_type)!=null&>.includes("doxa-country")||(et=te.place_type)!=null&&et.includes("doxa-region")||(xt=te.place_type)!=null&&xt.includes("doxa-language-family")||($=te.place_type)!=null&&$.includes("doxa-language")||(P=te.place_type)!=null&&P.includes("doxa-dialect")||(T=te.place_type)!=null&&T.includes("doxa-religion")||(O=te.place_type)!=null&&O.includes("doxa-affinity-bloc")||(W=te.place_type)!=null&&W.includes("doxa-cluster")||(q=te.place_type)!=null&&q.includes("doxa-people-group"))&&l("aggregate-result",{kind:te.place_type[0].replace(/^doxa-/,""),label:((Z=te.properties)==null?void 0:Z.label)||te.text,count:((Y=te.properties)==null?void 0:Y.count)||0,memberIds:((g=te.properties)==null?void 0:g.memberIds)||[],bounds:((y=te.properties)==null?void 0:y.bounds)||null,center:te.center,originalLabels:((R=te.properties)==null?void 0:R.originalLabels)||null,familyDerived:((j=te.properties)==null?void 0:j.familyDerived)||"",baseLang:((ie=te.properties)==null?void 0:ie.baseLang)||"",dialectLabel:((ae=te.properties)==null?void 0:ae.dialectLabel)||"",slug:((F=te.properties)==null?void 0:F.slug)||null,id:te.id||null,blocCode:((w=te.properties)==null?void 0:w.blocCode)||"",blocLabel:((I=te.properties)==null?void 0:I.blocLabel)||"",clusterCode:((oe=te.properties)==null?void 0:oe.clusterCode)||"",clusterLabel:((de=te.properties)==null?void 0:de.clusterLabel)||"",peopleGroupCode:((fe=te.properties)==null?void 0:fe.peopleGroupCode)||"",properties:te.properties||null})))}),p.value.on("clear",()=>l("clear")),p.value.on("error",ne=>l("error",ne)),s.standalone){if(v.value){const ne={on(){},off(){},fire(){},getContainer:()=>v.value,getZoom:()=>0,getCenter:()=>({lng:0,lat:0}),getBounds:()=>null,flyTo(){},fitBounds(){},addControl(){},removeControl(){},hasControl:()=>!1};try{const te=p.value.onAdd(s.mapInstance||ne);te&&v.value.appendChild(te)}catch(te){l("error",te)}}}else U.addControl(p.value,"top-left"),V()});function V(){var U,re;const G=(re=(U=p.value)==null?void 0:U.container)==null?void 0:re.parentElement;G&&(G.classList.add("dg-search-band"),G.classList.toggle("dg-search-band--dark",!!s.isDark))}return rt(()=>s.isDark,()=>V()),rt(i,G=>{var B,H;const U=p.value;if(!U)return;const re=U._inputEl||((H=(B=U.container)==null?void 0:B.querySelector)==null?void 0:H.call(B,"input.mapboxgl-ctrl-geocoder--input"));re&&(re.placeholder=G,re.setAttribute("placeholder",G)),U.options&&(U.options.placeholder=G)}),rt(r,G=>{const U=p.value;U!=null&&U.options&&(U.options.language=G||"en")}),To(()=>{var G,U;if(p.value){try{s.standalone?(U=(G=p.value).onRemove)==null||U.call(G):s.mapInstance&&s.mapInstance.removeControl(p.value)}catch{}p.value=null}}),t({geocoder:p}),(G,U)=>e.standalone?(z(),Q("div",{key:0,ref_key:"standaloneContainer",ref:v,class:"dg-standalone-geocoder"},null,512)):sn(G.$slots,"default",{},void 0,void 0,1)}},ok=["country_code","wagf_region","wagf_block","primary_language","religion"];function nk(e){return e==null?{value:null,label:null}:typeof e=="object"?{value:e.value??null,label:e.label??null}:{value:e,label:null}}function ak(e){if(e==null||typeof e!="object")return e;const t={...e};for(const o of ok)if(o in t){const{value:n,label:a}=nk(t[o]);t[o]=n,a!=null&&(t[`${o}_label`]=a)}return t}function ld(e){return Array.isArray(e)?e.map(ak):[]}function cd(e){return Array.isArray(e)?e:e&&typeof e=="object"?e.posts||e.data||e.records||e.results||e.items||[]:[]}function vn(e){return e==null||typeof e!="object"?null:e.slug??null}function ud(e){return typeof e=="string"&&e.toLowerCase().includes("deaf")}function rk(e){const t=e==null?null:e.rop1;return t==null?null:typeof t=="object"?t.value??null:t}function ra(e,t){const o=new Set;if(e==null||typeof e!="object"||typeof e.type!="string")throw new Error(`selector-evaluator: malformed selector (expected an object with a string \`type\`), got: ${JSON.stringify(e)}`);const n=Array.isArray(t)?t:[];switch(e.type){case"country_code":{const a=e.value;for(const r of n)if(r&&r.country_code===a){const s=vn(r);s!=null&&o.add(s)}return o}case"country_codes":{const a=new Set(Array.isArray(e.values)?e.values:[]);for(const r of n)if(r&&a.has(r.country_code)){const s=vn(r);s!=null&&o.add(s)}return o}case"wagf_block":{const a=e.value;for(const r of n)if(r&&r.wagf_block===a){const s=vn(r);s!=null&&o.add(s)}return o}case"wagf_region":{const a=e.value;for(const r of n)if(r&&r.wagf_region===a){const s=vn(r);s!=null&&o.add(s)}return o}case"union":{const a=Array.isArray(e.selectors)?e.selectors:[];for(const r of a){const s=ra(r,n);for(const i of s)o.add(i)}return o}case"deaf_predicate":{const a=new Set(Array.isArray(e.regions)?e.regions:[]);for(const r of n){if(!r)continue;if((ud(r.slug)||ud(r.name))&&a.has(r.wagf_region)){const i=vn(r);i!=null&&o.add(i)}}return o}case"affinity_bloc":{const a=e.rop1;for(const r of n)if(r&&rk(r)===a){const s=vn(r);s!=null&&o.add(s)}return o}default:throw new Error(`selector-evaluator: unknown selector type "${e.type}" (supported: country_code, country_codes, wagf_block, wagf_region, union, deaf_predicate, affinity_bloc)`)}}const sk=Object.freeze(Object.defineProperty({__proto__:null,default:ra,evaluate:ra},Symbol.toStringTag,{value:"Module"}));function ik(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 dd(e){const t=parseInt(e&&e.population,10);return Number.isFinite(t)?t:0}function lk(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+=dd(i));return s}const n=ra(o,t);let a=0;for(const r of t)r&&n.has(r.slug)&&(a+=dd(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(B=>B.id.startsWith("asia-india")),c=r.filter(B=>B.id.startsWith("asia-china")),u=[...a.map(B=>B.id),"deaf",...l.map(B=>B.id),...c.map(B=>B.id),...s.map(B=>B.id)],d=u.length,f=B=>ik(u.indexOf(B),d),k=(B,H,L)=>{if(!n)return B;const K=L??(H&&H.selector);return B.pop=lk({selector:K},n),B},m=B=>n?B.reduce((H,L)=>H+(L.pop||0),0):void 0,_=a.map(B=>k({id:B.id,zoneKey:B.id,label:B.label,...B.provinceLabel?{provinceLabel:B.provinceLabel}:{},color:f(B.id),count:pr(B)},B)),h=k({id:"deaf",zoneKey:"deaf",label:"Deaf (affinity bloc A017)",color:f("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),x=B=>k({id:B.id,zoneKey:B.id,label:B.label,...B.provinceLabel?{provinceLabel:B.provinceLabel}:{},color:f(B.id),count:pr(B),...Array.isArray(B.adm0)&&B.adm0.length?{adm0:B.adm0}:{},...Array.isArray(B.provinces)&&B.provinces.length?{provinces:B.provinces}:{}},B),S=l.map(x),b=c.map(x),p=B=>B.reduce((H,L)=>H+(pr(L)||0),0),v={id:"asia-india",label:"India",count:p(l),children:S},C={id:"asia-china",label:"China",count:p(c),children:b};n&&(v.pop=m(S),C.pop=m(b)),p(r),n&&m([v,C]);const A=B=>k({id:B.id,zoneKey:B.id,label:B.label,...B.provinceLabel?{provinceLabel:B.provinceLabel}:{},color:f(B.id),count:pr(B)},B),N=s.map(A);N.length>0&&(()=>{const B={id:"frontier-asia",label:"Frontier Asia (uncovered)",count:p(s),children:N};return n&&(B.pop=m(N)),B})();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"},V=B=>M[B]||(String(B).startsWith("asia-india-")?"India":String(B).startsWith("asia-china-")?"China + Mongolia":"Other"),G=[..._,h,...S,...b,...N].filter(Boolean),U=new Map;for(const B of G){const H=V(B.id||B.zoneKey);U.has(H)||U.set(H,[]),U.get(H).push(B)}const re=[...U.entries()].map(([B,H])=>{H.sort((K,se)=>(se.count||0)-(K.count||0));const L={id:"region-"+B.toLowerCase().replace(/[^a-z0-9]+/g,"-"),label:B,count:H.reduce((K,se)=>K+(se.count||0),0),children:H};return n&&(L.pop=m(H)),L}).sort((B,H)=>(H.count||0)-(B.count||0));return ck(pd(re),{withPop:!!n}),re}function ck(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: +`,"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),d=ue(!1),h=ue("medium"),v={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},f=Ee("profileConfig",null),_=X(()=>A1({embedPath:a.embedPath,profileConfig:be(f)||null})),m=X(()=>{const $=v[h.value].height;return''});function x(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,d.value=!1)}function S(){s.value=!1}async function k($){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText($),!0}catch{}try{const A=document.createElement("textarea");A.value=$,A.setAttribute("readonly",""),A.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(A),A.select();const P=document.execCommand("copy");return document.body.removeChild(A),P}catch{return!1}}async function p(){await k(_.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function b(){await k(m.value)&&(d.value=!0,setTimeout(()=>{d.value=!1},2e3))}return($,A)=>(H(),Q("div",{ref_key:"rootEl",ref:r,class:"share-wrap"},[je(qo,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:be(t)("buttons.share"),onClick:x},{default:jt(()=>[...A[2]||(A[2]=[E("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"},[E("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),E("polyline",{points:"16 6 12 2 8 6"}),E("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),je(P1,{open:s.value,title:be(t)("buttons.share"),"is-dark":e.isDark,onClose:S},{default:jt(()=>[E("div",{ref_key:"popoverEl",ref:i,class:Le(["share-pop",{light:!e.isDark}])},[E("ul",M1,[(H(!0),Q(Ce,null,At(be(o)("buttons.shareSteps"),(P,N)=>(H(),Q("li",{key:N},ce(be(n)(P)),1))),128))]),E("div",N1,[E("button",{class:Le(["share-tab",{active:c.value==="link"}]),onClick:A[0]||(A[0]=P=>c.value="link")},"Embed link",2),E("button",{class:Le(["share-tab",{active:c.value==="embed"}]),onClick:A[1]||(A[1]=P=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(H(),Q("div",I1,[E("div",R1,[E("div",F1,ce(_.value),1)]),E("button",{class:Le(["share-primary-btn",{copied:u.value}]),onClick:p},[u.value?(H(),Q("svg",D1,[...A[4]||(A[4]=[E("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),Q("svg",O1,[...A[3]||(A[3]=[E("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),E("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(" "+ce(u.value?"Copied!":"Copy Link"),1)],2)])):me("",!0),c.value==="embed"?(H(),Q("div",B1,[A[7]||(A[7]=E("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),E("div",j1,[(H(),Q(Ce,null,At(v,(P,N)=>E("button",{key:N,class:Le(["share-size-pill",{active:h.value===N}]),onClick:V=>h.value=N},ce(P.label),11,G1)),64))]),E("div",U1,ce(m.value),1),E("button",{class:Le(["share-secondary-btn",{copied:d.value}]),onClick:b},[d.value?(H(),Q("svg",z1,[...A[6]||(A[6]=[E("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),Q("svg",K1,[...A[5]||(A[5]=[E("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),E("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(" "+ce(d.value?"Copied!":"Copy Code"),1)],2)])):me("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},H1=["blocs","clusters","peopleGroups","families","languages","dialects","people","places","regions","wagfBlocks","religions"],V1={"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 W1(e){return V1[e]||H1}const Y1={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"],J1={regions:[...ur,"regions","wagfBlocks"],"people-groups":[...ur,"blocs","clusters"],language:[...ur,"dialects","families"],religion:[...ur]},q1=100,Z1=50,X1=25,Q1=10,Js=5,sd=20,ek=[[/ sign language$/i,"Sign Language"]];function tk(e){if(!e||typeof e!="string")return"";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function ok(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function nk(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($t[n])return $t[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if($t[a])return $t[a]}}if($t[e])return $t[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();if(o!==e&&$t[o])return $t[o];for(const[n,a]of ek)if(n.test(e))return a;return null}function id(e,t){return{id:`doxa-section-header-${qs(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 qs(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 ak(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),d=xe(i.countryName)+" "+xe(i.country)+" "+xe(i.countryIso)+" "+xe(i.countryIsoLabel),h=xe(i.religionName)+" "+xe(i.religion)+" "+xe(i.religionLabel)+" "+xe(i.religionCode),v=xe(i.language)+" "+xe(i.languageFamily)+" "+xe(i.languageCode),f=xe(i.doxaRegion)+" "+xe(i.wagfRegion)+" "+xe(i.wagfBlock),_=xe(i.affinityBlock)+" "+xe(i.affinityBlockLabel)+" "+xe((o=i._raw)==null?void 0:o.rop1),m=xe(i.cluster)+" "+xe(i.clusterLabel)+" "+xe((n=i._raw)==null?void 0:n.imb_reg_of_people_2),x=xe(i.peopleGroup)+" "+xe(i.peopleGroupLabel)+" "+xe((a=i._raw)==null?void 0:a.imb_reg_of_people_25),S=((r=i._raw)==null?void 0:r.primary_language)??((s=i._raw)==null?void 0:s.PrimaryLanguage),k=S&&(typeof S=="object"?S.label||S.value:S)||dr(i.language)||dr(i.primaryLanguage)||"",p=tk(k),b=ok(k);t.push({feature:i,nameHay:u,countryHay:d,religionHay:h,languageHay:v,regionHay:f,haystack:u+" "+d+" "+h+" "+v+" "+f+" "+_+" "+m+" "+x,blocHay:_,clusterHay:m,pgHay:x,lat:l,lng:c,familyDerived:nk(k)||null,languageLabel:k,baseLang:p,dialectLabel:b})}return t}function rk(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 aa(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 na[aa(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 sk(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||qs(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=qs(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,d=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}:{},...d||{},...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 ik(e={}){const{dataStore:t,dataSourceId:o,getActiveFilter:n,getActiveContext:a}=e,{t:r}=kt(),s=X(()=>{var d,h;if(!t||!t.sources)return[];if(o&&((d=t.sources[o])!=null&&d.features))return t.sources[o].features;for(const v of Object.keys(t.sources)){const f=t.sources[v];if((h=f==null?void 0:f.features)!=null&&h.length)return f.features}return[]}),i=X(()=>ak(s.value)),l=X(()=>rk(i.value));function c(d){const h=String(d||"").trim().toLowerCase(),v={people:[],places:[],regions:[],wagfBlocks:[],families:[],languages:[],dialects:[],religions:[],blocs:[],clusters:[],peopleGroups:[]};if(h.length<2)return v;const f=h.split(/[\s,;]+/).filter(Boolean);if(!f.length)return v;const _=i.value;if(!_.length)return v;const m=l.value,x=[];for(const C of _){let K=!0;for(const ye of f)if(!C.haystack.includes(ye)){K=!1;break}if(!K)continue;let se=0;f.some(ye=>C.nameHay.includes(ye))&&(se+=q1),f.some(ye=>C.countryHay.includes(ye))&&(se+=Z1),f.some(ye=>C.religionHay.includes(ye))&&(se+=X1),f.some(ye=>C.languageHay.includes(ye))&&(se+=Q1),x.push({entry:C,score:se})}x.sort((C,K)=>K.score-C.score);const S=x.slice(0,Js).map(C=>sk(C.entry)),k=C=>C.filter(K=>f.every(se=>K.key.includes(se)||xe(K.label).includes(se))).sort((K,se)=>se.count-K.count).slice(0,Js),p=k(m.countries).map(C=>io("country",C)),b=k(m.regions).map(C=>io("region",C)),$=k(m.wagfBlocks).map(C=>io("region",C)),A=k(m.families).map(C=>io("language-family",C)),P=k(m.languages).map(C=>io("language",C)),N=k(m.dialects).map(C=>io("dialect",C)),V=k(m.religions).map(C=>io("religion",C)),G=k(m.blocs).map(C=>io("affinity-bloc",C));let U=k(m.clusters).map(C=>io("cluster",C)),re=k(m.peopleGroups).map(C=>io("people-group",C));const B=new Set(G.map(C=>xe(C.text)));U=U.filter(C=>!B.has(xe(C.text)));const z=new Set(U.map(C=>xe(C.text)));return re=re.filter(C=>!B.has(xe(C.text))&&!z.has(xe(C.text))),{people:S,places:p,regions:b,wagfBlocks:$,families:A,languages:P,dialects:N,religions:V,blocs:G,clusters:U,peopleGroups:re}}function u(d){const h=typeof n=="function"?n():null,v=typeof a=="function"?a():null,f=c(d),_=W1(v),m=J1[v],x=m?Object.fromEntries(m.filter(A=>f[A]).map(A=>[A,f[A]])):f,S=_.flatMap(A=>x[A]||[]);if(!(h!=null&&h.key)||!S.length)return S.slice(0,sd);const k=[];for(const A of f.people){const P=i.value.find(V=>V.feature===A.feature);let N=!1;P&&(h.kind==="family"?N=(P.familyDerived||"").toLowerCase()===h.key.toLowerCase():h.kind==="language"&&(N=P.languageLabel.toLowerCase()===h.key.toLowerCase())),N&&k.push(A)}const p=[],b=h.key;k.length&&(p.push(id(r("search.sections.within",{selection:b}),!1)),p.push(...k.slice(0,Js)));const $=_.flatMap(A=>(x[A]||[]).slice(0,Y1[A]??3)).map(A=>({...A,properties:{...A.properties,_allDataSection:!0}}));return p.push(id(r("search.sections.allData"),!0)),p.push(...$),p.slice(0,sd+8)}return{search:u,searchGrouped:c,index:i,aggregates:l}}const ld="https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.min.js",lk={__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(G){return G+G.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=X(()=>s.placeholder||a("search.placeholder")),l=o,c={"&":"&","<":"<",">":">",'"':""","'":"'"};function u(G){return String(G??"").replace(/[&<>"']/g,U=>c[U])}function d(G){return G==null?"":typeof G=="string"?G:typeof G=="object"?G.label||G.value||"":String(G)}const h={"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 v(G){const U=h[G];if(!U)return"";const re=a("search.kinds."+U);return`${u(re)}`}function f(G){var B;if(!G)return"";const U=G.place_type||[];if(U.includes("doxa-section-header"))return`
${u(((B=G.properties)==null?void 0:B.headerLabel)||G.text||"")}
`;if(U.includes("people-group")){const z=G.properties||{},C=d(z.name)||d(z.displayName)||d(G.text)||"",K=d(z.countryName)||d(z.country)||d(z.countryIso)||"",se=d(z.language)||d(z.primaryLanguage)||d(z.languageFamily)||"",ye=d(z.religionName)||d(z.religion)||"",ne=a("search.labels.place"),te=a("search.labels.language"),ge=a("search.labels.religion"),Me=[];return K&&Me.push(`${u(ne)} ${u(K)}`),se&&Me.push(`${u(te)} ${u(se)}`),ye&&Me.push(`${u(ge)} ${u(ye)}`),`
${v("people-group")}${u(C)}
`+(Me.length?`
${Me.join("")}
`:"")}const re=U.find(z=>z.startsWith("doxa-"));if(re){const z=G.properties||{},C=u(d(z.label)||G.text||""),K=Number(z.count)||0,se=K?` ${K}`:"";return`
${v(re)}${C}${se}
`}return`
${u(G.place_name||G.text||"")}
`}const _=Ee("dataStore",null),m=Ee("mapStore",null),x=Ee("uiStore",null);function S(){return m?m.selectedFamily?{kind:"family",key:m.selectedFamily}:m.selectedLanguage?{kind:"language",key:m.selectedLanguage}:null:null}const{search:k}=ik({dataStore:_,dataSourceId:s.dataSourceId||void 0,getActiveFilter:S,getActiveContext:()=>s.activeContext||null}),p=Nn(null),b=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 A(G,U){const re=$[U]||$.mapbox;if(G.querySelector(`link[href="${re}"]`))return;const B=document.createElement("link");B.rel="stylesheet",B.href=re,G.prepend(B)}async function P(){if(typeof window<"u"&&window.MaplibreGeocoder||typeof document>"u")return;const G=document.querySelector(`script[src="${ld}"]`);if(G){if(window.MaplibreGeocoder)return;await new Promise(U=>{G.addEventListener("load",U,{once:!0}),G.addEventListener("error",U,{once:!0})});return}await new Promise((U,re)=>{const B=document.createElement("script");B.src=ld,B.async=!1,B.addEventListener("load",U,{once:!0}),B.addEventListener("error",()=>re(new Error("[GeocoderComponent] Failed to load MapLibre geocoder")),{once:!0}),document.head.appendChild(B)})}function N(G,U){return async re=>{const B={features:[]};if(!G||!(re!=null&&re.query))return B;try{const z=Array.isArray(re.language)?re.language[0]:re.language||U()||"en",C=new URLSearchParams({access_token:G,autocomplete:"true",limit:String(re.limit||5)});z&&C.set("language",z);const K=`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(re.query)}.json?${C.toString()}`,se=await fetch(K);if(!se.ok)return B;const ye=await se.json();return ye&&Array.isArray(ye.features)?ye:B}catch{return B}}}to(async()=>{var z,C,K,se,ye;const G=s.provider==="maplibre";if(G){if(await P(),typeof MaplibreGeocoder>"u"){console.error("[GeocoderComponent] MaplibreGeocoder global unavailable.");return}}else if(typeof MapboxGeocoder>"u")return;const U=s.mapInstance;if(!s.standalone&&!U)return;const re=s.standalone?(C=(z=b.value)==null?void 0:z.getRootNode)==null?void 0:C.call(z):(ye=(se=(K=U.getContainer)==null?void 0:K.call(U))==null?void 0:se.getRootNode)==null?void 0:ye.call(se);re instanceof ShadowRoot&&A(re,s.provider);const B={marker:!1,flyTo:!s.standalone,trackProximity:!s.standalone,placeholder:i.value,language:r.value||"en",localGeocoder:k,limit:20,zoom:6,render:f};if(G){const ne=typeof maplibregl<"u"?maplibregl:void 0,te={forwardGeocode:N(s.accessToken,()=>r.value)};p.value=new MaplibreGeocoder(te,{...B,maplibregl:ne,showResultsWhileTyping:!0,reverseGeocode:!1})}else p.value=new MapboxGeocoder({accessToken:s.accessToken,mapboxgl,...B});if(p.value.on("result",ne=>{var ge,Me,We,Ze,Xe,ot,Qe,gt,et,xt,L,M,T,O,W,q,Z,Y,g,y,R,j,ie,ae,F,w,I,oe,de,fe;const te=ne==null?void 0:ne.result;te&&((ge=te.place_type)!=null&&ge.includes("doxa-section-header")||(m&&(m.selectedRegion=null,m.selectedResource=null,m.selectedAffinityBlock=null,m.selectedDialect=null),x&&((Me=x.setPrayerFilter)==null||Me.call(x,null),(We=x.setEngagementFilter)==null||We.call(x,null),(Ze=x.setAdoptionFilter)==null||Ze.call(x,null),(Xe=x.setReligionFilter)==null||Xe.call(x,null)),(ot=te.properties)!=null&&ot._allDataSection&&m&&(m.selectedFamily=null,m.selectedLanguage=null),l("result",ne),(Qe=te.place_type)!=null&&Qe.includes("people-group")&&te.feature?l("people-group-result",{type:"Feature",properties:te.properties||te.feature,geometry:te.geometry||{type:"Point",coordinates:te.center}}):((gt=te.place_type)!=null&>.includes("doxa-country")||(et=te.place_type)!=null&&et.includes("doxa-region")||(xt=te.place_type)!=null&&xt.includes("doxa-language-family")||(L=te.place_type)!=null&&L.includes("doxa-language")||(M=te.place_type)!=null&&M.includes("doxa-dialect")||(T=te.place_type)!=null&&T.includes("doxa-religion")||(O=te.place_type)!=null&&O.includes("doxa-affinity-bloc")||(W=te.place_type)!=null&&W.includes("doxa-cluster")||(q=te.place_type)!=null&&q.includes("doxa-people-group"))&&l("aggregate-result",{kind:te.place_type[0].replace(/^doxa-/,""),label:((Z=te.properties)==null?void 0:Z.label)||te.text,count:((Y=te.properties)==null?void 0:Y.count)||0,memberIds:((g=te.properties)==null?void 0:g.memberIds)||[],bounds:((y=te.properties)==null?void 0:y.bounds)||null,center:te.center,originalLabels:((R=te.properties)==null?void 0:R.originalLabels)||null,familyDerived:((j=te.properties)==null?void 0:j.familyDerived)||"",baseLang:((ie=te.properties)==null?void 0:ie.baseLang)||"",dialectLabel:((ae=te.properties)==null?void 0:ae.dialectLabel)||"",slug:((F=te.properties)==null?void 0:F.slug)||null,id:te.id||null,blocCode:((w=te.properties)==null?void 0:w.blocCode)||"",blocLabel:((I=te.properties)==null?void 0:I.blocLabel)||"",clusterCode:((oe=te.properties)==null?void 0:oe.clusterCode)||"",clusterLabel:((de=te.properties)==null?void 0:de.clusterLabel)||"",peopleGroupCode:((fe=te.properties)==null?void 0:fe.peopleGroupCode)||"",properties:te.properties||null})))}),p.value.on("clear",()=>l("clear")),p.value.on("error",ne=>l("error",ne)),s.standalone){if(b.value){const ne={on(){},off(){},fire(){},getContainer:()=>b.value,getZoom:()=>0,getCenter:()=>({lng:0,lat:0}),getBounds:()=>null,flyTo(){},fitBounds(){},addControl(){},removeControl(){},hasControl:()=>!1};try{const te=p.value.onAdd(s.mapInstance||ne);te&&b.value.appendChild(te)}catch(te){l("error",te)}}}else U.addControl(p.value,"top-left"),V()});function V(){var U,re;const G=(re=(U=p.value)==null?void 0:U.container)==null?void 0:re.parentElement;G&&(G.classList.add("dg-search-band"),G.classList.toggle("dg-search-band--dark",!!s.isDark))}return rt(()=>s.isDark,()=>V()),rt(i,G=>{var B,z;const U=p.value;if(!U)return;const re=U._inputEl||((z=(B=U.container)==null?void 0:B.querySelector)==null?void 0:z.call(B,"input.mapboxgl-ctrl-geocoder--input"));re&&(re.placeholder=G,re.setAttribute("placeholder",G)),U.options&&(U.options.placeholder=G)}),rt(r,G=>{const U=p.value;U!=null&&U.options&&(U.options.language=G||"en")}),To(()=>{var G,U;if(p.value){try{s.standalone?(U=(G=p.value).onRemove)==null||U.call(G):s.mapInstance&&s.mapInstance.removeControl(p.value)}catch{}p.value=null}}),t({geocoder:p}),(G,U)=>e.standalone?(H(),Q("div",{key:0,ref_key:"standaloneContainer",ref:b,class:"dg-standalone-geocoder"},null,512)):sn(G.$slots,"default",{},void 0,void 0,1)}},ck=["country_code","wagf_region","wagf_block","primary_language","religion"];function uk(e){return e==null?{value:null,label:null}:typeof e=="object"?{value:e.value??null,label:e.label??null}:{value:e,label:null}}function dk(e){if(e==null||typeof e!="object")return e;const t={...e};for(const o of ck)if(o in t){const{value:n,label:a}=uk(t[o]);t[o]=n,a!=null&&(t[`${o}_label`]=a)}return t}function cd(e){return Array.isArray(e)?e.map(dk):[]}function ud(e){return Array.isArray(e)?e:e&&typeof e=="object"?e.posts||e.data||e.records||e.results||e.items||[]:[]}function vn(e){return e==null||typeof e!="object"?null:e.slug??null}function dd(e){return typeof e=="string"&&e.toLowerCase().includes("deaf")}function pk(e){const t=e==null?null:e.rop1;return t==null?null:typeof t=="object"?t.value??null:t}function ra(e,t){const o=new Set;if(e==null||typeof e!="object"||typeof e.type!="string")throw new Error(`selector-evaluator: malformed selector (expected an object with a string \`type\`), got: ${JSON.stringify(e)}`);const n=Array.isArray(t)?t:[];switch(e.type){case"country_code":{const a=e.value;for(const r of n)if(r&&r.country_code===a){const s=vn(r);s!=null&&o.add(s)}return o}case"country_codes":{const a=new Set(Array.isArray(e.values)?e.values:[]);for(const r of n)if(r&&a.has(r.country_code)){const s=vn(r);s!=null&&o.add(s)}return o}case"wagf_block":{const a=e.value;for(const r of n)if(r&&r.wagf_block===a){const s=vn(r);s!=null&&o.add(s)}return o}case"wagf_region":{const a=e.value;for(const r of n)if(r&&r.wagf_region===a){const s=vn(r);s!=null&&o.add(s)}return o}case"union":{const a=Array.isArray(e.selectors)?e.selectors:[];for(const r of a){const s=ra(r,n);for(const i of s)o.add(i)}return o}case"deaf_predicate":{const a=new Set(Array.isArray(e.regions)?e.regions:[]);for(const r of n){if(!r)continue;if((dd(r.slug)||dd(r.name))&&a.has(r.wagf_region)){const i=vn(r);i!=null&&o.add(i)}}return o}case"affinity_bloc":{const a=e.rop1;for(const r of n)if(r&&pk(r)===a){const s=vn(r);s!=null&&o.add(s)}return o}default:throw new Error(`selector-evaluator: unknown selector type "${e.type}" (supported: country_code, country_codes, wagf_block, wagf_region, union, deaf_predicate, affinity_bloc)`)}}const gk=Object.freeze(Object.defineProperty({__proto__:null,default:ra,evaluate:ra},Symbol.toStringTag,{value:"Module"}));function fk(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 pd(e){const t=parseInt(e&&e.population,10);return Number.isFinite(t)?t:0}function hk(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+=pd(i));return s}const n=ra(o,t);let a=0;for(const r of t)r&&n.has(r.slug)&&(a+=pd(r));return a}function Zs(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(B=>B.id.startsWith("asia-india")),c=r.filter(B=>B.id.startsWith("asia-china")),u=[...a.map(B=>B.id),"deaf",...l.map(B=>B.id),...c.map(B=>B.id),...s.map(B=>B.id)],d=u.length,h=B=>fk(u.indexOf(B),d),v=(B,z,C)=>{if(!n)return B;const K=C??(z&&z.selector);return B.pop=hk({selector:K},n),B},f=B=>n?B.reduce((z,C)=>z+(C.pop||0),0):void 0,_=a.map(B=>v({id:B.id,zoneKey:B.id,label:B.label,...B.provinceLabel?{provinceLabel:B.provinceLabel}:{},color:h(B.id),count:pr(B)},B)),m=v({id:"deaf",zoneKey:"deaf",label:"Deaf (affinity bloc A017)",color:h("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),x=B=>v({id:B.id,zoneKey:B.id,label:B.label,...B.provinceLabel?{provinceLabel:B.provinceLabel}:{},color:h(B.id),count:pr(B),...Array.isArray(B.adm0)&&B.adm0.length?{adm0:B.adm0}:{},...Array.isArray(B.provinces)&&B.provinces.length?{provinces:B.provinces}:{}},B),S=l.map(x),k=c.map(x),p=B=>B.reduce((z,C)=>z+(pr(C)||0),0),b={id:"asia-india",label:"India",count:p(l),children:S},$={id:"asia-china",label:"China",count:p(c),children:k};n&&(b.pop=f(S),$.pop=f(k)),p(r),n&&f([b,$]);const A=B=>v({id:B.id,zoneKey:B.id,label:B.label,...B.provinceLabel?{provinceLabel:B.provinceLabel}:{},color:h(B.id),count:pr(B)},B),P=s.map(A);P.length>0&&(()=>{const B={id:"frontier-asia",label:"Frontier Asia (uncovered)",count:p(s),children:P};return n&&(B.pop=f(P)),B})();const N={"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"},V=B=>N[B]||(String(B).startsWith("asia-india-")?"India":String(B).startsWith("asia-china-")?"China + Mongolia":"Other"),G=[..._,m,...S,...k,...P].filter(Boolean),U=new Map;for(const B of G){const z=V(B.id||B.zoneKey);U.has(z)||U.set(z,[]),U.get(z).push(B)}const re=[...U.entries()].map(([B,z])=>{z.sort((K,se)=>(se.count||0)-(K.count||0));const C={id:"region-"+B.toLowerCase().replace(/[^a-z0-9]+/g,"-"),label:B,count:z.reduce((K,se)=>K+(se.count||0),0),children:z};return n&&(C.pop=f(z)),C}).sort((B,z)=>(z.count||0)-(B.count||0));return mk(gd(re),{withPop:!!n}),re}function mk(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 pd(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 gd=()=>({type:"FeatureCollection",features:[]});function uk(e,t){const o=ra(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 dk(e){return typeof e.id=="string"&&e.id.startsWith("asia-")}function Zs(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 pk(e,t){const{records:o=[],adm0:n,adm1Ind:a,adm1Chn:r}=t||{},s=gd();if(dk(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(Zs(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(Zs(u,e))}return s}if(!e.selector)return s;const i=uk(e,o);if(n&&i.size)for(const l of n.features||[])l.properties&&i.has(l.properties.iso3)&&s.features.push(Zs(l,e));return s}function gk(e,t){const o=gd(),n=new Map;for(const a of e){if(a.id==="deaf"){n.set(a.zoneKey??a.id,0);continue}const r=pk(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 fk={"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 hk(e,t){const o=fk[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},fd={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},sa={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 hd(e){const t={...sa};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 md(e,t={}){if(!e||typeof e!="object")return null;const o=t.nameMap||sa;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]||sa[n]||n,r=Object.prototype.hasOwnProperty.call(fd,n)?fd[n]:null;return{key:"adm0:"+n,name:a,count:r,kind:"adm0"}}return null}function bd(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 kn(e){return String(e??"").normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().trim()}function mk(e){return kn(e).split(/[\s,;]+/).filter(Boolean)}function bk(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 d=Number(c.latitude),f=Number(c.longitude);if(!Number.isFinite(d)||!Number.isFinite(f))continue;const k=c.name||u;i.add(u),s.push({label:k,kind:"pg",target:{type:"pg",slug:u,lng:f,lat:d},_hay:kn(k)})}for(const c of o){if(!c)continue;const u=c.zoneKey||c.id,d=c.label||u;u&&s.push({label:d,kind:"zone",target:{type:"zone",zoneId:u},_hay:kn(d)})}for(const c of Object.keys(n))s.push({label:c,kind:"territory",target:{type:"territory",shapeName:c},_hay:kn(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:kn(u)})}return s}const yk={zone:0,territory:1,pg:2};function _k(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,d,f)=>!d||!Number.isFinite(d[0])||!Number.isFinite(d[1])?null:{name:u,slug:f.__synthSlug,latitude:d[1],longitude:d[0],...f};for(const u of o){if(!u)continue;const d=u.zoneKey||u.id,f=u.label||d;if(!d)continue;const k=typeof s=="function"?s(_=>_&&_.properties&&_.properties.zoneKey===d):null,m=l(f,k,{__upgKind:"zone",__zoneId:d,__synthSlug:`__zone__${d}`});m&&i.push(m)}for(const u of Object.keys(n)){const d=typeof s=="function"?s(k=>k&&k.properties&&k.properties.shapeName===u):null,f=l(u,d,{__upgKind:"territory",__shapeName:u,__synthSlug:`__terr__${u}`});f&&i.push(f)}const c=r||a;for(const u of Object.keys(a)){const d=c&&c[u]||a[u]||u,f=typeof s=="function"?s(m=>m&&m.properties&&m.properties.iso3===u):null,k=l(d,f,{__upgKind:"territory",__shapeName:u,__synthSlug:`__terr__${u}`});k&&i.push(k)}return i}function yd(e,t,o={}){const n=o.limit??8,a=mk(t);if(!a.length)return[];const r=a[0],s=[];for(const i of e){let l=!0;for(const d of a)if(!i._hay.includes(d)){l=!1;break}if(!l)continue;const c=i._hay.startsWith(r)?0:1,u=i._hay===kn(t)?-1:0;s.push({e:i,starts:c,exact:u,kr:yk[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 vk="rgba(120, 128, 134, 0.28)",_d="36px",vd=()=>{};function kk(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return vd;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return vd;const a=S=>S.classList.contains("map-scroll-edge--left");for(const S of n)S.style.background=`linear-gradient(${a(S)?"to right":"to left"}, ${vk} ${_d}, transparent ${_d})`,S.style.opacity="0",S.style.transition="opacity 0.16s ease",S.style.userSelect="none",S.style.webkitUserSelect="none";const r=S=>{S.style.opacity="1"},s=S=>{S.style.opacity="0"},i=()=>n.find(S=>!a(S))||null,l=new Set;let c=!1,u=null;const d=()=>{for(const S of n)l.has(S)||s(S)},f=()=>{const S=i();S&&(r(S),u&&clearTimeout(u),u=setTimeout(d,250))},k=()=>f(),m=S=>{if(!(S.touches&&S.touches.length===1))return;const b=S.target;b&&b.classList&&b.classList.contains("map-scroll-edge")||f()},_=()=>{u&&clearTimeout(u),d()};e.addEventListener("wheel",k,{passive:!0}),e.addEventListener("touchmove",m,{passive:!0}),e.addEventListener("touchend",_,{passive:!0}),e.addEventListener("touchcancel",_,{passive:!0});const h=()=>{c||f()};typeof window<"u"&&window.addEventListener("scroll",h,{passive:!0});const x=[];for(const S of n){const b=()=>{l.add(S),r(S)},p=()=>{l.delete(S),s(S)},v=()=>{c=!0,r(S)},C=()=>{c=!1,s(S)};S.addEventListener("mouseenter",b),S.addEventListener("mouseleave",p),S.addEventListener("touchstart",v,{passive:!0}),S.addEventListener("touchend",C,{passive:!0}),x.push(()=>{S.removeEventListener("mouseenter",b),S.removeEventListener("mouseleave",p),S.removeEventListener("touchstart",v),S.removeEventListener("touchend",C)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",k),e.removeEventListener("touchmove",m),e.removeEventListener("touchend",_),e.removeEventListener("touchcancel",_),typeof window<"u"&&window.removeEventListener("scroll",h);for(const b of x)b();for(const b of n)s(b)}}const wk={class:"upg-root"},xk={key:0,class:"upg-map-err"},Sk={class:"upg-legend-desktop-slot"},Ak={class:"upg-legend-mobile-slot"},$k={class:"upg-detail-desktop-slot"},Lk={key:4,class:"upg-hud"},Ck={key:0,class:"upg-hud-head"},Tk={class:"upg-hud-total"},Ek={key:1,class:"upg-hud-names"},Pk={key:2,class:"upg-hud-swatches"},Mk=["data-color","title","onClick"],Nk={key:3,class:"upg-hud-actions"},Ik={key:4,class:"upg-hud-flash"},Rk={class:"upg-status"},Xs="upg-search",kd="My UPG 100 List — Legend",Fk="people-groups",Ok="Search people group, zone, or territory…",wd=8,Qs=123,Dk=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"upg-100-list",setup(e){const t=Qi(()=>An(()=>Promise.resolve().then(()=>Hv),void 0)),o={lists:xu,asia_lists:Su,uncovered_lists:Au},n=Ee("mapboxToken",ue("")),a=Ee("profileConfig",ue(null)),r=X(()=>{var D;const J=(D=a.value)==null?void 0:D.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(""),d=Nn([]),f=ue(null),k=Nn(null),m=ue(!1),_=qy("my-upg-100-list");_.theme.value="light",Zy(_);const h=ue([]),x=X(()=>h.value.reduce((J,D)=>J+(Number(D.count)||0),0)),S=X(()=>h.value.length),b=ue("");let p=null;const v=ue(!1);function C(J){const D=J===void 0?!v.value:!!J;return D===v.value||(v.value=D,L&&(L.getCanvas().style.cursor=""),ot()),D}function A(){C()}rt([v,m],()=>{Lo(()=>I())});function N(J){if(!J)return;const D=h.value,ee=D.findIndex(le=>le.key===J.key);ee>=0?h.value=D.filter((le,$e)=>$e!==ee):h.value=[...D,J],ot(),b.value=""}const M=["#e69f00","#56b4e9","#009e73","#f0e442","#0072b2","#d55e00","#cc79a7","#999999"],V=ue(""),G=ue("");function U(J){const D=/^#?([0-9a-fA-F]{6})$/.exec(String(J||"").trim());if(!D)return;const ee="#"+D[1].toLowerCase();V.value=V.value===ee?"":ee,ot()}function re(){/^#?[0-9a-fA-F]{6}$/.test(G.value.trim())&&U(G.value)}const B=ue(null);let H=[],L=null,K=null,se=[],ye=null,ne=null,te=null;const ge=typeof window<"u"&&window.MAP_APP_API_URL||void 0||"";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 Me(J){const D=[];for(const ee of J)D.push(ee.zoneKey,hk(ee.zoneKey,ee.color));return["match",["get","zoneKey"],...D,"#9ca3af"]}function We(){if(L.getSource("tapestry"))return;L.addSource("tapestry",{type:"geojson",data:K});const J=m.value?.45:.3,D=m.value?.65:.45;L.addLayer({id:"tapestry-fill",type:"fill",source:"tapestry",paint:{"fill-color":ye,"fill-opacity":["case",["==",["get","zoneKey"],"deaf"],J,D]}}),L.addLayer({id:"tapestry-line",type:"line",source:"tapestry",paint:{"line-color":ye,"line-width":1.2,"line-opacity":.9}})}function Ze(){!L||!L.getSource("tapestry")||L.getLayer("upg-sel-fill")||(L.addLayer({id:"upg-sel-fill",type:"fill",source:"tapestry",filter:["boolean",!1],paint:{"fill-color":"#f59e0b","fill-opacity":.28}}),L.addLayer({id:"upg-sel-line",type:"line",source:"tapestry",filter:["boolean",!1],paint:{"line-color":"#fbbf24","line-width":2.4,"line-opacity":.95}}))}function Xe(){const J=[],D=[],ee=[];for(const $e of h.value)$e.kind==="adm1"?J.push($e.name):$e.kind==="adm0"?D.push($e.key.slice(5)):$e.kind==="zone"&&ee.push($e.key.slice(5));const le=[];return J.length&&le.push(["in",["get","shapeName"],["literal",J]]),D.length&&le.push(["in",["get","iso3"],["literal",D]]),ee.length&&le.push(["in",["get","zoneKey"],["literal",ee]]),le.length?le.length===1?le[0]:["any",...le]:["boolean",!1]}function ot(){if(I(),!L||!L.getLayer("upg-sel-fill"))return;const J=v.value?Xe():["boolean",!1];L.setFilter("upg-sel-fill",J),L.setFilter("upg-sel-line",J);const D=V.value;L.setPaintProperty("upg-sel-fill","fill-color",D||"#f59e0b"),L.setPaintProperty("upg-sel-fill","fill-opacity",D?.55:.28),L.setPaintProperty("upg-sel-line","line-color",D||"#fbbf24")}let Qe=null,gt=!1;function et(){if(!(!L||!L.getLayer("tapestry-fill"))){if(Qe)try{L.off("click","tapestry-fill",Qe)}catch{}Qe=J=>{const D=J&&J.features&&J.features[0];if(D&&v.value){const ee=md(D.properties,{nameMap:p});if(!ee){console.warn("[batch-select] clicked feature has no shapeName/iso3",D.properties);return}ee.count==null&&console.warn("[batch-select] no UUPG count for territory",ee.name,D.properties),N(ee)}},L.on("click","tapestry-fill",Qe),gt||(L.on("mouseenter","tapestry-fill",()=>{L&&(L.getCanvas().style.cursor=v.value?"crosshair":"")}),L.on("mouseleave","tapestry-fill",()=>{L&&(L.getCanvas().style.cursor="")}),gt=!0)}}function xt(){h.value=[],b.value="",V.value="",G.value="",ot()}async function $(){if(!h.value.length)return;const J=bd(h.value,{color:V.value});typeof window<"u"&&(window.__UPG_LAST_CLIPBOARD__=J);let D=!1;try{navigator.clipboard&&navigator.clipboard.writeText?(await navigator.clipboard.writeText(J),D=!0):D=P(J)}catch{D=P(J)}b.value=D?"Copied!":"Copy failed — press Ctrl/Cmd-C",setTimeout(()=>{b.value.startsWith("Copied")&&(b.value="")},1800)}function P(J){try{const D=document.createElement("textarea");D.value=J,D.style.position="fixed",D.style.opacity="0",D.style.top="0",document.body.appendChild(D),D.focus(),D.select();const ee=document.execCommand&&document.execCommand("copy");return document.body.removeChild(D),!!ee}catch{return!1}}function T(J){if(s&&typeof s.cacheSourceData=="function"){const D=_k({records:J,leafZones:se,adm1Counts:gr,iso3Names:sa,countryNameMap:p,centroidFor:ee=>{const le=R(ee);return le?[(le[0][0]+le[1][0])/2,(le[0][1]+le[1][1])/2]:null}});s.cacheSourceData(Xs,{normalizedData:D})}H=bk({records:J,leafZones:se,adm1Counts:gr,iso3Names:sa,countryNameMap:p}),typeof window<"u"&&(window.__UPG_SEARCH__={size:()=>H.length,counts:()=>{const D={pg:0,zone:0,territory:0};for(const ee of H)D[ee.kind]=(D[ee.kind]||0)+1;return D},query:D=>yd(H,D,{limit:wd}).map(ee=>({label:ee.label,kind:ee.kind,target:ee.target})),select:D=>{const ee=yd(H,D,{limit:wd})[0];return ee?(Z(ee.target),{label:ee.label,kind:ee.kind,target:ee.target}):null},feedSize:()=>{const D=s&&s.sources&&s.sources[Xs];return D&&Array.isArray(D.features)&&D.features.length||0},localGeocoder:D=>{const ee=B.value&&B.value.geocoder,le=ee&&ee.options&&ee.options.localGeocoder;return le?le(D).map($e=>$e&&$e.place_name):null}})}function O(J){const D=J&&J.properties||{},ee=D.__upgKind;if(ee==="zone")g(D.__zoneId);else if(ee==="territory")y(D.__shapeName);else{const le=J&&J.geometry,$e=le&&Array.isArray(le.coordinates)?le.coordinates:null;$e&&Number.isFinite($e[0])&&Number.isFinite($e[1])&&L&&L.flyTo({center:[$e[0],$e[1]],zoom:6,duration:800}),Y(D.slug)}}function W(J){if(!J||!L)return;const D=new Set(J.memberIds||[]);if(!D.size)return;let ee=[];try{ee=L.querySourceFeatures("upg").filter(Oe=>{const he=Oe.properties||{};return D.has(he.slug)||D.has(he.id)||D.has(he.peopleGroupId)})}catch{return}if(!ee.length)return;let le=180,$e=90,Mt=-180,bt=-90,Fe=!1;for(const Oe of ee){const he=Oe.geometry&&Oe.geometry.coordinates;!Array.isArray(he)||!Number.isFinite(he[0])||!Number.isFinite(he[1])||(he[0]Mt&&(Mt=he[0]),he[1]<$e&&($e=he[1]),he[1]>bt&&(bt=he[1]),Fe=!0)}Fe&&L.fitBounds([[le,$e],[Mt,bt]],{padding:60,duration:800,maxZoom:6})}function q(){Ae(null),i&&typeof i.selectPeopleGroup=="function"&&i.selectPeopleGroup(null)}function Z(J){!J||!L||(J.type==="pg"?(Number.isFinite(J.lng)&&Number.isFinite(J.lat)&&L.flyTo({center:[J.lng,J.lat],zoom:6,duration:800}),Y(J.slug)):J.type==="zone"?g(J.zoneId):J.type==="territory"&&y(J.shapeName))}function Y(J){if(!J||!i||typeof i.selectPeopleGroup!="function")return;const D=L&&L.getSource&&L.getSource("upg"),le=(D&&D._data&&D._data.features||[]).find($e=>$e.properties&&$e.properties.slug===J);le&&i.selectPeopleGroup(le)}function g(J){if(!J||!L||!K)return;const D=R(ee=>ee.properties&&ee.properties.zoneKey===J);D&&L.fitBounds(D,{padding:40,duration:800,maxZoom:6})}function y(J){if(!J||!L||!K)return;const D=R(ee=>{const le=ee.properties||{};return le.shapeName===J||le.iso3===J});D&&L.fitBounds(D,{padding:40,duration:800,maxZoom:6})}function R(J){let D=180,ee=90,le=-180,$e=-90,Mt=!1;const bt=Fe=>{if(typeof Fe[0]=="number"){const[Oe,he]=Fe;Oele&&(le=Oe),he$e&&($e=he),Mt=!0;return}for(const Oe of Fe)bt(Oe)};for(const Fe of K.features)J(Fe)&&bt(Fe.geometry.coordinates);return Mt?[[D,ee],[le,$e]]:null}function j(J){const D=new Set,ee=le=>{le.children&&le.children.length?le.children.forEach(ee):D.add(le.zoneKey??le.id)};return ee(J),D}let ie=null;function ae(J){if(![...j(J)].length)return;const ee=[],le=Fe=>{Fe.children&&Fe.children.length?Fe.children.forEach(le):ee.push(Fe)};le(J);const $e=h.value,Mt=new Set($e.filter(Fe=>Fe.kind==="zone").map(Fe=>Fe.key));if(ee.every(Fe=>Mt.has("zone:"+(Fe.zoneKey??Fe.id)))){const Fe=new Set(ee.map(Oe=>"zone:"+(Oe.zoneKey??Oe.id)));h.value=$e.filter(Oe=>!Fe.has(Oe.key))}else{const Fe=ee.filter(Oe=>!Mt.has("zone:"+(Oe.zoneKey??Oe.id))).map(Oe=>({key:"zone:"+(Oe.zoneKey??Oe.id),name:Oe.label||Oe.id,count:Number(Oe.count)||0,kind:"zone"}));h.value=[...$e,...Fe]}ot(),b.value=""}function F(){const J=new Set;for(const D of h.value)D.kind==="zone"&&J.add(D.key.slice(5));return J}function w(){const J=new Map,D=ee=>{const le=j(ee);ee.label&&J.set(ee.label,le),ee.children&&ee.children.length&&ee.children.forEach(D)};for(const ee of d.value)D(ee);return J}function I(){if(typeof document>"u")return;const J=document.querySelector("my-upg-100-list-map"),ee=(J&&J.shadowRoot||document).querySelectorAll(".stl-row");if(!ee.length)return;if(!v.value){ee.forEach(bt=>bt.classList.remove("upg-batch-row"));return}const le=F(),$e=w(),Mt=m.value;ee.forEach(bt=>{const Fe=bt.querySelector(".stl-name"),Oe=Fe?Fe.textContent.trim():"",he=Oe&&$e.get(Oe),Ye=!!(he&&he.size&&[...he].every(lt=>le.has(lt)));bt.classList.toggle("upg-batch-row",Ye),bt.classList.toggle("dark",Ye&&Mt)})}let oe=null;function de(){if(typeof document>"u"||oe)return;const J=document.querySelector("my-upg-100-list-map"),ee=(J&&J.shadowRoot||document).querySelector(".stl-rows");ee&&(oe=new MutationObserver(()=>{requestAnimationFrame(()=>I())}),oe.observe(ee,{childList:!0,subtree:!0}))}Ft("onSemanticTreeSelect",Ae);function fe(J){var $e;const D=f.value;if(!D)return;if(J==="packet"){c.value="Prayer List — coming soon",setTimeout(()=>{c.value=""},2600);return}const ee=String((($e=a.value)==null?void 0:$e.assetsBase)||"./assets").replace(/\/+$/,""),le=document.createElement("a");le.href=`${ee}/posters/${D}.webp`,le.download=`doxa-upg-100-${D}-poster.webp`,document.body.appendChild(le),le.click(),le.remove()}function Ae(J){if(!L||!L.getLayer("tapestry-fill"))return;if(v.value){J&&ae(J);return}if(!J){ie=null,f.value=null,L.setFilter("tapestry-fill",null),L.setFilter("tapestry-line",null),L.setPaintProperty("upg-pins","circle-opacity",.85);return}ie=J;const D=[...j(J)];f.value=D.length===1?D[0]:J.id??null;const ee=["in",["get","zoneKey"],["literal",D]];L.setFilter("tapestry-fill",ee),L.setFilter("tapestry-line",ee),L.getLayer("upg-pins")&&L.setPaintProperty("upg-pins","circle-opacity",["case",["in",["get","zoneKey"],["literal",D]],.95,.05]);const le=R($e=>D.includes($e.properties.zoneKey));le&&L.fitBounds(le,{padding:40,duration:700,maxZoom:6})}function we(){!L||!K||(We(),typeof te=="function"&&te(),Ze(),et(),ot(),f.value&&L.getLayer("tapestry-fill")&&Ae(ie))}function ft(){L&&(m.value=!m.value,_.theme.value=m.value?"dark":"light",L.setStyle(m.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11"),L.once("style.load",we))}function Re(){!L||!L.getLayer("upg-pins")||(L.on("click","upg-pins",J=>{const D=J&&J.features&&J.features[0];D&&i&&typeof i.selectPeopleGroup=="function"&&i.selectPeopleGroup(D)}),L.on("mouseenter","upg-pins",()=>{L&&(L.getCanvas().style.cursor="pointer")}),L.on("mouseleave","upg-pins",()=>{L&&(L.getCanvas().style.cursor="")}))}let Ke=null;function wn(J){var le;const D=((le=J==null?void 0:J.detail)==null?void 0:le.listId)??null;if(!D){Ae(null);return}const ee=ia(d.value,D);ee&&Ae(ee)}function ia(J,D){for(const ee of J||[]){if((ee.zoneKey||ee.id)===D)return ee;const le=ee.children&&ia(ee.children,D);if(le)return le}return null}function Yk(){const J=qs(o,{deafCount:Qs});d.value=J,se=pd(J);const D={};for(const ee of o.lists||[])D[ee.id]=ee.selector;for(const ee of o.asia_lists||[])D[ee.id]=ee.selector;for(const ee of o.uncovered_lists||[])D[ee.id]=ee.selector;D.deaf={type:"affinity_bloc",rop1:"A017"};for(const ee of se)ee.selector=D[ee.id];ye=Me(se)}async function Ad(){if(ge)try{const D=await fetch(`${ge}/api/people-groups/list?fields=slug,name,country_code,wagf_region,wagf_block,rop1,population,latitude,longitude&lang=en`,{cache:"no-store"});if(!D.ok)throw new Error(`list ${D.status}`);const ee=ld(cd(await D.json()));p=hd(ee),d.value=qs(o,{deafCount:Qs,records:ee})}catch{}}return to(async()=>{var $e,Mt,bt,Fe,Oe;Yk();const J=window.mapboxgl,D=(n==null?void 0:n.value)||(($e=a==null?void 0:a.value)==null?void 0:$e.tk)||"";if(!J){c.value="⚠ mapbox-gl not loaded",u.value="mapbox-gl did not load. The list and legend are unaffected.",Ad();return}if(!D){c.value="⚠ no mapbox token",u.value="No Mapbox token configured. The list and legend are unaffected.",Ad();return}J.accessToken=D;try{const he=l.value&&l.value.getRootNode();if(he instanceof ShadowRoot){const Ye="https://api.mapbox.com/mapbox-gl-js/v3.3.0/mapbox-gl.css";if(!he.querySelector(`link[href="${Ye}"]`)){const lt=document.createElement("link");lt.rel="stylesheet",lt.href=Ye,he.prepend(lt)}}}catch{}L=new J.Map({container:l.value,style:"mapbox://styles/mapbox/light-v11",center:[35,20],zoom:1.5,projection:"mercator"}),k.value=L,ne=kk(((Mt=l.value)==null?void 0:Mt.parentElement)||null,{enabled:r.value}),typeof window<"u"&&(window.__UPG_MAP__=L),window.__UPG_SELECT__={get list(){return h.value.map(he=>({...he}))},get total(){return x.value},get count(){return S.value},get color(){return V.value},get batchMode(){return v.value},setColor:he=>U(he),setBatchMode:he=>C(he),clipboardText:()=>bd(h.value,{color:V.value}),clear:()=>xt(),toggleByProps:he=>{const Ye=md(he,{nameMap:p});return Ye?(N(Ye),{...Ye}):null},toggleLegendRow:he=>{const Ye=Do=>{for(const at of Do){if(at.label===he)return at;if(at.children&&at.children.length){const lo=Ye(at.children);if(lo)return lo}}return null},lt=Ye(d.value);return lt?(ae(lt),{label:lt.label,zoneKeys:[...j(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(!L||!K||!L.getLayer("upg-sel-fill"))return-1;const he=new Set,Ye=new Set,lt=new Set;for(const at of h.value)at.kind==="zone"?he.add(at.key.slice(5)):at.kind==="adm1"?Ye.add(at.name):at.kind==="adm0"&<.add(at.key.slice(5));let Do=0;for(const at of K.features){const lo=at.properties||{};(he.has(lo.zoneKey)||Ye.has(lo.shapeName)||lt.has(lo.iso3))&&Do++}return Do},zoneKeysForRow:he=>{const Ye=Do=>{for(const at of Do){if(at.label===he)return at;if(at.children&&at.children.length){const lo=Ye(at.children);if(lo)return lo}}return null},lt=Ye(d.value);return lt?[...j(lt)]:null}};try{c.value="loading boundaries…";const he=De=>{var ct;return`${String(((ct=a.value)==null?void 0:ct.assetsBase)||"./assets").replace(/\/+$/,"")}/boundaries/${De}`},Ye=De=>fetch(he(De)).then(ct=>{if(!ct.ok)throw new Error(`boundary fetch ${ct.status} ${De}`);return ct.json()}),[lt,Do,at]=await Promise.all([Ye("world-adm0.geojson"),Ye("gb-IND-ADM1.geojson"),Ye("gb-CHN-ADM1.geojson")]);if(c.value="fetching 2106 UUPGs…",!ge)throw new Error("No API base configured — set window.MAP_APP_API_URL or VITE_API_BASE_URL. Failing closed (no default host).");const ei=await fetch(`${ge}/api/people-groups/list?fields=slug,name,country_code,wagf_region,wagf_block,rop1,population,latitude,longitude&lang=en`,{cache:"no-store"});if(!ei.ok)throw new Error(`list ${ei.status}`);const xn=ld(cd(await ei.json()));p=hd(xn),d.value=qs(o,{deafCount:Qs,records:xn});const{tapestry:Jk,perZone:qk}=gk(se,{records:xn,adm0:lt,adm1Ind:Do,adm1Chn:at});K=jo(Jk),T(xn);const ti=[],la={},{evaluate:Zk}=await An(async()=>{const{evaluate:De}=await Promise.resolve().then(()=>sk);return{evaluate:De}},void 0);for(const De of se)if(De.selector&&De.selector.type==="pg_slugs")for(const ct of De.selector.values||[])ct in la||(la[ct]=De.zoneKey);else try{for(const ct of Zk(De.selector,xn))ct in la||(la[ct]=De.zoneKey)}catch(ct){console.warn("zone selector skipped",De.id,ct&&ct.message)}for(const De of xn){const ct=Number(De.latitude),ni=Number(De.longitude);!isFinite(ct)||!isFinite(ni)||ti.push({type:"Feature",geometry:{type:"Point",coordinates:[ni,ct]},properties:{slug:De.slug,zoneKey:la[De.slug]||"",name:De.name||De.slug||"",population:De.population??0,countryName:De.country_code_label||"",country:De.country_code||""}})}const Xk=jo({type:"FeatureCollection",features:ti});te=()=>{L.getSource("upg")||(L.addSource("upg",{type:"geojson",data:Xk}),L.addLayer({id:"upg-pins",type:"circle",source:"upg",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,2.5,4,4,8,6],"circle-color":ye,"circle-opacity":.85,"circle-stroke-width":.6,"circle-stroke-color":"rgba(255,255,255,0.6)"}}),Re())};let oi=!0;const Sn=()=>{oi&&(oi=!1,L.off("style.load",Sn),L.off("idle",Sn),we())};if(L.isStyleLoaded())Sn();else{L.once("style.load",Sn),L.once("idle",Sn);const De=setInterval(()=>{if(!oi||!L){clearInterval(De);return}let ct=!1;try{ct=L.isStyleLoaded()}catch{clearInterval(De);return}ct&&(clearInterval(De),Sn())},120);setTimeout(()=>clearInterval(De),15e3)}const Qk=[...qk.values()].filter(De=>De>=1).length;c.value=`${K.features.length} polys · ${Qk}/26 zones · ${ti.length} pins`}catch(he){c.value="⚠ "+(he&&he.message?he.message:String(he))}let ee=0;const le=()=>{const he=typeof document<"u"&&document.querySelector("my-upg-100-list-map"),Ye=he&&he.shadowRoot||(typeof document<"u"?document:null);if(Ye&&Ye.querySelector(".stl-rows")){de(),I();return}ee++<40&&setTimeout(le,250)};le();{const he=(Oe=(Fe=(bt=l.value)==null?void 0:bt.getRootNode)==null?void 0:Fe.call(bt))==null?void 0:Oe.host;he&&(Ke=wn,he.addEventListener("doxa:select-zone",Ke))}}),To(()=>{var J,D,ee;if(Ke){const le=(ee=(D=(J=l.value)==null?void 0:J.getRootNode)==null?void 0:D.call(J))==null?void 0:ee.host;le==null||le.removeEventListener("doxa:select-zone",Ke),Ke=null}if(oe){try{oe.disconnect()}catch{}oe=null}if(ne){try{ne()}catch{}ne=null}L&&(L.remove(),L=null),K=null}),(J,D)=>{var ee;return z(),Q("div",wk,[E("div",{ref_key:"mapEl",ref:l,class:"upg-map"},null,512),u.value?(z(),Q("div",xk,[D[1]||(D[1]=E("strong",null,"Map unavailable",-1)),dt(ce(u.value),1)])):me("",!0),r.value?(z(),Q(Ce,{key:1},[D[2]||(D[2]=E("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),D[3]||(D[3]=E("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1))],64)):me("",!0),k.value?(z(),st(tk,{key:2,ref_key:"geocoderRef",ref:B,"map-instance":k.value,"access-token":be(n)||((ee=be(a))==null?void 0:ee.tk)||"","data-source-id":Xs,"is-dark":m.value,placeholder:Ok,"active-context":Fk,onPeopleGroupResult:O,onAggregateResult:W,onClear:q},null,8,["map-instance","access-token","is-dark"])):me("",!0),k.value?(z(),st(r1,{key:3},{default:Bt(()=>[je(i1,{map:k.value,"is-dark":m.value},null,8,["map","is-dark"]),je(l1,{map:k.value,"is-dark":m.value},null,8,["map","is-dark"]),je(c1,{map:k.value,"is-dark":m.value},null,8,["map","is-dark"]),je(p1,{"map-container":l.value,"is-dark":m.value},null,8,["map-container","is-dark"]),je(f1,{"is-dark":m.value,onToggle:ft},null,8,["is-dark"]),je(ad,{"is-dark":m.value,"embed-path":"my-upg-100-list/upg-100-list/index.html"},null,8,["is-dark"]),je(qo,{"is-dark":m.value,active:v.value,class:Le({"upg-batch-on":v.value}),"aria-pressed":v.value?"true":"false",title:"Batch Select",onClick:A},{default:Bt(()=>[...D[4]||(D[4]=[E("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[E("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1"}),E("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1"}),E("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1"}),E("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1"})],-1)])]),_:1},8,["is-dark","active","class","aria-pressed"])]),_:1})):me("",!0),E("div",Sk,[d.value.length?(z(),st(Cu,{key:0,nodes:d.value,columns:["count","pop"],title:kd,"export-enabled":!0,onSelect:Ae,onExport:fe},null,8,["nodes"])):me("",!0)]),E("div",Ak,[d.value.length?(z(),st(a1,{key:0,"legend-type":"upg-100",nodes:d.value,columns:["count","pop"],"column-label":"UPG 100",title:kd,"is-dark":m.value,"popup-action":"pray"},null,8,["nodes","is-dark"])):me("",!0)]),E("div",$k,[be(i)&&be(i).selectedPeopleGroup?(z(),Q("div",{key:0,class:Le(["upg-detail-panel pg-detail-root",{dark:m.value}])},[je(be(t),{peopleGroup:be(i).selectedPeopleGroup,dark:m.value,action:"pray"},null,8,["peopleGroup","dark"])],2)):me("",!0)]),v.value?(z(),Q("div",Lk,[D[5]||(D[5]=E("div",{class:"upg-hud-hint"}," Tap territories on the map or legend rows to add · tap again to remove ",-1)),S.value?(z(),Q("div",Ck,[E("span",null,ce(S.value)+" territor"+ce(S.value===1?"y":"ies")+" ·",1),E("span",Tk,ce(x.value)+" UUPG",1),E("span",{class:Le(["upg-hud-band",{ok:x.value>=50&&x.value<=100}])},ce(x.value>=50&&x.value<=100?"✓ 50–100 band":"band 50–100"),3)])):me("",!0),S.value?(z(),Q("div",Ek,ce(h.value.map(le=>le.name).join(", ")),1)):me("",!0),S.value?(z(),Q("div",Pk,[(z(),Q(Ce,null,At(M,le=>E("button",{key:le,class:Le(["upg-swatch",{active:V.value===le}]),"data-color":le,style:tt({background:le}),title:le,onClick:$e=>U(le)},null,14,Mk)),64)),_p(E("input",{"onUpdate:modelValue":D[0]||(D[0]=le=>G.value=le),class:"upg-hex",placeholder:"#hex",spellcheck:"false",onChange:re,onKeyup:nf(re,["enter"])},null,544),[[Qg,G.value]])])):me("",!0),S.value?(z(),Q("div",Nk,[E("button",{class:"upg-hud-btn copy",onClick:$},"Copy selection"),E("button",{class:"upg-hud-btn clear",onClick:xt},"Clear")])):me("",!0),S.value?(z(),Q("div",Ik,ce(b.value),1)):me("",!0)])):me("",!0),E("div",Rk,ce(c.value),1)])}}}},Symbol.toStringTag,{value:"Module"})),Bk=` + `));return!0}function gd(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 fd=()=>({type:"FeatureCollection",features:[]});function bk(e,t){const o=ra(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 yk(e){return typeof e.id=="string"&&e.id.startsWith("asia-")}function Xs(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 _k(e,t){const{records:o=[],adm0:n,adm1Ind:a,adm1Chn:r}=t||{},s=fd();if(yk(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(Xs(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(Xs(u,e))}return s}if(!e.selector)return s;const i=bk(e,o);if(n&&i.size)for(const l of n.features||[])l.properties&&i.has(l.properties.iso3)&&s.features.push(Xs(l,e));return s}function vk(e,t){const o=fd(),n=new Map;for(const a of e){if(a.id==="deaf"){n.set(a.zoneKey??a.id,0);continue}const r=_k(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 kk={"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 wk(e,t){const o=kk[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},hd={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},sa={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 md(e){const t={...sa};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 bd(e,t={}){if(!e||typeof e!="object")return null;const o=t.nameMap||sa;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]||sa[n]||n,r=Object.prototype.hasOwnProperty.call(hd,n)?hd[n]:null;return{key:"adm0:"+n,name:a,count:r,kind:"adm0"}}return null}function yd(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 kn(e){return String(e??"").normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().trim()}function xk(e){return kn(e).split(/[\s,;]+/).filter(Boolean)}function Sk(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 d=Number(c.latitude),h=Number(c.longitude);if(!Number.isFinite(d)||!Number.isFinite(h))continue;const v=c.name||u;i.add(u),s.push({label:v,kind:"pg",target:{type:"pg",slug:u,lng:h,lat:d},_hay:kn(v)})}for(const c of o){if(!c)continue;const u=c.zoneKey||c.id,d=c.label||u;u&&s.push({label:d,kind:"zone",target:{type:"zone",zoneId:u},_hay:kn(d)})}for(const c of Object.keys(n))s.push({label:c,kind:"territory",target:{type:"territory",shapeName:c},_hay:kn(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:kn(u)})}return s}const Ak={zone:0,territory:1,pg:2};function $k(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,d,h)=>!d||!Number.isFinite(d[0])||!Number.isFinite(d[1])?null:{name:u,slug:h.__synthSlug,latitude:d[1],longitude:d[0],...h};for(const u of o){if(!u)continue;const d=u.zoneKey||u.id,h=u.label||d;if(!d)continue;const v=typeof s=="function"?s(_=>_&&_.properties&&_.properties.zoneKey===d):null,f=l(h,v,{__upgKind:"zone",__zoneId:d,__synthSlug:`__zone__${d}`});f&&i.push(f)}for(const u of Object.keys(n)){const d=typeof s=="function"?s(v=>v&&v.properties&&v.properties.shapeName===u):null,h=l(u,d,{__upgKind:"territory",__shapeName:u,__synthSlug:`__terr__${u}`});h&&i.push(h)}const c=r||a;for(const u of Object.keys(a)){const d=c&&c[u]||a[u]||u,h=typeof s=="function"?s(f=>f&&f.properties&&f.properties.iso3===u):null,v=l(d,h,{__upgKind:"territory",__shapeName:u,__synthSlug:`__terr__${u}`});v&&i.push(v)}return i}function _d(e,t,o={}){const n=o.limit??8,a=xk(t);if(!a.length)return[];const r=a[0],s=[];for(const i of e){let l=!0;for(const d of a)if(!i._hay.includes(d)){l=!1;break}if(!l)continue;const c=i._hay.startsWith(r)?0:1,u=i._hay===kn(t)?-1:0;s.push({e:i,starts:c,exact:u,kr:Ak[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 Lk="rgba(120, 128, 134, 0.28)",vd="36px",kd=()=>{};function Ck(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return kd;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return kd;const a=S=>S.classList.contains("map-scroll-edge--left");for(const S of n)S.style.background=`linear-gradient(${a(S)?"to right":"to left"}, ${Lk} ${vd}, transparent ${vd})`,S.style.opacity="0",S.style.transition="opacity 0.16s ease",S.style.userSelect="none",S.style.webkitUserSelect="none";const r=S=>{S.style.opacity="1"},s=S=>{S.style.opacity="0"},i=()=>n.find(S=>!a(S))||null,l=new Set;let c=!1,u=null;const d=()=>{for(const S of n)l.has(S)||s(S)},h=()=>{const S=i();S&&(r(S),u&&clearTimeout(u),u=setTimeout(d,250))},v=()=>h(),f=S=>{if(!(S.touches&&S.touches.length===1))return;const k=S.target;k&&k.classList&&k.classList.contains("map-scroll-edge")||h()},_=()=>{u&&clearTimeout(u),d()};e.addEventListener("wheel",v,{passive:!0}),e.addEventListener("touchmove",f,{passive:!0}),e.addEventListener("touchend",_,{passive:!0}),e.addEventListener("touchcancel",_,{passive:!0});const m=()=>{c||h()};typeof window<"u"&&window.addEventListener("scroll",m,{passive:!0});const x=[];for(const S of n){const k=()=>{l.add(S),r(S)},p=()=>{l.delete(S),s(S)},b=()=>{c=!0,r(S)},$=()=>{c=!1,s(S)};S.addEventListener("mouseenter",k),S.addEventListener("mouseleave",p),S.addEventListener("touchstart",b,{passive:!0}),S.addEventListener("touchend",$,{passive:!0}),x.push(()=>{S.removeEventListener("mouseenter",k),S.removeEventListener("mouseleave",p),S.removeEventListener("touchstart",b),S.removeEventListener("touchend",$)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",v),e.removeEventListener("touchmove",f),e.removeEventListener("touchend",_),e.removeEventListener("touchcancel",_),typeof window<"u"&&window.removeEventListener("scroll",m);for(const k of x)k();for(const k of n)s(k)}}const Tk={class:"upg-root"},Ek={key:0,class:"upg-map-err"},Pk={class:"upg-legend-desktop-slot"},Mk={class:"upg-legend-mobile-slot"},Nk={class:"upg-detail-desktop-slot"},Ik={key:4,class:"upg-hud"},Rk={key:0,class:"upg-hud-head"},Fk={class:"upg-hud-total"},Ok={key:1,class:"upg-hud-names"},Dk={key:2,class:"upg-hud-swatches"},Bk=["data-color","title","onClick"],jk={key:3,class:"upg-hud-actions"},Gk={key:4,class:"upg-hud-flash"},Uk={class:"upg-status"},Qs="upg-search",wd="My UPG 100 List — Legend",Kk="people-groups",zk="Search people group, zone, or territory…",xd=8,ei=123,Hk=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"upg-100-list",setup(e){const t=el(()=>An(()=>Promise.resolve().then(()=>qv),void 0)),o={lists:Su,asia_lists:Au,uncovered_lists:$u},n=Ee("mapboxToken",ue("")),a=Ee("profileConfig",ue(null)),r=X(()=>{var D;const J=(D=a.value)==null?void 0:D.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(""),d=Nn([]),h=ue(null),v=Nn(null),f=ue(!1),_=Xy("my-upg-100-list");_.theme.value="light",Qy(_);const m=ue([]),x=X(()=>m.value.reduce((J,D)=>J+(Number(D.count)||0),0)),S=X(()=>m.value.length),k=ue("");let p=null;const b=ue(!1);function $(J){const D=J===void 0?!b.value:!!J;return D===b.value||(b.value=D,C&&(C.getCanvas().style.cursor=""),ot()),D}function A(){$()}rt([b,f],()=>{Lo(()=>I())});function P(J){if(!J)return;const D=m.value,ee=D.findIndex(le=>le.key===J.key);ee>=0?m.value=D.filter((le,$e)=>$e!==ee):m.value=[...D,J],ot(),k.value=""}const N=["#e69f00","#56b4e9","#009e73","#f0e442","#0072b2","#d55e00","#cc79a7","#999999"],V=ue(""),G=ue("");function U(J){const D=/^#?([0-9a-fA-F]{6})$/.exec(String(J||"").trim());if(!D)return;const ee="#"+D[1].toLowerCase();V.value=V.value===ee?"":ee,ot()}function re(){/^#?[0-9a-fA-F]{6}$/.test(G.value.trim())&&U(G.value)}const B=ue(null);let z=[],C=null,K=null,se=[],ye=null,ne=null,te=null;const ge=typeof window<"u"&&window.MAP_APP_API_URL||void 0||"";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 Me(J){const D=[];for(const ee of J)D.push(ee.zoneKey,wk(ee.zoneKey,ee.color));return["match",["get","zoneKey"],...D,"#9ca3af"]}function We(){if(C.getSource("tapestry"))return;C.addSource("tapestry",{type:"geojson",data:K});const J=f.value?.45:.3,D=f.value?.65:.45;C.addLayer({id:"tapestry-fill",type:"fill",source:"tapestry",paint:{"fill-color":ye,"fill-opacity":["case",["==",["get","zoneKey"],"deaf"],J,D]}}),C.addLayer({id:"tapestry-line",type:"line",source:"tapestry",paint:{"line-color":ye,"line-width":1.2,"line-opacity":.9}})}function Ze(){!C||!C.getSource("tapestry")||C.getLayer("upg-sel-fill")||(C.addLayer({id:"upg-sel-fill",type:"fill",source:"tapestry",filter:["boolean",!1],paint:{"fill-color":"#f59e0b","fill-opacity":.28}}),C.addLayer({id:"upg-sel-line",type:"line",source:"tapestry",filter:["boolean",!1],paint:{"line-color":"#fbbf24","line-width":2.4,"line-opacity":.95}}))}function Xe(){const J=[],D=[],ee=[];for(const $e of m.value)$e.kind==="adm1"?J.push($e.name):$e.kind==="adm0"?D.push($e.key.slice(5)):$e.kind==="zone"&&ee.push($e.key.slice(5));const le=[];return J.length&&le.push(["in",["get","shapeName"],["literal",J]]),D.length&&le.push(["in",["get","iso3"],["literal",D]]),ee.length&&le.push(["in",["get","zoneKey"],["literal",ee]]),le.length?le.length===1?le[0]:["any",...le]:["boolean",!1]}function ot(){if(I(),!C||!C.getLayer("upg-sel-fill"))return;const J=b.value?Xe():["boolean",!1];C.setFilter("upg-sel-fill",J),C.setFilter("upg-sel-line",J);const D=V.value;C.setPaintProperty("upg-sel-fill","fill-color",D||"#f59e0b"),C.setPaintProperty("upg-sel-fill","fill-opacity",D?.55:.28),C.setPaintProperty("upg-sel-line","line-color",D||"#fbbf24")}let Qe=null,gt=!1;function et(){if(!(!C||!C.getLayer("tapestry-fill"))){if(Qe)try{C.off("click","tapestry-fill",Qe)}catch{}Qe=J=>{const D=J&&J.features&&J.features[0];if(D&&b.value){const ee=bd(D.properties,{nameMap:p});if(!ee){console.warn("[batch-select] clicked feature has no shapeName/iso3",D.properties);return}ee.count==null&&console.warn("[batch-select] no UUPG count for territory",ee.name,D.properties),P(ee)}},C.on("click","tapestry-fill",Qe),gt||(C.on("mouseenter","tapestry-fill",()=>{C&&(C.getCanvas().style.cursor=b.value?"crosshair":"")}),C.on("mouseleave","tapestry-fill",()=>{C&&(C.getCanvas().style.cursor="")}),gt=!0)}}function xt(){m.value=[],k.value="",V.value="",G.value="",ot()}async function L(){if(!m.value.length)return;const J=yd(m.value,{color:V.value});typeof window<"u"&&(window.__UPG_LAST_CLIPBOARD__=J);let D=!1;try{navigator.clipboard&&navigator.clipboard.writeText?(await navigator.clipboard.writeText(J),D=!0):D=M(J)}catch{D=M(J)}k.value=D?"Copied!":"Copy failed — press Ctrl/Cmd-C",setTimeout(()=>{k.value.startsWith("Copied")&&(k.value="")},1800)}function M(J){try{const D=document.createElement("textarea");D.value=J,D.style.position="fixed",D.style.opacity="0",D.style.top="0",document.body.appendChild(D),D.focus(),D.select();const ee=document.execCommand&&document.execCommand("copy");return document.body.removeChild(D),!!ee}catch{return!1}}function T(J){if(s&&typeof s.cacheSourceData=="function"){const D=$k({records:J,leafZones:se,adm1Counts:gr,iso3Names:sa,countryNameMap:p,centroidFor:ee=>{const le=R(ee);return le?[(le[0][0]+le[1][0])/2,(le[0][1]+le[1][1])/2]:null}});s.cacheSourceData(Qs,{normalizedData:D})}z=Sk({records:J,leafZones:se,adm1Counts:gr,iso3Names:sa,countryNameMap:p}),typeof window<"u"&&(window.__UPG_SEARCH__={size:()=>z.length,counts:()=>{const D={pg:0,zone:0,territory:0};for(const ee of z)D[ee.kind]=(D[ee.kind]||0)+1;return D},query:D=>_d(z,D,{limit:xd}).map(ee=>({label:ee.label,kind:ee.kind,target:ee.target})),select:D=>{const ee=_d(z,D,{limit:xd})[0];return ee?(Z(ee.target),{label:ee.label,kind:ee.kind,target:ee.target}):null},feedSize:()=>{const D=s&&s.sources&&s.sources[Qs];return D&&Array.isArray(D.features)&&D.features.length||0},localGeocoder:D=>{const ee=B.value&&B.value.geocoder,le=ee&&ee.options&&ee.options.localGeocoder;return le?le(D).map($e=>$e&&$e.place_name):null}})}function O(J){const D=J&&J.properties||{},ee=D.__upgKind;if(ee==="zone")g(D.__zoneId);else if(ee==="territory")y(D.__shapeName);else{const le=J&&J.geometry,$e=le&&Array.isArray(le.coordinates)?le.coordinates:null;$e&&Number.isFinite($e[0])&&Number.isFinite($e[1])&&C&&C.flyTo({center:[$e[0],$e[1]],zoom:6,duration:800}),Y(D.slug)}}function W(J){if(!J||!C)return;const D=new Set(J.memberIds||[]);if(!D.size)return;let ee=[];try{ee=C.querySourceFeatures("upg").filter(Oe=>{const he=Oe.properties||{};return D.has(he.slug)||D.has(he.id)||D.has(he.peopleGroupId)})}catch{return}if(!ee.length)return;let le=180,$e=90,Mt=-180,bt=-90,Fe=!1;for(const Oe of ee){const he=Oe.geometry&&Oe.geometry.coordinates;!Array.isArray(he)||!Number.isFinite(he[0])||!Number.isFinite(he[1])||(he[0]Mt&&(Mt=he[0]),he[1]<$e&&($e=he[1]),he[1]>bt&&(bt=he[1]),Fe=!0)}Fe&&C.fitBounds([[le,$e],[Mt,bt]],{padding:60,duration:800,maxZoom:6})}function q(){Ae(null),i&&typeof i.selectPeopleGroup=="function"&&i.selectPeopleGroup(null)}function Z(J){!J||!C||(J.type==="pg"?(Number.isFinite(J.lng)&&Number.isFinite(J.lat)&&C.flyTo({center:[J.lng,J.lat],zoom:6,duration:800}),Y(J.slug)):J.type==="zone"?g(J.zoneId):J.type==="territory"&&y(J.shapeName))}function Y(J){if(!J||!i||typeof i.selectPeopleGroup!="function")return;const D=C&&C.getSource&&C.getSource("upg"),le=(D&&D._data&&D._data.features||[]).find($e=>$e.properties&&$e.properties.slug===J);le&&i.selectPeopleGroup(le)}function g(J){if(!J||!C||!K)return;const D=R(ee=>ee.properties&&ee.properties.zoneKey===J);D&&C.fitBounds(D,{padding:40,duration:800,maxZoom:6})}function y(J){if(!J||!C||!K)return;const D=R(ee=>{const le=ee.properties||{};return le.shapeName===J||le.iso3===J});D&&C.fitBounds(D,{padding:40,duration:800,maxZoom:6})}function R(J){let D=180,ee=90,le=-180,$e=-90,Mt=!1;const bt=Fe=>{if(typeof Fe[0]=="number"){const[Oe,he]=Fe;Oele&&(le=Oe),he$e&&($e=he),Mt=!0;return}for(const Oe of Fe)bt(Oe)};for(const Fe of K.features)J(Fe)&&bt(Fe.geometry.coordinates);return Mt?[[D,ee],[le,$e]]:null}function j(J){const D=new Set,ee=le=>{le.children&&le.children.length?le.children.forEach(ee):D.add(le.zoneKey??le.id)};return ee(J),D}let ie=null;function ae(J){if(![...j(J)].length)return;const ee=[],le=Fe=>{Fe.children&&Fe.children.length?Fe.children.forEach(le):ee.push(Fe)};le(J);const $e=m.value,Mt=new Set($e.filter(Fe=>Fe.kind==="zone").map(Fe=>Fe.key));if(ee.every(Fe=>Mt.has("zone:"+(Fe.zoneKey??Fe.id)))){const Fe=new Set(ee.map(Oe=>"zone:"+(Oe.zoneKey??Oe.id)));m.value=$e.filter(Oe=>!Fe.has(Oe.key))}else{const Fe=ee.filter(Oe=>!Mt.has("zone:"+(Oe.zoneKey??Oe.id))).map(Oe=>({key:"zone:"+(Oe.zoneKey??Oe.id),name:Oe.label||Oe.id,count:Number(Oe.count)||0,kind:"zone"}));m.value=[...$e,...Fe]}ot(),k.value=""}function F(){const J=new Set;for(const D of m.value)D.kind==="zone"&&J.add(D.key.slice(5));return J}function w(){const J=new Map,D=ee=>{const le=j(ee);ee.label&&J.set(ee.label,le),ee.children&&ee.children.length&&ee.children.forEach(D)};for(const ee of d.value)D(ee);return J}function I(){if(typeof document>"u")return;const J=document.querySelector("my-upg-100-list-map"),ee=(J&&J.shadowRoot||document).querySelectorAll(".stl-row");if(!ee.length)return;if(!b.value){ee.forEach(bt=>bt.classList.remove("upg-batch-row"));return}const le=F(),$e=w(),Mt=f.value;ee.forEach(bt=>{const Fe=bt.querySelector(".stl-name"),Oe=Fe?Fe.textContent.trim():"",he=Oe&&$e.get(Oe),Ye=!!(he&&he.size&&[...he].every(lt=>le.has(lt)));bt.classList.toggle("upg-batch-row",Ye),bt.classList.toggle("dark",Ye&&Mt)})}let oe=null;function de(){if(typeof document>"u"||oe)return;const J=document.querySelector("my-upg-100-list-map"),ee=(J&&J.shadowRoot||document).querySelector(".stl-rows");ee&&(oe=new MutationObserver(()=>{requestAnimationFrame(()=>I())}),oe.observe(ee,{childList:!0,subtree:!0}))}Ft("onSemanticTreeSelect",Ae);function fe(J){var $e;const D=h.value;if(!D)return;if(J==="packet"){c.value="Prayer List — coming soon",setTimeout(()=>{c.value=""},2600);return}const ee=String((($e=a.value)==null?void 0:$e.assetsBase)||"./assets").replace(/\/+$/,""),le=document.createElement("a");le.href=`${ee}/posters/${D}.webp`,le.download=`doxa-upg-100-${D}-poster.webp`,document.body.appendChild(le),le.click(),le.remove()}function Ae(J){if(!C||!C.getLayer("tapestry-fill"))return;if(b.value){J&&ae(J);return}if(!J){ie=null,h.value=null,C.setFilter("tapestry-fill",null),C.setFilter("tapestry-line",null),C.setPaintProperty("upg-pins","circle-opacity",1);return}ie=J;const D=[...j(J)];h.value=D.length===1?D[0]:J.id??null;const ee=["in",["get","zoneKey"],["literal",D]];C.setFilter("tapestry-fill",ee),C.setFilter("tapestry-line",ee),C.getLayer("upg-pins")&&C.setPaintProperty("upg-pins","circle-opacity",["case",["in",["get","zoneKey"],["literal",D]],.95,.05]);const le=R($e=>D.includes($e.properties.zoneKey));le&&C.fitBounds(le,{padding:40,duration:700,maxZoom:6})}function we(){!C||!K||(We(),typeof te=="function"&&te(),Ze(),et(),ot(),h.value&&C.getLayer("tapestry-fill")&&Ae(ie))}function ft(){C&&(f.value=!f.value,_.theme.value=f.value?"dark":"light",C.setStyle(f.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11"),C.once("style.load",we))}function Re(){!C||!C.getLayer("upg-pins")||(C.on("click","upg-pins",J=>{const D=J&&J.features&&J.features[0];D&&i&&typeof i.selectPeopleGroup=="function"&&i.selectPeopleGroup(D)}),C.on("mouseenter","upg-pins",()=>{C&&(C.getCanvas().style.cursor="pointer")}),C.on("mouseleave","upg-pins",()=>{C&&(C.getCanvas().style.cursor="")}))}let Ke=null;function wn(J){var le;const D=((le=J==null?void 0:J.detail)==null?void 0:le.listId)??null;if(!D){Ae(null);return}const ee=ia(d.value,D);ee&&Ae(ee)}function ia(J,D){for(const ee of J||[]){if((ee.zoneKey||ee.id)===D)return ee;const le=ee.children&&ia(ee.children,D);if(le)return le}return null}function tw(){const J=Zs(o,{deafCount:ei});d.value=J,se=gd(J);const D={};for(const ee of o.lists||[])D[ee.id]=ee.selector;for(const ee of o.asia_lists||[])D[ee.id]=ee.selector;for(const ee of o.uncovered_lists||[])D[ee.id]=ee.selector;D.deaf={type:"affinity_bloc",rop1:"A017"};for(const ee of se)ee.selector=D[ee.id];ye=Me(se)}async function $d(){if(ge)try{const D=await fetch(`${ge}/api/people-groups/list?fields=slug,name,country_code,wagf_region,wagf_block,rop1,population,latitude,longitude&lang=en`,{cache:"no-store"});if(!D.ok)throw new Error(`list ${D.status}`);const ee=cd(ud(await D.json()));p=md(ee),d.value=Zs(o,{deafCount:ei,records:ee})}catch{}}return to(async()=>{var $e,Mt,bt,Fe,Oe;tw();const J=window.mapboxgl,D=(n==null?void 0:n.value)||(($e=a==null?void 0:a.value)==null?void 0:$e.tk)||"";if(!J){c.value="⚠ mapbox-gl not loaded",u.value="mapbox-gl did not load. The list and legend are unaffected.",$d();return}if(!D){c.value="⚠ no mapbox token",u.value="No Mapbox token configured. The list and legend are unaffected.",$d();return}J.accessToken=D;try{const he=l.value&&l.value.getRootNode();if(he instanceof ShadowRoot){const Ye="https://api.mapbox.com/mapbox-gl-js/v3.3.0/mapbox-gl.css";if(!he.querySelector(`link[href="${Ye}"]`)){const lt=document.createElement("link");lt.rel="stylesheet",lt.href=Ye,he.prepend(lt)}}}catch{}C=new J.Map({container:l.value,style:"mapbox://styles/mapbox/light-v11",center:[35,20],zoom:1.5,projection:"mercator"}),v.value=C,ne=Ck(((Mt=l.value)==null?void 0:Mt.parentElement)||null,{enabled:r.value}),typeof window<"u"&&(window.__UPG_MAP__=C),window.__UPG_SELECT__={get list(){return m.value.map(he=>({...he}))},get total(){return x.value},get count(){return S.value},get color(){return V.value},get batchMode(){return b.value},setColor:he=>U(he),setBatchMode:he=>$(he),clipboardText:()=>yd(m.value,{color:V.value}),clear:()=>xt(),toggleByProps:he=>{const Ye=bd(he,{nameMap:p});return Ye?(P(Ye),{...Ye}):null},toggleLegendRow:he=>{const Ye=Do=>{for(const at of Do){if(at.label===he)return at;if(at.children&&at.children.length){const lo=Ye(at.children);if(lo)return lo}}return null},lt=Ye(d.value);return lt?(ae(lt),{label:lt.label,zoneKeys:[...j(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(!C||!K||!C.getLayer("upg-sel-fill"))return-1;const he=new Set,Ye=new Set,lt=new Set;for(const at of m.value)at.kind==="zone"?he.add(at.key.slice(5)):at.kind==="adm1"?Ye.add(at.name):at.kind==="adm0"&<.add(at.key.slice(5));let Do=0;for(const at of K.features){const lo=at.properties||{};(he.has(lo.zoneKey)||Ye.has(lo.shapeName)||lt.has(lo.iso3))&&Do++}return Do},zoneKeysForRow:he=>{const Ye=Do=>{for(const at of Do){if(at.label===he)return at;if(at.children&&at.children.length){const lo=Ye(at.children);if(lo)return lo}}return null},lt=Ye(d.value);return lt?[...j(lt)]:null}};try{c.value="loading boundaries…";const he=De=>{var ct;return`${String(((ct=a.value)==null?void 0:ct.assetsBase)||"./assets").replace(/\/+$/,"")}/boundaries/${De}`},Ye=De=>fetch(he(De)).then(ct=>{if(!ct.ok)throw new Error(`boundary fetch ${ct.status} ${De}`);return ct.json()}),[lt,Do,at]=await Promise.all([Ye("world-adm0.geojson"),Ye("gb-IND-ADM1.geojson"),Ye("gb-CHN-ADM1.geojson")]);if(c.value="fetching 2106 UUPGs…",!ge)throw new Error("No API base configured — set window.MAP_APP_API_URL or VITE_API_BASE_URL. Failing closed (no default host).");const ti=await fetch(`${ge}/api/people-groups/list?fields=slug,name,country_code,wagf_region,wagf_block,rop1,population,latitude,longitude&lang=en`,{cache:"no-store"});if(!ti.ok)throw new Error(`list ${ti.status}`);const xn=cd(ud(await ti.json()));p=md(xn),d.value=Zs(o,{deafCount:ei,records:xn});const{tapestry:ow,perZone:nw}=vk(se,{records:xn,adm0:lt,adm1Ind:Do,adm1Chn:at});K=jo(ow),T(xn);const oi=[],la={},{evaluate:aw}=await An(async()=>{const{evaluate:De}=await Promise.resolve().then(()=>gk);return{evaluate:De}},void 0);for(const De of se)if(De.selector&&De.selector.type==="pg_slugs")for(const ct of De.selector.values||[])ct in la||(la[ct]=De.zoneKey);else try{for(const ct of aw(De.selector,xn))ct in la||(la[ct]=De.zoneKey)}catch(ct){console.warn("zone selector skipped",De.id,ct&&ct.message)}for(const De of xn){const ct=Number(De.latitude),ai=Number(De.longitude);!isFinite(ct)||!isFinite(ai)||oi.push({type:"Feature",geometry:{type:"Point",coordinates:[ai,ct]},properties:{slug:De.slug,zoneKey:la[De.slug]||"",name:De.name||De.slug||"",population:De.population??0,countryName:De.country_code_label||"",country:De.country_code||""}})}const rw=jo({type:"FeatureCollection",features:oi});te=()=>{C.getSource("upg")||(C.addSource("upg",{type:"geojson",data:rw}),C.addLayer({id:"upg-pins",type:"circle",source:"upg",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,4,4,6,8,9],"circle-color":ye,"circle-opacity":1,"circle-stroke-width":["interpolate",["linear"],["zoom"],1,1.2,8,2],"circle-stroke-color":"rgba(15,20,25,0.9)"}}),Re())};let ni=!0;const Sn=()=>{ni&&(ni=!1,C.off("style.load",Sn),C.off("idle",Sn),we())};if(C.isStyleLoaded())Sn();else{C.once("style.load",Sn),C.once("idle",Sn);const De=setInterval(()=>{if(!ni||!C){clearInterval(De);return}let ct=!1;try{ct=C.isStyleLoaded()}catch{clearInterval(De);return}ct&&(clearInterval(De),Sn())},120);setTimeout(()=>clearInterval(De),15e3)}const sw=[...nw.values()].filter(De=>De>=1).length;c.value=`${K.features.length} polys · ${sw}/26 zones · ${oi.length} pins`}catch(he){c.value="⚠ "+(he&&he.message?he.message:String(he))}let ee=0;const le=()=>{const he=typeof document<"u"&&document.querySelector("my-upg-100-list-map"),Ye=he&&he.shadowRoot||(typeof document<"u"?document:null);if(Ye&&Ye.querySelector(".stl-rows")){de(),I();return}ee++<40&&setTimeout(le,250)};le();{const he=(Oe=(Fe=(bt=l.value)==null?void 0:bt.getRootNode)==null?void 0:Fe.call(bt))==null?void 0:Oe.host;he&&(Ke=wn,he.addEventListener("doxa:select-zone",Ke))}}),To(()=>{var J,D,ee;if(Ke){const le=(ee=(D=(J=l.value)==null?void 0:J.getRootNode)==null?void 0:D.call(J))==null?void 0:ee.host;le==null||le.removeEventListener("doxa:select-zone",Ke),Ke=null}if(oe){try{oe.disconnect()}catch{}oe=null}if(ne){try{ne()}catch{}ne=null}C&&(C.remove(),C=null),K=null}),(J,D)=>{var ee;return H(),Q("div",Tk,[E("div",{ref_key:"mapEl",ref:l,class:"upg-map"},null,512),u.value?(H(),Q("div",Ek,[D[1]||(D[1]=E("strong",null,"Map unavailable",-1)),dt(ce(u.value),1)])):me("",!0),r.value?(H(),Q(Ce,{key:1},[D[2]||(D[2]=E("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),D[3]||(D[3]=E("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1))],64)):me("",!0),v.value?(H(),st(lk,{key:2,ref_key:"geocoderRef",ref:B,"map-instance":v.value,"access-token":be(n)||((ee=be(a))==null?void 0:ee.tk)||"","data-source-id":Qs,"is-dark":f.value,placeholder:zk,"active-context":Kk,onPeopleGroupResult:O,onAggregateResult:W,onClear:q},null,8,["map-instance","access-token","is-dark"])):me("",!0),v.value?(H(),st(p1,{key:3},{default:jt(()=>[je(f1,{map:v.value,"is-dark":f.value},null,8,["map","is-dark"]),je(h1,{map:v.value,"is-dark":f.value},null,8,["map","is-dark"]),je(m1,{map:v.value,"is-dark":f.value},null,8,["map","is-dark"]),je(_1,{"map-container":l.value,"is-dark":f.value},null,8,["map-container","is-dark"]),je(k1,{"is-dark":f.value,onToggle:ft},null,8,["is-dark"]),je(rd,{"is-dark":f.value,"embed-path":"my-upg-100-list/upg-100-list/index.html"},null,8,["is-dark"]),je(qo,{"is-dark":f.value,active:b.value,class:Le({"upg-batch-on":b.value}),"aria-pressed":b.value?"true":"false",title:"Batch Select",onClick:A},{default:jt(()=>[...D[4]||(D[4]=[E("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[E("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1"}),E("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1"}),E("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1"}),E("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1"})],-1)])]),_:1},8,["is-dark","active","class","aria-pressed"])]),_:1})):me("",!0),E("div",Pk,[d.value.length?(H(),st(Tu,{key:0,nodes:d.value,columns:["count","pop"],title:wd,"export-enabled":!0,onSelect:Ae,onExport:fe},null,8,["nodes"])):me("",!0)]),E("div",Mk,[d.value.length?(H(),st(d1,{key:0,"legend-type":"upg-100",nodes:d.value,columns:["count","pop"],"column-label":"UPG 100",title:wd,"is-dark":f.value,"popup-action":"pray"},null,8,["nodes","is-dark"])):me("",!0)]),E("div",Nk,[be(i)&&be(i).selectedPeopleGroup?(H(),Q("div",{key:0,class:Le(["upg-detail-panel pg-detail-root",{dark:f.value}])},[je(be(t),{peopleGroup:be(i).selectedPeopleGroup,dark:f.value,action:"pray"},null,8,["peopleGroup","dark"])],2)):me("",!0)]),b.value?(H(),Q("div",Ik,[D[5]||(D[5]=E("div",{class:"upg-hud-hint"}," Tap territories on the map or legend rows to add · tap again to remove ",-1)),S.value?(H(),Q("div",Rk,[E("span",null,ce(S.value)+" territor"+ce(S.value===1?"y":"ies")+" ·",1),E("span",Fk,ce(x.value)+" UUPG",1),E("span",{class:Le(["upg-hud-band",{ok:x.value>=50&&x.value<=100}])},ce(x.value>=50&&x.value<=100?"✓ 50–100 band":"band 50–100"),3)])):me("",!0),S.value?(H(),Q("div",Ok,ce(m.value.map(le=>le.name).join(", ")),1)):me("",!0),S.value?(H(),Q("div",Dk,[(H(),Q(Ce,null,At(N,le=>E("button",{key:le,class:Le(["upg-swatch",{active:V.value===le}]),"data-color":le,style:tt({background:le}),title:le,onClick:$e=>U(le)},null,14,Bk)),64)),vp(E("input",{"onUpdate:modelValue":D[0]||(D[0]=le=>G.value=le),class:"upg-hex",placeholder:"#hex",spellcheck:"false",onChange:re,onKeyup:ts(re,["enter"])},null,544),[[ef,G.value]])])):me("",!0),S.value?(H(),Q("div",jk,[E("button",{class:"upg-hud-btn copy",onClick:L},"Copy selection"),E("button",{class:"upg-hud-btn clear",onClick:xt},"Clear")])):me("",!0),S.value?(H(),Q("div",Gk,ce(k.value),1)):me("",!0)])):me("",!0),E("div",Uk,ce(c.value),1)])}}}},Symbol.toStringTag,{value:"Module"})),Vk=` /* 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. */ @@ -1074,7 +1073,7 @@ background:rgba(0,0,0,.55); color:#fff; font-size:11px; letter-spacing:.02em; pointer-events:none; z-index:6; opacity:.9; } -`;function jk(e,{host:t,mountPane:o}){const n=Array.isArray(e==null?void 0:e.panes)?e.panes:[];if(n.length<2)return null;const a=n.filter(i=>{var l;return(((l=i.at)==null?void 0:l[1])??0)===0}).sort((i,l)=>{var c,u;return(((c=i.at)==null?void 0:c[0])??0)-(((u=l.at)==null?void 0:u[0])??0)});if(a.length<2)return null;const r=document.createElement("div");r.className="pane-col";const s=new Map;return a.forEach((i,l)=>{const c=document.createElement("div");c.className="pane",c.dataset.paneId=i.id;const u=document.createElement("div");if(u.className="pane-mount",c.appendChild(u),s.set(i.id,u),i.placeholder){const d=document.createElement("div");d.className="pane-placeholder",d.innerHTML=`

${i.label}

${i.placeholder}

`,c.appendChild(d)}if(l${a[l+1].label} below`,c.appendChild(d)}r.appendChild(c)}),t.appendChild(r),{panes:a,scrollTo(i){const l=r.querySelector(`.pane[data-pane-id="${i}"]`);l&&l.scrollIntoView({behavior:"smooth",block:"start"})},current(){var l;const i=a.map(c=>{const u=r.querySelector(`.pane[data-pane-id="${c.id}"]`);return{id:c.id,d:Math.abs(((u==null?void 0:u.offsetTop)??0)-r.scrollTop)}});return i.sort((c,u)=>c.d-u.d),((l=i[0])==null?void 0:l.id)||a[0].id},onScroll(i){let l=null;const c=()=>{l&&clearTimeout(l),l=setTimeout(i,120)};return r.addEventListener("scroll",c,{passive:!0}),()=>{l&&clearTimeout(l),r.removeEventListener("scroll",c)}},mountEl:i=>s.get(i)||null,destroy(){r.remove(),s.clear()}}}const Gk={class:"upgmfe"},Uk={class:"hdr"},Kk={class:"viewsel"},Hk={class:"seg",role:"tablist","aria-label":"Views"},zk=["aria-pressed","aria-selected","onClick"],xd="my-upg-100-list-map",Vk="my-upg-100-list/upg-100-mfe/index.html",Wk=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"upg-100-mfe",setup(e){const t=Ee("profileConfig",ue(null)),o=Ee("mapboxToken",ue("")),n=Ee("uiStore",null),a=X(()=>!!(n!=null&&n.isDark)),r=X(()=>{var m;return((m=t.value)==null?void 0:m.instanceId)||"upg-100-mfe"}),s=X(()=>{var m;return{id:"upg-100-mfe",tag:xd,config:{profile:"upg-100-list",dataSource:((m=t.value)==null?void 0:m.dataSource)||"pray-tools",instanceId:r.value},panes:[{id:"map",label:"Map",at:[0,0],config:{profile:"upg-100-list"}},{id:"list",label:"Prayer Lists",at:[1,0],config:{profile:"poster-wall"}}],paneHint:!1}}),i=ue(null),l=ue("map");let c=null,u=null;function d(m){var S,b;const _=document.createElement(xd),h={...s.value.config,...m.config};o.value&&(h.tk=o.value);const x=((S=t.value)==null?void 0:S.locale)||((b=t.value)==null?void 0:b.lang);return x&&(h.locale=x),_.setAttribute("profile-config",JSON.stringify(h)),_}function f(m){l.value=m,c==null||c.scrollTo(m)}function k(m){const _=(m==null?void 0:m.detail)||{};_.instanceId&&_.instanceId!==r.value||f("map")}return to(()=>{var m;if(i.value&&(c=jk(s.value,{host:i.value}),!!c)){for(const _ of c.panes)_.config&&((m=c.mountEl(_.id))==null||m.appendChild(d(_)));u=c.onScroll(()=>{const _=c.current();_&&_!==l.value&&(l.value=_)}),window.addEventListener("doxa-upg-100-list:show-on-map",k)}}),To(()=>{window.removeEventListener("doxa-upg-100-list:show-on-map",k),u==null||u(),c==null||c.destroy(),c=null}),wt(Bk+` +`;function Wk(e,{host:t,mountPane:o}){const n=Array.isArray(e==null?void 0:e.panes)?e.panes:[];if(n.length<2)return null;const a=n.filter(i=>{var l;return(((l=i.at)==null?void 0:l[1])??0)===0}).sort((i,l)=>{var c,u;return(((c=i.at)==null?void 0:c[0])??0)-(((u=l.at)==null?void 0:u[0])??0)});if(a.length<2)return null;const r=document.createElement("div");r.className="pane-col";const s=new Map;return a.forEach((i,l)=>{const c=document.createElement("div");c.className="pane",c.dataset.paneId=i.id;const u=document.createElement("div");if(u.className="pane-mount",c.appendChild(u),s.set(i.id,u),i.placeholder){const d=document.createElement("div");d.className="pane-placeholder",d.innerHTML=`

${i.label}

${i.placeholder}

`,c.appendChild(d)}if(l${a[l+1].label} below`,c.appendChild(d)}r.appendChild(c)}),t.appendChild(r),{panes:a,scrollTo(i){const l=r.querySelector(`.pane[data-pane-id="${i}"]`);l&&l.scrollIntoView({behavior:"smooth",block:"start"})},current(){var l;const i=a.map(c=>{const u=r.querySelector(`.pane[data-pane-id="${c.id}"]`);return{id:c.id,d:Math.abs(((u==null?void 0:u.offsetTop)??0)-r.scrollTop)}});return i.sort((c,u)=>c.d-u.d),((l=i[0])==null?void 0:l.id)||a[0].id},onScroll(i){let l=null;const c=()=>{l&&clearTimeout(l),l=setTimeout(i,120)};return r.addEventListener("scroll",c,{passive:!0}),()=>{l&&clearTimeout(l),r.removeEventListener("scroll",c)}},mountEl:i=>s.get(i)||null,destroy(){r.remove(),s.clear()}}}const Yk={class:"upgmfe"},Jk={class:"hdr"},qk={class:"viewsel"},Zk={class:"seg",role:"tablist","aria-label":"Views"},Xk=["aria-pressed","aria-selected","onClick"],Sd="my-upg-100-list-map",Qk="my-upg-100-list/upg-100-mfe/index.html",ew=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"upg-100-mfe",setup(e){const t=Ee("profileConfig",ue(null)),o=Ee("mapboxToken",ue("")),n=Ee("uiStore",null),a=X(()=>!!(n!=null&&n.isDark)),r=X(()=>{var f;return((f=t.value)==null?void 0:f.instanceId)||"upg-100-mfe"}),s=X(()=>{var f;return{id:"upg-100-mfe",tag:Sd,config:{profile:"upg-100-list",dataSource:((f=t.value)==null?void 0:f.dataSource)||"pray-tools",instanceId:r.value},panes:[{id:"map",label:"Map",at:[0,0],config:{profile:"upg-100-list"}},{id:"list",label:"Prayer Lists",at:[1,0],config:{profile:"poster-wall"}}],paneHint:!1}}),i=ue(null),l=ue("map");let c=null,u=null;function d(f){var S,k;const _=document.createElement(Sd),m={...s.value.config,...f.config};o.value&&(m.tk=o.value);const x=((S=t.value)==null?void 0:S.locale)||((k=t.value)==null?void 0:k.lang);return x&&(m.locale=x),_.setAttribute("profile-config",JSON.stringify(m)),_}function h(f){l.value=f,c==null||c.scrollTo(f)}function v(f){const _=(f==null?void 0:f.detail)||{};_.instanceId&&_.instanceId!==r.value||h("map")}return to(()=>{var f;if(i.value&&(c=Wk(s.value,{host:i.value}),!!c)){for(const _ of c.panes)_.config&&((f=c.mountEl(_.id))==null||f.appendChild(d(_)));u=c.onScroll(()=>{const _=c.current();_&&_!==l.value&&(l.value=_)}),window.addEventListener("doxa-upg-100-list:show-on-map",v)}}),To(()=>{window.removeEventListener("doxa-upg-100-list:show-on-map",v),u==null||u(),c==null||c.destroy(),c=null}),wt(Vk+` /* ── palette: app-wrapper-material's --ui-* (light default, dark via system) ── */ .upgmfe{ --ui-bg:#ffffff; --ui-bg-elevated:#f9f9f9; --ui-bg-accented:#f0f0f0; @@ -1123,4 +1122,4 @@ .upgmfe .stage{ position:relative; flex:1 1 auto; min-height:0; } /* the live custom element fills its pane */ .pane > .pane-mount > *{ position:absolute; inset:0; width:100%; height:100%; display:block; } -`,"upg-100-mfe"),(m,_)=>(z(),Q("div",Gk,[E("header",Uk,[E("fieldset",Kk,[_[0]||(_[0]=E("legend",null,"Select View",-1)),E("div",Hk,[(z(!0),Q(Ce,null,At(s.value.panes,h=>(z(),Q("button",{key:h.id,type:"button",role:"tab","aria-pressed":l.value===h.id?"true":"false","aria-selected":l.value===h.id?"true":"false",onClick:x=>f(h.id)},ce(h.label),9,zk))),128))])]),je(ad,{"is-dark":a.value,"embed-path":Vk},null,8,["is-dark"])]),E("div",{class:"stage",ref_key:"stage",ref:i},null,512)]))}}},Symbol.toStringTag,{value:"Module"}))})(); +`,"upg-100-mfe"),(f,_)=>(H(),Q("div",Yk,[E("header",Jk,[E("fieldset",qk,[_[0]||(_[0]=E("legend",null,"Select View",-1)),E("div",Zk,[(H(!0),Q(Ce,null,At(s.value.panes,m=>(H(),Q("button",{key:m.id,type:"button",role:"tab","aria-pressed":l.value===m.id?"true":"false","aria-selected":l.value===m.id?"true":"false",onClick:x=>h(m.id)},ce(m.label),9,Xk))),128))])]),je(rd,{"is-dark":a.value,"embed-path":Qk},null,8,["is-dark"])]),E("div",{class:"stage",ref_key:"stage",ref:i},null,512)]))}}},Symbol.toStringTag,{value:"Module"}))})(); 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 f9415ab3b..b7db66665 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 @@ - + - + - + + + +
+

doxa-maps / people-groups-grid

+
people-groups-grid — one bundle, its profiles as paste-anywhere maps
+
+
loading…
+ +
+ +
+
+ + + + + diff --git a/public/doxa-maps/people-groups-grid/people-groups-grid.js b/public/doxa-maps/people-groups-grid/people-groups-grid.js new file mode 100644 index 000000000..dcdf9d674 --- /dev/null +++ b/public/doxa-maps/people-groups-grid/people-groups-grid.js @@ -0,0 +1,20 @@ +(function(){"use strict";/** +* @vue/shared v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function On(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const G={},pt=[],Ee=()=>{},ms=()=>!1,Gt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Jt=e=>e.startsWith("onUpdate:"),te=Object.assign,Mn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ui=Object.prototype.hasOwnProperty,B=(e,t)=>ui.call(e,t),M=Array.isArray,Ze=e=>At(e)==="[object Map]",Yt=e=>At(e)==="[object Set]",bs=e=>At(e)==="[object Date]",R=e=>typeof e=="function",Q=e=>typeof e=="string",Pe=e=>typeof e=="symbol",z=e=>e!==null&&typeof e=="object",vs=e=>(z(e)||R(e))&&R(e.then)&&R(e.catch),ys=Object.prototype.toString,At=e=>ys.call(e),di=e=>At(e).slice(8,-1),Xt=e=>At(e)==="[object Object]",Rn=e=>Q(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Et=On(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Zt=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},hi=/-\w/g,pe=Zt(e=>e.replace(hi,t=>t.slice(1).toUpperCase())),pi=/\B([A-Z])/g,ye=Zt(e=>e.replace(pi,"-$1").toLowerCase()),xs=Zt(e=>e.charAt(0).toUpperCase()+e.slice(1)),kn=Zt(e=>e?`on${xs(e)}`:""),Oe=(e,t)=>!Object.is(e,t),Fn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},gi=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ss=e=>{const t=Q(e)?Number(e):NaN;return isNaN(t)?e:t};let Cs;const Qt=()=>Cs||(Cs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function en(e){if(M(e)){const t={};for(let n=0;n{if(n){const s=n.split(mi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function tn(e){let t="";if(Q(e))t=e;else if(M(e))for(let n=0;n!!(e&&e.__v_isRef===!0),se=e=>Q(e)?e:e==null?"":M(e)||z(e)&&(e.toString===ys||!R(e.toString))?Es(e)?se(e.value):JSON.stringify(e,Ps,2):String(e),Ps=(e,t)=>Es(t)?Ps(e,t.value):Ze(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[In(s,i)+" =>"]=r,n),{})}:Yt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>In(n))}:Pe(t)?In(t):z(t)&&!M(t)&&!Xt(t)?String(t):t,In=(e,t="")=>{var n;return Pe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let ie;class wi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ie&&(ie.active?(this.parent=ie,this.index=(ie.scopes||(ie.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const s=this.scopes.slice();for(t=0,n=s.length;t0&&--this._on===0){if(ie===this)ie=this.prevScope;else{let t=ie;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(Ot){let t=Ot;for(Ot=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Pt;){let t=Pt;for(Pt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function ks(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Fs(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),$n(s),Ci(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Dn(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Is(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Is(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Mt)||(e.globalVersion=Mt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Dn(e))))return;e.flags|=2;const t=e.dep,n=J,s=Ce;J=e,Ce=!0;try{ks(e);const r=e.fn(e._value);(t.version===0||Oe(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{J=n,Ce=s,Fs(e),e.flags&=-3}}function $n(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)$n(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ci(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ce=!0;const Ls=[];function Me(){Ls.push(Ce),Ce=!1}function Re(){const e=Ls.pop();Ce=e===void 0?!0:e}function Ns(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=J;J=void 0;try{t()}finally{J=n}}}let Mt=0;class Ti{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Hn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!J||!Ce||J===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==J)n=this.activeLink=new Ti(J,this),J.deps?(n.prevDep=J.depsTail,J.depsTail.nextDep=n,J.depsTail=n):J.deps=J.depsTail=n,js(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=J.depsTail,n.nextDep=void 0,J.depsTail.nextDep=n,J.depsTail=n,J.deps===n&&(J.deps=s)}return n}trigger(t){this.version++,Mt++,this.notify(t)}notify(t){Nn();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{jn()}}}function js(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)js(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Un=new WeakMap,it=Symbol(""),Bn=Symbol(""),Rt=Symbol("");function ae(e,t,n){if(Ce&&J){let s=Un.get(e);s||Un.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new Hn),r.map=s,r.key=n),r.track()}}function Be(e,t,n,s,r,i){const o=Un.get(e);if(!o){Mt++;return}const l=a=>{a&&a.trigger()};if(Nn(),t==="clear")o.forEach(l);else{const a=M(e),h=a&&Rn(n);if(a&&n==="length"){const u=Number(s);o.forEach((g,S)=>{(S==="length"||S===Rt||!Pe(S)&&S>=u)&&l(g)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),h&&l(o.get(Rt)),t){case"add":a?h&&l(o.get("length")):(l(o.get(it)),Ze(e)&&l(o.get(Bn)));break;case"delete":a||(l(o.get(it)),Ze(e)&&l(o.get(Bn)));break;case"set":Ze(e)&&l(o.get(it));break}}jn()}function gt(e){const t=$(e);return t===e?t:(ae(t,"iterate",Rt),xe(e)?t:t.map(Te))}function sn(e){return ae(e=$(e),"iterate",Rt),e}function ke(e,t){return Ke(e)?_t(ot(e)?Te(t):t):Te(t)}const Ai={__proto__:null,[Symbol.iterator](){return Vn(this,Symbol.iterator,e=>ke(this,e))},concat(...e){return gt(this).concat(...e.map(t=>M(t)?gt(t):t))},entries(){return Vn(this,"entries",e=>(e[1]=ke(this,e[1]),e))},every(e,t){return Ve(this,"every",e,t,void 0,arguments)},filter(e,t){return Ve(this,"filter",e,t,n=>n.map(s=>ke(this,s)),arguments)},find(e,t){return Ve(this,"find",e,t,n=>ke(this,n),arguments)},findIndex(e,t){return Ve(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ve(this,"findLast",e,t,n=>ke(this,n),arguments)},findLastIndex(e,t){return Ve(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ve(this,"forEach",e,t,void 0,arguments)},includes(...e){return Kn(this,"includes",e)},indexOf(...e){return Kn(this,"indexOf",e)},join(e){return gt(this).join(e)},lastIndexOf(...e){return Kn(this,"lastIndexOf",e)},map(e,t){return Ve(this,"map",e,t,void 0,arguments)},pop(){return kt(this,"pop")},push(...e){return kt(this,"push",e)},reduce(e,...t){return Ds(this,"reduce",e,t)},reduceRight(e,...t){return Ds(this,"reduceRight",e,t)},shift(){return kt(this,"shift")},some(e,t){return Ve(this,"some",e,t,void 0,arguments)},splice(...e){return kt(this,"splice",e)},toReversed(){return gt(this).toReversed()},toSorted(e){return gt(this).toSorted(e)},toSpliced(...e){return gt(this).toSpliced(...e)},unshift(...e){return kt(this,"unshift",e)},values(){return Vn(this,"values",e=>ke(this,e))}};function Vn(e,t,n){const s=sn(e),r=s[t]();return s!==e&&!xe(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=n(i.value)),i}),r}const Ei=Array.prototype;function Ve(e,t,n,s,r,i){const o=sn(e),l=o!==e&&!xe(e),a=o[t];if(a!==Ei[t]){const g=a.apply(e,i);return l?Te(g):g}let h=n;o!==e&&(l?h=function(g,S){return n.call(this,ke(e,g),S,e)}:n.length>2&&(h=function(g,S){return n.call(this,g,S,e)}));const u=a.call(o,h,s);return l&&r?r(u):u}function Ds(e,t,n,s){const r=sn(e),i=r!==e&&!xe(e);let o=n,l=!1;r!==e&&(i?(l=s.length===0,o=function(h,u,g){return l&&(l=!1,h=ke(e,h)),n.call(this,h,ke(e,u),g,e)}):n.length>3&&(o=function(h,u,g){return n.call(this,h,u,g,e)}));const a=r[t](o,...s);return l?ke(e,a):a}function Kn(e,t,n){const s=$(e);ae(s,"iterate",Rt);const r=s[t](...n);return(r===-1||r===!1)&&Gn(n[0])?(n[0]=$(n[0]),s[t](...n)):r}function kt(e,t,n=[]){Me(),Nn();const s=$(e)[t].apply(e,n);return jn(),Re(),s}const Pi=On("__proto__,__v_isRef,__isVue"),$s=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Pe));function Oi(e){Pe(e)||(e=String(e));const t=$(this);return ae(t,"has",e),t.hasOwnProperty(e)}class Hs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?zs:Ws:i?Ks:Vs).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=M(t);if(!r){let a;if(o&&(a=Ai[n]))return a;if(n==="hasOwnProperty")return Oi}const l=Reflect.get(t,n,oe(t)?t:s);if((Pe(n)?$s.has(n):Pi(n))||(r||ae(t,"get",n),i))return l;if(oe(l)){const a=o&&Rn(n)?l:l.value;return r&&z(a)?qn(a):a}return z(l)?r?qn(l):zn(l):l}}class Us extends Hs{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];const o=M(t)&&Rn(n);if(!this._isShallow){const h=Ke(i);if(!xe(s)&&!Ke(s)&&(i=$(i),s=$(s)),!o&&oe(i)&&!oe(s))return h||(i.value=s),!0}const l=o?Number(n)e,rn=e=>Reflect.getPrototypeOf(e);function Ii(e,t,n){return function(...s){const r=this.__v_raw,i=$(r),o=Ze(i),l=e==="entries"||e===Symbol.iterator&&o,a=e==="keys"&&o,h=r[e](...s),u=n?Wn:t?_t:Te;return!t&&ae(i,"iterate",a?Bn:it),te(Object.create(h),{next(){const{value:g,done:S}=h.next();return S?{value:g,done:S}:{value:l?[u(g[0]),u(g[1])]:u(g),done:S}}})}}function on(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Li(e,t){const n={get(r){const i=this.__v_raw,o=$(i),l=$(r);e||(Oe(r,l)&&ae(o,"get",r),ae(o,"get",l));const{has:a}=rn(o),h=t?Wn:e?_t:Te;if(a.call(o,r))return h(i.get(r));if(a.call(o,l))return h(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&ae($(r),"iterate",it),r.size},has(r){const i=this.__v_raw,o=$(i),l=$(r);return e||(Oe(r,l)&&ae(o,"has",r),ae(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,a=$(l),h=t?Wn:e?_t:Te;return!e&&ae(a,"iterate",it),l.forEach((u,g)=>r.call(i,h(u),h(g),o))}};return te(n,e?{add:on("add"),set:on("set"),delete:on("delete"),clear:on("clear")}:{add(r){const i=$(this),o=rn(i),l=$(r),a=!t&&!xe(r)&&!Ke(r)?l:r;return o.has.call(i,a)||Oe(r,a)&&o.has.call(i,r)||Oe(l,a)&&o.has.call(i,l)||(i.add(a),Be(i,"add",a,a)),this},set(r,i){!t&&!xe(i)&&!Ke(i)&&(i=$(i));const o=$(this),{has:l,get:a}=rn(o);let h=l.call(o,r);h||(r=$(r),h=l.call(o,r));const u=a.call(o,r);return o.set(r,i),h?Oe(i,u)&&Be(o,"set",r,i):Be(o,"add",r,i),this},delete(r){const i=$(this),{has:o,get:l}=rn(i);let a=o.call(i,r);a||(r=$(r),a=o.call(i,r)),l&&l.call(i,r);const h=i.delete(r);return a&&Be(i,"delete",r,void 0),h},clear(){const r=$(this),i=r.size!==0,o=r.clear();return i&&Be(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Ii(r,e,t)}),n}function ln(e,t){const n=Li(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(B(n,r)&&r in s?n:s,r,i)}const Ni={get:ln(!1,!1)},ji={get:ln(!1,!0)},Di={get:ln(!0,!1)},$i={get:ln(!0,!0)},Vs=new WeakMap,Ks=new WeakMap,Ws=new WeakMap,zs=new WeakMap;function Hi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function zn(e){return Ke(e)?e:cn(e,!1,Mi,Ni,Vs)}function Ui(e){return cn(e,!1,ki,ji,Ks)}function qn(e){return cn(e,!0,Ri,Di,Ws)}function kc(e){return cn(e,!0,Fi,$i,zs)}function cn(e,t,n,s,r){if(!z(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=r.get(e);if(i)return i;const o=Hi(di(e));if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function ot(e){return Ke(e)?ot(e.__v_raw):!!(e&&e.__v_isReactive)}function Ke(e){return!!(e&&e.__v_isReadonly)}function xe(e){return!!(e&&e.__v_isShallow)}function Gn(e){return e?!!e.__v_raw:!1}function $(e){const t=e&&e.__v_raw;return t?$(t):e}function Bi(e){return!B(e,"__v_skip")&&Object.isExtensible(e)&&ws(e,"__v_skip",!0),e}const Te=e=>z(e)?zn(e):e,_t=e=>z(e)?qn(e):e;function oe(e){return e?e.__v_isRef===!0:!1}function ge(e){return Vi(e,!1)}function Vi(e,t){return oe(e)?e:new Ki(e,t)}class Ki{constructor(t,n){this.dep=new Hn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:$(t),this._value=n?t:Te(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||xe(t)||Ke(t);t=s?t:$(t),Oe(t,n)&&(this._rawValue=t,this._value=s?t:Te(t),this.dep.trigger())}}function Jn(e){return oe(e)?e.value:e}const Wi={get:(e,t,n)=>t==="__v_raw"?e:Jn(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return oe(r)&&!oe(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function qs(e){return ot(e)?e:new Proxy(e,Wi)}class zi{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Hn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Mt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&J!==this)return Rs(this,!0),!0}get value(){const t=this.dep.track();return Is(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function qi(e,t,n=!1){let s,r;return R(e)?s=e:(s=e.get,r=e.set),new zi(s,r,n)}const an={},fn=new WeakMap;let lt;function Gi(e,t=!1,n=lt){if(n){let s=fn.get(n);s||fn.set(n,s=[]),s.push(e)}}function Ji(e,t,n=G){const{immediate:s,deep:r,once:i,scheduler:o,augmentJob:l,call:a}=n,h=w=>r?w:xe(w)||r===!1||r===0?Qe(w,1):Qe(w);let u,g,S,T,F=!1,E=!1;if(oe(e)?(g=()=>e.value,F=xe(e)):ot(e)?(g=()=>h(e),F=!0):M(e)?(E=!0,F=e.some(w=>ot(w)||xe(w)),g=()=>e.map(w=>{if(oe(w))return w.value;if(ot(w))return h(w);if(R(w))return a?a(w,2):w()})):R(e)?t?g=a?()=>a(e,2):e:g=()=>{if(S){Me();try{S()}finally{Re()}}const w=lt;lt=u;try{return a?a(e,3,[T]):e(T)}finally{lt=w}}:g=Ee,t&&r){const w=g,L=r===!0?1/0:r;g=()=>Qe(w(),L)}const H=Si(),D=()=>{u.stop(),H&&H.active&&Mn(H.effects,u)};if(i&&t){const w=t;t=(...L)=>{const X=w(...L);return D(),X}}let k=E?new Array(e.length).fill(an):an;const j=w=>{if(!(!(u.flags&1)||!u.dirty&&!w))if(t){const L=u.run();if(w||r||F||(E?L.some((X,Y)=>Oe(X,k[Y])):Oe(L,k))){S&&S();const X=lt;lt=u;try{const Y=[L,k===an?void 0:E&&k[0]===an?[]:k,T];k=L,a?a(t,3,Y):t(...Y)}finally{lt=X}}}else u.run()};return l&&l(j),u=new Os(g),u.scheduler=o?()=>o(j,!1):j,T=w=>Gi(w,!1,u),S=u.onStop=()=>{const w=fn.get(u);if(w){if(a)a(w,4);else for(const L of w)L();fn.delete(u)}},t?s?j(!0):k=u.run():o?o(j.bind(null,!0),!0):u.run(),D.pause=u.pause.bind(u),D.resume=u.resume.bind(u),D.stop=D,D}function Qe(e,t=1/0,n){if(t<=0||!z(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,oe(e))Qe(e.value,t,n);else if(M(e))for(let s=0;s{Qe(s,t,n)});else if(Xt(e)){for(const s in e)Qe(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Qe(e[s],t,n)}return e}/** +* @vue/runtime-core v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Ft=[];let Yn=!1;function Fc(e,...t){if(Yn)return;Yn=!0,Me();const n=Ft.length?Ft[Ft.length-1].component:null,s=n&&n.appContext.config.warnHandler,r=Yi();if(s)mt(s,n,11,[e+t.map(i=>{var o,l;return(l=(o=i.toString)==null?void 0:o.call(i))!=null?l:JSON.stringify(i)}).join(""),n&&n.proxy,r.map(({vnode:i})=>`at <${zr(n,i.type)}>`).join(` +`),r]);else{const i=[`[Vue warn]: ${e}`,...t];r.length&&i.push(` +`,...Xi(r)),console.warn(...i)}Re(),Yn=!1}function Yi(){let e=Ft[Ft.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const s=e.component&&e.component.parent;e=s&&s.vnode}return t}function Xi(e){const t=[];return e.forEach((n,s)=>{t.push(...s===0?[]:[` +`],...Zi(n))}),t}function Zi({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",s=e.component?e.component.parent==null:!1,r=` at <${zr(e.component,e.type,s)}`,i=">"+n;return e.props?[r,...Qi(e.props),i]:[r+i]}function Qi(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(s=>{t.push(...Gs(s,e[s]))}),n.length>3&&t.push(" ..."),t}function Gs(e,t,n){return Q(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:oe(t)?(t=Gs(e,$(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):R(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=$(t),n?t:[`${e}=`,t])}function mt(e,t,n,s){try{return s?e(...s):e()}catch(r){un(r,t,n)}}function Ae(e,t,n,s){if(R(e)){const r=mt(e,t,n,s);return r&&vs(r)&&r.catch(i=>{un(i,t,n)}),r}if(M(e)){const r=[];for(let i=0;i>>1,r=fe[s],i=It(r);i=It(n)?fe.push(e):fe.splice(to(t),0,e),e.flags|=1,Ys()}}function Ys(){dn||(dn=Js.then(Qs))}function no(e){if(!M(e))et&&e.id===-1?et.splice(vt+1,0,e):e.flags&1||(bt.push(e),e.flags|=1);else for(let t=0;tIt(n)-It(s));if(bt.length=0,et){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function Qs(e){try{for(Fe=0;Fe{s._d&&jr(-1);const i=pn(t),o=ft.length;let l;try{l=e(...r)}finally{for(let a=ft.length;a>o;a--)Nr();pn(i),s._d&&jr(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function ct(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o1)return n&&R(t)?t.call(s&&s.proxy):t}}const io=Symbol.for("v-scx"),oo=()=>gn(io);function _n(e,t,n){return tr(e,t,n)}function tr(e,t,n=G){const{immediate:s,deep:r,flush:i,once:o}=n,l=te({},n),a=t&&s||!t&&i!=="post";let h;if(Vt){if(i==="sync"){const T=oo();h=T.__watcherHandles||(T.__watcherHandles=[])}else if(!a){const T=()=>{};return T.stop=Ee,T.resume=Ee,T.pause=Ee,T}}const u=he;l.call=(T,F,E)=>Ae(T,u,F,E);let g=!1;i==="post"?l.scheduler=T=>{_e(T,u&&u.suspense)}:i!=="sync"&&(g=!0,l.scheduler=(T,F)=>{F?T():Xn(T)}),l.augmentJob=T=>{t&&(T.flags|=4),g&&(T.flags|=2,u&&(T.id=u.uid,T.i=u))};const S=Ji(e,t,l);return Vt&&(h?h.push(S):a&&S()),S}function lo(e,t,n){const s=this.proxy,r=Q(e)?e.includes(".")?nr(s,e):()=>s[e]:e.bind(s,s);let i;R(t)?i=t:(i=t.handler,n=t);const o=Bt(this),l=tr(r,i.bind(s),n);return o(),l}function nr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;re.__isTeleport,Zn=Symbol("_leaveCb");function ao(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ze){t=n;break}}return t}function sr(e){if(!es(e))return mn(e.type)&&e.children?ao(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&R(n.default))return n.default()}}function Qn(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Qn(mn(n.type)&&sr(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function fo(e,t){return R(e)?te({name:e.name},t,{setup:e}):e}function rr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ir(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const bn=new WeakMap;function Lt(e,t,n,s,r=!1){if(M(e)){e.forEach((E,H)=>Lt(E,t&&(M(t)?t[H]:t),n,s,r));return}if(Nt(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Lt(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?fs(s.component):s.el,o=r?null:i,{i:l,r:a}=e,h=t&&t.r,u=l.refs===G?l.refs={}:l.refs,g=l.setupState,S=$(g),T=g===G?ms:E=>ir(u,E)?!1:B(S,E),F=(E,H)=>!(H&&ir(u,H));if(h!=null&&h!==a){if(or(t),Q(h))u[h]=null,T(h)&&(g[h]=null);else if(oe(h)){const E=t;F(h,E.k)&&(h.value=null),E.k&&(u[E.k]=null)}}if(R(a))mt(a,l,12,[o,u]);else{const E=Q(a),H=oe(a);if(E||H){const D=()=>{if(e.f){const k=E?T(a)?g[a]:u[a]:F()||!e.k?a.value:u[e.k];if(r)M(k)&&Mn(k,i);else if(M(k))k.includes(i)||k.push(i);else if(E)u[a]=[i],T(a)&&(g[a]=u[a]);else{const j=[i];F(a,e.k)&&(a.value=j),e.k&&(u[e.k]=j)}}else E?(u[a]=o,T(a)&&(g[a]=o)):H&&(F(a,e.k)&&(a.value=o),e.k&&(u[e.k]=o))};if(o){const k=()=>{D(),bn.delete(e)};k.id=-1,bn.set(e,k),_e(k,n)}else or(e),D()}}}function or(e){const t=bn.get(e);t&&(t.flags|=8,bn.delete(e))}Qt().requestIdleCallback,Qt().cancelIdleCallback;const Nt=e=>!!e.type.__asyncLoader,es=e=>e.type.__isKeepAlive;function uo(e,t){lr(e,"a",t)}function ho(e,t){lr(e,"da",t)}function lr(e,t,n=he){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(vn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)es(r.parent.vnode)&&po(s,t,n,r),r=r.parent}}function po(e,t,n,s){const r=vn(t,e,s,!0);fr(()=>{Mn(s[t],r)},n)}function vn(e,t,n=he,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Me();const l=Bt(n),a=Ae(t,n,e,o);return l(),Re(),a});return s?r.unshift(i):r.push(i),i}}const We=e=>(t,n=he)=>{(!Vt||e==="sp")&&vn(e,(...s)=>t(...s),n)},go=We("bm"),cr=We("m"),_o=We("bu"),mo=We("u"),ar=We("bum"),fr=We("um"),bo=We("sp"),vo=We("rtg"),yo=We("rtc");function xo(e,t=he){vn("ec",e,t)}const wo=Symbol.for("v-ndc");function yn(e,t,n,s){let r;const i=n,o=M(e);if(o||Q(e)){const l=o&&ot(e);let a=!1,h=!1;l&&(a=!xe(e),h=Ke(e),e=sn(e)),r=new Array(e.length);for(let u=0,g=e.length;ut(l,a,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,h=l.length;ae?Vr(e)?fs(e):ts(e.parent):null,jt=te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ts(e.parent),$root:e=>ts(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>pr(e),$forceUpdate:e=>e.f||(e.f=()=>{Xn(e.update)}),$nextTick:e=>e.n||(e.n=hn.bind(e.proxy)),$watch:e=>lo.bind(e)}),ns=(e,t)=>e!==G&&!e.__isScriptSetup&&B(e,t),So={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:a}=e;if(t[0]!=="$"){const S=o[t];if(S!==void 0)switch(S){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(ns(s,t))return o[t]=1,s[t];if(r!==G&&B(r,t))return o[t]=2,r[t];if(B(i,t))return o[t]=3,i[t];if(n!==G&&B(n,t))return o[t]=4,n[t];ss&&(o[t]=0)}}const h=jt[t];let u,g;if(h)return t==="$attrs"&&ae(e.attrs,"get",""),h(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==G&&B(n,t))return o[t]=4,n[t];if(g=a.config.globalProperties,B(g,t))return g[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return ns(r,t)?(r[t]=n,!0):s!==G&&B(s,t)?(s[t]=n,!0):B(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:i,type:o}},l){let a;return!!(n[l]||e!==G&&l[0]!=="$"&&B(e,l)||ns(t,l)||B(i,l)||B(s,l)||B(jt,l)||B(r.config.globalProperties,l)||(a=o.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:B(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ur(e){return M(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ss=!0;function Co(e){const t=pr(e),n=e.proxy,s=e.ctx;ss=!1,t.beforeCreate&&dr(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:a,inject:h,created:u,beforeMount:g,mounted:S,beforeUpdate:T,updated:F,activated:E,deactivated:H,beforeDestroy:D,beforeUnmount:k,destroyed:j,unmounted:w,render:L,renderTracked:X,renderTriggered:Y,errorCaptured:we,serverPrefetch:tt,expose:Ye,inheritAttrs:ut,components:wt,directives:St,filters:nt}=t;if(h&&To(h,s,null),o)for(const Z in o){const q=o[Z];R(q)&&(s[Z]=q.bind(n))}if(r){const Z=r.call(n,n);z(Z)&&(e.data=zn(Z))}if(ss=!0,i)for(const Z in i){const q=i[Z],Xe=R(q)?q.bind(n,n):R(q.get)?q.get.bind(n,n):Ee,Ct=!R(q)&&R(q.set)?q.set.bind(n):Ee,je=le({get:Xe,set:Ct});Object.defineProperty(s,Z,{enumerable:!0,configurable:!0,get:()=>je.value,set:Se=>je.value=Se})}if(l)for(const Z in l)hr(l[Z],s,n,Z);if(a){const Z=R(a)?a.call(n):a;Reflect.ownKeys(Z).forEach(q=>{ro(q,Z[q])})}u&&dr(u,e,"c");function ne(Z,q){M(q)?q.forEach(Xe=>Z(Xe.bind(n))):q&&Z(q.bind(n))}if(ne(go,g),ne(cr,S),ne(_o,T),ne(mo,F),ne(uo,E),ne(ho,H),ne(xo,we),ne(yo,X),ne(vo,Y),ne(ar,k),ne(fr,w),ne(bo,tt),M(Ye))if(Ye.length){const Z=e.exposed||(e.exposed={});Ye.forEach(q=>{Object.defineProperty(Z,q,{get:()=>n[q],set:Xe=>n[q]=Xe,enumerable:!0})})}else e.exposed||(e.exposed={});L&&e.render===Ee&&(e.render=L),ut!=null&&(e.inheritAttrs=ut),wt&&(e.components=wt),St&&(e.directives=St),tt&&rr(e)}function To(e,t,n=Ee){M(e)&&(e=rs(e));for(const s in e){const r=e[s];let i;z(r)?"default"in r?i=gn(r.from||s,r.default,!0):i=gn(r.from||s):i=gn(r),oe(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function dr(e,t,n){Ae(M(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function hr(e,t,n,s){let r=s.includes(".")?nr(n,s):()=>n[s];if(Q(e)){const i=t[e];R(i)&&_n(r,i)}else if(R(e))_n(r,e.bind(n));else if(z(e))if(M(e))e.forEach(i=>hr(i,t,n,s));else{const i=R(e.handler)?e.handler.bind(n):t[e.handler];R(i)&&_n(r,i,e)}}function pr(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let a;return l?a=l:!r.length&&!n&&!s?a=t:(a={},r.length&&r.forEach(h=>xn(a,h,o,!0)),xn(a,t,o)),z(t)&&i.set(t,a),a}function xn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&xn(e,i,n,!0),r&&r.forEach(o=>xn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Ao[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Ao={data:gr,props:_r,emits:_r,methods:Dt,computed:Dt,beforeCreate:ue,created:ue,beforeMount:ue,mounted:ue,beforeUpdate:ue,updated:ue,beforeDestroy:ue,beforeUnmount:ue,destroyed:ue,unmounted:ue,activated:ue,deactivated:ue,errorCaptured:ue,serverPrefetch:ue,components:Dt,directives:Dt,watch:Po,provide:gr,inject:Eo};function gr(e,t){return t?e?function(){return te(R(e)?e.call(this,this):e,R(t)?t.call(this,this):t)}:t:e}function Eo(e,t){return Dt(rs(e),rs(t))}function rs(e){if(M(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${pe(t)}Modifiers`]||e[`${ye(t)}Modifiers`];function ko(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||G;let r=n;const i=t.startsWith("update:"),o=i&&Ro(s,t.slice(7));o&&(o.trim&&(r=n.map(u=>Q(u)?u.trim():u)),o.number&&(r=r.map(gi)));let l,a=s[l=kn(t)]||s[l=kn(pe(t))];!a&&i&&(a=s[l=kn(ye(t))]),a&&Ae(a,e,6,r);const h=s[l+"Once"];if(h){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ae(h,e,6,r)}}const Fo=new WeakMap;function br(e,t,n=!1){const s=n?Fo:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!R(e)){const a=h=>{const u=br(h,t,!0);u&&(l=!0,te(o,u))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!l?(z(e)&&s.set(e,null),null):(M(i)?i.forEach(a=>o[a]=null):te(o,i),z(e)&&s.set(e,o),o)}function wn(e,t){return!e||!Gt(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),B(e,t[0].toLowerCase()+t.slice(1))||B(e,ye(t))||B(e,t))}function Ic(){}function vr(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:a,render:h,renderCache:u,props:g,data:S,setupState:T,ctx:F,inheritAttrs:E}=e,H=pn(e);let D,k;try{if(n.shapeFlag&4){const w=r||s,L=w;D=Le(h.call(L,w,u,g,T,S,F)),k=l}else{const w=t;D=Le(w.length>1?w(g,{attrs:l,slots:o,emit:a}):w(g,null)),k=t.props?l:Io(l)}}catch(w){ft.length=0,un(w,e,1),D=de(ze)}let j=D;if(k&&E!==!1){const w=Object.keys(k),{shapeFlag:L}=j;w.length&&L&7&&(i&&w.some(Jt)&&(k=Lo(k,i)),j=xt(j,k,!1,!0))}if(n.dirs&&(j=xt(j,null,!1,!0),j.dirs=j.dirs?j.dirs.concat(n.dirs):n.dirs),n.transition){const w=mn(j.type)&&sr(j)||j;Qn(w,n.transition)}return D=j,pn(H),D}const Io=e=>{let t;for(const n in e)(n==="class"||n==="style"||Gt(n))&&((t||(t={}))[n]=e[n]);return t},Lo=(e,t)=>{const n={};for(const s in e)(!Jt(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function No(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:a}=t,h=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return s?yr(s,o,h):!!o;if(a&8){const u=t.dynamicProps;for(let g=0;gObject.create(wr),Cr=e=>Object.getPrototypeOf(e)===wr;function Do(e,t,n,s=!1){const r={},i=Sr();e.propsDefaults=Object.create(null),Tr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Ui(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function $o(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=$(r),[a]=e.propsOptions;let h=!1;if((s||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let g=0;g{a=!0;const[S,T]=Ar(g,t,!0);te(o,S),T&&l.push(...T)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!a)return z(e)&&s.set(e,pt),pt;if(M(i))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",ls=e=>M(e)?e.map(Le):[Le(e)],Uo=(e,t,n)=>{if(t._n)return t;const s=so((...r)=>ls(t(...r)),n);return s._c=!1,s},Pr=(e,t,n)=>{const s=e._ctx;for(const r in e){if(os(r))continue;const i=e[r];if(R(i))t[r]=Uo(r,i,s);else if(i!=null){const o=ls(i);t[r]=()=>o}}},Or=(e,t)=>{const n=ls(t);e.slots.default=()=>n},Mr=(e,t,n)=>{for(const s in t)(n||!os(s))&&(e[s]=t[s])},Bo=(e,t,n)=>{const s=e.slots=Sr();if(e.vnode.shapeFlag&32){const r=t._;r?(Mr(s,t,n),n&&ws(s,"_",r,!0)):Pr(t,s)}else t&&Or(e,t)},Vo=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=G;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:Mr(r,t,n):(i=!t.$stable,Pr(t,r)),o=t}else t&&(Or(e,t),o={default:1});if(i)for(const l in r)!os(l)&&o[l]==null&&delete r[l]},_e=Go;function Ko(e){return Wo(e)}function Wo(e,t){const n=Qt();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:a,setText:h,setElementText:u,parentNode:g,nextSibling:S,setScopeId:T=Ee,insertStaticContent:F}=e,E=(c,f,d,m=null,_=null,p=null,b=void 0,y=null,x=!!f.dynamicChildren)=>{if(c===f)return;c&&!Ht(c,f)&&(m=Tt(c),Se(c,_,p,!0),c=null),f.patchFlag===-2&&(x=!1,f.dynamicChildren=null);const{type:v,ref:P,shapeFlag:C}=f;switch(v){case Sn:H(c,f,d,m);break;case ze:D(c,f,d,m);break;case as:c==null&&k(f,d,m,b);break;case re:wt(c,f,d,m,_,p,b,y,x);break;default:C&1?L(c,f,d,m,_,p,b,y,x):C&6?St(c,f,d,m,_,p,b,y,x):(C&64||C&128)&&v.process(c,f,d,m,_,p,b,y,x,ht)}P!=null&&_?Lt(P,c&&c.ref,p,f||c,!f):P==null&&c&&c.ref!=null&&Lt(c.ref,null,p,c,!0)},H=(c,f,d,m)=>{if(c==null)s(f.el=l(f.children),d,m);else{const _=f.el=c.el;f.children!==c.children&&h(_,f.children)}},D=(c,f,d,m)=>{c==null?s(f.el=a(f.children||""),d,m):f.el=c.el},k=(c,f,d,m)=>{[c.el,c.anchor]=F(c.children,f,d,m,c.el,c.anchor)},j=({el:c,anchor:f},d,m)=>{let _;for(;c&&c!==f;)_=S(c),s(c,d,m),c=_;s(f,d,m)},w=({el:c,anchor:f})=>{let d;for(;c&&c!==f;)d=S(c),r(c),c=d;r(f)},L=(c,f,d,m,_,p,b,y,x)=>{if(f.type==="svg"?b="svg":f.type==="math"&&(b="mathml"),c==null)X(f,d,m,_,p,b,y,x);else{const v=c.el&&c.el._isVueCE?c.el:null;try{v&&v._beginPatch(),tt(c,f,_,p,b,y,x)}finally{v&&v._endPatch()}}},X=(c,f,d,m,_,p,b,y)=>{let x,v;const{props:P,shapeFlag:C,transition:A,dirs:O}=c;if(x=c.el=o(c.type,p,P&&P.is,P),C&8?u(x,c.children):C&16&&we(c.children,x,null,m,_,cs(c,p),b,y),O&&ct(c,null,m,"created"),Y(x,c,c.scopeId,b,m),P){for(const W in P)W!=="value"&&!Et(W)&&i(x,W,null,P[W],p,m);"value"in P&&i(x,"value",null,P.value,p),(v=P.onVnodeBeforeMount)&&Ne(v,m,c)}O&&ct(c,null,m,"beforeMount");const I=zo(_,A);I&&A.beforeEnter(x),s(x,f,d),((v=P&&P.onVnodeMounted)||I||O)&&_e(()=>{try{v&&Ne(v,m,c),I&&A.enter(x),O&&ct(c,null,m,"mounted")}finally{}},_)},Y=(c,f,d,m,_)=>{if(d&&T(c,d),m)for(let p=0;p{for(let v=x;v{const y=f.el=c.el;let{patchFlag:x,dynamicChildren:v,dirs:P}=f;x|=c.patchFlag&16;const C=c.props||G,A=f.props||G;let O;if(d&&at(d,!1),(O=A.onVnodeBeforeUpdate)&&Ne(O,d,f,c),P&&ct(f,c,d,"beforeUpdate"),d&&at(d,!0),v&&(!c.dynamicChildren||c.dynamicChildren.length!==v.length)&&(x=0,b=!1,v=null),(C.innerHTML&&A.innerHTML==null||C.textContent&&A.textContent==null)&&u(y,""),v?Ye(c.dynamicChildren,v,y,d,m,cs(f,_),p):b||q(c,f,y,null,d,m,cs(f,_),p,!1),x>0){if(x&16)ut(y,C,A,d,_);else if(x&2&&C.class!==A.class&&i(y,"class",null,A.class,_),x&4&&i(y,"style",C.style,A.style,_),x&8){const I=f.dynamicProps;for(let W=0;W{O&&Ne(O,d,f,c),P&&ct(f,c,d,"updated")},m)},Ye=(c,f,d,m,_,p,b)=>{for(let y=0;y{if(f!==d){if(f!==G)for(const p in f)!Et(p)&&!(p in d)&&i(c,p,f[p],null,_,m);for(const p in d){if(Et(p))continue;const b=d[p],y=f[p];b!==y&&p!=="value"&&i(c,p,y,b,_,m)}"value"in d&&i(c,"value",f.value,d.value,_)}},wt=(c,f,d,m,_,p,b,y,x)=>{const v=f.el=c?c.el:l(""),P=f.anchor=c?c.anchor:l("");let{patchFlag:C,dynamicChildren:A,slotScopeIds:O}=f;O&&(y=y?y.concat(O):O),c==null?(s(v,d,m),s(P,d,m),we(f.children||[],d,P,_,p,b,y,x)):C>0&&C&64&&A&&c.dynamicChildren&&c.dynamicChildren.length===A.length?(Ye(c.dynamicChildren,A,d,_,p,b,y),(f.key!=null||_&&f===_.subTree)&&Rr(c,f,!0)):q(c,f,d,P,_,p,b,y,x)},St=(c,f,d,m,_,p,b,y,x)=>{f.slotScopeIds=y,c==null?f.shapeFlag&512?_.ctx.activate(f,d,m,b,x):nt(f,d,m,_,p,b,x):dt(c,f,x)},nt=(c,f,d,m,_,p,b)=>{const y=c.component=tl(c,m,_);if(es(c)&&(y.ctx.renderer=ht),nl(y,!1,b),y.asyncDep){if(_&&_.registerDep(y,ne,b),!c.el){const x=y.subTree=de(ze);D(null,x,f,d),c.placeholder=x.el}}else ne(y,c,f,d,_,p,b)},dt=(c,f,d)=>{const m=f.component=c.component;if(No(c,f,d))if(m.asyncDep&&!m.asyncResolved){Z(m,f,d);return}else m.next=f,m.update();else f.el=c.el,m.vnode=f},ne=(c,f,d,m,_,p,b)=>{const y=()=>{if(c.isMounted){let{next:C,bu:A,u:O,parent:I,vnode:W}=c;{const He=kr(c);if(He){C&&(C.el=W.el,Z(c,C,b)),He.asyncDep.then(()=>{_e(()=>{c.isUnmounted||v()},_)});return}}let U=C,ee;at(c,!1),C?(C.el=W.el,Z(c,C,b)):C=W,A&&Fn(A),(ee=C.props&&C.props.onVnodeBeforeUpdate)&&Ne(ee,I,C,W),at(c,!0);const ce=vr(c),$e=c.subTree;c.subTree=ce,E($e,ce,g($e.el),Tt($e),c,_,p),C.el=ce.el,U===null&&jo(c,ce.el),O&&_e(O,_),(ee=C.props&&C.props.onVnodeUpdated)&&_e(()=>Ne(ee,I,C,W),_)}else{let C;const{el:A,props:O}=f,{bm:I,m:W,parent:U,root:ee,type:ce}=c,$e=Nt(f);at(c,!1),I&&Fn(I),!$e&&(C=O&&O.onVnodeBeforeMount)&&Ne(C,U,f),at(c,!0);{ee.ce&&ee.ce._hasShadowRoot()&&ee.ce._injectChildStyle(ce,c.parent?c.parent.type:void 0);const He=c.subTree=vr(c);E(null,He,d,m,c,_,p),f.el=He.el}if(W&&_e(W,_),!$e&&(C=O&&O.onVnodeMounted)){const He=f;_e(()=>Ne(C,U,He),_)}(f.shapeFlag&256||U&&Nt(U.vnode)&&U.vnode.shapeFlag&256)&&c.a&&_e(c.a,_),c.isMounted=!0,f=d=m=null}};c.scope.on();const x=c.effect=new Os(y);c.scope.off();const v=c.update=x.run.bind(x),P=c.job=x.runIfDirty.bind(x);P.i=c,P.id=c.uid,x.scheduler=()=>Xn(P),at(c,!0),v()},Z=(c,f,d)=>{f.component=c;const m=c.vnode.props;c.vnode=f,c.next=null,$o(c,f.props,m,d),Vo(c,f.children,d),Me(),Xs(c),Re()},q=(c,f,d,m,_,p,b,y,x=!1)=>{const v=c&&c.children,P=c?c.shapeFlag:0,C=f.children,{patchFlag:A,shapeFlag:O}=f;if(A>0){if(A&128){Ct(v,C,d,m,_,p,b,y,x);return}else if(A&256){Xe(v,C,d,m,_,p,b,y,x);return}}O&8?(P&16&&rt(v,_,p),C!==v&&u(d,C)):P&16?O&16?Ct(v,C,d,m,_,p,b,y,x):rt(v,_,p,!0):(P&8&&u(d,""),O&16&&we(C,d,m,_,p,b,y,x))},Xe=(c,f,d,m,_,p,b,y,x)=>{c=c||pt,f=f||pt;const v=c.length,P=f.length,C=Math.min(v,P);let A;for(A=0;AP?rt(c,_,p,!0,!1,C):we(f,d,m,_,p,b,y,x,C)},Ct=(c,f,d,m,_,p,b,y,x)=>{let v=0;const P=f.length;let C=c.length-1,A=P-1;for(;v<=C&&v<=A;){const O=c[v],I=f[v]=x?Ge(f[v]):Le(f[v]);if(Ht(O,I))E(O,I,d,null,_,p,b,y,x);else break;v++}for(;v<=C&&v<=A;){const O=c[C],I=f[A]=x?Ge(f[A]):Le(f[A]);if(Ht(O,I))E(O,I,d,null,_,p,b,y,x);else break;C--,A--}if(v>C){if(v<=A){const O=A+1,I=OA)for(;v<=C;)Se(c[v],_,p,!0),v++;else{const O=v,I=v,W=new Map;for(v=I;v<=A;v++){const ve=f[v]=x?Ge(f[v]):Le(f[v]);ve.key!=null&&W.set(ve.key,v)}let U,ee=0;const ce=A-I+1;let $e=!1,He=0;const qt=new Array(ce);for(v=0;v=ce){Se(ve,_,p,!0);continue}let Ue;if(ve.key!=null)Ue=W.get(ve.key);else for(U=I;U<=A;U++)if(qt[U-I]===0&&Ht(ve,f[U])){Ue=U;break}Ue===void 0?Se(ve,_,p,!0):(qt[Ue-I]=v+1,Ue>=He?He=Ue:$e=!0,E(ve,f[Ue],d,null,_,p,b,y,x),ee++)}const ci=$e?qo(qt):pt;for(U=ci.length-1,v=ce-1;v>=0;v--){const ve=I+v,Ue=f[ve],ai=f[ve+1],fi=ve+1{const{el:p,type:b,transition:y,children:x,shapeFlag:v}=c;if(v&6){je(c.component.subTree,f,d,m);return}if(v&128){c.suspense.move(f,d,m);return}if(v&64){b.move(c,f,d,ht);return}if(b===re){s(p,f,d);for(let C=0;Cy.enter(p),_));else{const{leave:C,delayLeave:A,afterLeave:O}=y,I=()=>{c.ctx.isUnmounted?r(p):s(p,f,d)},W=()=>{const U=p._isLeaving||!!p[Zn];p._isLeaving&&p[Zn](!0),y.persisted&&!U?I():C(p,()=>{I(),O&&O()})};A?A(p,I,W):W()}else s(p,f,d)},Se=(c,f,d,m=!1,_=!1)=>{const{type:p,props:b,ref:y,children:x,dynamicChildren:v,shapeFlag:P,patchFlag:C,dirs:A,cacheIndex:O,memo:I}=c;if(C===-2&&(_=!1),y!=null&&(Me(),Lt(y,null,d,c,!0),Re()),O!=null&&(f.renderCache[O]=void 0),P&256){f.ctx.deactivate(c);return}const W=P&1&&A,U=!Nt(c);let ee;if(U&&(ee=b&&b.onVnodeBeforeUnmount)&&Ne(ee,f,c),P&6)_s(c.component,d,m);else{if(P&128){c.suspense.unmount(d,m);return}W&&ct(c,null,f,"beforeUnmount"),P&64?c.type.remove(c,f,d,ht,m):v&&!v.hasOnce&&(p!==re||C>0&&C&64)?rt(v,f,d,!1,!0):(p===re&&C&384||!_&&P&16)&&rt(x,f,d),m&&De(c)}const ce=I!=null&&O==null;(U&&(ee=b&&b.onVnodeUnmounted)||W||ce)&&_e(()=>{ee&&Ne(ee,f,c),W&&ct(c,null,f,"unmounted"),ce&&(c.el=null)},d)},De=c=>{const{type:f,el:d,anchor:m,transition:_}=c;if(f===re){st(d,m);return}if(f===as){w(c);return}const p=()=>{r(d),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(c.shapeFlag&1&&_&&!_.persisted){const{leave:b,delayLeave:y}=_,x=()=>b(d,p);y?y(c.el,p,x):x()}else p()},st=(c,f)=>{let d;for(;c!==f;)d=S(c),r(c),c=d;r(f)},_s=(c,f,d)=>{const{bum:m,scope:_,job:p,subTree:b,um:y,m:x,a:v}=c;Fr(x),Fr(v),m&&Fn(m),_.stop(),p&&(p.flags|=8,Se(b,c,f,d)),y&&_e(y,f),_e(()=>{c.isUnmounted=!0},f)},rt=(c,f,d,m=!1,_=!1,p=0)=>{for(let b=p;b{if(c.shapeFlag&6)return Tt(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const f=S(c.anchor||c.el),d=f&&f[co];return d?S(d):f};let Wt=!1;const zt=(c,f,d)=>{let m;c==null?f._vnode&&(Se(f._vnode,null,null,!0),m=f._vnode.component):E(f._vnode||null,c,f,null,null,null,d),f._vnode=c,Wt||(Wt=!0,Xs(m),Zs(),Wt=!1)},ht={p:E,um:Se,m:je,r:De,mt:nt,mc:we,pc:q,pbc:Ye,n:Tt,o:e};return{render:zt,hydrate:void 0,createApp:Mo(zt)}}function cs({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function at({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function zo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Rr(e,t,n=!1){const s=e.children,r=t.children;if(M(s)&&M(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function kr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:kr(t)}function Fr(e){if(e)for(let t=0;te.__isSuspense;function Go(e,t){t&&t.pendingBranch?M(e)?t.effects.push(...e):t.effects.push(e):no(e)}const re=Symbol.for("v-fgt"),Sn=Symbol.for("v-txt"),ze=Symbol.for("v-cmt"),as=Symbol.for("v-stc"),ft=[];let be=null;function V(e=!1){ft.push(be=e?null:[])}function Nr(){ft.pop(),be=ft[ft.length-1]||null}let $t=1;function jr(e,t=!1){$t+=e,e<0&&be&&t&&(be.hasOnce=!0)}function Dr(e){return e.dynamicChildren=$t>0?be||pt:null,Nr(),$t>0&&be&&be.push(e),e}function K(e,t,n,s,r,i){return Dr(N(e,t,n,s,r,i,!0))}function Jo(e,t,n,s,r){return Dr(de(e,t,n,s,r,!0))}function $r(e){return e?e.__v_isVNode===!0:!1}function Ht(e,t){return e.type===t.type&&e.key===t.key}const Hr=({key:e})=>e??null,Cn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Q(e)||oe(e)||R(e)?{i:Ie,r:e,k:t,f:!!n}:e:null);function N(e,t=null,n=null,s=0,r=null,i=e===re?0:1,o=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Hr(t),ref:t&&Cn(t),scopeId:er,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ie};return l?(Tn(a,n),i&128&&e.normalize(a)):n&&(a.shapeFlag|=Q(n)?8:16),$t>0&&!o&&be&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&be.push(a),a}const de=Yo;function Yo(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===wo)&&(e=ze),$r(e)){const l=xt(e,t,!0);return n&&Tn(l,n),$t>0&&!i&&be&&(l.shapeFlag&6?be[be.indexOf(e)]=l:be.push(l)),l.patchFlag=-2,l}if(al(e)&&(e=e.__vccOpts),t){t=Xo(t);let{class:l,style:a}=t;l&&!Q(l)&&(t.class=tn(l)),z(a)&&(Gn(a)&&!M(a)&&(a=te({},a)),t.style=en(a))}const o=Q(e)?1:Lr(e)?128:mn(e)?64:z(e)?4:R(e)?2:0;return N(e,t,n,s,r,o,i,!0)}function Xo(e){return e?Gn(e)||Cr(e)?te({},e):e:null}function xt(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:a}=e,h=t?Zo(r||{},t):r,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:h,key:h&&Hr(h),ref:t&&t.ref?n&&i?M(i)?i.concat(Cn(t)):[i,Cn(t)]:Cn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==re?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&xt(e.ssContent),ssFallback:e.ssFallback&&xt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&s&&Qn(u,a.clone(u)),u}function qe(e=" ",t=0){return de(Sn,null,e,t)}function me(e="",t=!1){return t?(V(),Jo(ze,null,e)):de(ze,null,e)}function Le(e){return e==null||typeof e=="boolean"?de(ze):M(e)?de(re,null,e.slice()):$r(e)?Ge(e):de(Sn,null,String(e))}function Ge(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:xt(e)}function Tn(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(M(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Tn(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Cr(t)?t._ctx=Ie:r===3&&Ie&&(Ie.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(R(t)){if(s&65){Tn(e,{default:t});return}t={default:t,_ctx:Ie},n=32}else t=String(t),s&64?(n=16,t=[qe(t)]):n=8;e.children=t,e.shapeFlag|=n}function Zo(...e){const t={};for(let n=0;nhe||Ie;let An,Ut;{const e=Qt(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};An=t("__VUE_INSTANCE_SETTERS__",n=>he=n),Ut=t("__VUE_SSR_SETTERS__",n=>Vt=n)}const Bt=e=>{const t=he;return An(e),e.scope.on(),()=>{e.scope.off(),An(t)}},Br=()=>{he&&he.scope.off(),An(null)};function Vr(e){return e.vnode.shapeFlag&4}let Vt=!1;function nl(e,t=!1,n=!1){t&&Ut(t);const{props:s,children:r}=e.vnode,i=Vr(e);Do(e,s,i,t),Bo(e,r,n||t);const o=i?sl(e,t):void 0;return t&&Ut(!1),o}function sl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,So);const{setup:s}=n;if(s){Me();const r=e.setupContext=s.length>1?il(e):null,i=Bt(e),o=mt(s,e,0,[e.props,r]),l=vs(o);if(Re(),i(),(l||e.sp)&&!Nt(e)&&rr(e),l){if(o.then(Br,Br),t)return o.then(a=>{Ut(!0);try{Kr(e,a,t)}finally{Ut(!1)}}).catch(a=>{un(a,e,0)});e.asyncDep=o}else Kr(e,o)}else Wr(e)}function Kr(e,t,n){R(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:z(t)&&(e.setupState=qs(t)),Wr(e)}function Wr(e,t,n){const s=e.type;e.render||(e.render=s.render||Ee);{const r=Bt(e);Me();try{Co(e)}finally{Re(),r()}}}const rl={get(e,t){return ae(e,"get",""),e[t]}};function il(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,rl),slots:e.slots,emit:e.emit,expose:t}}function fs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(qs(Bi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in jt)return jt[n](e)},has(t,n){return n in t||n in jt}})):e.proxy}const ol=/(?:^|[-_])\w/g,ll=e=>e.replace(ol,t=>t.toUpperCase()).replace(/[-_]/g,"");function cl(e,t=!0){return R(e)?e.displayName||e.name:e.name||t&&e.__name}function zr(e,t,n=!1){let s=cl(t);if(!s&&t.__file){const r=t.__file.match(/([^/\\]+)\.\w+$/);r&&(s=r[1])}if(!s&&e){const r=i=>{for(const o in i)if(i[o]===t)return o};s=r(e.components)||e.parent&&r(e.parent.type.components)||r(e.appContext.components)}return s?ll(s):n?"App":"Anonymous"}function al(e){return R(e)&&"__vccOpts"in e}const le=(e,t)=>qi(e,t,Vt),fl="3.5.42";/** +* @vue/runtime-dom v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let us;const qr=typeof window<"u"&&window.trustedTypes;if(qr)try{us=qr.createPolicy("vue",{createHTML:e=>e})}catch{}const Gr=us?e=>us.createHTML(e):e=>e,ul="http://www.w3.org/2000/svg",dl="http://www.w3.org/1998/Math/MathML",Je=typeof document<"u"?document:null,Jr=Je&&Je.createElement("template"),hl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Je.createElementNS(ul,e):t==="mathml"?Je.createElementNS(dl,e):n?Je.createElement(e,{is:n}):Je.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Je.createTextNode(e),createComment:e=>Je.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Je.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Jr.innerHTML=Gr(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=Jr.content;if(s==="svg"||s==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},pl=Symbol("_vtc");function gl(e,t,n){const s=e[pl];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Yr=Symbol("_vod"),_l=Symbol("_vsh"),ml=Symbol(""),bl=/(?:^|;)\s*display\s*:/;function vl(e,t,n){const s=e.style,r=Q(n);let i=!1;if(n&&!r){if(t)if(Q(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Kt(s,l,"")}else for(const o in t)n[o]==null&&Kt(s,o,"");for(const o in n){o==="display"&&(i=!0);const l=n[o];l!=null?xl(e,o,!Q(t)&&t?t[o]:void 0,l)||Kt(s,o,l):Kt(s,o,"")}}else if(r){if(t!==n){const o=s[ml];o&&(n+=";"+o),s.cssText=n,i=bl.test(n)}}else t&&e.removeAttribute("style");Yr in e&&(e[Yr]=i?s.display:"",e[_l]&&(s.display="none"))}const En=/\s*!important$/;function Kt(e,t,n){if(M(n))n.forEach(s=>Kt(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))En.test(n)?e.setProperty(t,n.replace(En,""),"important"):e.setProperty(t,n);else{const s=yl(e,t);En.test(n)?e.setProperty(ye(s),n.replace(En,""),"important"):e[s]=n}}const Xr=["Webkit","Moz","ms"],ds={};function yl(e,t){const n=ds[t];if(n)return n;let s=pe(t);if(s!=="filter"&&s in e)return ds[t]=s;s=xs(s);for(let r=0;rhs||(Pl.then(()=>hs=0),hs=Date.now());function Ml(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const r=n.value;if(M(r)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const o=r.slice(),l=[s];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Rl=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?gl(e,s,o):t==="style"?vl(e,n,s):Gt(t)?Jt(t)||Cl(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):kl(e,t,s,o))?(ei(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Qr(e,t,s,o,i,t!=="value")):e._isVueCE&&(Fl(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Q(s)))?ei(e,pe(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Qr(e,t,s,o))};function kl(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&ni(t)&&R(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return ni(t)&&Q(n)?!1:t in e}function Fl(e,t){const n=e._def.props;if(!n)return!1;const s=pe(t);return Array.isArray(n)?n.some(r=>pe(r)===s):Object.keys(n).some(r=>pe(r)===s)}const si={};function Il(e,t,n){let s=fo(e,t);Xt(s)&&(s=te({},s,t));class r extends ps{constructor(o){super(s,o,n)}}return r.def=s,r}const Ll=typeof HTMLElement<"u"?HTMLElement:class{};class ps extends Ll{constructor(t,n={},s=oi){super(),this._def=t,this._props=n,this._createApp=s,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&s!==oi?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(te({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof ps){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,hn(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const n of t)this._setAttr(n.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let s=0;s{this._resolved=!0,this._pendingResolve=void 0;const{props:i,styles:o}=s;let l;if(i&&!M(i))for(const a in i){const h=i[a];(h===Number||h&&h.type===Number)&&(a in this._props&&(this._props[a]=Ss(this._props[a])),(l||(l=Object.create(null)))[pe(a)]=!0)}this._numberProps=l,this._resolveProps(s),this.shadowRoot&&this._applyStyles(o),this._mount(s)},n=this._def.__asyncLoader;if(n)return this._pendingResolve=n().then(s=>{s.configureApp=this._def.configureApp,t(this._def=s,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const n=this._instance&&this._instance.exposed;if(n)for(const s in n)B(this,s)||Object.defineProperty(this,s,{get:()=>Jn(n[s])})}_resolveProps(t){const{props:n}=t,s=M(n)?n:Object.keys(n||{});for(const r of Object.keys(this))r[0]!=="_"&&s.includes(r)&&this._setProp(r,this[r]);for(const r of s.map(pe))Object.defineProperty(this,r,{get(){return this._getProp(r)},set(i){this._setProp(r,i,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let s=n?this.getAttribute(t):si;const r=pe(t);n&&this._numberProps&&this._numberProps[r]&&(s=Ss(s)),this._setProp(r,s,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,s=!0,r=!1){if(n!==this._props[t]&&(this._dirty=!0,n===si?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),r&&this._instance&&this._update(),s)){const i=this._ob;i&&(this._processMutations(i.takeRecords()),i.disconnect()),n===!0?this.setAttribute(ye(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(ye(t),n+""):n||this.removeAttribute(ye(t)),i&&i.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),jl(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=de(this._def,te(t,this._props));return this._instance||(n.ce=s=>{this._instance=s,s.ce=this,s.isCE=!0;const r=(i,o)=>{this.dispatchEvent(new CustomEvent(i,Xt(o[0])?te({detail:o},o[0]):{detail:o}))};s.emit=(i,...o)=>{r(i,o),ye(i)!==i&&r(ye(i),o)},this._setParent()}),n}_applyStyles(t,n,s){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const r=this._nonce,i=this.shadowRoot,o=s?this._getStyleAnchor(s)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i);let l=null;for(let a=t.length-1;a>=0;a--){const h=document.createElement("style");r&&h.setAttribute("nonce",r),h.textContent=t[a],i.insertBefore(h,l||o),l=h,a===0&&(s||this._styleAnchors.set(this._def,h),n&&this._styleAnchors.set(n,h))}}_getStyleAnchor(t){if(!t)return null;const n=this._styleAnchors.get(t);return n&&n.parentNode===this.shadowRoot?n:(n&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let n=0;n{ii().render(...e)},oi=(...e)=>{const t=ii().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=$l(s);if(!r)return;const i=t._component;!R(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Dl(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t};function Dl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function $l(e){return Q(e)?document.querySelector(e):e}function Hl(e,t){if(!t.includes("."))return e==null?void 0:e[t];const[n,...s]=t.split(".");let r=e==null?void 0:e[n];for(const i of s)r=r==null?void 0:r[i];return r}function Ul(e,t){const n=e.toLowerCase(),s=t.toLowerCase(),r=[];let i=0,o=n.indexOf(s,i);for(;o!==-1;)r.push([o,o+s.length-1]),i=o+s.length,o=n.indexOf(s,i);return r}function Bl(e,t){const n=e.toLowerCase(),s=t.toLowerCase(),r=[];let i=0,o=-1,l=-1;for(let a=0;a({item:i,matches:[]}));if(n.lengthT-S+1>=Math.min(this.minMatchCharLength,n.length));g.length&&(h=g)}}h.length&&o.push({key:l,indices:h})}o.length&&r.push({item:i,matches:o})}return r}}const Kl=".search-box{position:relative;display:flex;align-items:center;margin:0 auto;width:100%;color:#64748b}.search-box .search-icon{position:absolute;left:12px;pointer-events:none}.search-box input{width:100%;padding:10px 12px 10px 38px;font-size:.95rem;color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:10px;outline:none;box-sizing:border-box}.search-box input:focus{border-color:#2563eb}",gs=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Wl=["value","placeholder","aria-label"],zl=gs({__name:"SearchBar",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Search…"},ariaLabel:{type:String,default:"Search"},maxWidth:{type:String,default:""}},emits:["update:modelValue","search"],setup(e,{emit:t}){const n=e,s=t,r=le(()=>n.maxWidth?{maxWidth:n.maxWidth}:{});function i(o){const l=o.target.value??"";s("update:modelValue",l),s("search",{value:l})}return(o,l)=>(V(),K("div",{class:"search-box",style:en(r.value)},[l[0]||(l[0]=N("svg",{class:"search-icon",width:"18",height:"18",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[N("circle",{cx:"11",cy:"11",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),N("line",{x1:"16.5",y1:"16.5",x2:"21",y2:"21",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),N("input",{type:"search",value:e.modelValue,placeholder:e.placeholder,"aria-label":e.ariaLabel,onInput:i},null,40,Wl)],4))}},[["styles",[Kl]]]),ql=".filter-dropdown{position:relative;min-width:160px;max-width:240px;flex:1 1 160px}@media (max-width: 576px){.filter-dropdown{flex:1 1 100%;max-width:90vw}}.filter-dropdown__trigger{width:100%;padding:6px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:inherit;text-align:start;background:#fff;border:1px solid #cbd5e1;border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:#2563eb}.filter-dropdown__trigger[data-active]{background-color:#2563eb14;border-color:#2563eb}.filter-dropdown__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:absolute;top:100%;left:0;right:0;z-index:10;background-color:#fff;border:1px solid #cbd5e1;border-radius:8px;margin-top:4px;box-shadow:0 4px 12px #0000001f;overflow:hidden}.filter-dropdown__search{border:none;border-bottom:1px solid #e2e8f0;border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:#94a3b8}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid #e2e8f0;padding:6px 12px;font-size:.875rem;color:#2563eb;cursor:pointer;text-align:start}.filter-dropdown__clear:hover{background-color:#2563eb14}.filter-dropdown__options{max-height:250px;overflow-y:auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:600;color:#2563eb}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:#2563eb14}.filter-dropdown__count{color:#64748b;font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:#94a3b8;text-align:center}",Gl=["data-active","aria-expanded"],Jl={class:"filter-dropdown__label"},Yl={key:0,class:"filter-dropdown__menu",role:"listbox"},Xl=["value","placeholder"],Zl={class:"filter-dropdown__options"},Ql={key:0,class:"filter-dropdown__no-options"},ec=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],tc={class:"filter-dropdown__count"},Pn=gs({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:t}){const n=e,s=t,r=ge(!1),i=ge(""),o=ge(-1),l=ge(null),a=ge(null),h=le(()=>{if(!i.value)return n.options;const w=i.value.toLowerCase();return n.options.filter(L=>L.label.toLowerCase().includes(w))}),u=le(()=>n.options.find(w=>w.value===n.value));function g(w){var X;const L=((X=w.composedPath)==null?void 0:X.call(w))??[];l.value&&!L.includes(l.value)&&F()}function S(){r.value?F():T()}function T(){r.value=!0,i.value="",o.value=-1,document.addEventListener("click",g),hn(()=>{var w;return(w=a.value)==null?void 0:w.focus()})}function F(){r.value=!1,i.value="",o.value=-1,document.removeEventListener("click",g)}function E(w){i.value=w.target.value,o.value=-1}function H(w){const L=h.value;switch(w.key){case"ArrowDown":w.preventDefault(),o.value=Math.min(o.value+1,L.length-1),D();break;case"ArrowUp":w.preventDefault(),o.value=Math.max(o.value-1,0),D();break;case"Enter":{w.preventDefault();const X=L[o.value];X&&k(X);break}case"Escape":w.preventDefault(),F();break}}function D(){hn(()=>{var L;const w=(L=l.value)==null?void 0:L.querySelector(".filter-dropdown__option[data-highlighted]");w==null||w.scrollIntoView({block:"nearest"})})}function k(w){s("filter-change",{name:n.name,value:w.value,label:w.label,type:w.type}),F()}function j(){s("filter-clear",{name:n.name}),F()}return ar(()=>document.removeEventListener("click",g)),(w,L)=>(V(),K("div",{ref_key:"rootRef",ref:l,class:tn(["filter-dropdown",{"is-open":r.value}])},[N("button",{class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:S},[N("span",Jl,[u.value?(V(),K(re,{key:0},[qe(se(e.label)+": ",1),N("strong",null,se(u.value.label),1)],64)):(V(),K(re,{key:1},[qe(se(e.label),1)],64))]),L[0]||(L[0]=N("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[N("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Gl),r.value?(V(),K("div",Yl,[N("input",{ref_key:"searchInputRef",ref:a,class:"filter-dropdown__search",type:"text",value:i.value,placeholder:e.placeholder,onInput:E,onKeydown:H},null,40,Xl),e.value?(V(),K("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:j},"Clear selection")):me("",!0),N("div",Zl,[h.value.length===0?(V(),K("div",Ql,"No options found")):(V(!0),K(re,{key:1},yn(h.value,(X,Y)=>(V(),K("div",{key:X.value,class:"filter-dropdown__option",role:"option","data-highlighted":Y===o.value?"":void 0,"data-selected":X.value===e.value?"":void 0,"aria-selected":X.value===e.value,onClick:we=>k(X),onMouseenter:we=>o.value=Y},[N("span",null,se(X.label),1),N("span",tc,se(X.count),1)],40,ec))),128))])])):me("",!0)],2))}},[["styles",[ql]]]);function nc(e,t){return String(t||e||"").trim().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}const sc=".pgg-root{--brand: #2563eb;--ink: #0f172a;--mut: #64748b;--line: #e2e8f0;--card: #fff;--bg: #f8fafc;width:100%;box-sizing:border-box;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;padding:16px}.filters{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.pgg-search{display:flex;justify-content:center}.filters__toggle{background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--brand);display:inline-flex;align-items:center;gap:4px;margin-inline:auto}.filters__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.filters__panel{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:flex-start}.filter-toggle{padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid #cbd5e1;border-radius:8px;transition:border-color .15s ease,background .15s ease}.filter-toggle:hover{border-color:var(--brand)}.filter-toggle[data-active]{background-color:#2563eb14;border-color:var(--brand);color:var(--brand)}.filters__active{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}.filter-chip{display:inline-flex;gap:6px;align-items:center;background-color:#2563eb1a;color:var(--brand);border-radius:100px;padding:4px 12px;font-size:.85rem}.filter-chip__remove{background:none;border:none;cursor:pointer;font-size:1.1em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.filter-chip__remove:hover{opacity:.7}.filters__clear-all{background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--brand);text-decoration:underline;text-underline-offset:4px}.repel{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.font-size-sm{font-size:.875rem;color:var(--mut)}.grid.uupgs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.card.uupg__card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #0000000a}.uupg__image{width:100%;height:130px;object-fit:cover;background:#e2e8f0}.uupg__header{padding:12px 14px 6px}.uupg__name{font-size:1rem;font-weight:700;line-height:1.2;margin:0 0 4px}.uupg__country{font-size:.85rem;color:var(--mut);margin:0}.uupg__country-link{color:var(--brand);text-decoration:none}.uupg__country-link:hover{text-decoration:underline}.uupg__match{font-size:.8rem;color:var(--mut);margin:4px 0 0}.uupg__content{padding:0 14px;font-size:.85rem;color:var(--mut)}.uupg__more-button{margin:12px 14px 14px;padding:8px 12px;text-align:center;font-size:.85rem;font-weight:600;color:#fff;background:var(--brand);border-radius:8px;text-decoration:none}.uupg__more-button:hover{background:#1d4ed8}.search-highlight{background:#fde68a;border-radius:2px;padding:0 1px}.loading,.pgg-empty{grid-column:1 / -1;padding:28px;text-align:center;color:var(--mut);font-size:.9rem}.pgg-loadmore{display:block;margin:20px auto 0;padding:8px 18px;font-size:.9rem;cursor:pointer;color:var(--brand);background:var(--card);border:1px solid var(--brand);border-radius:8px}.pgg-loadmore:hover{background:#2563eb0f}",rc={class:"pgg-root"},ic={key:0,id:"filters",class:"filters"},oc={key:0,class:"pgg-search"},lc=["aria-expanded"],cc={class:"filters__panel"},ac={class:"filters__panel"},fc=["data-active"],uc={key:3,class:"filters__active"},dc=["onClick"],hc={class:"pgg-body"},pc={class:"repel"},gc={class:"font-size-sm"},_c={key:1},mc={id:"results",class:"grid uupgs-list"},bc=["src","alt"],vc={class:"uupg__header"},yc=["innerHTML"],xc={key:0,class:"uupg__country"},wc=["href"],Sc=["innerHTML"],Cc=["innerHTML"],Tc=["innerHTML"],Ac={key:1,class:"uupg__content"},Ec=["href"],Pc={key:0,class:"loading"},Oc={key:1,class:"pgg-empty"},Mc=Il(gs({__name:"people-groups-grid",props:{profileConfig:{type:String,default:""},prayBaseUrl:{type:String,default:""},languageCode:{type:String,default:""},researchUrl:{type:String,default:"/research/"},selectUrl:{type:String,default:""},t:{type:Object,default:()=>({})},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},query:{type:String,default:""},wagfRegion:{type:String,default:""},wagfBlock:{type:String,default:""},rop1:{type:String,default:""},religion:{type:String,default:""},perPage:{type:Number,default:24},morePerPage:{type:Number,default:0}},emits:["groups-filtered"],setup(e,{emit:t}){const n=e,s=t,r=le(()=>{if(!n.profileConfig)return{};try{return JSON.parse(n.profileConfig)||{}}catch{return{}}}),i=le(()=>n.prayBaseUrl||r.value.prayBaseUrl||"https://pray.doxa.life"),o=le(()=>n.languageCode||r.value.languageCode||""),l=le(()=>n.researchUrl||r.value.researchUrl||"/research/"),a=le(()=>({...r.value.t||{},...n.t||{}})),h=c=>!(c===!1||c==="false"||c==="0"||c===0),u=le(()=>h(n.showSearch)),g=le(()=>h(n.showFilters)),S=ge([]),T=ge([]),F=ge(0),E=ge(1),H=ge(!0),D=ge(!1),k=ge({}),j=ge(""),w=ge({}),L=le(()=>u.value?j.value:n.query||""),X=le(()=>{const c={},f=d=>d;return n.wagfRegion&&(c.wagf_region={value:n.wagfRegion,label:f(n.wagfRegion)}),n.wagfBlock&&(c.wagf_block={value:n.wagfBlock,label:f(n.wagfBlock)}),n.rop1&&(c.rop1={value:n.rop1,label:f(n.rop1)}),n.religion&&(c.religion={value:n.religion,label:f(n.religion)}),c}),Y=le(()=>g.value?w.value:X.value),we=le(()=>Object.keys(Y.value).length);function tt(c){return c.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Ye(c,f=500){let d;return(...m)=>{clearTimeout(d),d=setTimeout(()=>c(...m),f)}}const ut=Ye(()=>{H.value=!0,E.value=1,De()},500);function wt(c){j.value=(c==null?void 0:c.value)??"",ut()}function St(){D.value=!D.value}function nt(c){w.value={...w.value,[c.name]:{value:c.value,label:c.label}},E.value=1,De()}function dt(c){ne(c.name)}function ne(c){const f={...w.value};delete f[c],w.value=f,E.value=1,De()}function Z(){w.value={},E.value=1,De()}function q(){if(w.value.exact)return ne("exact");w.value={...w.value,exact:{value:"yes",label:a.value.exact_filter||"Exact"}},E.value=1,De()}function Xe(c){let f=c;for(const[d,m]of Object.entries(Y.value))d==="exact"?f=f:f=f.filter(_=>{const p=_[d];return(p==null?void 0:p.value)===m.value});return f}function Ct(){const c=f=>{const d=new Map;for(const m of S.value){const _=m[f];if(!(_!=null&&_.value))continue;const p=d.get(_.value);p?p.count++:d.set(_.value,{label:_.label,count:1})}return Array.from(d.entries()).map(([m,{label:_,count:p}])=>({value:m,label:_,count:p})).sort((m,_)=>m.label.localeCompare(_.label))};k.value={wagf_region:c("wagf_region"),wagf_block:c("wagf_block"),rop1:c("rop1"),religion:c("religion")}}function je(){const c=Object.keys(k.value),f={};for(const d of c){const m={};for(const[b,y]of Object.entries(Y.value))b!==d&&(m[b]=y);const _=Se(m,S.value),p=new Map;for(const b of _){const y=b[d];y!=null&&y.value&&p.set(y.value,(p.get(y.value)??0)+1)}f[d]=(k.value[d]??[]).map(b=>({...b,count:p.get(b.value)??0}))}k.value=f}function Se(c,f){let d=f;for(const[m,_]of Object.entries(c))m!=="exact"&&(d=d.filter(p=>{var b;return((b=p[m])==null?void 0:b.value)===_.value}));return d}function De(){S.value=S.value.map(p=>(p.matches=[],p.country_label="",p.rop1_label="",p));const f=Object.keys(Y.value).length>0?Xe(S.value):S.value,d=L.value;if(!d){T.value=f,F.value=T.value.length,H.value=!1,je(),rt();return}const _=new Vl(f,{includeMatches:!0,ignoreLocation:!0,minMatchCharLength:3,threshold:Y.value.exact?0:.4,keys:["name","imb_alternate_name","country_code.label","rop1.label","religion.label","wagf_region.label","wagf_block.label"]}).search(d);T.value=_.map(p=>{var y;const b={...p.item};if(!p.matches)return b;b.matches=[];for(const x of p.matches){const v=x.key;if(!v)continue;let P="";if(String(v).includes(".")){const[C,A]=String(v).split(".");P=(y=b[C])==null?void 0:y[A]}else P=b[String(v)];if(P&&typeof P=="string"){let C=0,A="";if(x.indices.forEach((O,I)=>{const W=O[0],U=O[1],ee=x.indices.length-1===I;A+=tt(P.slice(C,W))+`${tt(P.slice(W,U+1))}`+(ee?tt(P.slice(U+1)):""),C=U+1}),String(v).includes("imb_alternate_name"))b.matches.push({key:a.value.alternate_name??"Also known as",label:A});else if(String(v).includes(".")){const[O]=String(v).split("."),I={religion:a.value.religion,country_code:a.value.country,rop1:a.value.rop1,wagf_region:a.value.wagf_region,wagf_block:a.value.wagf_block};O==="rop1"?b.rop1_label=A:O==="country_code"?b.country_label=A:O==="wagf_region"||b.matches.push({key:I[O]??O,label:A})}else b[String(v)]=A}}return b}),F.value=T.value.length,H.value=!1,je(),rt()}const st=Ur();function _s(){var f,d;const c=((f=st==null?void 0:st.vnode)==null?void 0:f.el)||((d=st==null?void 0:st.proxy)==null?void 0:d.$el);try{const m=c&&c.getRootNode&&c.getRootNode();if(m&&m.host)return m.host}catch{}return c}function rt(){const c={query:L.value,activeFilters:Y.value,total:F.value,slugs:T.value.map(d=>d.slug)};s("groups-filtered",c);const f=_s();f&&typeof f.dispatchEvent=="function"&&f.dispatchEvent(new CustomEvent("groups-filtered",{detail:c,bubbles:!0,composed:!0}))}function Tt(){return n.morePerPage>0?F.value>n.perPage+(E.value-1)*n.morePerPage&&!H.value&&T.value.length>0:F.value>E.value*n.perPage&&!H.value&&T.value.length>0}function Wt(){E.value=E.value+1}const zt=le(()=>n.morePerPage>0?T.value.slice(0,n.perPage+(E.value-1)*n.morePerPage):T.value.slice(0,E.value*n.perPage)),ht=le(()=>Tt());async function li(){const c=`${i.value}/api/people-groups/list?fields=name,slug,wagf_region,wagf_block,country_code,rop1,religion,has_photo,image_url,adopted_by_churches,imb_alternate_name,engagement_status,people_committed&lang=${o.value}`;H.value=!0;try{const d=await(await fetch(c)).json();F.value=d.total,S.value=Array.isArray(d.posts)?d.posts:[],Ct(),De()}catch(f){console.error("[people-groups-grid] fetch error:",f),H.value=!1}}return _n(()=>[n.query,n.wagfRegion,n.wagfBlock,n.rop1,n.religion,u.value,g.value],()=>{E.value=1,De()}),cr(li),(c,f)=>{var d,m,_,p;return V(),K("div",rc,[u.value||g.value?(V(),K("div",ic,[u.value?(V(),K("div",oc,[de(zl,{"model-value":j.value,placeholder:a.value.search||"Search people groups…","aria-label":a.value.search||"Search people groups","max-width":"480px",onSearch:wt},null,8,["model-value","placeholder","aria-label"])])):me("",!0),g.value?(V(),K("button",{key:1,class:"filters__toggle",type:"button","aria-expanded":D.value,onClick:St},[qe(se(D.value?a.value.hide_filters||"Hide Filters":a.value.show_filters||"Show Filters")+" ",1),f[0]||(f[0]=N("svg",{width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[N("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,lc)):me("",!0),g.value&&D.value?(V(),K(re,{key:2},[N("div",cc,[de(Pn,{label:a.value.wagf_region||"Region",name:"wagf_region",options:k.value.wagf_region||[],value:((d=Y.value.wagf_region)==null?void 0:d.value)??"",placeholder:a.value.type_to_search||"Type to search...",onFilterChange:nt,onFilterClear:dt},null,8,["label","options","value","placeholder"]),de(Pn,{label:a.value.wagf_block||"Block",name:"wagf_block",options:k.value.wagf_block||[],value:((m=Y.value.wagf_block)==null?void 0:m.value)??"",placeholder:a.value.type_to_search||"Type to search...",onFilterChange:nt,onFilterClear:dt},null,8,["label","options","value","placeholder"]),de(Pn,{label:a.value.rop1||"People Group",name:"rop1",options:k.value.rop1||[],value:((_=Y.value.rop1)==null?void 0:_.value)??"",placeholder:a.value.type_to_search||"Type to search...",onFilterChange:nt,onFilterClear:dt},null,8,["label","options","value","placeholder"]),de(Pn,{label:a.value.religion||"Religion",name:"religion",options:k.value.religion||[],value:((p=Y.value.religion)==null?void 0:p.value)??"",placeholder:a.value.type_to_search||"Type to search...",onFilterChange:nt,onFilterClear:dt},null,8,["label","options","value","placeholder"])]),N("div",ac,[N("button",{class:"filter-toggle",type:"button","data-active":Y.value.exact?"":void 0,onClick:q},se(a.value.exact_filter||"Exact"),9,fc)])],64)):me("",!0),g.value&&we.value>0?(V(),K("div",uc,[(V(!0),K(re,null,yn(Y.value,(b,y)=>(V(),K("span",{key:y,class:"filter-chip"},[qe(se(b.label)+" ",1),N("button",{class:"filter-chip__remove",type:"button",onClick:x=>ne(String(y))},"×",8,dc)]))),128)),N("button",{class:"filters__clear-all",type:"button",onClick:Z},se(a.value.clear_all||"Clear All"),1)])):me("",!0)])):me("",!0),N("div",hc,[N("div",pc,[N("div",gc,[H.value?(V(),K("span",_c," ")):(V(),K(re,{key:0},[qe(se(a.value.total||"Total")+": "+se(F.value),1)],64))])]),N("div",mc,[(V(!0),K(re,null,yn(zt.value,b=>(V(),K("div",{key:b.slug,class:"card uupg__card"},[b.image_url?(V(),K("img",{key:0,class:"uupg__image",src:b.image_url,alt:b.name},null,8,bc)):me("",!0),N("div",vc,[N("h3",{class:"uupg__name",innerHTML:b.name},null,8,yc),b.country_code?(V(),K("p",xc,[N("a",{class:"uupg__country-link",href:`${l.value}../countries/${Jn(nc)(b.country_code.value,b.country_code.label)}`},[N("span",{innerHTML:b.country_label?b.country_label:b.country_code.label},null,8,Sc)],8,wc),b.rop1?(V(),K(re,{key:0},[f[1]||(f[1]=qe(" (",-1)),N("span",{innerHTML:b.rop1_label?b.rop1_label:b.rop1.label},null,8,Cc),f[2]||(f[2]=qe(")",-1))],64)):me("",!0)])):me("",!0),b.matches?(V(!0),K(re,{key:1},yn(b.matches,(y,x)=>(V(),K("p",{key:x,class:"uupg__match"},[N("strong",null,se(y.key),1),f[3]||(f[3]=qe(": ",-1)),N("span",{innerHTML:y.label},null,8,Tc)]))),128)):me("",!0)]),b.location_description?(V(),K("p",Ac,se(b.location_description),1)):me("",!0),N("a",{class:"uupg__more-button",href:`${l.value}${b.slug}`},se(a.value.full_profile||"Full profile"),9,Ec)]))),128)),H.value?(V(),K("div",Pc,se(a.value.loading||"Loading…"),1)):zt.value.length?me("",!0):(V(),K("div",Oc,se(a.value.no_results||"No people groups match this filter."),1))]),ht.value?(V(),K("button",{key:0,class:"pgg-loadmore",type:"button",onClick:Wt},se(a.value.load_more||"Load more"),1)):me("",!0)])])}}},[["styles",[sc]]]));typeof customElements<"u"&&(customElements.get("people-groups-grid")||customElements.define("people-groups-grid",Mc))})(); diff --git a/public/doxa-maps/people-groups-grid/people-groups-grid/driven/index.html b/public/doxa-maps/people-groups-grid/people-groups-grid/driven/index.html new file mode 100644 index 000000000..5842d2b93 --- /dev/null +++ b/public/doxa-maps/people-groups-grid/people-groups-grid/driven/index.html @@ -0,0 +1,150 @@ + + + + + + People Groups Grid — externally driven (controls off, props/events) · people-groups-grid + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/people-groups-grid/people-groups-grid/index.html b/public/doxa-maps/people-groups-grid/people-groups-grid/index.html new file mode 100644 index 000000000..1bbeed09f --- /dev/null +++ b/public/doxa-maps/people-groups-grid/people-groups-grid/index.html @@ -0,0 +1,150 @@ + + + + + + people-groups-grid · people-groups-grid + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/people-groups-grid/people-groups-grid/people-groups-grid/index.html b/public/doxa-maps/people-groups-grid/people-groups-grid/people-groups-grid/index.html new file mode 100644 index 000000000..20c0d7e67 --- /dev/null +++ b/public/doxa-maps/people-groups-grid/people-groups-grid/people-groups-grid/index.html @@ -0,0 +1,150 @@ + + + + + + People Groups Grid — standalone (own search + 4 dropdowns) · people-groups-grid + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/plugin-studio/index.html b/public/doxa-maps/plugin-studio/index.html new file mode 100644 index 000000000..cb5cadfd3 --- /dev/null +++ b/public/doxa-maps/plugin-studio/index.html @@ -0,0 +1,371 @@ + + + + + + doxa-maps + + + + + +
+

doxa-maps / plugin-studio

+
plugin-studio — one bundle, its profiles as paste-anywhere maps
+
+
loading…
+ +
+ +
+
+ + + + + diff --git a/public/doxa-maps/plugin-studio/plugin-studio.js b/public/doxa-maps/plugin-studio/plugin-studio.js new file mode 100644 index 000000000..a65bfd225 --- /dev/null +++ b/public/doxa-maps/plugin-studio/plugin-studio.js @@ -0,0 +1,109 @@ +(function(){"use strict";/** +* @vue/shared v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function ks(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const B={},it=[],we=()=>{},yn=()=>!1,Vt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ut=e=>e.startsWith("onUpdate:"),Z=Object.assign,As=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},To=Object.prototype.hasOwnProperty,F=(e,t)=>To.call(e,t),M=Array.isArray,ze=e=>gt(e)==="[object Map]",Bt=e=>gt(e)==="[object Set]",xn=e=>gt(e)==="[object Date]",P=e=>typeof e=="function",J=e=>typeof e=="string",me=e=>typeof e=="symbol",H=e=>e!==null&&typeof e=="object",_n=e=>(H(e)||P(e))&&P(e.then)&&P(e.catch),wn=Object.prototype.toString,gt=e=>wn.call(e),Eo=e=>gt(e).slice(8,-1),zt=e=>gt(e)==="[object Object]",Ms=e=>J(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,bt=ks(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Wt=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},ko=/-\w/g,se=Wt(e=>e.replace(ko,t=>t.slice(1).toUpperCase())),Ao=/\B([A-Z])/g,be=Wt(e=>e.replace(Ao,"-$1").toLowerCase()),Gt=Wt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Os=Wt(e=>e?`on${Gt(e)}`:""),Ne=(e,t)=>!Object.is(e,t),Ps=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},Mo=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Cn=e=>{const t=J(e)?Number(e):NaN;return isNaN(t)?e:t};let Tn;const Jt=()=>Tn||(Tn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Rs(e){if(M(e)){const t={};for(let s=0;s{if(s){const n=s.split(Po);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function We(e){let t="";if(J(e))t=e;else if(M(e))for(let s=0;s!!(e&&e.__v_isRef===!0),D=e=>J(e)?e:e==null?"":M(e)||H(e)&&(e.toString===wn||!P(e.toString))?An(e)?D(e.value):JSON.stringify(e,Mn,2):String(e),Mn=(e,t)=>An(t)?Mn(e,t.value):ze(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,i],o)=>(s[$s(n,o)+" =>"]=i,s),{})}:Bt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>$s(s))}:me(t)?$s(t):H(t)&&!M(t)&&!zt(t)?String(t):t,$s=(e,t="")=>{var s;return me(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/** +* @vue/reactivity v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let ne;class No{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ne&&(ne.active?(this.parent=ne,this.index=(ne.scopes||(ne.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){const n=this.scopes.slice();for(t=0,s=n.length;t0&&--this._on===0){if(ne===this)ne=this.prevScope;else{let t=ne;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s0)return;if(vt){let t=vt;for(vt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;mt;){let t=mt;for(mt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function $n(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function In(e){let t,s=e.depsTail,n=s;for(;n;){const i=n.prevDep;n.version===-1?(n===s&&(s=i),js(n),jo(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=i}e.deps=t,e.depsTail=s}function Fs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ln(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ln(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===yt)||(e.globalVersion=yt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Fs(e))))return;e.flags|=2;const t=e.dep,s=W,n=ve;W=e,ve=!0;try{$n(e);const i=e.fn(e._value);(t.version===0||Ne(i,e._value))&&(e.flags|=128,e._value=i,t.version++)}catch(i){throw t.version++,i}finally{W=s,ve=n,In(e),e.flags&=-3}}function js(e,t=!1){const{dep:s,prevSub:n,nextSub:i}=e;if(n&&(n.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let o=s.computed.deps;o;o=o.nextDep)js(o,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function jo(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let ve=!0;const Nn=[];function Se(){Nn.push(ve),ve=!1}function Ce(){const e=Nn.pop();ve=e===void 0?!0:e}function Fn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=W;W=void 0;try{t()}finally{W=s}}}let yt=0;class Ho{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class jn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!W||!ve||W===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==W)s=this.activeLink=new Ho(W,this),W.deps?(s.prevDep=W.depsTail,W.depsTail.nextDep=s,W.depsTail=s):W.deps=W.depsTail=s,Hn(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=W.depsTail,s.nextDep=void 0,W.depsTail.nextDep=s,W.depsTail=s,W.deps===s&&(W.deps=n)}return s}trigger(t){this.version++,yt++,this.notify(t)}notify(t){Ls();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Ns()}}}function Hn(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)Hn(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Hs=new WeakMap,Ye=Symbol(""),Ds=Symbol(""),xt=Symbol("");function le(e,t,s){if(ve&&W){let n=Hs.get(e);n||Hs.set(e,n=new Map);let i=n.get(s);i||(n.set(s,i=new jn),i.map=n,i.key=s),i.track()}}function Fe(e,t,s,n,i,o){const r=Hs.get(e);if(!r){yt++;return}const l=c=>{c&&c.trigger()};if(Ls(),t==="clear")r.forEach(l);else{const c=M(e),d=c&&Ms(s);if(c&&s==="length"){const u=Number(n);r.forEach((h,S)=>{(S==="length"||S===xt||!me(S)&&S>=u)&&l(h)})}else switch((s!==void 0||r.has(void 0))&&l(r.get(s)),d&&l(r.get(xt)),t){case"add":c?d&&l(r.get("length")):(l(r.get(Ye)),ze(e)&&l(r.get(Ds)));break;case"delete":c||(l(r.get(Ye)),ze(e)&&l(r.get(Ds)));break;case"set":ze(e)&&l(r.get(Ye));break}}Ns()}function ot(e){const t=j(e);return t===e?t:(le(t,"iterate",xt),ye(e)?t:t.map(He))}function Yt(e){return le(e=j(e),"iterate",xt),e}function Te(e,t){return Ge(e)?rt(Ze(e)?He(t):t):He(t)}const Do={__proto__:null,[Symbol.iterator](){return Ks(this,Symbol.iterator,e=>Te(this,e))},concat(...e){return ot(this).concat(...e.map(t=>M(t)?ot(t):t))},entries(){return Ks(this,"entries",e=>(e[1]=Te(this,e[1]),e))},every(e,t){return je(this,"every",e,t,void 0,arguments)},filter(e,t){return je(this,"filter",e,t,s=>s.map(n=>Te(this,n)),arguments)},find(e,t){return je(this,"find",e,t,s=>Te(this,s),arguments)},findIndex(e,t){return je(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return je(this,"findLast",e,t,s=>Te(this,s),arguments)},findLastIndex(e,t){return je(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return je(this,"forEach",e,t,void 0,arguments)},includes(...e){return Vs(this,"includes",e)},indexOf(...e){return Vs(this,"indexOf",e)},join(e){return ot(this).join(e)},lastIndexOf(...e){return Vs(this,"lastIndexOf",e)},map(e,t){return je(this,"map",e,t,void 0,arguments)},pop(){return _t(this,"pop")},push(...e){return _t(this,"push",e)},reduce(e,...t){return Dn(this,"reduce",e,t)},reduceRight(e,...t){return Dn(this,"reduceRight",e,t)},shift(){return _t(this,"shift")},some(e,t){return je(this,"some",e,t,void 0,arguments)},splice(...e){return _t(this,"splice",e)},toReversed(){return ot(this).toReversed()},toSorted(e){return ot(this).toSorted(e)},toSpliced(...e){return ot(this).toSpliced(...e)},unshift(...e){return _t(this,"unshift",e)},values(){return Ks(this,"values",e=>Te(this,e))}};function Ks(e,t,s){const n=Yt(e),i=n[t]();return n!==e&&!ye(e)&&(i._next=i.next,i.next=()=>{const o=i._next();return o.done||(o.value=s(o.value)),o}),i}const Ko=Array.prototype;function je(e,t,s,n,i,o){const r=Yt(e),l=r!==e&&!ye(e),c=r[t];if(c!==Ko[t]){const h=c.apply(e,o);return l?He(h):h}let d=s;r!==e&&(l?d=function(h,S){return s.call(this,Te(e,h),S,e)}:s.length>2&&(d=function(h,S){return s.call(this,h,S,e)}));const u=c.call(r,d,n);return l&&i?i(u):u}function Dn(e,t,s,n){const i=Yt(e),o=i!==e&&!ye(e);let r=s,l=!1;i!==e&&(o?(l=n.length===0,r=function(d,u,h){return l&&(l=!1,d=Te(e,d)),s.call(this,d,Te(e,u),h,e)}):s.length>3&&(r=function(d,u,h){return s.call(this,d,u,h,e)}));const c=i[t](r,...n);return l?Te(e,c):c}function Vs(e,t,s){const n=j(e);le(n,"iterate",xt);const i=n[t](...s);return(i===-1||i===!1)&&Ws(s[0])?(s[0]=j(s[0]),n[t](...s)):i}function _t(e,t,s=[]){Se(),Ls();const n=j(e)[t].apply(e,s);return Ns(),Ce(),n}const Vo=ks("__proto__,__v_isRef,__isVue"),Kn=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(me));function Uo(e){me(e)||(e=String(e));const t=j(this);return le(t,"has",e),t.hasOwnProperty(e)}class Vn{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const i=this._isReadonly,o=this._isShallow;if(s==="__v_isReactive")return!i;if(s==="__v_isReadonly")return i;if(s==="__v_isShallow")return o;if(s==="__v_raw")return n===(i?o?Jn:Gn:o?Wn:zn).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=M(t);if(!i){let c;if(r&&(c=Do[s]))return c;if(s==="hasOwnProperty")return Uo}const l=Reflect.get(t,s,ce(t)?t:n);if((me(s)?Kn.has(s):Vo(s))||(i||le(t,"get",s),o))return l;if(ce(l)){const c=r&&Ms(s)?l:l.value;return i&&H(c)?zs(c):c}return H(l)?i?zs(l):Bs(l):l}}class Un extends Vn{constructor(t=!1){super(!1,t)}set(t,s,n,i){let o=t[s];const r=M(t)&&Ms(s);if(!this._isShallow){const d=Ge(o);if(!ye(n)&&!Ge(n)&&(o=j(o),n=j(n)),!r&&ce(o)&&!ce(n))return d||(o.value=n),!0}const l=r?Number(s)e,Zt=e=>Reflect.getPrototypeOf(e);function Jo(e,t,s){return function(...n){const i=this.__v_raw,o=j(i),r=ze(o),l=e==="entries"||e===Symbol.iterator&&r,c=e==="keys"&&r,d=i[e](...n),u=s?Us:t?rt:He;return!t&&le(o,"iterate",c?Ds:Ye),Z(Object.create(d),{next(){const{value:h,done:S}=d.next();return S?{value:h,done:S}:{value:l?[u(h[0]),u(h[1])]:u(h),done:S}}})}}function Xt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function qo(e,t){const s={get(i){const o=this.__v_raw,r=j(o),l=j(i);e||(Ne(i,l)&&le(r,"get",i),le(r,"get",l));const{has:c}=Zt(r),d=t?Us:e?rt:He;if(c.call(r,i))return d(o.get(i));if(c.call(r,l))return d(o.get(l));o!==r&&o.get(i)},get size(){const i=this.__v_raw;return!e&&le(j(i),"iterate",Ye),i.size},has(i){const o=this.__v_raw,r=j(o),l=j(i);return e||(Ne(i,l)&&le(r,"has",i),le(r,"has",l)),i===l?o.has(i):o.has(i)||o.has(l)},forEach(i,o){const r=this,l=r.__v_raw,c=j(l),d=t?Us:e?rt:He;return!e&&le(c,"iterate",Ye),l.forEach((u,h)=>i.call(o,d(u),d(h),r))}};return Z(s,e?{add:Xt("add"),set:Xt("set"),delete:Xt("delete"),clear:Xt("clear")}:{add(i){const o=j(this),r=Zt(o),l=j(i),c=!t&&!ye(i)&&!Ge(i)?l:i;return r.has.call(o,c)||Ne(i,c)&&r.has.call(o,i)||Ne(l,c)&&r.has.call(o,l)||(o.add(c),Fe(o,"add",c,c)),this},set(i,o){!t&&!ye(o)&&!Ge(o)&&(o=j(o));const r=j(this),{has:l,get:c}=Zt(r);let d=l.call(r,i);d||(i=j(i),d=l.call(r,i));const u=c.call(r,i);return r.set(i,o),d?Ne(o,u)&&Fe(r,"set",i,o):Fe(r,"add",i,o),this},delete(i){const o=j(this),{has:r,get:l}=Zt(o);let c=r.call(o,i);c||(i=j(i),c=r.call(o,i)),l&&l.call(o,i);const d=o.delete(i);return c&&Fe(o,"delete",i,void 0),d},clear(){const i=j(this),o=i.size!==0,r=i.clear();return o&&Fe(i,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(i=>{s[i]=Jo(i,e,t)}),s}function Qt(e,t){const s=qo(e,t);return(n,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(F(s,i)&&i in n?s:n,i,o)}const Yo={get:Qt(!1,!1)},Zo={get:Qt(!1,!0)},Xo={get:Qt(!0,!1)},Qo={get:Qt(!0,!0)},zn=new WeakMap,Wn=new WeakMap,Gn=new WeakMap,Jn=new WeakMap;function er(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Bs(e){return Ge(e)?e:es(e,!1,Bo,Yo,zn)}function tr(e){return es(e,!1,Wo,Zo,Wn)}function zs(e){return es(e,!0,zo,Xo,Gn)}function Ra(e){return es(e,!0,Go,Qo,Jn)}function es(e,t,s,n,i){if(!H(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=i.get(e);if(o)return o;const r=er(Eo(e));if(r===0)return e;const l=new Proxy(e,r===2?n:s);return i.set(e,l),l}function Ze(e){return Ge(e)?Ze(e.__v_raw):!!(e&&e.__v_isReactive)}function Ge(e){return!!(e&&e.__v_isReadonly)}function ye(e){return!!(e&&e.__v_isShallow)}function Ws(e){return e?!!e.__v_raw:!1}function j(e){const t=e&&e.__v_raw;return t?j(t):e}function sr(e){return!F(e,"__v_skip")&&Object.isExtensible(e)&&Sn(e,"__v_skip",!0),e}const He=e=>H(e)?Bs(e):e,rt=e=>H(e)?zs(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function qn(e){return ce(e)?e.value:e}const nr={get:(e,t,s)=>t==="__v_raw"?e:qn(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const i=e[t];return ce(i)&&!ce(s)?(i.value=s,!0):Reflect.set(e,t,s,n)}};function Yn(e){return Ze(e)?e:new Proxy(e,nr)}class ir{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new jn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=yt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&W!==this)return Rn(this,!0),!0}get value(){const t=this.dep.track();return Ln(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function or(e,t,s=!1){let n,i;return P(e)?n=e:(n=e.get,i=e.set),new ir(n,i,s)}const ts={},ss=new WeakMap;let Xe;function rr(e,t=!1,s=Xe){if(s){let n=ss.get(s);n||ss.set(s,n=[]),n.push(e)}}function lr(e,t,s=B){const{immediate:n,deep:i,once:o,scheduler:r,augmentJob:l,call:c}=s,d=A=>i?A:ye(A)||i===!1||i===0?De(A,1):De(A);let u,h,S,C,K=!1,R=!1;if(ce(e)?(h=()=>e.value,K=ye(e)):Ze(e)?(h=()=>d(e),K=!0):M(e)?(R=!0,K=e.some(A=>Ze(A)||ye(A)),h=()=>e.map(A=>{if(ce(A))return A.value;if(Ze(A))return d(A);if(P(A))return c?c(A,2):A()})):P(e)?t?h=c?()=>c(e,2):e:h=()=>{if(S){Se();try{S()}finally{Ce()}}const A=Xe;Xe=u;try{return c?c(e,3,[C]):e(C)}finally{Xe=A}}:h=we,t&&i){const A=h,te=i===!0?1/0:i;h=()=>De(A(),te)}const X=Fo(),q=()=>{u.stop(),X&&X.active&&As(X.effects,u)};if(o&&t){const A=t;t=(...te)=>{const Oe=A(...te);return q(),Oe}}let N=R?new Array(e.length).fill(ts):ts;const V=A=>{if(!(!(u.flags&1)||!u.dirty&&!A))if(t){const te=u.run();if(A||i||K||(R?te.some((Oe,Pe)=>Ne(Oe,N[Pe])):Ne(te,N))){S&&S();const Oe=Xe;Xe=u;try{const Pe=[te,N===ts?void 0:R&&N[0]===ts?[]:N,C];N=te,c?c(t,3,Pe):t(...Pe)}finally{Xe=Oe}}}else u.run()};return l&&l(V),u=new On(h),u.scheduler=r?()=>r(V,!1):V,C=A=>rr(A,!1,u),S=u.onStop=()=>{const A=ss.get(u);if(A){if(c)c(A,4);else for(const te of A)te();ss.delete(u)}},t?n?V(!0):N=u.run():r?r(V.bind(null,!0),!0):u.run(),q.pause=u.pause.bind(u),q.resume=u.resume.bind(u),q.stop=q,q}function De(e,t=1/0,s){if(t<=0||!H(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,ce(e))De(e.value,t,s);else if(M(e))for(let n=0;n{De(n,t,s)});else if(zt(e)){for(const n in e)De(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&De(e[n],t,s)}return e}/** +* @vue/runtime-core v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const wt=[];let Gs=!1;function $a(e,...t){if(Gs)return;Gs=!0,Se();const s=wt.length?wt[wt.length-1].component:null,n=s&&s.appContext.config.warnHandler,i=cr();if(n)lt(n,s,11,[e+t.map(o=>{var r,l;return(l=(r=o.toString)==null?void 0:r.call(o))!=null?l:JSON.stringify(o)}).join(""),s&&s.proxy,i.map(({vnode:o})=>`at <${Yi(s,o.type)}>`).join(` +`),i]);else{const o=[`[Vue warn]: ${e}`,...t];i.length&&o.push(` +`,...ar(i)),console.warn(...o)}Ce(),Gs=!1}function cr(){let e=wt[wt.length-1];if(!e)return[];const t=[];for(;e;){const s=t[0];s&&s.vnode===e?s.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function ar(e){const t=[];return e.forEach((s,n)=>{t.push(...n===0?[]:[` +`],...fr(s))}),t}function fr({vnode:e,recurseCount:t}){const s=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,i=` at <${Yi(e.component,e.type,n)}`,o=">"+s;return e.props?[i,...ur(e.props),o]:[i+o]}function ur(e){const t=[],s=Object.keys(e);return s.slice(0,3).forEach(n=>{t.push(...Zn(n,e[n]))}),s.length>3&&t.push(" ..."),t}function Zn(e,t,s){return J(t)?(t=JSON.stringify(t),s?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?s?t:[`${e}=${t}`]:ce(t)?(t=Zn(e,j(t.value),!0),s?t:[`${e}=Ref<`,t,">"]):P(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=j(t),s?t:[`${e}=`,t])}function lt(e,t,s,n){try{return n?e(...n):e()}catch(i){ns(i,t,s)}}function xe(e,t,s,n){if(P(e)){const i=lt(e,t,s,n);return i&&_n(i)&&i.catch(o=>{ns(o,t,s)}),i}if(M(e)){const i=[];for(let o=0;o>>1,i=fe[n],o=St(i);o=St(s)?fe.push(e):fe.splice(pr(t),0,e),e.flags|=1,ei()}}function ei(){is||(is=Xn.then(ni))}function hr(e){if(!M(e))Je&&e.id===-1?Je.splice(at+1,0,e):e.flags&1||(ct.push(e),e.flags|=1);else for(let t=0;tSt(s)-St(n));if(ct.length=0,Je){for(let s=0;se.id==null?e.flags&2?-1:1/0:e.id;function ni(e){try{for(Ee=0;Ee{n._d&&Ki(-1);const o=os(t),r=Ve.length;let l;try{l=e(...i)}finally{for(let c=Ve.length;c>r;c--)fn();os(o),n._d&&Ki(1)}return l};return n._n=!0,n._c=!0,n._d=!0,n}function rs(e,t){if(ie===null)return e;const s=vs(ie),n=e.dirs||(e.dirs=[]);for(let i=0;i1)return s&&P(t)?t.call(n&&n.proxy):t}}const br=Symbol.for("v-scx"),mr=()=>Tt(br);function qs(e,t,s){return oi(e,t,s)}function oi(e,t,s=B){const{immediate:n,deep:i,flush:o,once:r}=s,l=Z({},s),c=t&&n||!t&&o!=="post";let d;if($t){if(o==="sync"){const C=mr();d=C.__watcherHandles||(C.__watcherHandles=[])}else if(!c){const C=()=>{};return C.stop=we,C.resume=we,C.pause=we,C}}const u=ae;l.call=(C,K,R)=>xe(C,u,K,R);let h=!1;o==="post"?l.scheduler=C=>{pe(C,u&&u.suspense)}:o!=="sync"&&(h=!0,l.scheduler=(C,K)=>{K?C():Js(C)}),l.augmentJob=C=>{t&&(C.flags|=4),h&&(C.flags|=2,u&&(C.id=u.uid,C.i=u))};const S=lr(e,t,l);return $t&&(d?d.push(S):c&&S()),S}function vr(e,t,s){const n=this.proxy,i=J(e)?e.includes(".")?ri(n,e):()=>n[e]:e.bind(n,n);let o;P(t)?o=t:(o=t.handler,s=t);const r=Rt(this),l=oi(i,o.bind(n),s);return r(),l}function ri(e,t){const s=t.split(".");return()=>{let n=e;for(let i=0;ie.__isTeleport,Ys=Symbol("_leaveCb");function xr(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==ke){t=s;break}}return t}function li(e){if(!Qs(e))return ls(e.type)&&e.children?xr(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&P(s.default))return s.default()}}function Zs(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;Zs(ls(s.type)&&li(s)||s,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Xs(e,t){return P(e)?Z({name:e.name},t,{setup:e}):e}function ci(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ai(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const cs=new WeakMap;function Et(e,t,s,n,i=!1){if(M(e)){e.forEach((R,X)=>Et(R,t&&(M(t)?t[X]:t),s,n,i));return}if(ft(n)&&!i){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Et(e,t,s,n.component.subTree);return}const o=n.shapeFlag&4?vs(n.component):n.el,r=i?null:o,{i:l,r:c}=e,d=t&&t.r,u=l.refs===B?l.refs={}:l.refs,h=l.setupState,S=j(h),C=h===B?yn:R=>ai(u,R)?!1:F(S,R),K=(R,X)=>!(X&&ai(u,X));if(d!=null&&d!==c){if(fi(t),J(d))u[d]=null,C(d)&&(h[d]=null);else if(ce(d)){const R=t;K(d,R.k)&&(d.value=null),R.k&&(u[R.k]=null)}}if(P(c))lt(c,l,12,[r,u]);else{const R=J(c),X=ce(c);if(R||X){const q=()=>{if(e.f){const N=R?C(c)?h[c]:u[c]:K()||!e.k?c.value:u[e.k];if(i)M(N)&&As(N,o);else if(M(N))N.includes(o)||N.push(o);else if(R)u[c]=[o],C(c)&&(h[c]=u[c]);else{const V=[o];K(c,e.k)&&(c.value=V),e.k&&(u[e.k]=V)}}else R?(u[c]=r,C(c)&&(h[c]=r)):X&&(K(c,e.k)&&(c.value=r),e.k&&(u[e.k]=r))};if(r){const N=()=>{q(),cs.delete(e)};N.id=-1,cs.set(e,N),pe(N,s)}else fi(e),q()}}}function fi(e){const t=cs.get(e);t&&(t.flags|=8,cs.delete(e))}Jt().requestIdleCallback,Jt().cancelIdleCallback;const ft=e=>!!e.type.__asyncLoader,Qs=e=>e.type.__isKeepAlive;function _r(e,t){ui(e,"a",t)}function wr(e,t){ui(e,"da",t)}function ui(e,t,s=ae){const n=e.__wdc||(e.__wdc=()=>{let i=s;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(as(t,n,s),s){let i=s.parent;for(;i&&i.parent;)Qs(i.parent.vnode)&&Sr(n,t,s,i),i=i.parent}}function Sr(e,t,s,n){const i=as(t,e,n,!0);pi(()=>{As(n[t],i)},s)}function as(e,t,s=ae,n=!1){if(s){const i=s[e]||(s[e]=[]),o=t.__weh||(t.__weh=(...r)=>{Se();const l=Rt(s),c=xe(t,s,e,r);return l(),Ce(),c});return n?i.unshift(o):i.push(o),o}}const Ke=e=>(t,s=ae)=>{(!$t||e==="sp")&&as(e,(...n)=>t(...n),s)},Cr=Ke("bm"),di=Ke("m"),Tr=Ke("bu"),Er=Ke("u"),kr=Ke("bum"),pi=Ke("um"),Ar=Ke("sp"),Mr=Ke("rtg"),Or=Ke("rtc");function Pr(e,t=ae){as("ec",e,t)}const Rr="components";function $r(e,t){return Lr(Rr,e,!0,t)||e}const Ir=Symbol.for("v-ndc");function Lr(e,t,s=!0,n=!1){const i=ie||ae;if(i){const o=i.type;{const l=qi(o,!1);if(l&&(l===t||l===se(t)||l===Gt(se(t))))return o}const r=hi(i[e]||o[e],t)||hi(i.appContext[e],t);return!r&&n?o:r}}function hi(e,t){return e&&(e[t]||e[se(t)]||e[Gt(se(t))])}function ut(e,t,s,n){let i;const o=s,r=M(e);if(r||J(e)){const l=r&&Ze(e);let c=!1,d=!1;l&&(c=!ye(e),d=Ge(e),e=Yt(e)),i=new Array(e.length);for(let u=0,h=e.length;ut(l,c,void 0,o));else{const l=Object.keys(e);i=new Array(l.length);for(let c=0,d=l.length;c0;return t!=="default"&&(d.name=t),$(),hs(ee,null,[_e("slot",d,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const l=Ve.length;$();let c;try{const d=r&&gi(r(s)),u=s.key||o||d&&d.key;c=hs(ee,{key:(u&&!me(u)?u:`_${t}`)+(!d&&n?"_fb":"")},d||(n?n():[]),d&&e._===1?64:-2)}catch(d){for(let u=Ve.length;u>l;u--)fn();throw d}finally{r&&r._c&&(r._d=!0)}return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),c}function gi(e){return e.some(t=>un(t)?!(t.type===ke||t.type===ee&&!gi(t.children)):!0)?e:null}const en=e=>e?Wi(e)?vs(e):en(e.parent):null,kt=Z(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>en(e.parent),$root:e=>en(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>yi(e),$forceUpdate:e=>e.f||(e.f=()=>{Js(e.update)}),$nextTick:e=>e.n||(e.n=Qn.bind(e.proxy)),$watch:e=>vr.bind(e)}),tn=(e,t)=>e!==B&&!e.__isScriptSetup&&F(e,t),Nr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:i,props:o,accessCache:r,type:l,appContext:c}=e;if(t[0]!=="$"){const S=r[t];if(S!==void 0)switch(S){case 1:return n[t];case 2:return i[t];case 4:return s[t];case 3:return o[t]}else{if(tn(n,t))return r[t]=1,n[t];if(i!==B&&F(i,t))return r[t]=2,i[t];if(F(o,t))return r[t]=3,o[t];if(s!==B&&F(s,t))return r[t]=4,s[t];sn&&(r[t]=0)}}const d=kt[t];let u,h;if(d)return t==="$attrs"&&le(e.attrs,"get",""),d(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(s!==B&&F(s,t))return r[t]=4,s[t];if(h=c.config.globalProperties,F(h,t))return h[t]},set({_:e},t,s){const{data:n,setupState:i,ctx:o}=e;return tn(i,t)?(i[t]=s,!0):n!==B&&F(n,t)?(n[t]=s,!0):F(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:i,props:o,type:r}},l){let c;return!!(s[l]||e!==B&&l[0]!=="$"&&F(e,l)||tn(t,l)||F(o,l)||F(n,l)||F(kt,l)||F(i.config.globalProperties,l)||(c=r.__cssModules)&&c[l])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:F(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function bi(e){return M(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let sn=!0;function Fr(e){const t=yi(e),s=e.proxy,n=e.ctx;sn=!1,t.beforeCreate&&mi(t.beforeCreate,e,"bc");const{data:i,computed:o,methods:r,watch:l,provide:c,inject:d,created:u,beforeMount:h,mounted:S,beforeUpdate:C,updated:K,activated:R,deactivated:X,beforeDestroy:q,beforeUnmount:N,destroyed:V,unmounted:A,render:te,renderTracked:Oe,renderTriggered:Pe,errorCaptured:qe,serverPrefetch:ws,expose:tt,inheritAttrs:jt,components:Ss,directives:Cs,filters:mn}=t;if(d&&jr(d,n,null),r)for(const Y in r){const G=r[Y];P(G)&&(n[Y]=G.bind(s))}if(i){const Y=i.call(s,s);H(Y)&&(e.data=Bs(Y))}if(sn=!0,o)for(const Y in o){const G=o[Y],st=P(G)?G.bind(s,s):P(G.get)?G.get.bind(s,s):we,Ts=!P(G)&&P(G.set)?G.set.bind(s):we,nt=_l({get:st,set:Ts});Object.defineProperty(n,Y,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Re=>nt.value=Re})}if(l)for(const Y in l)vi(l[Y],n,s,Y);if(c){const Y=P(c)?c.call(s):c;Reflect.ownKeys(Y).forEach(G=>{gr(G,Y[G])})}u&&mi(u,e,"c");function de(Y,G){M(G)?G.forEach(st=>Y(st.bind(s))):G&&Y(G.bind(s))}if(de(Cr,h),de(di,S),de(Tr,C),de(Er,K),de(_r,R),de(wr,X),de(Pr,qe),de(Or,Oe),de(Mr,Pe),de(kr,N),de(pi,A),de(Ar,ws),M(tt))if(tt.length){const Y=e.exposed||(e.exposed={});tt.forEach(G=>{Object.defineProperty(Y,G,{get:()=>s[G],set:st=>s[G]=st,enumerable:!0})})}else e.exposed||(e.exposed={});te&&e.render===we&&(e.render=te),jt!=null&&(e.inheritAttrs=jt),Ss&&(e.components=Ss),Cs&&(e.directives=Cs),ws&&ci(e)}function jr(e,t,s=we){M(e)&&(e=nn(e));for(const n in e){const i=e[n];let o;H(i)?"default"in i?o=Tt(i.from||n,i.default,!0):o=Tt(i.from||n):o=Tt(i),ce(o)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>o.value,set:r=>o.value=r}):t[n]=o}}function mi(e,t,s){xe(M(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function vi(e,t,s,n){let i=n.includes(".")?ri(s,n):()=>s[n];if(J(e)){const o=t[e];P(o)&&qs(i,o)}else if(P(e))qs(i,e.bind(s));else if(H(e))if(M(e))e.forEach(o=>vi(o,t,s,n));else{const o=P(e.handler)?e.handler.bind(s):t[e.handler];P(o)&&qs(i,o,e)}}function yi(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:i,optionsCache:o,config:{optionMergeStrategies:r}}=e.appContext,l=o.get(t);let c;return l?c=l:!i.length&&!s&&!n?c=t:(c={},i.length&&i.forEach(d=>us(c,d,r,!0)),us(c,t,r)),H(t)&&o.set(t,c),c}function us(e,t,s,n=!1){const{mixins:i,extends:o}=t;o&&us(e,o,s,!0),i&&i.forEach(r=>us(e,r,s,!0));for(const r in t)if(!(n&&r==="expose")){const l=Hr[r]||s&&s[r];e[r]=l?l(e[r],t[r]):t[r]}return e}const Hr={data:xi,props:_i,emits:_i,methods:At,computed:At,beforeCreate:ue,created:ue,beforeMount:ue,mounted:ue,beforeUpdate:ue,updated:ue,beforeDestroy:ue,beforeUnmount:ue,destroyed:ue,unmounted:ue,activated:ue,deactivated:ue,errorCaptured:ue,serverPrefetch:ue,components:At,directives:At,watch:Kr,provide:xi,inject:Dr};function xi(e,t){return t?e?function(){return Z(P(e)?e.call(this,this):e,P(t)?t.call(this,this):t)}:t:e}function Dr(e,t){return At(nn(e),nn(t))}function nn(e){if(M(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${se(t)}Modifiers`]||e[`${be(t)}Modifiers`];function zr(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||B;let i=s;const o=t.startsWith("update:"),r=o&&Br(n,t.slice(7));r&&(r.trim&&(i=s.map(u=>J(u)?u.trim():u)),r.number&&(i=i.map(Mo)));let l,c=n[l=Os(t)]||n[l=Os(se(t))];!c&&o&&(c=n[l=Os(be(t))]),c&&xe(c,e,6,i);const d=n[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,xe(d,e,6,i)}}const Wr=new WeakMap;function Si(e,t,s=!1){const n=s?Wr:t.emitsCache,i=n.get(e);if(i!==void 0)return i;const o=e.emits;let r={},l=!1;if(!P(e)){const c=d=>{const u=Si(d,t,!0);u&&(l=!0,Z(r,u))};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(H(e)&&n.set(e,null),null):(M(o)?o.forEach(c=>r[c]=null):Z(r,o),H(e)&&n.set(e,r),r)}function ds(e,t){return!e||!Vt(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),F(e,t[0].toLowerCase()+t.slice(1))||F(e,be(t))||F(e,t))}function Ia(){}function Ci(e){const{type:t,vnode:s,proxy:n,withProxy:i,propsOptions:[o],slots:r,attrs:l,emit:c,render:d,renderCache:u,props:h,data:S,setupState:C,ctx:K,inheritAttrs:R}=e,X=os(e);let q,N;try{if(s.shapeFlag&4){const A=i||n,te=A;q=Ae(d.call(te,A,u,h,C,S,K)),N=l}else{const A=t;q=Ae(A.length>1?A(h,{attrs:l,slots:r,emit:c}):A(h,null)),N=t.props?l:Gr(l)}}catch(A){Ve.length=0,ns(A,e,1),q=_e(ke)}let V=q;if(N&&R!==!1){const A=Object.keys(N),{shapeFlag:te}=V;A.length&&te&7&&(o&&A.some(Ut)&&(N=Jr(N,o)),V=pt(V,N,!1,!0))}if(s.dirs&&(V=pt(V,null,!1,!0),V.dirs=V.dirs?V.dirs.concat(s.dirs):s.dirs),s.transition){const A=ls(V.type)&&li(V)||V;Zs(A,s.transition)}return q=V,os(X),q}const Gr=e=>{let t;for(const s in e)(s==="class"||s==="style"||Vt(s))&&((t||(t={}))[s]=e[s]);return t},Jr=(e,t)=>{const s={};for(const n in e)(!Ut(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function qr(e,t,s){const{props:n,children:i,component:o}=e,{props:r,children:l,patchFlag:c}=t,d=o.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&c>=0){if(c&1024)return!0;if(c&16)return n?Ti(n,r,d):!!r;if(c&8){const u=t.dynamicProps;for(let h=0;hObject.create(ki),Mi=e=>Object.getPrototypeOf(e)===ki;function Zr(e,t,s,n=!1){const i={},o=Ai();e.propsDefaults=Object.create(null),Oi(e,t,i,o);for(const r in e.propsOptions[0])r in i||(i[r]=void 0);s?e.props=n?i:tr(i):e.type.props?e.props=i:e.props=o,e.attrs=o}function Xr(e,t,s,n){const{props:i,attrs:o,vnode:{patchFlag:r}}=e,l=j(i),[c]=e.propsOptions;let d=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[S,C]=Pi(h,t,!0);Z(r,S),C&&l.push(...C)};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!c)return H(e)&&n.set(e,it),it;if(M(o))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",ln=e=>M(e)?e.map(Ae):[Ae(e)],el=(e,t,s)=>{if(t._n)return t;const n=Ct((...i)=>ln(t(...i)),s);return n._c=!1,n},$i=(e,t,s)=>{const n=e._ctx;for(const i in e){if(rn(i))continue;const o=e[i];if(P(o))t[i]=el(i,o,n);else if(o!=null){const r=ln(o);t[i]=()=>r}}},Ii=(e,t)=>{const s=ln(t);e.slots.default=()=>s},Li=(e,t,s)=>{for(const n in t)(s||!rn(n))&&(e[n]=t[n])},tl=(e,t,s)=>{const n=e.slots=Ai();if(e.vnode.shapeFlag&32){const i=t._;i?(Li(n,t,s),s&&Sn(n,"_",i,!0)):$i(t,n)}else t&&Ii(e,t)},sl=(e,t,s)=>{const{vnode:n,slots:i}=e;let o=!0,r=B;if(n.shapeFlag&32){const l=t._;l?s&&l===1?o=!1:Li(i,t,s):(o=!t.$stable,$i(t,i)),r=t}else t&&(Ii(e,t),r={default:1});if(o)for(const l in i)!rn(l)&&r[l]==null&&delete i[l]},pe=ll;function nl(e){return il(e)}function il(e,t){const s=Jt();s.__VUE__=!0;const{insert:n,remove:i,patchProp:o,createElement:r,createText:l,createComment:c,setText:d,setElementText:u,parentNode:h,nextSibling:S,setScopeId:C=we,insertStaticContent:K}=e,R=(a,f,p,v=null,m=null,g=null,_=void 0,x=null,y=!!f.dynamicChildren)=>{if(a===f)return;a&&!Ot(a,f)&&(v=Es(a),Re(a,m,g,!0),a=null),f.patchFlag===-2&&(y=!1,f.dynamicChildren=null);const{type:b,ref:E,shapeFlag:w}=f;switch(b){case ps:X(a,f,p,v);break;case ke:q(a,f,p,v);break;case an:a==null&&N(f,p,v,_);break;case ee:Ss(a,f,p,v,m,g,_,x,y);break;default:w&1?te(a,f,p,v,m,g,_,x,y):w&6?Cs(a,f,p,v,m,g,_,x,y):(w&64||w&128)&&b.process(a,f,p,v,m,g,_,x,y,Dt)}E!=null&&m?Et(E,a&&a.ref,g,f||a,!f):E==null&&a&&a.ref!=null&&Et(a.ref,null,g,a,!0)},X=(a,f,p,v)=>{if(a==null)n(f.el=l(f.children),p,v);else{const m=f.el=a.el;f.children!==a.children&&d(m,f.children)}},q=(a,f,p,v)=>{a==null?n(f.el=c(f.children||""),p,v):f.el=a.el},N=(a,f,p,v)=>{[a.el,a.anchor]=K(a.children,f,p,v,a.el,a.anchor)},V=({el:a,anchor:f},p,v)=>{let m;for(;a&&a!==f;)m=S(a),n(a,p,v),a=m;n(f,p,v)},A=({el:a,anchor:f})=>{let p;for(;a&&a!==f;)p=S(a),i(a),a=p;i(f)},te=(a,f,p,v,m,g,_,x,y)=>{if(f.type==="svg"?_="svg":f.type==="math"&&(_="mathml"),a==null)Oe(f,p,v,m,g,_,x,y);else{const b=a.el&&a.el._isVueCE?a.el:null;try{b&&b._beginPatch(),ws(a,f,m,g,_,x,y)}finally{b&&b._endPatch()}}},Oe=(a,f,p,v,m,g,_,x)=>{let y,b;const{props:E,shapeFlag:w,transition:T,dirs:O}=a;if(y=a.el=r(a.type,g,E&&E.is,E),w&8?u(y,a.children):w&16&&qe(a.children,y,null,v,m,cn(a,g),_,x),O&&Qe(a,null,v,"created"),Pe(y,a,a.scopeId,_,v),E){for(const z in E)z!=="value"&&!bt(z)&&o(y,z,null,E[z],g,v);"value"in E&&o(y,"value",null,E.value,g),(b=E.onVnodeBeforeMount)&&Me(b,v,a)}O&&Qe(a,null,v,"beforeMount");const L=ol(m,T);L&&T.beforeEnter(y),n(y,f,p),((b=E&&E.onVnodeMounted)||L||O)&&pe(()=>{try{b&&Me(b,v,a),L&&T.enter(y),O&&Qe(a,null,v,"mounted")}finally{}},m)},Pe=(a,f,p,v,m)=>{if(p&&C(a,p),v)for(let g=0;g{for(let b=y;b{const x=f.el=a.el;let{patchFlag:y,dynamicChildren:b,dirs:E}=f;y|=a.patchFlag&16;const w=a.props||B,T=f.props||B;let O;if(p&&et(p,!1),(O=T.onVnodeBeforeUpdate)&&Me(O,p,f,a),E&&Qe(f,a,p,"beforeUpdate"),p&&et(p,!0),b&&(!a.dynamicChildren||a.dynamicChildren.length!==b.length)&&(y=0,_=!1,b=null),(w.innerHTML&&T.innerHTML==null||w.textContent&&T.textContent==null)&&u(x,""),b?tt(a.dynamicChildren,b,x,p,v,cn(f,m),g):_||G(a,f,x,null,p,v,cn(f,m),g,!1),y>0){if(y&16)jt(x,w,T,p,m);else if(y&2&&w.class!==T.class&&o(x,"class",null,T.class,m),y&4&&o(x,"style",w.style,T.style,m),y&8){const L=f.dynamicProps;for(let z=0;z{O&&Me(O,p,f,a),E&&Qe(f,a,p,"updated")},v)},tt=(a,f,p,v,m,g,_)=>{for(let x=0;x{if(f!==p){if(f!==B)for(const g in f)!bt(g)&&!(g in p)&&o(a,g,f[g],null,m,v);for(const g in p){if(bt(g))continue;const _=p[g],x=f[g];_!==x&&g!=="value"&&o(a,g,x,_,m,v)}"value"in p&&o(a,"value",f.value,p.value,m)}},Ss=(a,f,p,v,m,g,_,x,y)=>{const b=f.el=a?a.el:l(""),E=f.anchor=a?a.anchor:l("");let{patchFlag:w,dynamicChildren:T,slotScopeIds:O}=f;O&&(x=x?x.concat(O):O),a==null?(n(b,p,v),n(E,p,v),qe(f.children||[],p,E,m,g,_,x,y)):w>0&&w&64&&T&&a.dynamicChildren&&a.dynamicChildren.length===T.length?(tt(a.dynamicChildren,T,p,m,g,_,x),(f.key!=null||m&&f===m.subTree)&&Ni(a,f,!0)):G(a,f,p,E,m,g,_,x,y)},Cs=(a,f,p,v,m,g,_,x,y)=>{f.slotScopeIds=x,a==null?f.shapeFlag&512?m.ctx.activate(f,p,v,_,y):mn(f,p,v,m,g,_,y):yo(a,f,y)},mn=(a,f,p,v,m,g,_)=>{const x=a.component=pl(a,v,m);if(Qs(a)&&(x.ctx.renderer=Dt),hl(x,!1,_),x.asyncDep){if(m&&m.registerDep(x,de,_),!a.el){const y=x.subTree=_e(ke);q(null,y,f,p),a.placeholder=y.el}}else de(x,a,f,p,m,g,_)},yo=(a,f,p)=>{const v=f.component=a.component;if(qr(a,f,p))if(v.asyncDep&&!v.asyncResolved){Y(v,f,p);return}else v.next=f,v.update();else f.el=a.el,v.vnode=f},de=(a,f,p,v,m,g,_)=>{const x=()=>{if(a.isMounted){let{next:w,bu:T,u:O,parent:L,vnode:z}=a;{const Ie=Fi(a);if(Ie){w&&(w.el=z.el,Y(a,w,_)),Ie.asyncDep.then(()=>{pe(()=>{a.isUnmounted||b()},m)});return}}let U=w,Q;et(a,!1),w?(w.el=z.el,Y(a,w,_)):w=z,T&&Ps(T),(Q=w.props&&w.props.onVnodeBeforeUpdate)&&Me(Q,L,w,z),et(a,!0);const re=Ci(a),$e=a.subTree;a.subTree=re,R($e,re,h($e.el),Es($e),a,m,g),w.el=re.el,U===null&&Yr(a,re.el),O&&pe(O,m),(Q=w.props&&w.props.onVnodeUpdated)&&pe(()=>Me(Q,L,w,z),m)}else{let w;const{el:T,props:O}=f,{bm:L,m:z,parent:U,root:Q,type:re}=a,$e=ft(f);et(a,!1),L&&Ps(L),!$e&&(w=O&&O.onVnodeBeforeMount)&&Me(w,U,f),et(a,!0);{Q.ce&&Q.ce._hasShadowRoot()&&Q.ce._injectChildStyle(re,a.parent?a.parent.type:void 0);const Ie=a.subTree=Ci(a);R(null,Ie,p,v,a,m,g),f.el=Ie.el}if(z&&pe(z,m),!$e&&(w=O&&O.onVnodeMounted)){const Ie=f;pe(()=>Me(w,U,Ie),m)}(f.shapeFlag&256||U&&ft(U.vnode)&&U.vnode.shapeFlag&256)&&a.a&&pe(a.a,m),a.isMounted=!0,f=p=v=null}};a.scope.on();const y=a.effect=new On(x);a.scope.off();const b=a.update=y.run.bind(y),E=a.job=y.runIfDirty.bind(y);E.i=a,E.id=a.uid,y.scheduler=()=>Js(E),et(a,!0),b()},Y=(a,f,p)=>{f.component=a;const v=a.vnode.props;a.vnode=f,a.next=null,Xr(a,f.props,v,p),sl(a,f.children,p),Se(),ti(a),Ce()},G=(a,f,p,v,m,g,_,x,y=!1)=>{const b=a&&a.children,E=a?a.shapeFlag:0,w=f.children,{patchFlag:T,shapeFlag:O}=f;if(T>0){if(T&128){Ts(b,w,p,v,m,g,_,x,y);return}else if(T&256){st(b,w,p,v,m,g,_,x,y);return}}O&8?(E&16&&Ht(b,m,g),w!==b&&u(p,w)):E&16?O&16?Ts(b,w,p,v,m,g,_,x,y):Ht(b,m,g,!0):(E&8&&u(p,""),O&16&&qe(w,p,v,m,g,_,x,y))},st=(a,f,p,v,m,g,_,x,y)=>{a=a||it,f=f||it;const b=a.length,E=f.length,w=Math.min(b,E);let T;for(T=0;TE?Ht(a,m,g,!0,!1,w):qe(f,p,v,m,g,_,x,y,w)},Ts=(a,f,p,v,m,g,_,x,y)=>{let b=0;const E=f.length;let w=a.length-1,T=E-1;for(;b<=w&&b<=T;){const O=a[b],L=f[b]=y?Ue(f[b]):Ae(f[b]);if(Ot(O,L))R(O,L,p,null,m,g,_,x,y);else break;b++}for(;b<=w&&b<=T;){const O=a[w],L=f[T]=y?Ue(f[T]):Ae(f[T]);if(Ot(O,L))R(O,L,p,null,m,g,_,x,y);else break;w--,T--}if(b>w){if(b<=T){const O=T+1,L=OT)for(;b<=w;)Re(a[b],m,g,!0),b++;else{const O=b,L=b,z=new Map;for(b=L;b<=T;b++){const ge=f[b]=y?Ue(f[b]):Ae(f[b]);ge.key!=null&&z.set(ge.key,b)}let U,Q=0;const re=T-L+1;let $e=!1,Ie=0;const Kt=new Array(re);for(b=0;b=re){Re(ge,m,g,!0);continue}let Le;if(ge.key!=null)Le=z.get(ge.key);else for(U=L;U<=T;U++)if(Kt[U-L]===0&&Ot(ge,f[U])){Le=U;break}Le===void 0?Re(ge,m,g,!0):(Kt[Le-L]=b+1,Le>=Ie?Ie=Le:$e=!0,R(ge,f[Le],p,null,m,g,_,x,y),Q++)}const wo=$e?rl(Kt):it;for(U=wo.length-1,b=re-1;b>=0;b--){const ge=L+b,Le=f[ge],So=f[ge+1],Co=ge+1{const{el:g,type:_,transition:x,children:y,shapeFlag:b}=a;if(b&6){nt(a.component.subTree,f,p,v);return}if(b&128){a.suspense.move(f,p,v);return}if(b&64){_.move(a,f,p,Dt);return}if(_===ee){n(g,f,p);for(let w=0;wx.enter(g),m));else{const{leave:w,delayLeave:T,afterLeave:O}=x,L=()=>{a.ctx.isUnmounted?i(g):n(g,f,p)},z=()=>{const U=g._isLeaving||!!g[Ys];g._isLeaving&&g[Ys](!0),x.persisted&&!U?L():w(g,()=>{L(),O&&O()})};T?T(g,L,z):z()}else n(g,f,p)},Re=(a,f,p,v=!1,m=!1)=>{const{type:g,props:_,ref:x,children:y,dynamicChildren:b,shapeFlag:E,patchFlag:w,dirs:T,cacheIndex:O,memo:L}=a;if(w===-2&&(m=!1),x!=null&&(Se(),Et(x,null,p,a,!0),Ce()),O!=null&&(f.renderCache[O]=void 0),E&256){f.ctx.deactivate(a);return}const z=E&1&&T,U=!ft(a);let Q;if(U&&(Q=_&&_.onVnodeBeforeUnmount)&&Me(Q,f,a),E&6)Oa(a.component,p,v);else{if(E&128){a.suspense.unmount(p,v);return}z&&Qe(a,null,f,"beforeUnmount"),E&64?a.type.remove(a,f,p,Dt,v):b&&!b.hasOnce&&(g!==ee||w>0&&w&64)?Ht(b,f,p,!1,!0):(g===ee&&w&384||!m&&E&16)&&Ht(y,f,p),v&&xo(a)}const re=L!=null&&O==null;(U&&(Q=_&&_.onVnodeUnmounted)||z||re)&&pe(()=>{Q&&Me(Q,f,a),z&&Qe(a,null,f,"unmounted"),re&&(a.el=null)},p)},xo=a=>{const{type:f,el:p,anchor:v,transition:m}=a;if(f===ee){Ma(p,v);return}if(f===an){A(a);return}const g=()=>{i(p),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(a.shapeFlag&1&&m&&!m.persisted){const{leave:_,delayLeave:x}=m,y=()=>_(p,g);x?x(a.el,g,y):y()}else g()},Ma=(a,f)=>{let p;for(;a!==f;)p=S(a),i(a),a=p;i(f)},Oa=(a,f,p)=>{const{bum:v,scope:m,job:g,subTree:_,um:x,m:y,a:b}=a;ji(y),ji(b),v&&Ps(v),m.stop(),g&&(g.flags|=8,Re(_,a,f,p)),x&&pe(x,f),pe(()=>{a.isUnmounted=!0},f)},Ht=(a,f,p,v=!1,m=!1,g=0)=>{for(let _=g;_{if(a.shapeFlag&6)return Es(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const f=S(a.anchor||a.el),p=f&&f[yr];return p?S(p):f};let vn=!1;const _o=(a,f,p)=>{let v;a==null?f._vnode&&(Re(f._vnode,null,null,!0),v=f._vnode.component):R(f._vnode||null,a,f,null,null,null,p),f._vnode=a,vn||(vn=!0,ti(v),si(),vn=!1)},Dt={p:R,um:Re,m:nt,r:xo,mt:mn,mc:qe,pc:G,pbc:tt,n:Es,o:e};return{render:_o,hydrate:void 0,createApp:Ur(_o)}}function cn({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function et({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ol(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ni(e,t,s=!1){const n=e.children,i=t.children;if(M(n)&&M(i))for(let o=0;o>1,e[s[l]]0&&(t[n]=s[o-1]),s[o]=n)}}for(o=s.length,r=s[o-1];o-- >0;)s[o]=r,r=t[r];return s}function Fi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Fi(t)}function ji(e){if(e)for(let t=0;te.__isSuspense;function ll(e,t){t&&t.pendingBranch?M(e)?t.effects.push(...e):t.effects.push(e):hr(e)}const ee=Symbol.for("v-fgt"),ps=Symbol.for("v-txt"),ke=Symbol.for("v-cmt"),an=Symbol.for("v-stc"),Ve=[];let he=null;function $(e=!1){Ve.push(he=e?null:[])}function fn(){Ve.pop(),he=Ve[Ve.length-1]||null}let Mt=1;function Ki(e,t=!1){Mt+=e,e<0&&he&&t&&(he.hasOnce=!0)}function Vi(e){return e.dynamicChildren=Mt>0?he||it:null,fn(),Mt>0&&he&&he.push(e),e}function I(e,t,s,n,i,o){return Vi(k(e,t,s,n,i,o,!0))}function hs(e,t,s,n,i){return Vi(_e(e,t,s,n,i,!0))}function un(e){return e?e.__v_isVNode===!0:!1}function Ot(e,t){return e.type===t.type&&e.key===t.key}const Ui=({key:e})=>e??null,gs=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?J(e)||ce(e)||P(e)?{i:ie,r:e,k:t,f:!!s}:e:null);function k(e,t=null,s=null,n=0,i=null,o=e===ee?0:1,r=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ui(t),ref:t&&gs(t),scopeId:ii,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:ie};return l?(bs(c,s),o&128&&e.normalize(c)):s&&(c.shapeFlag|=J(s)?8:16),Mt>0&&!r&&he&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&he.push(c),c}const _e=cl;function cl(e,t=null,s=null,n=0,i=null,o=!1){if((!e||e===Ir)&&(e=ke),un(e)){const l=pt(e,t,!0);return s&&bs(l,s),Mt>0&&!o&&he&&(l.shapeFlag&6?he[he.indexOf(e)]=l:he.push(l)),l.patchFlag=-2,l}if(xl(e)&&(e=e.__vccOpts),t){t=al(t);let{class:l,style:c}=t;l&&!J(l)&&(t.class=We(l)),H(c)&&(Ws(c)&&!M(c)&&(c=Z({},c)),t.style=Rs(c))}const r=J(e)?1:Di(e)?128:ls(e)?64:H(e)?4:P(e)?2:0;return k(e,t,s,n,i,r,o,!0)}function al(e){return e?Ws(e)||Mi(e)?Z({},e):e:null}function pt(e,t,s=!1,n=!1){const{props:i,ref:o,patchFlag:r,children:l,transition:c}=e,d=t?fl(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&Ui(d),ref:t&&t.ref?s&&o?M(o)?o.concat(gs(t)):[o,gs(t)]:gs(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ee?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&pt(e.ssContent),ssFallback:e.ssFallback&&pt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&Zs(u,c.clone(u)),u}function ht(e=" ",t=0){return _e(ps,null,e,t)}function oe(e="",t=!1){return t?($(),hs(ke,null,e)):_e(ke,null,e)}function Ae(e){return e==null||typeof e=="boolean"?_e(ke):M(e)?_e(ee,null,e.slice()):un(e)?Ue(e):_e(ps,null,String(e))}function Ue(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:pt(e)}function bs(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(M(t))s=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),bs(e,i()),i._c&&(i._d=!0));return}else{s=32;const i=t._;!i&&!Mi(t)?t._ctx=ie:i===3&&ie&&(ie.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(P(t)){if(n&65){bs(e,{default:t});return}t={default:t,_ctx:ie},s=32}else t=String(t),n&64?(s=16,t=[ht(t)]):s=8;e.children=t,e.shapeFlag|=s}function fl(...e){const t={};for(let s=0;sae||ie;let ms,Pt;{const e=Jt(),t=(s,n)=>{let i;return(i=e[s])||(i=e[s]=[]),i.push(n),o=>{i.length>1?i.forEach(r=>r(o)):i[0](o)}};ms=t("__VUE_INSTANCE_SETTERS__",s=>ae=s),Pt=t("__VUE_SSR_SETTERS__",s=>$t=s)}const Rt=e=>{const t=ae;return ms(e),e.scope.on(),()=>{e.scope.off(),ms(t)}},zi=()=>{ae&&ae.scope.off(),ms(null)};function Wi(e){return e.vnode.shapeFlag&4}let $t=!1;function hl(e,t=!1,s=!1){t&&Pt(t);const{props:n,children:i}=e.vnode,o=Wi(e);Zr(e,n,o,t),tl(e,i,s||t);const r=o?gl(e,t):void 0;return t&&Pt(!1),r}function gl(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Nr);const{setup:n}=s;if(n){Se();const i=e.setupContext=n.length>1?ml(e):null,o=Rt(e),r=lt(n,e,0,[e.props,i]),l=_n(r);if(Ce(),o(),(l||e.sp)&&!ft(e)&&ci(e),l){if(r.then(zi,zi),t)return r.then(c=>{Pt(!0);try{Gi(e,c,t)}finally{Pt(!1)}}).catch(c=>{ns(c,e,0)});e.asyncDep=r}else Gi(e,r)}else Ji(e)}function Gi(e,t,s){P(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:H(t)&&(e.setupState=Yn(t)),Ji(e)}function Ji(e,t,s){const n=e.type;e.render||(e.render=n.render||we);{const i=Rt(e);Se();try{Fr(e)}finally{Ce(),i()}}}const bl={get(e,t){return le(e,"get",""),e[t]}};function ml(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,bl),slots:e.slots,emit:e.emit,expose:t}}function vs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Yn(sr(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in kt)return kt[s](e)},has(t,s){return s in t||s in kt}})):e.proxy}const vl=/(?:^|[-_])\w/g,yl=e=>e.replace(vl,t=>t.toUpperCase()).replace(/[-_]/g,"");function qi(e,t=!0){return P(e)?e.displayName||e.name:e.name||t&&e.__name}function Yi(e,t,s=!1){let n=qi(t);if(!n&&t.__file){const i=t.__file.match(/([^/\\]+)\.\w+$/);i&&(n=i[1])}if(!n&&e){const i=o=>{for(const r in o)if(o[r]===t)return r};n=i(e.components)||e.parent&&i(e.parent.type.components)||i(e.appContext.components)}return n?yl(n):s?"App":"Anonymous"}function xl(e){return P(e)&&"__vccOpts"in e}const _l=(e,t)=>or(e,t,$t),wl="3.5.42";/** +* @vue/runtime-dom v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let dn;const Zi=typeof window<"u"&&window.trustedTypes;if(Zi)try{dn=Zi.createPolicy("vue",{createHTML:e=>e})}catch{}const Xi=dn?e=>dn.createHTML(e):e=>e,Sl="http://www.w3.org/2000/svg",Cl="http://www.w3.org/1998/Math/MathML",Be=typeof document<"u"?document:null,Qi=Be&&Be.createElement("template"),Tl={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const i=t==="svg"?Be.createElementNS(Sl,e):t==="mathml"?Be.createElementNS(Cl,e):s?Be.createElement(e,{is:s}):Be.createElement(e);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>Be.createTextNode(e),createComment:e=>Be.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Be.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,i,o){const r=s?s.previousSibling:t.lastChild;if(i&&(i===o||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),s),!(i===o||!(i=i.nextSibling)););else{Qi.innerHTML=Xi(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const l=Qi.content;if(n==="svg"||n==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,s)}return[r?r.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},El=Symbol("_vtc");function kl(e,t,s){const n=e[El];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const ys=Symbol("_vod"),eo=Symbol("_vsh"),xs={name:"show",beforeMount(e,{value:t},{transition:s}){e[ys]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):It(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:n}){!t!=!s&&(n?t?(n.beforeEnter(e),It(e,!0),n.enter(e)):n.leave(e,()=>{It(e,!1)}):It(e,t))},beforeUnmount(e,{value:t}){It(e,t)}};function It(e,t){e.style.display=t?e[ys]:"none",e[eo]=!t}const Al=Symbol(""),Ml=/(?:^|;)\s*display\s*:/;function Ol(e,t,s){const n=e.style,i=J(s);let o=!1;if(s&&!i){if(t)if(J(t))for(const r of t.split(";")){const l=r.slice(0,r.indexOf(":")).trim();s[l]==null&&Lt(n,l,"")}else for(const r in t)s[r]==null&&Lt(n,r,"");for(const r in s){r==="display"&&(o=!0);const l=s[r];l!=null?Rl(e,r,!J(t)&&t?t[r]:void 0,l)||Lt(n,r,l):Lt(n,r,"")}}else if(i){if(t!==s){const r=n[Al];r&&(s+=";"+r),n.cssText=s,o=Ml.test(s)}}else t&&e.removeAttribute("style");ys in e&&(e[ys]=o?n.display:"",e[eo]&&(n.display="none"))}const _s=/\s*!important$/;function Lt(e,t,s){if(M(s))s.forEach(n=>Lt(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))_s.test(s)?e.setProperty(t,s.replace(_s,""),"important"):e.setProperty(t,s);else{const n=Pl(e,t);_s.test(s)?e.setProperty(be(n),s.replace(_s,""),"important"):e[n]=s}}const to=["Webkit","Moz","ms"],pn={};function Pl(e,t){const s=pn[t];if(s)return s;let n=se(t);if(n!=="filter"&&n in e)return pn[t]=n;n=Gt(n);for(let i=0;ihn||(Hl.then(()=>hn=0),hn=Date.now());function Kl(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;const i=s.value;if(M(i)){const o=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{o.call(n),n._stopped=!0};const r=i.slice(),l=[n];for(let c=0;ce.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Vl=(e,t,s,n,i,o)=>{const r=i==="svg";t==="class"?kl(e,n,r):t==="style"?Ol(e,s,n):Vt(t)?Ut(t)||Ll(e,t,s,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ul(e,t,n,r))?(io(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&no(e,t,n,r,o,t!=="value")):e._isVueCE&&(Bl(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!J(n)))?io(e,se(t),n,o,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),no(e,t,n,r))};function Ul(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&ro(t)&&P(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return ro(t)&&J(s)?!1:t in e}function Bl(e,t){const s=e._def.props;if(!s)return!1;const n=se(t);return Array.isArray(s)?s.some(i=>se(i)===n):Object.keys(s).some(i=>se(i)===n)}const lo={};function zl(e,t,s){let n=Xs(e,t);zt(n)&&(n=Z({},n,t));class i extends gn{constructor(r){super(n,r,s)}}return i.def=n,i}const Wl=typeof HTMLElement<"u"?HTMLElement:class{};class gn extends Wl{constructor(t,s={},n=fo){super(),this._def=t,this._props=s,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==fo?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Z({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof gn){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,Qn(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const s of t)this._setAttr(s.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:o,styles:r}=n;let l;if(o&&!M(o))for(const c in o){const d=o[c];(d===Number||d&&d.type===Number)&&(c in this._props&&(this._props[c]=Cn(this._props[c])),(l||(l=Object.create(null)))[se(c)]=!0)}this._numberProps=l,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),this._mount(n)},s=this._def.__asyncLoader;if(s)return this._pendingResolve=s().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const s=this._instance&&this._instance.exposed;if(s)for(const n in s)F(this,n)||Object.defineProperty(this,n,{get:()=>qn(s[n])})}_resolveProps(t){const{props:s}=t,n=M(s)?s:Object.keys(s||{});for(const i of Object.keys(this))i[0]!=="_"&&n.includes(i)&&this._setProp(i,this[i]);for(const i of n.map(se))Object.defineProperty(this,i,{get(){return this._getProp(i)},set(o){this._setProp(i,o,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const s=this.hasAttribute(t);let n=s?this.getAttribute(t):lo;const i=se(t);s&&this._numberProps&&this._numberProps[i]&&(n=Cn(n)),this._setProp(i,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,s,n=!0,i=!1){if(s!==this._props[t]&&(this._dirty=!0,s===lo?delete this._props[t]:(this._props[t]=s,t==="key"&&this._app&&(this._app._ceVNode.key=s)),i&&this._instance&&this._update(),n)){const o=this._ob;o&&(this._processMutations(o.takeRecords()),o.disconnect()),s===!0?this.setAttribute(be(t),""):typeof s=="string"||typeof s=="number"?this.setAttribute(be(t),s+""):s||this.removeAttribute(be(t)),o&&o.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Jl(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const s=_e(this._def,Z(t,this._props));return this._instance||(s.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const i=(o,r)=>{this.dispatchEvent(new CustomEvent(o,zt(r[0])?Z({detail:r},r[0]):{detail:r}))};n.emit=(o,...r)=>{i(o,r),be(o)!==o&&i(be(o),r)},this._setParent()}),s}_applyStyles(t,s,n){if(!t)return;if(s){if(s===this._def||this._styleChildren.has(s))return;this._styleChildren.add(s)}const i=this._nonce,o=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(o);let l=null;for(let c=t.length-1;c>=0;c--){const d=document.createElement("style");i&&d.setAttribute("nonce",i),d.textContent=t[c],o.insertBefore(d,l||r),l=d,c===0&&(n||this._styleAnchors.set(this._def,d),s&&this._styleAnchors.set(s,d))}}_getStyleAnchor(t){if(!t)return null;const s=this._styleAnchors.get(t);return s&&s.parentNode===this.shadowRoot?s:(s&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let s=0;s{ao().render(...e)},fo=(...e)=>{const t=ao().createApp(...e),{mount:s}=t;return t.mount=n=>{const i=Yl(n);if(!i)return;const o=t._component;!P(o)&&!o.render&&!o.template&&(o.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const r=s(i,!1,ql(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),r},t};function ql(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Yl(e){return J(e)?document.querySelector(e):e}function uo(e,t){const s=t||Zl(e);di(()=>{var l;const n=Bi();if(!n)return;const i=(l=n.proxy)==null?void 0:l.$el;if(!i)return;const o=i.getRootNode();if(!(o instanceof ShadowRoot)||o.querySelector(`style[data-shadow-styles="${s}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",s),r.textContent=e,o.appendChild(r)})}function Zl(e){let t=0;for(let s=0;s',map:'',globe:'',heart:'',prayer:'',list:'',users:'',flag:'',target:'',pin:'',monitor:'',chart:'',layers:'',flask:'',share:'',beaker:'',chevron:'',grid:'',tree:'',dots:'',embed:'',send:'',poster:'',search:'',book:'',wifi:''};function Xl(e,t=""){const s=po[e]||po.map;return``}const Ql=".vtl{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;height:100%;width:100%;min-height:420px;background:#171717;color:#f5f5f5;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--vtl-accent:#00DC82;--vtl-border:#262626;--vtl-elevated:#1f1f1f;--vtl-accented:#404040;--vtl-muted:#a3a3a3}.vtl-top{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--vtl-border);background:#1f1f1f}.vtl-menu{display:none;font:16px/1 system-ui;color:#f5f5f5;background:#262626;border:1px solid #404040;border-radius:8px;padding:5px 10px;cursor:pointer}.vtl-menu:hover{background:#404040}.vtl-brand{display:inline-flex;align-items:center}.vtl-brand:empty{display:none}.vtl-title{font-size:15px;font-weight:600;letter-spacing:-.01em;color:#f5f5f5}.vtl-meta{color:var(--vtl-muted);font-size:12px;margin-left:auto;display:inline-flex;align-items:center;gap:8px}.vtl-body{flex:1 1 auto;display:flex;min-height:0}.vtl-nav{flex:0 0 256px;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--vtl-border);padding:12px 12px 20px;background:#1f1f1f;scrollbar-width:thin;scrollbar-color:#404040 transparent}.vtl-nav::-webkit-scrollbar{width:8px}.vtl-nav::-webkit-scrollbar-thumb{background:#404040;border-radius:8px}.vtl-grp{margin-bottom:2px}.vtl-grp+.vtl-grp{margin-top:8px;padding-top:8px;border-top:1px solid var(--vtl-border)}.vtl-tier{width:100%;padding:8px 8px 6px;display:flex;align-items:center;gap:8px;box-sizing:border-box}.vtl-tier-btn{border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;border-radius:8px}.vtl-tier-btn:hover{background:var(--vtl-accented)}.vtl-tier-btn:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tier-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tier-ic svg{width:15px;height:15px}.vtl-cap{font:700 10px/1 system-ui;letter-spacing:.4px;color:#052e16;background:var(--vtl-accent);border-radius:999px;padding:3px 7px}.vtl-tl{font-weight:600;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--vtl-muted)}.vtl-td{color:#6b6b6b;font-size:11px;margin-left:auto}.vtl-chev{margin-left:auto;display:inline-flex;color:var(--vtl-muted);transition:transform .16s ease}.vtl-chev svg{width:15px;height:15px}.vtl-chev.open{transform:rotate(90deg)}.vtl-rows{display:flex;flex-direction:column;gap:1px}.vtl-tab{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;background:none;color:var(--vtl-muted);padding:8px 10px;cursor:pointer;border-radius:8px;font:inherit;margin:0;transition:background .13s ease,color .13s ease}.vtl-tab:hover{background:var(--vtl-accented);color:#f5f5f5}.vtl-tab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tab.active{background:var(--vtl-accented);color:#f5f5f5;font-weight:500}.vtl-tab.active .vtl-tab-ic{color:var(--vtl-accent)}.vtl-tab-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tab-ic svg{width:20px;height:20px}.vtl-tab-emoji{font-size:17px;line-height:1;flex:0 0 auto}.vtl-tab-text{display:flex;flex-direction:column;min-width:0}.vtl-tab-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.vtl-tab-badge{font:600 9px/1 system-ui;letter-spacing:.3px;text-transform:uppercase;color:var(--vtl-accent);border:1px solid var(--vtl-accent);border-radius:999px;padding:2px 5px}.vtl-tab-sub{font-size:11px;color:#6b6b6b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vtl-tab-sub code{font-family:ui-monospace,Menlo,monospace}.vtl-tab.active .vtl-tab-sub{color:var(--vtl-muted)}.vtl-main{flex:1 1 auto;position:relative;min-width:0;display:flex;flex-direction:column}.vtl-content{flex:1 1 auto;position:relative;min-height:0}.vtl-host,.vtl-host-slot{position:absolute;top:0;right:0;bottom:0;left:0}.vtl-host-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#94a3b8;font-size:13px;padding:20px}.vtl-host-hint.err{color:#f87171}.vtl-host-hint small{color:#64748b}@media (max-width: 760px){.vtl-menu{display:inline-block}.vtl-meta{display:none}.vtl-nav{position:absolute;z-index:20;top:0;bottom:0;left:0;box-shadow:0 0 28px #0000008c}.vtl:not(.nav-open) .vtl-nav{display:none}}",ho=(e,t)=>{const s=e.__vccOpts||e;for(const[n,i]of t)s[n]=i;return s},Nt={};function ec(e){return e?(Nt[e]||(Nt[e]=new Promise((t,s)=>{const n=document.createElement("script");n.src=e,n.onload=()=>t(),n.onerror=()=>{delete Nt[e],s(new Error("failed to load "+e))},document.head.appendChild(n)})),Nt[e]):Promise.resolve()}function tc(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((s,n)=>setTimeout(()=>n(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const sc=` +.vtl { position:absolute; inset:0; display:flex; flex-direction:column; height:100%; width:100%; min-height:420px; background:#171717; color:#f5f5f5; font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif; -webkit-font-smoothing:antialiased; --vtl-accent:#00DC82; --vtl-border:#262626; --vtl-elevated:#1f1f1f; --vtl-accented:#404040; --vtl-muted:#a3a3a3; } +.vtl-top { flex:0 0 auto; display:flex; align-items:center; gap:10px; padding:11px 16px; border-bottom:1px solid var(--vtl-border); background:#1f1f1f; } +.vtl-menu { display:none; font:16px/1 system-ui; color:#f5f5f5; background:#262626; border:1px solid #404040; border-radius:8px; padding:5px 10px; cursor:pointer; } +.vtl-menu:hover { background:#404040; } +.vtl-brand { display:inline-flex; align-items:center; } +.vtl-brand:empty { display:none; } +.vtl-title { font-size:15px; font-weight:600; letter-spacing:-0.01em; color:#f5f5f5; } +.vtl-meta { color:var(--vtl-muted); font-size:12px; margin-left:auto; display:inline-flex; align-items:center; gap:8px; } +.vtl-body { flex:1 1 auto; display:flex; min-height:0; } +.vtl-nav { flex:0 0 256px; overflow-y:auto; overflow-x:hidden; border-right:1px solid var(--vtl-border); padding:12px 12px 20px; background:#1f1f1f; scrollbar-width:thin; scrollbar-color:#404040 transparent; } +.vtl-nav::-webkit-scrollbar { width:8px; } +.vtl-nav::-webkit-scrollbar-thumb { background:#404040; border-radius:8px; } +.vtl-grp { margin-bottom:2px; } +.vtl-grp + .vtl-grp { margin-top:8px; padding-top:8px; border-top:1px solid var(--vtl-border); } +.vtl-tier { width:100%; padding:8px 8px 6px; display:flex; align-items:center; gap:8px; box-sizing:border-box; } +.vtl-tier-btn { border:0; background:none; color:inherit; font:inherit; cursor:pointer; text-align:left; border-radius:8px; } +.vtl-tier-btn:hover { background:var(--vtl-accented); } +.vtl-tier-btn:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:-2px; } +.vtl-tier-ic { flex:0 0 auto; display:inline-flex; color:var(--vtl-muted); } +.vtl-tier-ic svg { width:15px; height:15px; } +.vtl-cap { font:700 10px/1 system-ui; letter-spacing:.4px; color:#052e16; background:var(--vtl-accent); border-radius:999px; padding:3px 7px; } +.vtl-tl { font-weight:600; font-size:11px; letter-spacing:.03em; text-transform:uppercase; color:var(--vtl-muted); } +.vtl-td { color:#6b6b6b; font-size:11px; margin-left:auto; } +.vtl-chev { margin-left:auto; display:inline-flex; color:var(--vtl-muted); transition:transform .16s ease; } +.vtl-chev svg { width:15px; height:15px; } +.vtl-chev.open { transform:rotate(90deg); } +.vtl-rows { display:flex; flex-direction:column; gap:1px; } +.vtl-tab { display:flex; align-items:center; gap:11px; width:100%; text-align:left; border:0; background:none; color:var(--vtl-muted); padding:8px 10px; cursor:pointer; border-radius:8px; font:inherit; margin:0; transition:background .13s ease,color .13s ease; } +.vtl-tab:hover { background:var(--vtl-accented); color:#f5f5f5; } +.vtl-tab:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:-2px; } +.vtl-tab.active { background:var(--vtl-accented); color:#f5f5f5; font-weight:500; } +.vtl-tab.active .vtl-tab-ic { color:var(--vtl-accent); } +.vtl-tab-ic { flex:0 0 auto; display:inline-flex; color:var(--vtl-muted); } +.vtl-tab-ic svg { width:20px; height:20px; } +.vtl-tab-emoji { font-size:17px; line-height:1; flex:0 0 auto; } +.vtl-tab-text { display:flex; flex-direction:column; min-width:0; } +.vtl-tab-label { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:flex; align-items:center; gap:6px; } +.vtl-tab-badge { font:600 9px/1 system-ui; letter-spacing:.3px; text-transform:uppercase; color:var(--vtl-accent); border:1px solid var(--vtl-accent); border-radius:999px; padding:2px 5px; } +.vtl-tab-sub { font-size:11px; color:#6b6b6b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } +.vtl-tab-sub code { font-family:ui-monospace,Menlo,monospace; } +.vtl-tab.active .vtl-tab-sub { color:var(--vtl-muted); } +.vtl-main { flex:1 1 auto; position:relative; min-width:0; display:flex; flex-direction:column; } +.vtl-content { flex:1 1 auto; position:relative; min-height:0; } +.vtl-host { position:absolute; inset:0; } +.vtl-host-slot { position:absolute; inset:0; } +.vtl-host-hint { position:absolute; inset:0; display:grid; place-items:center; text-align:center; color:#94a3b8; font-size:13px; padding:20px; } +.vtl-host-hint.err { color:#f87171; } +.vtl-host-hint small { color:#64748b; } +@media (max-width: 760px) { + .vtl-menu { display:inline-block; } + .vtl-meta { display:none; } + .vtl-nav { position:absolute; z-index:20; top:0; bottom:0; left:0; box-shadow:0 0 28px rgba(0,0,0,.55); } + .vtl:not(.nav-open) .vtl-nav { display:none; } +} +`,nc=Xs({name:"VerticalTabsLayout",props:{active:{type:String,default:""},title:{type:String,default:""},items:{type:Array,default:()=>[]},groups:{type:Array,default:()=>[]},navLabel:{type:String,default:"Sections"},initialNavOpen:{type:Boolean,default:!0}},emits:["update:active"],setup(){uo(sc,"vertical-tabs-layout")},data(){return{navOpen:this.initialNavOpen,_tabEls:{},folderOverride:{},activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{}}},computed:{allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const s of t.rows||[])e.push(s);return e}return this.items},orderedKeys(){return this.allRows.map(e=>e.key)},elementRows(){return this.allRows.filter(e=>e&&e.element)},mountedElementRows(){return this.elementRows.filter(e=>this.activatedKeys[e.key])}},watch:{active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){try{window.matchMedia&&window.matchMedia("(max-width: 760px)").matches&&(this.navOpen=!1)}catch{}this.$nextTick(()=>this.activateElement(this.active))},methods:{registerTab(e,t){t&&(this._tabEls[e]=t)},setHostSlot(e,t){t&&(this._hostSlots[e]=t,this.$nextTick(()=>this.mountHostElement(e)))},activateElement(e){!e||!this.elementRows.find(s=>s.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(n=>n.key===e),s=this._hostSlots[e];!t||!s||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},ec(t.src).then(()=>tc(t.element)).then(()=>{s.innerHTML="";const n=document.createElement(t.element),i=t.attrs||{};for(const o in i){const r=i[o],l=r!=null&&typeof r=="object"?JSON.stringify(r):String(r);try{n[o]=r}catch{}try{n.setAttribute(o,l)}catch{}}n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(n),this.hostState={...this.hostState,[e]:"ready"}}).catch(n=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:n&&n.message||String(n)}}))},iconSvg(e){return e?Xl(e):""},isFolderClosed(e){const t=this.folderOverride[e.key];return t!=null?!t:e.open!==!0},toggleFolder(e){const t=this.folderOverride[e],s=(this.groups||[]).find(i=>i.key===e),n=t??(s&&s.open===!0);this.folderOverride={...this.folderOverride,[e]:!n}},pick(e){this.$emit("update:active",e);try{window.matchMedia&&window.matchMedia("(max-width: 760px)").matches&&(this.navOpen=!1)}catch{}},onKey(e){const t=this.orderedKeys;if(!t.length)return;const s=t.indexOf(this.active);let n=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")n=(s+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")n=(s-1+t.length)%t.length;else if(e.key==="Home")n=0;else if(e.key==="End")n=t.length-1;else return;e.preventDefault();const i=t[n];this.pick(i),this.$nextTick(()=>{const o=this._tabEls[i];o&&o.focus&&o.focus()})}}}),ic={class:"vtl-top"},oc=["aria-expanded"],rc={class:"vtl-brand"},lc={class:"vtl-title"},cc={class:"vtl-meta"},ac={class:"vtl-body"},fc=["aria-label"],uc=["aria-expanded","onClick"],dc=["innerHTML"],pc={class:"vtl-tl"},hc=["innerHTML"],gc={key:1,class:"vtl-tier"},bc=["innerHTML"],mc={key:1,class:"vtl-cap"},vc={class:"vtl-tl"},yc={key:2,class:"vtl-td"},xc={class:"vtl-rows"},_c=["aria-selected","tabindex","onClick"],wc=["innerHTML"],Sc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Cc={class:"vtl-tab-text"},Tc={class:"vtl-tab-label"},Ec={key:0,class:"vtl-tab-badge"},kc={key:0,class:"vtl-tab-sub"},Ac=["innerHTML"],Mc=["aria-selected","tabindex","onClick"],Oc=["innerHTML"],Pc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Rc={class:"vtl-tab-text"},$c={class:"vtl-tab-label"},Ic={key:0,class:"vtl-tab-sub"},Lc={class:"vtl-main"},Nc={class:"vtl-content"},Fc=["hidden"],jc={key:0,class:"vtl-host-hint"},Hc={key:1,class:"vtl-host-hint err"};function Dc(e,t,s,n,i,o){return $(),I("div",{class:We(["vtl",{"nav-open":e.navOpen}])},[k("header",ic,[k("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=r=>e.navOpen=!e.navOpen),"aria-label":"Toggle list"},"☰",8,oc),k("span",rc,[fs(e.$slots,"brand")]),k("b",lc,D(e.title),1),k("span",cc,[fs(e.$slots,"meta")])]),k("div",ac,[rs(k("nav",{class:"vtl-nav","aria-label":e.navLabel,role:"tablist","aria-orientation":"vertical"},[e.groups&&e.groups.length?($(!0),I(ee,{key:0},ut(e.groups,r=>($(),I("div",{class:"vtl-grp",key:r.key},[r.folder?($(),I("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(r)),onClick:l=>e.toggleFolder(r.key)},[r.icon?($(),I("span",{key:0,class:"vtl-tier-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,dc)):oe("",!0),k("span",pc,D(r.label),1),k("span",{class:We(["vtl-chev",{open:!e.isFolderClosed(r)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,hc)],8,uc)):($(),I("div",gc,[r.icon?($(),I("span",{key:0,class:"vtl-tier-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,bc)):oe("",!0),r.badge?($(),I("span",mc,D(r.badge),1)):oe("",!0),k("span",vc,D(r.label),1),r.count!=null?($(),I("span",yc,D(r.count),1)):oe("",!0)])),rs(k("div",xc,[($(!0),I(ee,null,ut(r.rows,l=>($(),I("button",{key:l.key,type:"button",role:"tab",class:We(["vtl-tab",{active:l.key===e.active}]),"aria-selected":String(l.key===e.active),tabindex:l.key===e.active?0:-1,ref_for:!0,ref:c=>e.registerTab(l.key,c),onClick:c=>e.pick(l.key),onKeydown:t[1]||(t[1]=c=>e.onKey(c))},[l.icon?($(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,wc)):l.emoji?($(),I("span",Sc,D(l.emoji),1)):oe("",!0),k("span",Cc,[k("span",Tc,[ht(D(l.label),1),l.badge?($(),I("span",Ec,D(l.badge),1)):oe("",!0)]),l.sub?($(),I("span",kc,[k("span",{innerHTML:l.sub},null,8,Ac)])):oe("",!0)])],42,_c))),128))],512),[[xs,!r.folder||!e.isFolderClosed(r)]])]))),128)):($(!0),I(ee,{key:1},ut(e.items,r=>($(),I("button",{key:r.key,type:"button",role:"tab",class:We(["vtl-tab",{active:r.key===e.active}]),"aria-selected":String(r.key===e.active),tabindex:r.key===e.active?0:-1,ref_for:!0,ref:l=>e.registerTab(r.key,l),onClick:l=>e.pick(r.key),onKeydown:t[2]||(t[2]=l=>e.onKey(l))},[r.icon?($(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,Oc)):r.emoji?($(),I("span",Pc,D(r.emoji),1)):oe("",!0),k("span",Rc,[k("span",$c,D(r.label),1),r.sub?($(),I("span",Ic,D(r.sub),1)):oe("",!0)])],42,Mc))),128))],8,fc),[[xs,e.navOpen]]),k("main",Lc,[fs(e.$slots,"toolbar"),k("div",Nc,[($(!0),I(ee,null,ut(e.mountedElementRows,r=>rs(($(),I("section",{key:r.key,class:"vtl-host",hidden:r.key!==e.active},[k("div",{class:"vtl-host-slot",ref_for:!0,ref:l=>e.setHostSlot(r.key,l)},null,512),e.hostState[r.key]==="loading"?($(),I("div",jc,"Loading "+D(r.label)+"…",1)):e.hostState[r.key]==="error"?($(),I("div",Hc,[ht(" Could not load "+D(r.label)+".",1),t[3]||(t[3]=k("br",null,null,-1)),k("small",null,D(e.hostError[r.key]),1)])):oe("",!0)],8,Fc)),[[xs,r.key===e.active]])),128)),fs(e.$slots,"default")])])])],2)}const Kc=ho(nc,[["render",Dc],["styles",[Ql]]]),bn=[{code:"en",name:"English",nativeName:"English",flag:"🇺🇸"},{code:"es",name:"Spanish",nativeName:"Español",flag:"🇪🇸"},{code:"fr",name:"French",nativeName:"Français",flag:"🇫🇷"},{code:"pt",name:"Portuguese",nativeName:"Português",flag:"🇵🇹"},{code:"ar",name:"Arabic",nativeName:"العربية",flag:"🇸🇦",dir:"rtl"},{code:"ru",name:"Russian",nativeName:"Русский",flag:"🇷🇺"},{code:"de",name:"German",nativeName:"Deutsch",flag:"🇩🇪",hideFromSwitcher:!0},{code:"hi",name:"Hindi",nativeName:"हिन्दी",flag:"🇮🇳",hideFromSwitcher:!0}],Vc=bn.filter(e=>!e.hideFromSwitcher);function Uc(e){return bn.find(t=>t.code===e)}function go(e){const t=String(e||"").split("-")[0].toLowerCase();return bn.some(s=>s.code===t)?t:"en"}const bo="doxa-maps:locale";function Bc(){try{const e=localStorage.getItem(bo);if(e)return go(e)}catch{}return go(navigator==null?void 0:navigator.language)}function zc(e){try{localStorage.setItem(bo,e)}catch{}}const Wc=".ps-logo{display:inline-flex;align-items:center}.ps-logo svg{display:block}.ps-count{color:#a3a3a3}.ps-locale{position:relative;display:inline-flex}.ps-locale-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;padding:4px 9px;border:1px solid #404040;border-radius:8px;background:#262626;color:#f5f5f5;cursor:pointer}.ps-locale-btn:hover{background:#404040}.ps-flag{font-size:13px;line-height:1}.ps-locale-name{max-width:11ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-dots{color:#a3a3a3}.ps-locale-menu{position:absolute;top:100%;right:0;margin-top:4px;z-index:30;min-width:180px;list-style:none;padding:6px;border:1px solid #404040;border-radius:10px;background:#1f1f1f;box-shadow:0 12px 32px #00000080;max-height:320px;overflow:auto}.ps-locale-opt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;padding:7px 9px;border:0;border-radius:7px;background:none;color:#d4d4d4;cursor:pointer}.ps-locale-opt:hover,.ps-locale-opt.active{background:#404040;color:#f5f5f5}.ps-locale-opt.active .ps-locale-name{color:#00dc82}.ps-locale-en{margin-left:auto;font-size:11px;color:#737373}.ps-toolbar{display:flex;flex-direction:column;gap:8px;padding:10px 12px 0}.ps-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ps-bar-t{flex:1 1 auto;min-width:0}.ps-bar-t b{font-size:15px;color:#f5f5f5}.ps-bar-sub{display:block;font-size:12px;color:#a3a3a3}.ps-btn{font:inherit;font-size:12px;padding:5px 10px;border:1px solid #404040;border-radius:8px;background:#262626;color:#f5f5f5;cursor:pointer;white-space:nowrap}.ps-btn:hover{background:#404040}.ps-embed{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid #262626;border-radius:8px;background:#171717}.ps-embed label{font-size:12px;color:#a3a3a3;display:flex;justify-content:space-between;align-items:center}.ps-embed textarea{width:100%;height:58px;font:11px/1.35 ui-monospace,Menlo,monospace;border:1px solid #404040;border-radius:6px;background:#0d0d0d;color:#f5f5f5;padding:6px;resize:vertical}.ps-stage{position:absolute;top:10px;right:12px;bottom:12px;left:12px;border:1px solid #262626;border-radius:10px;overflow:hidden;background:#171717}.ps-pane,.ps-slot{position:absolute;top:0;right:0;bottom:0;left:0}.ps-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;display:block;background:#171717}.ps-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#a3a3a3;font-size:13px;padding:20px}.ps-hint.err{color:#f87171}.ps-hint small{color:#737373}",Gc=` +.ps-logo { display:inline-flex; align-items:center; } +.ps-logo svg { display:block; } +.ps-count { color:#a3a3a3; } +.ps-locale { position:relative; display:inline-flex; } +.ps-locale-btn { display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:12px; padding:4px 9px; border:1px solid #404040; border-radius:8px; background:#262626; color:#f5f5f5; cursor:pointer; } +.ps-locale-btn:hover { background:#404040; } +.ps-flag { font-size:13px; line-height:1; } +.ps-locale-name { max-width:11ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } +.ps-dots { color:#a3a3a3; } +.ps-locale-menu { position:absolute; top:100%; right:0; margin-top:4px; z-index:30; min-width:180px; list-style:none; padding:6px; border:1px solid #404040; border-radius:10px; background:#1f1f1f; box-shadow:0 12px 32px rgba(0,0,0,.5); max-height:320px; overflow:auto; } +.ps-locale-opt { display:flex; align-items:center; gap:8px; width:100%; text-align:left; font:inherit; font-size:13px; padding:7px 9px; border:0; border-radius:7px; background:none; color:#d4d4d4; cursor:pointer; } +.ps-locale-opt:hover { background:#404040; color:#f5f5f5; } +.ps-locale-opt.active { background:#404040; color:#f5f5f5; } +.ps-locale-opt.active .ps-locale-name { color:#00DC82; } +.ps-locale-en { margin-left:auto; font-size:11px; color:#737373; } +.ps-toolbar { display:flex; flex-direction:column; gap:8px; padding:10px 12px 0; } +.ps-bar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; } +.ps-bar-t { flex:1 1 auto; min-width:0; } +.ps-bar-t b { font-size:15px; color:#f5f5f5; } +.ps-bar-sub { display:block; font-size:12px; color:#a3a3a3; } +.ps-btn { font:inherit; font-size:12px; padding:5px 10px; border:1px solid #404040; border-radius:8px; background:#262626; color:#f5f5f5; cursor:pointer; white-space:nowrap; } +.ps-btn:hover { background:#404040; } +.ps-embed { display:flex; flex-direction:column; gap:6px; padding:8px; border:1px solid #262626; border-radius:8px; background:#171717; } +.ps-embed label { font-size:12px; color:#a3a3a3; display:flex; justify-content:space-between; align-items:center; } +.ps-embed textarea { width:100%; height:58px; font:11px/1.35 ui-monospace,Menlo,monospace; border:1px solid #404040; border-radius:6px; background:#0d0d0d; color:#f5f5f5; padding:6px; resize:vertical; } +.ps-stage { position:absolute; inset:10px 12px 12px; border:1px solid #262626; border-radius:10px; overflow:hidden; background:#171717; } +.ps-pane { position:absolute; inset:0; } +.ps-slot { position:absolute; inset:0; } +.ps-frame { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; background:#171717; } +.ps-hint { position:absolute; inset:0; display:grid; place-items:center; text-align:center; color:#a3a3a3; font-size:13px; padding:20px; } +.ps-hint.err { color:#f87171; } +.ps-hint small { color:#737373; } +`,Jc={5:"App shell · nested-mfe-spa",4:"Composite element",3:"Multi-view element",2:"Preset element",1:"Single element"},mo={"nested-mfe-spa":0,"nested-elements-mfe":1,monolithic:2,parameterized:3,single:4},qc=e=>mo[e]!=null?5-mo[e]:1,Yc={5:"🧩",4:"🔗",3:"🗂️",2:"🎛️",1:"🔹"},vo=new Set(["doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-map","doxa-maps-spa"]),Ft={};function Zc(e,t){return Ft[e]||(Ft[e]=new Promise((s,n)=>{const i=document.createElement("script");i.src=e,i.onload=()=>s(),i.onerror=()=>{delete Ft[e],n(new Error("failed to load "+e))},document.head.appendChild(i)})),Ft[e]}const Xc=Xs({name:"PluginStudio",components:{VerticalTabsLayout:Kc},props:{treeBase:{type:String,default:""},profileConfig:{type:[String,Object],default:""},title:{type:String,default:"Plugin Studio"},tokenUrl:{type:String,default:""},tk:{type:String,default:""}},setup(){return uo(Gc,"plugin-studio"),{injectedBase:Tt("psTreeBase","")}},data(){return{activeKey:"",embedOpen:!1,locale:Bc(),localeOpen:!1,switcherLangs:Vc,rows:[]}},computed:{cfg(){let e=this.profileConfig;if(typeof e=="string")try{e=e?JSON.parse(e):{}}catch{e={}}return e&&typeof e=="object"?e:{}},base(){const e=(this.treeBase||this.cfg.treeBase||this.injectedBase||"").trim();return e?e.replace(/\/+$/,"")+"/":""},flatRows(){return this.rows},groups(){const e={};for(const t of this.rows)(e[t.cap]=e[t.cap]||[]).push(t);return[5,4,3,2,1].filter(t=>e[t]&&e[t].length).map(t=>({cap:t,label:Jc[t]||"capability "+t,rows:e[t]}))},navGroups(){const e=t=>String(t).replace(/&/g,"&").replace(//g,">");return this.groups.map(t=>({key:"cap-"+t.cap,badge:"CAP "+t.cap,label:t.label,count:t.rows.length,rows:t.rows.map(s=>({key:s.key,label:s.label,emoji:s.emoji,sub:"<"+e(s.tag)+">"}))}))},active(){return this.rows.find(e=>e.key===this.activeKey)||null},countLabel(){return new Set(this.rows.map(t=>t.bundle)).size+" bundles · "+this.rows.length+" elements"},activeLang(){return Uc(this.locale)||{code:this.locale,flag:"🌐",nativeName:this.locale}}},mounted(){this.loadManifest()},methods:{setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},setLocale(e){this.locale=e,this.localeOpen=!1,zc(e);try{const t=this._slots&&this._slots[this.activeKey],s=t&&t.firstElementChild;if(s&&s.setAttribute&&this.active){const n={profile:this.active.label,instanceId:"ps-"+this.activeKey.replace(/\//g,"-"),locale:e};(this.tk||this.cfg.tk)&&(n.tk=this.tk||this.cfg.tk),s.setAttribute("profile-config",JSON.stringify(n))}}catch{}},resolve(e){const t=String(e).replace(/^\.\//,"");return this.base?this.base+t:"../"+t},loadManifest(){const e=s=>{this.rows=this.rowsFromManifest(s),this.route()},t=typeof window<"u"&&window.__psBaked||null;if(typeof fetch=="function"&&typeof location<"u"&&location.protocol!=="file:"){const s=this.base?this.base+"manifest.json":"../manifest.json";fetch(s,{cache:"no-cache"}).then(n=>n.ok?n.json():null).then(n=>e(n||t||{bundles:[]})).catch(()=>e(t||{bundles:[]}))}else e(t||{bundles:[]})},rowsFromManifest(e){const t=[];for(const s of e.bundles||[])if(s.bundle!=="plugin-studio")for(const n of s.profiles||[]){const i=n.element||s.elements&&s.elements[0]||s.bundle,o=qc(n.type||"single"),r=vo.has(i)||vo.has(s.bundle);t.push({key:s.bundle+"/"+n.profile,bundle:s.bundle,label:n.profile,tag:i,cap:o,emoji:Yc[o]||"🔹",description:n.description||"",mode:r?"iframe":"element",bundleJs:s.scriptUrl||s.bundle+"/"+s.bundle+".js",leaf:n.iframeUrl||s.bundle+"/"+n.profile+"/index.html",embed:n.embed&&n.embed.script||"",loaded:!1,mounted:!1,state:"idle",error:"",src:""})}return t.sort((s,n)=>n.cap-s.cap||s.bundle.localeCompare(n.bundle)||s.label.localeCompare(n.label)),t},route(){const e=(typeof location<"u"&&location.hash||"").replace(/^#\/?/,"");e&&this.rows.some(t=>t.key===e)&&this.select(e)},select(e){this.activeKey=e,this.embedOpen=!1;const t=this.rows.find(s=>s.key===e);t&&(t.mode==="iframe"?t.loaded||(t.src=this.withToken(this.resolve(t.leaf)),t.loaded=!0):t.mounted||this.mountElement(t))},withToken(e){const t=(this.tokenUrl||this.cfg.tokenUrl||"").trim(),s=(this.tk||this.cfg.tk||"").trim(),n=[];return s?n.push("tk="+encodeURIComponent(s)):t&&n.push("tokenUrl="+encodeURIComponent(t)),n.length?e+(e.indexOf("?")===-1?"?":"&")+n.join("&"):e},mountElement(e){e.mounted=!0,e.state="loading";const t=this.resolve(e.bundleJs);Zc(t).then(()=>{const s=this._slots&&this._slots[e.key];if(!s){e.state="error",e.error="no slot";return}s.innerHTML="";const n=document.createElement(e.tag),i={profile:e.label,instanceId:"ps-"+e.key.replace(/\//g,"-")};(this.tk||this.cfg.tk)&&(i.tk=this.tk||this.cfg.tk),n.setAttribute("profile-config",JSON.stringify(i)),n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(n),e.state="ready"}).catch(s=>{e.state="error",e.error=s&&s.message||String(s)})},copyText(e,t){const s=()=>{const n=t.textContent;t.textContent="Copied",setTimeout(()=>{t.textContent=n},1200)};if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(e).then(s,()=>{});else try{const n=document.createElement("textarea");n.value=e,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n),s()}catch{}}}}),Qc={class:"ps-count"},ea={class:"ps-locale"},ta=["aria-expanded"],sa={class:"ps-flag"},na={class:"ps-locale-name"},ia={key:0,class:"ps-locale-menu",role:"listbox"},oa=["aria-selected"],ra=["onClick"],la={class:"ps-flag"},ca={class:"ps-locale-name"},aa={class:"ps-locale-en"},fa={key:0,class:"ps-toolbar"},ua={class:"ps-bar"},da={class:"ps-bar-t"},pa={class:"ps-bar-sub"},ha={key:0},ga=["aria-expanded"],ba={key:0,class:"ps-embed"},ma=["value"],va={class:"ps-stage"},ya=["hidden"],xa={key:0,class:"ps-hint"},_a={key:1,class:"ps-hint err"},wa=["src","title"],Sa={key:0,class:"ps-hint"};function Ca(e,t,s,n,i,o){const r=$r("VerticalTabsLayout");return $(),hs(r,{title:e.title,"nav-label":"Plugin elements · by capability 5 → 1",groups:e.navGroups,active:e.activeKey,"onUpdate:active":e.select},{brand:Ct(()=>[...t[3]||(t[3]=[k("span",{class:"ps-logo","aria-hidden":"true"},[k("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#00DC82","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[k("path",{d:"M10 3v3M14 3v3M7 6h10v5a5 5 0 0 1-10 0V6Z"}),k("path",{d:"M12 16v5"})])],-1)])]),meta:Ct(()=>[k("span",Qc,D(e.countLabel),1),k("span",ea,[k("button",{type:"button",class:"ps-locale-btn","aria-expanded":String(e.localeOpen),"aria-label":"Change language",onClick:t[0]||(t[0]=l=>e.localeOpen=!e.localeOpen)},[k("span",sa,D(e.activeLang.flag),1),k("span",na,D(e.activeLang.nativeName),1),t[4]||(t[4]=k("span",{class:"ps-dots","aria-hidden":"true"},"⋮",-1))],8,ta),e.localeOpen?($(),I("ul",ia,[($(!0),I(ee,null,ut(e.switcherLangs,l=>($(),I("li",{key:l.code,role:"option","aria-selected":String(l.code===e.locale)},[k("button",{type:"button",class:We(["ps-locale-opt",{active:l.code===e.locale}]),onClick:c=>e.setLocale(l.code)},[k("span",la,D(l.flag),1),k("span",ca,D(l.nativeName),1),k("span",aa,D(l.name),1)],10,ra)],8,oa))),128))])):oe("",!0)])]),toolbar:Ct(()=>[e.active?($(),I("div",fa,[k("div",ua,[k("div",da,[k("b",null,D(e.active.label),1),k("span",pa,[ht(D(e.active.bundle)+" · <"+D(e.active.tag)+">",1),e.active.description?($(),I("span",ha," · "+D(e.active.description),1)):oe("",!0)])]),e.active.embed?($(),I("button",{key:0,type:"button",class:"ps-btn","aria-expanded":String(e.embedOpen),onClick:t[1]||(t[1]=l=>e.embedOpen=!e.embedOpen)},"Copy embed",8,ga)):oe("",!0)]),e.embedOpen&&e.active.embed?($(),I("div",ba,[k("label",null,[t[5]||(t[5]=ht("script embed ",-1)),k("button",{type:"button",class:"ps-btn",onClick:t[2]||(t[2]=l=>e.copyText(e.active.embed,l.target))},"Copy")]),k("textarea",{readonly:"",value:e.active.embed},null,8,ma)])):oe("",!0)])):oe("",!0)]),default:Ct(()=>[k("div",va,[($(!0),I(ee,null,ut(e.flatRows,l=>rs(($(),I("section",{key:l.key,class:"ps-pane",hidden:l.key!==e.activeKey},[l.mode==="element"?($(),I(ee,{key:0},[k("div",{class:"ps-slot",ref_for:!0,ref:c=>e.setSlot(l.key,c)},null,512),l.state==="loading"?($(),I("div",xa,"Loading "+D(l.label)+"…",1)):l.state==="error"?($(),I("div",_a,[ht(" Could not load "+D(l.label)+".",1),t[6]||(t[6]=k("br",null,null,-1)),k("small",null,D(l.error),1)])):oe("",!0)],64)):($(),I("iframe",{key:1,class:"ps-frame",src:l.loaded?l.src:"about:blank",title:l.label,loading:"lazy",allowfullscreen:"",referrerpolicy:"no-referrer-when-downgrade"},null,8,wa))],8,ya)),[[xs,l.key===e.activeKey]])),128)),e.activeKey?oe("",!0):($(),I("div",Sa,"Choose an element from the list."))])]),_:1},8,["title","groups","active","onUpdate:active"])}const Ta=ho(Xc,[["render",Ca],["styles",[Wc]]]);function Ea(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const ka=Ea(),Aa=zl(Ta,{configureApp(e){e.provide("psTreeBase",ka)}});typeof customElements<"u"&&!customElements.get("plugin-studio")&&customElements.define("plugin-studio",Aa)})(); diff --git a/public/doxa-maps/plugin-studio/plugin-studio/index.html b/public/doxa-maps/plugin-studio/plugin-studio/index.html new file mode 100644 index 000000000..95e5bb571 --- /dev/null +++ b/public/doxa-maps/plugin-studio/plugin-studio/index.html @@ -0,0 +1,150 @@ + + + + + + plugin-studio · plugin-studio + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/plugin-studio/plugin-studio/studio/index.html b/public/doxa-maps/plugin-studio/plugin-studio/studio/index.html new file mode 100644 index 000000000..8426110d3 --- /dev/null +++ b/public/doxa-maps/plugin-studio/plugin-studio/studio/index.html @@ -0,0 +1,150 @@ + + + + + + Plugin Studio — every element by capability 5 -> 1 (developer studio) · plugin-studio + + + + + +
+
loading…
+ + + + + + + + diff --git a/public/doxa-maps/research-dashboard/index.html b/public/doxa-maps/research-dashboard/index.html index 848cbb5bc..160421253 100644 --- a/public/doxa-maps/research-dashboard/index.html +++ b/public/doxa-maps/research-dashboard/index.html @@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut) + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":15,"profileCount":24,"bundles":[{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-1pRdRsK0YhTu1sABxjZzBZl5ZSYVgjb9PTdhP+APCOQOnTqR8bb5/sTmq6PvOKTp","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":"single","isMap":false,"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 src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-1pRdRsK0YhTu1sABxjZzBZl5ZSYVgjb9PTdhP+APCOQOnTqR8bb5/sTmq6PvOKTp\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]}]}; - + -
doxa-maps
+ +
+
+ doxa-maps{{ countLabel }} + +
- -
-
Choose a map
- -
Choose a map from the list.
-
+ +
+
+
{{ ttl }}{{ sub }}
+ Open page + +
+
+ + +
+
+
+
Choose a map from the list.
+
+
diff --git a/skills/make-a-doxa-map/SKILL.md b/skills/make-a-doxa-map/SKILL.md new file mode 100644 index 000000000..b87475c56 --- /dev/null +++ b/skills/make-a-doxa-map/SKILL.md @@ -0,0 +1,274 @@ +--- +name: make-a-doxa-map +description: >- + Use this skill when a user (typically a non-coder "map maker" / prayer + mobilizer) asks you to build a new map/plugin with the doxa-maps bundler, add + another screen to a map, embed one on a site, or ship one as a mobile app. + Teaches the 5 plugin capabilities, the 5 deployment methods, the + plugin-designs/ root-Vue pattern, the graduation path, and the exact + copy-the-starter -> `bun run build` flow. Grounded in the REAL package.json + scripts (dev/build/preview/phone) and the REAL structure (plugin-designs/, + library/, internal/). +--- + +# Make a doxa-map (use the plugin bundler) + +You are the AI agent for a **map maker** — usually someone who does NOT write +code. Your job is to build maps for them by driving this bundler. This skill is +your operating manual: what the bundler is, how to make a new plugin by copying +the starter, and how to ship it. + +> **The one thing to remember:** a new plugin is **one folder** under +> `plugin-designs/`, and **`bun run build`** turns every folder into a +> paste-anywhere `.js` custom element. Everything else is detail. + +Run every command from the bundler repo root +(`.../doxa-maps-plugin-studio/`, the folder that has `package.json` and +`plugin-designs/`). + +--- + +## 0. Mental model (read this first) + +The bundler is a **JAMstack plugin bundler**: one build step turns each map into +a self-contained web component ("plugin") that plugs in anywhere. Four words: + +| Word | Plain meaning | +|---|---| +| **bundle / plugin** | One folder under `plugin-designs/` = one plugin. It compiles into a **single `.js` file** you can paste on any page. "Bundle" and "plugin" are the same thing. | +| **profile** | One `.vue` file inside the folder = one **screen** (one map). A bundle can hold one profile or many. The `.vue` filename (minus `.vue`) IS the profile's name. | +| **root Vue / root.vue** | Each profile is a normal Vue component — the "root" of that one screen. This is the **root-Vue pattern**: a folder with a root Vue file = a plugin. | +| **`src/`** | The plugin's **private sandbox** (its own colors, components, helpers). Nothing here can affect another plugin. | + +Three zones — always know which one a file is in: + +| Zone | What | Edit it? | +|---|---|---| +| `library/` (imported as `@map/…`) | SHARED, reusable, parameterized building blocks — the map, legend, controls, search bar, composables, color/API registries | **No — reuse only.** A change here can break every map. | +| `plugin-designs//` | YOUR plugin: root `.vue` profiles (flat) + a `src/` sandbox | **Yes — build anything.** Nothing here leaks. | +| `internal/` | the scanner/build machinery (clean, tree, gallery, guards) | **Never touch.** | + +Rule of thumb: **local by default.** Code only moves into `library/` after a +*second* plugin genuinely needs it (see the Graduation Path below). + +--- + +## 1. The 5 PLUGIN CAPABILITIES (how much the author nests) + +Capability = how much composition the plugin does. It is NOT "complexity" and it +is NOT a quality ranking — it is a ladder of nesting. The studio gallery sorts +**5 → 1** (most-composed first). Pick the LOWEST tier that does the job. + +| # | Capability | What it is | Live example in this repo | +|---|---|---|---| +| 1 | **Single-element plugin** | one folder → one JS bundle → one custom element. Simplest, lightest. | `plugin-designs/doxa-vision-card/` (a pure single element, no map, renders instantly) | +| 2 | **Prop-table plugin** | one root Vue defines a **prop table** + **element table** → ONE plugin renders many parameterized variants | `plugin-designs/doxa-simple-map/` (Prayer / Engagement / Adoption from one plugin, via `simple-map.instances.json`) | +| 3 | **Monolithic plugin** | one root Vue nests many maps/layouts *internally* → one element. Downside: you can't embed just one inner tab. | `plugin-designs/doxa-research-map/` (research map: many maps + layout in one element) | +| 4 | **Nested-element SPA** | each inner map is its OWN plugin-design; a **layout** nests them → one element, but each inner map is *also* embeddable on its own AND the whole SPA embeds | `plugin-designs/my-upg-100-list/`, `plugin-designs/research-dashboard/`, `plugin-designs/cities-internet/` | +| 5 | **Nested-SPA / multi-SPA** | nest multiple SPAs into one SPA → a whole modular platform | the doxa-maps studio / mobile app: `internal/generate-gallery.mjs` emits `public/index.html` as a Vue nested-SPA (vertical tabs, each tab a plugin of a different tier) | + +**How to choose:** one screen, no data variants → cap 1. One screen, several +preset variants → cap 2 (add an `*.instances.json`). Several screens fused into +one you never split → cap 3. Several screens that must *also* be individually +embeddable → cap 4. A whole platform of SPAs → cap 5 (the studio already IS this; +you rarely author a new cap-5 — you add cap 1–4 plugins and the studio composes +them for you). + +--- + +## 2. The 5 DEPLOYMENT METHODS (where the SAME plugin runs) + +Author once; the SAME built `.js` (or its standalone page) runs all of these. +Methods 1–3 are **proven**; 4–5 are **deferred POCs** (no build script on this +branch yet — do not promise a one-command WordPress/desktop build). + +| # | Method | How | Status | Command | +|---|---|---|---|---| +| 1 | **iframe** on any/partner site | paste the `embed.iframe` snippet from `manifest.json` | ✅ proven | `bun run build` → host `public/doxa-maps/` | +| 2 | **Mobile app** (Capacitor, Android) | build wraps the studio SPA into an APK; no new code | ✅ proven | `bun run phone` | +| 3 | **Direct-JS** (` + +``` + +`profile` must match a `.vue` filename (without `.vue`). + +--- + +## 4. Iterate live (the dev server) + +```bash +bun run dev # Vite dev server at http://localhost:5173 +``` + +- The plugin's staging page is + `http://localhost:5173/plugin-designs/my-plugin/index.html`. +- Edits hot-reload — this is how you show the map maker changes in near-real-time + and take feedback. +- `bun run preview` serves the last production build; `bun run serve` serves + `public/` (the built tree + studio) at `http://localhost:4173`. + +--- + +## 5. The graduation path (why the root-Vue pattern matters) + +A plugin starts **non-reusable** — its own components live in its `src/`. +**Graduation** = deliberately extracting a component into the shared `library/` +**only after** it is proven reusable AND parameterized. + +- **Do NOT graduate prematurely.** Pushing non-parameterized code into `library/` + poisons every other plugin with bad examples / breakage. Local by default; + promote later — an expert move, not a first move. +- The bundler is a **refactor-cruncher**: take an open-source map app → make it a + plugin (a folder + root Vue) → make its components reusable/parameterized → now + it runs in all 5 deploy targets and every other plugin can share the pieces. + +Practical rule for you as the agent: keep new work in the plugin's `src/`. Only +suggest moving something to `library/` when a *second* plugin needs the exact same +thing and it takes props (no hard-coded specifics). + +--- + +## 6. The plugin-studio (the auto-generated gallery) + +On build, `bun run gallery` (the last build step) writes `public/index.html` — a +**Category-5 Vue nested-SPA** that auto-detects every plugin and lists them sorted +**capability 5 → 1**. It's called a "studio" (not "gallery") because it's the +development location where all tiers sit in one place. You don't hand-edit it; it +regenerates from `manifest.json` every build. Your new plugin appears in it +automatically. + +The same `public/index.html` is the Capacitor mobile-app launch entry +(`capacitor.config.json` `webDir: public`), so restoring/building the studio SPA +is also the deploy-method-2 mobile app. + +--- + +## 7. Verify your work (what "done" looks like) + +1. `bun run build` prints **ALL GUARDS PASS** (network-policy, iso2-map, + resource-join, tables-complete, bundles-shipped, map-paint) and ends with the + gallery writing `public/index.html`. If a guard fails, read its message — it + names the exact file/rule. +2. `public/doxa-maps/my-plugin/my-plugin.js` exists (the IIFE bundle) and + `public/doxa-maps/manifest.json` lists `my-plugin` with your profile(s) + embed + snippets. +3. `bun run dev` → the plugin renders at its staging URL and in the studio. + +> **Concurrency note:** if a build fails mid-run with files vanishing (e.g. a +> `clean` wiped `public/doxa-maps/`), another process ran `bun run clean` on the +> same folder. Re-run `bun run build` cleanly (serialize it) — that is not a code +> bug. + +--- + +## 8. Command cheat-sheet (all real, from `package.json`) + +| Command | What it does | +|---|---| +| `bun install` | install deps into `node_modules/` (once; `npm install` also works) | +| `bun run dev` | Vite dev server at `:5173` (live plugin staging) | +| `bun run build` | clean → write token → build every `plugin-designs/*/` → tree → guards → studio. **The one command.** | +| `bun run preview` | serve the last production build | +| `bun run serve` | serve `public/` (built tree + studio) at `:4173` | +| `bun run phone` | build → Capacitor sync → assemble + install the Android APK (deploy method 2) | +| `BUNDLE=my-plugin bun run build:bundle` | build just one plugin (faster while iterating) | + +--- + +## 9. Guardrails + +- **Additive by default.** A new map = a NEW folder under `plugin-designs/`. Don't + edit other people's plugins or `internal/`. +- **Never edit `library/` to customize one map** — that's what `src/` is for. +- **Keep profile `.vue` files flat** in the plugin folder (no `profiles/` subdir). +- **Don't promise deploy 4/5 as one-command** — WordPress/Tauri are deferred POCs; + they reuse the method-1/3 artifacts. +- **Explain it in plain English** to the map maker — if you can't, they can't + follow. Simplicity is the goal. + +## References (in this repo) + +- `plugin-designs/template-bundle/README.md` — the starter's own README (copy-me detail) +- `plugin-designs/README.md` — the plugin-designs authoring guide (shared vs. yours, production vs. experimental) +- `docs/README-SECTION-3-cli-commands.md` — CLI commands + installs per deploy method +- `docs/reference.md` — the `@map/…` menu of reusable library pieces +- `docs/tutorial.md` — 3 zones + 3 rules in one page +- `plugin-designs/doxa-simple-map/index.js` — a fuller, real-map reference entry diff --git a/vite.config.js b/vite.config.js index 7dffe8799..906fc4aae 100644 --- a/vite.config.js +++ b/vite.config.js @@ -77,6 +77,17 @@ export default defineConfig(({ command, mode }) => { ) } + if (isBuild && !all[target]) { + // A plugin-designs// folder was passed as BUNDLE but has no index.html+index.js + // entry pair (e.g. a half-authored map, or a folder still being scaffolded). Fail with + // a clear, actionable message instead of a `Cannot read properties of undefined` stack. + throw new Error( + `[doxa-maps] Bundle "${target}" is not buildable: plugin-designs/${target}/ is missing ` + + `index.html and/or index.js (the custom-element entry pair every bundle needs).\n` + + `Buildable bundles: ${allNames.join(', ') || '(none)'}` + ) + } + const buildEntries = isBuild ? { [target]: all[target].js } : Object.fromEntries(allNames.map(n => [n, all[n].html])) @@ -90,7 +101,28 @@ export default defineConfig(({ command, mode }) => { // Build only: shadow-DOM CSS is injected from useShadowStyles(`…`) literals that // ship verbatim, so their block comments are stripped before the Vue compiler // runs (enforce: 'pre'). Dev keeps the comments. - plugins: [stripShadowCssCommentsPlugin(), vue(), cssInjectedByJsPlugin(), autoSpaDevPlugin(env.VITE_MAPBOX_TOKEN || process.env.VITE_MAPBOX_TOKEN || '')], + plugins: [ + stripShadowCssCommentsPlugin(), + // ─── STRUCTURAL shadow-DOM CSS fix (customElement mode) ────────────────── + // WHY: every bundle here is a `defineCustomElement(...)` that renders inside a + // SHADOW ROOT. In @vitejs/plugin-vue's DEFAULT mode, each SFC