diff --git a/internal/browser-slot.sh b/internal/browser-slot.sh index 6215304ba..bb3efd0e5 100755 --- a/internal/browser-slot.sh +++ b/internal/browser-slot.sh @@ -6,7 +6,7 @@ # not exclusivity — a headless chrome costs ~300-500MB — so the right shape is "as many browsers as # the box can hold", which is a counting semaphore with a memory floor, not a mutex. # -# HOW: N slot files. Try each with flock -n (no wait). If all are busy, WAIT on slot 1. Before +# HOW: N slot files. Try each with flock -n (no wait). If all are busy, POLL every slot. Before # taking any slot, require MemAvailable above the floor — a slot that is free while the box is out # of memory is an invitation to be OOM-killed mid-measurement, which reads as a flaky gate. # @@ -18,7 +18,7 @@ # Usage: internal/browser-slot.sh [args...] # Env: BROWSER_SLOTS (default 2), BROWSER_SLOT_DIR (default /tmp), # BROWSER_MEM_FLOOR_MB (default 2500), BROWSER_LOCK_WAIT (default 900), -# BROWSER_MEM_WAIT (default 300) +# BROWSER_MEM_WAIT (default 300), BROWSER_MAX_HOLD (default 900 s) set -u SLOTS="${BROWSER_SLOTS:-2}" @@ -31,6 +31,32 @@ FLOOR_MB="${BROWSER_MEM_FLOOR_MB:-2500}" WAIT_S="${BROWSER_LOCK_WAIT:-900}" MEM_WAIT_S="${BROWSER_MEM_WAIT:-300}" BUSY=75 +MAX_HOLD="${BROWSER_MAX_HOLD:-900}" +KILL_AFTER="${BROWSER_KILL_AFTER:-15}" + +# ★ A SLOT IS HELD FOR AT MOST MAX_HOLD SECONDS, whatever the command does. Measured 2026-09-25: a +# probe awaited map.once('load') with no timeout and sat on slot 1 for 89 minutes on 3 s of CPU while +# every other agent's browser gate queued behind it and timed out as NOT MEASURED. A wrapper that +# trusts each command to end is only as good as the worst probe on the box, so the limit lives HERE. +# +# The command runs as a CHILD (not exec'd) under `timeout`, which signals its whole process group — +# the chrome a probe spawned dies with it — and escalates to KILL after KILL_AFTER seconds. fd 9 (the +# slot lock) is CLOSED for the child (9>&-): with exec, the command and every grandchild inherited it, +# so one orphaned chrome could keep the slot locked after its parent was gone. Now only this shell +# holds it, and this shell exits the moment the command is over. +# +# A timeout is NOT a verdict on the product: 124 (TERM) and 137 (KILL) become 75 NOT MEASURED, with +# the command named so its owner can find it. A long gate that legitimately needs more says so: +# BROWSER_MAX_HOLD=1800 internal/browser-slot.sh node internal/.mjs +run_held() { + timeout --kill-after="$KILL_AFTER" "$MAX_HOLD" "$@" 9>&- + local rc=$? + if [ "$rc" -eq 124 ] || [ "$rc" -eq 137 ]; then + echo "browser-slot: '$*' held a browser slot past BROWSER_MAX_HOLD=${MAX_HOLD}s and was killed (timeout rc $rc) — NOT MEASURED. Give it a timeout of its own, or set BROWSER_MAX_HOLD if it is legitimately that long." >&2 + exit "$BUSY" + fi + exit "$rc" +} slot_path() { [ "$1" = "1" ] && echo "$SLOT_BASE" || echo "$SLOT_BASE$1"; } @@ -63,7 +89,7 @@ i=1 while [ "$i" -le "$SLOTS" ]; do { exec 9>"$(slot_path "$i")"; } 2>/dev/null || true if flock -n 9; then - exec "$@" + run_held "$@" fi i=$((i + 1)) done @@ -80,7 +106,7 @@ while [ "$(date +%s)" -lt "$deadline" ]; do i=1 while [ "$i" -le "$SLOTS" ]; do { exec 9>"$(slot_path "$i")"; } 2>/dev/null || true - if flock -n 9; then exec "$@"; fi + if flock -n 9; then run_held "$@"; fi i=$((i + 1)) done sleep 2 diff --git a/internal/check-host-locale-contract.mjs b/internal/check-host-locale-contract.mjs index 92ff881ac..22a7e37d6 100644 --- a/internal/check-host-locale-contract.mjs +++ b/internal/check-host-locale-contract.mjs @@ -28,7 +28,8 @@ * * USAGE node internal/check-host-locale-contract.mjs [--dir ] [--only bundle/profile,…] * Serves THIS checkout's public/ on an OS-assigned port, or --dir (another commit's tree, for the - * before/after). Run through internal/browser-slot.sh. + * before/after). Run through internal/browser-slot.sh; the FULL run (35 leaves x 2 loads) can pass + * the slot's 900 s default hold, so give it BROWSER_MAX_HOLD=1800. --only runs fit easily. * EXIT 0 every judged leaf enters the host's locale · 1 one does not · 75 not measured. */ import { chromium } from 'playwright' diff --git a/plugin-designs/plugin-studio/plugin-studio.vue b/plugin-designs/plugin-studio/plugin-studio.vue index 708794d04..0611c70aa 100644 --- a/plugin-designs/plugin-studio/plugin-studio.vue +++ b/plugin-designs/plugin-studio/plugin-studio.vue @@ -161,7 +161,7 @@ import { defineComponent, inject } from 'vue' import { useShadowStyles } from '@map/composables/useShadowStyles.js' import VerticalTabsLayout from '@map/layouts/VerticalTabsLayout.vue' import StudioTree from './src/StudioTree.vue' -import { SWITCHER_LANGUAGES, loadLocale, saveLocale, getLanguage } from '@map/layouts/app-wrapper-material/languages.js' +import { SWITCHER_LANGUAGES, loadLocale, saveLocale, getLanguage, normaliseLocale } from '@map/layouts/app-wrapper-material/languages.js' // Only the studio's CONTENT-AREA styles remain here; the shell (top bar + rail + body) is now the // shared VerticalTabsLayout (which self-injects its own CSS). Kept as an injected string so the studio @@ -409,7 +409,13 @@ export default defineComponent({ activeKey: '', embedOpen: false, // i18n locale switcher (reuses app-wrapper-material/languages.js — persisted, offline, no dep). - locale: loadLocale(), + // ★ THE HOST'S LOCALE FIRST. A host that embeds the studio with profile-config.locale (the + // library's contract, read by ProfileLoader) was ignored: the switcher seeded from localStorage / + // the browser, and every pane was handed THAT — check:host-locale-contract measured 0 Arabic + // characters with locale:"ar" against 2077 at ?lang=ar. Ladder, as in i18n/index.js detectLocale: + // profile-config locale/lang → ?lang= / ?locale= → the reader's saved switcher choice → browser. + // A host- or URL-given locale is NOT persisted: it is the host's choice, not the reader's. + locale: this.initialLocale(), localeOpen: false, switcherLangs: SWITCHER_LANGUAGES, // rows keyed by "/"; each carries its resolved nesting state. @@ -584,6 +590,26 @@ export default defineComponent({ // Switch preview language. languages.js's contract: switching = re-setting profile-config.locale // on the mounted element. Persist, then re-set it on the element this pane already holds. Every // pane now carries a real element, so there is ONE path here — no per-mode branch. + initialLocale() { + let pc = this.profileConfig + if (typeof pc === 'string') { try { pc = pc ? JSON.parse(pc) : {} } catch { pc = {} } } + let q = '' + try { const u = new URLSearchParams(window.location.search); q = u.get('lang') || u.get('locale') || '' } catch { /* no window */ } + const given = (pc && (pc.locale || pc.lang)) || q + return given ? normaliseLocale(given) : loadLocale() + }, + // ONE builder for a pane's profile-config, used by the mount AND by a language switch. The switch + // used to rebuild it by hand with only profile/instanceId/locale/tk — dropping tokenUrl, provider + // and treeBase, so switching language flipped a maplibre pane back to mapbox. + paneConfig(row, locale) { + const pc = { profile: row.profile, instanceId: 'ps-' + row.key.replace(/\//g, '-'), locale } + if (this.tk || this.cfg.tk) pc.tk = this.tk || this.cfg.tk + if (this.tokenUrl || this.cfg.tokenUrl) pc.tokenUrl = this.tokenUrl || this.cfg.tokenUrl + const wantProvider = this.provider || this.cfg.provider + if (wantProvider === 'maplibre' || wantProvider === 'mapbox') pc.provider = wantProvider + if (this.base) pc.treeBase = this.base + return pc + }, setLocale(code) { this.locale = code this.localeOpen = false @@ -593,9 +619,7 @@ export default defineComponent({ const slot = this._slots && this._slots[this.activeKey] const el = slot && slot.firstElementChild if (el && el.setAttribute && row) { - const pc = { profile: row.profile, instanceId: 'ps-' + this.activeKey.replace(/\//g, '-'), locale: code } - if (this.tk || this.cfg.tk) pc.tk = this.tk || this.cfg.tk - el.setAttribute('profile-config', JSON.stringify(pc)) + el.setAttribute('profile-config', JSON.stringify(this.paneConfig(row, code))) } } catch { /* non-fatal: the switcher still persists + updates the UI */ } }, @@ -782,16 +806,11 @@ export default defineComponent({ // renders in the studio's active language (ProfileLoader reads profile-config.locale). // tk/tokenUrl ride along here now that map rows mount directly — this is the token ladder // the removed iframe src used to carry as a query param. - const pc = { profile: row.profile, instanceId: 'ps-' + row.key.replace(/\//g, '-'), locale: this.locale } - if (this.tk || this.cfg.tk) pc.tk = this.tk || this.cfg.tk - if (this.tokenUrl || this.cfg.tokenUrl) pc.tokenUrl = this.tokenUrl || this.cfg.tokenUrl // ★ AND THE ENGINE, for the same reason tk rides along. resolveMapProvider's ladder starts // at profile-config.provider, and a pane reads the config THIS file writes — so a studio // embedded with provider=maplibre showed mapbox panes and, on a keyless host, panes that // asked for a token. MEASURED on a foreign origin: 19 requests to api.mapbox.com for a // maplibre request. Validated to the two known engines so a typo cannot select a third. - const wantProvider = this.provider || this.cfg.provider - if (wantProvider === 'maplibre' || wantProvider === 'mapbox') pc.provider = wantProvider // PASS THE TREE BASE DOWN — a nested cap-5 shell cannot guess it. // doxa-maps-spa carries its OWN hardcoded, TREE-RELATIVE tab list (doxa-maps-spa.vue:265-312, // e.g. 'doxa-research-map/research-map/index.html') and resolves it against ITS treeBase, @@ -804,8 +823,8 @@ export default defineComponent({ // We know the correct base because it is the one WE resolved against, so hand it over rather // than letting the child re-derive it. doxa-maps-spa reads cfg.treeBase (:519) ahead of its // own guess, so this lands through the existing config path with no new prop. - if (this.base) pc.treeBase = this.base - el.setAttribute('profile-config', JSON.stringify(pc)) + // (All of the above is built in ONE place, paneConfig(), shared with setLocale.) + el.setAttribute('profile-config', JSON.stringify(this.paneConfig(row, this.locale))) // …and as a plain `tree-base` ATTRIBUTE, for elements that take the base that way instead of // through profile-config (golden-path-check does, deliberately — it has no ProfileLoader). // Without it that check guessed the tree from the PAGE URL, which in the studio is the page diff --git a/plugin-designs/stack-demo/stack-demo.vue b/plugin-designs/stack-demo/stack-demo.vue index c4551f214..e76426800 100644 --- a/plugin-designs/stack-demo/stack-demo.vue +++ b/plugin-designs/stack-demo/stack-demo.vue @@ -76,6 +76,14 @@ const hostProvider = computed(() => { const p = hostConfig.value?.provider return p === 'maplibre' || p === 'mapbox' ? p : '' }) +// ★ AND THE HOST'S LANGUAGE, the third knob a host passes the same way. The children are mounted BY +// TAG, each with its own ProfileLoader / config reader, so the only thing missing was handing the +// locale down — check:host-locale-contract measured 0 Arabic characters with profile-config +// locale:"ar" against 2205 at ?lang=ar. Passed through as given; each child validates it. +const hostLocale = computed(() => { + const l = hostConfig.value?.locale || hostConfig.value?.lang + return typeof l === 'string' && l ? l : '' +}) const sections = computed(() => [ { @@ -101,6 +109,7 @@ const sections = computed(() => [ // what its standalone leaf asks for. ...(hostToken.value ? { tk: hostToken.value } : {}), ...(hostProvider.value ? { provider: hostProvider.value } : {}), + ...(hostLocale.value ? { locale: hostLocale.value } : {}), assetsBase: '../../assets' }) } @@ -110,7 +119,10 @@ const sections = computed(() => [ title: 'People Groups', sub: 'the full searchable list (live)', element: 'people-groups-grid', - src: bundleSrc('people-groups-grid', 'people-groups-grid') + src: bundleSrc('people-groups-grid', 'people-groups-grid'), + // The grid reads profile-config.locale itself (people-groups-grid.vue, cfg.locale). Only set + // when the host gave one, so without it the grid mounts exactly as its standalone leaf does. + ...(hostLocale.value ? { attrs: { 'profile-config': JSON.stringify({ locale: hostLocale.value }) } } : {}) } ]) diff --git a/public/doxa-maps/doxa-maps-spa/manifest.json b/public/doxa-maps/doxa-maps-spa/manifest.json index b33025a38..23dae58b1 100644 --- a/public/doxa-maps/doxa-maps-spa/manifest.json +++ b/public/doxa-maps/doxa-maps-spa/manifest.json @@ -782,7 +782,7 @@ "bundle": "plugin-studio", "scriptUrl": "./plugin-studio/plugin-studio.js", "output": "doxa-maps/plugin-studio/plugin-studio.js", - "integrity": "sha384-JhqC9WgYSipRHC8JK60x+VOeRp4gg1USvIDUXWb9aLx3gHdOCeLgmtV6HkN8mfgM", + "integrity": "sha384-JkHKL07MX7U5S8CLVSqL5FoDxuS25rpJygq75ozwNJuq8w9TVeZCw5DCZw82CTTA", "elements": [ "plugin-studio" ], @@ -810,7 +810,7 @@ "scriptUrl": "./plugin-studio/plugin-studio.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" }, "instances": [ { @@ -888,7 +888,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "doxa-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-zE42DnXbiIsJpnPZ2ZLVClbwODYgF0j6agMZoJTuhR/AW56nzpl7TwT8X8R9FPH4", + "integrity": "sha384-ue+5wU/3Mucc33aYWFlq/+ASVdSLukayWgbK4P3SPiku6Pr9uPWhfx6T4roaGmCl", "elements": [ "regions-dashboard" ], @@ -908,7 +908,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -922,7 +922,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -936,7 +936,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -1015,7 +1015,7 @@ "bundle": "stack-demo", "scriptUrl": "./stack-demo/stack-demo.js", "output": "doxa-maps/stack-demo/stack-demo.js", - "integrity": "sha384-3Rjk4pZDcTABDfBIAbT2tu+D6J9/U3jx3UJDkiPynH+oeiwzCGFotSX7hbhdT48G", + "integrity": "sha384-UkW6xuFr5wd1F6WJagiWzDoGxBXN6V89ESxbUu6AsRkcQOXTMGxBdRs84EpOAV6A", "elements": [ "stack-demo" ], @@ -1035,7 +1035,7 @@ "scriptUrl": "./stack-demo/stack-demo.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" }, "instances": [ { diff --git a/public/doxa-maps/manifest.json b/public/doxa-maps/manifest.json index b33025a38..23dae58b1 100644 --- a/public/doxa-maps/manifest.json +++ b/public/doxa-maps/manifest.json @@ -782,7 +782,7 @@ "bundle": "plugin-studio", "scriptUrl": "./plugin-studio/plugin-studio.js", "output": "doxa-maps/plugin-studio/plugin-studio.js", - "integrity": "sha384-JhqC9WgYSipRHC8JK60x+VOeRp4gg1USvIDUXWb9aLx3gHdOCeLgmtV6HkN8mfgM", + "integrity": "sha384-JkHKL07MX7U5S8CLVSqL5FoDxuS25rpJygq75ozwNJuq8w9TVeZCw5DCZw82CTTA", "elements": [ "plugin-studio" ], @@ -810,7 +810,7 @@ "scriptUrl": "./plugin-studio/plugin-studio.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" }, "instances": [ { @@ -888,7 +888,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "doxa-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-zE42DnXbiIsJpnPZ2ZLVClbwODYgF0j6agMZoJTuhR/AW56nzpl7TwT8X8R9FPH4", + "integrity": "sha384-ue+5wU/3Mucc33aYWFlq/+ASVdSLukayWgbK4P3SPiku6Pr9uPWhfx6T4roaGmCl", "elements": [ "regions-dashboard" ], @@ -908,7 +908,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -922,7 +922,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -936,7 +936,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -1015,7 +1015,7 @@ "bundle": "stack-demo", "scriptUrl": "./stack-demo/stack-demo.js", "output": "doxa-maps/stack-demo/stack-demo.js", - "integrity": "sha384-3Rjk4pZDcTABDfBIAbT2tu+D6J9/U3jx3UJDkiPynH+oeiwzCGFotSX7hbhdT48G", + "integrity": "sha384-UkW6xuFr5wd1F6WJagiWzDoGxBXN6V89ESxbUu6AsRkcQOXTMGxBdRs84EpOAV6A", "elements": [ "stack-demo" ], @@ -1035,7 +1035,7 @@ "scriptUrl": "./stack-demo/stack-demo.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" }, "instances": [ { diff --git a/public/doxa-maps/plugin-studio/plugin-studio.js b/public/doxa-maps/plugin-studio/plugin-studio.js index 53f1a5805..f1f404a67 100644 --- a/public/doxa-maps/plugin-studio/plugin-studio.js +++ b/public/doxa-maps/plugin-studio/plugin-studio.js @@ -2,23 +2,23 @@ * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Ps(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const U={},it=[],$e=()=>{},Co=()=>!1,Bt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Wt=e=>e.startsWith("onUpdate:"),Z=Object.assign,Rs=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Hi=Object.prototype.hasOwnProperty,D=(e,t)=>Hi.call(e,t),A=Array.isArray,qe=e=>vt(e)==="[object Map]",qt=e=>vt(e)==="[object Set]",To=e=>vt(e)==="[object Date]",R=e=>typeof e=="function",G=e=>typeof e=="string",me=e=>typeof e=="symbol",V=e=>e!==null&&typeof e=="object",Oo=e=>(V(e)||R(e))&&R(e.then)&&R(e.catch),Ao=Object.prototype.toString,vt=e=>Ao.call(e),Di=e=>vt(e).slice(8,-1),Gt=e=>vt(e)==="[object Object]",Ns=e=>G(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mt=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Xt=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},Fi=/-\w/g,oe=Xt(e=>e.replace(Fi,t=>t.slice(1).toUpperCase())),ji=/\B([A-Z])/g,be=Xt(e=>e.replace(ji,"-$1").toLowerCase()),Yt=Xt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Is=Xt(e=>e?`on${Yt(e)}`:""),He=(e,t)=>!Object.is(e,t),Jt=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:s})},Hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Po=e=>{const t=G(e)?Number(e):NaN;return isNaN(t)?e:t};let Ro;const Zt=()=>Ro||(Ro=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xt(e){if(A(e)){const t={};for(let s=0;s{if(s){const o=s.split(zi);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function _e(e){let t="";if(G(e))t=e;else if(A(e))for(let s=0;s!!(e&&e.__v_isRef===!0),M=e=>G(e)?e:e==null?"":A(e)||V(e)&&(e.toString===Ao||!R(e.toString))?Ho(e)?M(e.value):JSON.stringify(e,Do,2):String(e),Do=(e,t)=>Ho(t)?Do(e,t.value):qe(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[o,n],i)=>(s[Ds(o,i)+" =>"]=n,s),{})}:qt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Ds(s))}:me(t)?Ds(t):V(t)&&!A(t)&&!Gt(t)?String(t):t,Ds=(e,t="")=>{var s;return me(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/** +**/function Ps(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const U={},it=[],$e=()=>{},To=()=>!1,Bt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Wt=e=>e.startsWith("onUpdate:"),Z=Object.assign,Rs=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Hi=Object.prototype.hasOwnProperty,D=(e,t)=>Hi.call(e,t),A=Array.isArray,qe=e=>vt(e)==="[object Map]",qt=e=>vt(e)==="[object Set]",Oo=e=>vt(e)==="[object Date]",R=e=>typeof e=="function",G=e=>typeof e=="string",me=e=>typeof e=="symbol",V=e=>e!==null&&typeof e=="object",Ao=e=>(V(e)||R(e))&&R(e.then)&&R(e.catch),Mo=Object.prototype.toString,vt=e=>Mo.call(e),Di=e=>vt(e).slice(8,-1),Gt=e=>vt(e)==="[object Object]",Ns=e=>G(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mt=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Xt=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},Fi=/-\w/g,oe=Xt(e=>e.replace(Fi,t=>t.slice(1).toUpperCase())),ji=/\B([A-Z])/g,be=Xt(e=>e.replace(ji,"-$1").toLowerCase()),Yt=Xt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Is=Xt(e=>e?`on${Yt(e)}`:""),He=(e,t)=>!Object.is(e,t),Jt=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:s})},Hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ro=e=>{const t=G(e)?Number(e):NaN;return isNaN(t)?e:t};let No;const Zt=()=>No||(No=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xt(e){if(A(e)){const t={};for(let s=0;s{if(s){const o=s.split(zi);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function _e(e){let t="";if(G(e))t=e;else if(A(e))for(let s=0;s!!(e&&e.__v_isRef===!0),M=e=>G(e)?e:e==null?"":A(e)||V(e)&&(e.toString===Mo||!R(e.toString))?Do(e)?M(e.value):JSON.stringify(e,Fo,2):String(e),Fo=(e,t)=>Do(t)?Fo(e,t.value):qe(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[o,n],l)=>(s[Ds(o,l)+" =>"]=n,s),{})}:qt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Ds(s))}:me(t)?Ds(t):V(t)&&!A(t)&&!Gt(t)?String(t):t,Ds=(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 qi{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 o=this.scopes.slice();for(t=0,s=o.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,o;for(s=0,o=this.effects.length;s0)return;if(wt){let t=wt;for(wt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;yt;){let t=yt;for(yt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=s}}if(e)throw e}function zo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ko(e){let t,s=e.depsTail,o=s;for(;o;){const n=o.prevDep;o.version===-1?(o===s&&(s=n),Ks(o),Xi(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=n}e.deps=t,e.depsTail=s}function zs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Uo(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Uo(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===$t)||(e.globalVersion=$t,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!zs(e))))return;e.flags|=2;const t=e.dep,s=W,o=xe;W=e,xe=!0;try{zo(e);const n=e.fn(e._value);(t.version===0||He(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{W=s,xe=o,Ko(e),e.flags&=-3}}function Ks(e,t=!1){const{dep:s,prevSub:o,nextSub:n}=e;if(o&&(o.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=o,e.nextSub=void 0),s.subs===e&&(s.subs=o,!o&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)Ks(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Xi(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let xe=!0;const Bo=[];function Se(){Bo.push(xe),xe=!1}function Le(){const e=Bo.pop();xe=e===void 0?!0:e}function Wo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=W;W=void 0;try{t()}finally{W=s}}}let $t=0;class Yi{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 qo{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||!xe||W===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==W)s=this.activeLink=new Yi(W,this),W.deps?(s.prevDep=W.depsTail,W.depsTail.nextDep=s,W.depsTail=s):W.deps=W.depsTail=s,Go(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const o=s.nextDep;o.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=o),s.prevDep=W.depsTail,s.nextDep=void 0,W.depsTail.nextDep=s,W.depsTail=s,W.deps===s&&(W.deps=o)}return s}trigger(t){this.version++,$t++,this.notify(t)}notify(t){js();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Vs()}}}function Go(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)Go(o)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Us=new WeakMap,Je=Symbol(""),Bs=Symbol(""),_t=Symbol("");function re(e,t,s){if(xe&&W){let o=Us.get(e);o||Us.set(e,o=new Map);let n=o.get(s);n||(o.set(s,n=new qo),n.map=o,n.key=s),n.track()}}function De(e,t,s,o,n,i){const l=Us.get(e);if(!l){$t++;return}const r=a=>{a&&a.trigger()};if(js(),t==="clear")l.forEach(r);else{const a=A(e),f=a&&Ns(s);if(a&&s==="length"){const p=Number(o);l.forEach((h,y)=>{(y==="length"||y===_t||!me(y)&&y>=p)&&r(h)})}else switch((s!==void 0||l.has(void 0))&&r(l.get(s)),f&&r(l.get(_t)),t){case"add":a?f&&r(l.get("length")):(r(l.get(Je)),qe(e)&&r(l.get(Bs)));break;case"delete":a||(r(l.get(Je)),qe(e)&&r(l.get(Bs)));break;case"set":qe(e)&&r(l.get(Je));break}}Vs()}function lt(e){const t=F(e);return t===e?t:(re(t,"iterate",_t),ye(e)?t:t.map(je))}function es(e){return re(e=F(e),"iterate",_t),e}function Ee(e,t){return Ge(e)?rt(Ze(e)?je(t):t):je(t)}const Ji={__proto__:null,[Symbol.iterator](){return Ws(this,Symbol.iterator,e=>Ee(this,e))},concat(...e){return lt(this).concat(...e.map(t=>A(t)?lt(t):t))},entries(){return Ws(this,"entries",e=>(e[1]=Ee(this,e[1]),e))},every(e,t){return Fe(this,"every",e,t,void 0,arguments)},filter(e,t){return Fe(this,"filter",e,t,s=>s.map(o=>Ee(this,o)),arguments)},find(e,t){return Fe(this,"find",e,t,s=>Ee(this,s),arguments)},findIndex(e,t){return Fe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Fe(this,"findLast",e,t,s=>Ee(this,s),arguments)},findLastIndex(e,t){return Fe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Fe(this,"forEach",e,t,void 0,arguments)},includes(...e){return qs(this,"includes",e)},indexOf(...e){return qs(this,"indexOf",e)},join(e){return lt(this).join(e)},lastIndexOf(...e){return qs(this,"lastIndexOf",e)},map(e,t){return Fe(this,"map",e,t,void 0,arguments)},pop(){return St(this,"pop")},push(...e){return St(this,"push",e)},reduce(e,...t){return Xo(this,"reduce",e,t)},reduceRight(e,...t){return Xo(this,"reduceRight",e,t)},shift(){return St(this,"shift")},some(e,t){return Fe(this,"some",e,t,void 0,arguments)},splice(...e){return St(this,"splice",e)},toReversed(){return lt(this).toReversed()},toSorted(e){return lt(this).toSorted(e)},toSpliced(...e){return lt(this).toSpliced(...e)},unshift(...e){return St(this,"unshift",e)},values(){return Ws(this,"values",e=>Ee(this,e))}};function Ws(e,t,s){const o=es(e),n=o[t]();return o!==e&&!ye(e)&&(n._next=n.next,n.next=()=>{const i=n._next();return i.done||(i.value=s(i.value)),i}),n}const Zi=Array.prototype;function Fe(e,t,s,o,n,i){const l=es(e),r=l!==e&&!ye(e),a=l[t];if(a!==Zi[t]){const h=a.apply(e,i);return r?je(h):h}let f=s;l!==e&&(r?f=function(h,y){return s.call(this,Ee(e,h),y,e)}:s.length>2&&(f=function(h,y){return s.call(this,h,y,e)}));const p=a.call(l,f,o);return r&&n?n(p):p}function Xo(e,t,s,o){const n=es(e),i=n!==e&&!ye(e);let l=s,r=!1;n!==e&&(i?(r=o.length===0,l=function(f,p,h){return r&&(r=!1,f=Ee(e,f)),s.call(this,f,Ee(e,p),h,e)}):s.length>3&&(l=function(f,p,h){return s.call(this,f,p,h,e)}));const a=n[t](l,...o);return r?Ee(e,a):a}function qs(e,t,s){const o=F(e);re(o,"iterate",_t);const n=o[t](...s);return(n===-1||n===!1)&&Js(s[0])?(s[0]=F(s[0]),o[t](...s)):n}function St(e,t,s=[]){Se(),js();const o=F(e)[t].apply(e,s);return Vs(),Le(),o}const Qi=Ps("__proto__,__v_isRef,__isVue"),Yo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(me));function el(e){me(e)||(e=String(e));const t=F(this);return re(t,"has",e),t.hasOwnProperty(e)}class Jo{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,o){if(s==="__v_skip")return t.__v_skip;const n=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!n;if(s==="__v_isReadonly")return n;if(s==="__v_isShallow")return i;if(s==="__v_raw")return o===(n?i?on:sn:i?tn:en).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const l=A(t);if(!n){let a;if(l&&(a=Ji[s]))return a;if(s==="hasOwnProperty")return el}const r=Reflect.get(t,s,ae(t)?t:o);if((me(s)?Yo.has(s):Qi(s))||(n||re(t,"get",s),i))return r;if(ae(r)){const a=l&&Ns(s)?r:r.value;return n&&V(a)?Ys(a):a}return V(r)?n?Ys(r):Xs(r):r}}class Zo extends Jo{constructor(t=!1){super(!1,t)}set(t,s,o,n){let i=t[s];const l=A(t)&&Ns(s);if(!this._isShallow){const f=Ge(i);if(!ye(o)&&!Ge(o)&&(i=F(i),o=F(o)),!l&&ae(i)&&!ae(o))return f||(i.value=o),!0}const r=l?Number(s)e,ts=e=>Reflect.getPrototypeOf(e);function il(e,t,s){return function(...o){const n=this.__v_raw,i=F(n),l=qe(i),r=e==="entries"||e===Symbol.iterator&&l,a=e==="keys"&&l,f=n[e](...o),p=s?Gs:t?rt:je;return!t&&re(i,"iterate",a?Bs:Je),Z(Object.create(f),{next(){const{value:h,done:y}=f.next();return y?{value:h,done:y}:{value:r?[p(h[0]),p(h[1])]:p(h),done:y}}})}}function ss(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ll(e,t){const s={get(n){const i=this.__v_raw,l=F(i),r=F(n);e||(He(n,r)&&re(l,"get",n),re(l,"get",r));const{has:a}=ts(l),f=t?Gs:e?rt:je;if(a.call(l,n))return f(i.get(n));if(a.call(l,r))return f(i.get(r));i!==l&&i.get(n)},get size(){const n=this.__v_raw;return!e&&re(F(n),"iterate",Je),n.size},has(n){const i=this.__v_raw,l=F(i),r=F(n);return e||(He(n,r)&&re(l,"has",n),re(l,"has",r)),n===r?i.has(n):i.has(n)||i.has(r)},forEach(n,i){const l=this,r=l.__v_raw,a=F(r),f=t?Gs:e?rt:je;return!e&&re(a,"iterate",Je),r.forEach((p,h)=>n.call(i,f(p),f(h),l))}};return Z(s,e?{add:ss("add"),set:ss("set"),delete:ss("delete"),clear:ss("clear")}:{add(n){const i=F(this),l=ts(i),r=F(n),a=!t&&!ye(n)&&!Ge(n)?r:n;return l.has.call(i,a)||He(n,a)&&l.has.call(i,n)||He(r,a)&&l.has.call(i,r)||(i.add(a),De(i,"add",a,a)),this},set(n,i){!t&&!ye(i)&&!Ge(i)&&(i=F(i));const l=F(this),{has:r,get:a}=ts(l);let f=r.call(l,n);f||(n=F(n),f=r.call(l,n));const p=a.call(l,n);return l.set(n,i),f?He(i,p)&&De(l,"set",n,i):De(l,"add",n,i),this},delete(n){const i=F(this),{has:l,get:r}=ts(i);let a=l.call(i,n);a||(n=F(n),a=l.call(i,n)),r&&r.call(i,n);const f=i.delete(n);return a&&De(i,"delete",n,void 0),f},clear(){const n=F(this),i=n.size!==0,l=n.clear();return i&&De(n,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(n=>{s[n]=il(n,e,t)}),s}function os(e,t){const s=ll(e,t);return(o,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?o:Reflect.get(D(s,n)&&n in o?s:o,n,i)}const rl={get:os(!1,!1)},al={get:os(!1,!0)},cl={get:os(!0,!1)},dl={get:os(!0,!0)},en=new WeakMap,tn=new WeakMap,sn=new WeakMap,on=new WeakMap;function pl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xs(e){return Ge(e)?e:ns(e,!1,tl,rl,en)}function fl(e){return ns(e,!1,ol,al,tn)}function Ys(e){return ns(e,!0,sl,cl,sn)}function zd(e){return ns(e,!0,nl,dl,on)}function ns(e,t,s,o,n){if(!V(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=n.get(e);if(i)return i;const l=pl(Di(e));if(l===0)return e;const r=new Proxy(e,l===2?o:s);return n.set(e,r),r}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 Js(e){return e?!!e.__v_raw:!1}function F(e){const t=e&&e.__v_raw;return t?F(t):e}function ul(e){return!D(e,"__v_skip")&&Object.isExtensible(e)&&Mo(e,"__v_skip",!0),e}const je=e=>V(e)?Xs(e):e,rt=e=>V(e)?Ys(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function nn(e){return ae(e)?e.value:e}const hl={get:(e,t,s)=>t==="__v_raw"?e:nn(Reflect.get(e,t,s)),set:(e,t,s,o)=>{const n=e[t];return ae(n)&&!ae(s)?(n.value=s,!0):Reflect.set(e,t,s,o)}};function ln(e){return Ze(e)?e:new Proxy(e,hl)}class gl{constructor(t,s,o){this.fn=t,this.setter=s,this._value=void 0,this.dep=new qo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=$t-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&W!==this)return Vo(this,!0),!0}get value(){const t=this.dep.track();return Uo(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function bl(e,t,s=!1){let o,n;return R(e)?o=e:(o=e.get,n=e.set),new gl(o,n,s)}const is={},ls=new WeakMap;let Qe;function vl(e,t=!1,s=Qe){if(s){let o=ls.get(s);o||ls.set(s,o=[]),o.push(e)}}function ml(e,t,s=U){const{immediate:o,deep:n,once:i,scheduler:l,augmentJob:r,call:a}=s,f=O=>n?O:ye(O)||n===!1||n===0?Ve(O,1):Ve(O);let p,h,y,S,j=!1,N=!1;if(ae(e)?(h=()=>e.value,j=ye(e)):Ze(e)?(h=()=>f(e),j=!0):A(e)?(N=!0,j=e.some(O=>Ze(O)||ye(O)),h=()=>e.map(O=>{if(ae(O))return O.value;if(Ze(O))return f(O);if(R(O))return a?a(O,2):O()})):R(e)?t?h=a?()=>a(e,2):e:h=()=>{if(y){Se();try{y()}finally{Le()}}const O=Qe;Qe=p;try{return a?a(e,3,[S]):e(S)}finally{Qe=O}}:h=$e,t&&n){const O=h,se=n===!0?1/0:n;h=()=>Ve(O(),se)}const ee=Gi(),Y=()=>{p.stop(),ee&&ee.active&&Rs(ee.effects,p)};if(i&&t){const O=t;t=(...se)=>{const Ae=O(...se);return Y(),Ae}}let H=N?new Array(e.length).fill(is):is;const z=O=>{if(!(!(p.flags&1)||!p.dirty&&!O))if(t){const se=p.run();if(O||n||j||(N?se.some((Ae,Me)=>He(Ae,H[Me])):He(se,H))){y&&y();const Ae=Qe;Qe=p;try{const Me=[se,H===is?void 0:N&&H[0]===is?[]:H,S];H=se,a?a(t,3,Me):t(...Me)}finally{Qe=Ae}}}else p.run()};return r&&r(z),p=new Fo(h),p.scheduler=l?()=>l(z,!1):z,S=O=>vl(O,!1,p),y=p.onStop=()=>{const O=ls.get(p);if(O){if(a)a(O,4);else for(const se of O)se();ls.delete(p)}},t?o?z(!0):H=p.run():l?l(z.bind(null,!0),!0):p.run(),Y.pause=p.pause.bind(p),Y.resume=p.resume.bind(p),Y.stop=Y,Y}function Ve(e,t=1/0,s){if(t<=0||!V(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,ae(e))Ve(e.value,t,s);else if(A(e))for(let o=0;o{Ve(o,t,s)});else if(Gt(e)){for(const o in e)Ve(e[o],t,s);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Ve(e[o],t,s)}return e}/** +**/let ne;class qi{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 o=this.scopes.slice();for(t=0,s=o.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,o;for(s=0,o=this.effects.length;s0)return;if(wt){let t=wt;for(wt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;yt;){let t=yt;for(yt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=s}}if(e)throw e}function Ko(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Uo(e){let t,s=e.depsTail,o=s;for(;o;){const n=o.prevDep;o.version===-1?(o===s&&(s=n),Ks(o),Xi(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=n}e.deps=t,e.depsTail=s}function zs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Bo(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Bo(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===$t)||(e.globalVersion=$t,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!zs(e))))return;e.flags|=2;const t=e.dep,s=W,o=xe;W=e,xe=!0;try{Ko(e);const n=e.fn(e._value);(t.version===0||He(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{W=s,xe=o,Uo(e),e.flags&=-3}}function Ks(e,t=!1){const{dep:s,prevSub:o,nextSub:n}=e;if(o&&(o.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=o,e.nextSub=void 0),s.subs===e&&(s.subs=o,!o&&s.computed)){s.computed.flags&=-5;for(let l=s.computed.deps;l;l=l.nextDep)Ks(l,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Xi(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let xe=!0;const Wo=[];function Se(){Wo.push(xe),xe=!1}function Le(){const e=Wo.pop();xe=e===void 0?!0:e}function qo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=W;W=void 0;try{t()}finally{W=s}}}let $t=0;class Yi{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 Go{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||!xe||W===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==W)s=this.activeLink=new Yi(W,this),W.deps?(s.prevDep=W.depsTail,W.depsTail.nextDep=s,W.depsTail=s):W.deps=W.depsTail=s,Xo(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const o=s.nextDep;o.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=o),s.prevDep=W.depsTail,s.nextDep=void 0,W.depsTail.nextDep=s,W.depsTail=s,W.deps===s&&(W.deps=o)}return s}trigger(t){this.version++,$t++,this.notify(t)}notify(t){js();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Vs()}}}function Xo(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)Xo(o)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Us=new WeakMap,Je=Symbol(""),Bs=Symbol(""),_t=Symbol("");function re(e,t,s){if(xe&&W){let o=Us.get(e);o||Us.set(e,o=new Map);let n=o.get(s);n||(o.set(s,n=new Go),n.map=o,n.key=s),n.track()}}function De(e,t,s,o,n,l){const i=Us.get(e);if(!i){$t++;return}const r=a=>{a&&a.trigger()};if(js(),t==="clear")i.forEach(r);else{const a=A(e),f=a&&Ns(s);if(a&&s==="length"){const p=Number(o);i.forEach((h,y)=>{(y==="length"||y===_t||!me(y)&&y>=p)&&r(h)})}else switch((s!==void 0||i.has(void 0))&&r(i.get(s)),f&&r(i.get(_t)),t){case"add":a?f&&r(i.get("length")):(r(i.get(Je)),qe(e)&&r(i.get(Bs)));break;case"delete":a||(r(i.get(Je)),qe(e)&&r(i.get(Bs)));break;case"set":qe(e)&&r(i.get(Je));break}}Vs()}function lt(e){const t=F(e);return t===e?t:(re(t,"iterate",_t),ye(e)?t:t.map(je))}function es(e){return re(e=F(e),"iterate",_t),e}function Ee(e,t){return Ge(e)?rt(Ze(e)?je(t):t):je(t)}const Ji={__proto__:null,[Symbol.iterator](){return Ws(this,Symbol.iterator,e=>Ee(this,e))},concat(...e){return lt(this).concat(...e.map(t=>A(t)?lt(t):t))},entries(){return Ws(this,"entries",e=>(e[1]=Ee(this,e[1]),e))},every(e,t){return Fe(this,"every",e,t,void 0,arguments)},filter(e,t){return Fe(this,"filter",e,t,s=>s.map(o=>Ee(this,o)),arguments)},find(e,t){return Fe(this,"find",e,t,s=>Ee(this,s),arguments)},findIndex(e,t){return Fe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Fe(this,"findLast",e,t,s=>Ee(this,s),arguments)},findLastIndex(e,t){return Fe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Fe(this,"forEach",e,t,void 0,arguments)},includes(...e){return qs(this,"includes",e)},indexOf(...e){return qs(this,"indexOf",e)},join(e){return lt(this).join(e)},lastIndexOf(...e){return qs(this,"lastIndexOf",e)},map(e,t){return Fe(this,"map",e,t,void 0,arguments)},pop(){return St(this,"pop")},push(...e){return St(this,"push",e)},reduce(e,...t){return Yo(this,"reduce",e,t)},reduceRight(e,...t){return Yo(this,"reduceRight",e,t)},shift(){return St(this,"shift")},some(e,t){return Fe(this,"some",e,t,void 0,arguments)},splice(...e){return St(this,"splice",e)},toReversed(){return lt(this).toReversed()},toSorted(e){return lt(this).toSorted(e)},toSpliced(...e){return lt(this).toSpliced(...e)},unshift(...e){return St(this,"unshift",e)},values(){return Ws(this,"values",e=>Ee(this,e))}};function Ws(e,t,s){const o=es(e),n=o[t]();return o!==e&&!ye(e)&&(n._next=n.next,n.next=()=>{const l=n._next();return l.done||(l.value=s(l.value)),l}),n}const Zi=Array.prototype;function Fe(e,t,s,o,n,l){const i=es(e),r=i!==e&&!ye(e),a=i[t];if(a!==Zi[t]){const h=a.apply(e,l);return r?je(h):h}let f=s;i!==e&&(r?f=function(h,y){return s.call(this,Ee(e,h),y,e)}:s.length>2&&(f=function(h,y){return s.call(this,h,y,e)}));const p=a.call(i,f,o);return r&&n?n(p):p}function Yo(e,t,s,o){const n=es(e),l=n!==e&&!ye(e);let i=s,r=!1;n!==e&&(l?(r=o.length===0,i=function(f,p,h){return r&&(r=!1,f=Ee(e,f)),s.call(this,f,Ee(e,p),h,e)}):s.length>3&&(i=function(f,p,h){return s.call(this,f,p,h,e)}));const a=n[t](i,...o);return r?Ee(e,a):a}function qs(e,t,s){const o=F(e);re(o,"iterate",_t);const n=o[t](...s);return(n===-1||n===!1)&&Js(s[0])?(s[0]=F(s[0]),o[t](...s)):n}function St(e,t,s=[]){Se(),js();const o=F(e)[t].apply(e,s);return Vs(),Le(),o}const Qi=Ps("__proto__,__v_isRef,__isVue"),Jo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(me));function el(e){me(e)||(e=String(e));const t=F(this);return re(t,"has",e),t.hasOwnProperty(e)}class Zo{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,o){if(s==="__v_skip")return t.__v_skip;const n=this._isReadonly,l=this._isShallow;if(s==="__v_isReactive")return!n;if(s==="__v_isReadonly")return n;if(s==="__v_isShallow")return l;if(s==="__v_raw")return o===(n?l?nn:on:l?sn:tn).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=A(t);if(!n){let a;if(i&&(a=Ji[s]))return a;if(s==="hasOwnProperty")return el}const r=Reflect.get(t,s,ae(t)?t:o);if((me(s)?Jo.has(s):Qi(s))||(n||re(t,"get",s),l))return r;if(ae(r)){const a=i&&Ns(s)?r:r.value;return n&&V(a)?Ys(a):a}return V(r)?n?Ys(r):Xs(r):r}}class Qo extends Zo{constructor(t=!1){super(!1,t)}set(t,s,o,n){let l=t[s];const i=A(t)&&Ns(s);if(!this._isShallow){const f=Ge(l);if(!ye(o)&&!Ge(o)&&(l=F(l),o=F(o)),!i&&ae(l)&&!ae(o))return f||(l.value=o),!0}const r=i?Number(s)e,ts=e=>Reflect.getPrototypeOf(e);function il(e,t,s){return function(...o){const n=this.__v_raw,l=F(n),i=qe(l),r=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,f=n[e](...o),p=s?Gs:t?rt:je;return!t&&re(l,"iterate",a?Bs:Je),Z(Object.create(f),{next(){const{value:h,done:y}=f.next();return y?{value:h,done:y}:{value:r?[p(h[0]),p(h[1])]:p(h),done:y}}})}}function ss(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ll(e,t){const s={get(n){const l=this.__v_raw,i=F(l),r=F(n);e||(He(n,r)&&re(i,"get",n),re(i,"get",r));const{has:a}=ts(i),f=t?Gs:e?rt:je;if(a.call(i,n))return f(l.get(n));if(a.call(i,r))return f(l.get(r));l!==i&&l.get(n)},get size(){const n=this.__v_raw;return!e&&re(F(n),"iterate",Je),n.size},has(n){const l=this.__v_raw,i=F(l),r=F(n);return e||(He(n,r)&&re(i,"has",n),re(i,"has",r)),n===r?l.has(n):l.has(n)||l.has(r)},forEach(n,l){const i=this,r=i.__v_raw,a=F(r),f=t?Gs:e?rt:je;return!e&&re(a,"iterate",Je),r.forEach((p,h)=>n.call(l,f(p),f(h),i))}};return Z(s,e?{add:ss("add"),set:ss("set"),delete:ss("delete"),clear:ss("clear")}:{add(n){const l=F(this),i=ts(l),r=F(n),a=!t&&!ye(n)&&!Ge(n)?r:n;return i.has.call(l,a)||He(n,a)&&i.has.call(l,n)||He(r,a)&&i.has.call(l,r)||(l.add(a),De(l,"add",a,a)),this},set(n,l){!t&&!ye(l)&&!Ge(l)&&(l=F(l));const i=F(this),{has:r,get:a}=ts(i);let f=r.call(i,n);f||(n=F(n),f=r.call(i,n));const p=a.call(i,n);return i.set(n,l),f?He(l,p)&&De(i,"set",n,l):De(i,"add",n,l),this},delete(n){const l=F(this),{has:i,get:r}=ts(l);let a=i.call(l,n);a||(n=F(n),a=i.call(l,n)),r&&r.call(l,n);const f=l.delete(n);return a&&De(l,"delete",n,void 0),f},clear(){const n=F(this),l=n.size!==0,i=n.clear();return l&&De(n,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(n=>{s[n]=il(n,e,t)}),s}function os(e,t){const s=ll(e,t);return(o,n,l)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?o:Reflect.get(D(s,n)&&n in o?s:o,n,l)}const rl={get:os(!1,!1)},al={get:os(!1,!0)},cl={get:os(!0,!1)},dl={get:os(!0,!0)},tn=new WeakMap,sn=new WeakMap,on=new WeakMap,nn=new WeakMap;function pl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xs(e){return Ge(e)?e:ns(e,!1,tl,rl,tn)}function fl(e){return ns(e,!1,ol,al,sn)}function Ys(e){return ns(e,!0,sl,cl,on)}function zd(e){return ns(e,!0,nl,dl,nn)}function ns(e,t,s,o,n){if(!V(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const l=n.get(e);if(l)return l;const i=pl(Di(e));if(i===0)return e;const r=new Proxy(e,i===2?o:s);return n.set(e,r),r}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 Js(e){return e?!!e.__v_raw:!1}function F(e){const t=e&&e.__v_raw;return t?F(t):e}function ul(e){return!D(e,"__v_skip")&&Object.isExtensible(e)&&Po(e,"__v_skip",!0),e}const je=e=>V(e)?Xs(e):e,rt=e=>V(e)?Ys(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function ln(e){return ae(e)?e.value:e}const hl={get:(e,t,s)=>t==="__v_raw"?e:ln(Reflect.get(e,t,s)),set:(e,t,s,o)=>{const n=e[t];return ae(n)&&!ae(s)?(n.value=s,!0):Reflect.set(e,t,s,o)}};function rn(e){return Ze(e)?e:new Proxy(e,hl)}class gl{constructor(t,s,o){this.fn=t,this.setter=s,this._value=void 0,this.dep=new Go(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=$t-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&W!==this)return zo(this,!0),!0}get value(){const t=this.dep.track();return Bo(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function bl(e,t,s=!1){let o,n;return R(e)?o=e:(o=e.get,n=e.set),new gl(o,n,s)}const is={},ls=new WeakMap;let Qe;function vl(e,t=!1,s=Qe){if(s){let o=ls.get(s);o||ls.set(s,o=[]),o.push(e)}}function ml(e,t,s=U){const{immediate:o,deep:n,once:l,scheduler:i,augmentJob:r,call:a}=s,f=O=>n?O:ye(O)||n===!1||n===0?Ve(O,1):Ve(O);let p,h,y,S,j=!1,N=!1;if(ae(e)?(h=()=>e.value,j=ye(e)):Ze(e)?(h=()=>f(e),j=!0):A(e)?(N=!0,j=e.some(O=>Ze(O)||ye(O)),h=()=>e.map(O=>{if(ae(O))return O.value;if(Ze(O))return f(O);if(R(O))return a?a(O,2):O()})):R(e)?t?h=a?()=>a(e,2):e:h=()=>{if(y){Se();try{y()}finally{Le()}}const O=Qe;Qe=p;try{return a?a(e,3,[S]):e(S)}finally{Qe=O}}:h=$e,t&&n){const O=h,se=n===!0?1/0:n;h=()=>Ve(O(),se)}const ee=Gi(),Y=()=>{p.stop(),ee&&ee.active&&Rs(ee.effects,p)};if(l&&t){const O=t;t=(...se)=>{const Ae=O(...se);return Y(),Ae}}let H=N?new Array(e.length).fill(is):is;const z=O=>{if(!(!(p.flags&1)||!p.dirty&&!O))if(t){const se=p.run();if(O||n||j||(N?se.some((Ae,Me)=>He(Ae,H[Me])):He(se,H))){y&&y();const Ae=Qe;Qe=p;try{const Me=[se,H===is?void 0:N&&H[0]===is?[]:H,S];H=se,a?a(t,3,Me):t(...Me)}finally{Qe=Ae}}}else p.run()};return r&&r(z),p=new jo(h),p.scheduler=i?()=>i(z,!1):z,S=O=>vl(O,!1,p),y=p.onStop=()=>{const O=ls.get(p);if(O){if(a)a(O,4);else for(const se of O)se();ls.delete(p)}},t?o?z(!0):H=p.run():i?i(z.bind(null,!0),!0):p.run(),Y.pause=p.pause.bind(p),Y.resume=p.resume.bind(p),Y.stop=Y,Y}function Ve(e,t=1/0,s){if(t<=0||!V(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,ae(e))Ve(e.value,t,s);else if(A(e))for(let o=0;o{Ve(o,t,s)});else if(Gt(e)){for(const o in e)Ve(e[o],t,s);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Ve(e[o],t,s)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Lt=[];let Zs=!1;function Kd(e,...t){if(Zs)return;Zs=!0,Se();const s=Lt.length?Lt[Lt.length-1].component:null,o=s&&s.appContext.config.warnHandler,n=xl();if(o)at(o,s,11,[e+t.map(i=>{var l,r;return(r=(l=i.toString)==null?void 0:l.call(i))!=null?r:JSON.stringify(i)}).join(""),s&&s.proxy,n.map(({vnode:i})=>`at <${ri(s,i.type)}>`).join(` -`),n]);else{const i=[`[Vue warn]: ${e}`,...t];n.length&&i.push(` -`,...yl(n)),console.warn(...i)}Le(),Zs=!1}function xl(){let e=Lt[Lt.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 o=e.component&&e.component.parent;e=o&&o.vnode}return t}function yl(e){const t=[];return e.forEach((s,o)=>{t.push(...o===0?[]:[` -`],...wl(s))}),t}function wl({vnode:e,recurseCount:t}){const s=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,n=` at <${ri(e.component,e.type,o)}`,i=">"+s;return e.props?[n,...$l(e.props),i]:[n+i]}function $l(e){const t=[],s=Object.keys(e);return s.slice(0,3).forEach(o=>{t.push(...rn(o,e[o]))}),s.length>3&&t.push(" ..."),t}function rn(e,t,s){return G(t)?(t=JSON.stringify(t),s?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?s?t:[`${e}=${t}`]:ae(t)?(t=rn(e,F(t.value),!0),s?t:[`${e}=Ref<`,t,">"]):R(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=F(t),s?t:[`${e}=`,t])}function at(e,t,s,o){try{return o?e(...o):e()}catch(n){rs(n,t,s)}}function we(e,t,s,o){if(R(e)){const n=at(e,t,s,o);return n&&Oo(n)&&n.catch(i=>{rs(i,t,s)}),n}if(A(e)){const n=[];for(let i=0;i>>1,n=de[o],i=Et(n);i=Et(s)?de.push(e):de.splice(Sl(t),0,e),e.flags|=1,dn()}}function dn(){as||(as=an.then(un))}function Ll(e){if(!A(e))Xe&&e.id===-1?Xe.splice(dt+1,0,e):e.flags&1||(ct.push(e),e.flags|=1);else for(let t=0;tEt(s)-Et(o));if(ct.length=0,Xe){for(let s=0;se.id==null?e.flags&2?-1:1/0:e.id;function un(e){try{for(ke=0;ke{o._d&&Zn(-1);const i=cs(t),l=Ue.length;let r;try{r=e(...n)}finally{for(let a=Ue.length;a>l;a--)ho();cs(i),o._d&&Zn(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function ds(e,t){if(ie===null)return e;const s=$s(ie),o=e.dirs||(e.dirs=[]);for(let n=0;n1)return s&&R(t)?t.call(o&&o.proxy):t}}const kl=Symbol.for("v-scx"),Cl=()=>kt(kl);function eo(e,t,s){return gn(e,t,s)}function gn(e,t,s=U){const{immediate:o,deep:n,flush:i,once:l}=s,r=Z({},s),a=t&&o||!t&&i!=="post";let f;if(It){if(i==="sync"){const S=Cl();f=S.__watcherHandles||(S.__watcherHandles=[])}else if(!a){const S=()=>{};return S.stop=$e,S.resume=$e,S.pause=$e,S}}const p=ce;r.call=(S,j,N)=>we(S,p,j,N);let h=!1;i==="post"?r.scheduler=S=>{ue(S,p&&p.suspense)}:i!=="sync"&&(h=!0,r.scheduler=(S,j)=>{j?S():Qs(S)}),r.augmentJob=S=>{t&&(S.flags|=4),h&&(S.flags|=2,p&&(S.id=p.uid,S.i=p))};const y=ml(e,t,r);return It&&(f?f.push(y):a&&y()),y}function Tl(e,t,s){const o=this.proxy,n=G(e)?e.includes(".")?bn(o,e):()=>o[e]:e.bind(o,o);let i;R(t)?i=t:(i=t.handler,s=t);const l=Nt(this),r=gn(n,i.bind(o),s);return l(),r}function bn(e,t){const s=t.split(".");return()=>{let o=e;for(let n=0;ne.__isTeleport,to=Symbol("_leaveCb");function Al(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Ce){t=s;break}}return t}function vn(e){if(!oo(e))return ps(e.type)&&e.children?Al(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&&R(s.default))return s.default()}}function so(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;so(ps(s.type)&&vn(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 fs(e,t){return R(e)?Z({name:e.name},t,{setup:e}):e}function mn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function xn(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const us=new WeakMap;function Ct(e,t,s,o,n=!1){if(A(e)){e.forEach((N,ee)=>Ct(N,t&&(A(t)?t[ee]:t),s,o,n));return}if(ft(o)&&!n){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Ct(e,t,s,o.component.subTree);return}const i=o.shapeFlag&4?$s(o.component):o.el,l=n?null:i,{i:r,r:a}=e,f=t&&t.r,p=r.refs===U?r.refs={}:r.refs,h=r.setupState,y=F(h),S=h===U?Co:N=>xn(p,N)?!1:D(y,N),j=(N,ee)=>!(ee&&xn(p,ee));if(f!=null&&f!==a){if(yn(t),G(f))p[f]=null,S(f)&&(h[f]=null);else if(ae(f)){const N=t;j(f,N.k)&&(f.value=null),N.k&&(p[N.k]=null)}}if(R(a))at(a,r,12,[l,p]);else{const N=G(a),ee=ae(a);if(N||ee){const Y=()=>{if(e.f){const H=N?S(a)?h[a]:p[a]:j()||!e.k?a.value:p[e.k];if(n)A(H)&&Rs(H,i);else if(A(H))H.includes(i)||H.push(i);else if(N)p[a]=[i],S(a)&&(h[a]=p[a]);else{const z=[i];j(a,e.k)&&(a.value=z),e.k&&(p[e.k]=z)}}else N?(p[a]=l,S(a)&&(h[a]=l)):ee&&(j(a,e.k)&&(a.value=l),e.k&&(p[e.k]=l))};if(l){const H=()=>{Y(),us.delete(e)};H.id=-1,us.set(e,H),ue(H,s)}else yn(e),Y()}}}function yn(e){const t=us.get(e);t&&(t.flags|=8,us.delete(e))}Zt().requestIdleCallback,Zt().cancelIdleCallback;const ft=e=>!!e.type.__asyncLoader,oo=e=>e.type.__isKeepAlive;function Ml(e,t){wn(e,"a",t)}function Pl(e,t){wn(e,"da",t)}function wn(e,t,s=ce){const o=e.__wdc||(e.__wdc=()=>{let n=s;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(hs(t,o,s),s){let n=s.parent;for(;n&&n.parent;)oo(n.parent.vnode)&&Rl(o,t,s,n),n=n.parent}}function Rl(e,t,s,o){const n=hs(t,e,o,!0);_n(()=>{Rs(o[t],n)},s)}function hs(e,t,s=ce,o=!1){if(s){const n=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...l)=>{Se();const r=Nt(s),a=we(t,s,e,l);return r(),Le(),a});return o?n.unshift(i):n.push(i),i}}const ze=e=>(t,s=ce)=>{(!It||e==="sp")&&hs(e,(...o)=>t(...o),s)},Nl=ze("bm"),$n=ze("m"),Il=ze("bu"),Hl=ze("u"),Dl=ze("bum"),_n=ze("um"),Fl=ze("sp"),jl=ze("rtg"),Vl=ze("rtc");function zl(e,t=ce){hs("ec",e,t)}const Kl="components";function Sn(e,t){return Bl(Kl,e,!0,t)||e}const Ul=Symbol.for("v-ndc");function Bl(e,t,s=!0,o=!1){const n=ie||ce;if(n){const i=n.type;{const r=li(i,!1);if(r&&(r===t||r===oe(t)||r===Yt(oe(t))))return i}const l=Ln(n[e]||i[e],t)||Ln(n.appContext[e],t);return!l&&o?i:l}}function Ln(e,t){return e&&(e[t]||e[oe(t)]||e[Yt(oe(t))])}function Ke(e,t,s,o){let n;const i=s,l=A(e);if(l||G(e)){const r=l&&Ze(e);let a=!1,f=!1;r&&(a=!ye(e),f=Ge(e),e=es(e)),n=new Array(e.length);for(let p=0,h=e.length;pt(r,a,void 0,i));else{const r=Object.keys(e);n=new Array(r.length);for(let a=0,f=r.length;a0;return t!=="default"&&(f.name=t),E(),ms(X,null,[ve("slot",f,o)],p?-2:64)}let l=e[t];l&&l._c&&(l._d=!1);const r=Ue.length;E();let a;try{const f=l&&En(l(s)),p=s.key||i||f&&f.key;a=ms(X,{key:(p&&!me(p)?p:`_${t}`)+(!f&&o?"_fb":"")},f||(o?o():[]),f&&e._===1?64:-2)}catch(f){for(let p=Ue.length;p>r;p--)ho();throw f}finally{l&&l._c&&(l._d=!0)}return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function En(e){return e.some(t=>go(t)?!(t.type===Ce||t.type===X&&!En(t.children)):!0)?e:null}const no=e=>e?oi(e)?$s(e):no(e.parent):null,Ot=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=>no(e.parent),$root:e=>no(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>On(e),$forceUpdate:e=>e.f||(e.f=()=>{Qs(e.update)}),$nextTick:e=>e.n||(e.n=cn.bind(e.proxy)),$watch:e=>Tl.bind(e)}),io=(e,t)=>e!==U&&!e.__isScriptSetup&&D(e,t),Wl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:o,data:n,props:i,accessCache:l,type:r,appContext:a}=e;if(t[0]!=="$"){const y=l[t];if(y!==void 0)switch(y){case 1:return o[t];case 2:return n[t];case 4:return s[t];case 3:return i[t]}else{if(io(o,t))return l[t]=1,o[t];if(n!==U&&D(n,t))return l[t]=2,n[t];if(D(i,t))return l[t]=3,i[t];if(s!==U&&D(s,t))return l[t]=4,s[t];lo&&(l[t]=0)}}const f=Ot[t];let p,h;if(f)return t==="$attrs"&&re(e.attrs,"get",""),f(e);if((p=r.__cssModules)&&(p=p[t]))return p;if(s!==U&&D(s,t))return l[t]=4,s[t];if(h=a.config.globalProperties,D(h,t))return h[t]},set({_:e},t,s){const{data:o,setupState:n,ctx:i}=e;return io(n,t)?(n[t]=s,!0):o!==U&&D(o,t)?(o[t]=s,!0):D(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:o,appContext:n,props:i,type:l}},r){let a;return!!(s[r]||e!==U&&r[0]!=="$"&&D(e,r)||io(t,r)||D(i,r)||D(o,r)||D(Ot,r)||D(n.config.globalProperties,r)||(a=l.__cssModules)&&a[r])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:D(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function kn(e){return A(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let lo=!0;function ql(e){const t=On(e),s=e.proxy,o=e.ctx;lo=!1,t.beforeCreate&&Cn(t.beforeCreate,e,"bc");const{data:n,computed:i,methods:l,watch:r,provide:a,inject:f,created:p,beforeMount:h,mounted:y,beforeUpdate:S,updated:j,activated:N,deactivated:ee,beforeDestroy:Y,beforeUnmount:H,destroyed:z,unmounted:O,render:se,renderTracked:Ae,renderTriggered:Me,errorCaptured:Ye,serverPrefetch:Cs,expose:st,inheritAttrs:Vt,components:Ts,directives:Os,filters:Eo}=t;if(f&&Gl(f,o,null),l)for(const J in l){const q=l[J];R(q)&&(o[J]=q.bind(s))}if(n){const J=n.call(s,s);V(J)&&(e.data=Xs(J))}if(lo=!0,i)for(const J in i){const q=i[J],ot=R(q)?q.bind(s,s):R(q.get)?q.get.bind(s,s):$e,As=!R(q)&&R(q.set)?q.set.bind(s):$e,nt=Ar({get:ot,set:As});Object.defineProperty(o,J,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Pe=>nt.value=Pe})}if(r)for(const J in r)Tn(r[J],o,s,J);if(a){const J=R(a)?a.call(s):a;Reflect.ownKeys(J).forEach(q=>{El(q,J[q])})}p&&Cn(p,e,"c");function fe(J,q){A(q)?q.forEach(ot=>J(ot.bind(s))):q&&J(q.bind(s))}if(fe(Nl,h),fe($n,y),fe(Il,S),fe(Hl,j),fe(Ml,N),fe(Pl,ee),fe(zl,Ye),fe(Vl,Ae),fe(jl,Me),fe(Dl,H),fe(_n,O),fe(Fl,Cs),A(st))if(st.length){const J=e.exposed||(e.exposed={});st.forEach(q=>{Object.defineProperty(J,q,{get:()=>s[q],set:ot=>s[q]=ot,enumerable:!0})})}else e.exposed||(e.exposed={});se&&e.render===$e&&(e.render=se),Vt!=null&&(e.inheritAttrs=Vt),Ts&&(e.components=Ts),Os&&(e.directives=Os),Cs&&mn(e)}function Gl(e,t,s=$e){A(e)&&(e=ro(e));for(const o in e){const n=e[o];let i;V(n)?"default"in n?i=kt(n.from||o,n.default,!0):i=kt(n.from||o):i=kt(n),ae(i)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[o]=i}}function Cn(e,t,s){we(A(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,s)}function Tn(e,t,s,o){let n=o.includes(".")?bn(s,o):()=>s[o];if(G(e)){const i=t[e];R(i)&&eo(n,i)}else if(R(e))eo(n,e.bind(s));else if(V(e))if(A(e))e.forEach(i=>Tn(i,t,s,o));else{const i=R(e.handler)?e.handler.bind(s):t[e.handler];R(i)&&eo(n,i,e)}}function On(e){const t=e.type,{mixins:s,extends:o}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,r=i.get(t);let a;return r?a=r:!n.length&&!s&&!o?a=t:(a={},n.length&&n.forEach(f=>gs(a,f,l,!0)),gs(a,t,l)),V(t)&&i.set(t,a),a}function gs(e,t,s,o=!1){const{mixins:n,extends:i}=t;i&&gs(e,i,s,!0),n&&n.forEach(l=>gs(e,l,s,!0));for(const l in t)if(!(o&&l==="expose")){const r=Xl[l]||s&&s[l];e[l]=r?r(e[l],t[l]):t[l]}return e}const Xl={data:An,props:Mn,emits:Mn,methods:At,computed:At,beforeCreate:pe,created:pe,beforeMount:pe,mounted:pe,beforeUpdate:pe,updated:pe,beforeDestroy:pe,beforeUnmount:pe,destroyed:pe,unmounted:pe,activated:pe,deactivated:pe,errorCaptured:pe,serverPrefetch:pe,components:At,directives:At,watch:Jl,provide:An,inject:Yl};function An(e,t){return t?e?function(){return Z(R(e)?e.call(this,this):e,R(t)?t.call(this,this):t)}:t:e}function Yl(e,t){return At(ro(e),ro(t))}function ro(e){if(A(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${oe(t)}Modifiers`]||e[`${be(t)}Modifiers`];function tr(e,t,...s){if(e.isUnmounted)return;const o=e.vnode.props||U;let n=s;const i=t.startsWith("update:"),l=i&&er(o,t.slice(7));l&&(l.trim&&(n=s.map(p=>G(p)?p.trim():p)),l.number&&(n=n.map(Hs)));let r,a=o[r=Is(t)]||o[r=Is(oe(t))];!a&&i&&(a=o[r=Is(be(t))]),a&&we(a,e,6,n);const f=o[r+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,we(f,e,6,n)}}const sr=new WeakMap;function Rn(e,t,s=!1){const o=s?sr:t.emitsCache,n=o.get(e);if(n!==void 0)return n;const i=e.emits;let l={},r=!1;if(!R(e)){const a=f=>{const p=Rn(f,t,!0);p&&(r=!0,Z(l,p))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!r?(V(e)&&o.set(e,null),null):(A(i)?i.forEach(a=>l[a]=null):Z(l,i),V(e)&&o.set(e,l),l)}function bs(e,t){return!e||!Bt(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),D(e,t[0].toLowerCase()+t.slice(1))||D(e,be(t))||D(e,t))}function Ud(){}function Nn(e){const{type:t,vnode:s,proxy:o,withProxy:n,propsOptions:[i],slots:l,attrs:r,emit:a,render:f,renderCache:p,props:h,data:y,setupState:S,ctx:j,inheritAttrs:N}=e,ee=cs(e);let Y,H;try{if(s.shapeFlag&4){const O=n||o,se=O;Y=Te(f.call(se,O,p,h,S,y,j)),H=r}else{const O=t;Y=Te(O.length>1?O(h,{attrs:r,slots:l,emit:a}):O(h,null)),H=t.props?r:or(r)}}catch(O){Ue.length=0,rs(O,e,1),Y=ve(Ce)}let z=Y;if(H&&N!==!1){const O=Object.keys(H),{shapeFlag:se}=z;O.length&&se&7&&(i&&O.some(Wt)&&(H=nr(H,i)),z=ht(z,H,!1,!0))}if(s.dirs&&(z=ht(z,null,!1,!0),z.dirs=z.dirs?z.dirs.concat(s.dirs):s.dirs),s.transition){const O=ps(z.type)&&vn(z)||z;so(O,s.transition)}return Y=z,cs(ee),Y}const or=e=>{let t;for(const s in e)(s==="class"||s==="style"||Bt(s))&&((t||(t={}))[s]=e[s]);return t},nr=(e,t)=>{const s={};for(const o in e)(!Wt(o)||!(o.slice(9)in t))&&(s[o]=e[o]);return s};function ir(e,t,s){const{props:o,children:n,component:i}=e,{props:l,children:r,patchFlag:a}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return o?In(o,l,f):!!l;if(a&8){const p=t.dynamicProps;for(let h=0;hObject.create(Dn),jn=e=>Object.getPrototypeOf(e)===Dn;function rr(e,t,s,o=!1){const n={},i=Fn();e.propsDefaults=Object.create(null),Vn(e,t,n,i);for(const l in e.propsOptions[0])l in n||(n[l]=void 0);s?e.props=o?n:fl(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function ar(e,t,s,o){const{props:n,attrs:i,vnode:{patchFlag:l}}=e,r=F(n),[a]=e.propsOptions;let f=!1;if((o||l>0)&&!(l&16)){if(l&8){const p=e.vnode.dynamicProps;for(let h=0;h{a=!0;const[y,S]=zn(h,t,!0);Z(l,y),S&&r.push(...S)};!s&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}if(!i&&!a)return V(e)&&o.set(e,it),it;if(A(i))for(let p=0;pe==="_"||e==="_ctx"||e==="$stable",po=e=>A(e)?e.map(Te):[Te(e)],dr=(e,t,s)=>{if(t._n)return t;const o=pt((...n)=>po(t(...n)),s);return o._c=!1,o},Un=(e,t,s)=>{const o=e._ctx;for(const n in e){if(co(n))continue;const i=e[n];if(R(i))t[n]=dr(n,i,o);else if(i!=null){const l=po(i);t[n]=()=>l}}},Bn=(e,t)=>{const s=po(t);e.slots.default=()=>s},Wn=(e,t,s)=>{for(const o in t)(s||!co(o))&&(e[o]=t[o])},pr=(e,t,s)=>{const o=e.slots=Fn();if(e.vnode.shapeFlag&32){const n=t._;n?(Wn(o,t,s),s&&Mo(o,"_",n,!0)):Un(t,o)}else t&&Bn(e,t)},fr=(e,t,s)=>{const{vnode:o,slots:n}=e;let i=!0,l=U;if(o.shapeFlag&32){const r=t._;r?s&&r===1?i=!1:Wn(n,t,s):(i=!t.$stable,Un(t,n)),l=t}else t&&(Bn(e,t),l={default:1});if(i)for(const r in n)!co(r)&&l[r]==null&&delete n[r]},ue=vr;function ur(e){return hr(e)}function hr(e,t){const s=Zt();s.__VUE__=!0;const{insert:o,remove:n,patchProp:i,createElement:l,createText:r,createComment:a,setText:f,setElementText:p,parentNode:h,nextSibling:y,setScopeId:S=$e,insertStaticContent:j}=e,N=(c,d,u,m=null,v=null,g=null,$=void 0,w=null,x=!!d.dynamicChildren)=>{if(c===d)return;c&&!Pt(c,d)&&(m=Ms(c),Pe(c,v,g,!0),c=null),d.patchFlag===-2&&(x=!1,d.dynamicChildren=null);const{type:b,ref:T,shapeFlag:_}=d;switch(b){case vs:ee(c,d,u,m);break;case Ce:Y(c,d,u,m);break;case uo:c==null&&H(d,u,m,$);break;case X:Ts(c,d,u,m,v,g,$,w,x);break;default:_&1?se(c,d,u,m,v,g,$,w,x):_&6?Os(c,d,u,m,v,g,$,w,x):(_&64||_&128)&&b.process(c,d,u,m,v,g,$,w,x,Kt)}T!=null&&v?Ct(T,c&&c.ref,g,d||c,!d):T==null&&c&&c.ref!=null&&Ct(c.ref,null,g,c,!0)},ee=(c,d,u,m)=>{if(c==null)o(d.el=r(d.children),u,m);else{const v=d.el=c.el;d.children!==c.children&&f(v,d.children)}},Y=(c,d,u,m)=>{c==null?o(d.el=a(d.children||""),u,m):d.el=c.el},H=(c,d,u,m)=>{[c.el,c.anchor]=j(c.children,d,u,m,c.el,c.anchor)},z=({el:c,anchor:d},u,m)=>{let v;for(;c&&c!==d;)v=y(c),o(c,u,m),c=v;o(d,u,m)},O=({el:c,anchor:d})=>{let u;for(;c&&c!==d;)u=y(c),n(c),c=u;n(d)},se=(c,d,u,m,v,g,$,w,x)=>{if(d.type==="svg"?$="svg":d.type==="math"&&($="mathml"),c==null)Ae(d,u,m,v,g,$,w,x);else{const b=c.el&&c.el._isVueCE?c.el:null;try{b&&b._beginPatch(),Cs(c,d,v,g,$,w,x)}finally{b&&b._endPatch()}}},Ae=(c,d,u,m,v,g,$,w)=>{let x,b;const{props:T,shapeFlag:_,transition:C,dirs:P}=c;if(x=c.el=l(c.type,g,T&&T.is,T),_&8?p(x,c.children):_&16&&Ye(c.children,x,null,m,v,fo(c,g),$,w),P&&et(c,null,m,"created"),Me(x,c,c.scopeId,$,m),T){for(const B in T)B!=="value"&&!mt(B)&&i(x,B,null,T[B],g,m);"value"in T&&i(x,"value",null,T.value,g),(b=T.onVnodeBeforeMount)&&Oe(b,m,c)}P&&et(c,null,m,"beforeMount");const I=gr(v,C);I&&C.beforeEnter(x),o(x,d,u),((b=T&&T.onVnodeMounted)||I||P)&&ue(()=>{try{b&&Oe(b,m,c),I&&C.enter(x),P&&et(c,null,m,"mounted")}finally{}},v)},Me=(c,d,u,m,v)=>{if(u&&S(c,u),m)for(let g=0;g{for(let b=x;b{const w=d.el=c.el;let{patchFlag:x,dynamicChildren:b,dirs:T}=d;x|=c.patchFlag&16;const _=c.props||U,C=d.props||U;let P;if(u&&tt(u,!1),(P=C.onVnodeBeforeUpdate)&&Oe(P,u,d,c),T&&et(d,c,u,"beforeUpdate"),u&&tt(u,!0),b&&(!c.dynamicChildren||c.dynamicChildren.length!==b.length)&&(x=0,$=!1,b=null),(_.innerHTML&&C.innerHTML==null||_.textContent&&C.textContent==null)&&p(w,""),b?st(c.dynamicChildren,b,w,u,m,fo(d,v),g):$||q(c,d,w,null,u,m,fo(d,v),g,!1),x>0){if(x&16)Vt(w,_,C,u,v);else if(x&2&&_.class!==C.class&&i(w,"class",null,C.class,v),x&4&&i(w,"style",_.style,C.style,v),x&8){const I=d.dynamicProps;for(let B=0;B{P&&Oe(P,u,d,c),T&&et(d,c,u,"updated")},m)},st=(c,d,u,m,v,g,$)=>{for(let w=0;w{if(d!==u){if(d!==U)for(const g in d)!mt(g)&&!(g in u)&&i(c,g,d[g],null,v,m);for(const g in u){if(mt(g))continue;const $=u[g],w=d[g];$!==w&&g!=="value"&&i(c,g,w,$,v,m)}"value"in u&&i(c,"value",d.value,u.value,v)}},Ts=(c,d,u,m,v,g,$,w,x)=>{const b=d.el=c?c.el:r(""),T=d.anchor=c?c.anchor:r("");let{patchFlag:_,dynamicChildren:C,slotScopeIds:P}=d;P&&(w=w?w.concat(P):P),c==null?(o(b,u,m),o(T,u,m),Ye(d.children||[],u,T,v,g,$,w,x)):_>0&&_&64&&C&&c.dynamicChildren&&c.dynamicChildren.length===C.length?(st(c.dynamicChildren,C,u,v,g,$,w),(d.key!=null||v&&d===v.subTree)&&qn(c,d,!0)):q(c,d,u,T,v,g,$,w,x)},Os=(c,d,u,m,v,g,$,w,x)=>{d.slotScopeIds=w,c==null?d.shapeFlag&512?v.ctx.activate(d,u,m,$,x):Eo(d,u,m,v,g,$,x):Ai(c,d,x)},Eo=(c,d,u,m,v,g,$)=>{const w=c.component=_r(c,m,v);if(oo(c)&&(w.ctx.renderer=Kt),Sr(w,!1,$),w.asyncDep){if(v&&v.registerDep(w,fe,$),!c.el){const x=w.subTree=ve(Ce);Y(null,x,d,u),c.placeholder=x.el}}else fe(w,c,d,u,v,g,$)},Ai=(c,d,u)=>{const m=d.component=c.component;if(ir(c,d,u))if(m.asyncDep&&!m.asyncResolved){J(m,d,u);return}else m.next=d,m.update();else d.el=c.el,m.vnode=d},fe=(c,d,u,m,v,g,$)=>{const w=()=>{if(c.isMounted){let{next:_,bu:C,u:P,parent:I,vnode:B}=c;{const Ne=Gn(c);if(Ne){_&&(_.el=B.el,J(c,_,$)),Ne.asyncDep.then(()=>{ue(()=>{c.isUnmounted||b()},v)});return}}let K=_,te;tt(c,!1),_?(_.el=B.el,J(c,_,$)):_=B,C&&Jt(C),(te=_.props&&_.props.onVnodeBeforeUpdate)&&Oe(te,I,_,B),tt(c,!0);const le=Nn(c),Re=c.subTree;c.subTree=le,N(Re,le,h(Re.el),Ms(Re),c,v,g),_.el=le.el,K===null&&lr(c,le.el),P&&ue(P,v),(te=_.props&&_.props.onVnodeUpdated)&&ue(()=>Oe(te,I,_,B),v)}else{let _;const{el:C,props:P}=d,{bm:I,m:B,parent:K,root:te,type:le}=c,Re=ft(d);tt(c,!1),I&&Jt(I),!Re&&(_=P&&P.onVnodeBeforeMount)&&Oe(_,K,d),tt(c,!0);{te.ce&&te.ce._hasShadowRoot()&&te.ce._injectChildStyle(le,c.parent?c.parent.type:void 0);const Ne=c.subTree=Nn(c);N(null,Ne,u,m,c,v,g),d.el=Ne.el}if(B&&ue(B,v),!Re&&(_=P&&P.onVnodeMounted)){const Ne=d;ue(()=>Oe(_,K,Ne),v)}(d.shapeFlag&256||K&&ft(K.vnode)&&K.vnode.shapeFlag&256)&&c.a&&ue(c.a,v),c.isMounted=!0,d=u=m=null}};c.scope.on();const x=c.effect=new Fo(w);c.scope.off();const b=c.update=x.run.bind(x),T=c.job=x.runIfDirty.bind(x);T.i=c,T.id=c.uid,x.scheduler=()=>Qs(T),tt(c,!0),b()},J=(c,d,u)=>{d.component=c;const m=c.vnode.props;c.vnode=d,c.next=null,ar(c,d.props,m,u),fr(c,d.children,u),Se(),pn(c),Le()},q=(c,d,u,m,v,g,$,w,x=!1)=>{const b=c&&c.children,T=c?c.shapeFlag:0,_=d.children,{patchFlag:C,shapeFlag:P}=d;if(C>0){if(C&128){As(b,_,u,m,v,g,$,w,x);return}else if(C&256){ot(b,_,u,m,v,g,$,w,x);return}}P&8?(T&16&&zt(b,v,g),_!==b&&p(u,_)):T&16?P&16?As(b,_,u,m,v,g,$,w,x):zt(b,v,g,!0):(T&8&&p(u,""),P&16&&Ye(_,u,m,v,g,$,w,x))},ot=(c,d,u,m,v,g,$,w,x)=>{c=c||it,d=d||it;const b=c.length,T=d.length,_=Math.min(b,T);let C;for(C=0;C<_;C++){const P=d[C]=x?Be(d[C]):Te(d[C]);N(c[C],P,u,null,v,g,$,w,x)}b>T?zt(c,v,g,!0,!1,_):Ye(d,u,m,v,g,$,w,x,_)},As=(c,d,u,m,v,g,$,w,x)=>{let b=0;const T=d.length;let _=c.length-1,C=T-1;for(;b<=_&&b<=C;){const P=c[b],I=d[b]=x?Be(d[b]):Te(d[b]);if(Pt(P,I))N(P,I,u,null,v,g,$,w,x);else break;b++}for(;b<=_&&b<=C;){const P=c[_],I=d[C]=x?Be(d[C]):Te(d[C]);if(Pt(P,I))N(P,I,u,null,v,g,$,w,x);else break;_--,C--}if(b>_){if(b<=C){const P=C+1,I=PC)for(;b<=_;)Pe(c[b],v,g,!0),b++;else{const P=b,I=b,B=new Map;for(b=I;b<=C;b++){const ge=d[b]=x?Be(d[b]):Te(d[b]);ge.key!=null&&B.set(ge.key,b)}let K,te=0;const le=C-I+1;let Re=!1,Ne=0;const Ut=new Array(le);for(b=0;b=le){Pe(ge,v,g,!0);continue}let Ie;if(ge.key!=null)Ie=B.get(ge.key);else for(K=I;K<=C;K++)if(Ut[K-I]===0&&Pt(ge,d[K])){Ie=K;break}Ie===void 0?Pe(ge,v,g,!0):(Ut[Ie-I]=b+1,Ie>=Ne?Ne=Ie:Re=!0,N(ge,d[Ie],u,null,v,g,$,w,x),te++)}const Ri=Re?br(Ut):it;for(K=Ri.length-1,b=le-1;b>=0;b--){const ge=I+b,Ie=d[ge],Ni=d[ge+1],Ii=ge+1{const{el:g,type:$,transition:w,children:x,shapeFlag:b}=c;if(b&6){nt(c.component.subTree,d,u,m);return}if(b&128){c.suspense.move(d,u,m);return}if(b&64){$.move(c,d,u,Kt);return}if($===X){o(g,d,u);for(let _=0;_w.enter(g),v));else{const{leave:_,delayLeave:C,afterLeave:P}=w,I=()=>{c.ctx.isUnmounted?n(g):o(g,d,u)},B=()=>{const K=g._isLeaving||!!g[to];g._isLeaving&&g[to](!0),w.persisted&&!K?I():_(g,()=>{I(),P&&P()})};C?C(g,I,B):B()}else o(g,d,u)},Pe=(c,d,u,m=!1,v=!1)=>{const{type:g,props:$,ref:w,children:x,dynamicChildren:b,shapeFlag:T,patchFlag:_,dirs:C,cacheIndex:P,memo:I}=c;if(_===-2&&(v=!1),w!=null&&(Se(),Ct(w,null,u,c,!0),Le()),P!=null&&(d.renderCache[P]=void 0),T&256){d.ctx.deactivate(c);return}const B=T&1&&C,K=!ft(c);let te;if(K&&(te=$&&$.onVnodeBeforeUnmount)&&Oe(te,d,c),T&6)jd(c.component,u,m);else{if(T&128){c.suspense.unmount(u,m);return}B&&et(c,null,d,"beforeUnmount"),T&64?c.type.remove(c,d,u,Kt,m):b&&!b.hasOnce&&(g!==X||_>0&&_&64)?zt(b,d,u,!1,!0):(g===X&&_&384||!v&&T&16)&&zt(x,d,u),m&&Mi(c)}const le=I!=null&&P==null;(K&&(te=$&&$.onVnodeUnmounted)||B||le)&&ue(()=>{te&&Oe(te,d,c),B&&et(c,null,d,"unmounted"),le&&(c.el=null)},u)},Mi=c=>{const{type:d,el:u,anchor:m,transition:v}=c;if(d===X){Fd(u,m);return}if(d===uo){O(c);return}const g=()=>{n(u),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(c.shapeFlag&1&&v&&!v.persisted){const{leave:$,delayLeave:w}=v,x=()=>$(u,g);w?w(c.el,g,x):x()}else g()},Fd=(c,d)=>{let u;for(;c!==d;)u=y(c),n(c),c=u;n(d)},jd=(c,d,u)=>{const{bum:m,scope:v,job:g,subTree:$,um:w,m:x,a:b}=c;Xn(x),Xn(b),m&&Jt(m),v.stop(),g&&(g.flags|=8,Pe($,c,d,u)),w&&ue(w,d),ue(()=>{c.isUnmounted=!0},d)},zt=(c,d,u,m=!1,v=!1,g=0)=>{for(let $=g;${if(c.shapeFlag&6)return Ms(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const d=y(c.anchor||c.el),u=d&&d[Ol];return u?y(u):d};let ko=!1;const Pi=(c,d,u)=>{let m;c==null?d._vnode&&(Pe(d._vnode,null,null,!0),m=d._vnode.component):N(d._vnode||null,c,d,null,null,null,u),d._vnode=c,ko||(ko=!0,pn(m),fn(),ko=!1)},Kt={p:N,um:Pe,m:nt,r:Mi,mt:Eo,mc:Ye,pc:q,pbc:st,n:Ms,o:e};return{render:Pi,hydrate:void 0,createApp:Ql(Pi)}}function fo({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 tt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function gr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function qn(e,t,s=!1){const o=e.children,n=t.children;if(A(o)&&A(n))for(let i=0;i>1,e[s[r]]0&&(t[o]=s[i-1]),s[i]=o)}}for(i=s.length,l=s[i-1];i-- >0;)s[i]=l,l=t[l];return s}function Gn(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Gn(t)}function Xn(e){if(e)for(let t=0;te.__isSuspense;function vr(e,t){t&&t.pendingBranch?A(e)?t.effects.push(...e):t.effects.push(e):Ll(e)}const X=Symbol.for("v-fgt"),vs=Symbol.for("v-txt"),Ce=Symbol.for("v-cmt"),uo=Symbol.for("v-stc"),Ue=[];let he=null;function E(e=!1){Ue.push(he=e?null:[])}function ho(){Ue.pop(),he=Ue[Ue.length-1]||null}let Mt=1;function Zn(e,t=!1){Mt+=e,e<0&&he&&t&&(he.hasOnce=!0)}function Qn(e){return e.dynamicChildren=Mt>0?he||it:null,ho(),Mt>0&&he&&he.push(e),e}function k(e,t,s,o,n,i){return Qn(L(e,t,s,o,n,i,!0))}function ms(e,t,s,o,n){return Qn(ve(e,t,s,o,n,!0))}function go(e){return e?e.__v_isVNode===!0:!1}function Pt(e,t){return e.type===t.type&&e.key===t.key}const ei=({key:e})=>e??null,xs=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?G(e)||ae(e)||R(e)?{i:ie,r:e,k:t,f:!!s}:e:null);function L(e,t=null,s=null,o=0,n=null,i=e===X?0:1,l=!1,r=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ei(t),ref:t&&xs(t),scopeId:hn,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:i,patchFlag:o,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:ie};return r?(ys(a,s),i&128&&e.normalize(a)):s&&(a.shapeFlag|=G(s)?8:16),Mt>0&&!l&&he&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&he.push(a),a}const ve=mr;function mr(e,t=null,s=null,o=0,n=null,i=!1){if((!e||e===Ul)&&(e=Ce),go(e)){const r=ht(e,t,!0);return s&&ys(r,s),Mt>0&&!i&&he&&(r.shapeFlag&6?he[he.indexOf(e)]=r:he.push(r)),r.patchFlag=-2,r}if(Or(e)&&(e=e.__vccOpts),t){t=xr(t);let{class:r,style:a}=t;r&&!G(r)&&(t.class=_e(r)),V(a)&&(Js(a)&&!A(a)&&(a=Z({},a)),t.style=xt(a))}const l=G(e)?1:Jn(e)?128:ps(e)?64:V(e)?4:R(e)?2:0;return L(e,t,s,o,n,l,i,!0)}function xr(e){return e?Js(e)||jn(e)?Z({},e):e:null}function ht(e,t,s=!1,o=!1){const{props:n,ref:i,patchFlag:l,children:r,transition:a}=e,f=t?yr(n||{},t):n,p={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&ei(f),ref:t&&t.ref?s&&i?A(i)?i.concat(xs(t)):[i,xs(t)]:xs(t):i,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!==X?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ht(e.ssContent),ssFallback:e.ssFallback&&ht(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&o&&so(p,a.clone(p)),p}function gt(e=" ",t=0){return ve(vs,null,e,t)}function Q(e="",t=!1){return t?(E(),ms(Ce,null,e)):ve(Ce,null,e)}function Te(e){return e==null||typeof e=="boolean"?ve(Ce):A(e)?ve(X,null,e.slice()):go(e)?Be(e):ve(vs,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ht(e)}function ys(e,t){let s=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(A(t))s=16;else if(typeof t=="object")if(o&65){const n=t.default;n&&(n._c&&(n._d=!1),ys(e,n()),n._c&&(n._d=!0));return}else{s=32;const n=t._;!n&&!jn(t)?t._ctx=ie:n===3&&ie&&(ie.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(R(t)){if(o&65){ys(e,{default:t});return}t={default:t,_ctx:ie},s=32}else t=String(t),o&64?(s=16,t=[gt(t)]):s=8;e.children=t,e.shapeFlag|=s}function yr(...e){const t={};for(let s=0;sce||ie;let ws,Rt;{const e=Zt(),t=(s,o)=>{let n;return(n=e[s])||(n=e[s]=[]),n.push(o),i=>{n.length>1?n.forEach(l=>l(i)):n[0](i)}};ws=t("__VUE_INSTANCE_SETTERS__",s=>ce=s),Rt=t("__VUE_SSR_SETTERS__",s=>It=s)}const Nt=e=>{const t=ce;return ws(e),e.scope.on(),()=>{e.scope.off(),ws(t)}},si=()=>{ce&&ce.scope.off(),ws(null)};function oi(e){return e.vnode.shapeFlag&4}let It=!1;function Sr(e,t=!1,s=!1){t&&Rt(t);const{props:o,children:n}=e.vnode,i=oi(e);rr(e,o,i,t),pr(e,n,s||t);const l=i?Lr(e,t):void 0;return t&&Rt(!1),l}function Lr(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Wl);const{setup:o}=s;if(o){Se();const n=e.setupContext=o.length>1?kr(e):null,i=Nt(e),l=at(o,e,0,[e.props,n]),r=Oo(l);if(Le(),i(),(r||e.sp)&&!ft(e)&&mn(e),r){if(l.then(si,si),t)return l.then(a=>{Rt(!0);try{ni(e,a,t)}finally{Rt(!1)}}).catch(a=>{rs(a,e,0)});e.asyncDep=l}else ni(e,l)}else ii(e)}function ni(e,t,s){R(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:V(t)&&(e.setupState=ln(t)),ii(e)}function ii(e,t,s){const o=e.type;e.render||(e.render=o.render||$e);{const n=Nt(e);Se();try{ql(e)}finally{Le(),n()}}}const Er={get(e,t){return re(e,"get",""),e[t]}};function kr(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Er),slots:e.slots,emit:e.emit,expose:t}}function $s(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ln(ul(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Ot)return Ot[s](e)},has(t,s){return s in t||s in Ot}})):e.proxy}const Cr=/(?:^|[-_])\w/g,Tr=e=>e.replace(Cr,t=>t.toUpperCase()).replace(/[-_]/g,"");function li(e,t=!0){return R(e)?e.displayName||e.name:e.name||t&&e.__name}function ri(e,t,s=!1){let o=li(t);if(!o&&t.__file){const n=t.__file.match(/([^/\\]+)\.\w+$/);n&&(o=n[1])}if(!o&&e){const n=i=>{for(const l in i)if(i[l]===t)return l};o=n(e.components)||e.parent&&n(e.parent.type.components)||n(e.appContext.components)}return o?Tr(o):s?"App":"Anonymous"}function Or(e){return R(e)&&"__vccOpts"in e}const Ar=(e,t)=>bl(e,t,It),Mr="3.5.42";/** +**/const Lt=[];let Zs=!1;function Kd(e,...t){if(Zs)return;Zs=!0,Se();const s=Lt.length?Lt[Lt.length-1].component:null,o=s&&s.appContext.config.warnHandler,n=xl();if(o)at(o,s,11,[e+t.map(l=>{var i,r;return(r=(i=l.toString)==null?void 0:i.call(l))!=null?r:JSON.stringify(l)}).join(""),s&&s.proxy,n.map(({vnode:l})=>`at <${ai(s,l.type)}>`).join(` +`),n]);else{const l=[`[Vue warn]: ${e}`,...t];n.length&&l.push(` +`,...yl(n)),console.warn(...l)}Le(),Zs=!1}function xl(){let e=Lt[Lt.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 o=e.component&&e.component.parent;e=o&&o.vnode}return t}function yl(e){const t=[];return e.forEach((s,o)=>{t.push(...o===0?[]:[` +`],...wl(s))}),t}function wl({vnode:e,recurseCount:t}){const s=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,n=` at <${ai(e.component,e.type,o)}`,l=">"+s;return e.props?[n,...$l(e.props),l]:[n+l]}function $l(e){const t=[],s=Object.keys(e);return s.slice(0,3).forEach(o=>{t.push(...an(o,e[o]))}),s.length>3&&t.push(" ..."),t}function an(e,t,s){return G(t)?(t=JSON.stringify(t),s?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?s?t:[`${e}=${t}`]:ae(t)?(t=an(e,F(t.value),!0),s?t:[`${e}=Ref<`,t,">"]):R(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=F(t),s?t:[`${e}=`,t])}function at(e,t,s,o){try{return o?e(...o):e()}catch(n){rs(n,t,s)}}function we(e,t,s,o){if(R(e)){const n=at(e,t,s,o);return n&&Ao(n)&&n.catch(l=>{rs(l,t,s)}),n}if(A(e)){const n=[];for(let l=0;l>>1,n=de[o],l=Et(n);l=Et(s)?de.push(e):de.splice(Sl(t),0,e),e.flags|=1,pn()}}function pn(){as||(as=cn.then(hn))}function Ll(e){if(!A(e))Xe&&e.id===-1?Xe.splice(dt+1,0,e):e.flags&1||(ct.push(e),e.flags|=1);else for(let t=0;tEt(s)-Et(o));if(ct.length=0,Xe){for(let s=0;se.id==null?e.flags&2?-1:1/0:e.id;function hn(e){try{for(ke=0;ke{o._d&&Qn(-1);const l=cs(t),i=Ue.length;let r;try{r=e(...n)}finally{for(let a=Ue.length;a>i;a--)ho();cs(l),o._d&&Qn(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function ds(e,t){if(ie===null)return e;const s=$s(ie),o=e.dirs||(e.dirs=[]);for(let n=0;n1)return s&&R(t)?t.call(o&&o.proxy):t}}const kl=Symbol.for("v-scx"),Cl=()=>kt(kl);function eo(e,t,s){return bn(e,t,s)}function bn(e,t,s=U){const{immediate:o,deep:n,flush:l,once:i}=s,r=Z({},s),a=t&&o||!t&&l!=="post";let f;if(It){if(l==="sync"){const S=Cl();f=S.__watcherHandles||(S.__watcherHandles=[])}else if(!a){const S=()=>{};return S.stop=$e,S.resume=$e,S.pause=$e,S}}const p=ce;r.call=(S,j,N)=>we(S,p,j,N);let h=!1;l==="post"?r.scheduler=S=>{ue(S,p&&p.suspense)}:l!=="sync"&&(h=!0,r.scheduler=(S,j)=>{j?S():Qs(S)}),r.augmentJob=S=>{t&&(S.flags|=4),h&&(S.flags|=2,p&&(S.id=p.uid,S.i=p))};const y=ml(e,t,r);return It&&(f?f.push(y):a&&y()),y}function Tl(e,t,s){const o=this.proxy,n=G(e)?e.includes(".")?vn(o,e):()=>o[e]:e.bind(o,o);let l;R(t)?l=t:(l=t.handler,s=t);const i=Nt(this),r=bn(n,l.bind(o),s);return i(),r}function vn(e,t){const s=t.split(".");return()=>{let o=e;for(let n=0;ne.__isTeleport,to=Symbol("_leaveCb");function Al(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Ce){t=s;break}}return t}function mn(e){if(!oo(e))return ps(e.type)&&e.children?Al(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&&R(s.default))return s.default()}}function so(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;so(ps(s.type)&&mn(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 fs(e,t){return R(e)?Z({name:e.name},t,{setup:e}):e}function xn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function yn(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const us=new WeakMap;function Ct(e,t,s,o,n=!1){if(A(e)){e.forEach((N,ee)=>Ct(N,t&&(A(t)?t[ee]:t),s,o,n));return}if(ft(o)&&!n){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Ct(e,t,s,o.component.subTree);return}const l=o.shapeFlag&4?$s(o.component):o.el,i=n?null:l,{i:r,r:a}=e,f=t&&t.r,p=r.refs===U?r.refs={}:r.refs,h=r.setupState,y=F(h),S=h===U?To:N=>yn(p,N)?!1:D(y,N),j=(N,ee)=>!(ee&&yn(p,ee));if(f!=null&&f!==a){if(wn(t),G(f))p[f]=null,S(f)&&(h[f]=null);else if(ae(f)){const N=t;j(f,N.k)&&(f.value=null),N.k&&(p[N.k]=null)}}if(R(a))at(a,r,12,[i,p]);else{const N=G(a),ee=ae(a);if(N||ee){const Y=()=>{if(e.f){const H=N?S(a)?h[a]:p[a]:j()||!e.k?a.value:p[e.k];if(n)A(H)&&Rs(H,l);else if(A(H))H.includes(l)||H.push(l);else if(N)p[a]=[l],S(a)&&(h[a]=p[a]);else{const z=[l];j(a,e.k)&&(a.value=z),e.k&&(p[e.k]=z)}}else N?(p[a]=i,S(a)&&(h[a]=i)):ee&&(j(a,e.k)&&(a.value=i),e.k&&(p[e.k]=i))};if(i){const H=()=>{Y(),us.delete(e)};H.id=-1,us.set(e,H),ue(H,s)}else wn(e),Y()}}}function wn(e){const t=us.get(e);t&&(t.flags|=8,us.delete(e))}Zt().requestIdleCallback,Zt().cancelIdleCallback;const ft=e=>!!e.type.__asyncLoader,oo=e=>e.type.__isKeepAlive;function Ml(e,t){$n(e,"a",t)}function Pl(e,t){$n(e,"da",t)}function $n(e,t,s=ce){const o=e.__wdc||(e.__wdc=()=>{let n=s;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(hs(t,o,s),s){let n=s.parent;for(;n&&n.parent;)oo(n.parent.vnode)&&Rl(o,t,s,n),n=n.parent}}function Rl(e,t,s,o){const n=hs(t,e,o,!0);Sn(()=>{Rs(o[t],n)},s)}function hs(e,t,s=ce,o=!1){if(s){const n=s[e]||(s[e]=[]),l=t.__weh||(t.__weh=(...i)=>{Se();const r=Nt(s),a=we(t,s,e,i);return r(),Le(),a});return o?n.unshift(l):n.push(l),l}}const ze=e=>(t,s=ce)=>{(!It||e==="sp")&&hs(e,(...o)=>t(...o),s)},Nl=ze("bm"),_n=ze("m"),Il=ze("bu"),Hl=ze("u"),Dl=ze("bum"),Sn=ze("um"),Fl=ze("sp"),jl=ze("rtg"),Vl=ze("rtc");function zl(e,t=ce){hs("ec",e,t)}const Kl="components";function Ln(e,t){return Bl(Kl,e,!0,t)||e}const Ul=Symbol.for("v-ndc");function Bl(e,t,s=!0,o=!1){const n=ie||ce;if(n){const l=n.type;{const r=ri(l,!1);if(r&&(r===t||r===oe(t)||r===Yt(oe(t))))return l}const i=En(n[e]||l[e],t)||En(n.appContext[e],t);return!i&&o?l:i}}function En(e,t){return e&&(e[t]||e[oe(t)]||e[Yt(oe(t))])}function Ke(e,t,s,o){let n;const l=s,i=A(e);if(i||G(e)){const r=i&&Ze(e);let a=!1,f=!1;r&&(a=!ye(e),f=Ge(e),e=es(e)),n=new Array(e.length);for(let p=0,h=e.length;pt(r,a,void 0,l));else{const r=Object.keys(e);n=new Array(r.length);for(let a=0,f=r.length;a0;return t!=="default"&&(f.name=t),E(),ms(X,null,[ve("slot",f,o)],p?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const r=Ue.length;E();let a;try{const f=i&&kn(i(s)),p=s.key||l||f&&f.key;a=ms(X,{key:(p&&!me(p)?p:`_${t}`)+(!f&&o?"_fb":"")},f||(o?o():[]),f&&e._===1?64:-2)}catch(f){for(let p=Ue.length;p>r;p--)ho();throw f}finally{i&&i._c&&(i._d=!0)}return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function kn(e){return e.some(t=>go(t)?!(t.type===Ce||t.type===X&&!kn(t.children)):!0)?e:null}const no=e=>e?ni(e)?$s(e):no(e.parent):null,Ot=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=>no(e.parent),$root:e=>no(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>An(e),$forceUpdate:e=>e.f||(e.f=()=>{Qs(e.update)}),$nextTick:e=>e.n||(e.n=dn.bind(e.proxy)),$watch:e=>Tl.bind(e)}),io=(e,t)=>e!==U&&!e.__isScriptSetup&&D(e,t),Wl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:o,data:n,props:l,accessCache:i,type:r,appContext:a}=e;if(t[0]!=="$"){const y=i[t];if(y!==void 0)switch(y){case 1:return o[t];case 2:return n[t];case 4:return s[t];case 3:return l[t]}else{if(io(o,t))return i[t]=1,o[t];if(n!==U&&D(n,t))return i[t]=2,n[t];if(D(l,t))return i[t]=3,l[t];if(s!==U&&D(s,t))return i[t]=4,s[t];lo&&(i[t]=0)}}const f=Ot[t];let p,h;if(f)return t==="$attrs"&&re(e.attrs,"get",""),f(e);if((p=r.__cssModules)&&(p=p[t]))return p;if(s!==U&&D(s,t))return i[t]=4,s[t];if(h=a.config.globalProperties,D(h,t))return h[t]},set({_:e},t,s){const{data:o,setupState:n,ctx:l}=e;return io(n,t)?(n[t]=s,!0):o!==U&&D(o,t)?(o[t]=s,!0):D(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(l[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:o,appContext:n,props:l,type:i}},r){let a;return!!(s[r]||e!==U&&r[0]!=="$"&&D(e,r)||io(t,r)||D(l,r)||D(o,r)||D(Ot,r)||D(n.config.globalProperties,r)||(a=i.__cssModules)&&a[r])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:D(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function Cn(e){return A(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let lo=!0;function ql(e){const t=An(e),s=e.proxy,o=e.ctx;lo=!1,t.beforeCreate&&Tn(t.beforeCreate,e,"bc");const{data:n,computed:l,methods:i,watch:r,provide:a,inject:f,created:p,beforeMount:h,mounted:y,beforeUpdate:S,updated:j,activated:N,deactivated:ee,beforeDestroy:Y,beforeUnmount:H,destroyed:z,unmounted:O,render:se,renderTracked:Ae,renderTriggered:Me,errorCaptured:Ye,serverPrefetch:Cs,expose:st,inheritAttrs:Vt,components:Ts,directives:Os,filters:ko}=t;if(f&&Gl(f,o,null),i)for(const J in i){const q=i[J];R(q)&&(o[J]=q.bind(s))}if(n){const J=n.call(s,s);V(J)&&(e.data=Xs(J))}if(lo=!0,l)for(const J in l){const q=l[J],ot=R(q)?q.bind(s,s):R(q.get)?q.get.bind(s,s):$e,As=!R(q)&&R(q.set)?q.set.bind(s):$e,nt=Ar({get:ot,set:As});Object.defineProperty(o,J,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Pe=>nt.value=Pe})}if(r)for(const J in r)On(r[J],o,s,J);if(a){const J=R(a)?a.call(s):a;Reflect.ownKeys(J).forEach(q=>{El(q,J[q])})}p&&Tn(p,e,"c");function fe(J,q){A(q)?q.forEach(ot=>J(ot.bind(s))):q&&J(q.bind(s))}if(fe(Nl,h),fe(_n,y),fe(Il,S),fe(Hl,j),fe(Ml,N),fe(Pl,ee),fe(zl,Ye),fe(Vl,Ae),fe(jl,Me),fe(Dl,H),fe(Sn,O),fe(Fl,Cs),A(st))if(st.length){const J=e.exposed||(e.exposed={});st.forEach(q=>{Object.defineProperty(J,q,{get:()=>s[q],set:ot=>s[q]=ot,enumerable:!0})})}else e.exposed||(e.exposed={});se&&e.render===$e&&(e.render=se),Vt!=null&&(e.inheritAttrs=Vt),Ts&&(e.components=Ts),Os&&(e.directives=Os),Cs&&xn(e)}function Gl(e,t,s=$e){A(e)&&(e=ro(e));for(const o in e){const n=e[o];let l;V(n)?"default"in n?l=kt(n.from||o,n.default,!0):l=kt(n.from||o):l=kt(n),ae(l)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>l.value,set:i=>l.value=i}):t[o]=l}}function Tn(e,t,s){we(A(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,s)}function On(e,t,s,o){let n=o.includes(".")?vn(s,o):()=>s[o];if(G(e)){const l=t[e];R(l)&&eo(n,l)}else if(R(e))eo(n,e.bind(s));else if(V(e))if(A(e))e.forEach(l=>On(l,t,s,o));else{const l=R(e.handler)?e.handler.bind(s):t[e.handler];R(l)&&eo(n,l,e)}}function An(e){const t=e.type,{mixins:s,extends:o}=t,{mixins:n,optionsCache:l,config:{optionMergeStrategies:i}}=e.appContext,r=l.get(t);let a;return r?a=r:!n.length&&!s&&!o?a=t:(a={},n.length&&n.forEach(f=>gs(a,f,i,!0)),gs(a,t,i)),V(t)&&l.set(t,a),a}function gs(e,t,s,o=!1){const{mixins:n,extends:l}=t;l&&gs(e,l,s,!0),n&&n.forEach(i=>gs(e,i,s,!0));for(const i in t)if(!(o&&i==="expose")){const r=Xl[i]||s&&s[i];e[i]=r?r(e[i],t[i]):t[i]}return e}const Xl={data:Mn,props:Pn,emits:Pn,methods:At,computed:At,beforeCreate:pe,created:pe,beforeMount:pe,mounted:pe,beforeUpdate:pe,updated:pe,beforeDestroy:pe,beforeUnmount:pe,destroyed:pe,unmounted:pe,activated:pe,deactivated:pe,errorCaptured:pe,serverPrefetch:pe,components:At,directives:At,watch:Jl,provide:Mn,inject:Yl};function Mn(e,t){return t?e?function(){return Z(R(e)?e.call(this,this):e,R(t)?t.call(this,this):t)}:t:e}function Yl(e,t){return At(ro(e),ro(t))}function ro(e){if(A(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${oe(t)}Modifiers`]||e[`${be(t)}Modifiers`];function tr(e,t,...s){if(e.isUnmounted)return;const o=e.vnode.props||U;let n=s;const l=t.startsWith("update:"),i=l&&er(o,t.slice(7));i&&(i.trim&&(n=s.map(p=>G(p)?p.trim():p)),i.number&&(n=n.map(Hs)));let r,a=o[r=Is(t)]||o[r=Is(oe(t))];!a&&l&&(a=o[r=Is(be(t))]),a&&we(a,e,6,n);const f=o[r+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,we(f,e,6,n)}}const sr=new WeakMap;function Nn(e,t,s=!1){const o=s?sr:t.emitsCache,n=o.get(e);if(n!==void 0)return n;const l=e.emits;let i={},r=!1;if(!R(e)){const a=f=>{const p=Nn(f,t,!0);p&&(r=!0,Z(i,p))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!l&&!r?(V(e)&&o.set(e,null),null):(A(l)?l.forEach(a=>i[a]=null):Z(i,l),V(e)&&o.set(e,i),i)}function bs(e,t){return!e||!Bt(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),D(e,t[0].toLowerCase()+t.slice(1))||D(e,be(t))||D(e,t))}function Ud(){}function In(e){const{type:t,vnode:s,proxy:o,withProxy:n,propsOptions:[l],slots:i,attrs:r,emit:a,render:f,renderCache:p,props:h,data:y,setupState:S,ctx:j,inheritAttrs:N}=e,ee=cs(e);let Y,H;try{if(s.shapeFlag&4){const O=n||o,se=O;Y=Te(f.call(se,O,p,h,S,y,j)),H=r}else{const O=t;Y=Te(O.length>1?O(h,{attrs:r,slots:i,emit:a}):O(h,null)),H=t.props?r:or(r)}}catch(O){Ue.length=0,rs(O,e,1),Y=ve(Ce)}let z=Y;if(H&&N!==!1){const O=Object.keys(H),{shapeFlag:se}=z;O.length&&se&7&&(l&&O.some(Wt)&&(H=nr(H,l)),z=ht(z,H,!1,!0))}if(s.dirs&&(z=ht(z,null,!1,!0),z.dirs=z.dirs?z.dirs.concat(s.dirs):s.dirs),s.transition){const O=ps(z.type)&&mn(z)||z;so(O,s.transition)}return Y=z,cs(ee),Y}const or=e=>{let t;for(const s in e)(s==="class"||s==="style"||Bt(s))&&((t||(t={}))[s]=e[s]);return t},nr=(e,t)=>{const s={};for(const o in e)(!Wt(o)||!(o.slice(9)in t))&&(s[o]=e[o]);return s};function ir(e,t,s){const{props:o,children:n,component:l}=e,{props:i,children:r,patchFlag:a}=t,f=l.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return o?Hn(o,i,f):!!i;if(a&8){const p=t.dynamicProps;for(let h=0;hObject.create(Fn),Vn=e=>Object.getPrototypeOf(e)===Fn;function rr(e,t,s,o=!1){const n={},l=jn();e.propsDefaults=Object.create(null),zn(e,t,n,l);for(const i in e.propsOptions[0])i in n||(n[i]=void 0);s?e.props=o?n:fl(n):e.type.props?e.props=n:e.props=l,e.attrs=l}function ar(e,t,s,o){const{props:n,attrs:l,vnode:{patchFlag:i}}=e,r=F(n),[a]=e.propsOptions;let f=!1;if((o||i>0)&&!(i&16)){if(i&8){const p=e.vnode.dynamicProps;for(let h=0;h{a=!0;const[y,S]=Kn(h,t,!0);Z(i,y),S&&r.push(...S)};!s&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}if(!l&&!a)return V(e)&&o.set(e,it),it;if(A(l))for(let p=0;pe==="_"||e==="_ctx"||e==="$stable",po=e=>A(e)?e.map(Te):[Te(e)],dr=(e,t,s)=>{if(t._n)return t;const o=pt((...n)=>po(t(...n)),s);return o._c=!1,o},Bn=(e,t,s)=>{const o=e._ctx;for(const n in e){if(co(n))continue;const l=e[n];if(R(l))t[n]=dr(n,l,o);else if(l!=null){const i=po(l);t[n]=()=>i}}},Wn=(e,t)=>{const s=po(t);e.slots.default=()=>s},qn=(e,t,s)=>{for(const o in t)(s||!co(o))&&(e[o]=t[o])},pr=(e,t,s)=>{const o=e.slots=jn();if(e.vnode.shapeFlag&32){const n=t._;n?(qn(o,t,s),s&&Po(o,"_",n,!0)):Bn(t,o)}else t&&Wn(e,t)},fr=(e,t,s)=>{const{vnode:o,slots:n}=e;let l=!0,i=U;if(o.shapeFlag&32){const r=t._;r?s&&r===1?l=!1:qn(n,t,s):(l=!t.$stable,Bn(t,n)),i=t}else t&&(Wn(e,t),i={default:1});if(l)for(const r in n)!co(r)&&i[r]==null&&delete n[r]},ue=vr;function ur(e){return hr(e)}function hr(e,t){const s=Zt();s.__VUE__=!0;const{insert:o,remove:n,patchProp:l,createElement:i,createText:r,createComment:a,setText:f,setElementText:p,parentNode:h,nextSibling:y,setScopeId:S=$e,insertStaticContent:j}=e,N=(c,d,u,m=null,v=null,g=null,$=void 0,w=null,x=!!d.dynamicChildren)=>{if(c===d)return;c&&!Pt(c,d)&&(m=Ms(c),Pe(c,v,g,!0),c=null),d.patchFlag===-2&&(x=!1,d.dynamicChildren=null);const{type:b,ref:T,shapeFlag:_}=d;switch(b){case vs:ee(c,d,u,m);break;case Ce:Y(c,d,u,m);break;case uo:c==null&&H(d,u,m,$);break;case X:Ts(c,d,u,m,v,g,$,w,x);break;default:_&1?se(c,d,u,m,v,g,$,w,x):_&6?Os(c,d,u,m,v,g,$,w,x):(_&64||_&128)&&b.process(c,d,u,m,v,g,$,w,x,Kt)}T!=null&&v?Ct(T,c&&c.ref,g,d||c,!d):T==null&&c&&c.ref!=null&&Ct(c.ref,null,g,c,!0)},ee=(c,d,u,m)=>{if(c==null)o(d.el=r(d.children),u,m);else{const v=d.el=c.el;d.children!==c.children&&f(v,d.children)}},Y=(c,d,u,m)=>{c==null?o(d.el=a(d.children||""),u,m):d.el=c.el},H=(c,d,u,m)=>{[c.el,c.anchor]=j(c.children,d,u,m,c.el,c.anchor)},z=({el:c,anchor:d},u,m)=>{let v;for(;c&&c!==d;)v=y(c),o(c,u,m),c=v;o(d,u,m)},O=({el:c,anchor:d})=>{let u;for(;c&&c!==d;)u=y(c),n(c),c=u;n(d)},se=(c,d,u,m,v,g,$,w,x)=>{if(d.type==="svg"?$="svg":d.type==="math"&&($="mathml"),c==null)Ae(d,u,m,v,g,$,w,x);else{const b=c.el&&c.el._isVueCE?c.el:null;try{b&&b._beginPatch(),Cs(c,d,v,g,$,w,x)}finally{b&&b._endPatch()}}},Ae=(c,d,u,m,v,g,$,w)=>{let x,b;const{props:T,shapeFlag:_,transition:C,dirs:P}=c;if(x=c.el=i(c.type,g,T&&T.is,T),_&8?p(x,c.children):_&16&&Ye(c.children,x,null,m,v,fo(c,g),$,w),P&&et(c,null,m,"created"),Me(x,c,c.scopeId,$,m),T){for(const B in T)B!=="value"&&!mt(B)&&l(x,B,null,T[B],g,m);"value"in T&&l(x,"value",null,T.value,g),(b=T.onVnodeBeforeMount)&&Oe(b,m,c)}P&&et(c,null,m,"beforeMount");const I=gr(v,C);I&&C.beforeEnter(x),o(x,d,u),((b=T&&T.onVnodeMounted)||I||P)&&ue(()=>{try{b&&Oe(b,m,c),I&&C.enter(x),P&&et(c,null,m,"mounted")}finally{}},v)},Me=(c,d,u,m,v)=>{if(u&&S(c,u),m)for(let g=0;g{for(let b=x;b{const w=d.el=c.el;let{patchFlag:x,dynamicChildren:b,dirs:T}=d;x|=c.patchFlag&16;const _=c.props||U,C=d.props||U;let P;if(u&&tt(u,!1),(P=C.onVnodeBeforeUpdate)&&Oe(P,u,d,c),T&&et(d,c,u,"beforeUpdate"),u&&tt(u,!0),b&&(!c.dynamicChildren||c.dynamicChildren.length!==b.length)&&(x=0,$=!1,b=null),(_.innerHTML&&C.innerHTML==null||_.textContent&&C.textContent==null)&&p(w,""),b?st(c.dynamicChildren,b,w,u,m,fo(d,v),g):$||q(c,d,w,null,u,m,fo(d,v),g,!1),x>0){if(x&16)Vt(w,_,C,u,v);else if(x&2&&_.class!==C.class&&l(w,"class",null,C.class,v),x&4&&l(w,"style",_.style,C.style,v),x&8){const I=d.dynamicProps;for(let B=0;B{P&&Oe(P,u,d,c),T&&et(d,c,u,"updated")},m)},st=(c,d,u,m,v,g,$)=>{for(let w=0;w{if(d!==u){if(d!==U)for(const g in d)!mt(g)&&!(g in u)&&l(c,g,d[g],null,v,m);for(const g in u){if(mt(g))continue;const $=u[g],w=d[g];$!==w&&g!=="value"&&l(c,g,w,$,v,m)}"value"in u&&l(c,"value",d.value,u.value,v)}},Ts=(c,d,u,m,v,g,$,w,x)=>{const b=d.el=c?c.el:r(""),T=d.anchor=c?c.anchor:r("");let{patchFlag:_,dynamicChildren:C,slotScopeIds:P}=d;P&&(w=w?w.concat(P):P),c==null?(o(b,u,m),o(T,u,m),Ye(d.children||[],u,T,v,g,$,w,x)):_>0&&_&64&&C&&c.dynamicChildren&&c.dynamicChildren.length===C.length?(st(c.dynamicChildren,C,u,v,g,$,w),(d.key!=null||v&&d===v.subTree)&&Gn(c,d,!0)):q(c,d,u,T,v,g,$,w,x)},Os=(c,d,u,m,v,g,$,w,x)=>{d.slotScopeIds=w,c==null?d.shapeFlag&512?v.ctx.activate(d,u,m,$,x):ko(d,u,m,v,g,$,x):Ai(c,d,x)},ko=(c,d,u,m,v,g,$)=>{const w=c.component=_r(c,m,v);if(oo(c)&&(w.ctx.renderer=Kt),Sr(w,!1,$),w.asyncDep){if(v&&v.registerDep(w,fe,$),!c.el){const x=w.subTree=ve(Ce);Y(null,x,d,u),c.placeholder=x.el}}else fe(w,c,d,u,v,g,$)},Ai=(c,d,u)=>{const m=d.component=c.component;if(ir(c,d,u))if(m.asyncDep&&!m.asyncResolved){J(m,d,u);return}else m.next=d,m.update();else d.el=c.el,m.vnode=d},fe=(c,d,u,m,v,g,$)=>{const w=()=>{if(c.isMounted){let{next:_,bu:C,u:P,parent:I,vnode:B}=c;{const Ne=Xn(c);if(Ne){_&&(_.el=B.el,J(c,_,$)),Ne.asyncDep.then(()=>{ue(()=>{c.isUnmounted||b()},v)});return}}let K=_,te;tt(c,!1),_?(_.el=B.el,J(c,_,$)):_=B,C&&Jt(C),(te=_.props&&_.props.onVnodeBeforeUpdate)&&Oe(te,I,_,B),tt(c,!0);const le=In(c),Re=c.subTree;c.subTree=le,N(Re,le,h(Re.el),Ms(Re),c,v,g),_.el=le.el,K===null&&lr(c,le.el),P&&ue(P,v),(te=_.props&&_.props.onVnodeUpdated)&&ue(()=>Oe(te,I,_,B),v)}else{let _;const{el:C,props:P}=d,{bm:I,m:B,parent:K,root:te,type:le}=c,Re=ft(d);tt(c,!1),I&&Jt(I),!Re&&(_=P&&P.onVnodeBeforeMount)&&Oe(_,K,d),tt(c,!0);{te.ce&&te.ce._hasShadowRoot()&&te.ce._injectChildStyle(le,c.parent?c.parent.type:void 0);const Ne=c.subTree=In(c);N(null,Ne,u,m,c,v,g),d.el=Ne.el}if(B&&ue(B,v),!Re&&(_=P&&P.onVnodeMounted)){const Ne=d;ue(()=>Oe(_,K,Ne),v)}(d.shapeFlag&256||K&&ft(K.vnode)&&K.vnode.shapeFlag&256)&&c.a&&ue(c.a,v),c.isMounted=!0,d=u=m=null}};c.scope.on();const x=c.effect=new jo(w);c.scope.off();const b=c.update=x.run.bind(x),T=c.job=x.runIfDirty.bind(x);T.i=c,T.id=c.uid,x.scheduler=()=>Qs(T),tt(c,!0),b()},J=(c,d,u)=>{d.component=c;const m=c.vnode.props;c.vnode=d,c.next=null,ar(c,d.props,m,u),fr(c,d.children,u),Se(),fn(c),Le()},q=(c,d,u,m,v,g,$,w,x=!1)=>{const b=c&&c.children,T=c?c.shapeFlag:0,_=d.children,{patchFlag:C,shapeFlag:P}=d;if(C>0){if(C&128){As(b,_,u,m,v,g,$,w,x);return}else if(C&256){ot(b,_,u,m,v,g,$,w,x);return}}P&8?(T&16&&zt(b,v,g),_!==b&&p(u,_)):T&16?P&16?As(b,_,u,m,v,g,$,w,x):zt(b,v,g,!0):(T&8&&p(u,""),P&16&&Ye(_,u,m,v,g,$,w,x))},ot=(c,d,u,m,v,g,$,w,x)=>{c=c||it,d=d||it;const b=c.length,T=d.length,_=Math.min(b,T);let C;for(C=0;C<_;C++){const P=d[C]=x?Be(d[C]):Te(d[C]);N(c[C],P,u,null,v,g,$,w,x)}b>T?zt(c,v,g,!0,!1,_):Ye(d,u,m,v,g,$,w,x,_)},As=(c,d,u,m,v,g,$,w,x)=>{let b=0;const T=d.length;let _=c.length-1,C=T-1;for(;b<=_&&b<=C;){const P=c[b],I=d[b]=x?Be(d[b]):Te(d[b]);if(Pt(P,I))N(P,I,u,null,v,g,$,w,x);else break;b++}for(;b<=_&&b<=C;){const P=c[_],I=d[C]=x?Be(d[C]):Te(d[C]);if(Pt(P,I))N(P,I,u,null,v,g,$,w,x);else break;_--,C--}if(b>_){if(b<=C){const P=C+1,I=PC)for(;b<=_;)Pe(c[b],v,g,!0),b++;else{const P=b,I=b,B=new Map;for(b=I;b<=C;b++){const ge=d[b]=x?Be(d[b]):Te(d[b]);ge.key!=null&&B.set(ge.key,b)}let K,te=0;const le=C-I+1;let Re=!1,Ne=0;const Ut=new Array(le);for(b=0;b=le){Pe(ge,v,g,!0);continue}let Ie;if(ge.key!=null)Ie=B.get(ge.key);else for(K=I;K<=C;K++)if(Ut[K-I]===0&&Pt(ge,d[K])){Ie=K;break}Ie===void 0?Pe(ge,v,g,!0):(Ut[Ie-I]=b+1,Ie>=Ne?Ne=Ie:Re=!0,N(ge,d[Ie],u,null,v,g,$,w,x),te++)}const Ri=Re?br(Ut):it;for(K=Ri.length-1,b=le-1;b>=0;b--){const ge=I+b,Ie=d[ge],Ni=d[ge+1],Ii=ge+1{const{el:g,type:$,transition:w,children:x,shapeFlag:b}=c;if(b&6){nt(c.component.subTree,d,u,m);return}if(b&128){c.suspense.move(d,u,m);return}if(b&64){$.move(c,d,u,Kt);return}if($===X){o(g,d,u);for(let _=0;_w.enter(g),v));else{const{leave:_,delayLeave:C,afterLeave:P}=w,I=()=>{c.ctx.isUnmounted?n(g):o(g,d,u)},B=()=>{const K=g._isLeaving||!!g[to];g._isLeaving&&g[to](!0),w.persisted&&!K?I():_(g,()=>{I(),P&&P()})};C?C(g,I,B):B()}else o(g,d,u)},Pe=(c,d,u,m=!1,v=!1)=>{const{type:g,props:$,ref:w,children:x,dynamicChildren:b,shapeFlag:T,patchFlag:_,dirs:C,cacheIndex:P,memo:I}=c;if(_===-2&&(v=!1),w!=null&&(Se(),Ct(w,null,u,c,!0),Le()),P!=null&&(d.renderCache[P]=void 0),T&256){d.ctx.deactivate(c);return}const B=T&1&&C,K=!ft(c);let te;if(K&&(te=$&&$.onVnodeBeforeUnmount)&&Oe(te,d,c),T&6)jd(c.component,u,m);else{if(T&128){c.suspense.unmount(u,m);return}B&&et(c,null,d,"beforeUnmount"),T&64?c.type.remove(c,d,u,Kt,m):b&&!b.hasOnce&&(g!==X||_>0&&_&64)?zt(b,d,u,!1,!0):(g===X&&_&384||!v&&T&16)&&zt(x,d,u),m&&Mi(c)}const le=I!=null&&P==null;(K&&(te=$&&$.onVnodeUnmounted)||B||le)&&ue(()=>{te&&Oe(te,d,c),B&&et(c,null,d,"unmounted"),le&&(c.el=null)},u)},Mi=c=>{const{type:d,el:u,anchor:m,transition:v}=c;if(d===X){Fd(u,m);return}if(d===uo){O(c);return}const g=()=>{n(u),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(c.shapeFlag&1&&v&&!v.persisted){const{leave:$,delayLeave:w}=v,x=()=>$(u,g);w?w(c.el,g,x):x()}else g()},Fd=(c,d)=>{let u;for(;c!==d;)u=y(c),n(c),c=u;n(d)},jd=(c,d,u)=>{const{bum:m,scope:v,job:g,subTree:$,um:w,m:x,a:b}=c;Yn(x),Yn(b),m&&Jt(m),v.stop(),g&&(g.flags|=8,Pe($,c,d,u)),w&&ue(w,d),ue(()=>{c.isUnmounted=!0},d)},zt=(c,d,u,m=!1,v=!1,g=0)=>{for(let $=g;${if(c.shapeFlag&6)return Ms(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const d=y(c.anchor||c.el),u=d&&d[Ol];return u?y(u):d};let Co=!1;const Pi=(c,d,u)=>{let m;c==null?d._vnode&&(Pe(d._vnode,null,null,!0),m=d._vnode.component):N(d._vnode||null,c,d,null,null,null,u),d._vnode=c,Co||(Co=!0,fn(m),un(),Co=!1)},Kt={p:N,um:Pe,m:nt,r:Mi,mt:ko,mc:Ye,pc:q,pbc:st,n:Ms,o:e};return{render:Pi,hydrate:void 0,createApp:Ql(Pi)}}function fo({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 tt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function gr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gn(e,t,s=!1){const o=e.children,n=t.children;if(A(o)&&A(n))for(let l=0;l>1,e[s[r]]0&&(t[o]=s[l-1]),s[l]=o)}}for(l=s.length,i=s[l-1];l-- >0;)s[l]=i,i=t[i];return s}function Xn(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Xn(t)}function Yn(e){if(e)for(let t=0;te.__isSuspense;function vr(e,t){t&&t.pendingBranch?A(e)?t.effects.push(...e):t.effects.push(e):Ll(e)}const X=Symbol.for("v-fgt"),vs=Symbol.for("v-txt"),Ce=Symbol.for("v-cmt"),uo=Symbol.for("v-stc"),Ue=[];let he=null;function E(e=!1){Ue.push(he=e?null:[])}function ho(){Ue.pop(),he=Ue[Ue.length-1]||null}let Mt=1;function Qn(e,t=!1){Mt+=e,e<0&&he&&t&&(he.hasOnce=!0)}function ei(e){return e.dynamicChildren=Mt>0?he||it:null,ho(),Mt>0&&he&&he.push(e),e}function k(e,t,s,o,n,l){return ei(L(e,t,s,o,n,l,!0))}function ms(e,t,s,o,n){return ei(ve(e,t,s,o,n,!0))}function go(e){return e?e.__v_isVNode===!0:!1}function Pt(e,t){return e.type===t.type&&e.key===t.key}const ti=({key:e})=>e??null,xs=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?G(e)||ae(e)||R(e)?{i:ie,r:e,k:t,f:!!s}:e:null);function L(e,t=null,s=null,o=0,n=null,l=e===X?0:1,i=!1,r=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ti(t),ref:t&&xs(t),scopeId:gn,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:l,patchFlag:o,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:ie};return r?(ys(a,s),l&128&&e.normalize(a)):s&&(a.shapeFlag|=G(s)?8:16),Mt>0&&!i&&he&&(a.patchFlag>0||l&6)&&a.patchFlag!==32&&he.push(a),a}const ve=mr;function mr(e,t=null,s=null,o=0,n=null,l=!1){if((!e||e===Ul)&&(e=Ce),go(e)){const r=ht(e,t,!0);return s&&ys(r,s),Mt>0&&!l&&he&&(r.shapeFlag&6?he[he.indexOf(e)]=r:he.push(r)),r.patchFlag=-2,r}if(Or(e)&&(e=e.__vccOpts),t){t=xr(t);let{class:r,style:a}=t;r&&!G(r)&&(t.class=_e(r)),V(a)&&(Js(a)&&!A(a)&&(a=Z({},a)),t.style=xt(a))}const i=G(e)?1:Zn(e)?128:ps(e)?64:V(e)?4:R(e)?2:0;return L(e,t,s,o,n,i,l,!0)}function xr(e){return e?Js(e)||Vn(e)?Z({},e):e:null}function ht(e,t,s=!1,o=!1){const{props:n,ref:l,patchFlag:i,children:r,transition:a}=e,f=t?yr(n||{},t):n,p={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&ti(f),ref:t&&t.ref?s&&l?A(l)?l.concat(xs(t)):[l,xs(t)]:xs(t):l,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!==X?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ht(e.ssContent),ssFallback:e.ssFallback&&ht(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&o&&so(p,a.clone(p)),p}function gt(e=" ",t=0){return ve(vs,null,e,t)}function Q(e="",t=!1){return t?(E(),ms(Ce,null,e)):ve(Ce,null,e)}function Te(e){return e==null||typeof e=="boolean"?ve(Ce):A(e)?ve(X,null,e.slice()):go(e)?Be(e):ve(vs,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ht(e)}function ys(e,t){let s=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(A(t))s=16;else if(typeof t=="object")if(o&65){const n=t.default;n&&(n._c&&(n._d=!1),ys(e,n()),n._c&&(n._d=!0));return}else{s=32;const n=t._;!n&&!Vn(t)?t._ctx=ie:n===3&&ie&&(ie.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(R(t)){if(o&65){ys(e,{default:t});return}t={default:t,_ctx:ie},s=32}else t=String(t),o&64?(s=16,t=[gt(t)]):s=8;e.children=t,e.shapeFlag|=s}function yr(...e){const t={};for(let s=0;sce||ie;let ws,Rt;{const e=Zt(),t=(s,o)=>{let n;return(n=e[s])||(n=e[s]=[]),n.push(o),l=>{n.length>1?n.forEach(i=>i(l)):n[0](l)}};ws=t("__VUE_INSTANCE_SETTERS__",s=>ce=s),Rt=t("__VUE_SSR_SETTERS__",s=>It=s)}const Nt=e=>{const t=ce;return ws(e),e.scope.on(),()=>{e.scope.off(),ws(t)}},oi=()=>{ce&&ce.scope.off(),ws(null)};function ni(e){return e.vnode.shapeFlag&4}let It=!1;function Sr(e,t=!1,s=!1){t&&Rt(t);const{props:o,children:n}=e.vnode,l=ni(e);rr(e,o,l,t),pr(e,n,s||t);const i=l?Lr(e,t):void 0;return t&&Rt(!1),i}function Lr(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Wl);const{setup:o}=s;if(o){Se();const n=e.setupContext=o.length>1?kr(e):null,l=Nt(e),i=at(o,e,0,[e.props,n]),r=Ao(i);if(Le(),l(),(r||e.sp)&&!ft(e)&&xn(e),r){if(i.then(oi,oi),t)return i.then(a=>{Rt(!0);try{ii(e,a,t)}finally{Rt(!1)}}).catch(a=>{rs(a,e,0)});e.asyncDep=i}else ii(e,i)}else li(e)}function ii(e,t,s){R(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:V(t)&&(e.setupState=rn(t)),li(e)}function li(e,t,s){const o=e.type;e.render||(e.render=o.render||$e);{const n=Nt(e);Se();try{ql(e)}finally{Le(),n()}}}const Er={get(e,t){return re(e,"get",""),e[t]}};function kr(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Er),slots:e.slots,emit:e.emit,expose:t}}function $s(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(rn(ul(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Ot)return Ot[s](e)},has(t,s){return s in t||s in Ot}})):e.proxy}const Cr=/(?:^|[-_])\w/g,Tr=e=>e.replace(Cr,t=>t.toUpperCase()).replace(/[-_]/g,"");function ri(e,t=!0){return R(e)?e.displayName||e.name:e.name||t&&e.__name}function ai(e,t,s=!1){let o=ri(t);if(!o&&t.__file){const n=t.__file.match(/([^/\\]+)\.\w+$/);n&&(o=n[1])}if(!o&&e){const n=l=>{for(const i in l)if(l[i]===t)return i};o=n(e.components)||e.parent&&n(e.parent.type.components)||n(e.appContext.components)}return o?Tr(o):s?"App":"Anonymous"}function Or(e){return R(e)&&"__vccOpts"in e}const Ar=(e,t)=>bl(e,t,It),Mr="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let bo;const ai=typeof window<"u"&&window.trustedTypes;if(ai)try{bo=ai.createPolicy("vue",{createHTML:e=>e})}catch{}const ci=bo?e=>bo.createHTML(e):e=>e,Pr="http://www.w3.org/2000/svg",Rr="http://www.w3.org/1998/Math/MathML",We=typeof document<"u"?document:null,di=We&&We.createElement("template"),Nr={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,o)=>{const n=t==="svg"?We.createElementNS(Pr,e):t==="mathml"?We.createElementNS(Rr,e):s?We.createElement(e,{is:s}):We.createElement(e);return e==="select"&&o&&o.multiple!=null&&n.setAttribute("multiple",o.multiple),n},createText:e=>We.createTextNode(e),createComment:e=>We.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>We.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,o,n,i){const l=s?s.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),s),!(n===i||!(n=n.nextSibling)););else{di.innerHTML=ci(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const r=di.content;if(o==="svg"||o==="mathml"){const a=r.firstChild;for(;a.firstChild;)r.appendChild(a.firstChild);r.removeChild(a)}t.insertBefore(r,s)}return[l?l.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Ir=Symbol("_vtc");function Hr(e,t,s){const o=e[Ir];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const _s=Symbol("_vod"),pi=Symbol("_vsh"),vo={name:"show",beforeMount(e,{value:t},{transition:s}){e[_s]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Ht(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:o}){!t!=!s&&(o?t?(o.beforeEnter(e),Ht(e,!0),o.enter(e)):o.leave(e,()=>{Ht(e,!1)}):Ht(e,t))},beforeUnmount(e,{value:t}){Ht(e,t)}};function Ht(e,t){e.style.display=t?e[_s]:"none",e[pi]=!t}const Dr=Symbol(""),Fr=/(?:^|;)\s*display\s*:/;function jr(e,t,s){const o=e.style,n=G(s);let i=!1;if(s&&!n){if(t)if(G(t))for(const l of t.split(";")){const r=l.slice(0,l.indexOf(":")).trim();s[r]==null&&Dt(o,r,"")}else for(const l in t)s[l]==null&&Dt(o,l,"");for(const l in s){l==="display"&&(i=!0);const r=s[l];r!=null?zr(e,l,!G(t)&&t?t[l]:void 0,r)||Dt(o,l,r):Dt(o,l,"")}}else if(n){if(t!==s){const l=o[Dr];l&&(s+=";"+l),o.cssText=s,i=Fr.test(s)}}else t&&e.removeAttribute("style");_s in e&&(e[_s]=i?o.display:"",e[pi]&&(o.display="none"))}const Ss=/\s*!important$/;function Dt(e,t,s){if(A(s))s.forEach(o=>Dt(e,t,o));else if(s==null&&(s=""),t.startsWith("--"))Ss.test(s)?e.setProperty(t,s.replace(Ss,""),"important"):e.setProperty(t,s);else{const o=Vr(e,t);Ss.test(s)?e.setProperty(be(o),s.replace(Ss,""),"important"):e[o]=s}}const fi=["Webkit","Moz","ms"],mo={};function Vr(e,t){const s=mo[t];if(s)return s;let o=oe(t);if(o!=="filter"&&o in e)return mo[t]=o;o=Yt(o);for(let n=0;nxo||(Gr.then(()=>xo=0),xo=Date.now());function Yr(e,t){const s=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=s.attached)return;const n=s.value;if(A(n)){const i=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{i.call(o),o._stopped=!0};const l=n.slice(),r=[o];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Jr=(e,t,s,o,n,i)=>{const l=n==="svg";t==="class"?Hr(e,o,l):t==="style"?jr(e,s,o):Bt(t)?Wt(t)||Ur(e,t,s,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Zr(e,t,o,l))?(gi(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&hi(e,t,o,l,i,t!=="value")):e._isVueCE&&(Qr(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!G(o)))?gi(e,oe(t),o,i,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),hi(e,t,o,l))};function Zr(e,t,s,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&vi(t)&&R(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 n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return vi(t)&&G(s)?!1:t in e}function Qr(e,t){const s=e._def.props;if(!s)return!1;const o=oe(t);return Array.isArray(s)?s.some(n=>oe(n)===o):Object.keys(s).some(n=>oe(n)===o)}const mi={};function ea(e,t,s){let o=fs(e,t);Gt(o)&&(o=Z({},o,t));class n extends yo{constructor(l){super(o,l,s)}}return n.def=o,n}const ta=typeof HTMLElement<"u"?HTMLElement:class{};class yo extends ta{constructor(t,s={},o=_i){super(),this._def=t,this._props=s,this._createApp=o,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&&o!==_i?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 yo){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,cn(()=>{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 o=0;o{this._resolved=!0,this._pendingResolve=void 0;const{props:i,styles:l}=o;let r;if(i&&!A(i))for(const a in i){const f=i[a];(f===Number||f&&f.type===Number)&&(a in this._props&&(this._props[a]=Po(this._props[a])),(r||(r=Object.create(null)))[oe(a)]=!0)}this._numberProps=r,this._resolveProps(o),this.shadowRoot&&this._applyStyles(l),this._mount(o)},s=this._def.__asyncLoader;if(s)return this._pendingResolve=s().then(o=>{o.configureApp=this._def.configureApp,t(this._def=o,!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 o in s)D(this,o)||Object.defineProperty(this,o,{get:()=>nn(s[o])})}_resolveProps(t){const{props:s}=t,o=A(s)?s:Object.keys(s||{});for(const n of Object.keys(this))n[0]!=="_"&&o.includes(n)&&this._setProp(n,this[n]);for(const n of o.map(oe))Object.defineProperty(this,n,{get(){return this._getProp(n)},set(i){this._setProp(n,i,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const s=this.hasAttribute(t);let o=s?this.getAttribute(t):mi;const n=oe(t);s&&this._numberProps&&this._numberProps[n]&&(o=Po(o)),this._setProp(n,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,s,o=!0,n=!1){if(s!==this._props[t]&&(this._dirty=!0,s===mi?delete this._props[t]:(this._props[t]=s,t==="key"&&this._app&&(this._app._ceVNode.key=s)),n&&this._instance&&this._update(),o)){const i=this._ob;i&&(this._processMutations(i.takeRecords()),i.disconnect()),s===!0?this.setAttribute(be(t),""):typeof s=="string"||typeof s=="number"?this.setAttribute(be(t),s+""):s||this.removeAttribute(be(t)),i&&i.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),aa(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const s=ve(this._def,Z(t,this._props));return this._instance||(s.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const n=(i,l)=>{this.dispatchEvent(new CustomEvent(i,Gt(l[0])?Z({detail:l},l[0]):{detail:l}))};o.emit=(i,...l)=>{n(i,l),be(i)!==i&&n(be(i),l)},this._setParent()}),s}_applyStyles(t,s,o){if(!t)return;if(s){if(s===this._def||this._styleChildren.has(s))return;this._styleChildren.add(s)}const n=this._nonce,i=this.shadowRoot,l=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i);let r=null;for(let a=t.length-1;a>=0;a--){const f=document.createElement("style");n&&f.setAttribute("nonce",n),f.textContent=t[a],i.insertBefore(f,r||l),r=f,a===0&&(o||this._styleAnchors.set(this._def,f),s&&this._styleAnchors.set(s,f))}}_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{const t=e.props["onUpdate:modelValue"]||!1;return A(t)?s=>Jt(t,s):t};function sa(e){e.target.composing=!0}function yi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ls=Symbol("_assign"),Es=Symbol("_initialValue");function wo(e,t,s){return t&&(e=e.trim()),s&&(e=Hs(e)),e}const oa={created(e,{modifiers:{lazy:t,trim:s,number:o}},n){e.parentNode&&(e.type==="text"?e[Es]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Es]=e.defaultValue.replace(/\r\n?/g,` -`))),e[Ls]=xi(n);const i=o||n.props&&n.props.type==="number";bt(e,t?"change":"input",l=>{l.target.composing||e[Ls](wo(e.value,s,i))}),(s||i)&&bt(e,"change",()=>{e.value=wo(e.value,s,i)}),t||(bt(e,"compositionstart",sa),bt(e,"compositionend",yi),bt(e,"change",yi))},mounted(e,{value:t,modifiers:{trim:s,number:o}}){const n=t??"",i=e[Es];delete e[Es],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Ls](wo(e.value,s,o)):e.value=n},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:o,trim:n,number:i}},l){if(e[Ls]=xi(l),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?Hs(e.value):e.value,a=t??"";if(r===a)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(o&&t===s||n&&e.value.trim()===a)||(e.value=a)}},na=["ctrl","shift","alt","meta"],ia={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)=>na.some(s=>e[`${s}Key`]&&!t.includes(s))},la=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),o=t.join(".");return s[o]||(s[o]=(n,...i)=>{for(let l=0;l{$i().render(...e)},_i=(...e)=>{const t=$i().createApp(...e),{mount:s}=t;return t.mount=o=>{const n=da(o);if(!n)return;const i=t._component;!R(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const l=s(n,!1,ca(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),l},t};function ca(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function da(e){return G(e)?document.querySelector(e):e}const pa={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},fa={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},ua={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},ha={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},ga={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},ba={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},va={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},ma={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},xa={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},ya={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},wa={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"};function $o(e,t){const s=t||$a(e);$n(()=>{var r;const o=ti();if(!o)return;const n=(r=o.proxy)==null?void 0:r.$el;if(!n)return;const i=n.getRootNode();if(!(i instanceof ShadowRoot)||i.querySelector(`style[data-shadow-styles="${s}"]`))return;const l=document.createElement("style");l.setAttribute("data-shadow-styles",s),l.textContent=e,i.appendChild(l)})}function $a(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 Li(e,t=""){const s=Si[e]||Si.map;return`e})}catch{}const di=bo?e=>bo.createHTML(e):e=>e,Pr="http://www.w3.org/2000/svg",Rr="http://www.w3.org/1998/Math/MathML",We=typeof document<"u"?document:null,pi=We&&We.createElement("template"),Nr={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,o)=>{const n=t==="svg"?We.createElementNS(Pr,e):t==="mathml"?We.createElementNS(Rr,e):s?We.createElement(e,{is:s}):We.createElement(e);return e==="select"&&o&&o.multiple!=null&&n.setAttribute("multiple",o.multiple),n},createText:e=>We.createTextNode(e),createComment:e=>We.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>We.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,o,n,l){const i=s?s.previousSibling:t.lastChild;if(n&&(n===l||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),s),!(n===l||!(n=n.nextSibling)););else{pi.innerHTML=di(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const r=pi.content;if(o==="svg"||o==="mathml"){const a=r.firstChild;for(;a.firstChild;)r.appendChild(a.firstChild);r.removeChild(a)}t.insertBefore(r,s)}return[i?i.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Ir=Symbol("_vtc");function Hr(e,t,s){const o=e[Ir];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const _s=Symbol("_vod"),fi=Symbol("_vsh"),vo={name:"show",beforeMount(e,{value:t},{transition:s}){e[_s]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Ht(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:o}){!t!=!s&&(o?t?(o.beforeEnter(e),Ht(e,!0),o.enter(e)):o.leave(e,()=>{Ht(e,!1)}):Ht(e,t))},beforeUnmount(e,{value:t}){Ht(e,t)}};function Ht(e,t){e.style.display=t?e[_s]:"none",e[fi]=!t}const Dr=Symbol(""),Fr=/(?:^|;)\s*display\s*:/;function jr(e,t,s){const o=e.style,n=G(s);let l=!1;if(s&&!n){if(t)if(G(t))for(const i of t.split(";")){const r=i.slice(0,i.indexOf(":")).trim();s[r]==null&&Dt(o,r,"")}else for(const i in t)s[i]==null&&Dt(o,i,"");for(const i in s){i==="display"&&(l=!0);const r=s[i];r!=null?zr(e,i,!G(t)&&t?t[i]:void 0,r)||Dt(o,i,r):Dt(o,i,"")}}else if(n){if(t!==s){const i=o[Dr];i&&(s+=";"+i),o.cssText=s,l=Fr.test(s)}}else t&&e.removeAttribute("style");_s in e&&(e[_s]=l?o.display:"",e[fi]&&(o.display="none"))}const Ss=/\s*!important$/;function Dt(e,t,s){if(A(s))s.forEach(o=>Dt(e,t,o));else if(s==null&&(s=""),t.startsWith("--"))Ss.test(s)?e.setProperty(t,s.replace(Ss,""),"important"):e.setProperty(t,s);else{const o=Vr(e,t);Ss.test(s)?e.setProperty(be(o),s.replace(Ss,""),"important"):e[o]=s}}const ui=["Webkit","Moz","ms"],mo={};function Vr(e,t){const s=mo[t];if(s)return s;let o=oe(t);if(o!=="filter"&&o in e)return mo[t]=o;o=Yt(o);for(let n=0;nxo||(Gr.then(()=>xo=0),xo=Date.now());function Yr(e,t){const s=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=s.attached)return;const n=s.value;if(A(n)){const l=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{l.call(o),o._stopped=!0};const i=n.slice(),r=[o];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Jr=(e,t,s,o,n,l)=>{const i=n==="svg";t==="class"?Hr(e,o,i):t==="style"?jr(e,s,o):Bt(t)?Wt(t)||Ur(e,t,s,o,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Zr(e,t,o,i))?(bi(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&gi(e,t,o,i,l,t!=="value")):e._isVueCE&&(Qr(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!G(o)))?bi(e,oe(t),o,l,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),gi(e,t,o,i))};function Zr(e,t,s,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&mi(t)&&R(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 n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return mi(t)&&G(s)?!1:t in e}function Qr(e,t){const s=e._def.props;if(!s)return!1;const o=oe(t);return Array.isArray(s)?s.some(n=>oe(n)===o):Object.keys(s).some(n=>oe(n)===o)}const xi={};function ea(e,t,s){let o=fs(e,t);Gt(o)&&(o=Z({},o,t));class n extends yo{constructor(i){super(o,i,s)}}return n.def=o,n}const ta=typeof HTMLElement<"u"?HTMLElement:class{};class yo extends ta{constructor(t,s={},o=Si){super(),this._def=t,this._props=s,this._createApp=o,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&&o!==Si?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 yo){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,dn(()=>{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 o=0;o{this._resolved=!0,this._pendingResolve=void 0;const{props:l,styles:i}=o;let r;if(l&&!A(l))for(const a in l){const f=l[a];(f===Number||f&&f.type===Number)&&(a in this._props&&(this._props[a]=Ro(this._props[a])),(r||(r=Object.create(null)))[oe(a)]=!0)}this._numberProps=r,this._resolveProps(o),this.shadowRoot&&this._applyStyles(i),this._mount(o)},s=this._def.__asyncLoader;if(s)return this._pendingResolve=s().then(o=>{o.configureApp=this._def.configureApp,t(this._def=o,!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 o in s)D(this,o)||Object.defineProperty(this,o,{get:()=>ln(s[o])})}_resolveProps(t){const{props:s}=t,o=A(s)?s:Object.keys(s||{});for(const n of Object.keys(this))n[0]!=="_"&&o.includes(n)&&this._setProp(n,this[n]);for(const n of o.map(oe))Object.defineProperty(this,n,{get(){return this._getProp(n)},set(l){this._setProp(n,l,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const s=this.hasAttribute(t);let o=s?this.getAttribute(t):xi;const n=oe(t);s&&this._numberProps&&this._numberProps[n]&&(o=Ro(o)),this._setProp(n,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,s,o=!0,n=!1){if(s!==this._props[t]&&(this._dirty=!0,s===xi?delete this._props[t]:(this._props[t]=s,t==="key"&&this._app&&(this._app._ceVNode.key=s)),n&&this._instance&&this._update(),o)){const l=this._ob;l&&(this._processMutations(l.takeRecords()),l.disconnect()),s===!0?this.setAttribute(be(t),""):typeof s=="string"||typeof s=="number"?this.setAttribute(be(t),s+""):s||this.removeAttribute(be(t)),l&&l.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),aa(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const s=ve(this._def,Z(t,this._props));return this._instance||(s.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const n=(l,i)=>{this.dispatchEvent(new CustomEvent(l,Gt(i[0])?Z({detail:i},i[0]):{detail:i}))};o.emit=(l,...i)=>{n(l,i),be(l)!==l&&n(be(l),i)},this._setParent()}),s}_applyStyles(t,s,o){if(!t)return;if(s){if(s===this._def||this._styleChildren.has(s))return;this._styleChildren.add(s)}const n=this._nonce,l=this.shadowRoot,i=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(l);let r=null;for(let a=t.length-1;a>=0;a--){const f=document.createElement("style");n&&f.setAttribute("nonce",n),f.textContent=t[a],l.insertBefore(f,r||i),r=f,a===0&&(o||this._styleAnchors.set(this._def,f),s&&this._styleAnchors.set(s,f))}}_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{const t=e.props["onUpdate:modelValue"]||!1;return A(t)?s=>Jt(t,s):t};function sa(e){e.target.composing=!0}function wi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ls=Symbol("_assign"),Es=Symbol("_initialValue");function wo(e,t,s){return t&&(e=e.trim()),s&&(e=Hs(e)),e}const oa={created(e,{modifiers:{lazy:t,trim:s,number:o}},n){e.parentNode&&(e.type==="text"?e[Es]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Es]=e.defaultValue.replace(/\r\n?/g,` +`))),e[Ls]=yi(n);const l=o||n.props&&n.props.type==="number";bt(e,t?"change":"input",i=>{i.target.composing||e[Ls](wo(e.value,s,l))}),(s||l)&&bt(e,"change",()=>{e.value=wo(e.value,s,l)}),t||(bt(e,"compositionstart",sa),bt(e,"compositionend",wi),bt(e,"change",wi))},mounted(e,{value:t,modifiers:{trim:s,number:o}}){const n=t??"",l=e[Es];delete e[Es],l!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==l?e[Ls](wo(e.value,s,o)):e.value=n},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:o,trim:n,number:l}},i){if(e[Ls]=yi(i),e.composing)return;const r=(l||e.type==="number")&&!/^0\d/.test(e.value)?Hs(e.value):e.value,a=t??"";if(r===a)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(o&&t===s||n&&e.value.trim()===a)||(e.value=a)}},na=["ctrl","shift","alt","meta"],ia={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)=>na.some(s=>e[`${s}Key`]&&!t.includes(s))},la=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),o=t.join(".");return s[o]||(s[o]=(n,...l)=>{for(let i=0;i{_i().render(...e)},Si=(...e)=>{const t=_i().createApp(...e),{mount:s}=t;return t.mount=o=>{const n=da(o);if(!n)return;const l=t._component;!R(l)&&!l.render&&!l.template&&(l.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const i=s(n,!1,ca(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),i},t};function ca(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function da(e){return G(e)?document.querySelector(e):e}const pa={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},fa={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},ua={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},ha={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},ga={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},ba={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},va={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},ma={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},xa={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},ya={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},wa={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"};function $o(e,t){const s=t||$a(e);_n(()=>{var r;const o=si();if(!o)return;const n=(r=o.proxy)==null?void 0:r.$el;if(!n)return;const l=n.getRootNode();if(!(l instanceof ShadowRoot)||l.querySelector(`style[data-shadow-styles="${s}"]`))return;const i=document.createElement("style");i.setAttribute("data-shadow-styles",s),i.textContent=e,l.appendChild(i)})}function $a(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 Ei(e,t=""){const s=Li[e]||Li.map;return``}const _a=".vtl{position:absolute;top:0;right:0;bottom:0;left:0;display:grid!important;grid-template-rows:auto 1fr;height:100%;width:100%;min-height:420px;background:#f3f3f1;color:#3b463d;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--vtl-accent:#92b195;--vtl-border:#d1d4cd;--vtl-elevated:#ffffff;--vtl-accented:#d1d4cd;--vtl-muted:#6d766e;--vtl-rail:256px}.vtl.no-header{grid-template-rows:1fr}.vtl-top{flex:0 0 auto;display:flex;align-items:center;gap:10px;box-sizing:border-box;min-height:64px;padding:8px 16px;border-bottom:1px solid var(--vtl-border);background:#fff}.vtl-menu{display:none;font:16px/1 system-ui;color:#3b463d;background:#d1d4cd;border:1px solid #d1d4cd;border-radius:8px;padding:5px 10px;cursor:pointer}.vtl-fab{position:absolute;z-index:15;left:calc(12px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));width:44px;height:44px;display:flex;align-items:center;justify-content:center;font:18px/1 system-ui;color:#3b463d;background:#fff;border:1px solid var(--vtl-border);border-radius:50%;box-shadow:0 2px 10px #0000002e;cursor:pointer}.vtl-fab:hover{background:#d1d4cd}.vtl-fab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:2px}.vtl-menu:hover{background:#d1d4cd}.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:#3b463d}.vtl-meta{color:var(--vtl-muted);font-size:12px;margin-left:auto;display:inline-flex;align-items:center;gap:8px}.vtl-body{min-height:0;position:relative;display:flex}.vtl-nav{position:absolute;top:0;bottom:0;left:0;z-index:5;width:256px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--vtl-border);padding:12px 12px 20px;background:#fff;scrollbar-width:thin;scrollbar-color:#c4c8c0 transparent;contain:layout paint;transform:translate(0);transition:transform .2s cubic-bezier(.4,0,.2,1);will-change:transform}.vtl-nav::-webkit-scrollbar{width:8px;height:8px}.vtl-nav::-webkit-scrollbar-track{background:transparent}.vtl-nav::-webkit-scrollbar-thumb{background:#c4c8c0;border-radius:8px}.vtl-nav::-webkit-scrollbar-thumb:hover{background:#9aa197}.vtl-collapse{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;margin:0 0 8px;padding:7px 10px;border:1px solid var(--vtl-border);border-radius:8px;background:#d1d4cd;color:var(--vtl-muted);font:inherit;font-size:12px;cursor:pointer}.vtl-collapse:hover{background:var(--vtl-accented);color:#3b463d}.vtl-collapse:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-collapse-ic{flex:0 0 auto;display:inline-flex;transition:transform .16s ease;transform:rotate(180deg)}.vtl-collapse-ic svg{width:16px;height:16px}.vtl-collapse-tx{white-space:nowrap}.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%;min-height:48px;text-align:left;border:0;background:none;color:var(--vtl-muted);padding:8px 12px;cursor:pointer;border-radius:var(--vtl-radius,8px);font:inherit;margin:0;transition:background .13s ease,color .13s ease}.vtl-tab:hover{background:var(--vtl-accented);color:#3b463d}.vtl-tab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tab.active{background:var(--vtl-accented);color:#3b463d;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-fallback{display:none;flex:0 0 auto;width:20px;height:20px;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--vtl-muted);background:var(--vtl-accented);border-radius:6px}.vtl-tab.active .vtl-tab-fallback{color:var(--vtl-accent)}.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:var(--vtl-radius,8px);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{position:absolute;top:0;bottom:0;right:0;left:256px;min-width:0;display:flex;flex-direction:column}.vtl-content{flex:1 1 auto;position:relative;min-height:0}.vtl-host{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h:0}.vtl-host-slot{position:relative;min-height:100%}.vtl-host-slot>*{min-height:0;max-height:none}.vtl-host-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:var(--dx-muted, #6d766e);font-size:13px;padding:20px}.vtl-host-hint.err{color:#f87171}.vtl-host-hint small{color:var(--dx-muted, #6d766e)}.vtl.rail-collapsed .vtl-nav{transform:translate(-184px)}.vtl.rail-collapsed .vtl-main{left:72px}.vtl.rail-collapsed .vtl-collapse{padding-left:184px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(0)}.vtl.rail-collapsed .vtl-collapse-tx{display:none}.vtl.rail-collapsed .vtl-tab{padding-left:188px;gap:0}.vtl.rail-collapsed .vtl-tab-text{display:none}.vtl.rail-collapsed .vtl-tab-emoji{font-size:19px}.vtl.rail-collapsed .vtl-tab-fallback{display:inline-flex}.vtl.rail-collapsed .vtl-tier{padding-left:196px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:none}.vtl.rail-collapsed .vtl-grp+.vtl-grp{margin-top:6px;padding-top:6px}@media (max-width: 760px){.vtl-top{min-height:56px}.vtl-menu{display:inline-block}.vtl-meta{display:none}.vtl-nav{z-index:20;width:256px;box-shadow:0 0 28px #0000008c;transform:translate(-100%)}.vtl.nav-open .vtl-nav{transform:translate(0);z-index:1000}.vtl-main{left:0}.vtl.rail-collapsed .vtl-nav{transform:translate(-100%)}.vtl.rail-collapsed.nav-open .vtl-nav{transform:translate(0)}.vtl.rail-collapsed .vtl-main{left:0}.vtl.rail-collapsed .vtl-collapse{padding-left:10px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(180deg)}.vtl.rail-collapsed .vtl-collapse-tx{display:inline}.vtl.rail-collapsed .vtl-tab{padding-left:10px;gap:11px}.vtl.rail-collapsed .vtl-tab-text{display:flex}.vtl.rail-collapsed .vtl-tab-fallback{display:none}.vtl.rail-collapsed .vtl-tier{padding-left:8px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:inline}}.vtl:dir(rtl) .vtl-nav{left:auto;right:0;border-right:0;border-left:1px solid var(--vtl-border)}.vtl:dir(rtl) .vtl-main{left:0;right:256px}.vtl:dir(rtl) .vtl-tab,.vtl:dir(rtl) .vtl-tier-btn{text-align:right}.vtl:dir(rtl) .vtl-meta,.vtl:dir(rtl) .vtl-td,.vtl:dir(rtl) .vtl-chev{margin-left:0;margin-right:auto}.vtl:dir(rtl) .vtl-chev:not(.open){transform:scaleX(-1)}.vtl:dir(rtl) .vtl-collapse-ic svg{transform:scaleX(-1)}.vtl:dir(rtl) .vtl-fab{left:auto;right:calc(12px + env(safe-area-inset-right))}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(184px)}.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:72px}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:184px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:188px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:196px}@media (max-width: 760px){.vtl:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl:dir(rtl) .vtl-main,.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:0}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.rail-collapsed.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:8px}}",_o=(e,t)=>{const s=e.__vccOpts||e;for(const[o,n]of t)s[o]=n;return s},Ft={};function Sa(e){return e?(Ft[e]||(Ft[e]=new Promise((t,s)=>{const o=document.createElement("script");o.src=e,o.onload=()=>t(),o.onerror=()=>{delete Ft[e],s(new Error("failed to load "+e))},document.head.appendChild(o)})),Ft[e]):Promise.resolve()}function La(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((s,o)=>setTimeout(()=>o(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const Ea=` /* STRUCTURAL DISPLAY — the !important is deliberate, not a hack. This layout's display mode is load-bearing: it CANNOT function as a block. As a library/ (high-bar) component it ships across @@ -274,7 +274,7 @@ .vtl.rail-collapsed:dir(rtl) .vtl-tab { padding-left:12px; padding-right:10px; } .vtl.rail-collapsed:dir(rtl) .vtl-tier { padding-left:8px; padding-right:8px; } } -`,ka=fs({name:"VerticalTabsLayout",props:{active:{type:String,default:""},title:{type:String,default:""},items:{type:Array,default:()=>[]},groups:{type:Array,default:()=>[]},navLabel:{type:String,default:"Sections"},labels:{type:Object,default:()=>({})},initialNavOpen:{type:Boolean,default:!0},header:{type:Boolean,default:!0},initialRailCollapsed:{type:Boolean,default:!1}},emits:["update:active"],setup(){$o(Ea,"vertical-tabs-layout")},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{}}},computed:{railShown(){return this.narrow?this.navOpen:!0},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&&(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this.reconcileForWidth(),this._onMedia=e=>{this.narrow=e.matches,this.reconcileForWidth()},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))}catch{}this.$nextTick(()=>this.activateElement(this.active))},beforeUnmount(){try{this._mql&&this._onMedia&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia))}catch{}this._mql=null,this._onMedia=null},methods:{registerTab(e,t){t&&(this._tabEls[e]=t)},isNarrow(){return this.narrow},reconcileForWidth(){this.narrow?(this.navOpen=!1,this.railCollapsed=!1):this.navOpen=!0},label(e){const t={toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse"};return this.labels&&this.labels[e]||t[e]},expandRail(){!this.narrow&&this.railCollapsed&&(this.railCollapsed=!1)},toggleRail(){this.narrow?this.navOpen=!this.navOpen:this.railCollapsed=!this.railCollapsed},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(o=>o.key===e),s=this._hostSlots[e];!t||!s||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},Sa(t.src).then(()=>La(t.element)).then(()=>{s.innerHTML="";const o=document.createElement(t.element),n=t.attrs||{};for(const i in n){const l=n[i],r=l!=null&&typeof l=="object"?JSON.stringify(l):String(l);try{o[i]=l}catch{}try{o.setAttribute(i,r)}catch{}}o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(o),this.hostState={...this.hostState,[e]:"ready"}}).catch(o=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:o&&o.message||String(o)}}))},iconSvg(e){return e?Li(e):""},initial(e){const t=(e||"").trim();return t?t.charAt(0).toUpperCase():"•"},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(n=>n.key===e),o=t??(s&&s.open===!0);this.folderOverride={...this.folderOverride,[e]:!o}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const s=t.indexOf(this.active);let o=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")o=(s+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")o=(s-1+t.length)%t.length;else if(e.key==="Home")o=0;else if(e.key==="End")o=t.length-1;else return;e.preventDefault();const n=t[o];this.pick(n),this.$nextTick(()=>{const i=this._tabEls[n];i&&i.focus&&i.focus()})}}}),Ca={key:0,class:"vtl-top"},Ta=["aria-expanded","aria-label"],Oa={class:"vtl-brand"},Aa={class:"vtl-title"},Ma={class:"vtl-meta"},Pa=["aria-expanded","aria-label"],Ra={class:"vtl-body"},Na=["aria-label","aria-hidden","role","aria-orientation"],Ia=["aria-expanded","aria-label"],Ha=["innerHTML"],Da={class:"vtl-collapse-tx"},Fa=["aria-expanded","onClick"],ja={key:0,class:"vtl-cap"},Va={class:"vtl-tl"},za={key:1,class:"vtl-td"},Ka=["innerHTML"],Ua={key:1,class:"vtl-tier"},Ba={key:0,class:"vtl-cap"},Wa={class:"vtl-tl"},qa={key:1,class:"vtl-td"},Ga={class:"vtl-rows"},Xa=["aria-selected","tabindex","onClick"],Ya=["innerHTML"],Ja={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Za={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Qa={class:"vtl-tab-text"},ec={class:"vtl-tab-label"},tc={key:0,class:"vtl-tab-badge"},sc={key:0,class:"vtl-tab-sub"},oc=["innerHTML"],nc=["aria-selected","tabindex","onClick"],ic=["innerHTML"],lc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},rc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},ac={class:"vtl-tab-text"},cc={class:"vtl-tab-label"},dc={key:0,class:"vtl-tab-sub"},pc={class:"vtl-main"},fc={class:"vtl-content"},uc=["hidden"],hc={key:0,class:"vtl-host-hint"},gc={key:1,class:"vtl-host-hint err"};function bc(e,t,s,o,n,i){return E(),k("div",{class:_e(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header}])},[e.header?(E(),k("header",Ca,[L("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=l=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Ta),L("span",Oa,[Tt(e.$slots,"brand")]),L("b",Aa,M(e.title),1),L("span",Ma,[Tt(e.$slots,"meta")])])):Q("",!0),e.narrow&&!e.header&&!e.navOpen?(E(),k("button",{key:1,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=l=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,Pa)):Q("",!0),L("div",Ra,[L("nav",{class:"vtl-nav","aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[L("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[2]||(t[2]=(...l)=>e.toggleRail&&e.toggleRail(...l))},[L("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,Ha),L("span",Da,M(e.label("collapse")),1)],8,Ia),e.$slots.rail?Tt(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,0):e.groups&&e.groups.length?(E(!0),k(X,{key:1},Ke(e.groups,l=>(E(),k("div",{class:"vtl-grp",key:l.key},[l.folder?(E(),k("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(l)),onClick:r=>e.toggleFolder(l.key)},[l.badge?(E(),k("span",ja,M(l.badge),1)):Q("",!0),L("span",Va,M(l.label),1),l.count!=null?(E(),k("span",za,M(l.count),1)):Q("",!0),L("span",{class:_e(["vtl-chev",{open:!e.isFolderClosed(l)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,Ka)],8,Fa)):(E(),k("div",Ua,[l.badge?(E(),k("span",Ba,M(l.badge),1)):Q("",!0),L("span",Wa,M(l.label),1),l.count!=null?(E(),k("span",qa,M(l.count),1)):Q("",!0)])),ds(L("div",Ga,[(E(!0),k(X,null,Ke(l.rows,r=>(E(),k("button",{key:r.key,type:"button",role:"tab",class:_e(["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:a=>e.registerTab(r.key,a),onClick:a=>e.pick(r.key),onKeydown:t[3]||(t[3]=a=>e.onKey(a))},[r.icon?(E(),k("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,Ya)):r.emoji?(E(),k("span",Ja,M(r.emoji),1)):(E(),k("span",Za,M(e.initial(r.label)),1)),L("span",Qa,[L("span",ec,[gt(M(r.label),1),r.badge?(E(),k("span",tc,M(r.badge),1)):Q("",!0)]),r.sub?(E(),k("span",sc,[L("span",{innerHTML:r.sub},null,8,oc)])):Q("",!0)])],42,Xa))),128))],512),[[vo,!l.folder||!e.isFolderClosed(l)]])]))),128)):(E(!0),k(X,{key:2},Ke(e.items,l=>(E(),k("button",{key:l.key,type:"button",role:"tab",class:_e(["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:r=>e.registerTab(l.key,r),onClick:r=>e.pick(l.key),onKeydown:t[4]||(t[4]=r=>e.onKey(r))},[l.icon?(E(),k("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,ic)):l.emoji?(E(),k("span",lc,M(l.emoji),1)):(E(),k("span",rc,M(e.initial(l.label)),1)),L("span",ac,[L("span",cc,M(l.label),1),l.sub?(E(),k("span",dc,M(l.sub),1)):Q("",!0)])],42,nc))),128))],8,Na),L("main",pc,[e.header?Tt(e.$slots,"toolbar",{},void 0,void 0,0):Q("",!0),L("div",fc,[(E(!0),k(X,null,Ke(e.mountedElementRows,l=>ds((E(),k("section",{key:l.key,class:"vtl-host",hidden:l.key!==e.active},[L("div",{class:"vtl-host-slot",ref_for:!0,ref:r=>e.setHostSlot(l.key,r)},null,512),e.hostState[l.key]==="loading"?(E(),k("div",hc,"Loading "+M(l.label)+"…",1)):e.hostState[l.key]==="error"?(E(),k("div",gc,[gt(" Could not load "+M(l.label)+".",1),t[5]||(t[5]=L("br",null,null,-1)),L("small",null,M(e.hostError[l.key]),1)])):Q("",!0)],8,uc)),[[vo,l.key===e.active]])),128)),Tt(e.$slots,"default")])])])],2)}const vc=_o(ka,[["render",bc],["styles",[_a]]]),mc='.st{display:flex;flex-direction:column;margin:0 -12px}.st-bar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fff}.st-find{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;height:30px;padding:0 8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1;color:#6d766e}.st-find:focus-within{border-color:#92b195;background:#fff}.st-find-ic{display:inline-flex}.st-find-ic svg{width:14px;height:14px}.st-find-in{flex:1 1 auto;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:13px;color:#3b463d}.st-tool{flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:#6d766e;cursor:pointer}.st-tool:hover{background:#f3f3f1;color:#3b463d}.st-tool:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-tool svg{width:16px;height:16px}.st-tree{display:flex;flex-direction:column;padding:0 0 8px;outline:0}.st-row{position:relative;display:flex;align-items:center;gap:6px;height:28px;box-sizing:border-box;padding-block:0;padding-inline:calc(8px + var(--st-depth) * 14px) 10px;font-size:13px;color:#3b463d;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:0}.st-row:hover{background:#f3f3f1}.st-row:focus-visible{box-shadow:inset 0 0 0 1px #92b195}.st-row.active{background:#92b1953d}.st-row.active:after{content:"";position:absolute;inset-inline-start:0;top:4px;bottom:4px;width:3px;border-start-end-radius:3px;border-end-end-radius:3px;background:#92b195}.st-row.alias.active{background:#92b1951f}.st-sec{position:sticky;top:46px;z-index:2;height:30px;margin-top:6px;background:#fff;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6d766e;border-top:1px solid #eceee9}.st-sec:first-child{margin-top:0;border-top:0}.st-sec:hover{background:#fff;color:#3b463d}.st-cap{flex:0 0 auto;font:700 10px/1 system-ui,sans-serif;letter-spacing:.3px;padding:3px 6px;border-radius:999px;background:#92b195;color:#1d2a1f}.st-sec-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-twisty,.st-twisty-sp{flex:0 0 16px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#6d766e}.st-twisty svg{width:14px;height:14px;transition:transform .12s ease}.st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st:dir(rtl) .st-twisty svg{transform:scaleX(-1)}.st:dir(rtl) .st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st-ic{flex:0 0 16px;display:inline-flex;color:#6d766e}.st-ic svg{width:16px;height:16px}.st-row.active .st-ic{color:#5f8a63}.st-label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-desc{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;font:11px/1 ui-monospace,Menlo,monospace;color:#8a928b}.st-part{flex:0 0 auto;font:600 9px/1 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.3px;padding:2px 4px;border:1px solid #92b195;border-radius:4px;color:#5f8a63}.st-count{flex:0 0 auto;margin-inline-start:auto;min-width:18px;text-align:right;font-size:11px;font-weight:500;letter-spacing:0;color:#6d766e}.st-guide{position:absolute;top:0;bottom:0;inset-inline-start:calc(15px + var(--st-g) * 14px);border-inline-start:1px solid #dfe2db;pointer-events:none}.st-row:hover>.st-guide{border-inline-start-color:#c4c8c0}.st-empty{margin:12px;font-size:13px;color:#6d766e}.st-activity{display:flex;flex-direction:column;gap:4px}.st-act{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:44px;margin-inline-start:172px;padding:0;border:0;border-radius:10px;background:none;color:#6d766e;cursor:pointer}.st-act:hover,.st-act.active{background:#f3f3f1;color:#3b463d}.st-act:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-act-ic{display:inline-flex}.st-act-ic svg{width:20px;height:20px}.st-act-n{position:absolute;right:6px;bottom:5px;font:700 9px/1 system-ui,sans-serif;color:#5f8a63}',xc='.st { display:flex; flex-direction:column; margin:0 -12px; }.st-bar { position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:6px; padding:8px 12px 8px; background:#ffffff; }.st-find { flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:6px; height:30px; padding:0 8px; border:1px solid #d1d4cd; border-radius:8px; background:#f3f3f1; color:#6d766e; }.st-find:focus-within { border-color:#92b195; background:#ffffff; }.st-find-ic { display:inline-flex; } .st-find-ic svg { width:14px; height:14px; }.st-find-in { flex:1 1 auto; min-width:0; border:0; outline:0; background:none; font:inherit; font-size:13px; color:#3b463d; }.st-tool { flex:0 0 auto; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:8px; background:none; color:#6d766e; cursor:pointer; }.st-tool:hover { background:#f3f3f1; color:#3b463d; } .st-tool:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-tool svg { width:16px; height:16px; }.st-tree { display:flex; flex-direction:column; padding:0 0 8px; outline:0; }.st-row { position:relative; display:flex; align-items:center; gap:6px; height:28px; box-sizing:border-box; padding-block:0; padding-inline:calc(8px + var(--st-depth) * 14px) 10px; font-size:13px; color:#3b463d; cursor:pointer; white-space:nowrap; user-select:none; outline:0; }.st-row:hover { background:#f3f3f1; }.st-row:focus-visible { box-shadow:inset 0 0 0 1px #92b195; }.st-row.active { background:rgba(146,177,149,.24); }.st-row.active::after { content:""; position:absolute; inset-inline-start:0; top:4px; bottom:4px; width:3px; border-start-end-radius:3px; border-end-end-radius:3px; background:#92b195; }.st-row.alias.active { background:rgba(146,177,149,.12); }.st-sec { position:sticky; top:46px; z-index:2; height:30px; margin-top:6px; background:#ffffff; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#6d766e; border-top:1px solid #eceee9; }.st-sec:first-child { margin-top:0; border-top:0; }.st-sec:hover { background:#ffffff; color:#3b463d; }.st-cap { flex:0 0 auto; font:700 10px/1 system-ui,sans-serif; letter-spacing:.3px; padding:3px 6px; border-radius:999px; background:#92b195; color:#1d2a1f; }.st-sec-label { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-twisty, .st-twisty-sp { flex:0 0 16px; width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center; color:#6d766e; }.st-twisty svg { width:14px; height:14px; transition:transform .12s ease; }.st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st:dir(rtl) .st-twisty svg { transform:scaleX(-1); } .st:dir(rtl) .st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st-ic { flex:0 0 16px; display:inline-flex; color:#6d766e; } .st-ic svg { width:16px; height:16px; }.st-row.active .st-ic { color:#5f8a63; }.st-label { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-desc { flex:1 1 0; min-width:0; overflow:hidden; text-overflow:ellipsis; font:11px/1 ui-monospace,Menlo,monospace; color:#8a928b; }.st-part { flex:0 0 auto; font:600 9px/1 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.3px; padding:2px 4px; border:1px solid #92b195; border-radius:4px; color:#5f8a63; }.st-count { flex:0 0 auto; margin-inline-start:auto; min-width:18px; text-align:right; font-size:11px; font-weight:500; letter-spacing:0; color:#6d766e; }.st-guide { position:absolute; top:0; bottom:0; inset-inline-start:calc(15px + var(--st-g) * 14px); border-inline-start:1px solid #dfe2db; pointer-events:none; }.st-row:hover > .st-guide { border-inline-start-color:#c4c8c0; }.st-empty { margin:12px; font-size:13px; color:#6d766e; }.st-activity { display:flex; flex-direction:column; gap:4px; }.st-act { position:relative; display:flex; align-items:center; justify-content:center; width:48px; height:44px; margin-inline-start:172px; padding:0; border:0; border-radius:10px; background:none; color:#6d766e; cursor:pointer; }.st-act:hover, .st-act.active { background:#f3f3f1; color:#3b463d; }.st-act:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-act-ic { display:inline-flex; } .st-act-ic svg { width:20px; height:20px; }.st-act-n { position:absolute; right:6px; bottom:5px; font:700 9px/1 system-ui,sans-serif; color:#5f8a63; }',yc='',wc={filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",treeLabel:"Plugins by capability",openSection:"Open {cap}, {label}",part:"part"},$c='',_c=fs({name:"StudioTree",props:{sections:{type:Array,default:()=>[]},active:{type:String,default:""},collapsed:{type:Boolean,default:!1},pick:{type:Function,default:null},expand:{type:Function,default:null},strings:{type:Object,default:()=>({})}},emits:["select"],setup(){$o(xc,"studio-tree")},data(){const e=this.readState();return{query:"",focusId:"",secClosed:e.sec||{},nodeOpen:e.node||{},chev:$c,collapseAllSvg:yc}},computed:{byId(){const e=new Map;for(const t of this.sections)for(const s of t.nodes)e.set(s.id,s);return e},q(){return this.query.trim().toLowerCase()},kept(){if(!this.q)return null;const e=new Set;for(const t of this.sections)for(const s of t.nodes){if(!(s.label.toLowerCase().includes(this.q)||String(s.desc||"").toLowerCase().includes(this.q)))continue;e.add(s.id);let n=s.parent;for(;n;)e.add(n),n=this.byId.get(n)&&this.byId.get(n).parent}return e},visible(){const e=[];for(const t of this.sections){const s=this.kept?t.nodes.filter(o=>this.kept.has(o.id)):t.nodes;if(!(this.kept&&!s.length)&&(e.push({id:"sec:"+t.id,section:!0,sectionId:t.id,level:1,depth:0,expandable:!0,cap:t.cap,label:t.label,title:t.title||"",count:t.nodes.filter(o=>o.depth===0).length}),!(!this.kept&&this.secClosed[t.id])))for(const o of s)!this.kept&&!this.ancestorsOpen(o)||e.push({...o,sectionId:t.id,level:o.depth+2,expandable:!!o.kids,alias:o.depth>0})}return e},activeSectionId(){for(const e of this.sections)if(e.nodes.some(t=>t.depth===0&&t.target===this.active))return e.id;return""}},watch:{active:{handler(){this.reveal()},immediate:!0},sections(){this.reveal()},query(e){e&&this.visible.length&&(this.focusId=this.visible[0].id)}},methods:{svg(e){return e?Li(e):""},str(e,t){let s=this.strings[e]||wc[e]||e;if(t)for(const o in t)s=s.split("{"+o+"}").join(String(t[o]));return s},storageKey(){return"dx-studio-tree:"+(typeof location<"u"&&location.pathname||"")},readState(){try{return JSON.parse(window.localStorage.getItem(this.storageKey())||"{}")||{}}catch{return{}}},saveState(){try{window.localStorage.setItem(this.storageKey(),JSON.stringify({sec:this.secClosed,node:this.nodeOpen}))}catch{}},ancestorsOpen(e){let t=e.parent;for(;t;){if(!this.nodeOpen[t])return!1;t=this.byId.get(t)&&this.byId.get(t).parent}return!0},isOpen(e){return this.kept?!0:e.section?!this.secClosed[e.sectionId]:!!this.nodeOpen[e.id]},setOpen(e,t){e.section?this.secClosed={...this.secClosed,[e.sectionId]:!t}:this.nodeOpen={...this.nodeOpen,[e.id]:t},this.saveState()},toggle(e){e.expandable&&this.setOpen(e,!this.isOpen(e))},collapseAll(){this.nodeOpen={},this.saveState();const e=this.visible.find(t=>!t.section&&t.target===this.active&&t.depth===0);e&&(this.focusId=e.id)},rowClass(e){return{"st-row":!0,"st-sec":!!e.section,active:!e.section&&e.target===this.active,alias:!!e.alias}},setRow(e,t){this._rows||(this._rows={}),t?this._rows[e]=t:delete this._rows[e]},activate(e){if(e.section){this.toggle(e);return}e.expandable&&!this.isOpen(e)&&this.setOpen(e,!0),e.target&&(this.pick?this.pick(e.target):this.$emit("select",e.target))},onRowClick(e){this.focusId=e.id,this.activate(e)},focusRow(e){e&&(this.focusId=e,this.$nextTick(()=>{const t=this._rows&&this._rows[e];t&&(t.focus({preventScroll:!0}),t.scrollIntoView({block:"nearest"}))}))},onTreeKey(e){const t=this.visible;if(!t.length)return;const s=Math.max(0,t.findIndex(i=>i.id===this.focusId)),o=t[s],n=i=>i.section?"":i.parent||"sec:"+i.sectionId;switch(e.key){case"ArrowDown":this.focusRow((t[s+1]||o).id);break;case"ArrowUp":this.focusRow((t[s-1]||o).id);break;case"Home":this.focusRow(t[0].id);break;case"End":this.focusRow(t[t.length-1].id);break;case"ArrowRight":if(!o.expandable)break;this.isOpen(o)?t[s+1]&&t[s+1].level>o.level&&this.focusRow(t[s+1].id):this.setOpen(o,!0);break;case"ArrowLeft":o.expandable&&this.isOpen(o)&&!this.kept?this.setOpen(o,!1):this.focusRow(n(o));break;case"Enter":case" ":this.activate(o);break;default:if(e.key.length===1&&/\S/.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey){const i=e.key.toLowerCase(),r=t.slice(s+1).concat(t.slice(0,s+1)).find(a=>String(a.label).toLowerCase().startsWith(i));r&&this.focusRow(r.id);break}return}e.preventDefault()},onFindKey(e){e.key==="Escape"?(this.query="",e.preventDefault()):e.key==="ArrowDown"&&this.visible.length&&(this.focusRow(this.visible[0].id),e.preventDefault())},reveal(){if(!this.active||!this.sections.length)return;let e=null;for(const t of this.sections)if(e=t.nodes.find(s=>s.depth===0&&s.target===this.active),e){this.secClosed[t.id]&&(this.secClosed={...this.secClosed,[t.id]:!1},this.saveState());break}e&&((!this.focusId||!this.byId.has(this.focusId)||this.byId.get(this.focusId).target!==this.active)&&(this.focusId=e.id),this.$nextTick(()=>{const t=this._rows&&this._rows[e.id];t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest"})}))},openSectionFromActivity(e){this.secClosed[e]&&(this.secClosed={...this.secClosed,[e]:!1},this.saveState()),this.expand&&this.expand(),this.$nextTick(()=>this.focusRow("sec:"+e))}}}),Sc={key:0,class:"st-activity"},Lc=["aria-label","onClick"],Ec=["innerHTML"],kc={class:"st-act-n","aria-hidden":"true"},Cc={key:1,class:"st"},Tc={class:"st-bar"},Oc={class:"st-find"},Ac=["innerHTML"],Mc=["placeholder","aria-label"],Pc=["aria-label","title"],Rc=["innerHTML"],Nc=["aria-label"],Ic=["aria-level","aria-expanded","aria-selected","tabindex","title","onClick","onFocus"],Hc=["innerHTML"],Dc={class:"st-cap"},Fc={class:"st-sec-label"},jc={class:"st-count"},Vc=["innerHTML","onClick"],zc={key:1,class:"st-twisty-sp","aria-hidden":"true"},Kc=["innerHTML"],Uc={class:"st-label"},Bc={key:2,class:"st-part"},Wc={class:"st-desc"},qc={key:3,class:"st-count"},Gc={key:0,class:"st-empty"};function Xc(e,t,s,o,n,i){return e.collapsed?(E(),k("div",Sc,[(E(!0),k(X,null,Ke(e.sections,l=>(E(),k("button",{key:l.id,type:"button",class:_e(["st-act",{active:l.id===e.activeSectionId}]),"aria-label":e.str("openSection",{cap:"CAP "+l.cap,label:l.label}),onClick:r=>e.openSectionFromActivity(l.id)},[L("span",{class:"st-act-ic","aria-hidden":"true",innerHTML:e.svg(l.icon)},null,8,Ec),L("span",kc,M(l.cap),1)],10,Lc))),128))])):(E(),k("div",Cc,[L("div",Tc,[L("label",Oc,[L("span",{class:"st-find-ic","aria-hidden":"true",innerHTML:e.svg("search")},null,8,Ac),ds(L("input",{ref:"find",type:"search",class:"st-find-in","onUpdate:modelValue":t[0]||(t[0]=l=>e.query=l),placeholder:e.str("filterPlaceholder"),"aria-label":e.str("filterPlaceholder"),onKeydown:t[1]||(t[1]=(...l)=>e.onFindKey&&e.onFindKey(...l))},null,40,Mc),[[oa,e.query]])]),L("button",{type:"button",class:"st-tool","aria-label":e.str("collapseAll"),title:e.str("collapseAll"),onClick:t[2]||(t[2]=(...l)=>e.collapseAll&&e.collapseAll(...l))},[L("span",{"aria-hidden":"true",innerHTML:e.collapseAllSvg},null,8,Rc)],8,Pc)]),L("div",{class:"st-tree",role:"tree","aria-label":e.str("treeLabel"),onKeydown:t[3]||(t[3]=(...l)=>e.onTreeKey&&e.onTreeKey(...l))},[(E(!0),k(X,null,Ke(e.visible,l=>(E(),k("div",{key:l.id,ref_for:!0,ref:r=>e.setRow(l.id,r),role:"treeitem","aria-level":l.level,"aria-expanded":l.expandable?String(e.isOpen(l)):null,"aria-selected":l.section?null:String(l.target===e.active),tabindex:l.id===e.focusId?0:-1,class:_e(e.rowClass(l)),style:xt({"--st-depth":l.depth}),title:l.title||null,onClick:r=>e.onRowClick(l),onFocus:r=>e.focusId=l.id},[l.section?(E(),k(X,{key:0},[L("span",{class:"st-twisty","aria-hidden":"true",innerHTML:e.chev},null,8,Hc),L("span",Dc,"CAP "+M(l.cap),1),L("span",Fc,M(l.label),1),L("span",jc,M(l.count),1)],64)):(E(),k(X,{key:1},[(E(!0),k(X,null,Ke(l.depth,r=>(E(),k("span",{key:r,class:"st-guide",style:xt({"--st-g":r-1}),"aria-hidden":"true"},null,4))),128)),l.expandable?(E(),k("span",{key:0,class:"st-twisty","aria-hidden":"true",innerHTML:e.chev,onClick:la(r=>e.toggle(l),["stop"])},null,8,Vc)):(E(),k("span",zc)),L("span",{class:"st-ic","aria-hidden":"true",innerHTML:e.svg(l.icon)},null,8,Kc),L("span",Uc,M(l.label),1),l.part?(E(),k("span",Bc,M(e.str("part")),1)):Q("",!0),L("span",Wc,M(l.desc),1),l.expandable?(E(),k("span",qc,M(l.kids),1)):Q("",!0)],64))],46,Ic))),128)),e.query&&!e.visible.length?(E(),k("p",Gc,M(e.str("noMatch",{query:e.query})),1)):Q("",!0)],40,Nc)]))}const Yc=_o(_c,[["render",Xc],["styles",[mc]]]),So=[{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}],Jc=So.filter(e=>!e.hideFromSwitcher);function Zc(e){return So.find(t=>t.code===e)}function Ei(e){const t=String(e||"").split("-")[0].toLowerCase();return So.some(s=>s.code===t)?t:"en"}const ki="doxa-maps:locale";function Qc(){try{const e=localStorage.getItem(ki);if(e)return Ei(e)}catch{}return Ei(navigator==null?void 0:navigator.language)}function ed(e){try{localStorage.setItem(ki,e)}catch{}}const td=":host{display:block;position:relative;height:var(--plugin-studio-height, 85vh);min-height:480px}:host([hidden]){display:none}.ps-logo{display:inline-flex;align-items:center}.ps-logo svg{display:block}.ps-count{color:#6d766e}.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 #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer}.ps-locale-btn:hover{background:#d1d4cd}.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:#6d766e}.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 #d1d4cd;border-radius:10px;background:#fff;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:#3b463d;cursor:pointer}.ps-locale-opt:hover,.ps-locale-opt.active{background:#d1d4cd;color:#3b463d}.ps-locale-opt.active .ps-locale-name{color:#92b195}.ps-locale-en{margin-left:auto;font-size:11px;color:#6d766e}.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:#3b463d}.ps-bar-sub{display:block;font-size:12px;color:#6d766e}.ps-btn{font:inherit;font-size:12px;padding:5px 10px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer;white-space:nowrap}.ps-btn:hover{background:#d1d4cd}.ps-embed{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1}.ps-embed label{font-size:12px;color:#6d766e;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 #d1d4cd;border-radius:6px;background:#fff;color:#3b463d;padding:6px;resize:vertical}.ps-stage{position:absolute;top:10px;right:12px;bottom:12px;left:12px;border:1px solid #d1d4cd;border-radius:10px;overflow:hidden;background:#f3f3f1}.ps-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h: 0}.ps-slot{position:relative;min-height:100%}.ps-slot>*{min-height:0;max-height:none}.ps-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.ps-hint.err{color:#f87171}.ps-hint small{color:#6d766e}",sd=` +`,ka=fs({name:"VerticalTabsLayout",props:{active:{type:String,default:""},title:{type:String,default:""},items:{type:Array,default:()=>[]},groups:{type:Array,default:()=>[]},navLabel:{type:String,default:"Sections"},labels:{type:Object,default:()=>({})},initialNavOpen:{type:Boolean,default:!0},header:{type:Boolean,default:!0},initialRailCollapsed:{type:Boolean,default:!1}},emits:["update:active"],setup(){$o(Ea,"vertical-tabs-layout")},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{}}},computed:{railShown(){return this.narrow?this.navOpen:!0},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&&(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this.reconcileForWidth(),this._onMedia=e=>{this.narrow=e.matches,this.reconcileForWidth()},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))}catch{}this.$nextTick(()=>this.activateElement(this.active))},beforeUnmount(){try{this._mql&&this._onMedia&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia))}catch{}this._mql=null,this._onMedia=null},methods:{registerTab(e,t){t&&(this._tabEls[e]=t)},isNarrow(){return this.narrow},reconcileForWidth(){this.narrow?(this.navOpen=!1,this.railCollapsed=!1):this.navOpen=!0},label(e){const t={toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse"};return this.labels&&this.labels[e]||t[e]},expandRail(){!this.narrow&&this.railCollapsed&&(this.railCollapsed=!1)},toggleRail(){this.narrow?this.navOpen=!this.navOpen:this.railCollapsed=!this.railCollapsed},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(o=>o.key===e),s=this._hostSlots[e];!t||!s||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},Sa(t.src).then(()=>La(t.element)).then(()=>{s.innerHTML="";const o=document.createElement(t.element),n=t.attrs||{};for(const l in n){const i=n[l],r=i!=null&&typeof i=="object"?JSON.stringify(i):String(i);try{o[l]=i}catch{}try{o.setAttribute(l,r)}catch{}}o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(o),this.hostState={...this.hostState,[e]:"ready"}}).catch(o=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:o&&o.message||String(o)}}))},iconSvg(e){return e?Ei(e):""},initial(e){const t=(e||"").trim();return t?t.charAt(0).toUpperCase():"•"},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(n=>n.key===e),o=t??(s&&s.open===!0);this.folderOverride={...this.folderOverride,[e]:!o}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const s=t.indexOf(this.active);let o=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")o=(s+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")o=(s-1+t.length)%t.length;else if(e.key==="Home")o=0;else if(e.key==="End")o=t.length-1;else return;e.preventDefault();const n=t[o];this.pick(n),this.$nextTick(()=>{const l=this._tabEls[n];l&&l.focus&&l.focus()})}}}),Ca={key:0,class:"vtl-top"},Ta=["aria-expanded","aria-label"],Oa={class:"vtl-brand"},Aa={class:"vtl-title"},Ma={class:"vtl-meta"},Pa=["aria-expanded","aria-label"],Ra={class:"vtl-body"},Na=["aria-label","aria-hidden","role","aria-orientation"],Ia=["aria-expanded","aria-label"],Ha=["innerHTML"],Da={class:"vtl-collapse-tx"},Fa=["aria-expanded","onClick"],ja={key:0,class:"vtl-cap"},Va={class:"vtl-tl"},za={key:1,class:"vtl-td"},Ka=["innerHTML"],Ua={key:1,class:"vtl-tier"},Ba={key:0,class:"vtl-cap"},Wa={class:"vtl-tl"},qa={key:1,class:"vtl-td"},Ga={class:"vtl-rows"},Xa=["aria-selected","tabindex","onClick"],Ya=["innerHTML"],Ja={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Za={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Qa={class:"vtl-tab-text"},ec={class:"vtl-tab-label"},tc={key:0,class:"vtl-tab-badge"},sc={key:0,class:"vtl-tab-sub"},oc=["innerHTML"],nc=["aria-selected","tabindex","onClick"],ic=["innerHTML"],lc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},rc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},ac={class:"vtl-tab-text"},cc={class:"vtl-tab-label"},dc={key:0,class:"vtl-tab-sub"},pc={class:"vtl-main"},fc={class:"vtl-content"},uc=["hidden"],hc={key:0,class:"vtl-host-hint"},gc={key:1,class:"vtl-host-hint err"};function bc(e,t,s,o,n,l){return E(),k("div",{class:_e(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header}])},[e.header?(E(),k("header",Ca,[L("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=i=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Ta),L("span",Oa,[Tt(e.$slots,"brand")]),L("b",Aa,M(e.title),1),L("span",Ma,[Tt(e.$slots,"meta")])])):Q("",!0),e.narrow&&!e.header&&!e.navOpen?(E(),k("button",{key:1,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=i=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,Pa)):Q("",!0),L("div",Ra,[L("nav",{class:"vtl-nav","aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[L("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[2]||(t[2]=(...i)=>e.toggleRail&&e.toggleRail(...i))},[L("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,Ha),L("span",Da,M(e.label("collapse")),1)],8,Ia),e.$slots.rail?Tt(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,0):e.groups&&e.groups.length?(E(!0),k(X,{key:1},Ke(e.groups,i=>(E(),k("div",{class:"vtl-grp",key:i.key},[i.folder?(E(),k("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(i)),onClick:r=>e.toggleFolder(i.key)},[i.badge?(E(),k("span",ja,M(i.badge),1)):Q("",!0),L("span",Va,M(i.label),1),i.count!=null?(E(),k("span",za,M(i.count),1)):Q("",!0),L("span",{class:_e(["vtl-chev",{open:!e.isFolderClosed(i)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,Ka)],8,Fa)):(E(),k("div",Ua,[i.badge?(E(),k("span",Ba,M(i.badge),1)):Q("",!0),L("span",Wa,M(i.label),1),i.count!=null?(E(),k("span",qa,M(i.count),1)):Q("",!0)])),ds(L("div",Ga,[(E(!0),k(X,null,Ke(i.rows,r=>(E(),k("button",{key:r.key,type:"button",role:"tab",class:_e(["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:a=>e.registerTab(r.key,a),onClick:a=>e.pick(r.key),onKeydown:t[3]||(t[3]=a=>e.onKey(a))},[r.icon?(E(),k("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,Ya)):r.emoji?(E(),k("span",Ja,M(r.emoji),1)):(E(),k("span",Za,M(e.initial(r.label)),1)),L("span",Qa,[L("span",ec,[gt(M(r.label),1),r.badge?(E(),k("span",tc,M(r.badge),1)):Q("",!0)]),r.sub?(E(),k("span",sc,[L("span",{innerHTML:r.sub},null,8,oc)])):Q("",!0)])],42,Xa))),128))],512),[[vo,!i.folder||!e.isFolderClosed(i)]])]))),128)):(E(!0),k(X,{key:2},Ke(e.items,i=>(E(),k("button",{key:i.key,type:"button",role:"tab",class:_e(["vtl-tab",{active:i.key===e.active}]),"aria-selected":String(i.key===e.active),tabindex:i.key===e.active?0:-1,ref_for:!0,ref:r=>e.registerTab(i.key,r),onClick:r=>e.pick(i.key),onKeydown:t[4]||(t[4]=r=>e.onKey(r))},[i.icon?(E(),k("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(i.icon)},null,8,ic)):i.emoji?(E(),k("span",lc,M(i.emoji),1)):(E(),k("span",rc,M(e.initial(i.label)),1)),L("span",ac,[L("span",cc,M(i.label),1),i.sub?(E(),k("span",dc,M(i.sub),1)):Q("",!0)])],42,nc))),128))],8,Na),L("main",pc,[e.header?Tt(e.$slots,"toolbar",{},void 0,void 0,0):Q("",!0),L("div",fc,[(E(!0),k(X,null,Ke(e.mountedElementRows,i=>ds((E(),k("section",{key:i.key,class:"vtl-host",hidden:i.key!==e.active},[L("div",{class:"vtl-host-slot",ref_for:!0,ref:r=>e.setHostSlot(i.key,r)},null,512),e.hostState[i.key]==="loading"?(E(),k("div",hc,"Loading "+M(i.label)+"…",1)):e.hostState[i.key]==="error"?(E(),k("div",gc,[gt(" Could not load "+M(i.label)+".",1),t[5]||(t[5]=L("br",null,null,-1)),L("small",null,M(e.hostError[i.key]),1)])):Q("",!0)],8,uc)),[[vo,i.key===e.active]])),128)),Tt(e.$slots,"default")])])])],2)}const vc=_o(ka,[["render",bc],["styles",[_a]]]),mc='.st{display:flex;flex-direction:column;margin:0 -12px}.st-bar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fff}.st-find{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;height:30px;padding:0 8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1;color:#6d766e}.st-find:focus-within{border-color:#92b195;background:#fff}.st-find-ic{display:inline-flex}.st-find-ic svg{width:14px;height:14px}.st-find-in{flex:1 1 auto;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:13px;color:#3b463d}.st-tool{flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:#6d766e;cursor:pointer}.st-tool:hover{background:#f3f3f1;color:#3b463d}.st-tool:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-tool svg{width:16px;height:16px}.st-tree{display:flex;flex-direction:column;padding:0 0 8px;outline:0}.st-row{position:relative;display:flex;align-items:center;gap:6px;height:28px;box-sizing:border-box;padding-block:0;padding-inline:calc(8px + var(--st-depth) * 14px) 10px;font-size:13px;color:#3b463d;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:0}.st-row:hover{background:#f3f3f1}.st-row:focus-visible{box-shadow:inset 0 0 0 1px #92b195}.st-row.active{background:#92b1953d}.st-row.active:after{content:"";position:absolute;inset-inline-start:0;top:4px;bottom:4px;width:3px;border-start-end-radius:3px;border-end-end-radius:3px;background:#92b195}.st-row.alias.active{background:#92b1951f}.st-sec{position:sticky;top:46px;z-index:2;height:30px;margin-top:6px;background:#fff;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6d766e;border-top:1px solid #eceee9}.st-sec:first-child{margin-top:0;border-top:0}.st-sec:hover{background:#fff;color:#3b463d}.st-cap{flex:0 0 auto;font:700 10px/1 system-ui,sans-serif;letter-spacing:.3px;padding:3px 6px;border-radius:999px;background:#92b195;color:#1d2a1f}.st-sec-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-twisty,.st-twisty-sp{flex:0 0 16px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#6d766e}.st-twisty svg{width:14px;height:14px;transition:transform .12s ease}.st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st:dir(rtl) .st-twisty svg{transform:scaleX(-1)}.st:dir(rtl) .st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st-ic{flex:0 0 16px;display:inline-flex;color:#6d766e}.st-ic svg{width:16px;height:16px}.st-row.active .st-ic{color:#5f8a63}.st-label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-desc{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;font:11px/1 ui-monospace,Menlo,monospace;color:#8a928b}.st-part{flex:0 0 auto;font:600 9px/1 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.3px;padding:2px 4px;border:1px solid #92b195;border-radius:4px;color:#5f8a63}.st-count{flex:0 0 auto;margin-inline-start:auto;min-width:18px;text-align:right;font-size:11px;font-weight:500;letter-spacing:0;color:#6d766e}.st-guide{position:absolute;top:0;bottom:0;inset-inline-start:calc(15px + var(--st-g) * 14px);border-inline-start:1px solid #dfe2db;pointer-events:none}.st-row:hover>.st-guide{border-inline-start-color:#c4c8c0}.st-empty{margin:12px;font-size:13px;color:#6d766e}.st-activity{display:flex;flex-direction:column;gap:4px}.st-act{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:44px;margin-inline-start:172px;padding:0;border:0;border-radius:10px;background:none;color:#6d766e;cursor:pointer}.st-act:hover,.st-act.active{background:#f3f3f1;color:#3b463d}.st-act:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-act-ic{display:inline-flex}.st-act-ic svg{width:20px;height:20px}.st-act-n{position:absolute;right:6px;bottom:5px;font:700 9px/1 system-ui,sans-serif;color:#5f8a63}',xc='.st { display:flex; flex-direction:column; margin:0 -12px; }.st-bar { position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:6px; padding:8px 12px 8px; background:#ffffff; }.st-find { flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:6px; height:30px; padding:0 8px; border:1px solid #d1d4cd; border-radius:8px; background:#f3f3f1; color:#6d766e; }.st-find:focus-within { border-color:#92b195; background:#ffffff; }.st-find-ic { display:inline-flex; } .st-find-ic svg { width:14px; height:14px; }.st-find-in { flex:1 1 auto; min-width:0; border:0; outline:0; background:none; font:inherit; font-size:13px; color:#3b463d; }.st-tool { flex:0 0 auto; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:8px; background:none; color:#6d766e; cursor:pointer; }.st-tool:hover { background:#f3f3f1; color:#3b463d; } .st-tool:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-tool svg { width:16px; height:16px; }.st-tree { display:flex; flex-direction:column; padding:0 0 8px; outline:0; }.st-row { position:relative; display:flex; align-items:center; gap:6px; height:28px; box-sizing:border-box; padding-block:0; padding-inline:calc(8px + var(--st-depth) * 14px) 10px; font-size:13px; color:#3b463d; cursor:pointer; white-space:nowrap; user-select:none; outline:0; }.st-row:hover { background:#f3f3f1; }.st-row:focus-visible { box-shadow:inset 0 0 0 1px #92b195; }.st-row.active { background:rgba(146,177,149,.24); }.st-row.active::after { content:""; position:absolute; inset-inline-start:0; top:4px; bottom:4px; width:3px; border-start-end-radius:3px; border-end-end-radius:3px; background:#92b195; }.st-row.alias.active { background:rgba(146,177,149,.12); }.st-sec { position:sticky; top:46px; z-index:2; height:30px; margin-top:6px; background:#ffffff; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#6d766e; border-top:1px solid #eceee9; }.st-sec:first-child { margin-top:0; border-top:0; }.st-sec:hover { background:#ffffff; color:#3b463d; }.st-cap { flex:0 0 auto; font:700 10px/1 system-ui,sans-serif; letter-spacing:.3px; padding:3px 6px; border-radius:999px; background:#92b195; color:#1d2a1f; }.st-sec-label { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-twisty, .st-twisty-sp { flex:0 0 16px; width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center; color:#6d766e; }.st-twisty svg { width:14px; height:14px; transition:transform .12s ease; }.st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st:dir(rtl) .st-twisty svg { transform:scaleX(-1); } .st:dir(rtl) .st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st-ic { flex:0 0 16px; display:inline-flex; color:#6d766e; } .st-ic svg { width:16px; height:16px; }.st-row.active .st-ic { color:#5f8a63; }.st-label { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-desc { flex:1 1 0; min-width:0; overflow:hidden; text-overflow:ellipsis; font:11px/1 ui-monospace,Menlo,monospace; color:#8a928b; }.st-part { flex:0 0 auto; font:600 9px/1 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.3px; padding:2px 4px; border:1px solid #92b195; border-radius:4px; color:#5f8a63; }.st-count { flex:0 0 auto; margin-inline-start:auto; min-width:18px; text-align:right; font-size:11px; font-weight:500; letter-spacing:0; color:#6d766e; }.st-guide { position:absolute; top:0; bottom:0; inset-inline-start:calc(15px + var(--st-g) * 14px); border-inline-start:1px solid #dfe2db; pointer-events:none; }.st-row:hover > .st-guide { border-inline-start-color:#c4c8c0; }.st-empty { margin:12px; font-size:13px; color:#6d766e; }.st-activity { display:flex; flex-direction:column; gap:4px; }.st-act { position:relative; display:flex; align-items:center; justify-content:center; width:48px; height:44px; margin-inline-start:172px; padding:0; border:0; border-radius:10px; background:none; color:#6d766e; cursor:pointer; }.st-act:hover, .st-act.active { background:#f3f3f1; color:#3b463d; }.st-act:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-act-ic { display:inline-flex; } .st-act-ic svg { width:20px; height:20px; }.st-act-n { position:absolute; right:6px; bottom:5px; font:700 9px/1 system-ui,sans-serif; color:#5f8a63; }',yc='',wc={filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",treeLabel:"Plugins by capability",openSection:"Open {cap}, {label}",part:"part"},$c='',_c=fs({name:"StudioTree",props:{sections:{type:Array,default:()=>[]},active:{type:String,default:""},collapsed:{type:Boolean,default:!1},pick:{type:Function,default:null},expand:{type:Function,default:null},strings:{type:Object,default:()=>({})}},emits:["select"],setup(){$o(xc,"studio-tree")},data(){const e=this.readState();return{query:"",focusId:"",secClosed:e.sec||{},nodeOpen:e.node||{},chev:$c,collapseAllSvg:yc}},computed:{byId(){const e=new Map;for(const t of this.sections)for(const s of t.nodes)e.set(s.id,s);return e},q(){return this.query.trim().toLowerCase()},kept(){if(!this.q)return null;const e=new Set;for(const t of this.sections)for(const s of t.nodes){if(!(s.label.toLowerCase().includes(this.q)||String(s.desc||"").toLowerCase().includes(this.q)))continue;e.add(s.id);let n=s.parent;for(;n;)e.add(n),n=this.byId.get(n)&&this.byId.get(n).parent}return e},visible(){const e=[];for(const t of this.sections){const s=this.kept?t.nodes.filter(o=>this.kept.has(o.id)):t.nodes;if(!(this.kept&&!s.length)&&(e.push({id:"sec:"+t.id,section:!0,sectionId:t.id,level:1,depth:0,expandable:!0,cap:t.cap,label:t.label,title:t.title||"",count:t.nodes.filter(o=>o.depth===0).length}),!(!this.kept&&this.secClosed[t.id])))for(const o of s)!this.kept&&!this.ancestorsOpen(o)||e.push({...o,sectionId:t.id,level:o.depth+2,expandable:!!o.kids,alias:o.depth>0})}return e},activeSectionId(){for(const e of this.sections)if(e.nodes.some(t=>t.depth===0&&t.target===this.active))return e.id;return""}},watch:{active:{handler(){this.reveal()},immediate:!0},sections(){this.reveal()},query(e){e&&this.visible.length&&(this.focusId=this.visible[0].id)}},methods:{svg(e){return e?Ei(e):""},str(e,t){let s=this.strings[e]||wc[e]||e;if(t)for(const o in t)s=s.split("{"+o+"}").join(String(t[o]));return s},storageKey(){return"dx-studio-tree:"+(typeof location<"u"&&location.pathname||"")},readState(){try{return JSON.parse(window.localStorage.getItem(this.storageKey())||"{}")||{}}catch{return{}}},saveState(){try{window.localStorage.setItem(this.storageKey(),JSON.stringify({sec:this.secClosed,node:this.nodeOpen}))}catch{}},ancestorsOpen(e){let t=e.parent;for(;t;){if(!this.nodeOpen[t])return!1;t=this.byId.get(t)&&this.byId.get(t).parent}return!0},isOpen(e){return this.kept?!0:e.section?!this.secClosed[e.sectionId]:!!this.nodeOpen[e.id]},setOpen(e,t){e.section?this.secClosed={...this.secClosed,[e.sectionId]:!t}:this.nodeOpen={...this.nodeOpen,[e.id]:t},this.saveState()},toggle(e){e.expandable&&this.setOpen(e,!this.isOpen(e))},collapseAll(){this.nodeOpen={},this.saveState();const e=this.visible.find(t=>!t.section&&t.target===this.active&&t.depth===0);e&&(this.focusId=e.id)},rowClass(e){return{"st-row":!0,"st-sec":!!e.section,active:!e.section&&e.target===this.active,alias:!!e.alias}},setRow(e,t){this._rows||(this._rows={}),t?this._rows[e]=t:delete this._rows[e]},activate(e){if(e.section){this.toggle(e);return}e.expandable&&!this.isOpen(e)&&this.setOpen(e,!0),e.target&&(this.pick?this.pick(e.target):this.$emit("select",e.target))},onRowClick(e){this.focusId=e.id,this.activate(e)},focusRow(e){e&&(this.focusId=e,this.$nextTick(()=>{const t=this._rows&&this._rows[e];t&&(t.focus({preventScroll:!0}),t.scrollIntoView({block:"nearest"}))}))},onTreeKey(e){const t=this.visible;if(!t.length)return;const s=Math.max(0,t.findIndex(l=>l.id===this.focusId)),o=t[s],n=l=>l.section?"":l.parent||"sec:"+l.sectionId;switch(e.key){case"ArrowDown":this.focusRow((t[s+1]||o).id);break;case"ArrowUp":this.focusRow((t[s-1]||o).id);break;case"Home":this.focusRow(t[0].id);break;case"End":this.focusRow(t[t.length-1].id);break;case"ArrowRight":if(!o.expandable)break;this.isOpen(o)?t[s+1]&&t[s+1].level>o.level&&this.focusRow(t[s+1].id):this.setOpen(o,!0);break;case"ArrowLeft":o.expandable&&this.isOpen(o)&&!this.kept?this.setOpen(o,!1):this.focusRow(n(o));break;case"Enter":case" ":this.activate(o);break;default:if(e.key.length===1&&/\S/.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey){const l=e.key.toLowerCase(),r=t.slice(s+1).concat(t.slice(0,s+1)).find(a=>String(a.label).toLowerCase().startsWith(l));r&&this.focusRow(r.id);break}return}e.preventDefault()},onFindKey(e){e.key==="Escape"?(this.query="",e.preventDefault()):e.key==="ArrowDown"&&this.visible.length&&(this.focusRow(this.visible[0].id),e.preventDefault())},reveal(){if(!this.active||!this.sections.length)return;let e=null;for(const t of this.sections)if(e=t.nodes.find(s=>s.depth===0&&s.target===this.active),e){this.secClosed[t.id]&&(this.secClosed={...this.secClosed,[t.id]:!1},this.saveState());break}e&&((!this.focusId||!this.byId.has(this.focusId)||this.byId.get(this.focusId).target!==this.active)&&(this.focusId=e.id),this.$nextTick(()=>{const t=this._rows&&this._rows[e.id];t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest"})}))},openSectionFromActivity(e){this.secClosed[e]&&(this.secClosed={...this.secClosed,[e]:!1},this.saveState()),this.expand&&this.expand(),this.$nextTick(()=>this.focusRow("sec:"+e))}}}),Sc={key:0,class:"st-activity"},Lc=["aria-label","onClick"],Ec=["innerHTML"],kc={class:"st-act-n","aria-hidden":"true"},Cc={key:1,class:"st"},Tc={class:"st-bar"},Oc={class:"st-find"},Ac=["innerHTML"],Mc=["placeholder","aria-label"],Pc=["aria-label","title"],Rc=["innerHTML"],Nc=["aria-label"],Ic=["aria-level","aria-expanded","aria-selected","tabindex","title","onClick","onFocus"],Hc=["innerHTML"],Dc={class:"st-cap"},Fc={class:"st-sec-label"},jc={class:"st-count"},Vc=["innerHTML","onClick"],zc={key:1,class:"st-twisty-sp","aria-hidden":"true"},Kc=["innerHTML"],Uc={class:"st-label"},Bc={key:2,class:"st-part"},Wc={class:"st-desc"},qc={key:3,class:"st-count"},Gc={key:0,class:"st-empty"};function Xc(e,t,s,o,n,l){return e.collapsed?(E(),k("div",Sc,[(E(!0),k(X,null,Ke(e.sections,i=>(E(),k("button",{key:i.id,type:"button",class:_e(["st-act",{active:i.id===e.activeSectionId}]),"aria-label":e.str("openSection",{cap:"CAP "+i.cap,label:i.label}),onClick:r=>e.openSectionFromActivity(i.id)},[L("span",{class:"st-act-ic","aria-hidden":"true",innerHTML:e.svg(i.icon)},null,8,Ec),L("span",kc,M(i.cap),1)],10,Lc))),128))])):(E(),k("div",Cc,[L("div",Tc,[L("label",Oc,[L("span",{class:"st-find-ic","aria-hidden":"true",innerHTML:e.svg("search")},null,8,Ac),ds(L("input",{ref:"find",type:"search",class:"st-find-in","onUpdate:modelValue":t[0]||(t[0]=i=>e.query=i),placeholder:e.str("filterPlaceholder"),"aria-label":e.str("filterPlaceholder"),onKeydown:t[1]||(t[1]=(...i)=>e.onFindKey&&e.onFindKey(...i))},null,40,Mc),[[oa,e.query]])]),L("button",{type:"button",class:"st-tool","aria-label":e.str("collapseAll"),title:e.str("collapseAll"),onClick:t[2]||(t[2]=(...i)=>e.collapseAll&&e.collapseAll(...i))},[L("span",{"aria-hidden":"true",innerHTML:e.collapseAllSvg},null,8,Rc)],8,Pc)]),L("div",{class:"st-tree",role:"tree","aria-label":e.str("treeLabel"),onKeydown:t[3]||(t[3]=(...i)=>e.onTreeKey&&e.onTreeKey(...i))},[(E(!0),k(X,null,Ke(e.visible,i=>(E(),k("div",{key:i.id,ref_for:!0,ref:r=>e.setRow(i.id,r),role:"treeitem","aria-level":i.level,"aria-expanded":i.expandable?String(e.isOpen(i)):null,"aria-selected":i.section?null:String(i.target===e.active),tabindex:i.id===e.focusId?0:-1,class:_e(e.rowClass(i)),style:xt({"--st-depth":i.depth}),title:i.title||null,onClick:r=>e.onRowClick(i),onFocus:r=>e.focusId=i.id},[i.section?(E(),k(X,{key:0},[L("span",{class:"st-twisty","aria-hidden":"true",innerHTML:e.chev},null,8,Hc),L("span",Dc,"CAP "+M(i.cap),1),L("span",Fc,M(i.label),1),L("span",jc,M(i.count),1)],64)):(E(),k(X,{key:1},[(E(!0),k(X,null,Ke(i.depth,r=>(E(),k("span",{key:r,class:"st-guide",style:xt({"--st-g":r-1}),"aria-hidden":"true"},null,4))),128)),i.expandable?(E(),k("span",{key:0,class:"st-twisty","aria-hidden":"true",innerHTML:e.chev,onClick:la(r=>e.toggle(i),["stop"])},null,8,Vc)):(E(),k("span",zc)),L("span",{class:"st-ic","aria-hidden":"true",innerHTML:e.svg(i.icon)},null,8,Kc),L("span",Uc,M(i.label),1),i.part?(E(),k("span",Bc,M(e.str("part")),1)):Q("",!0),L("span",Wc,M(i.desc),1),i.expandable?(E(),k("span",qc,M(i.kids),1)):Q("",!0)],64))],46,Ic))),128)),e.query&&!e.visible.length?(E(),k("p",Gc,M(e.str("noMatch",{query:e.query})),1)):Q("",!0)],40,Nc)]))}const Yc=_o(_c,[["render",Xc],["styles",[mc]]]),So=[{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}],Jc=So.filter(e=>!e.hideFromSwitcher);function Zc(e){return So.find(t=>t.code===e)}function Lo(e){const t=String(e||"").split("-")[0].toLowerCase();return So.some(s=>s.code===t)?t:"en"}const ki="doxa-maps:locale";function Qc(){try{const e=localStorage.getItem(ki);if(e)return Lo(e)}catch{}return Lo(navigator==null?void 0:navigator.language)}function ed(e){try{localStorage.setItem(ki,e)}catch{}}const td=":host{display:block;position:relative;height:var(--plugin-studio-height, 85vh);min-height:480px}:host([hidden]){display:none}.ps-logo{display:inline-flex;align-items:center}.ps-logo svg{display:block}.ps-count{color:#6d766e}.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 #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer}.ps-locale-btn:hover{background:#d1d4cd}.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:#6d766e}.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 #d1d4cd;border-radius:10px;background:#fff;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:#3b463d;cursor:pointer}.ps-locale-opt:hover,.ps-locale-opt.active{background:#d1d4cd;color:#3b463d}.ps-locale-opt.active .ps-locale-name{color:#92b195}.ps-locale-en{margin-left:auto;font-size:11px;color:#6d766e}.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:#3b463d}.ps-bar-sub{display:block;font-size:12px;color:#6d766e}.ps-btn{font:inherit;font-size:12px;padding:5px 10px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer;white-space:nowrap}.ps-btn:hover{background:#d1d4cd}.ps-embed{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1}.ps-embed label{font-size:12px;color:#6d766e;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 #d1d4cd;border-radius:6px;background:#fff;color:#3b463d;padding:6px;resize:vertical}.ps-stage{position:absolute;top:10px;right:12px;bottom:12px;left:12px;border:1px solid #d1d4cd;border-radius:10px;overflow:hidden;background:#f3f3f1}.ps-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h: 0}.ps-slot{position:relative;min-height:100%}.ps-slot>*{min-height:0;max-height:none}.ps-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.ps-hint.err{color:#f87171}.ps-hint small{color:#6d766e}",sd=` :host { display:block; position:relative; height:var(--plugin-studio-height, 85vh); min-height:480px; } :host([hidden]) { display:none; } .ps-logo { display:inline-flex; align-items:center; } @@ -349,4 +349,4 @@ .ps-hint { position:absolute; inset:0; display:grid; place-items:center; text-align:center; color:#6d766e; font-size:13px; padding:20px; } .ps-hint.err { color:#f87171; } .ps-hint small { color:#6d766e; } -`,od={5:"App shell · nested-mfe-spa",4:"Composite element",3:"Multi-view element",2:"Preset element",1:"Single element"},Ci={"nested-mfe-spa":0,"nested-elements-mfe":1,monolithic:2,parameterized:3,single:4},nd=e=>Ci[e]!=null?5-Ci[e]:1,id={5:"nested-mfe-spa",4:"nested-elements-mfe",3:"monolithic",2:"parameterized",1:"single"},Lo={5:"monitor",4:"tree",3:"layers",2:"grid",1:"embed"},Ti=new Set(["doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-map","doxa-maps-spa","dashboard-plus-grid","research-dashboard-map","demo-map","all-people-groups","country-posters-map","key-cities-map","research-map-plus-grid"]),Oi=new Set(["big-picture"]),ks={};for(const[e,t]of Object.entries(Object.assign({"../../library/i18n/locales/ar/studio.json":pa,"../../library/i18n/locales/de/studio.json":fa,"../../library/i18n/locales/en/studio.json":ua,"../../library/i18n/locales/es/studio.json":ha,"../../library/i18n/locales/fr/studio.json":ga,"../../library/i18n/locales/hi/studio.json":ba,"../../library/i18n/locales/it/studio.json":va,"../../library/i18n/locales/pt/studio.json":ma,"../../library/i18n/locales/ro/studio.json":xa,"../../library/i18n/locales/ru/studio.json":ya,"../../library/i18n/locales/zh/studio.json":wa}))){const s=e.match(/locales\/([^/]+)\/studio\.json$/);s&&(ks[s[1]]=t)}const ld={"doxa-maps-spa/doxa-maps-spa":"Research Gallery"},jt={};function rd(e,t){return jt[e]||(jt[e]=new Promise((s,o)=>{const n=document.createElement("script");n.src=e,(/^\/plugin-designs\//.test(e)||/\/index\.js(\?|$)/.test(e))&&(n.type="module"),n.onload=()=>s(),n.onerror=()=>{delete jt[e],o(new Error("failed to load "+e))},document.head.appendChild(n)})),jt[e]}function ad(e,t){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():Promise.race([customElements.whenDefined(e),new Promise((s,o)=>setTimeout(()=>{customElements.get(e)||o(new Error("<"+e+"> never registered (bundle loaded but defined no element)"))},15e3))])}const cd=fs({name:"PluginStudio",inheritAttrs:!1,components:{VerticalTabsLayout:vc,StudioTree:Yc},props:{treeBase:{type:String,default:""},profileConfig:{type:[String,Object],default:""},provider:{type:String,default:""},heading:{type:String,default:""},tokenUrl:{type:String,default:""},tk:{type:String,default:""}},setup(){return $o(sd,"plugin-studio"),{injectedBase:kt("psTreeBase","")}},data(){return{activeKey:"",embedOpen:!1,locale:Qc(),localeOpen:!1,switcherLangs:Jc,rows:[],manifestBundles:[]}},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:od[t]||"capability "+t,rows:e[t]}))},treeSections(){const e=new Map(this.compositionTrees.map(t=>[t.nodes[0].selects,t]));return this.groups.map(t=>{const s=[];for(const o of t.rows){const n=e.get(o.key);if(s.push({id:o.key,parent:"",depth:0,label:o.label,desc:o.tag,icon:o.icon,target:o.key,kids:n?n.nodes[0].kids:0,title:o.label+" · <"+o.tag+"> · CAP "+o.cap+" "+this.tr("cap"+o.cap)}),!n)continue;const i=l=>l===0?o.key:o.key+">"+l;for(const l of n.nodes.slice(1))s.push({id:i(l.id),parent:i(l.ancestors[l.ancestors.length-1]),depth:l.depth,label:l.label,part:!!l.part,target:l.selects||"",icon:l.part?"dots":Lo[l.cap]||"embed",desc:l.part?this.tr("noStandalone"):"cap "+l.cap+" · "+l.tag,kids:l.kids||0,title:l.part?l.label+" · "+this.tr("partOf",{name:o.label}):l.label+" · <"+l.tag+"> · CAP "+l.cap+" "+this.tr("cap"+l.cap)})}return{id:"cap-"+t.cap,cap:t.cap,label:this.tr("cap"+t.cap),title:this.tr("cap"+t.cap)+" · "+(id[t.cap]||""),icon:Lo[t.cap]||"embed",nodes:s}})},compositionTrees(){const e=[],t=(s,o,n,i,l)=>{const r=this.manifestBundles.find(y=>y.bundle===s.bundle),a=s.cap>=4&&r&&r.composes||[],f=[],p=[],h=new Set;for(const y of a){const S=this.resolveRef(y,s.bundle);if(!S){p.push(y);continue}S.key===s.key||h.has(S.key)||(h.add(S.key),f.push(S))}f.sort((y,S)=>S.cap-y.cap||y.label.localeCompare(S.label));for(const y of f){const S={id:i.length,label:y.label,tag:y.tag,cap:y.cap,selects:y.key,depth:o+1,ancestors:l,kids:0};i.push(S);const j=i.length;n.has(y.key)||t(y,o+1,new Set([...n,y.key]),i,[...l,S.id]),S.kids=i.filter((N,ee)=>ee>=j&&N.depth===o+2).length}for(const y of p)i.push({id:i.length,label:y,part:!0,selects:s.key,depth:o+1,ancestors:l,kids:0})};for(const s of this.manifestBundles){if(!s.composes||!s.composes.length||Oi.has(s.bundle))continue;const o=this.rows.find(i=>i.bundle===s.bundle);if(!o)continue;const n=[{id:0,label:o.label,tag:o.tag,cap:o.cap,selects:o.key,depth:0,ancestors:[]}];t(o,0,new Set([o.key]),n,[0]),n[0].kids=n.filter(i=>i.depth===1).length,n.length>1&&e.push({bundle:s.bundle,nodes:n})}return e},active(){return this.rows.find(e=>e.key===this.activeKey)||null},countLabel(){const e=new Set(this.rows.map(t=>t.bundle)).size;return this.tr("countLabel",{bundles:e,elements:this.rows.length})},activeLang(){return Zc(this.locale)||{code:this.locale,flag:"🌐",nativeName:this.locale}},uiDir(){return(this.activeLang&&this.activeLang.dir)==="rtl"?"rtl":"ltr"}},mounted(){this.loadManifest()},methods:{tr(e,t){const s=(this.locale||"en").split("-")[0];let o=(ks[this.locale]||{})[e]||(ks[s]||{})[e]||(ks.en||{})[e]||e;if(t)for(const n in t)o=o.split("{"+n+"}").join(String(t[n]));return o},resolveRef(e,t){return t&&this.rows.find(s=>s.key===t+"/"+e)||this.rows.find(s=>s.key===e)||this.rows.find(s=>s.tag===e)||this.rows.find(s=>s.bundle===e)||null},setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},setLocale(e){this.locale=e,this.localeOpen=!1,ed(e);try{const t=this.active,s=this._slots&&this._slots[this.activeKey],o=s&&s.firstElementChild;if(o&&o.setAttribute&&t){const n={profile:t.profile,instanceId:"ps-"+this.activeKey.replace(/\//g,"-"),locale:e};(this.tk||this.cfg.tk)&&(n.tk=this.tk||this.cfg.tk),o.setAttribute("profile-config",JSON.stringify(n))}}catch{}},resolve(e){const t=String(e);if(/^(https?:)?\/\//.test(t)||t.startsWith("/"))return t;const s=t.replace(/^\.\//,"");return this.base?this.base.replace(/\/+$/,"")+"/"+s:"../"+s},loadManifest(){const e=s=>{this.manifestBundles=s&&s.bundles||[],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.resolve("manifest.json"):"../manifest.json";fetch(s,{cache:"no-cache"}).then(o=>o.ok?o.json():null).then(o=>e(o||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"||Oi.has(s.bundle)))for(const o of s.profiles||[]){const n=s.elements&&s.elements.length?s.elements:null,i=(o.element&&(!n||n.includes(o.element))?o.element:null)||n&&n[0]||o.element||s.bundle,l=nd(o.type||"single"),r=Ti.has(i)||Ti.has(s.bundle);t.push({key:s.bundle+"/"+o.profile,bundle:s.bundle,label:ld[s.bundle+"/"+o.profile]||o.profile,profile:o.profile,tag:i,cap:l,icon:Lo[l]||"embed",description:o.description||"",heavy:r,bundleJs:s.scriptUrl||s.bundle+"/"+s.bundle+".js",embed:o.embed&&o.embed.script||"",mounted:!1,state:"idle",error:""})}return t.sort((s,o)=>o.cap-s.cap||s.bundle.localeCompare(o.bundle)||s.label.localeCompare(o.label)),t},route(){const e=(typeof location<"u"&&location.hash||"").replace(/^#\/?/,"");if(e&&this.rows.some(s=>s.key===e)){this.select(e);return}const t=this.readLastTab();if(t&&this.rows.some(s=>s.key===t)){this.select(t);return}this.rows.length&&this.select(this.rows[0].key)},storageKey(){return"dx-studio-tab:"+(typeof location<"u"&&location.pathname||"")},readLastTab(){try{return window.localStorage.getItem(this.storageKey())||""}catch{return""}},writeLastTab(e){try{window.localStorage.setItem(this.storageKey(),e)}catch{}},select(e){if(!this.rows.some(o=>o.key===e))return;const t=this.activeKey;if(this.activeKey=e,this.embedOpen=!1,t&&t!==e){const o=this.rows.find(n=>n.key===t);o&&o.heavy&&o.mounted&&this.releaseRow(o)}const s=this.rows.find(o=>o.key===e);s&&(this.writeLastTab(e),s.mounted||this.$nextTick(()=>{this.activeKey===s.key&&this.mountElement(s)}))},releaseRow(e){try{const t=this._slots&&this._slots[e.key];t&&(t.innerHTML="")}catch{}this._slots&&delete this._slots[e.key],e.mounted=!1,e.state="idle",e.error=""},mountElement(e){e.mounted=!0,e.state="loading";const t=this.resolve(e.bundleJs);rd(t).then(()=>ad(e.tag)).then(()=>{try{if(e.heavy&&this.activeKey!==e.key){e.mounted=!1,e.state="idle";return}const s=this._slots&&this._slots[e.key];if(!s){e.state="error",e.error="no slot";return}s.innerHTML="";const o=document.createElement(e.tag),n={profile:e.profile,instanceId:"ps-"+e.key.replace(/\//g,"-"),locale:this.locale};(this.tk||this.cfg.tk)&&(n.tk=this.tk||this.cfg.tk),(this.tokenUrl||this.cfg.tokenUrl)&&(n.tokenUrl=this.tokenUrl||this.cfg.tokenUrl);const i=this.provider||this.cfg.provider;(i==="maplibre"||i==="mapbox")&&(n.provider=i),this.base&&(n.treeBase=this.base),o.setAttribute("profile-config",JSON.stringify(n)),this.base&&o.setAttribute("tree-base",this.base.replace(/\/+$/,"")),o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(o),e.state="ready"}catch(s){e.state="error",e.error="mount failed: "+(s&&s.message||String(s))}}).catch(s=>{e.state="error",e.error=s&&s.message||String(s)})},copyText(e,t){const s=()=>{const o=t.textContent;t.textContent=this.tr("copied"),setTimeout(()=>{t.textContent=o},1200)};if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(e).then(s,()=>{});else try{const o=document.createElement("textarea");o.value=e,document.body.appendChild(o),o.select(),document.execCommand("copy"),document.body.removeChild(o),s()}catch{}}}}),dd={class:"ps-count"},pd={class:"ps-locale"},fd=["aria-expanded","aria-label"],ud={class:"ps-flag"},hd={class:"ps-locale-name"},gd={key:0,class:"ps-locale-menu",role:"listbox"},bd=["aria-selected"],vd=["onClick"],md={class:"ps-flag"},xd={class:"ps-locale-name"},yd={class:"ps-locale-en"},wd={key:0,class:"ps-toolbar"},$d={class:"ps-bar"},_d={class:"ps-bar-t"},Sd={class:"ps-bar-sub"},Ld={key:0},Ed=["aria-expanded"],kd={key:0,class:"ps-embed"},Cd=["value"],Td={class:"ps-stage"},Od=["hidden"],Ad={key:0,class:"ps-hint"},Md={key:1,class:"ps-hint err"},Pd={key:0,class:"ps-hint"};function Rd(e,t,s,o,n,i){const l=Sn("StudioTree"),r=Sn("VerticalTabsLayout");return E(),ms(r,{title:e.heading||e.tr("title"),dir:e.uiDir,"nav-label":e.tr("navLabel"),labels:{toggleList:e.tr("toggleList"),openViews:e.tr("openViews"),expandList:e.tr("expandList"),collapseList:e.tr("collapseList"),collapse:e.tr("collapse")},header:!0,active:e.activeKey,"onUpdate:active":e.select},{rail:pt(({collapsed:a,expand:f,pick:p})=>[ve(l,{sections:e.treeSections,active:e.activeKey,collapsed:a,expand:f,pick:p,strings:{filterPlaceholder:e.tr("filterPlaceholder"),collapseAll:e.tr("collapseAll"),noMatch:e.tr("noMatch"),treeLabel:e.tr("navLabel"),openSection:e.tr("openSection"),part:e.tr("part")}},null,8,["sections","active","collapsed","expand","pick","strings"])]),brand:pt(()=>[...t[3]||(t[3]=[L("span",{class:"ps-logo","aria-hidden":"true"},[L("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#92b195","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[L("path",{d:"M10 3v3M14 3v3M7 6h10v5a5 5 0 0 1-10 0V6Z"}),L("path",{d:"M12 16v5"})])],-1)])]),meta:pt(()=>[L("span",dd,M(e.countLabel),1),L("span",pd,[L("button",{type:"button",class:"ps-locale-btn","aria-expanded":String(e.localeOpen),"aria-label":e.tr("changeLanguage"),onClick:t[0]||(t[0]=a=>e.localeOpen=!e.localeOpen)},[L("span",ud,M(e.activeLang.flag),1),L("span",hd,M(e.activeLang.nativeName),1),t[4]||(t[4]=L("span",{class:"ps-dots","aria-hidden":"true"},"⋮",-1))],8,fd),e.localeOpen?(E(),k("ul",gd,[(E(!0),k(X,null,Ke(e.switcherLangs,a=>(E(),k("li",{key:a.code,role:"option","aria-selected":String(a.code===e.locale)},[L("button",{type:"button",class:_e(["ps-locale-opt",{active:a.code===e.locale}]),onClick:f=>e.setLocale(a.code)},[L("span",md,M(a.flag),1),L("span",xd,M(a.nativeName),1),L("span",yd,M(a.name),1)],10,vd)],8,bd))),128))])):Q("",!0)])]),toolbar:pt(()=>[e.active?(E(),k("div",wd,[L("div",$d,[L("div",_d,[L("b",null,M(e.active.label),1),L("span",Sd,[gt(M(e.active.bundle)+" · <"+M(e.active.tag)+">",1),e.active.description?(E(),k("span",Ld," · "+M(e.active.description),1)):Q("",!0)])]),e.active.embed?(E(),k("button",{key:0,type:"button",class:"ps-btn","aria-expanded":String(e.embedOpen),onClick:t[1]||(t[1]=a=>e.embedOpen=!e.embedOpen)},M(e.tr("copyEmbed")),9,Ed)):Q("",!0)]),e.embedOpen&&e.active.embed?(E(),k("div",kd,[L("label",null,[gt(M(e.tr("scriptEmbed"))+" ",1),L("button",{type:"button",class:"ps-btn",onClick:t[2]||(t[2]=a=>e.copyText(e.active.embed,a.target))},M(e.tr("copy")),1)]),L("textarea",{readonly:"",value:e.active.embed},null,8,Cd)])):Q("",!0)])):Q("",!0)]),default:pt(()=>[L("div",Td,[(E(!0),k(X,null,Ke(e.flatRows,a=>ds((E(),k("section",{key:a.key,class:"ps-pane",hidden:a.key!==e.activeKey},[!a.heavy||a.key===e.activeKey?(E(),k(X,{key:0},[L("div",{class:"ps-slot",ref_for:!0,ref:f=>e.setSlot(a.key,f)},null,512),a.state==="loading"?(E(),k("div",Ad,M(e.tr("loading",{name:a.label})),1)):a.state==="error"?(E(),k("div",Md,[gt(M(e.tr("couldNotLoad",{name:a.label})),1),t[5]||(t[5]=L("br",null,null,-1)),L("small",null,M(a.error),1)])):Q("",!0)],64)):Q("",!0)],8,Od)),[[vo,a.key===e.activeKey]])),128)),e.activeKey?Q("",!0):(E(),k("div",Pd,M(e.tr("chooseElement")),1))])]),_:1},8,["title","dir","nav-label","labels","active","onUpdate:active"])}const Nd=_o(cd,[["render",Rd],["styles",[td]]]);function Id(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const Hd=Id(),Dd=ea(Nd,{configureApp(e){e.provide("psTreeBase",Hd)}});typeof customElements<"u"&&!customElements.get("plugin-studio")&&customElements.define("plugin-studio",Dd)})(); +`,od={5:"App shell · nested-mfe-spa",4:"Composite element",3:"Multi-view element",2:"Preset element",1:"Single element"},Ci={"nested-mfe-spa":0,"nested-elements-mfe":1,monolithic:2,parameterized:3,single:4},nd=e=>Ci[e]!=null?5-Ci[e]:1,id={5:"nested-mfe-spa",4:"nested-elements-mfe",3:"monolithic",2:"parameterized",1:"single"},Eo={5:"monitor",4:"tree",3:"layers",2:"grid",1:"embed"},Ti=new Set(["doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-map","doxa-maps-spa","dashboard-plus-grid","research-dashboard-map","demo-map","all-people-groups","country-posters-map","key-cities-map","research-map-plus-grid"]),Oi=new Set(["big-picture"]),ks={};for(const[e,t]of Object.entries(Object.assign({"../../library/i18n/locales/ar/studio.json":pa,"../../library/i18n/locales/de/studio.json":fa,"../../library/i18n/locales/en/studio.json":ua,"../../library/i18n/locales/es/studio.json":ha,"../../library/i18n/locales/fr/studio.json":ga,"../../library/i18n/locales/hi/studio.json":ba,"../../library/i18n/locales/it/studio.json":va,"../../library/i18n/locales/pt/studio.json":ma,"../../library/i18n/locales/ro/studio.json":xa,"../../library/i18n/locales/ru/studio.json":ya,"../../library/i18n/locales/zh/studio.json":wa}))){const s=e.match(/locales\/([^/]+)\/studio\.json$/);s&&(ks[s[1]]=t)}const ld={"doxa-maps-spa/doxa-maps-spa":"Research Gallery"},jt={};function rd(e,t){return jt[e]||(jt[e]=new Promise((s,o)=>{const n=document.createElement("script");n.src=e,(/^\/plugin-designs\//.test(e)||/\/index\.js(\?|$)/.test(e))&&(n.type="module"),n.onload=()=>s(),n.onerror=()=>{delete jt[e],o(new Error("failed to load "+e))},document.head.appendChild(n)})),jt[e]}function ad(e,t){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():Promise.race([customElements.whenDefined(e),new Promise((s,o)=>setTimeout(()=>{customElements.get(e)||o(new Error("<"+e+"> never registered (bundle loaded but defined no element)"))},15e3))])}const cd=fs({name:"PluginStudio",inheritAttrs:!1,components:{VerticalTabsLayout:vc,StudioTree:Yc},props:{treeBase:{type:String,default:""},profileConfig:{type:[String,Object],default:""},provider:{type:String,default:""},heading:{type:String,default:""},tokenUrl:{type:String,default:""},tk:{type:String,default:""}},setup(){return $o(sd,"plugin-studio"),{injectedBase:kt("psTreeBase","")}},data(){return{activeKey:"",embedOpen:!1,locale:this.initialLocale(),localeOpen:!1,switcherLangs:Jc,rows:[],manifestBundles:[]}},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:od[t]||"capability "+t,rows:e[t]}))},treeSections(){const e=new Map(this.compositionTrees.map(t=>[t.nodes[0].selects,t]));return this.groups.map(t=>{const s=[];for(const o of t.rows){const n=e.get(o.key);if(s.push({id:o.key,parent:"",depth:0,label:o.label,desc:o.tag,icon:o.icon,target:o.key,kids:n?n.nodes[0].kids:0,title:o.label+" · <"+o.tag+"> · CAP "+o.cap+" "+this.tr("cap"+o.cap)}),!n)continue;const l=i=>i===0?o.key:o.key+">"+i;for(const i of n.nodes.slice(1))s.push({id:l(i.id),parent:l(i.ancestors[i.ancestors.length-1]),depth:i.depth,label:i.label,part:!!i.part,target:i.selects||"",icon:i.part?"dots":Eo[i.cap]||"embed",desc:i.part?this.tr("noStandalone"):"cap "+i.cap+" · "+i.tag,kids:i.kids||0,title:i.part?i.label+" · "+this.tr("partOf",{name:o.label}):i.label+" · <"+i.tag+"> · CAP "+i.cap+" "+this.tr("cap"+i.cap)})}return{id:"cap-"+t.cap,cap:t.cap,label:this.tr("cap"+t.cap),title:this.tr("cap"+t.cap)+" · "+(id[t.cap]||""),icon:Eo[t.cap]||"embed",nodes:s}})},compositionTrees(){const e=[],t=(s,o,n,l,i)=>{const r=this.manifestBundles.find(y=>y.bundle===s.bundle),a=s.cap>=4&&r&&r.composes||[],f=[],p=[],h=new Set;for(const y of a){const S=this.resolveRef(y,s.bundle);if(!S){p.push(y);continue}S.key===s.key||h.has(S.key)||(h.add(S.key),f.push(S))}f.sort((y,S)=>S.cap-y.cap||y.label.localeCompare(S.label));for(const y of f){const S={id:l.length,label:y.label,tag:y.tag,cap:y.cap,selects:y.key,depth:o+1,ancestors:i,kids:0};l.push(S);const j=l.length;n.has(y.key)||t(y,o+1,new Set([...n,y.key]),l,[...i,S.id]),S.kids=l.filter((N,ee)=>ee>=j&&N.depth===o+2).length}for(const y of p)l.push({id:l.length,label:y,part:!0,selects:s.key,depth:o+1,ancestors:i,kids:0})};for(const s of this.manifestBundles){if(!s.composes||!s.composes.length||Oi.has(s.bundle))continue;const o=this.rows.find(l=>l.bundle===s.bundle);if(!o)continue;const n=[{id:0,label:o.label,tag:o.tag,cap:o.cap,selects:o.key,depth:0,ancestors:[]}];t(o,0,new Set([o.key]),n,[0]),n[0].kids=n.filter(l=>l.depth===1).length,n.length>1&&e.push({bundle:s.bundle,nodes:n})}return e},active(){return this.rows.find(e=>e.key===this.activeKey)||null},countLabel(){const e=new Set(this.rows.map(t=>t.bundle)).size;return this.tr("countLabel",{bundles:e,elements:this.rows.length})},activeLang(){return Zc(this.locale)||{code:this.locale,flag:"🌐",nativeName:this.locale}},uiDir(){return(this.activeLang&&this.activeLang.dir)==="rtl"?"rtl":"ltr"}},mounted(){this.loadManifest()},methods:{tr(e,t){const s=(this.locale||"en").split("-")[0];let o=(ks[this.locale]||{})[e]||(ks[s]||{})[e]||(ks.en||{})[e]||e;if(t)for(const n in t)o=o.split("{"+n+"}").join(String(t[n]));return o},resolveRef(e,t){return t&&this.rows.find(s=>s.key===t+"/"+e)||this.rows.find(s=>s.key===e)||this.rows.find(s=>s.tag===e)||this.rows.find(s=>s.bundle===e)||null},setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},initialLocale(){let e=this.profileConfig;if(typeof e=="string")try{e=e?JSON.parse(e):{}}catch{e={}}let t="";try{const o=new URLSearchParams(window.location.search);t=o.get("lang")||o.get("locale")||""}catch{}const s=e&&(e.locale||e.lang)||t;return s?Lo(s):Qc()},paneConfig(e,t){const s={profile:e.profile,instanceId:"ps-"+e.key.replace(/\//g,"-"),locale:t};(this.tk||this.cfg.tk)&&(s.tk=this.tk||this.cfg.tk),(this.tokenUrl||this.cfg.tokenUrl)&&(s.tokenUrl=this.tokenUrl||this.cfg.tokenUrl);const o=this.provider||this.cfg.provider;return(o==="maplibre"||o==="mapbox")&&(s.provider=o),this.base&&(s.treeBase=this.base),s},setLocale(e){this.locale=e,this.localeOpen=!1,ed(e);try{const t=this.active,s=this._slots&&this._slots[this.activeKey],o=s&&s.firstElementChild;o&&o.setAttribute&&t&&o.setAttribute("profile-config",JSON.stringify(this.paneConfig(t,e)))}catch{}},resolve(e){const t=String(e);if(/^(https?:)?\/\//.test(t)||t.startsWith("/"))return t;const s=t.replace(/^\.\//,"");return this.base?this.base.replace(/\/+$/,"")+"/"+s:"../"+s},loadManifest(){const e=s=>{this.manifestBundles=s&&s.bundles||[],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.resolve("manifest.json"):"../manifest.json";fetch(s,{cache:"no-cache"}).then(o=>o.ok?o.json():null).then(o=>e(o||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"||Oi.has(s.bundle)))for(const o of s.profiles||[]){const n=s.elements&&s.elements.length?s.elements:null,l=(o.element&&(!n||n.includes(o.element))?o.element:null)||n&&n[0]||o.element||s.bundle,i=nd(o.type||"single"),r=Ti.has(l)||Ti.has(s.bundle);t.push({key:s.bundle+"/"+o.profile,bundle:s.bundle,label:ld[s.bundle+"/"+o.profile]||o.profile,profile:o.profile,tag:l,cap:i,icon:Eo[i]||"embed",description:o.description||"",heavy:r,bundleJs:s.scriptUrl||s.bundle+"/"+s.bundle+".js",embed:o.embed&&o.embed.script||"",mounted:!1,state:"idle",error:""})}return t.sort((s,o)=>o.cap-s.cap||s.bundle.localeCompare(o.bundle)||s.label.localeCompare(o.label)),t},route(){const e=(typeof location<"u"&&location.hash||"").replace(/^#\/?/,"");if(e&&this.rows.some(s=>s.key===e)){this.select(e);return}const t=this.readLastTab();if(t&&this.rows.some(s=>s.key===t)){this.select(t);return}this.rows.length&&this.select(this.rows[0].key)},storageKey(){return"dx-studio-tab:"+(typeof location<"u"&&location.pathname||"")},readLastTab(){try{return window.localStorage.getItem(this.storageKey())||""}catch{return""}},writeLastTab(e){try{window.localStorage.setItem(this.storageKey(),e)}catch{}},select(e){if(!this.rows.some(o=>o.key===e))return;const t=this.activeKey;if(this.activeKey=e,this.embedOpen=!1,t&&t!==e){const o=this.rows.find(n=>n.key===t);o&&o.heavy&&o.mounted&&this.releaseRow(o)}const s=this.rows.find(o=>o.key===e);s&&(this.writeLastTab(e),s.mounted||this.$nextTick(()=>{this.activeKey===s.key&&this.mountElement(s)}))},releaseRow(e){try{const t=this._slots&&this._slots[e.key];t&&(t.innerHTML="")}catch{}this._slots&&delete this._slots[e.key],e.mounted=!1,e.state="idle",e.error=""},mountElement(e){e.mounted=!0,e.state="loading";const t=this.resolve(e.bundleJs);rd(t).then(()=>ad(e.tag)).then(()=>{try{if(e.heavy&&this.activeKey!==e.key){e.mounted=!1,e.state="idle";return}const s=this._slots&&this._slots[e.key];if(!s){e.state="error",e.error="no slot";return}s.innerHTML="";const o=document.createElement(e.tag);o.setAttribute("profile-config",JSON.stringify(this.paneConfig(e,this.locale))),this.base&&o.setAttribute("tree-base",this.base.replace(/\/+$/,"")),o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(o),e.state="ready"}catch(s){e.state="error",e.error="mount failed: "+(s&&s.message||String(s))}}).catch(s=>{e.state="error",e.error=s&&s.message||String(s)})},copyText(e,t){const s=()=>{const o=t.textContent;t.textContent=this.tr("copied"),setTimeout(()=>{t.textContent=o},1200)};if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(e).then(s,()=>{});else try{const o=document.createElement("textarea");o.value=e,document.body.appendChild(o),o.select(),document.execCommand("copy"),document.body.removeChild(o),s()}catch{}}}}),dd={class:"ps-count"},pd={class:"ps-locale"},fd=["aria-expanded","aria-label"],ud={class:"ps-flag"},hd={class:"ps-locale-name"},gd={key:0,class:"ps-locale-menu",role:"listbox"},bd=["aria-selected"],vd=["onClick"],md={class:"ps-flag"},xd={class:"ps-locale-name"},yd={class:"ps-locale-en"},wd={key:0,class:"ps-toolbar"},$d={class:"ps-bar"},_d={class:"ps-bar-t"},Sd={class:"ps-bar-sub"},Ld={key:0},Ed=["aria-expanded"],kd={key:0,class:"ps-embed"},Cd=["value"],Td={class:"ps-stage"},Od=["hidden"],Ad={key:0,class:"ps-hint"},Md={key:1,class:"ps-hint err"},Pd={key:0,class:"ps-hint"};function Rd(e,t,s,o,n,l){const i=Ln("StudioTree"),r=Ln("VerticalTabsLayout");return E(),ms(r,{title:e.heading||e.tr("title"),dir:e.uiDir,"nav-label":e.tr("navLabel"),labels:{toggleList:e.tr("toggleList"),openViews:e.tr("openViews"),expandList:e.tr("expandList"),collapseList:e.tr("collapseList"),collapse:e.tr("collapse")},header:!0,active:e.activeKey,"onUpdate:active":e.select},{rail:pt(({collapsed:a,expand:f,pick:p})=>[ve(i,{sections:e.treeSections,active:e.activeKey,collapsed:a,expand:f,pick:p,strings:{filterPlaceholder:e.tr("filterPlaceholder"),collapseAll:e.tr("collapseAll"),noMatch:e.tr("noMatch"),treeLabel:e.tr("navLabel"),openSection:e.tr("openSection"),part:e.tr("part")}},null,8,["sections","active","collapsed","expand","pick","strings"])]),brand:pt(()=>[...t[3]||(t[3]=[L("span",{class:"ps-logo","aria-hidden":"true"},[L("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#92b195","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[L("path",{d:"M10 3v3M14 3v3M7 6h10v5a5 5 0 0 1-10 0V6Z"}),L("path",{d:"M12 16v5"})])],-1)])]),meta:pt(()=>[L("span",dd,M(e.countLabel),1),L("span",pd,[L("button",{type:"button",class:"ps-locale-btn","aria-expanded":String(e.localeOpen),"aria-label":e.tr("changeLanguage"),onClick:t[0]||(t[0]=a=>e.localeOpen=!e.localeOpen)},[L("span",ud,M(e.activeLang.flag),1),L("span",hd,M(e.activeLang.nativeName),1),t[4]||(t[4]=L("span",{class:"ps-dots","aria-hidden":"true"},"⋮",-1))],8,fd),e.localeOpen?(E(),k("ul",gd,[(E(!0),k(X,null,Ke(e.switcherLangs,a=>(E(),k("li",{key:a.code,role:"option","aria-selected":String(a.code===e.locale)},[L("button",{type:"button",class:_e(["ps-locale-opt",{active:a.code===e.locale}]),onClick:f=>e.setLocale(a.code)},[L("span",md,M(a.flag),1),L("span",xd,M(a.nativeName),1),L("span",yd,M(a.name),1)],10,vd)],8,bd))),128))])):Q("",!0)])]),toolbar:pt(()=>[e.active?(E(),k("div",wd,[L("div",$d,[L("div",_d,[L("b",null,M(e.active.label),1),L("span",Sd,[gt(M(e.active.bundle)+" · <"+M(e.active.tag)+">",1),e.active.description?(E(),k("span",Ld," · "+M(e.active.description),1)):Q("",!0)])]),e.active.embed?(E(),k("button",{key:0,type:"button",class:"ps-btn","aria-expanded":String(e.embedOpen),onClick:t[1]||(t[1]=a=>e.embedOpen=!e.embedOpen)},M(e.tr("copyEmbed")),9,Ed)):Q("",!0)]),e.embedOpen&&e.active.embed?(E(),k("div",kd,[L("label",null,[gt(M(e.tr("scriptEmbed"))+" ",1),L("button",{type:"button",class:"ps-btn",onClick:t[2]||(t[2]=a=>e.copyText(e.active.embed,a.target))},M(e.tr("copy")),1)]),L("textarea",{readonly:"",value:e.active.embed},null,8,Cd)])):Q("",!0)])):Q("",!0)]),default:pt(()=>[L("div",Td,[(E(!0),k(X,null,Ke(e.flatRows,a=>ds((E(),k("section",{key:a.key,class:"ps-pane",hidden:a.key!==e.activeKey},[!a.heavy||a.key===e.activeKey?(E(),k(X,{key:0},[L("div",{class:"ps-slot",ref_for:!0,ref:f=>e.setSlot(a.key,f)},null,512),a.state==="loading"?(E(),k("div",Ad,M(e.tr("loading",{name:a.label})),1)):a.state==="error"?(E(),k("div",Md,[gt(M(e.tr("couldNotLoad",{name:a.label})),1),t[5]||(t[5]=L("br",null,null,-1)),L("small",null,M(a.error),1)])):Q("",!0)],64)):Q("",!0)],8,Od)),[[vo,a.key===e.activeKey]])),128)),e.activeKey?Q("",!0):(E(),k("div",Pd,M(e.tr("chooseElement")),1))])]),_:1},8,["title","dir","nav-label","labels","active","onUpdate:active"])}const Nd=_o(cd,[["render",Rd],["styles",[td]]]);function Id(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const Hd=Id(),Dd=ea(Nd,{configureApp(e){e.provide("psTreeBase",Hd)}});typeof customElements<"u"&&!customElements.get("plugin-studio")&&customElements.define("plugin-studio",Dd)})(); diff --git a/public/doxa-maps/plugin-studio/plugin-studio/index.html b/public/doxa-maps/plugin-studio/plugin-studio/index.html index 450e3630c..8ab14e241 100644 --- a/public/doxa-maps/plugin-studio/plugin-studio/index.html +++ b/public/doxa-maps/plugin-studio/plugin-studio/index.html @@ -26,7 +26,7 @@ - + باسم شعبهم."},Pg={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Ag={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Sg={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Eg={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Rg={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},Cg={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},Mg={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة"},Tg={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},Og={title:"Alle Volksgruppen",locations:"{n} Standorte (Gruppe × Land)",doxa:"DOXA-Volksgruppen",frontier:"Frontier — noch nichts begonnen",unreached:"Unerreicht — Arbeit beginnt",reached:"Erreicht — Gemeinde ist da",hint:"Zeile anklicken, um alle zu sehen · erneut klicken für alle",loading:"Alle Volksgruppen werden geladen…",loadError:"Die Karte konnte nicht geladen werden.",pray:"Für sie beten →",population:"Einw. {n}"},Ng={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},Fg={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",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},Ig={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},Dg={research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},Gg={bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort"},Ug={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Bg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"}},zg={search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter."},jg={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},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",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},Vg={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},Hg={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Wg={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},qg={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Kg={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},Xg={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"}},Yg={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},Zg={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",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte"},Jg={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},Qg={title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},eh={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},th={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",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},oh={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",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."}},nh={research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},ah={bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place"},sh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},rh={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"}},ih={search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load more",full_profile:"Full profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter."},lh={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},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"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},ch={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"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 by their people group name."},uh={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},dh={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},ph={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},gh={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},hh={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"}},fh={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},mh={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",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map"},$h={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},bh={title:"Todos los grupos étnicos",locations:"{n} ubicaciones (grupo × país)",doxa:"Grupos étnicos de DOXA",frontier:"Frontera — nada iniciado",unreached:"No alcanzados — el trabajo comienza",reached:"Alcanzados — la iglesia está ahí",hint:"Haga clic en una fila para verlos todos · de nuevo para ver todo",loading:"Cargando todos los grupos étnicos…",loadError:"No se pudo cargar el mapa.",pray:"Ore por ellos →",population:"pobl. {n}"},_h={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},yh={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",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},vh={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},xh={research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},wh={bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar"},kh={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."}},Lh={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"}},Ph={search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro."},Ah={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},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"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},Sh={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},Eh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Rh={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},Ch={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Mh={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},Th={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"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},Oh={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},Nh={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",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa"},Fh={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},Ih={title:"Tous les groupes ethniques",locations:"{n} emplacements (groupe × pays)",doxa:"Groupes ethniques DOXA",frontier:"Frontière — rien n’a commencé",unreached:"Non atteints — le travail commence",reached:"Atteints — l’Église est là",hint:"Cliquez sur une ligne pour les voir tous · recliquez pour tout voir",loading:"Chargement de tous les groupes ethniques…",loadError:"La carte n’a pas pu être chargée.",pray:"Priez pour eux →",population:"pop. {n}"},Dh={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},Gh={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",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},Uh={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},Bh={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},zh={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu"},jh={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Vh={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"}},Hh={search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre."},Wh={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},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"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},qh={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},Kh={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Xh={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Yh={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Zh={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},Jh={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"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},Qh={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},ef={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",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte"},tf={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},of={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},nf={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},af={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},sf={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},rf={research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},lf={bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान"},cf={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},uf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"}},df={search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},pf={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},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:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},gf={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},hf={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},ff={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},mf={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},$f={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},bf={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},_f={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},yf={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र"},vf={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},xf={title:"Tutti i gruppi etnici",locations:"{n} località (gruppo × paese)",doxa:"Gruppi etnici DOXA",frontier:"Frontiera — non è iniziato nulla",unreached:"Non raggiunti — il lavoro inizia",reached:"Raggiunti — la chiesa c’è",hint:"Fai clic su una riga per vederli tutti · di nuovo per vedere tutto",loading:"Caricamento di tutti i gruppi etnici…",loadError:"Impossibile caricare la mappa.",pray:"Prega per loro →",population:"pop. {n}"},wf={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},kf={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",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},Lf={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},Pf={research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},Af={bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo"},Sf={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Ef={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"}},Rf={search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro."},Cf={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},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",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},Mf={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},Tf={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Of={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},Nf={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Ff={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},If={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"}},Df={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},Gf={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa"},Uf={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},Bf={title:"Todos os grupos étnicos",locations:"{n} locais (grupo × país)",doxa:"Grupos étnicos da DOXA",frontier:"Fronteira — nada iniciado",unreached:"Não alcançados — o trabalho começa",reached:"Alcançados — a igreja está lá",hint:"Clique em uma linha para ver todos · clique de novo para ver tudo",loading:"Carregando todos os grupos étnicos…",loadError:"Não foi possível carregar o mapa.",pray:"Ore por eles →",population:"pop. {n}"},zf={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},jf={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",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},Vf={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},Hf={research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},Wf={bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar"},qf={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."}},Kf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"}},Xf={search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro."},Yf={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},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"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},Zf={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},Jf={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Qf={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},em={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},tm={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},om={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"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},nm={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},am={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",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa"},sm={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},rm={title:"Toate grupurile etnice",locations:"{n} locații (grup × țară)",doxa:"Grupuri etnice DOXA",frontier:"Frontieră — nimic început",unreached:"Neatinse — lucrarea începe",reached:"Atinse — biserica este acolo",hint:"Faceți clic pe un rând pentru a le vedea pe toate · din nou pentru tot",loading:"Se încarcă toate grupurile etnice…",loadError:"Harta nu a putut fi încărcată.",pray:"Rugați-vă pentru ei →",population:"pop. {n}"},im={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},lm={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ă",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},cm={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},um={research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},dm={bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc"},pm={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ă."}},gm={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"}},hm={search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului."},fm={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},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",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},mm={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},$m={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},bm={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},_m={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},ym={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},vm={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"}},xm={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},wm={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă"},km={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},Lm={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},Pm={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},Am={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},Sm={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},Em={research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},Rm={bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место"},Cm={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Mm={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"}},Tm={search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},Om={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},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:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},Nm={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},Fm={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Im={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},Dm={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},Gm={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},Um={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},Bm={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},zm={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта"},jm={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},Vm={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},Hm={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},Wm={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},qm={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},Km={research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},Xm={bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点"},Ym={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Zm={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"}},Jm={search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。"},Qm={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},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:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},e$={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},t$={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},o$={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},n$={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},a$={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},s$={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},r$={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},i$={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖"},l$={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! + */let ol;const _a=e=>ol=e,nl=Symbol();function ks(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var $n;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})($n||($n={}));function rg(){const e=Ua(!0),t=e.run(()=>be({}));let o=[],n=[];const s=Qo({install(a){_a(s),s._a=a,a.provide(nl,s),a.config.globalProperties.$pinia=s,n.forEach(r=>o.push(r)),n=[]},use(a){return this._a?o.push(a):n.push(a),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return s}const al=()=>{};function sl(e,t,o,n=al){e.push(t);const s=()=>{const a=e.indexOf(t);a>-1&&(e.splice(a,1),n())};return!o&&$r()&&Ou(s),s}function Oo(e,...t){e.slice().forEach(o=>{o(...t)})}const ig=e=>e(),rl=Symbol(),Ls=Symbol();function Ps(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],s=e[o];ks(s)&&ks(n)&&e.hasOwnProperty(o)&&!ze(n)&&!Vt(n)?e[o]=Ps(s,n):e[o]=n}return e}const lg=Symbol();function cg(e){return!ks(e)||!e.hasOwnProperty(lg)}const{assign:so}=Object;function ug(e){return!!(ze(e)&&e.effect)}function pg(e,t,o,n){const{state:s,actions:a,getters:r}=t,i=o.state.value[e];let l;function u(){i||(o.state.value[e]=s?s():{});const c=op(o.state.value[e]);return so(c,a,Object.keys(r||{}).reduce((p,d)=>(p[d]=Qo(le(()=>{_a(o);const _=o._s.get(e);return r[d].call(_,_)})),p),{}))}return l=il(e,u,t,o,n,!0),l}function il(e,t,o={},n,s,a){let r;const i=so({actions:{}},o),l={deep:!0};let u,c,p=[],d=[],_;const A=n.state.value[e];!a&&!A&&(n.state.value[e]={});let w;function v(x){let L;u=c=!1,typeof x=="function"?(x(n.state.value[e]),L={type:$n.patchFunction,storeId:e,events:_}):(Ps(n.state.value[e],x),L={type:$n.patchObject,payload:x,storeId:e,events:_});const F=w=Symbol();no().then(()=>{w===F&&(u=!0)}),c=!0,Oo(p,L,n.state.value[e])}const k=a?function(){const{state:L}=o,F=L?L():{};this.$patch(N=>{so(N,F)})}:al;function f(){r.stop(),p=[],d=[],n._s.delete(e)}const $=(x,L="")=>{if(rl in x)return x[Ls]=L,x;const F=function(){_a(n);const N=Array.from(arguments),H=[],M=[];function re(se){H.push(se)}function ge(se){M.push(se)}Oo(d,{args:N,name:F[Ls],store:C,after:re,onError:ge});let pe;try{pe=x.apply(this&&this.$id===e?this:C,N)}catch(se){throw Oo(M,se),se}return pe instanceof Promise?pe.then(se=>(Oo(H,se),se)).catch(se=>(Oo(M,se),Promise.reject(se))):(Oo(H,pe),pe)};return F[rl]=!0,F[Ls]=L,F},m={_p:n,$id:e,$onAction:sl.bind(null,d),$patch:v,$reset:k,$subscribe(x,L={}){const F=sl(p,x,L.detached,()=>N()),N=r.run(()=>qe(()=>n.state.value[e],H=>{(L.flush==="sync"?c:u)&&x({storeId:e,type:$n.direct,events:_},H)},so({},l,L)));return F},$dispose:f},C=Hn(m);n._s.set(e,C);const O=(n._a&&n._a.runWithContext||ig)(()=>n._e.run(()=>(r=Ua()).run(()=>t({action:$}))));for(const x in O){const L=O[x];if(ze(L)&&!ug(L)||Vt(L))a||(A&&cg(L)&&(ze(L)?L.value=A[x]:Ps(L,A[x])),n.state.value[e][x]=L);else if(typeof L=="function"){const F=$(L,x);O[x]=F,i.actions[x]=L}}return so(C,O),so(Ce(C),O),Object.defineProperty(C,"$state",{get:()=>n.state.value[e],set:x=>{v(L=>{so(L,x)})}}),n._p.forEach(x=>{so(C,r.run(()=>x({store:C,app:n._a,pinia:n,options:i})))}),A&&a&&o.hydrate&&o.hydrate(C.$state,A),u=!0,c=!0,C}/*! #__NO_SIDE_EFFECTS__ */function As(e,t,o){let n,s;const a=typeof t=="function";typeof e=="string"?(n=e,s=a?o:t):(s=e,n=e.id);function r(i,l){const u=mp();return i=i||(u?Ve(nl,null):null),i&&_a(i),i=ol,i._s.has(n)||(a?il(n,t,s,i):pg(n,s,i)),i._s.get(n)}return r.$id=n,r}const Ss="__doxaMapToken",Es="doxa:map-token",ll="__doxaMapTokenBridge",No=()=>{if(typeof window>"u")return"";const e=window[Ss];return typeof e=="string"?e:""};function cl(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===No())return No();window[Ss]=t;try{window.dispatchEvent(new CustomEvent(Es,{detail:t}))}catch{}return t}function dg(){if(typeof window>"u"||window[ll])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!No()&&(window[Ss]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return No()},set(t){cl(t)}}),window[ll]=!0}catch{}}function gg(){dg();const e=be(No());if(typeof window<"u"){const t=()=>{e.value=No()};window.addEventListener(Es,t);try{ft(()=>window.removeEventListener(Es,t))}catch{}}return e}function hg(e){return Ap({loader:e,onError(t,o,n,s){s<=3?setTimeout(o,s*500):n()}})}const fg={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},mg={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},bg={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},$g={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},_g={research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة"},yg={bloc:"كتلة التقارب",gospel_access:"الوصول إلى الإنجيل",people:"الشعوب",people_name:"الشعب (الاسم)",praying:"يصلّون",religion_family:"عائلة الأديان",search_language:"ابحث عن لغة",search_people:"ابحث عن شعب",search_place:"ابحث عن مكان",search_religion:"ابحث عن دين",upgs_in_scope:"الشعوب ضمن النطاق",countries_touched:"الدول المشمولة",unreached:"غير موصولين",sum_population:"مجموع السكان",sum_praying:"مجموع المصلّين",charts:"الرسوم البيانية",table:"الجدول",cluster:"المجموعة",country:"الدولة",engagement:"المشاركة",language:"اللغة",language_family:"عائلة اللغة",people_group:"الشعب",population:"السكان",prayer:"الصلاة",region:"المنطقة",religion:"الدين",status:"الحالة",adopted:"متبنَّاة",filters:"عوامل التصفية",gospel_resources:"موارد الإنجيل",map:"الخريطة",search_placeholder:"ابحث عن الشعوب والأماكن واللغات والأديان…",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",map_controls:"أدوات التحكم بالخريطة",close:"إغلاق",clear:"مسح",dashboard_title:"لوحة البحث الشاملة",align_dashboard:"محاذاة اللوحة",align_dashboard_tip:"إعادة تخطيط اللوحة إلى المحاذاة الافتراضية",selected:"المحدد",world:"العالم",vertical_legend:"مفتاح عمودي",groups_in_scope:"مجموعة ضمن النطاق",filter_by:"تصفية حسب",remove_filter:"إزالة التصفية",groups:"مجموعة",expand:"توسيع",collapse:"طيّ",place:"المكان"},vg={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},xg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"}},wg={search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},kg={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},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:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"}},Lg={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},Pg={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Ag={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Sg={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Eg={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Rg={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},Cg={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},Mg={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة"},Tg={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},Og={title:"Alle Volksgruppen",locations:"{n} Standorte (Gruppe × Land)",doxa:"DOXA-Volksgruppen",frontier:"Frontier — noch nichts begonnen",unreached:"Unerreicht — Arbeit beginnt",reached:"Erreicht — Gemeinde ist da",hint:"Zeile anklicken, um alle zu sehen · erneut klicken für alle",loading:"Alle Volksgruppen werden geladen…",loadError:"Die Karte konnte nicht geladen werden.",pray:"Für sie beten →",population:"Einw. {n}"},Ng={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},Fg={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",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},Ig={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},Gg={research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},Dg={bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort"},Ug={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Bg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"}},zg={search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter."},Vg={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},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",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},jg={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},Hg={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Wg={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},qg={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Kg={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},Xg={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"}},Yg={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},Zg={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",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte"},Jg={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},Qg={title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},eh={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},th={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",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},oh={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",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."}},nh={research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},ah={bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place"},sh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},rh={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"}},ih={search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load more",full_profile:"Full profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter."},lh={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},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"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},ch={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"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 by their people group name."},uh={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},ph={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},dh={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},gh={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},hh={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"}},fh={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},mh={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",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map"},bh={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},$h={title:"Todos los grupos étnicos",locations:"{n} ubicaciones (grupo × país)",doxa:"Grupos étnicos de DOXA",frontier:"Frontera — nada iniciado",unreached:"No alcanzados — el trabajo comienza",reached:"Alcanzados — la iglesia está ahí",hint:"Haga clic en una fila para verlos todos · de nuevo para ver todo",loading:"Cargando todos los grupos étnicos…",loadError:"No se pudo cargar el mapa.",pray:"Ore por ellos →",population:"pobl. {n}"},_h={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},yh={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",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},vh={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},xh={research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},wh={bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar"},kh={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."}},Lh={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"}},Ph={search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro."},Ah={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},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"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},Sh={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},Eh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Rh={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},Ch={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Mh={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},Th={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"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},Oh={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},Nh={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",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa"},Fh={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},Ih={title:"Tous les groupes ethniques",locations:"{n} emplacements (groupe × pays)",doxa:"Groupes ethniques DOXA",frontier:"Frontière — rien n’a commencé",unreached:"Non atteints — le travail commence",reached:"Atteints — l’Église est là",hint:"Cliquez sur une ligne pour les voir tous · recliquez pour tout voir",loading:"Chargement de tous les groupes ethniques…",loadError:"La carte n’a pas pu être chargée.",pray:"Priez pour eux →",population:"pop. {n}"},Gh={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},Dh={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",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},Uh={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},Bh={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},zh={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu"},Vh={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},jh={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"}},Hh={search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre."},Wh={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},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"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},qh={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},Kh={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Xh={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Yh={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Zh={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},Jh={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"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},Qh={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},ef={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",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte"},tf={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},of={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},nf={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},af={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},sf={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},rf={research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},lf={bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान"},cf={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},uf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"}},pf={search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},df={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},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:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},gf={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},hf={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},ff={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},mf={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},bf={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},$f={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},_f={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},yf={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र"},vf={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},xf={title:"Tutti i gruppi etnici",locations:"{n} località (gruppo × paese)",doxa:"Gruppi etnici DOXA",frontier:"Frontiera — non è iniziato nulla",unreached:"Non raggiunti — il lavoro inizia",reached:"Raggiunti — la chiesa c’è",hint:"Fai clic su una riga per vederli tutti · di nuovo per vedere tutto",loading:"Caricamento di tutti i gruppi etnici…",loadError:"Impossibile caricare la mappa.",pray:"Prega per loro →",population:"pop. {n}"},wf={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},kf={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",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},Lf={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},Pf={research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},Af={bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo"},Sf={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Ef={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"}},Rf={search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro."},Cf={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},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",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},Mf={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},Tf={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Of={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},Nf={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Ff={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},If={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"}},Gf={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},Df={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa"},Uf={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},Bf={title:"Todos os grupos étnicos",locations:"{n} locais (grupo × país)",doxa:"Grupos étnicos da DOXA",frontier:"Fronteira — nada iniciado",unreached:"Não alcançados — o trabalho começa",reached:"Alcançados — a igreja está lá",hint:"Clique em uma linha para ver todos · clique de novo para ver tudo",loading:"Carregando todos os grupos étnicos…",loadError:"Não foi possível carregar o mapa.",pray:"Ore por eles →",population:"pop. {n}"},zf={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},Vf={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",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},jf={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},Hf={research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},Wf={bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar"},qf={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."}},Kf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"}},Xf={search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro."},Yf={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},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"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},Zf={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},Jf={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Qf={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},em={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},tm={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},om={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"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},nm={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},am={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",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa"},sm={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},rm={title:"Toate grupurile etnice",locations:"{n} locații (grup × țară)",doxa:"Grupuri etnice DOXA",frontier:"Frontieră — nimic început",unreached:"Neatinse — lucrarea începe",reached:"Atinse — biserica este acolo",hint:"Faceți clic pe un rând pentru a le vedea pe toate · din nou pentru tot",loading:"Se încarcă toate grupurile etnice…",loadError:"Harta nu a putut fi încărcată.",pray:"Rugați-vă pentru ei →",population:"pop. {n}"},im={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},lm={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ă",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},cm={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},um={research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},pm={bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc"},dm={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ă."}},gm={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"}},hm={search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului."},fm={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},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",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},mm={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},bm={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},$m={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},_m={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},ym={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},vm={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"}},xm={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},wm={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă"},km={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},Lm={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},Pm={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},Am={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},Sm={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},Em={research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},Rm={bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место"},Cm={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Mm={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"}},Tm={search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},Om={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},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:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},Nm={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},Fm={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Im={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},Gm={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},Dm={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},Um={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},Bm={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},zm={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта"},Vm={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},jm={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},Hm={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},Wm={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},qm={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},Km={research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},Xm={bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点"},Ym={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Zm={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"}},Jm={search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。"},Qm={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},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:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},eb={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},tb={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},ob={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},nb={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},ab={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},sb={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},rb={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},ib={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖"},lb={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function c$(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const ya=typeof window<"u",ro=(e,t=!1)=>t?Symbol.for(e):Symbol(e),u$=(e,t,o)=>d$({l:e,k:t,s:o}),d$=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),We=e=>typeof e=="number"&&isFinite(e),p$=e=>hl(e)==="[object Date]",io=e=>hl(e)==="[object RegExp]",va=e=>Pe(e)&&Object.keys(e).length===0,ot=Object.assign,g$=Object.create,Ne=(e=null)=>g$(e);let ul;const Yt=()=>ul||(ul=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ne());function dl(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function pl(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function h$(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,s,a)=>`${s}="${pl(a)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,s,a)=>`${s}='${pl(a)}'`),/\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 f$=Object.prototype.hasOwnProperty;function wt(e,t){return f$.call(e,t)}const Be=Array.isArray,Ue=e=>typeof e=="function",fe=e=>typeof e=="string",Ee=e=>typeof e=="boolean",Me=e=>e!==null&&typeof e=="object",m$=e=>Me(e)&&Ue(e.then)&&Ue(e.catch),gl=Object.prototype.toString,hl=e=>gl.call(e),Pe=e=>{if(!Me(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},$$=e=>e==null?"":Be(e)||Pe(e)&&e.toString===gl?JSON.stringify(e,null,2):String(e);function b$(e,t=""){return e.reduce((o,n,s)=>s===0?o+n:o+t+n,"")}function xa(e){let t=e;return()=>++t}const wa=e=>!Me(e)||Be(e);function ka(e,t){if(wa(e)||wa(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:s}=o.pop();Object.keys(n).forEach(a=>{a!=="__proto__"&&(Me(n[a])&&!Me(s[a])&&(s[a]=Array.isArray(n[a])?[]:Ne()),wa(s[a])||wa(n[a])?s[a]=n[a]:o.push({src:n[a],des:s[a]}))})}}/*! + */function cb(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const ya=typeof window<"u",ro=(e,t=!1)=>t?Symbol.for(e):Symbol(e),ub=(e,t,o)=>pb({l:e,k:t,s:o}),pb=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),We=e=>typeof e=="number"&&isFinite(e),db=e=>hl(e)==="[object Date]",io=e=>hl(e)==="[object RegExp]",va=e=>Pe(e)&&Object.keys(e).length===0,ot=Object.assign,gb=Object.create,Ne=(e=null)=>gb(e);let ul;const Yt=()=>ul||(ul=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ne());function pl(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function dl(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function hb(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,s,a)=>`${s}="${dl(a)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,s,a)=>`${s}='${dl(a)}'`),/\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 fb=Object.prototype.hasOwnProperty;function wt(e,t){return fb.call(e,t)}const Be=Array.isArray,Ue=e=>typeof e=="function",fe=e=>typeof e=="string",Ee=e=>typeof e=="boolean",Me=e=>e!==null&&typeof e=="object",mb=e=>Me(e)&&Ue(e.then)&&Ue(e.catch),gl=Object.prototype.toString,hl=e=>gl.call(e),Pe=e=>{if(!Me(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},bb=e=>e==null?"":Be(e)||Pe(e)&&e.toString===gl?JSON.stringify(e,null,2):String(e);function $b(e,t=""){return e.reduce((o,n,s)=>s===0?o+n:o+t+n,"")}function xa(e){let t=e;return()=>++t}const wa=e=>!Me(e)||Be(e);function ka(e,t){if(wa(e)||wa(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:s}=o.pop();Object.keys(n).forEach(a=>{a!=="__proto__"&&(Me(n[a])&&!Me(s[a])&&(s[a]=Array.isArray(n[a])?[]:Ne()),wa(s[a])||wa(n[a])?s[a]=n[a]:o.push({src:n[a],des:s[a]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function _$(e,t,o){return{line:e,column:t,offset:o}}function La(e,t,o){return{start:e,end:t}}const y$=/\{([0-9a-zA-Z]+)\}/g;function fl(e,...t){return t.length===1&&v$(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(y$,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const ml=Object.assign,$l=e=>typeof e=="string",v$=e=>e!==null&&typeof e=="object";function bl(e,t=""){return e.reduce((o,n,s)=>s===0?o+n:o+t+n,"")}const Rs={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},x$={[Rs.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function w$(e,t,...o){const n=fl(x$[e],...o||[]),s={message:String(n),code:e};return t&&(s.location=t),s}const xe={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},k$={[xe.EXPECTED_TOKEN]:"Expected token: '{0}'",[xe.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[xe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[xe.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[xe.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[xe.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[xe.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[xe.EMPTY_PLACEHOLDER]:"Empty placeholder",[xe.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[xe.INVALID_LINKED_FORMAT]:"Invalid linked format",[xe.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[xe.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[xe.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[xe.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[xe.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[xe.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Fo(e,t,o={}){const{domain:n,messages:s,args:a}=o,r=fl((s||k$)[e]||"",...a||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function L$(e){throw e}const Zt=" ",P$="\r",lt=` -`,A$="\u2028",S$="\u2029";function E$(e){const t=e;let o=0,n=1,s=1,a=0;const r=O=>t[O]===P$&&t[O+1]===lt,i=O=>t[O]===lt,l=O=>t[O]===S$,u=O=>t[O]===A$,c=O=>r(O)||i(O)||l(O)||u(O),d=()=>o,p=()=>n,_=()=>s,A=()=>a,w=O=>r(O)||l(O)||u(O)?lt:t[O],v=()=>w(o),k=()=>w(o+a);function f(){return a=0,c(o)&&(n++,s=0),r(o)&&o++,o++,s++,t[o]}function b(){return r(o+a)&&a++,a++,t[o+a]}function m(){o=0,n=1,s=1,a=0}function C(O=0){a=O}function $(){const O=o+a;for(;O!==o;)f();a=0}return{index:d,line:p,column:_,peekOffset:A,charAt:w,currentChar:v,currentPeek:k,next:f,peek:b,reset:m,resetPeek:C,skipToPeek:$}}const lo=void 0,R$=".",_l="'",C$="tokenizer";function M$(e,t={}){const o=t.location!==!1,n=E$(e),s=()=>n.index(),a=()=>_$(n.line(),n.column(),n.index()),r=a(),i=s(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},u=()=>l,{onError:c}=t;function d(g,h,G,...W){const he=u();if(h.column+=G,h.offset+=G,c){const ie=o?La(he.startLoc,h):null,I=Fo(g,ie,{domain:C$,args:W});c(I)}}function p(g,h,G){g.endLoc=a(),g.currentType=h;const W={type:h};return o&&(W.loc=La(g.startLoc,g.endLoc)),G!=null&&(W.value=G),W}const _=g=>p(g,14);function A(g,h){return g.currentChar()===h?(g.next(),h):(d(xe.EXPECTED_TOKEN,a(),0,h),"")}function w(g){let h="";for(;g.currentPeek()===Zt||g.currentPeek()===lt;)h+=g.currentPeek(),g.peek();return h}function v(g){const h=w(g);return g.skipToPeek(),h}function k(g){if(g===lo)return!1;const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h===95}function f(g){if(g===lo)return!1;const h=g.charCodeAt(0);return h>=48&&h<=57}function b(g,h){const{currentType:G}=h;if(G!==2)return!1;w(g);const W=k(g.currentPeek());return g.resetPeek(),W}function m(g,h){const{currentType:G}=h;if(G!==2)return!1;w(g);const W=g.currentPeek()==="-"?g.peek():g.currentPeek(),he=f(W);return g.resetPeek(),he}function C(g,h){const{currentType:G}=h;if(G!==2)return!1;w(g);const W=g.currentPeek()===_l;return g.resetPeek(),W}function $(g,h){const{currentType:G}=h;if(G!==8)return!1;w(g);const W=g.currentPeek()===".";return g.resetPeek(),W}function O(g,h){const{currentType:G}=h;if(G!==9)return!1;w(g);const W=k(g.currentPeek());return g.resetPeek(),W}function x(g,h){const{currentType:G}=h;if(!(G===8||G===12))return!1;w(g);const W=g.currentPeek()===":";return g.resetPeek(),W}function L(g,h){const{currentType:G}=h;if(G!==10)return!1;const W=()=>{const ie=g.currentPeek();return ie==="{"?k(g.peek()):ie==="@"||ie==="%"||ie==="|"||ie===":"||ie==="."||ie===Zt||!ie?!1:ie===lt?(g.peek(),W()):H(g,!1)},he=W();return g.resetPeek(),he}function F(g){w(g);const h=g.currentPeek()==="|";return g.resetPeek(),h}function N(g){const h=w(g),G=g.currentPeek()==="%"&&g.peek()==="{";return g.resetPeek(),{isModulo:G,hasSpace:h.length>0}}function H(g,h=!0){const G=(he=!1,ie="",I=!1)=>{const q=g.currentPeek();return q==="{"?ie==="%"?!1:he:q==="@"||!q?ie==="%"?!0:he:q==="%"?(g.peek(),G(he,"%",!0)):q==="|"?ie==="%"||I?!0:!(ie===Zt||ie===lt):q===Zt?(g.peek(),G(!0,Zt,I)):q===lt?(g.peek(),G(!0,lt,I)):!0},W=G();return h&&g.resetPeek(),W}function M(g,h){const G=g.currentChar();return G===lo?lo:h(G)?(g.next(),G):null}function re(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36}function ge(g){return M(g,re)}function de(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36||h===45}function se(g){return M(g,de)}function S(g){const h=g.charCodeAt(0);return h>=48&&h<=57}function z(g){return M(g,S)}function Q(g){const h=g.charCodeAt(0);return h>=48&&h<=57||h>=65&&h<=70||h>=97&&h<=102}function T(g){return M(g,Q)}function U(g){let h="",G="";for(;h=z(g);)G+=h;return G}function K(g){v(g);const h=g.currentChar();return h!=="%"&&d(xe.EXPECTED_TOKEN,a(),0,h),g.next(),"%"}function pe(g){let h="";for(;;){const G=g.currentChar();if(G==="{"||G==="}"||G==="@"||G==="|"||!G)break;if(G==="%")if(H(g))h+=G,g.next();else break;else if(G===Zt||G===lt)if(H(g))h+=G,g.next();else{if(F(g))break;h+=G,g.next()}else h+=G,g.next()}return h}function be(g){v(g);let h="",G="";for(;h=se(g);)G+=h;return g.currentChar()===lo&&d(xe.UNTERMINATED_CLOSING_BRACE,a(),0),G}function _e(g){v(g);let h="";return g.currentChar()==="-"?(g.next(),h+=`-${U(g)}`):h+=U(g),g.currentChar()===lo&&d(xe.UNTERMINATED_CLOSING_BRACE,a(),0),h}function j(g){return g!==_l&&g!==lt}function ee(g){v(g),A(g,"'");let h="",G="";for(;h=M(g,j);)h==="\\"?G+=ne(g):G+=h;const W=g.currentChar();return W===lt||W===lo?(d(xe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,a(),0),W===lt&&(g.next(),A(g,"'")),G):(A(g,"'"),G)}function ne(g){const h=g.currentChar();switch(h){case"\\":case"'":return g.next(),`\\${h}`;case"u":return ae(g,h,4);case"U":return ae(g,h,6);default:return d(xe.UNKNOWN_ESCAPE_SEQUENCE,a(),0,h),""}}function ae(g,h,G){A(g,h);let W="";for(let he=0;he{const W=g.currentChar();return W==="{"||W==="%"||W==="@"||W==="|"||W==="("||W===")"||!W||W===Zt?G:(G+=W,g.next(),h(G))};return h("")}function B(g){v(g);const h=A(g,"|");return v(g),h}function J(g,h){let G=null;switch(g.currentChar()){case"{":return h.braceNest>=1&&d(xe.NOT_ALLOW_NEST_PLACEHOLDER,a(),0),g.next(),G=p(h,2,"{"),v(g),h.braceNest++,G;case"}":return h.braceNest>0&&h.currentType===2&&d(xe.EMPTY_PLACEHOLDER,a(),0),g.next(),G=p(h,3,"}"),h.braceNest--,h.braceNest>0&&v(g),h.inLinked&&h.braceNest===0&&(h.inLinked=!1),G;case"@":return h.braceNest>0&&d(xe.UNTERMINATED_CLOSING_BRACE,a(),0),G=te(g,h)||_(h),h.braceNest=0,G;default:{let he=!0,ie=!0,I=!0;if(F(g))return h.braceNest>0&&d(xe.UNTERMINATED_CLOSING_BRACE,a(),0),G=p(h,1,B(g)),h.braceNest=0,h.inLinked=!1,G;if(h.braceNest>0&&(h.currentType===5||h.currentType===6||h.currentType===7))return d(xe.UNTERMINATED_CLOSING_BRACE,a(),0),h.braceNest=0,ue(g,h);if(he=b(g,h))return G=p(h,5,be(g)),v(g),G;if(ie=m(g,h))return G=p(h,6,_e(g)),v(g),G;if(I=C(g,h))return G=p(h,7,ee(g)),v(g),G;if(!he&&!ie&&!I)return G=p(h,13,y(g)),d(xe.INVALID_TOKEN_IN_PLACEHOLDER,a(),0,G.value),v(g),G;break}}return G}function te(g,h){const{currentType:G}=h;let W=null;const he=g.currentChar();switch((G===8||G===9||G===12||G===10)&&(he===lt||he===Zt)&&d(xe.INVALID_LINKED_FORMAT,a(),0),he){case"@":return g.next(),W=p(h,8,"@"),h.inLinked=!0,W;case".":return v(g),g.next(),p(h,9,".");case":":return v(g),g.next(),p(h,10,":");default:return F(g)?(W=p(h,1,B(g)),h.braceNest=0,h.inLinked=!1,W):$(g,h)||x(g,h)?(v(g),te(g,h)):O(g,h)?(v(g),p(h,12,R(g))):L(g,h)?(v(g),he==="{"?J(g,h)||W:p(h,11,P(g))):(G===8&&d(xe.INVALID_LINKED_FORMAT,a(),0),h.braceNest=0,h.inLinked=!1,ue(g,h))}}function ue(g,h){let G={type:14};if(h.braceNest>0)return J(g,h)||_(h);if(h.inLinked)return te(g,h)||_(h);switch(g.currentChar()){case"{":return J(g,h)||_(h);case"}":return d(xe.UNBALANCED_CLOSING_BRACE,a(),0),g.next(),p(h,3,"}");case"@":return te(g,h)||_(h);default:{if(F(g))return G=p(h,1,B(g)),h.braceNest=0,h.inLinked=!1,G;const{isModulo:he,hasSpace:ie}=N(g);if(he)return ie?p(h,0,pe(g)):p(h,4,K(g));if(H(g))return p(h,0,pe(g));break}}return G}function ce(){const{currentType:g,offset:h,startLoc:G,endLoc:W}=l;return l.lastType=g,l.lastOffset=h,l.lastStartLoc=G,l.lastEndLoc=W,l.offset=s(),l.startLoc=a(),n.currentChar()===lo?p(l,14):ue(n,l)}return{nextToken:ce,currentOffset:s,currentPosition:a,context:u}}const T$="parser",O$=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function N$(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 F$(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function s(b,m,C,$,...O){const x=b.currentPosition();if(x.offset+=$,x.column+=$,o){const L=t?La(C,x):null,F=Fo(m,L,{domain:T$,args:O});o(F)}}function a(b,m,C,$,...O){const x=b.currentPosition();if(x.offset+=$,x.column+=$,n){const L=t?La(C,x):null;n(w$(m,L,O))}}function r(b,m,C){const $={type:b};return t&&($.start=m,$.end=m,$.loc={start:C,end:C}),$}function i(b,m,C,$){t&&(b.end=m,b.loc&&(b.loc.end=C))}function l(b,m){const C=b.context(),$=r(3,C.offset,C.startLoc);return $.value=m,i($,b.currentOffset(),b.currentPosition()),$}function u(b,m){const C=b.context(),{lastOffset:$,lastStartLoc:O}=C,x=r(5,$,O);return x.index=parseInt(m,10),b.nextToken(),i(x,b.currentOffset(),b.currentPosition()),x}function c(b,m,C){const $=b.context(),{lastOffset:O,lastStartLoc:x}=$,L=r(4,O,x);return L.key=m,C===!0&&(L.modulo=!0),b.nextToken(),i(L,b.currentOffset(),b.currentPosition()),L}function d(b,m){const C=b.context(),{lastOffset:$,lastStartLoc:O}=C,x=r(9,$,O);return x.value=m.replace(O$,N$),b.nextToken(),i(x,b.currentOffset(),b.currentPosition()),x}function p(b){const m=b.nextToken(),C=b.context(),{lastOffset:$,lastStartLoc:O}=C,x=r(8,$,O);return m.type!==12?(s(b,xe.UNEXPECTED_EMPTY_LINKED_MODIFIER,C.lastStartLoc,0),x.value="",i(x,$,O),{nextConsumeToken:m,node:x}):(m.value==null&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,kt(m)),x.value=m.value||"",i(x,b.currentOffset(),b.currentPosition()),{node:x})}function _(b,m){const C=b.context(),$=r(7,C.offset,C.startLoc);return $.value=m,i($,b.currentOffset(),b.currentPosition()),$}function A(b){const m=b.context(),C=r(6,m.offset,m.startLoc);let $=b.nextToken();if($.type===9){const O=p(b);C.modifier=O.node,$=O.nextConsumeToken||b.nextToken()}switch($.type!==10&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt($)),$=b.nextToken(),$.type===2&&($=b.nextToken()),$.type){case 11:$.value==null&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt($)),C.key=_(b,$.value||"");break;case 5:$.value==null&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt($)),C.key=c(b,$.value||"");break;case 6:$.value==null&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt($)),C.key=u(b,$.value||"");break;case 7:$.value==null&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt($)),C.key=d(b,$.value||"");break;default:{s(b,xe.UNEXPECTED_EMPTY_LINKED_KEY,m.lastStartLoc,0);const O=b.context(),x=r(7,O.offset,O.startLoc);return x.value="",i(x,O.offset,O.startLoc),C.key=x,i(C,O.offset,O.startLoc),{nextConsumeToken:$,node:C}}}return i(C,b.currentOffset(),b.currentPosition()),{node:C}}function w(b){const m=b.context(),C=m.currentType===1?b.currentOffset():m.offset,$=m.currentType===1?m.endLoc:m.startLoc,O=r(2,C,$);O.items=[];let x=null,L=null;do{const H=x||b.nextToken();switch(x=null,H.type){case 0:H.value==null&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(H)),O.items.push(l(b,H.value||""));break;case 6:H.value==null&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(H)),O.items.push(u(b,H.value||""));break;case 4:L=!0;break;case 5:H.value==null&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(H)),O.items.push(c(b,H.value||"",!!L)),L&&(a(b,Rs.USE_MODULO_SYNTAX,m.lastStartLoc,0,kt(H)),L=null);break;case 7:H.value==null&&s(b,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(H)),O.items.push(d(b,H.value||""));break;case 8:{const M=A(b);O.items.push(M.node),x=M.nextConsumeToken||null;break}}}while(m.currentType!==14&&m.currentType!==1);const F=m.currentType===1?m.lastOffset:b.currentOffset(),N=m.currentType===1?m.lastEndLoc:b.currentPosition();return i(O,F,N),O}function v(b,m,C,$){const O=b.context();let x=$.items.length===0;const L=r(1,m,C);L.cases=[],L.cases.push($);do{const F=w(b);x||(x=F.items.length===0),L.cases.push(F)}while(O.currentType!==14);return x&&s(b,xe.MUST_HAVE_MESSAGES_IN_PLURAL,C,0),i(L,b.currentOffset(),b.currentPosition()),L}function k(b){const m=b.context(),{offset:C,startLoc:$}=m,O=w(b);return m.currentType===14?O:v(b,C,$,O)}function f(b){const m=M$(b,ml({},e)),C=m.context(),$=r(0,C.offset,C.startLoc);return t&&$.loc&&($.loc.source=b),$.body=k(m),e.onCacheKey&&($.cacheKey=e.onCacheKey(b)),C.currentType!==14&&s(m,xe.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,b[C.offset]||""),i($,m.currentOffset(),m.currentPosition()),$}return{parse:f}}function kt(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 I$(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:a=>(o.helpers.add(a),a)}}function yl(e,t){for(let o=0;ovl(o)),e}function vl(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;or;function l(w,v){r.code+=w}function u(w,v=!0){const k=v?n:"";l(s?k+" ".repeat(w):k)}function c(w=!0){const v=++r.indentLevel;w&&u(v)}function d(w=!0){const v=--r.indentLevel;w&&u(v)}function p(){u(r.indentLevel)}return{context:i,push:l,indent:c,deindent:d,newline:p,helper:w=>`_${w}`,needIndent:()=>r.needIndent}}function j$(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),Do(e,t.key),t.modifier?(e.push(", "),Do(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function V$(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const s=t.items.length;for(let a=0;a1){e.push(`${o("plural")}([`),e.indent(n());const s=t.cases.length;for(let a=0;a{const o=$l(t.mode)?t.mode:"normal",n=$l(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` -`,a=t.needIndent?t.needIndent:o!=="arrow",r=e.helpers||[],i=z$(e,{filename:n,breakLineCode:s,needIndent:a});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(a),r.length>0&&(i.push(`const { ${bl(r.map(c=>`${c}: _${c}`),", ")} } = ctx`),i.newline()),i.push("return "),Do(i,e),i.deindent(a),i.push("}"),delete e.helpers;const{code:l,map:u}=i.context();return{ast:e,code:l,map:u?u.toJSON():void 0}};function K$(e,t={}){const o=ml({},t),n=!!o.jit,s=!!o.minify,a=o.optimize==null?!0:o.optimize,i=F$(o).parse(e);return n?(a&&G$(i),s&&Io(i),{ast:i,code:""}):(D$(i,o),q$(i,o))}/*! + */function _b(e,t,o){return{line:e,column:t,offset:o}}function La(e,t,o){return{start:e,end:t}}const yb=/\{([0-9a-zA-Z]+)\}/g;function fl(e,...t){return t.length===1&&vb(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(yb,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const ml=Object.assign,bl=e=>typeof e=="string",vb=e=>e!==null&&typeof e=="object";function $l(e,t=""){return e.reduce((o,n,s)=>s===0?o+n:o+t+n,"")}const Rs={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},xb={[Rs.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function wb(e,t,...o){const n=fl(xb[e],...o||[]),s={message:String(n),code:e};return t&&(s.location=t),s}const xe={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},kb={[xe.EXPECTED_TOKEN]:"Expected token: '{0}'",[xe.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[xe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[xe.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[xe.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[xe.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[xe.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[xe.EMPTY_PLACEHOLDER]:"Empty placeholder",[xe.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[xe.INVALID_LINKED_FORMAT]:"Invalid linked format",[xe.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[xe.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[xe.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[xe.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[xe.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[xe.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Fo(e,t,o={}){const{domain:n,messages:s,args:a}=o,r=fl((s||kb)[e]||"",...a||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function Lb(e){throw e}const Zt=" ",Pb="\r",lt=` +`,Ab="\u2028",Sb="\u2029";function Eb(e){const t=e;let o=0,n=1,s=1,a=0;const r=O=>t[O]===Pb&&t[O+1]===lt,i=O=>t[O]===lt,l=O=>t[O]===Sb,u=O=>t[O]===Ab,c=O=>r(O)||i(O)||l(O)||u(O),p=()=>o,d=()=>n,_=()=>s,A=()=>a,w=O=>r(O)||l(O)||u(O)?lt:t[O],v=()=>w(o),k=()=>w(o+a);function f(){return a=0,c(o)&&(n++,s=0),r(o)&&o++,o++,s++,t[o]}function $(){return r(o+a)&&a++,a++,t[o+a]}function m(){o=0,n=1,s=1,a=0}function C(O=0){a=O}function b(){const O=o+a;for(;O!==o;)f();a=0}return{index:p,line:d,column:_,peekOffset:A,charAt:w,currentChar:v,currentPeek:k,next:f,peek:$,reset:m,resetPeek:C,skipToPeek:b}}const lo=void 0,Rb=".",_l="'",Cb="tokenizer";function Mb(e,t={}){const o=t.location!==!1,n=Eb(e),s=()=>n.index(),a=()=>_b(n.line(),n.column(),n.index()),r=a(),i=s(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},u=()=>l,{onError:c}=t;function p(g,h,D,...W){const he=u();if(h.column+=D,h.offset+=D,c){const ie=o?La(he.startLoc,h):null,I=Fo(g,ie,{domain:Cb,args:W});c(I)}}function d(g,h,D){g.endLoc=a(),g.currentType=h;const W={type:h};return o&&(W.loc=La(g.startLoc,g.endLoc)),D!=null&&(W.value=D),W}const _=g=>d(g,14);function A(g,h){return g.currentChar()===h?(g.next(),h):(p(xe.EXPECTED_TOKEN,a(),0,h),"")}function w(g){let h="";for(;g.currentPeek()===Zt||g.currentPeek()===lt;)h+=g.currentPeek(),g.peek();return h}function v(g){const h=w(g);return g.skipToPeek(),h}function k(g){if(g===lo)return!1;const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h===95}function f(g){if(g===lo)return!1;const h=g.charCodeAt(0);return h>=48&&h<=57}function $(g,h){const{currentType:D}=h;if(D!==2)return!1;w(g);const W=k(g.currentPeek());return g.resetPeek(),W}function m(g,h){const{currentType:D}=h;if(D!==2)return!1;w(g);const W=g.currentPeek()==="-"?g.peek():g.currentPeek(),he=f(W);return g.resetPeek(),he}function C(g,h){const{currentType:D}=h;if(D!==2)return!1;w(g);const W=g.currentPeek()===_l;return g.resetPeek(),W}function b(g,h){const{currentType:D}=h;if(D!==8)return!1;w(g);const W=g.currentPeek()===".";return g.resetPeek(),W}function O(g,h){const{currentType:D}=h;if(D!==9)return!1;w(g);const W=k(g.currentPeek());return g.resetPeek(),W}function x(g,h){const{currentType:D}=h;if(!(D===8||D===12))return!1;w(g);const W=g.currentPeek()===":";return g.resetPeek(),W}function L(g,h){const{currentType:D}=h;if(D!==10)return!1;const W=()=>{const ie=g.currentPeek();return ie==="{"?k(g.peek()):ie==="@"||ie==="%"||ie==="|"||ie===":"||ie==="."||ie===Zt||!ie?!1:ie===lt?(g.peek(),W()):H(g,!1)},he=W();return g.resetPeek(),he}function F(g){w(g);const h=g.currentPeek()==="|";return g.resetPeek(),h}function N(g){const h=w(g),D=g.currentPeek()==="%"&&g.peek()==="{";return g.resetPeek(),{isModulo:D,hasSpace:h.length>0}}function H(g,h=!0){const D=(he=!1,ie="",I=!1)=>{const q=g.currentPeek();return q==="{"?ie==="%"?!1:he:q==="@"||!q?ie==="%"?!0:he:q==="%"?(g.peek(),D(he,"%",!0)):q==="|"?ie==="%"||I?!0:!(ie===Zt||ie===lt):q===Zt?(g.peek(),D(!0,Zt,I)):q===lt?(g.peek(),D(!0,lt,I)):!0},W=D();return h&&g.resetPeek(),W}function M(g,h){const D=g.currentChar();return D===lo?lo:h(D)?(g.next(),D):null}function re(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36}function ge(g){return M(g,re)}function pe(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36||h===45}function se(g){return M(g,pe)}function S(g){const h=g.charCodeAt(0);return h>=48&&h<=57}function z(g){return M(g,S)}function Q(g){const h=g.charCodeAt(0);return h>=48&&h<=57||h>=65&&h<=70||h>=97&&h<=102}function T(g){return M(g,Q)}function U(g){let h="",D="";for(;h=z(g);)D+=h;return D}function K(g){v(g);const h=g.currentChar();return h!=="%"&&p(xe.EXPECTED_TOKEN,a(),0,h),g.next(),"%"}function de(g){let h="";for(;;){const D=g.currentChar();if(D==="{"||D==="}"||D==="@"||D==="|"||!D)break;if(D==="%")if(H(g))h+=D,g.next();else break;else if(D===Zt||D===lt)if(H(g))h+=D,g.next();else{if(F(g))break;h+=D,g.next()}else h+=D,g.next()}return h}function $e(g){v(g);let h="",D="";for(;h=se(g);)D+=h;return g.currentChar()===lo&&p(xe.UNTERMINATED_CLOSING_BRACE,a(),0),D}function _e(g){v(g);let h="";return g.currentChar()==="-"?(g.next(),h+=`-${U(g)}`):h+=U(g),g.currentChar()===lo&&p(xe.UNTERMINATED_CLOSING_BRACE,a(),0),h}function V(g){return g!==_l&&g!==lt}function ee(g){v(g),A(g,"'");let h="",D="";for(;h=M(g,V);)h==="\\"?D+=ne(g):D+=h;const W=g.currentChar();return W===lt||W===lo?(p(xe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,a(),0),W===lt&&(g.next(),A(g,"'")),D):(A(g,"'"),D)}function ne(g){const h=g.currentChar();switch(h){case"\\":case"'":return g.next(),`\\${h}`;case"u":return ae(g,h,4);case"U":return ae(g,h,6);default:return p(xe.UNKNOWN_ESCAPE_SEQUENCE,a(),0,h),""}}function ae(g,h,D){A(g,h);let W="";for(let he=0;he{const W=g.currentChar();return W==="{"||W==="%"||W==="@"||W==="|"||W==="("||W===")"||!W||W===Zt?D:(D+=W,g.next(),h(D))};return h("")}function B(g){v(g);const h=A(g,"|");return v(g),h}function J(g,h){let D=null;switch(g.currentChar()){case"{":return h.braceNest>=1&&p(xe.NOT_ALLOW_NEST_PLACEHOLDER,a(),0),g.next(),D=d(h,2,"{"),v(g),h.braceNest++,D;case"}":return h.braceNest>0&&h.currentType===2&&p(xe.EMPTY_PLACEHOLDER,a(),0),g.next(),D=d(h,3,"}"),h.braceNest--,h.braceNest>0&&v(g),h.inLinked&&h.braceNest===0&&(h.inLinked=!1),D;case"@":return h.braceNest>0&&p(xe.UNTERMINATED_CLOSING_BRACE,a(),0),D=te(g,h)||_(h),h.braceNest=0,D;default:{let he=!0,ie=!0,I=!0;if(F(g))return h.braceNest>0&&p(xe.UNTERMINATED_CLOSING_BRACE,a(),0),D=d(h,1,B(g)),h.braceNest=0,h.inLinked=!1,D;if(h.braceNest>0&&(h.currentType===5||h.currentType===6||h.currentType===7))return p(xe.UNTERMINATED_CLOSING_BRACE,a(),0),h.braceNest=0,ue(g,h);if(he=$(g,h))return D=d(h,5,$e(g)),v(g),D;if(ie=m(g,h))return D=d(h,6,_e(g)),v(g),D;if(I=C(g,h))return D=d(h,7,ee(g)),v(g),D;if(!he&&!ie&&!I)return D=d(h,13,y(g)),p(xe.INVALID_TOKEN_IN_PLACEHOLDER,a(),0,D.value),v(g),D;break}}return D}function te(g,h){const{currentType:D}=h;let W=null;const he=g.currentChar();switch((D===8||D===9||D===12||D===10)&&(he===lt||he===Zt)&&p(xe.INVALID_LINKED_FORMAT,a(),0),he){case"@":return g.next(),W=d(h,8,"@"),h.inLinked=!0,W;case".":return v(g),g.next(),d(h,9,".");case":":return v(g),g.next(),d(h,10,":");default:return F(g)?(W=d(h,1,B(g)),h.braceNest=0,h.inLinked=!1,W):b(g,h)||x(g,h)?(v(g),te(g,h)):O(g,h)?(v(g),d(h,12,R(g))):L(g,h)?(v(g),he==="{"?J(g,h)||W:d(h,11,P(g))):(D===8&&p(xe.INVALID_LINKED_FORMAT,a(),0),h.braceNest=0,h.inLinked=!1,ue(g,h))}}function ue(g,h){let D={type:14};if(h.braceNest>0)return J(g,h)||_(h);if(h.inLinked)return te(g,h)||_(h);switch(g.currentChar()){case"{":return J(g,h)||_(h);case"}":return p(xe.UNBALANCED_CLOSING_BRACE,a(),0),g.next(),d(h,3,"}");case"@":return te(g,h)||_(h);default:{if(F(g))return D=d(h,1,B(g)),h.braceNest=0,h.inLinked=!1,D;const{isModulo:he,hasSpace:ie}=N(g);if(he)return ie?d(h,0,de(g)):d(h,4,K(g));if(H(g))return d(h,0,de(g));break}}return D}function ce(){const{currentType:g,offset:h,startLoc:D,endLoc:W}=l;return l.lastType=g,l.lastOffset=h,l.lastStartLoc=D,l.lastEndLoc=W,l.offset=s(),l.startLoc=a(),n.currentChar()===lo?d(l,14):ue(n,l)}return{nextToken:ce,currentOffset:s,currentPosition:a,context:u}}const Tb="parser",Ob=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Nb(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 Fb(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function s($,m,C,b,...O){const x=$.currentPosition();if(x.offset+=b,x.column+=b,o){const L=t?La(C,x):null,F=Fo(m,L,{domain:Tb,args:O});o(F)}}function a($,m,C,b,...O){const x=$.currentPosition();if(x.offset+=b,x.column+=b,n){const L=t?La(C,x):null;n(wb(m,L,O))}}function r($,m,C){const b={type:$};return t&&(b.start=m,b.end=m,b.loc={start:C,end:C}),b}function i($,m,C,b){t&&($.end=m,$.loc&&($.loc.end=C))}function l($,m){const C=$.context(),b=r(3,C.offset,C.startLoc);return b.value=m,i(b,$.currentOffset(),$.currentPosition()),b}function u($,m){const C=$.context(),{lastOffset:b,lastStartLoc:O}=C,x=r(5,b,O);return x.index=parseInt(m,10),$.nextToken(),i(x,$.currentOffset(),$.currentPosition()),x}function c($,m,C){const b=$.context(),{lastOffset:O,lastStartLoc:x}=b,L=r(4,O,x);return L.key=m,C===!0&&(L.modulo=!0),$.nextToken(),i(L,$.currentOffset(),$.currentPosition()),L}function p($,m){const C=$.context(),{lastOffset:b,lastStartLoc:O}=C,x=r(9,b,O);return x.value=m.replace(Ob,Nb),$.nextToken(),i(x,$.currentOffset(),$.currentPosition()),x}function d($){const m=$.nextToken(),C=$.context(),{lastOffset:b,lastStartLoc:O}=C,x=r(8,b,O);return m.type!==12?(s($,xe.UNEXPECTED_EMPTY_LINKED_MODIFIER,C.lastStartLoc,0),x.value="",i(x,b,O),{nextConsumeToken:m,node:x}):(m.value==null&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,kt(m)),x.value=m.value||"",i(x,$.currentOffset(),$.currentPosition()),{node:x})}function _($,m){const C=$.context(),b=r(7,C.offset,C.startLoc);return b.value=m,i(b,$.currentOffset(),$.currentPosition()),b}function A($){const m=$.context(),C=r(6,m.offset,m.startLoc);let b=$.nextToken();if(b.type===9){const O=d($);C.modifier=O.node,b=O.nextConsumeToken||$.nextToken()}switch(b.type!==10&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(b)),b=$.nextToken(),b.type===2&&(b=$.nextToken()),b.type){case 11:b.value==null&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(b)),C.key=_($,b.value||"");break;case 5:b.value==null&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(b)),C.key=c($,b.value||"");break;case 6:b.value==null&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(b)),C.key=u($,b.value||"");break;case 7:b.value==null&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(b)),C.key=p($,b.value||"");break;default:{s($,xe.UNEXPECTED_EMPTY_LINKED_KEY,m.lastStartLoc,0);const O=$.context(),x=r(7,O.offset,O.startLoc);return x.value="",i(x,O.offset,O.startLoc),C.key=x,i(C,O.offset,O.startLoc),{nextConsumeToken:b,node:C}}}return i(C,$.currentOffset(),$.currentPosition()),{node:C}}function w($){const m=$.context(),C=m.currentType===1?$.currentOffset():m.offset,b=m.currentType===1?m.endLoc:m.startLoc,O=r(2,C,b);O.items=[];let x=null,L=null;do{const H=x||$.nextToken();switch(x=null,H.type){case 0:H.value==null&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(H)),O.items.push(l($,H.value||""));break;case 6:H.value==null&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(H)),O.items.push(u($,H.value||""));break;case 4:L=!0;break;case 5:H.value==null&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(H)),O.items.push(c($,H.value||"",!!L)),L&&(a($,Rs.USE_MODULO_SYNTAX,m.lastStartLoc,0,kt(H)),L=null);break;case 7:H.value==null&&s($,xe.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,kt(H)),O.items.push(p($,H.value||""));break;case 8:{const M=A($);O.items.push(M.node),x=M.nextConsumeToken||null;break}}}while(m.currentType!==14&&m.currentType!==1);const F=m.currentType===1?m.lastOffset:$.currentOffset(),N=m.currentType===1?m.lastEndLoc:$.currentPosition();return i(O,F,N),O}function v($,m,C,b){const O=$.context();let x=b.items.length===0;const L=r(1,m,C);L.cases=[],L.cases.push(b);do{const F=w($);x||(x=F.items.length===0),L.cases.push(F)}while(O.currentType!==14);return x&&s($,xe.MUST_HAVE_MESSAGES_IN_PLURAL,C,0),i(L,$.currentOffset(),$.currentPosition()),L}function k($){const m=$.context(),{offset:C,startLoc:b}=m,O=w($);return m.currentType===14?O:v($,C,b,O)}function f($){const m=Mb($,ml({},e)),C=m.context(),b=r(0,C.offset,C.startLoc);return t&&b.loc&&(b.loc.source=$),b.body=k(m),e.onCacheKey&&(b.cacheKey=e.onCacheKey($)),C.currentType!==14&&s(m,xe.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,$[C.offset]||""),i(b,m.currentOffset(),m.currentPosition()),b}return{parse:f}}function kt(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 Ib(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:a=>(o.helpers.add(a),a)}}function yl(e,t){for(let o=0;ovl(o)),e}function vl(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;or;function l(w,v){r.code+=w}function u(w,v=!0){const k=v?n:"";l(s?k+" ".repeat(w):k)}function c(w=!0){const v=++r.indentLevel;w&&u(v)}function p(w=!0){const v=--r.indentLevel;w&&u(v)}function d(){u(r.indentLevel)}return{context:i,push:l,indent:c,deindent:p,newline:d,helper:w=>`_${w}`,needIndent:()=>r.needIndent}}function Vb(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),Go(e,t.key),t.modifier?(e.push(", "),Go(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function jb(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const s=t.items.length;for(let a=0;a1){e.push(`${o("plural")}([`),e.indent(n());const s=t.cases.length;for(let a=0;a{const o=bl(t.mode)?t.mode:"normal",n=bl(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` +`,a=t.needIndent?t.needIndent:o!=="arrow",r=e.helpers||[],i=zb(e,{filename:n,breakLineCode:s,needIndent:a});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(a),r.length>0&&(i.push(`const { ${$l(r.map(c=>`${c}: _${c}`),", ")} } = ctx`),i.newline()),i.push("return "),Go(i,e),i.deindent(a),i.push("}"),delete e.helpers;const{code:l,map:u}=i.context();return{ast:e,code:l,map:u?u.toJSON():void 0}};function Kb(e,t={}){const o=ml({},t),n=!!o.jit,s=!!o.minify,a=o.optimize==null?!0:o.optimize,i=Fb(o).parse(e);return n?(a&&Db(i),s&&Io(i),{ast:i,code:""}):(Gb(i,o),qb(i,o))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function X$(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Yt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Yt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Yt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Dt(e){return Me(e)&&Ms(e)===0&&(wt(e,"b")||wt(e,"body"))}const xl=["b","body"];function Y$(e){return co(e,xl)}const wl=["c","cases"];function Z$(e){return co(e,wl,[])}const kl=["s","static"];function J$(e){return co(e,kl)}const Ll=["i","items"];function Q$(e){return co(e,Ll,[])}const Pl=["t","type"];function Ms(e){return co(e,Pl)}const Al=["v","value"];function Pa(e,t){const o=co(e,Al);if(o!=null)return o;throw _n(t)}const Sl=["m","modifier"];function eb(e){return co(e,Sl)}const El=["k","key"];function tb(e){const t=co(e,El);if(t)return t;throw _n(6)}function co(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},p[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},p[2]=()=>{p[0](),s++},p[3]=()=>{if(s>0)s--,n=4,p[0]();else{if(s=0,r===void 0||(r=rb(r),r===!1))return!1;p[1]()}};function _(){const A=e[o+1];if(n===5&&A==="'"||n===6&&A==='"')return o++,i="\\"+A,p[0](),!0}for(;n!==null;)if(o++,a=e[o],!(a==="\\"&&_())){if(l=sb(a),d=uo[n],u=d[l]||d.l||8,u===8||(n=u[0],u[1]!==void 0&&(c=p[u[1]],c&&(i=a,c()===!1))))return;if(n===7)return t}}const Cl=new Map;function lb(e,t){return Me(e)?e[t]:null}function cb(e,t){if(!Me(e))return null;let o=Cl.get(t);if(o||(o=ib(t),o&&Cl.set(t,o)),!o)return null;const n=o.length;let s=e,a=0;for(;ae,db=e=>"",pb="text",gb=e=>e.length===0?"":b$(e),hb=$$;function Ml(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function fb(e){const t=We(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(We(e.named.count)||We(e.named.n))?We(e.named.count)?e.named.count:We(e.named.n)?e.named.n:t:t}function mb(e,t){t.count||(t.count=e),t.n||(t.n=e)}function $b(e={}){const t=e.locale,o=fb(e),n=Me(e.pluralRules)&&fe(t)&&Ue(e.pluralRules[t])?e.pluralRules[t]:Ml,s=Me(e.pluralRules)&&fe(t)&&Ue(e.pluralRules[t])?Ml:void 0,a=k=>k[n(o,k.length,s)],r=e.list||[],i=k=>r[k],l=e.named||Ne();We(e.pluralIndex)&&mb(o,l);const u=k=>l[k];function c(k){const f=Ue(e.messages)?e.messages(k):Me(e.messages)?e.messages[k]:!1;return f||(e.parent?e.parent.message(k):db)}const d=k=>e.modifiers?e.modifiers[k]:ub,p=Pe(e.processor)&&Ue(e.processor.normalize)?e.processor.normalize:gb,_=Pe(e.processor)&&Ue(e.processor.interpolate)?e.processor.interpolate:hb,A=Pe(e.processor)&&fe(e.processor.type)?e.processor.type:pb,v={list:i,named:u,plural:a,linked:(k,...f)=>{const[b,m]=f;let C="text",$="";f.length===1?Me(b)?($=b.modifier||$,C=b.type||C):fe(b)&&($=b||$):f.length===2&&(fe(b)&&($=b||$),fe(m)&&(C=m||C));const O=c(k)(v),x=C==="vnode"&&Be(O)&&$?O[0]:O;return $?d($)(x,C):x},message:c,type:A,interpolate:_,normalize:p,values:ot(Ne(),r,l)};return v}let yn=null;function bb(e){yn=e}function _b(e,t,o){yn&&yn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const yb=vb("function:translate");function vb(e){return t=>yn&&yn.emit(e,t)}const xb=Rs.__EXTEND_POINT__,wo=xa(xb),wb={FALLBACK_TO_TRANSLATE:wo(),CANNOT_FORMAT_NUMBER:wo(),FALLBACK_TO_NUMBER_FORMAT:wo(),CANNOT_FORMAT_DATE:wo(),FALLBACK_TO_DATE_FORMAT:wo(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:wo(),__EXTEND_POINT__:wo()},Tl=xe.__EXTEND_POINT__,ko=xa(Tl),Lt={INVALID_ARGUMENT:Tl,INVALID_DATE_ARGUMENT:ko(),INVALID_ISO_DATE_ARGUMENT:ko(),NOT_SUPPORT_NON_STRING_MESSAGE:ko(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:ko(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:ko(),NOT_SUPPORT_LOCALE_TYPE:ko(),__EXTEND_POINT__:ko()};function Gt(e){return Fo(e,null,void 0)}function Ts(e,t){return t.locale!=null?Ol(t.locale):Ol(e.locale)}let Os;function Ol(e){if(fe(e))return e;if(Ue(e)){if(e.resolvedOnce&&Os!=null)return Os;if(e.constructor.name==="Function"){const t=e();if(m$(t))throw Gt(Lt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Os=t}else throw Gt(Lt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Gt(Lt.NOT_SUPPORT_LOCALE_TYPE)}function kb(e,t,o){return[...new Set([o,...Be(t)?t:Me(t)?Object.keys(t):fe(t)?[t]:[o]])]}function Nl(e,t,o){const n=fe(o)?o:Go,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let a=s.__localeChainCache.get(n);if(!a){a=[];let r=[o];for(;Be(r);)r=Fl(a,r,t);const i=Be(t)||!Pe(t)?t:t.default?t.default:null;r=fe(i)?[i]:i,Be(r)&&Fl(a,r,!1),s.__localeChainCache.set(n,a)}return a}function Fl(e,t,o){let n=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Sb(){return{upper:(e,t)=>t==="text"&&fe(e)?e.toUpperCase():t==="vnode"&&Me(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&fe(e)?e.toLowerCase():t==="vnode"&&Me(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&fe(e)?Dl(e):t==="vnode"&&Me(e)&&"__v_isVNode"in e?Dl(e.children):e}}let Gl;function Ul(e){Gl=e}let Bl;function Eb(e){Bl=e}let zl;function Rb(e){zl=e}let jl=null;const Cb=e=>{jl=e},Mb=()=>jl;let Vl=null;const Hl=e=>{Vl=e},Tb=()=>Vl;let Wl=0;function Ob(e={}){const t=Ue(e.onWarn)?e.onWarn:c$,o=fe(e.version)?e.version:Ab,n=fe(e.locale)||Ue(e.locale)?e.locale:Go,s=Ue(n)?Go:n,a=Be(e.fallbackLocale)||Pe(e.fallbackLocale)||fe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,r=Pe(e.messages)?e.messages:Ns(s),i=Pe(e.datetimeFormats)?e.datetimeFormats:Ns(s),l=Pe(e.numberFormats)?e.numberFormats:Ns(s),u=ot(Ne(),e.modifiers,Sb()),c=e.pluralRules||Ne(),d=Ue(e.missing)?e.missing:null,p=Ee(e.missingWarn)||io(e.missingWarn)?e.missingWarn:!0,_=Ee(e.fallbackWarn)||io(e.fallbackWarn)?e.fallbackWarn:!0,A=!!e.fallbackFormat,w=!!e.unresolving,v=Ue(e.postTranslation)?e.postTranslation:null,k=Pe(e.processor)?e.processor:null,f=Ee(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,m=Ue(e.messageCompiler)?e.messageCompiler:Gl,C=Ue(e.messageResolver)?e.messageResolver:Bl||lb,$=Ue(e.localeFallbacker)?e.localeFallbacker:zl||kb,O=Me(e.fallbackContext)?e.fallbackContext:void 0,x=e,L=Me(x.__datetimeFormatters)?x.__datetimeFormatters:new Map,F=Me(x.__numberFormatters)?x.__numberFormatters:new Map,N=Me(x.__meta)?x.__meta:{};Wl++;const H={version:o,cid:Wl,locale:n,fallbackLocale:a,messages:r,modifiers:u,pluralRules:c,missing:d,missingWarn:p,fallbackWarn:_,fallbackFormat:A,unresolving:w,postTranslation:v,processor:k,warnHtmlMessage:f,escapeParameter:b,messageCompiler:m,messageResolver:C,localeFallbacker:$,fallbackContext:O,onWarn:t,__meta:N};return H.datetimeFormats=i,H.numberFormats=l,H.__datetimeFormatters=L,H.__numberFormatters=F,__INTLIFY_PROD_DEVTOOLS__&&_b(H,o,N),H}const Ns=e=>({[e]:Ne()});function Fs(e,t,o,n,s){const{missing:a,onWarn:r}=e;if(a!==null){const i=a(e,o,t,s);return fe(i)?i:t}else return t}function vn(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function Nb(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Fb(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nIb(o,e)}function Ib(e,t){const o=Y$(t);if(o==null)throw _n(0);if(Ms(o)===1){const a=Z$(o);return e.plural(a.reduce((r,i)=>[...r,ql(e,i)],[]))}else return ql(e,o)}function ql(e,t){const o=J$(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=Q$(t).reduce((s,a)=>[...s,Ds(e,a)],[]);return e.normalize(n)}}function Ds(e,t){const o=Ms(t);switch(o){case 3:return Pa(t,o);case 9:return Pa(t,o);case 4:{const n=t;if(wt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(wt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw _n(o)}case 5:{const n=t;if(wt(n,"i")&&We(n.i))return e.interpolate(e.list(n.i));if(wt(n,"index")&&We(n.index))return e.interpolate(e.list(n.index));throw _n(o)}case 6:{const n=t,s=eb(n),a=tb(n);return e.linked(Ds(e,a),s?Ds(e,s):void 0,e.type)}case 7:return Pa(t,o);case 8:return Pa(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Kl=e=>e;let Uo=Ne();function Xl(e,t={}){let o=!1;const n=t.onError||L$;return t.onError=s=>{o=!0,n(s)},{...K$(e,t),detectError:o}}const Db=(e,t)=>{if(!fe(e))throw Gt(Lt.NOT_SUPPORT_NON_STRING_MESSAGE);{Ee(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Kl)(e),s=Uo[n];if(s)return s;const{code:a,detectError:r}=Xl(e,t),i=new Function(`return ${a}`)();return r?i:Uo[n]=i}};function Gb(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&fe(e)){Ee(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Kl)(e),s=Uo[n];if(s)return s;const{ast:a,detectError:r}=Xl(e,{...t,location:!1,jit:!0}),i=Is(a);return r?i:Uo[n]=i}else{const o=e.cacheKey;if(o){const n=Uo[o];return n||(Uo[o]=Is(e))}else return Is(e)}}const Yl=()=>"",mt=e=>Ue(e);function Zl(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:s,messageCompiler:a,fallbackLocale:r,messages:i}=e,[l,u]=Gs(...t),c=Ee(u.missingWarn)?u.missingWarn:e.missingWarn,d=Ee(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,p=Ee(u.escapeParameter)?u.escapeParameter:e.escapeParameter,_=!!u.resolvedMessage,A=fe(u.default)||Ee(u.default)?Ee(u.default)?a?l:()=>l:u.default:o?a?l:()=>l:"",w=o||A!=="",v=Ts(e,u);p&&Ub(u);let[k,f,b]=_?[l,v,i[v]||Ne()]:Jl(e,l,v,r,d,c),m=k,C=l;if(!_&&!(fe(m)||Dt(m)||mt(m))&&w&&(m=A,C=m),!_&&(!(fe(m)||Dt(m)||mt(m))||!fe(f)))return s?Aa:l;let $=!1;const O=()=>{$=!0},x=mt(m)?m:Ql(e,l,f,m,C,O);if($)return m;const L=jb(e,f,b,u),F=$b(L),N=Bb(e,x,F);let H=n?n(N,l):N;if(p&&fe(H)&&(H=h$(H)),__INTLIFY_PROD_DEVTOOLS__){const M={timestamp:Date.now(),key:fe(l)?l:mt(m)?m.key:"",locale:f||(mt(m)?m.locale:""),format:fe(m)?m:mt(m)?m.source:"",message:H};M.meta=ot({},e.__meta,Mb()||{}),yb(M)}return H}function Ub(e){Be(e.list)?e.list=e.list.map(t=>fe(t)?dl(t):t):Me(e.named)&&Object.keys(e.named).forEach(t=>{fe(e.named[t])&&(e.named[t]=dl(e.named[t]))})}function Jl(e,t,o,n,s,a){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:u}=e,c=u(e,n,o);let d=Ne(),p,_=null;const A="translate";for(let w=0;wn;return u.locale=o,u.key=t,u}const l=r(n,zb(e,o,s,n,i,a));return l.locale=o,l.key=t,l.source=n,l}function Bb(e,t,o){return t(o)}function Gs(...e){const[t,o,n]=e,s=Ne();if(!fe(t)&&!We(t)&&!mt(t)&&!Dt(t))throw Gt(Lt.INVALID_ARGUMENT);const a=We(t)?String(t):(mt(t),t);return We(o)?s.plural=o:fe(o)?s.default=o:Pe(o)&&!va(o)?s.named=o:Be(o)&&(s.list=o),We(n)?s.plural=n:fe(n)?s.default=n:Pe(n)&&ot(s,n),[a,s]}function zb(e,t,o,n,s,a){return{locale:t,key:o,warnHtmlMessage:s,onError:r=>{throw a&&a(r),r},onCacheKey:r=>u$(t,o,r)}}function jb(e,t,o,n){const{modifiers:s,pluralRules:a,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:u,fallbackContext:c}=e,p={locale:t,modifiers:s,pluralRules:a,messages:_=>{let A=r(o,_);if(A==null&&c){const[,,w]=Jl(c,_,t,i,l,u);A=r(w,_)}if(fe(A)||Dt(A)){let w=!1;const k=Ql(e,_,t,A,_,()=>{w=!0});return w?Yl:k}else return mt(A)?A:Yl}};return e.processor&&(p.processor=e.processor),n.list&&(p.list=n.list),n.named&&(p.named=n.named),We(n.plural)&&(p.pluralIndex=n.plural),p}function ec(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:s,onWarn:a,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,u,c,d]=Us(...t),p=Ee(c.missingWarn)?c.missingWarn:e.missingWarn;Ee(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const _=!!c.part,A=Ts(e,c),w=r(e,s,A);if(!fe(l)||l==="")return new Intl.DateTimeFormat(A,d).format(u);let v={},k,f=null;const b="datetime format";for(let $=0;${tc.includes(l)?r[l]=o[l]:a[l]=o[l]}),fe(n)?a.locale=n:Pe(n)&&(r=n),Pe(s)&&(r=s),[a.key||"",i,a,r]}function oc(e,t,o){const n=e;for(const s in o){const a=`${t}__${s}`;n.__datetimeFormatters.has(a)&&n.__datetimeFormatters.delete(a)}}function nc(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:s,onWarn:a,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,u,c,d]=Bs(...t),p=Ee(c.missingWarn)?c.missingWarn:e.missingWarn;Ee(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const _=!!c.part,A=Ts(e,c),w=r(e,s,A);if(!fe(l)||l==="")return new Intl.NumberFormat(A,d).format(u);let v={},k,f=null;const b="number format";for(let $=0;${ac.includes(l)?r[l]=o[l]:a[l]=o[l]}),fe(n)?a.locale=n:Pe(n)&&(r=n),Pe(s)&&(r=s),[a.key||"",i,a,r]}function sc(e,t,o){const n=e;for(const s in o){const a=`${t}__${s}`;n.__numberFormatters.has(a)&&n.__numberFormatters.delete(a)}}X$();/*! + */function Xb(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Yt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Yt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Yt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Gt(e){return Me(e)&&Ms(e)===0&&(wt(e,"b")||wt(e,"body"))}const xl=["b","body"];function Yb(e){return co(e,xl)}const wl=["c","cases"];function Zb(e){return co(e,wl,[])}const kl=["s","static"];function Jb(e){return co(e,kl)}const Ll=["i","items"];function Qb(e){return co(e,Ll,[])}const Pl=["t","type"];function Ms(e){return co(e,Pl)}const Al=["v","value"];function Pa(e,t){const o=co(e,Al);if(o!=null)return o;throw _n(t)}const Sl=["m","modifier"];function e$(e){return co(e,Sl)}const El=["k","key"];function t$(e){const t=co(e,El);if(t)return t;throw _n(6)}function co(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},d[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},d[2]=()=>{d[0](),s++},d[3]=()=>{if(s>0)s--,n=4,d[0]();else{if(s=0,r===void 0||(r=r$(r),r===!1))return!1;d[1]()}};function _(){const A=e[o+1];if(n===5&&A==="'"||n===6&&A==='"')return o++,i="\\"+A,d[0](),!0}for(;n!==null;)if(o++,a=e[o],!(a==="\\"&&_())){if(l=s$(a),p=uo[n],u=p[l]||p.l||8,u===8||(n=u[0],u[1]!==void 0&&(c=d[u[1]],c&&(i=a,c()===!1))))return;if(n===7)return t}}const Cl=new Map;function l$(e,t){return Me(e)?e[t]:null}function c$(e,t){if(!Me(e))return null;let o=Cl.get(t);if(o||(o=i$(t),o&&Cl.set(t,o)),!o)return null;const n=o.length;let s=e,a=0;for(;ae,p$=e=>"",d$="text",g$=e=>e.length===0?"":$b(e),h$=bb;function Ml(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function f$(e){const t=We(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(We(e.named.count)||We(e.named.n))?We(e.named.count)?e.named.count:We(e.named.n)?e.named.n:t:t}function m$(e,t){t.count||(t.count=e),t.n||(t.n=e)}function b$(e={}){const t=e.locale,o=f$(e),n=Me(e.pluralRules)&&fe(t)&&Ue(e.pluralRules[t])?e.pluralRules[t]:Ml,s=Me(e.pluralRules)&&fe(t)&&Ue(e.pluralRules[t])?Ml:void 0,a=k=>k[n(o,k.length,s)],r=e.list||[],i=k=>r[k],l=e.named||Ne();We(e.pluralIndex)&&m$(o,l);const u=k=>l[k];function c(k){const f=Ue(e.messages)?e.messages(k):Me(e.messages)?e.messages[k]:!1;return f||(e.parent?e.parent.message(k):p$)}const p=k=>e.modifiers?e.modifiers[k]:u$,d=Pe(e.processor)&&Ue(e.processor.normalize)?e.processor.normalize:g$,_=Pe(e.processor)&&Ue(e.processor.interpolate)?e.processor.interpolate:h$,A=Pe(e.processor)&&fe(e.processor.type)?e.processor.type:d$,v={list:i,named:u,plural:a,linked:(k,...f)=>{const[$,m]=f;let C="text",b="";f.length===1?Me($)?(b=$.modifier||b,C=$.type||C):fe($)&&(b=$||b):f.length===2&&(fe($)&&(b=$||b),fe(m)&&(C=m||C));const O=c(k)(v),x=C==="vnode"&&Be(O)&&b?O[0]:O;return b?p(b)(x,C):x},message:c,type:A,interpolate:_,normalize:d,values:ot(Ne(),r,l)};return v}let yn=null;function $$(e){yn=e}function _$(e,t,o){yn&&yn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const y$=v$("function:translate");function v$(e){return t=>yn&&yn.emit(e,t)}const x$=Rs.__EXTEND_POINT__,wo=xa(x$),w$={FALLBACK_TO_TRANSLATE:wo(),CANNOT_FORMAT_NUMBER:wo(),FALLBACK_TO_NUMBER_FORMAT:wo(),CANNOT_FORMAT_DATE:wo(),FALLBACK_TO_DATE_FORMAT:wo(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:wo(),__EXTEND_POINT__:wo()},Tl=xe.__EXTEND_POINT__,ko=xa(Tl),Lt={INVALID_ARGUMENT:Tl,INVALID_DATE_ARGUMENT:ko(),INVALID_ISO_DATE_ARGUMENT:ko(),NOT_SUPPORT_NON_STRING_MESSAGE:ko(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:ko(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:ko(),NOT_SUPPORT_LOCALE_TYPE:ko(),__EXTEND_POINT__:ko()};function Dt(e){return Fo(e,null,void 0)}function Ts(e,t){return t.locale!=null?Ol(t.locale):Ol(e.locale)}let Os;function Ol(e){if(fe(e))return e;if(Ue(e)){if(e.resolvedOnce&&Os!=null)return Os;if(e.constructor.name==="Function"){const t=e();if(mb(t))throw Dt(Lt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Os=t}else throw Dt(Lt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Dt(Lt.NOT_SUPPORT_LOCALE_TYPE)}function k$(e,t,o){return[...new Set([o,...Be(t)?t:Me(t)?Object.keys(t):fe(t)?[t]:[o]])]}function Nl(e,t,o){const n=fe(o)?o:Do,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let a=s.__localeChainCache.get(n);if(!a){a=[];let r=[o];for(;Be(r);)r=Fl(a,r,t);const i=Be(t)||!Pe(t)?t:t.default?t.default:null;r=fe(i)?[i]:i,Be(r)&&Fl(a,r,!1),s.__localeChainCache.set(n,a)}return a}function Fl(e,t,o){let n=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function S$(){return{upper:(e,t)=>t==="text"&&fe(e)?e.toUpperCase():t==="vnode"&&Me(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&fe(e)?e.toLowerCase():t==="vnode"&&Me(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&fe(e)?Gl(e):t==="vnode"&&Me(e)&&"__v_isVNode"in e?Gl(e.children):e}}let Dl;function Ul(e){Dl=e}let Bl;function E$(e){Bl=e}let zl;function R$(e){zl=e}let Vl=null;const C$=e=>{Vl=e},M$=()=>Vl;let jl=null;const Hl=e=>{jl=e},T$=()=>jl;let Wl=0;function O$(e={}){const t=Ue(e.onWarn)?e.onWarn:cb,o=fe(e.version)?e.version:A$,n=fe(e.locale)||Ue(e.locale)?e.locale:Do,s=Ue(n)?Do:n,a=Be(e.fallbackLocale)||Pe(e.fallbackLocale)||fe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,r=Pe(e.messages)?e.messages:Ns(s),i=Pe(e.datetimeFormats)?e.datetimeFormats:Ns(s),l=Pe(e.numberFormats)?e.numberFormats:Ns(s),u=ot(Ne(),e.modifiers,S$()),c=e.pluralRules||Ne(),p=Ue(e.missing)?e.missing:null,d=Ee(e.missingWarn)||io(e.missingWarn)?e.missingWarn:!0,_=Ee(e.fallbackWarn)||io(e.fallbackWarn)?e.fallbackWarn:!0,A=!!e.fallbackFormat,w=!!e.unresolving,v=Ue(e.postTranslation)?e.postTranslation:null,k=Pe(e.processor)?e.processor:null,f=Ee(e.warnHtmlMessage)?e.warnHtmlMessage:!0,$=!!e.escapeParameter,m=Ue(e.messageCompiler)?e.messageCompiler:Dl,C=Ue(e.messageResolver)?e.messageResolver:Bl||l$,b=Ue(e.localeFallbacker)?e.localeFallbacker:zl||k$,O=Me(e.fallbackContext)?e.fallbackContext:void 0,x=e,L=Me(x.__datetimeFormatters)?x.__datetimeFormatters:new Map,F=Me(x.__numberFormatters)?x.__numberFormatters:new Map,N=Me(x.__meta)?x.__meta:{};Wl++;const H={version:o,cid:Wl,locale:n,fallbackLocale:a,messages:r,modifiers:u,pluralRules:c,missing:p,missingWarn:d,fallbackWarn:_,fallbackFormat:A,unresolving:w,postTranslation:v,processor:k,warnHtmlMessage:f,escapeParameter:$,messageCompiler:m,messageResolver:C,localeFallbacker:b,fallbackContext:O,onWarn:t,__meta:N};return H.datetimeFormats=i,H.numberFormats=l,H.__datetimeFormatters=L,H.__numberFormatters=F,__INTLIFY_PROD_DEVTOOLS__&&_$(H,o,N),H}const Ns=e=>({[e]:Ne()});function Fs(e,t,o,n,s){const{missing:a,onWarn:r}=e;if(a!==null){const i=a(e,o,t,s);return fe(i)?i:t}else return t}function vn(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function N$(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function F$(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nI$(o,e)}function I$(e,t){const o=Yb(t);if(o==null)throw _n(0);if(Ms(o)===1){const a=Zb(o);return e.plural(a.reduce((r,i)=>[...r,ql(e,i)],[]))}else return ql(e,o)}function ql(e,t){const o=Jb(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=Qb(t).reduce((s,a)=>[...s,Gs(e,a)],[]);return e.normalize(n)}}function Gs(e,t){const o=Ms(t);switch(o){case 3:return Pa(t,o);case 9:return Pa(t,o);case 4:{const n=t;if(wt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(wt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw _n(o)}case 5:{const n=t;if(wt(n,"i")&&We(n.i))return e.interpolate(e.list(n.i));if(wt(n,"index")&&We(n.index))return e.interpolate(e.list(n.index));throw _n(o)}case 6:{const n=t,s=e$(n),a=t$(n);return e.linked(Gs(e,a),s?Gs(e,s):void 0,e.type)}case 7:return Pa(t,o);case 8:return Pa(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Kl=e=>e;let Uo=Ne();function Xl(e,t={}){let o=!1;const n=t.onError||Lb;return t.onError=s=>{o=!0,n(s)},{...Kb(e,t),detectError:o}}const G$=(e,t)=>{if(!fe(e))throw Dt(Lt.NOT_SUPPORT_NON_STRING_MESSAGE);{Ee(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Kl)(e),s=Uo[n];if(s)return s;const{code:a,detectError:r}=Xl(e,t),i=new Function(`return ${a}`)();return r?i:Uo[n]=i}};function D$(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&fe(e)){Ee(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Kl)(e),s=Uo[n];if(s)return s;const{ast:a,detectError:r}=Xl(e,{...t,location:!1,jit:!0}),i=Is(a);return r?i:Uo[n]=i}else{const o=e.cacheKey;if(o){const n=Uo[o];return n||(Uo[o]=Is(e))}else return Is(e)}}const Yl=()=>"",mt=e=>Ue(e);function Zl(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:s,messageCompiler:a,fallbackLocale:r,messages:i}=e,[l,u]=Ds(...t),c=Ee(u.missingWarn)?u.missingWarn:e.missingWarn,p=Ee(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,d=Ee(u.escapeParameter)?u.escapeParameter:e.escapeParameter,_=!!u.resolvedMessage,A=fe(u.default)||Ee(u.default)?Ee(u.default)?a?l:()=>l:u.default:o?a?l:()=>l:"",w=o||A!=="",v=Ts(e,u);d&&U$(u);let[k,f,$]=_?[l,v,i[v]||Ne()]:Jl(e,l,v,r,p,c),m=k,C=l;if(!_&&!(fe(m)||Gt(m)||mt(m))&&w&&(m=A,C=m),!_&&(!(fe(m)||Gt(m)||mt(m))||!fe(f)))return s?Aa:l;let b=!1;const O=()=>{b=!0},x=mt(m)?m:Ql(e,l,f,m,C,O);if(b)return m;const L=V$(e,f,$,u),F=b$(L),N=B$(e,x,F);let H=n?n(N,l):N;if(d&&fe(H)&&(H=hb(H)),__INTLIFY_PROD_DEVTOOLS__){const M={timestamp:Date.now(),key:fe(l)?l:mt(m)?m.key:"",locale:f||(mt(m)?m.locale:""),format:fe(m)?m:mt(m)?m.source:"",message:H};M.meta=ot({},e.__meta,M$()||{}),y$(M)}return H}function U$(e){Be(e.list)?e.list=e.list.map(t=>fe(t)?pl(t):t):Me(e.named)&&Object.keys(e.named).forEach(t=>{fe(e.named[t])&&(e.named[t]=pl(e.named[t]))})}function Jl(e,t,o,n,s,a){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:u}=e,c=u(e,n,o);let p=Ne(),d,_=null;const A="translate";for(let w=0;wn;return u.locale=o,u.key=t,u}const l=r(n,z$(e,o,s,n,i,a));return l.locale=o,l.key=t,l.source=n,l}function B$(e,t,o){return t(o)}function Ds(...e){const[t,o,n]=e,s=Ne();if(!fe(t)&&!We(t)&&!mt(t)&&!Gt(t))throw Dt(Lt.INVALID_ARGUMENT);const a=We(t)?String(t):(mt(t),t);return We(o)?s.plural=o:fe(o)?s.default=o:Pe(o)&&!va(o)?s.named=o:Be(o)&&(s.list=o),We(n)?s.plural=n:fe(n)?s.default=n:Pe(n)&&ot(s,n),[a,s]}function z$(e,t,o,n,s,a){return{locale:t,key:o,warnHtmlMessage:s,onError:r=>{throw a&&a(r),r},onCacheKey:r=>ub(t,o,r)}}function V$(e,t,o,n){const{modifiers:s,pluralRules:a,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:u,fallbackContext:c}=e,d={locale:t,modifiers:s,pluralRules:a,messages:_=>{let A=r(o,_);if(A==null&&c){const[,,w]=Jl(c,_,t,i,l,u);A=r(w,_)}if(fe(A)||Gt(A)){let w=!1;const k=Ql(e,_,t,A,_,()=>{w=!0});return w?Yl:k}else return mt(A)?A:Yl}};return e.processor&&(d.processor=e.processor),n.list&&(d.list=n.list),n.named&&(d.named=n.named),We(n.plural)&&(d.pluralIndex=n.plural),d}function ec(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:s,onWarn:a,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,u,c,p]=Us(...t),d=Ee(c.missingWarn)?c.missingWarn:e.missingWarn;Ee(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const _=!!c.part,A=Ts(e,c),w=r(e,s,A);if(!fe(l)||l==="")return new Intl.DateTimeFormat(A,p).format(u);let v={},k,f=null;const $="datetime format";for(let b=0;b{tc.includes(l)?r[l]=o[l]:a[l]=o[l]}),fe(n)?a.locale=n:Pe(n)&&(r=n),Pe(s)&&(r=s),[a.key||"",i,a,r]}function oc(e,t,o){const n=e;for(const s in o){const a=`${t}__${s}`;n.__datetimeFormatters.has(a)&&n.__datetimeFormatters.delete(a)}}function nc(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:s,onWarn:a,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,u,c,p]=Bs(...t),d=Ee(c.missingWarn)?c.missingWarn:e.missingWarn;Ee(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const _=!!c.part,A=Ts(e,c),w=r(e,s,A);if(!fe(l)||l==="")return new Intl.NumberFormat(A,p).format(u);let v={},k,f=null;const $="number format";for(let b=0;b{ac.includes(l)?r[l]=o[l]:a[l]=o[l]}),fe(n)?a.locale=n:Pe(n)&&(r=n),Pe(s)&&(r=s),[a.key||"",i,a,r]}function sc(e,t,o){const n=e;for(const s in o){const a=`${t}__${s}`;n.__numberFormatters.has(a)&&n.__numberFormatters.delete(a)}}Xb();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const Vb="9.14.5";function Hb(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Yt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Yt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Yt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Yt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Yt().__INTLIFY_PROD_DEVTOOLS__=!1)}const Wb=wb.__EXTEND_POINT__,Jt=xa(Wb);Jt(),Jt(),Jt(),Jt(),Jt(),Jt(),Jt(),Jt(),Jt();const rc=Lt.__EXTEND_POINT__,ct=xa(rc),Ye={UNEXPECTED_RETURN_TYPE:rc,INVALID_ARGUMENT:ct(),MUST_BE_CALL_SETUP_TOP:ct(),NOT_INSTALLED:ct(),NOT_AVAILABLE_IN_LEGACY_MODE:ct(),REQUIRED_VALUE:ct(),INVALID_VALUE:ct(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:ct(),NOT_INSTALLED_WITH_PROVIDE:ct(),UNEXPECTED_ERROR:ct(),NOT_COMPATIBLE_LEGACY_VUE_I18N:ct(),BRIDGE_SUPPORT_VUE_2_ONLY:ct(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:ct(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:ct(),__EXTEND_POINT__:ct()};function Je(e,...t){return Fo(e,null,void 0)}const zs=ro("__translateVNode"),js=ro("__datetimeParts"),Vs=ro("__numberParts"),ic=ro("__setPluralRules"),lc=ro("__injectWithOption"),Hs=ro("__dispose");function xn(e){if(!Me(e)||Dt(e))return e;for(const t in e)if(wt(e,t))if(!t.includes("."))Me(e[t])&&xn(e[t]);else{const o=t.split("."),n=o.length-1;let s=e,a=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:u}=i;l?(r[l]=r[l]||Ne(),ka(u,r[l])):ka(u,r)}else fe(i)&&ka(JSON.parse(i),r)}),s==null&&a)for(const i in r)wt(r,i)&&xn(r[i]);return r}function cc(e){return e.type}function uc(e,t,o){let n=Me(t.messages)?t.messages:Ne();"__i18nGlobal"in o&&(n=Sa(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const s=Object.keys(n);s.length&&s.forEach(a=>{e.mergeLocaleMessage(a,n[a])});{if(Me(t.datetimeFormats)){const a=Object.keys(t.datetimeFormats);a.length&&a.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(Me(t.numberFormats)){const a=Object.keys(t.numberFormats);a.length&&a.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function dc(e){return Ie(cn,null,e,0)}const pc="__INTLIFY_META__",gc=()=>[],qb=()=>!1;let hc=0;function fc(e){return(t,o,n,s)=>e(o,n,It()||void 0,s)}const Kb=()=>{const e=It();let t=null;return e&&(t=cc(e)[pc])?{[pc]:t}:null};function Ws(e={},t){const{__root:o,__injectWithOption:n}=e,s=o===void 0,a=e.flatJson,r=ya?$e:Kn,i=!!e.translateExistCompatible;let l=Ee(e.inheritLocale)?e.inheritLocale:!0;const u=r(o&&l?o.locale.value:fe(e.locale)?e.locale:Go),c=r(o&&l?o.fallbackLocale.value:fe(e.fallbackLocale)||Be(e.fallbackLocale)||Pe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:u.value),d=r(Sa(u.value,e)),p=r(Pe(e.datetimeFormats)?e.datetimeFormats:{[u.value]:{}}),_=r(Pe(e.numberFormats)?e.numberFormats:{[u.value]:{}});let A=o?o.missingWarn:Ee(e.missingWarn)||io(e.missingWarn)?e.missingWarn:!0,w=o?o.fallbackWarn:Ee(e.fallbackWarn)||io(e.fallbackWarn)?e.fallbackWarn:!0,v=o?o.fallbackRoot:Ee(e.fallbackRoot)?e.fallbackRoot:!0,k=!!e.fallbackFormat,f=Ue(e.missing)?e.missing:null,b=Ue(e.missing)?fc(e.missing):null,m=Ue(e.postTranslation)?e.postTranslation:null,C=o?o.warnHtmlMessage:Ee(e.warnHtmlMessage)?e.warnHtmlMessage:!0,$=!!e.escapeParameter;const O=o?o.modifiers:Pe(e.modifiers)?e.modifiers:{};let x=e.pluralRules||o&&o.pluralRules,L;L=(()=>{s&&Hl(null);const I={version:Vb,locale:u.value,fallbackLocale:c.value,messages:d.value,modifiers:O,pluralRules:x,missing:b===null?void 0:b,missingWarn:A,fallbackWarn:w,fallbackFormat:k,unresolving:!0,postTranslation:m===null?void 0:m,warnHtmlMessage:C,escapeParameter:$,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};I.datetimeFormats=p.value,I.numberFormats=_.value,I.__datetimeFormatters=Pe(L)?L.__datetimeFormatters:void 0,I.__numberFormatters=Pe(L)?L.__numberFormatters:void 0;const q=Ob(I);return s&&Hl(q),q})(),vn(L,u.value,c.value);function N(){return[u.value,c.value,d.value,p.value,_.value]}const H=le({get:()=>u.value,set:I=>{u.value=I,L.locale=u.value}}),M=le({get:()=>c.value,set:I=>{c.value=I,L.fallbackLocale=c.value,vn(L,u.value,I)}}),re=le(()=>d.value),ge=le(()=>p.value),de=le(()=>_.value);function se(){return Ue(m)?m:null}function S(I){m=I,L.postTranslation=I}function z(){return f}function Q(I){I!==null&&(b=fc(I)),f=I,L.missing=b}const T=(I,q,D,Y,X,Le)=>{N();let we;try{__INTLIFY_PROD_DEVTOOLS__,s||(L.fallbackContext=o?Tb():void 0),we=I(L)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(L.fallbackContext=void 0)}if(D!=="translate exists"&&We(we)&&we===Aa||D==="translate exists"&&!we){const[Ut,Ho]=q();return o&&v?Y(o):X(Ut)}else{if(Le(we))return we;throw Je(Ye.UNEXPECTED_RETURN_TYPE)}};function U(...I){return T(q=>Reflect.apply(Zl,null,[q,...I]),()=>Gs(...I),"translate",q=>Reflect.apply(q.t,q,[...I]),q=>q,q=>fe(q))}function K(...I){const[q,D,Y]=I;if(Y&&!Me(Y))throw Je(Ye.INVALID_ARGUMENT);return U(q,D,ot({resolvedMessage:!0},Y||{}))}function pe(...I){return T(q=>Reflect.apply(ec,null,[q,...I]),()=>Us(...I),"datetime format",q=>Reflect.apply(q.d,q,[...I]),()=>Il,q=>fe(q))}function be(...I){return T(q=>Reflect.apply(nc,null,[q,...I]),()=>Bs(...I),"number format",q=>Reflect.apply(q.n,q,[...I]),()=>Il,q=>fe(q))}function _e(I){return I.map(q=>fe(q)||We(q)||Ee(q)?dc(String(q)):q)}const ee={normalize:_e,interpolate:I=>I,type:"vnode"};function ne(...I){return T(q=>{let D;const Y=q;try{Y.processor=ee,D=Reflect.apply(Zl,null,[Y,...I])}finally{Y.processor=null}return D},()=>Gs(...I),"translate",q=>q[zs](...I),q=>[dc(q)],q=>Be(q))}function ae(...I){return T(q=>Reflect.apply(nc,null,[q,...I]),()=>Bs(...I),"number format",q=>q[Vs](...I),gc,q=>fe(q)||Be(q))}function ve(...I){return T(q=>Reflect.apply(ec,null,[q,...I]),()=>Us(...I),"datetime format",q=>q[js](...I),gc,q=>fe(q)||Be(q))}function y(I){x=I,L.pluralRules=x}function R(I,q){return T(()=>{if(!I)return!1;const D=fe(q)?q:u.value,Y=J(D),X=L.messageResolver(Y,I);return i?X!=null:Dt(X)||mt(X)||fe(X)},()=>[I],"translate exists",D=>Reflect.apply(D.te,D,[I,q]),qb,D=>Ee(D))}function P(I){let q=null;const D=Nl(L,c.value,u.value);for(let Y=0;Y{l&&(u.value=I,L.locale=I,vn(L,u.value,c.value))}),qe(o.fallbackLocale,I=>{l&&(c.value=I,L.fallbackLocale=I,vn(L,u.value,c.value))}));const ie={id:hc,locale:H,fallbackLocale:M,get inheritLocale(){return l},set inheritLocale(I){l=I,I&&o&&(u.value=o.locale.value,c.value=o.fallbackLocale.value,vn(L,u.value,c.value))},get availableLocales(){return Object.keys(d.value).sort()},messages:re,get modifiers(){return O},get pluralRules(){return x||{}},get isGlobal(){return s},get missingWarn(){return A},set missingWarn(I){A=I,L.missingWarn=A},get fallbackWarn(){return w},set fallbackWarn(I){w=I,L.fallbackWarn=w},get fallbackRoot(){return v},set fallbackRoot(I){v=I},get fallbackFormat(){return k},set fallbackFormat(I){k=I,L.fallbackFormat=k},get warnHtmlMessage(){return C},set warnHtmlMessage(I){C=I,L.warnHtmlMessage=I},get escapeParameter(){return $},set escapeParameter(I){$=I,L.escapeParameter=I},t:U,getLocaleMessage:J,setLocaleMessage:te,mergeLocaleMessage:ue,getPostTranslationHandler:se,setPostTranslationHandler:S,getMissingHandler:z,setMissingHandler:Q,[ic]:y};return ie.datetimeFormats=ge,ie.numberFormats=de,ie.rt=K,ie.te=R,ie.tm=B,ie.d=pe,ie.n=be,ie.getDateTimeFormat=ce,ie.setDateTimeFormat=g,ie.mergeDateTimeFormat=h,ie.getNumberFormat=G,ie.setNumberFormat=W,ie.mergeNumberFormat=he,ie[lc]=n,ie[zs]=ne,ie[js]=ve,ie[Vs]=ae,ie}function Xb(e){const t=fe(e.locale)?e.locale:Go,o=fe(e.fallbackLocale)||Be(e.fallbackLocale)||Pe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=Ue(e.missing)?e.missing:void 0,s=Ee(e.silentTranslationWarn)||io(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,a=Ee(e.silentFallbackWarn)||io(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Ee(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Pe(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,c=Ue(e.postTranslation)?e.postTranslation:void 0,d=fe(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,p=!!e.escapeParameterHtml,_=Ee(e.sync)?e.sync:!0;let A=e.messages;if(Pe(e.sharedMessages)){const $=e.sharedMessages;A=Object.keys($).reduce((x,L)=>{const F=x[L]||(x[L]={});return ot(F,$[L]),x},A||{})}const{__i18n:w,__root:v,__injectWithOption:k}=e,f=e.datetimeFormats,b=e.numberFormats,m=e.flatJson,C=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:A,flatJson:m,datetimeFormats:f,numberFormats:b,missing:n,missingWarn:s,fallbackWarn:a,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:u,postTranslation:c,warnHtmlMessage:d,escapeParameter:p,messageResolver:e.messageResolver,inheritLocale:_,translateExistCompatible:C,__i18n:w,__root:v,__injectWithOption:k}}function qs(e={},t){{const o=Ws(Xb(e)),{__extender:n}=e,s={id:o.id,get locale(){return o.locale.value},set locale(a){o.locale.value=a},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(a){o.fallbackLocale.value=a},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(a){},get missing(){return o.getMissingHandler()},set missing(a){o.setMissingHandler(a)},get silentTranslationWarn(){return Ee(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(a){o.missingWarn=Ee(a)?!a:a},get silentFallbackWarn(){return Ee(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(a){o.fallbackWarn=Ee(a)?!a:a},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(a){o.fallbackFormat=a},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(a){o.setPostTranslationHandler(a)},get sync(){return o.inheritLocale},set sync(a){o.inheritLocale=a},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(a){o.warnHtmlMessage=a!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(a){o.escapeParameter=a},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(a){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...a){const[r,i,l]=a,u={};let c=null,d=null;if(!fe(r))throw Je(Ye.INVALID_ARGUMENT);const p=r;return fe(i)?u.locale=i:Be(i)?c=i:Pe(i)&&(d=i),Be(l)?c=l:Pe(l)&&(d=l),Reflect.apply(o.t,o,[p,c||d||{},u])},rt(...a){return Reflect.apply(o.rt,o,[...a])},tc(...a){const[r,i,l]=a,u={plural:1};let c=null,d=null;if(!fe(r))throw Je(Ye.INVALID_ARGUMENT);const p=r;return fe(i)?u.locale=i:We(i)?u.plural=i:Be(i)?c=i:Pe(i)&&(d=i),fe(l)?u.locale=l:Be(l)?c=l:Pe(l)&&(d=l),Reflect.apply(o.t,o,[p,c||d||{},u])},te(a,r){return o.te(a,r)},tm(a){return o.tm(a)},getLocaleMessage(a){return o.getLocaleMessage(a)},setLocaleMessage(a,r){o.setLocaleMessage(a,r)},mergeLocaleMessage(a,r){o.mergeLocaleMessage(a,r)},d(...a){return Reflect.apply(o.d,o,[...a])},getDateTimeFormat(a){return o.getDateTimeFormat(a)},setDateTimeFormat(a,r){o.setDateTimeFormat(a,r)},mergeDateTimeFormat(a,r){o.mergeDateTimeFormat(a,r)},n(...a){return Reflect.apply(o.n,o,[...a])},getNumberFormat(a){return o.getNumberFormat(a)},setNumberFormat(a,r){o.setNumberFormat(a,r)},mergeNumberFormat(a,r){o.mergeNumberFormat(a,r)},getChoiceIndex(a,r){return-1}};return s.__extender=n,s}}const Ks={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Yb({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,s)=>[...n,...s.type===Se?s.children:[s]],[]):t.reduce((o,n)=>{const s=e[n];return s&&(o[n]=s()),o},Ne())}function mc(e){return Se}const $c=an({name:"i18n-t",props:ot({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>We(e)||!isNaN(e)}},Ks),setup(e,t){const{slots:o,attrs:n}=t,s=e.i18n||Qt({useScope:e.scope,__useComponent:!0});return()=>{const a=Object.keys(o).filter(d=>d!=="_"),r=Ne();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=fe(e.plural)?+e.plural:e.plural);const i=Yb(t,a),l=s[zs](e.keypath,i,r),u=ot(Ne(),n),c=fe(e.tag)||Me(e.tag)?e.tag:mc();return Di(c,u,l)}}});function Zb(e){return Be(e)&&!fe(e[0])}function bc(e,t,o,n){const{slots:s,attrs:a}=t;return()=>{const r={part:!0};let i=Ne();e.locale&&(r.locale=e.locale),fe(e.format)?r.key=e.format:Me(e.format)&&(fe(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((p,_)=>o.includes(_)?ot(Ne(),p,{[_]:e.format[_]}):p,Ne()));const l=n(e.value,r,i);let u=[r.key];Be(l)?u=l.map((p,_)=>{const A=s[p.type],w=A?A({[p.type]:p.value,index:_,parts:l}):[p.value];return Zb(w)&&(w[0].key=`${p.type}-${_}`),w}):fe(l)&&(u=[l]);const c=ot(Ne(),a),d=fe(e.tag)||Me(e.tag)?e.tag:mc();return Di(d,c,u)}}const _c=an({name:"i18n-n",props:ot({value:{type:Number,required:!0},format:{type:[String,Object]}},Ks),setup(e,t){const o=e.i18n||Qt({useScope:e.scope,__useComponent:!0});return bc(e,t,ac,(...n)=>o[Vs](...n))}}),yc=an({name:"i18n-d",props:ot({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Ks),setup(e,t){const o=e.i18n||Qt({useScope:e.scope,__useComponent:!0});return bc(e,t,tc,(...n)=>o[js](...n))}});function Jb(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 Qb(e){const t=r=>{const{instance:i,modifiers:l,value:u}=r;if(!i||!i.$)throw Je(Ye.UNEXPECTED_ERROR);const c=Jb(e,i.$),d=vc(u);return[Reflect.apply(c.t,c,[...xc(d)]),c]};return{created:(r,i)=>{const[l,u]=t(i);ya&&e.global===u&&(r.__i18nWatcher=qe(u.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=u,r.textContent=l},unmounted:r=>{ya&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const l=r.__composer,u=vc(i);r.textContent=Reflect.apply(l.t,l,[...xc(u)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function vc(e){if(fe(e))return{path:e};if(Pe(e)){if(!("path"in e))throw Je(Ye.REQUIRED_VALUE,"path");return e}else throw Je(Ye.INVALID_VALUE)}function xc(e){const{path:t,locale:o,args:n,choice:s,plural:a}=e,r={},i=n||{};return fe(o)&&(r.locale=o),We(s)&&(r.plural=s),We(a)&&(r.plural=a),[t,i,r]}function e_(e,t,...o){const n=Pe(o[0])?o[0]:{},s=!!n.useI18nComponentName;(Ee(n.globalInstall)?n.globalInstall:!0)&&([s?"i18n":$c.name,"I18nT"].forEach(r=>e.component(r,$c)),[_c.name,"I18nN"].forEach(r=>e.component(r,_c)),[yc.name,"I18nD"].forEach(r=>e.component(r,yc))),e.directive("t",Qb(t))}function t_(e,t,o){return{beforeCreate(){const n=It();if(!n)throw Je(Ye.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const a=s.i18n;if(s.__i18n&&(a.__i18n=s.__i18n),a.__root=t,this===this.$root)this.$i18n=wc(e,a);else{a.__injectWithOption=!0,a.__extender=o.__vueI18nExtend,this.$i18n=qs(a);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=wc(e,s);else{this.$i18n=qs({__i18n:s.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const a=this.$i18n;a.__extender&&(a.__disposer=a.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&uc(t,s,s),this.$t=(...a)=>this.$i18n.t(...a),this.$rt=(...a)=>this.$i18n.rt(...a),this.$tc=(...a)=>this.$i18n.tc(...a),this.$te=(a,r)=>this.$i18n.te(a,r),this.$d=(...a)=>this.$i18n.d(...a),this.$n=(...a)=>this.$i18n.n(...a),this.$tm=a=>this.$i18n.tm(a),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=It();if(!n)throw Je(Ye.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),o.__deleteInstance(n),delete this.$i18n}}}function wc(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[ic](t.pluralizationRules||e.pluralizationRules);const o=Sa(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 o_=ro("global-vue-i18n");function n_(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ee(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ee(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,a=new Map,[r,i]=a_(e,o),l=ro("");function u(p){return a.get(p)||null}function c(p,_){a.set(p,_)}function d(p){a.delete(p)}{const p={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return s},async install(_,...A){if(_.__VUE_I18N_SYMBOL__=l,_.provide(_.__VUE_I18N_SYMBOL__,p),Pe(A[0])){const k=A[0];p.__composerExtend=k.__composerExtend,p.__vueI18nExtend=k.__vueI18nExtend}let w=null;!o&&n&&(w=g_(_,p.global)),__VUE_I18N_FULL_INSTALL__&&e_(_,p,...A),__VUE_I18N_LEGACY_API__&&o&&_.mixin(t_(i,i.__composer,p));const v=_.unmount;_.unmount=()=>{w&&w(),p.dispose(),v()}},get global(){return i},dispose(){r.stop()},__instances:a,__getInstance:u,__setInstance:c,__deleteInstance:d};return p}}function Qt(e={}){const t=It();if(t==null)throw Je(Ye.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Je(Ye.NOT_INSTALLED);const o=s_(t),n=i_(o),s=cc(t),a=r_(e,s);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw Je(Ye.NOT_AVAILABLE_IN_LEGACY_MODE);return d_(t,a,n,e)}if(a==="global")return uc(n,e,s),n;if(a==="parent"){let l=l_(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=ot({},e);"__i18n"in s&&(l.__i18n=s.__i18n),n&&(l.__root=n),i=Ws(l),r.__composerExtend&&(i[Hs]=r.__composerExtend(i)),u_(r,t,i),r.__setInstance(t,i)}return i}function a_(e,t,o){const n=Ua();{const s=__VUE_I18N_LEGACY_API__&&t?n.run(()=>qs(e)):n.run(()=>Ws(e));if(s==null)throw Je(Ye.UNEXPECTED_ERROR);return[n,s]}}function s_(e){{const t=je(e.isCE?o_:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Je(e.isCE?Ye.NOT_INSTALLED_WITH_PROVIDE:Ye.UNEXPECTED_ERROR);return t}}function r_(e,t){return va(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function i_(e){return e.mode==="composition"?e.global:e.global.__composer}function l_(e,t,o=!1){let n=null;const s=t.root;let a=c_(t,o);for(;a!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(a);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(a);i!=null&&(n=i.__composer,o&&n&&!n[lc]&&(n=null))}if(n!=null||s===a)break;a=a.parent}return n}function c_(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function u_(e,t,o){xt(()=>{},t),ra(()=>{const n=o;e.__deleteInstance(t);const s=n[Hs];s&&(s(),delete n[Hs])},t)}function d_(e,t,o,n={}){const s=t==="local",a=Kn(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Je(Ye.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Ee(n.inheritLocale)?n.inheritLocale:!fe(n.locale),i=$e(!s||r?o.locale.value:fe(n.locale)?n.locale:Go),l=$e(!s||r?o.fallbackLocale.value:fe(n.fallbackLocale)||Be(n.fallbackLocale)||Pe(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),u=$e(Sa(i.value,n)),c=$e(Pe(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),d=$e(Pe(n.numberFormats)?n.numberFormats:{[i.value]:{}}),p=s?o.missingWarn:Ee(n.missingWarn)||io(n.missingWarn)?n.missingWarn:!0,_=s?o.fallbackWarn:Ee(n.fallbackWarn)||io(n.fallbackWarn)?n.fallbackWarn:!0,A=s?o.fallbackRoot:Ee(n.fallbackRoot)?n.fallbackRoot:!0,w=!!n.fallbackFormat,v=Ue(n.missing)?n.missing:null,k=Ue(n.postTranslation)?n.postTranslation:null,f=s?o.warnHtmlMessage:Ee(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,m=s?o.modifiers:Pe(n.modifiers)?n.modifiers:{},C=n.pluralRules||s&&o.pluralRules;function $(){return[i.value,l.value,u.value,c.value,d.value]}const O=le({get:()=>a.value?a.value.locale.value:i.value,set:P=>{a.value&&(a.value.locale.value=P),i.value=P}}),x=le({get:()=>a.value?a.value.fallbackLocale.value:l.value,set:P=>{a.value&&(a.value.fallbackLocale.value=P),l.value=P}}),L=le(()=>a.value?a.value.messages.value:u.value),F=le(()=>c.value),N=le(()=>d.value);function H(){return a.value?a.value.getPostTranslationHandler():k}function M(P){a.value&&a.value.setPostTranslationHandler(P)}function re(){return a.value?a.value.getMissingHandler():v}function ge(P){a.value&&a.value.setMissingHandler(P)}function de(P){return $(),P()}function se(...P){return a.value?de(()=>Reflect.apply(a.value.t,null,[...P])):de(()=>"")}function S(...P){return a.value?Reflect.apply(a.value.rt,null,[...P]):""}function z(...P){return a.value?de(()=>Reflect.apply(a.value.d,null,[...P])):de(()=>"")}function Q(...P){return a.value?de(()=>Reflect.apply(a.value.n,null,[...P])):de(()=>"")}function T(P){return a.value?a.value.tm(P):{}}function U(P,B){return a.value?a.value.te(P,B):!1}function K(P){return a.value?a.value.getLocaleMessage(P):{}}function pe(P,B){a.value&&(a.value.setLocaleMessage(P,B),u.value[P]=B)}function be(P,B){a.value&&a.value.mergeLocaleMessage(P,B)}function _e(P){return a.value?a.value.getDateTimeFormat(P):{}}function j(P,B){a.value&&(a.value.setDateTimeFormat(P,B),c.value[P]=B)}function ee(P,B){a.value&&a.value.mergeDateTimeFormat(P,B)}function ne(P){return a.value?a.value.getNumberFormat(P):{}}function ae(P,B){a.value&&(a.value.setNumberFormat(P,B),d.value[P]=B)}function ve(P,B){a.value&&a.value.mergeNumberFormat(P,B)}const y={get id(){return a.value?a.value.id:-1},locale:O,fallbackLocale:x,messages:L,datetimeFormats:F,numberFormats:N,get inheritLocale(){return a.value?a.value.inheritLocale:r},set inheritLocale(P){a.value&&(a.value.inheritLocale=P)},get availableLocales(){return a.value?a.value.availableLocales:Object.keys(u.value)},get modifiers(){return a.value?a.value.modifiers:m},get pluralRules(){return a.value?a.value.pluralRules:C},get isGlobal(){return a.value?a.value.isGlobal:!1},get missingWarn(){return a.value?a.value.missingWarn:p},set missingWarn(P){a.value&&(a.value.missingWarn=P)},get fallbackWarn(){return a.value?a.value.fallbackWarn:_},set fallbackWarn(P){a.value&&(a.value.missingWarn=P)},get fallbackRoot(){return a.value?a.value.fallbackRoot:A},set fallbackRoot(P){a.value&&(a.value.fallbackRoot=P)},get fallbackFormat(){return a.value?a.value.fallbackFormat:w},set fallbackFormat(P){a.value&&(a.value.fallbackFormat=P)},get warnHtmlMessage(){return a.value?a.value.warnHtmlMessage:f},set warnHtmlMessage(P){a.value&&(a.value.warnHtmlMessage=P)},get escapeParameter(){return a.value?a.value.escapeParameter:b},set escapeParameter(P){a.value&&(a.value.escapeParameter=P)},t:se,getPostTranslationHandler:H,setPostTranslationHandler:M,getMissingHandler:re,setMissingHandler:ge,rt:S,d:z,n:Q,tm:T,te:U,getLocaleMessage:K,setLocaleMessage:pe,mergeLocaleMessage:be,getDateTimeFormat:_e,setDateTimeFormat:j,mergeDateTimeFormat:ee,getNumberFormat:ne,setNumberFormat:ae,mergeNumberFormat:ve};function R(P){P.locale.value=i.value,P.fallbackLocale.value=l.value,Object.keys(u.value).forEach(B=>{P.mergeLocaleMessage(B,u.value[B])}),Object.keys(c.value).forEach(B=>{P.mergeDateTimeFormat(B,c.value[B])}),Object.keys(d.value).forEach(B=>{P.mergeNumberFormat(B,d.value[B])}),P.escapeParameter=b,P.fallbackFormat=w,P.fallbackRoot=A,P.fallbackWarn=_,P.missingWarn=p,P.warnHtmlMessage=f}return ti(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Je(Ye.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const P=a.value=e.proxy.$i18n.__composer;t==="global"?(i.value=P.locale.value,l.value=P.fallbackLocale.value,u.value=P.messages.value,c.value=P.datetimeFormats.value,d.value=P.numberFormats.value):s&&R(P)}),y}const p_=["locale","fallbackLocale","availableLocales"],kc=["t","rt","d","n","tm","te"];function g_(e,t){const o=Object.create(null);return p_.forEach(s=>{const a=Object.getOwnPropertyDescriptor(t,s);if(!a)throw Je(Ye.UNEXPECTED_ERROR);const r=ze(a.value)?{get(){return a.value.value},set(i){a.value.value=i}}:{get(){return a.get&&a.get()}};Object.defineProperty(o,s,r)}),e.config.globalProperties.$i18n=o,kc.forEach(s=>{const a=Object.getOwnPropertyDescriptor(t,s);if(!a||!a.value)throw Je(Ye.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,a)}),()=>{delete e.config.globalProperties.$i18n,kc.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}if(Hb(),__INTLIFY_JIT_COMPILATION__?Ul(Gb):Ul(Db),Eb(cb),Rb(Nl),__INTLIFY_PROD_DEVTOOLS__){const e=Yt();e.__INTLIFY__=!0,bb(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const h_=Object.assign({"./locales/ar/allPeopleGroups.json":fg,"./locales/ar/aria.json":mg,"./locales/ar/buttons.json":$g,"./locales/ar/connectivity.json":bg,"./locales/ar/controls.json":_g,"./locales/ar/dashboard.json":yg,"./locales/ar/detail.json":vg,"./locales/ar/gospel.json":xg,"./locales/ar/grid.json":wg,"./locales/ar/legend.json":kg,"./locales/ar/messages.json":Lg,"./locales/ar/options.json":Pg,"./locales/ar/popup.json":Ag,"./locales/ar/prayerLaps.json":Sg,"./locales/ar/regions.json":Eg,"./locales/ar/search.json":Rg,"./locales/ar/studio.json":Cg,"./locales/ar/tabs.json":Mg,"./locales/ar/vision.json":Tg,"./locales/de/allPeopleGroups.json":Og,"./locales/de/aria.json":Ng,"./locales/de/buttons.json":Fg,"./locales/de/connectivity.json":Ig,"./locales/de/controls.json":Dg,"./locales/de/dashboard.json":Gg,"./locales/de/detail.json":Ug,"./locales/de/gospel.json":Bg,"./locales/de/grid.json":zg,"./locales/de/legend.json":jg,"./locales/de/messages.json":Vg,"./locales/de/options.json":Hg,"./locales/de/popup.json":Wg,"./locales/de/prayerLaps.json":qg,"./locales/de/regions.json":Kg,"./locales/de/search.json":Xg,"./locales/de/studio.json":Yg,"./locales/de/tabs.json":Zg,"./locales/de/vision.json":Jg,"./locales/en/allPeopleGroups.json":Qg,"./locales/en/aria.json":eh,"./locales/en/buttons.json":th,"./locales/en/connectivity.json":oh,"./locales/en/controls.json":nh,"./locales/en/dashboard.json":ah,"./locales/en/detail.json":sh,"./locales/en/gospel.json":rh,"./locales/en/grid.json":ih,"./locales/en/legend.json":lh,"./locales/en/messages.json":ch,"./locales/en/options.json":uh,"./locales/en/popup.json":dh,"./locales/en/prayerLaps.json":ph,"./locales/en/regions.json":gh,"./locales/en/search.json":hh,"./locales/en/studio.json":fh,"./locales/en/tabs.json":mh,"./locales/en/vision.json":$h,"./locales/es/allPeopleGroups.json":bh,"./locales/es/aria.json":_h,"./locales/es/buttons.json":yh,"./locales/es/connectivity.json":vh,"./locales/es/controls.json":xh,"./locales/es/dashboard.json":wh,"./locales/es/detail.json":kh,"./locales/es/gospel.json":Lh,"./locales/es/grid.json":Ph,"./locales/es/legend.json":Ah,"./locales/es/messages.json":Sh,"./locales/es/options.json":Eh,"./locales/es/popup.json":Rh,"./locales/es/prayerLaps.json":Ch,"./locales/es/regions.json":Mh,"./locales/es/search.json":Th,"./locales/es/studio.json":Oh,"./locales/es/tabs.json":Nh,"./locales/es/vision.json":Fh,"./locales/fr/allPeopleGroups.json":Ih,"./locales/fr/aria.json":Dh,"./locales/fr/buttons.json":Gh,"./locales/fr/connectivity.json":Uh,"./locales/fr/controls.json":Bh,"./locales/fr/dashboard.json":zh,"./locales/fr/detail.json":jh,"./locales/fr/gospel.json":Vh,"./locales/fr/grid.json":Hh,"./locales/fr/legend.json":Wh,"./locales/fr/messages.json":qh,"./locales/fr/options.json":Kh,"./locales/fr/popup.json":Xh,"./locales/fr/prayerLaps.json":Yh,"./locales/fr/regions.json":Zh,"./locales/fr/search.json":Jh,"./locales/fr/studio.json":Qh,"./locales/fr/tabs.json":ef,"./locales/fr/vision.json":tf,"./locales/hi/allPeopleGroups.json":of,"./locales/hi/aria.json":nf,"./locales/hi/buttons.json":af,"./locales/hi/connectivity.json":sf,"./locales/hi/controls.json":rf,"./locales/hi/dashboard.json":lf,"./locales/hi/detail.json":cf,"./locales/hi/gospel.json":uf,"./locales/hi/grid.json":df,"./locales/hi/legend.json":pf,"./locales/hi/messages.json":gf,"./locales/hi/options.json":hf,"./locales/hi/popup.json":ff,"./locales/hi/prayerLaps.json":mf,"./locales/hi/regions.json":$f,"./locales/hi/search.json":bf,"./locales/hi/studio.json":_f,"./locales/hi/tabs.json":yf,"./locales/hi/vision.json":vf,"./locales/it/allPeopleGroups.json":xf,"./locales/it/aria.json":wf,"./locales/it/buttons.json":kf,"./locales/it/connectivity.json":Lf,"./locales/it/controls.json":Pf,"./locales/it/dashboard.json":Af,"./locales/it/detail.json":Sf,"./locales/it/gospel.json":Ef,"./locales/it/grid.json":Rf,"./locales/it/legend.json":Cf,"./locales/it/messages.json":Mf,"./locales/it/options.json":Tf,"./locales/it/popup.json":Of,"./locales/it/prayerLaps.json":Nf,"./locales/it/regions.json":Ff,"./locales/it/search.json":If,"./locales/it/studio.json":Df,"./locales/it/tabs.json":Gf,"./locales/it/vision.json":Uf,"./locales/pt/allPeopleGroups.json":Bf,"./locales/pt/aria.json":zf,"./locales/pt/buttons.json":jf,"./locales/pt/connectivity.json":Vf,"./locales/pt/controls.json":Hf,"./locales/pt/dashboard.json":Wf,"./locales/pt/detail.json":qf,"./locales/pt/gospel.json":Kf,"./locales/pt/grid.json":Xf,"./locales/pt/legend.json":Yf,"./locales/pt/messages.json":Zf,"./locales/pt/options.json":Jf,"./locales/pt/popup.json":Qf,"./locales/pt/prayerLaps.json":em,"./locales/pt/regions.json":tm,"./locales/pt/search.json":om,"./locales/pt/studio.json":nm,"./locales/pt/tabs.json":am,"./locales/pt/vision.json":sm,"./locales/ro/allPeopleGroups.json":rm,"./locales/ro/aria.json":im,"./locales/ro/buttons.json":lm,"./locales/ro/connectivity.json":cm,"./locales/ro/controls.json":um,"./locales/ro/dashboard.json":dm,"./locales/ro/detail.json":pm,"./locales/ro/gospel.json":gm,"./locales/ro/grid.json":hm,"./locales/ro/legend.json":fm,"./locales/ro/messages.json":mm,"./locales/ro/options.json":$m,"./locales/ro/popup.json":bm,"./locales/ro/prayerLaps.json":_m,"./locales/ro/regions.json":ym,"./locales/ro/search.json":vm,"./locales/ro/studio.json":xm,"./locales/ro/tabs.json":wm,"./locales/ro/vision.json":km,"./locales/ru/allPeopleGroups.json":Lm,"./locales/ru/aria.json":Pm,"./locales/ru/buttons.json":Am,"./locales/ru/connectivity.json":Sm,"./locales/ru/controls.json":Em,"./locales/ru/dashboard.json":Rm,"./locales/ru/detail.json":Cm,"./locales/ru/gospel.json":Mm,"./locales/ru/grid.json":Tm,"./locales/ru/legend.json":Om,"./locales/ru/messages.json":Nm,"./locales/ru/options.json":Fm,"./locales/ru/popup.json":Im,"./locales/ru/prayerLaps.json":Dm,"./locales/ru/regions.json":Gm,"./locales/ru/search.json":Um,"./locales/ru/studio.json":Bm,"./locales/ru/tabs.json":zm,"./locales/ru/vision.json":jm,"./locales/zh/allPeopleGroups.json":Vm,"./locales/zh/aria.json":Hm,"./locales/zh/buttons.json":Wm,"./locales/zh/connectivity.json":qm,"./locales/zh/controls.json":Km,"./locales/zh/dashboard.json":Xm,"./locales/zh/detail.json":Ym,"./locales/zh/gospel.json":Zm,"./locales/zh/grid.json":Jm,"./locales/zh/legend.json":Qm,"./locales/zh/messages.json":e$,"./locales/zh/options.json":t$,"./locales/zh/popup.json":o$,"./locales/zh/prayerLaps.json":n$,"./locales/zh/regions.json":a$,"./locales/zh/search.json":s$,"./locales/zh/studio.json":r$,"./locales/zh/tabs.json":i$,"./locales/zh/vision.json":l$}),Bo={};for(const[e,t]of Object.entries(h_)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,s]=o;Bo[n]??(Bo[n]={}),Bo[n][s]=t}Bo.en;const Xs=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Ea=new Set(["ar"]);function f_(){var n;const e=(()=>{try{const s=new URLSearchParams(window.location.search);return(s.get("lang")||s.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(Xs.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Xs.includes(o)?o:"en"}function m_(){const e=f_();try{Ea.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return n_({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Bo,missingWarn:!1,fallbackWarn:!1})}function Pt(e,t){const o=t||$_(e);xt(()=>{var i;const n=It();if(!n)return;const s=(i=n.proxy)==null?void 0:i.$el;if(!s)return;const a=s.getRootNode();if(!(a instanceof ShadowRoot)||a.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,a.appendChild(r)})}function $_(e){let t=0;for(let o=0;ot[x]||x,n=()=>!1;try{const x=Qt();o=x.t,n=x.te}catch{}const s=je("uiStore",null),a=je("profileConfig",null),r=le(()=>(s==null?void 0:s.theme)==="dark"),i=le(()=>{var F;const x=(F=a==null?void 0:a.value)==null?void 0:F.pinHintLabel;if(x)return x;const L="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):L}catch{return L}}),l=$e(!1),u=$e(null);let c=null,d=null,p=null,_=null,A=null,w=null,v=[],k=null,f=null;function b(){l.value=!1}function m(x,L){var N;let F=x==null?void 0:x.parentElement;for(let H=0;F&&H<12;H++,F=F.parentElement){if(F===L||(N=F.classList)!=null&&N.contains("profile-loader"))return null;let M="";try{M=getComputedStyle(F).position}catch{}if(M&&M!=="static"){const re=F.getBoundingClientRect();if(re.height>=120&&re.width>=160)return F}}return null}function C(x){var F;const L=(F=_==null?void 0:_.querySelector)==null?void 0:F.call(_,".legend-mobile-sheet");if(!L)return 1/0;if(A&&w!==L){try{A.disconnect()}catch{}A=null}if(!A&&typeof ResizeObserver<"u")try{A=new ResizeObserver(()=>$()),A.observe(L),w=L}catch{A=null}try{const N=L.getBoundingClientRect();return!(N.height>16)||!(N.width>16)||x.right<=N.left||N.right<=x.left?1/0:N.top}catch{return 1/0}}function $(){const x=u.value;if(x)try{x.style.removeProperty("--pin-hint-lift");const L=x.getBoundingClientRect();if(!L.height)return;const F=Math.min(window.innerHeight,C(L)),N=Math.round(L.bottom-F);N>0&&x.style.setProperty("--pin-hint-lift",N+8+"px")}catch{}}function O(x){const L=u.value;if(!L||!(x!=null&&x.querySelector))return;let F=0;try{const H=x.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(H){const M=H.getBoundingClientRect(),re=L.parentElement,ge=re?re.getBoundingClientRect():null;if(F=ge?Math.max(M.height||0,ge.bottom-M.top):M.height||0,f!==H&&typeof ResizeObserver<"u"){if(p)try{p.disconnect()}catch{}f=H,p=new ResizeObserver(()=>O(x)),p.observe(H)}}}catch{}const N=Math.min(Math.max(Math.ceil(F)||20,20),72);L.style.setProperty("--pin-hint-attrib-clear",N+"px"),$()}return xt(()=>{var N,H,M;const x=It(),L=(M=(H=(N=x==null?void 0:x.proxy)==null?void 0:N.$el)==null?void 0:H.getRootNode)==null?void 0:M.call(H);if(!L||typeof L.querySelector!="function")return;_=L;let F=0;c=setInterval(()=>{F++;const re=L.querySelector("canvas");re?(clearInterval(c),c=null,l.value=!0,no(()=>{const ge=m(re,L),de=u.value;if(ge&&de&&de.parentElement!==ge)try{ge.appendChild(de),d=ge}catch{}O(L),$(),v.push(setTimeout($,1200),setTimeout($,3e3),setTimeout($,6e3));try{const se=u.value&&u.value.offsetParent||null;if(se&&typeof ResizeObserver<"u"){if(k)try{k.disconnect()}catch{}k=new ResizeObserver(()=>$()),k.observe(se)}}catch{}})):F>40&&(clearInterval(c),c=null)},300)}),ft(()=>{var x;if(c&&clearInterval(c),p){try{p.disconnect()}catch{}p=null}if(f=null,k){try{k.disconnect()}catch{}k=null}if(A){try{A.disconnect()}catch{}A=null}w=null;for(const L of v)clearTimeout(L);if(v=[],_=null,d&&((x=u.value)==null?void 0:x.parentElement)===d)try{d.removeChild(u.value)}catch{}d=null}),Pt(` + */const j$="9.14.5";function H$(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Yt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Yt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Yt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Yt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Yt().__INTLIFY_PROD_DEVTOOLS__=!1)}const W$=w$.__EXTEND_POINT__,Jt=xa(W$);Jt(),Jt(),Jt(),Jt(),Jt(),Jt(),Jt(),Jt(),Jt();const rc=Lt.__EXTEND_POINT__,ct=xa(rc),Ye={UNEXPECTED_RETURN_TYPE:rc,INVALID_ARGUMENT:ct(),MUST_BE_CALL_SETUP_TOP:ct(),NOT_INSTALLED:ct(),NOT_AVAILABLE_IN_LEGACY_MODE:ct(),REQUIRED_VALUE:ct(),INVALID_VALUE:ct(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:ct(),NOT_INSTALLED_WITH_PROVIDE:ct(),UNEXPECTED_ERROR:ct(),NOT_COMPATIBLE_LEGACY_VUE_I18N:ct(),BRIDGE_SUPPORT_VUE_2_ONLY:ct(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:ct(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:ct(),__EXTEND_POINT__:ct()};function Je(e,...t){return Fo(e,null,void 0)}const zs=ro("__translateVNode"),Vs=ro("__datetimeParts"),js=ro("__numberParts"),ic=ro("__setPluralRules"),lc=ro("__injectWithOption"),Hs=ro("__dispose");function xn(e){if(!Me(e)||Gt(e))return e;for(const t in e)if(wt(e,t))if(!t.includes("."))Me(e[t])&&xn(e[t]);else{const o=t.split("."),n=o.length-1;let s=e,a=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:u}=i;l?(r[l]=r[l]||Ne(),ka(u,r[l])):ka(u,r)}else fe(i)&&ka(JSON.parse(i),r)}),s==null&&a)for(const i in r)wt(r,i)&&xn(r[i]);return r}function cc(e){return e.type}function uc(e,t,o){let n=Me(t.messages)?t.messages:Ne();"__i18nGlobal"in o&&(n=Sa(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const s=Object.keys(n);s.length&&s.forEach(a=>{e.mergeLocaleMessage(a,n[a])});{if(Me(t.datetimeFormats)){const a=Object.keys(t.datetimeFormats);a.length&&a.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(Me(t.numberFormats)){const a=Object.keys(t.numberFormats);a.length&&a.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function pc(e){return Ie(cn,null,e,0)}const dc="__INTLIFY_META__",gc=()=>[],q$=()=>!1;let hc=0;function fc(e){return(t,o,n,s)=>e(o,n,It()||void 0,s)}const K$=()=>{const e=It();let t=null;return e&&(t=cc(e)[dc])?{[dc]:t}:null};function Ws(e={},t){const{__root:o,__injectWithOption:n}=e,s=o===void 0,a=e.flatJson,r=ya?be:Kn,i=!!e.translateExistCompatible;let l=Ee(e.inheritLocale)?e.inheritLocale:!0;const u=r(o&&l?o.locale.value:fe(e.locale)?e.locale:Do),c=r(o&&l?o.fallbackLocale.value:fe(e.fallbackLocale)||Be(e.fallbackLocale)||Pe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:u.value),p=r(Sa(u.value,e)),d=r(Pe(e.datetimeFormats)?e.datetimeFormats:{[u.value]:{}}),_=r(Pe(e.numberFormats)?e.numberFormats:{[u.value]:{}});let A=o?o.missingWarn:Ee(e.missingWarn)||io(e.missingWarn)?e.missingWarn:!0,w=o?o.fallbackWarn:Ee(e.fallbackWarn)||io(e.fallbackWarn)?e.fallbackWarn:!0,v=o?o.fallbackRoot:Ee(e.fallbackRoot)?e.fallbackRoot:!0,k=!!e.fallbackFormat,f=Ue(e.missing)?e.missing:null,$=Ue(e.missing)?fc(e.missing):null,m=Ue(e.postTranslation)?e.postTranslation:null,C=o?o.warnHtmlMessage:Ee(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter;const O=o?o.modifiers:Pe(e.modifiers)?e.modifiers:{};let x=e.pluralRules||o&&o.pluralRules,L;L=(()=>{s&&Hl(null);const I={version:j$,locale:u.value,fallbackLocale:c.value,messages:p.value,modifiers:O,pluralRules:x,missing:$===null?void 0:$,missingWarn:A,fallbackWarn:w,fallbackFormat:k,unresolving:!0,postTranslation:m===null?void 0:m,warnHtmlMessage:C,escapeParameter:b,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};I.datetimeFormats=d.value,I.numberFormats=_.value,I.__datetimeFormatters=Pe(L)?L.__datetimeFormatters:void 0,I.__numberFormatters=Pe(L)?L.__numberFormatters:void 0;const q=O$(I);return s&&Hl(q),q})(),vn(L,u.value,c.value);function N(){return[u.value,c.value,p.value,d.value,_.value]}const H=le({get:()=>u.value,set:I=>{u.value=I,L.locale=u.value}}),M=le({get:()=>c.value,set:I=>{c.value=I,L.fallbackLocale=c.value,vn(L,u.value,I)}}),re=le(()=>p.value),ge=le(()=>d.value),pe=le(()=>_.value);function se(){return Ue(m)?m:null}function S(I){m=I,L.postTranslation=I}function z(){return f}function Q(I){I!==null&&($=fc(I)),f=I,L.missing=$}const T=(I,q,G,Y,X,Le)=>{N();let we;try{__INTLIFY_PROD_DEVTOOLS__,s||(L.fallbackContext=o?T$():void 0),we=I(L)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(L.fallbackContext=void 0)}if(G!=="translate exists"&&We(we)&&we===Aa||G==="translate exists"&&!we){const[Ut,Ho]=q();return o&&v?Y(o):X(Ut)}else{if(Le(we))return we;throw Je(Ye.UNEXPECTED_RETURN_TYPE)}};function U(...I){return T(q=>Reflect.apply(Zl,null,[q,...I]),()=>Ds(...I),"translate",q=>Reflect.apply(q.t,q,[...I]),q=>q,q=>fe(q))}function K(...I){const[q,G,Y]=I;if(Y&&!Me(Y))throw Je(Ye.INVALID_ARGUMENT);return U(q,G,ot({resolvedMessage:!0},Y||{}))}function de(...I){return T(q=>Reflect.apply(ec,null,[q,...I]),()=>Us(...I),"datetime format",q=>Reflect.apply(q.d,q,[...I]),()=>Il,q=>fe(q))}function $e(...I){return T(q=>Reflect.apply(nc,null,[q,...I]),()=>Bs(...I),"number format",q=>Reflect.apply(q.n,q,[...I]),()=>Il,q=>fe(q))}function _e(I){return I.map(q=>fe(q)||We(q)||Ee(q)?pc(String(q)):q)}const ee={normalize:_e,interpolate:I=>I,type:"vnode"};function ne(...I){return T(q=>{let G;const Y=q;try{Y.processor=ee,G=Reflect.apply(Zl,null,[Y,...I])}finally{Y.processor=null}return G},()=>Ds(...I),"translate",q=>q[zs](...I),q=>[pc(q)],q=>Be(q))}function ae(...I){return T(q=>Reflect.apply(nc,null,[q,...I]),()=>Bs(...I),"number format",q=>q[js](...I),gc,q=>fe(q)||Be(q))}function ve(...I){return T(q=>Reflect.apply(ec,null,[q,...I]),()=>Us(...I),"datetime format",q=>q[Vs](...I),gc,q=>fe(q)||Be(q))}function y(I){x=I,L.pluralRules=x}function R(I,q){return T(()=>{if(!I)return!1;const G=fe(q)?q:u.value,Y=J(G),X=L.messageResolver(Y,I);return i?X!=null:Gt(X)||mt(X)||fe(X)},()=>[I],"translate exists",G=>Reflect.apply(G.te,G,[I,q]),q$,G=>Ee(G))}function P(I){let q=null;const G=Nl(L,c.value,u.value);for(let Y=0;Y{l&&(u.value=I,L.locale=I,vn(L,u.value,c.value))}),qe(o.fallbackLocale,I=>{l&&(c.value=I,L.fallbackLocale=I,vn(L,u.value,c.value))}));const ie={id:hc,locale:H,fallbackLocale:M,get inheritLocale(){return l},set inheritLocale(I){l=I,I&&o&&(u.value=o.locale.value,c.value=o.fallbackLocale.value,vn(L,u.value,c.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:re,get modifiers(){return O},get pluralRules(){return x||{}},get isGlobal(){return s},get missingWarn(){return A},set missingWarn(I){A=I,L.missingWarn=A},get fallbackWarn(){return w},set fallbackWarn(I){w=I,L.fallbackWarn=w},get fallbackRoot(){return v},set fallbackRoot(I){v=I},get fallbackFormat(){return k},set fallbackFormat(I){k=I,L.fallbackFormat=k},get warnHtmlMessage(){return C},set warnHtmlMessage(I){C=I,L.warnHtmlMessage=I},get escapeParameter(){return b},set escapeParameter(I){b=I,L.escapeParameter=I},t:U,getLocaleMessage:J,setLocaleMessage:te,mergeLocaleMessage:ue,getPostTranslationHandler:se,setPostTranslationHandler:S,getMissingHandler:z,setMissingHandler:Q,[ic]:y};return ie.datetimeFormats=ge,ie.numberFormats=pe,ie.rt=K,ie.te=R,ie.tm=B,ie.d=de,ie.n=$e,ie.getDateTimeFormat=ce,ie.setDateTimeFormat=g,ie.mergeDateTimeFormat=h,ie.getNumberFormat=D,ie.setNumberFormat=W,ie.mergeNumberFormat=he,ie[lc]=n,ie[zs]=ne,ie[Vs]=ve,ie[js]=ae,ie}function X$(e){const t=fe(e.locale)?e.locale:Do,o=fe(e.fallbackLocale)||Be(e.fallbackLocale)||Pe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=Ue(e.missing)?e.missing:void 0,s=Ee(e.silentTranslationWarn)||io(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,a=Ee(e.silentFallbackWarn)||io(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Ee(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Pe(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,c=Ue(e.postTranslation)?e.postTranslation:void 0,p=fe(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,d=!!e.escapeParameterHtml,_=Ee(e.sync)?e.sync:!0;let A=e.messages;if(Pe(e.sharedMessages)){const b=e.sharedMessages;A=Object.keys(b).reduce((x,L)=>{const F=x[L]||(x[L]={});return ot(F,b[L]),x},A||{})}const{__i18n:w,__root:v,__injectWithOption:k}=e,f=e.datetimeFormats,$=e.numberFormats,m=e.flatJson,C=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:A,flatJson:m,datetimeFormats:f,numberFormats:$,missing:n,missingWarn:s,fallbackWarn:a,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:u,postTranslation:c,warnHtmlMessage:p,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:_,translateExistCompatible:C,__i18n:w,__root:v,__injectWithOption:k}}function qs(e={},t){{const o=Ws(X$(e)),{__extender:n}=e,s={id:o.id,get locale(){return o.locale.value},set locale(a){o.locale.value=a},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(a){o.fallbackLocale.value=a},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(a){},get missing(){return o.getMissingHandler()},set missing(a){o.setMissingHandler(a)},get silentTranslationWarn(){return Ee(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(a){o.missingWarn=Ee(a)?!a:a},get silentFallbackWarn(){return Ee(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(a){o.fallbackWarn=Ee(a)?!a:a},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(a){o.fallbackFormat=a},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(a){o.setPostTranslationHandler(a)},get sync(){return o.inheritLocale},set sync(a){o.inheritLocale=a},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(a){o.warnHtmlMessage=a!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(a){o.escapeParameter=a},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(a){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...a){const[r,i,l]=a,u={};let c=null,p=null;if(!fe(r))throw Je(Ye.INVALID_ARGUMENT);const d=r;return fe(i)?u.locale=i:Be(i)?c=i:Pe(i)&&(p=i),Be(l)?c=l:Pe(l)&&(p=l),Reflect.apply(o.t,o,[d,c||p||{},u])},rt(...a){return Reflect.apply(o.rt,o,[...a])},tc(...a){const[r,i,l]=a,u={plural:1};let c=null,p=null;if(!fe(r))throw Je(Ye.INVALID_ARGUMENT);const d=r;return fe(i)?u.locale=i:We(i)?u.plural=i:Be(i)?c=i:Pe(i)&&(p=i),fe(l)?u.locale=l:Be(l)?c=l:Pe(l)&&(p=l),Reflect.apply(o.t,o,[d,c||p||{},u])},te(a,r){return o.te(a,r)},tm(a){return o.tm(a)},getLocaleMessage(a){return o.getLocaleMessage(a)},setLocaleMessage(a,r){o.setLocaleMessage(a,r)},mergeLocaleMessage(a,r){o.mergeLocaleMessage(a,r)},d(...a){return Reflect.apply(o.d,o,[...a])},getDateTimeFormat(a){return o.getDateTimeFormat(a)},setDateTimeFormat(a,r){o.setDateTimeFormat(a,r)},mergeDateTimeFormat(a,r){o.mergeDateTimeFormat(a,r)},n(...a){return Reflect.apply(o.n,o,[...a])},getNumberFormat(a){return o.getNumberFormat(a)},setNumberFormat(a,r){o.setNumberFormat(a,r)},mergeNumberFormat(a,r){o.mergeNumberFormat(a,r)},getChoiceIndex(a,r){return-1}};return s.__extender=n,s}}const Ks={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Y$({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,s)=>[...n,...s.type===Se?s.children:[s]],[]):t.reduce((o,n)=>{const s=e[n];return s&&(o[n]=s()),o},Ne())}function mc(e){return Se}const bc=an({name:"i18n-t",props:ot({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>We(e)||!isNaN(e)}},Ks),setup(e,t){const{slots:o,attrs:n}=t,s=e.i18n||Qt({useScope:e.scope,__useComponent:!0});return()=>{const a=Object.keys(o).filter(p=>p!=="_"),r=Ne();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=fe(e.plural)?+e.plural:e.plural);const i=Y$(t,a),l=s[zs](e.keypath,i,r),u=ot(Ne(),n),c=fe(e.tag)||Me(e.tag)?e.tag:mc();return Gi(c,u,l)}}});function Z$(e){return Be(e)&&!fe(e[0])}function $c(e,t,o,n){const{slots:s,attrs:a}=t;return()=>{const r={part:!0};let i=Ne();e.locale&&(r.locale=e.locale),fe(e.format)?r.key=e.format:Me(e.format)&&(fe(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((d,_)=>o.includes(_)?ot(Ne(),d,{[_]:e.format[_]}):d,Ne()));const l=n(e.value,r,i);let u=[r.key];Be(l)?u=l.map((d,_)=>{const A=s[d.type],w=A?A({[d.type]:d.value,index:_,parts:l}):[d.value];return Z$(w)&&(w[0].key=`${d.type}-${_}`),w}):fe(l)&&(u=[l]);const c=ot(Ne(),a),p=fe(e.tag)||Me(e.tag)?e.tag:mc();return Gi(p,c,u)}}const _c=an({name:"i18n-n",props:ot({value:{type:Number,required:!0},format:{type:[String,Object]}},Ks),setup(e,t){const o=e.i18n||Qt({useScope:e.scope,__useComponent:!0});return $c(e,t,ac,(...n)=>o[js](...n))}}),yc=an({name:"i18n-d",props:ot({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Ks),setup(e,t){const o=e.i18n||Qt({useScope:e.scope,__useComponent:!0});return $c(e,t,tc,(...n)=>o[Vs](...n))}});function J$(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 Q$(e){const t=r=>{const{instance:i,modifiers:l,value:u}=r;if(!i||!i.$)throw Je(Ye.UNEXPECTED_ERROR);const c=J$(e,i.$),p=vc(u);return[Reflect.apply(c.t,c,[...xc(p)]),c]};return{created:(r,i)=>{const[l,u]=t(i);ya&&e.global===u&&(r.__i18nWatcher=qe(u.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=u,r.textContent=l},unmounted:r=>{ya&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const l=r.__composer,u=vc(i);r.textContent=Reflect.apply(l.t,l,[...xc(u)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function vc(e){if(fe(e))return{path:e};if(Pe(e)){if(!("path"in e))throw Je(Ye.REQUIRED_VALUE,"path");return e}else throw Je(Ye.INVALID_VALUE)}function xc(e){const{path:t,locale:o,args:n,choice:s,plural:a}=e,r={},i=n||{};return fe(o)&&(r.locale=o),We(s)&&(r.plural=s),We(a)&&(r.plural=a),[t,i,r]}function e_(e,t,...o){const n=Pe(o[0])?o[0]:{},s=!!n.useI18nComponentName;(Ee(n.globalInstall)?n.globalInstall:!0)&&([s?"i18n":bc.name,"I18nT"].forEach(r=>e.component(r,bc)),[_c.name,"I18nN"].forEach(r=>e.component(r,_c)),[yc.name,"I18nD"].forEach(r=>e.component(r,yc))),e.directive("t",Q$(t))}function t_(e,t,o){return{beforeCreate(){const n=It();if(!n)throw Je(Ye.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const a=s.i18n;if(s.__i18n&&(a.__i18n=s.__i18n),a.__root=t,this===this.$root)this.$i18n=wc(e,a);else{a.__injectWithOption=!0,a.__extender=o.__vueI18nExtend,this.$i18n=qs(a);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=wc(e,s);else{this.$i18n=qs({__i18n:s.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const a=this.$i18n;a.__extender&&(a.__disposer=a.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&uc(t,s,s),this.$t=(...a)=>this.$i18n.t(...a),this.$rt=(...a)=>this.$i18n.rt(...a),this.$tc=(...a)=>this.$i18n.tc(...a),this.$te=(a,r)=>this.$i18n.te(a,r),this.$d=(...a)=>this.$i18n.d(...a),this.$n=(...a)=>this.$i18n.n(...a),this.$tm=a=>this.$i18n.tm(a),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=It();if(!n)throw Je(Ye.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),o.__deleteInstance(n),delete this.$i18n}}}function wc(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[ic](t.pluralizationRules||e.pluralizationRules);const o=Sa(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 o_=ro("global-vue-i18n");function n_(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ee(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ee(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,a=new Map,[r,i]=a_(e,o),l=ro("");function u(d){return a.get(d)||null}function c(d,_){a.set(d,_)}function p(d){a.delete(d)}{const d={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return s},async install(_,...A){if(_.__VUE_I18N_SYMBOL__=l,_.provide(_.__VUE_I18N_SYMBOL__,d),Pe(A[0])){const k=A[0];d.__composerExtend=k.__composerExtend,d.__vueI18nExtend=k.__vueI18nExtend}let w=null;!o&&n&&(w=g_(_,d.global)),__VUE_I18N_FULL_INSTALL__&&e_(_,d,...A),__VUE_I18N_LEGACY_API__&&o&&_.mixin(t_(i,i.__composer,d));const v=_.unmount;_.unmount=()=>{w&&w(),d.dispose(),v()}},get global(){return i},dispose(){r.stop()},__instances:a,__getInstance:u,__setInstance:c,__deleteInstance:p};return d}}function Qt(e={}){const t=It();if(t==null)throw Je(Ye.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Je(Ye.NOT_INSTALLED);const o=s_(t),n=i_(o),s=cc(t),a=r_(e,s);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw Je(Ye.NOT_AVAILABLE_IN_LEGACY_MODE);return p_(t,a,n,e)}if(a==="global")return uc(n,e,s),n;if(a==="parent"){let l=l_(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=ot({},e);"__i18n"in s&&(l.__i18n=s.__i18n),n&&(l.__root=n),i=Ws(l),r.__composerExtend&&(i[Hs]=r.__composerExtend(i)),u_(r,t,i),r.__setInstance(t,i)}return i}function a_(e,t,o){const n=Ua();{const s=__VUE_I18N_LEGACY_API__&&t?n.run(()=>qs(e)):n.run(()=>Ws(e));if(s==null)throw Je(Ye.UNEXPECTED_ERROR);return[n,s]}}function s_(e){{const t=Ve(e.isCE?o_:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Je(e.isCE?Ye.NOT_INSTALLED_WITH_PROVIDE:Ye.UNEXPECTED_ERROR);return t}}function r_(e,t){return va(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function i_(e){return e.mode==="composition"?e.global:e.global.__composer}function l_(e,t,o=!1){let n=null;const s=t.root;let a=c_(t,o);for(;a!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(a);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(a);i!=null&&(n=i.__composer,o&&n&&!n[lc]&&(n=null))}if(n!=null||s===a)break;a=a.parent}return n}function c_(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function u_(e,t,o){xt(()=>{},t),ra(()=>{const n=o;e.__deleteInstance(t);const s=n[Hs];s&&(s(),delete n[Hs])},t)}function p_(e,t,o,n={}){const s=t==="local",a=Kn(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Je(Ye.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Ee(n.inheritLocale)?n.inheritLocale:!fe(n.locale),i=be(!s||r?o.locale.value:fe(n.locale)?n.locale:Do),l=be(!s||r?o.fallbackLocale.value:fe(n.fallbackLocale)||Be(n.fallbackLocale)||Pe(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),u=be(Sa(i.value,n)),c=be(Pe(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=be(Pe(n.numberFormats)?n.numberFormats:{[i.value]:{}}),d=s?o.missingWarn:Ee(n.missingWarn)||io(n.missingWarn)?n.missingWarn:!0,_=s?o.fallbackWarn:Ee(n.fallbackWarn)||io(n.fallbackWarn)?n.fallbackWarn:!0,A=s?o.fallbackRoot:Ee(n.fallbackRoot)?n.fallbackRoot:!0,w=!!n.fallbackFormat,v=Ue(n.missing)?n.missing:null,k=Ue(n.postTranslation)?n.postTranslation:null,f=s?o.warnHtmlMessage:Ee(n.warnHtmlMessage)?n.warnHtmlMessage:!0,$=!!n.escapeParameter,m=s?o.modifiers:Pe(n.modifiers)?n.modifiers:{},C=n.pluralRules||s&&o.pluralRules;function b(){return[i.value,l.value,u.value,c.value,p.value]}const O=le({get:()=>a.value?a.value.locale.value:i.value,set:P=>{a.value&&(a.value.locale.value=P),i.value=P}}),x=le({get:()=>a.value?a.value.fallbackLocale.value:l.value,set:P=>{a.value&&(a.value.fallbackLocale.value=P),l.value=P}}),L=le(()=>a.value?a.value.messages.value:u.value),F=le(()=>c.value),N=le(()=>p.value);function H(){return a.value?a.value.getPostTranslationHandler():k}function M(P){a.value&&a.value.setPostTranslationHandler(P)}function re(){return a.value?a.value.getMissingHandler():v}function ge(P){a.value&&a.value.setMissingHandler(P)}function pe(P){return b(),P()}function se(...P){return a.value?pe(()=>Reflect.apply(a.value.t,null,[...P])):pe(()=>"")}function S(...P){return a.value?Reflect.apply(a.value.rt,null,[...P]):""}function z(...P){return a.value?pe(()=>Reflect.apply(a.value.d,null,[...P])):pe(()=>"")}function Q(...P){return a.value?pe(()=>Reflect.apply(a.value.n,null,[...P])):pe(()=>"")}function T(P){return a.value?a.value.tm(P):{}}function U(P,B){return a.value?a.value.te(P,B):!1}function K(P){return a.value?a.value.getLocaleMessage(P):{}}function de(P,B){a.value&&(a.value.setLocaleMessage(P,B),u.value[P]=B)}function $e(P,B){a.value&&a.value.mergeLocaleMessage(P,B)}function _e(P){return a.value?a.value.getDateTimeFormat(P):{}}function V(P,B){a.value&&(a.value.setDateTimeFormat(P,B),c.value[P]=B)}function ee(P,B){a.value&&a.value.mergeDateTimeFormat(P,B)}function ne(P){return a.value?a.value.getNumberFormat(P):{}}function ae(P,B){a.value&&(a.value.setNumberFormat(P,B),p.value[P]=B)}function ve(P,B){a.value&&a.value.mergeNumberFormat(P,B)}const y={get id(){return a.value?a.value.id:-1},locale:O,fallbackLocale:x,messages:L,datetimeFormats:F,numberFormats:N,get inheritLocale(){return a.value?a.value.inheritLocale:r},set inheritLocale(P){a.value&&(a.value.inheritLocale=P)},get availableLocales(){return a.value?a.value.availableLocales:Object.keys(u.value)},get modifiers(){return a.value?a.value.modifiers:m},get pluralRules(){return a.value?a.value.pluralRules:C},get isGlobal(){return a.value?a.value.isGlobal:!1},get missingWarn(){return a.value?a.value.missingWarn:d},set missingWarn(P){a.value&&(a.value.missingWarn=P)},get fallbackWarn(){return a.value?a.value.fallbackWarn:_},set fallbackWarn(P){a.value&&(a.value.missingWarn=P)},get fallbackRoot(){return a.value?a.value.fallbackRoot:A},set fallbackRoot(P){a.value&&(a.value.fallbackRoot=P)},get fallbackFormat(){return a.value?a.value.fallbackFormat:w},set fallbackFormat(P){a.value&&(a.value.fallbackFormat=P)},get warnHtmlMessage(){return a.value?a.value.warnHtmlMessage:f},set warnHtmlMessage(P){a.value&&(a.value.warnHtmlMessage=P)},get escapeParameter(){return a.value?a.value.escapeParameter:$},set escapeParameter(P){a.value&&(a.value.escapeParameter=P)},t:se,getPostTranslationHandler:H,setPostTranslationHandler:M,getMissingHandler:re,setMissingHandler:ge,rt:S,d:z,n:Q,tm:T,te:U,getLocaleMessage:K,setLocaleMessage:de,mergeLocaleMessage:$e,getDateTimeFormat:_e,setDateTimeFormat:V,mergeDateTimeFormat:ee,getNumberFormat:ne,setNumberFormat:ae,mergeNumberFormat:ve};function R(P){P.locale.value=i.value,P.fallbackLocale.value=l.value,Object.keys(u.value).forEach(B=>{P.mergeLocaleMessage(B,u.value[B])}),Object.keys(c.value).forEach(B=>{P.mergeDateTimeFormat(B,c.value[B])}),Object.keys(p.value).forEach(B=>{P.mergeNumberFormat(B,p.value[B])}),P.escapeParameter=$,P.fallbackFormat=w,P.fallbackRoot=A,P.fallbackWarn=_,P.missingWarn=d,P.warnHtmlMessage=f}return ti(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Je(Ye.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const P=a.value=e.proxy.$i18n.__composer;t==="global"?(i.value=P.locale.value,l.value=P.fallbackLocale.value,u.value=P.messages.value,c.value=P.datetimeFormats.value,p.value=P.numberFormats.value):s&&R(P)}),y}const d_=["locale","fallbackLocale","availableLocales"],kc=["t","rt","d","n","tm","te"];function g_(e,t){const o=Object.create(null);return d_.forEach(s=>{const a=Object.getOwnPropertyDescriptor(t,s);if(!a)throw Je(Ye.UNEXPECTED_ERROR);const r=ze(a.value)?{get(){return a.value.value},set(i){a.value.value=i}}:{get(){return a.get&&a.get()}};Object.defineProperty(o,s,r)}),e.config.globalProperties.$i18n=o,kc.forEach(s=>{const a=Object.getOwnPropertyDescriptor(t,s);if(!a||!a.value)throw Je(Ye.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,a)}),()=>{delete e.config.globalProperties.$i18n,kc.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}if(H$(),__INTLIFY_JIT_COMPILATION__?Ul(D$):Ul(G$),E$(c$),R$(Nl),__INTLIFY_PROD_DEVTOOLS__){const e=Yt();e.__INTLIFY__=!0,$$(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const h_=Object.assign({"./locales/ar/allPeopleGroups.json":fg,"./locales/ar/aria.json":mg,"./locales/ar/buttons.json":bg,"./locales/ar/connectivity.json":$g,"./locales/ar/controls.json":_g,"./locales/ar/dashboard.json":yg,"./locales/ar/detail.json":vg,"./locales/ar/gospel.json":xg,"./locales/ar/grid.json":wg,"./locales/ar/legend.json":kg,"./locales/ar/messages.json":Lg,"./locales/ar/options.json":Pg,"./locales/ar/popup.json":Ag,"./locales/ar/prayerLaps.json":Sg,"./locales/ar/regions.json":Eg,"./locales/ar/search.json":Rg,"./locales/ar/studio.json":Cg,"./locales/ar/tabs.json":Mg,"./locales/ar/vision.json":Tg,"./locales/de/allPeopleGroups.json":Og,"./locales/de/aria.json":Ng,"./locales/de/buttons.json":Fg,"./locales/de/connectivity.json":Ig,"./locales/de/controls.json":Gg,"./locales/de/dashboard.json":Dg,"./locales/de/detail.json":Ug,"./locales/de/gospel.json":Bg,"./locales/de/grid.json":zg,"./locales/de/legend.json":Vg,"./locales/de/messages.json":jg,"./locales/de/options.json":Hg,"./locales/de/popup.json":Wg,"./locales/de/prayerLaps.json":qg,"./locales/de/regions.json":Kg,"./locales/de/search.json":Xg,"./locales/de/studio.json":Yg,"./locales/de/tabs.json":Zg,"./locales/de/vision.json":Jg,"./locales/en/allPeopleGroups.json":Qg,"./locales/en/aria.json":eh,"./locales/en/buttons.json":th,"./locales/en/connectivity.json":oh,"./locales/en/controls.json":nh,"./locales/en/dashboard.json":ah,"./locales/en/detail.json":sh,"./locales/en/gospel.json":rh,"./locales/en/grid.json":ih,"./locales/en/legend.json":lh,"./locales/en/messages.json":ch,"./locales/en/options.json":uh,"./locales/en/popup.json":ph,"./locales/en/prayerLaps.json":dh,"./locales/en/regions.json":gh,"./locales/en/search.json":hh,"./locales/en/studio.json":fh,"./locales/en/tabs.json":mh,"./locales/en/vision.json":bh,"./locales/es/allPeopleGroups.json":$h,"./locales/es/aria.json":_h,"./locales/es/buttons.json":yh,"./locales/es/connectivity.json":vh,"./locales/es/controls.json":xh,"./locales/es/dashboard.json":wh,"./locales/es/detail.json":kh,"./locales/es/gospel.json":Lh,"./locales/es/grid.json":Ph,"./locales/es/legend.json":Ah,"./locales/es/messages.json":Sh,"./locales/es/options.json":Eh,"./locales/es/popup.json":Rh,"./locales/es/prayerLaps.json":Ch,"./locales/es/regions.json":Mh,"./locales/es/search.json":Th,"./locales/es/studio.json":Oh,"./locales/es/tabs.json":Nh,"./locales/es/vision.json":Fh,"./locales/fr/allPeopleGroups.json":Ih,"./locales/fr/aria.json":Gh,"./locales/fr/buttons.json":Dh,"./locales/fr/connectivity.json":Uh,"./locales/fr/controls.json":Bh,"./locales/fr/dashboard.json":zh,"./locales/fr/detail.json":Vh,"./locales/fr/gospel.json":jh,"./locales/fr/grid.json":Hh,"./locales/fr/legend.json":Wh,"./locales/fr/messages.json":qh,"./locales/fr/options.json":Kh,"./locales/fr/popup.json":Xh,"./locales/fr/prayerLaps.json":Yh,"./locales/fr/regions.json":Zh,"./locales/fr/search.json":Jh,"./locales/fr/studio.json":Qh,"./locales/fr/tabs.json":ef,"./locales/fr/vision.json":tf,"./locales/hi/allPeopleGroups.json":of,"./locales/hi/aria.json":nf,"./locales/hi/buttons.json":af,"./locales/hi/connectivity.json":sf,"./locales/hi/controls.json":rf,"./locales/hi/dashboard.json":lf,"./locales/hi/detail.json":cf,"./locales/hi/gospel.json":uf,"./locales/hi/grid.json":pf,"./locales/hi/legend.json":df,"./locales/hi/messages.json":gf,"./locales/hi/options.json":hf,"./locales/hi/popup.json":ff,"./locales/hi/prayerLaps.json":mf,"./locales/hi/regions.json":bf,"./locales/hi/search.json":$f,"./locales/hi/studio.json":_f,"./locales/hi/tabs.json":yf,"./locales/hi/vision.json":vf,"./locales/it/allPeopleGroups.json":xf,"./locales/it/aria.json":wf,"./locales/it/buttons.json":kf,"./locales/it/connectivity.json":Lf,"./locales/it/controls.json":Pf,"./locales/it/dashboard.json":Af,"./locales/it/detail.json":Sf,"./locales/it/gospel.json":Ef,"./locales/it/grid.json":Rf,"./locales/it/legend.json":Cf,"./locales/it/messages.json":Mf,"./locales/it/options.json":Tf,"./locales/it/popup.json":Of,"./locales/it/prayerLaps.json":Nf,"./locales/it/regions.json":Ff,"./locales/it/search.json":If,"./locales/it/studio.json":Gf,"./locales/it/tabs.json":Df,"./locales/it/vision.json":Uf,"./locales/pt/allPeopleGroups.json":Bf,"./locales/pt/aria.json":zf,"./locales/pt/buttons.json":Vf,"./locales/pt/connectivity.json":jf,"./locales/pt/controls.json":Hf,"./locales/pt/dashboard.json":Wf,"./locales/pt/detail.json":qf,"./locales/pt/gospel.json":Kf,"./locales/pt/grid.json":Xf,"./locales/pt/legend.json":Yf,"./locales/pt/messages.json":Zf,"./locales/pt/options.json":Jf,"./locales/pt/popup.json":Qf,"./locales/pt/prayerLaps.json":em,"./locales/pt/regions.json":tm,"./locales/pt/search.json":om,"./locales/pt/studio.json":nm,"./locales/pt/tabs.json":am,"./locales/pt/vision.json":sm,"./locales/ro/allPeopleGroups.json":rm,"./locales/ro/aria.json":im,"./locales/ro/buttons.json":lm,"./locales/ro/connectivity.json":cm,"./locales/ro/controls.json":um,"./locales/ro/dashboard.json":pm,"./locales/ro/detail.json":dm,"./locales/ro/gospel.json":gm,"./locales/ro/grid.json":hm,"./locales/ro/legend.json":fm,"./locales/ro/messages.json":mm,"./locales/ro/options.json":bm,"./locales/ro/popup.json":$m,"./locales/ro/prayerLaps.json":_m,"./locales/ro/regions.json":ym,"./locales/ro/search.json":vm,"./locales/ro/studio.json":xm,"./locales/ro/tabs.json":wm,"./locales/ro/vision.json":km,"./locales/ru/allPeopleGroups.json":Lm,"./locales/ru/aria.json":Pm,"./locales/ru/buttons.json":Am,"./locales/ru/connectivity.json":Sm,"./locales/ru/controls.json":Em,"./locales/ru/dashboard.json":Rm,"./locales/ru/detail.json":Cm,"./locales/ru/gospel.json":Mm,"./locales/ru/grid.json":Tm,"./locales/ru/legend.json":Om,"./locales/ru/messages.json":Nm,"./locales/ru/options.json":Fm,"./locales/ru/popup.json":Im,"./locales/ru/prayerLaps.json":Gm,"./locales/ru/regions.json":Dm,"./locales/ru/search.json":Um,"./locales/ru/studio.json":Bm,"./locales/ru/tabs.json":zm,"./locales/ru/vision.json":Vm,"./locales/zh/allPeopleGroups.json":jm,"./locales/zh/aria.json":Hm,"./locales/zh/buttons.json":Wm,"./locales/zh/connectivity.json":qm,"./locales/zh/controls.json":Km,"./locales/zh/dashboard.json":Xm,"./locales/zh/detail.json":Ym,"./locales/zh/gospel.json":Zm,"./locales/zh/grid.json":Jm,"./locales/zh/legend.json":Qm,"./locales/zh/messages.json":eb,"./locales/zh/options.json":tb,"./locales/zh/popup.json":ob,"./locales/zh/prayerLaps.json":nb,"./locales/zh/regions.json":ab,"./locales/zh/search.json":sb,"./locales/zh/studio.json":rb,"./locales/zh/tabs.json":ib,"./locales/zh/vision.json":lb}),Bo={};for(const[e,t]of Object.entries(h_)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,s]=o;Bo[n]??(Bo[n]={}),Bo[n][s]=t}Bo.en;const Xs=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Ea=new Set(["ar"]);function f_(){var n;const e=(()=>{try{const s=new URLSearchParams(window.location.search);return(s.get("lang")||s.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(Xs.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Xs.includes(o)?o:"en"}function m_(){const e=f_();try{Ea.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return n_({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Bo,missingWarn:!1,fallbackWarn:!1})}function Pt(e,t){const o=t||b_(e);xt(()=>{var i;const n=It();if(!n)return;const s=(i=n.proxy)==null?void 0:i.$el;if(!s)return;const a=s.getRootNode();if(!(a instanceof ShadowRoot)||a.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,a.appendChild(r)})}function b_(e){let t=0;for(let o=0;ot[x]||x,n=()=>!1;try{const x=Qt();o=x.t,n=x.te}catch{}const s=Ve("uiStore",null),a=Ve("profileConfig",null),r=le(()=>(s==null?void 0:s.theme)==="dark"),i=le(()=>{var F;const x=(F=a==null?void 0:a.value)==null?void 0:F.pinHintLabel;if(x)return x;const L="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):L}catch{return L}}),l=be(!1),u=be(null);let c=null,p=null,d=null,_=null,A=null,w=null,v=[],k=null,f=null;function $(){l.value=!1}function m(x,L){var N;let F=x==null?void 0:x.parentElement;for(let H=0;F&&H<12;H++,F=F.parentElement){if(F===L||(N=F.classList)!=null&&N.contains("profile-loader"))return null;let M="";try{M=getComputedStyle(F).position}catch{}if(M&&M!=="static"){const re=F.getBoundingClientRect();if(re.height>=120&&re.width>=160)return F}}return null}function C(x){var F;const L=(F=_==null?void 0:_.querySelector)==null?void 0:F.call(_,".legend-mobile-sheet");if(!L)return 1/0;if(A&&w!==L){try{A.disconnect()}catch{}A=null}if(!A&&typeof ResizeObserver<"u")try{A=new ResizeObserver(()=>b()),A.observe(L),w=L}catch{A=null}try{const N=L.getBoundingClientRect();return!(N.height>16)||!(N.width>16)||x.right<=N.left||N.right<=x.left?1/0:N.top}catch{return 1/0}}function b(){const x=u.value;if(x)try{x.style.removeProperty("--pin-hint-lift");const L=x.getBoundingClientRect();if(!L.height)return;const F=Math.min(window.innerHeight,C(L)),N=Math.round(L.bottom-F);N>0&&x.style.setProperty("--pin-hint-lift",N+8+"px")}catch{}}function O(x){const L=u.value;if(!L||!(x!=null&&x.querySelector))return;let F=0;try{const H=x.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(H){const M=H.getBoundingClientRect(),re=L.parentElement,ge=re?re.getBoundingClientRect():null;if(F=ge?Math.max(M.height||0,ge.bottom-M.top):M.height||0,f!==H&&typeof ResizeObserver<"u"){if(d)try{d.disconnect()}catch{}f=H,d=new ResizeObserver(()=>O(x)),d.observe(H)}}}catch{}const N=Math.min(Math.max(Math.ceil(F)||20,20),72);L.style.setProperty("--pin-hint-attrib-clear",N+"px"),b()}return xt(()=>{var N,H,M;const x=It(),L=(M=(H=(N=x==null?void 0:x.proxy)==null?void 0:N.$el)==null?void 0:H.getRootNode)==null?void 0:M.call(H);if(!L||typeof L.querySelector!="function")return;_=L;let F=0;c=setInterval(()=>{F++;const re=L.querySelector("canvas");re?(clearInterval(c),c=null,l.value=!0,no(()=>{const ge=m(re,L),pe=u.value;if(ge&&pe&&pe.parentElement!==ge)try{ge.appendChild(pe),p=ge}catch{}O(L),b(),v.push(setTimeout(b,1200),setTimeout(b,3e3),setTimeout(b,6e3));try{const se=u.value&&u.value.offsetParent||null;if(se&&typeof ResizeObserver<"u"){if(k)try{k.disconnect()}catch{}k=new ResizeObserver(()=>b()),k.observe(se)}}catch{}})):F>40&&(clearInterval(c),c=null)},300)}),ft(()=>{var x;if(c&&clearInterval(c),d){try{d.disconnect()}catch{}d=null}if(f=null,k){try{k.disconnect()}catch{}k=null}if(A){try{A.disconnect()}catch{}A=null}w=null;for(const L of v)clearTimeout(L);if(v=[],_=null,p&&((x=u.value)==null?void 0:x.parentElement)===p)try{p.removeChild(u.value)}catch{}p=null}),Pt(` .pin-hint { position: absolute; left: 50%; bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%); z-index: 2147482000; pointer-events: none; @@ -71,27 +71,27 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(x,L)=>l.value?(Z(),oe("div",{key:0,ref_key:"hintEl",ref:u,class:He(["pin-hint",{dark:r.value}]),role:"status"},[E("span",b_,[L[0]||(L[0]=E("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Re(" "+V(i.value)+" ",1),E("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:b},"×")])],2)):Ae("",!0)}};let y_=0;const v_=As("ui",{state:()=>({_storeInstanceId:++y_,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:s=null,persistent:a=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:n,action:s,persistent:a,createdAt:Date.now()};return this.toasts.push(r),!a&&n>0&&setTimeout(()=>{this.removeToast(r.id)},n),r.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)}))}}}),x_=As("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 s=[0,0];if(o.center)s=o.center;else if(t&&typeof t.getCenter=="function"){const a=t.getCenter();a&&(s=[a.lng,a.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,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 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()}}}),w_=As("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]=Qo({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]=Qo({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}}}),k_={activeSource:"pray-tools"},L_=".profile-loader[data-v-ba19fc13]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-ba19fc13]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Lc=(e,t)=>{const o=e.__vccOpts||e;for(const[n,s]of t)o[n]=s;return o},P_={class:"profile-loader"},A_={key:0,class:"profile-error"},S_={key:1,class:"profile-error"},E_=Lc({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var C;const o=e,n=je("profileConfig",null),s=le(()=>{var O;if(!o.profileConfig)return null;let $;try{$=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if($&&$.assetsBase===void 0){const x=(O=n==null?void 0:n.value)==null?void 0:O.assetsBase;typeof x=="string"&&x&&($.assetsBase=x)}return $}),a=le(()=>{var $;return(($=s.value)==null?void 0:$.profile)||null}),r=gg(),i=le(()=>{var O;const $=(O=s.value)==null?void 0:O.tk;return typeof $=="string"&&$?$:r.value||""});qe(()=>{var $;return($=s.value)==null?void 0:$.tk},$=>{typeof $=="string"&&$&&cl($)},{immediate:!0});const l=le(()=>{var $;return(($=s.value)==null?void 0:$.dataSource)||k_.activeSource}),u=le(()=>{var $;return(($=s.value)==null?void 0:$.colorSet)||"default"}),c=le(()=>!1),d=le(()=>{var $;return(($=s.value)==null?void 0:$.pinHint)!==!1}),p=le(()=>{var O,x;const $=(((O=s.value)==null?void 0:O.locale)||((x=s.value)==null?void 0:x.lang)||"").split("-")[0].toLowerCase();return Xs.includes($)?$:""}),_=je("appI18n",null);_d(()=>{p.value&&_&&(_.global.locale.value=p.value)});const A=le(()=>{var $,O;return p.value||((O=($=_==null?void 0:_.global)==null?void 0:$.locale)==null?void 0:O.value)||"en"}),w=le(()=>{var $;return(($=s.value)==null?void 0:$.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),v=je("profileModules",null);if(!v)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const k=le(()=>{if(!a.value)return null;const $=`./${a.value}.vue`;return v[$]?hg(v[$]):(console.error(`[ProfileLoader] Profile not found: "${a.value}". Available:`,Object.keys(v)),null)});vt("mapboxToken",i),vt("dataSource",l),vt("colorSet",u),vt("profileConfig",s),vt("instanceId",w),vt("lang",A);const f=v_(),b=x_(),m=w_();try{const $=typeof localStorage<"u"?localStorage.getItem("theme"):null;$&&((C=f.setTheme)==null||C.call(f,$))}catch{}return vt("uiStore",f),vt("mapStore",b),vt("dataStore",m),($,O)=>(Z(),oe("div",P_,[s.value?k.value?(Z(),Ot(is(k.value),{key:2})):(Z(),oe("div",S_,[E("p",null,[O[1]||(O[1]=Re("⚠️ Profile ",-1)),E("strong",null,'"'+V(a.value)+'"',1),O[2]||(O[2]=Re(" not found.",-1))])])):(Z(),oe("div",A_,[...O[0]||(O[0]=[E("p",null,[Re("⚠️ "),E("strong",null,"doxa-map"),Re(": missing or invalid "),E("code",null,"profile-config"),Re(" prop.")],-1),E("p",null,[Re("Example: "),E("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),k.value&&c.value?(Z(),Ot(is(me(null)),{key:3})):Ae("",!0),k.value&&d.value?(Z(),Ot(__,{key:4})):Ae("",!0)]))}},[["styles",[L_]],["__scopeId","data-v-ba19fc13"]]),R_=Object.assign({"./region-dashboards.vue":()=>$t(()=>Promise.resolve().then(()=>uv),void 0),"./regions-list.vue":()=>$t(()=>Promise.resolve().then(()=>w0),void 0),"./regions-mfe.vue":()=>$t(()=>Promise.resolve().then(()=>ox),void 0)});function C_(){return qp(E_,{configureApp(e){e.use(rg());const t=m_();e.use(t),e.provide("appI18n",t),e.provide("profileModules",R_)}})}const M_=C_();typeof customElements<"u"&&(customElements.get("regions-dashboard")||customElements.define("regions-dashboard",M_));const T_=Na&&Na.tagName.toUpperCase()==="SCRIPT"&&Na.src||new URL("regions-dashboard.js",document.baseURI).href,po=e=>String(e||"").trim().replace(/\/+$/,"");function Ys(){try{const t=String(T_||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function O_(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return po(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return po(o)}return po(Ys()||"")}function Ra(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=po(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=po((e==null?void 0:e.treeBase)||"")||po(Ys()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return po(new URL(o+"/assets",n).href)}catch{return po(o+"/assets")}return"./assets"}function N_({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,s=typeof window<"u",a=e||(n==null?void 0:n.shareUrl);if(typeof a=="string"&&a.trim())return a.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return s?window.location.origin+r:r;const i=O_(n),l=r.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}function go(e,t,o,n={}){if(typeof document>"u"||!e||!(t!=null&&t.length))return;const s="doxa-font-"+String(e).toLowerCase().replace(/[^a-z0-9]+/g,"-");if(document.getElementById(s))return;const a=String(o||"./assets").replace(/\/+$/,""),r=n.weight||"400",i=n.style||"normal",l=n.display||"swap",u=t.map(d=>{const p=d.weight||r,_=d.unicodeRange?` unicode-range: ${d.unicodeRange}; +`,"pin-hint"),(x,L)=>l.value?(Z(),oe("div",{key:0,ref_key:"hintEl",ref:u,class:He(["pin-hint",{dark:r.value}]),role:"status"},[E("span",$_,[L[0]||(L[0]=E("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Re(" "+j(i.value)+" ",1),E("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:$},"×")])],2)):Ae("",!0)}};let y_=0;const v_=As("ui",{state:()=>({_storeInstanceId:++y_,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:s=null,persistent:a=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:n,action:s,persistent:a,createdAt:Date.now()};return this.toasts.push(r),!a&&n>0&&setTimeout(()=>{this.removeToast(r.id)},n),r.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)}))}}}),x_=As("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 s=[0,0];if(o.center)s=o.center;else if(t&&typeof t.getCenter=="function"){const a=t.getCenter();a&&(s=[a.lng,a.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,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 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()}}}),w_=As("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]=Qo({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]=Qo({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}}}),k_={activeSource:"pray-tools"},L_=".profile-loader[data-v-ba19fc13]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-ba19fc13]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Lc=(e,t)=>{const o=e.__vccOpts||e;for(const[n,s]of t)o[n]=s;return o},P_={class:"profile-loader"},A_={key:0,class:"profile-error"},S_={key:1,class:"profile-error"},E_=Lc({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var C;const o=e,n=Ve("profileConfig",null),s=le(()=>{var O;if(!o.profileConfig)return null;let b;try{b=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(b&&b.assetsBase===void 0){const x=(O=n==null?void 0:n.value)==null?void 0:O.assetsBase;typeof x=="string"&&x&&(b.assetsBase=x)}return b}),a=le(()=>{var b;return((b=s.value)==null?void 0:b.profile)||null}),r=gg(),i=le(()=>{var O;const b=(O=s.value)==null?void 0:O.tk;return typeof b=="string"&&b?b:r.value||""});qe(()=>{var b;return(b=s.value)==null?void 0:b.tk},b=>{typeof b=="string"&&b&&cl(b)},{immediate:!0});const l=le(()=>{var b;return((b=s.value)==null?void 0:b.dataSource)||k_.activeSource}),u=le(()=>{var b;return((b=s.value)==null?void 0:b.colorSet)||"default"}),c=le(()=>!1),p=le(()=>{var b;return((b=s.value)==null?void 0:b.pinHint)!==!1}),d=le(()=>{var O,x;const b=(((O=s.value)==null?void 0:O.locale)||((x=s.value)==null?void 0:x.lang)||"").split("-")[0].toLowerCase();return Xs.includes(b)?b:""}),_=Ve("appI18n",null);_p(()=>{d.value&&_&&(_.global.locale.value=d.value)});const A=le(()=>{var b,O;return d.value||((O=(b=_==null?void 0:_.global)==null?void 0:b.locale)==null?void 0:O.value)||"en"}),w=le(()=>{var b;return((b=s.value)==null?void 0:b.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),v=Ve("profileModules",null);if(!v)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const k=le(()=>{if(!a.value)return null;const b=`./${a.value}.vue`;return v[b]?hg(v[b]):(console.error(`[ProfileLoader] Profile not found: "${a.value}". Available:`,Object.keys(v)),null)});vt("mapboxToken",i),vt("dataSource",l),vt("colorSet",u),vt("profileConfig",s),vt("instanceId",w),vt("lang",A);const f=v_(),$=x_(),m=w_();try{const b=typeof localStorage<"u"?localStorage.getItem("theme"):null;b&&((C=f.setTheme)==null||C.call(f,b))}catch{}return vt("uiStore",f),vt("mapStore",$),vt("dataStore",m),(b,O)=>(Z(),oe("div",P_,[s.value?k.value?(Z(),Ot(is(k.value),{key:2})):(Z(),oe("div",S_,[E("p",null,[O[1]||(O[1]=Re("⚠️ Profile ",-1)),E("strong",null,'"'+j(a.value)+'"',1),O[2]||(O[2]=Re(" not found.",-1))])])):(Z(),oe("div",A_,[...O[0]||(O[0]=[E("p",null,[Re("⚠️ "),E("strong",null,"doxa-map"),Re(": missing or invalid "),E("code",null,"profile-config"),Re(" prop.")],-1),E("p",null,[Re("Example: "),E("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),k.value&&c.value?(Z(),Ot(is(me(null)),{key:3})):Ae("",!0),k.value&&p.value?(Z(),Ot(__,{key:4})):Ae("",!0)]))}},[["styles",[L_]],["__scopeId","data-v-ba19fc13"]]),R_=Object.assign({"./region-dashboards.vue":()=>bt(()=>Promise.resolve().then(()=>uv),void 0),"./regions-list.vue":()=>bt(()=>Promise.resolve().then(()=>w0),void 0),"./regions-mfe.vue":()=>bt(()=>Promise.resolve().then(()=>ox),void 0)});function C_(){return qd(E_,{configureApp(e){e.use(rg());const t=m_();e.use(t),e.provide("appI18n",t),e.provide("profileModules",R_)}})}const M_=C_();typeof customElements<"u"&&(customElements.get("regions-dashboard")||customElements.define("regions-dashboard",M_));const T_=Na&&Na.tagName.toUpperCase()==="SCRIPT"&&Na.src||new URL("regions-dashboard.js",document.baseURI).href,po=e=>String(e||"").trim().replace(/\/+$/,"");function Ys(){try{const t=String(T_||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function O_(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return po(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return po(o)}return po(Ys()||"")}function Ra(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=po(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=po((e==null?void 0:e.treeBase)||"")||po(Ys()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return po(new URL(o+"/assets",n).href)}catch{return po(o+"/assets")}return"./assets"}function N_({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,s=typeof window<"u",a=e||(n==null?void 0:n.shareUrl);if(typeof a=="string"&&a.trim())return a.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return s?window.location.origin+r:r;const i=O_(n),l=r.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}function go(e,t,o,n={}){if(typeof document>"u"||!e||!(t!=null&&t.length))return;const s="doxa-font-"+String(e).toLowerCase().replace(/[^a-z0-9]+/g,"-");if(document.getElementById(s))return;const a=String(o||"./assets").replace(/\/+$/,""),r=n.weight||"400",i=n.style||"normal",l=n.display||"swap",u=t.map(p=>{const d=p.weight||r,_=p.unicodeRange?` unicode-range: ${p.unicodeRange}; `:"";return`@font-face { font-family: '${e}'; font-style: ${i}; - font-weight: ${p}; + font-weight: ${d}; font-display: ${l}; - src: url('${a}/${String(d.src).replace(/^\/+/,"")}') format('woff2'); + src: url('${a}/${String(p.src).replace(/^\/+/,"")}') format('woff2'); ${_}}`}).join(` -`),c=document.createElement("style");c.id=s,c.setAttribute("data-doxa-font",e),c.textContent=u,document.head.appendChild(c)}const Pc=[{src:"fonts/bebas-neue/bebas-neue-latin.woff2",unicodeRange:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD"},{src:"fonts/bebas-neue/bebas-neue-latin-ext.woff2",unicodeRange:"U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF"}],wn="U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD",kn="U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",Ac=[{weight:"500",src:"fonts/figtree/figtree-500-latin.woff2",unicodeRange:wn},{weight:"500",src:"fonts/figtree/figtree-500-latin-ext.woff2",unicodeRange:kn}],Sc=[{weight:"400",src:"fonts/poppins/poppins-400-latin.woff2",unicodeRange:wn},{weight:"400",src:"fonts/poppins/poppins-400-latin-ext.woff2",unicodeRange:kn},{weight:"500",src:"fonts/poppins/poppins-500-latin.woff2",unicodeRange:wn},{weight:"500",src:"fonts/poppins/poppins-500-latin-ext.woff2",unicodeRange:kn},{weight:"600",src:"fonts/poppins/poppins-600-latin.woff2",unicodeRange:wn},{weight:"600",src:"fonts/poppins/poppins-600-latin-ext.woff2",unicodeRange:kn},{weight:"700",src:"fonts/poppins/poppins-700-latin.woff2",unicodeRange:wn},{weight:"700",src:"fonts/poppins/poppins-700-latin-ext.woff2",unicodeRange:kn}],Ec=[{src:"fonts/oswald/oswald-400-cyrillic.woff2",unicodeRange:"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116"},{src:"fonts/oswald/oswald-400-cyrillic-ext.woff2",unicodeRange:"U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F"},{src:"fonts/oswald/oswald-400-latin.woff2",unicodeRange:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD"},{src:"fonts/oswald/oswald-400-latin-ext.woff2",unicodeRange:"U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF"}],F_=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 128px);min-width:var(--dx-filter-w, 128px);max-width:var(--dx-filter-w, 128px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 108px);min-width:var(--dx-filter-w-sm, 108px);max-width:var(--dx-filter-w-sm, 108px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) var(--dx-filter-pad-x, 8px);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;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:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 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:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",I_=["data-active","aria-expanded"],D_={class:"filter-dropdown__label"},G_=["value","placeholder"],U_={class:"filter-dropdown__options"},B_={key:0,class:"filter-dropdown__no-options"},z_=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],j_={class:"filter-dropdown__count"},Zs=Lc({__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 o=e,n={"buttons.clearSelection":"Clear selection","buttons.noOptions":"No options found"};let s=N=>n[N]||N;try{s=Qt().t}catch{}const a=t,r=$e(!1),i=$e(""),l=$e(-1),u=$e(null),c=$e(null),d=$e(null),p=$e({});function _(N){const H=N.ownerDocument,M=H.createElement("div");M.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(N.parentElement||N.getRootNode().body||H.body).appendChild(M);const ge=M.getBoundingClientRect();return M.remove(),{x:ge.left,y:ge.top}}function A(){const N=d.value;if(!N)return;const H=N.getBoundingClientRect(),M=window.innerWidth,re=window.innerHeight,ge=320,de=4,se=8,z=Math.round(Math.min(Math.max(H.width,240),M-se*2)),Q=H.right>se&&H.leftM-se?T=Math.round(Math.max(H.right-z,se)):T=Math.round(Math.max(H.left,se)):T=Math.round(Math.min(Math.max(H.left,se),M-z-se));const U=re-H.bottom,K=U<180&&H.top>U,pe=_(N),be=Math.round(T-pe.x);p.value=K?{top:"auto",bottom:`${Math.round(re-H.top+de+pe.y)}px`,left:`${be}px`,width:`${z}px`,maxHeight:`${Math.round(Math.min(ge,H.top-de-se))}px`}:{top:`${Math.round(H.bottom+de-pe.y)}px`,bottom:"auto",left:`${be}px`,width:`${z}px`,maxHeight:`${Math.round(Math.min(ge,U-de-se))}px`}}function w(){r.value&&A()}const v=le(()=>{if(!i.value)return o.options;const N=i.value.toLowerCase();return o.options.filter(H=>H.label.toLowerCase().includes(N))}),k=le(()=>o.options.find(N=>N.value===o.value));function f(N){var M;const H=((M=N.composedPath)==null?void 0:M.call(N))??[];u.value&&!H.includes(u.value)&&C()}function b(){r.value?C():m()}function m(){r.value=!0,i.value="",l.value=-1,A(),document.addEventListener("click",f),window.addEventListener("scroll",w,!0),window.addEventListener("resize",w),no(()=>{var N;A(),(N=c.value)==null||N.focus()})}function C(){r.value=!1,i.value="",l.value=-1,document.removeEventListener("click",f),window.removeEventListener("scroll",w,!0),window.removeEventListener("resize",w)}function $(N){i.value=N.target.value,l.value=-1}function O(N){const H=v.value;switch(N.key){case"ArrowDown":N.preventDefault(),l.value=Math.min(l.value+1,H.length-1),x();break;case"ArrowUp":N.preventDefault(),l.value=Math.max(l.value-1,0),x();break;case"Enter":{N.preventDefault();const M=H[l.value];M&&L(M);break}case"Escape":N.preventDefault(),C();break}}function x(){no(()=>{var H;const N=(H=u.value)==null?void 0:H.querySelector(".filter-dropdown__option[data-highlighted]");N==null||N.scrollIntoView({block:"nearest"})})}function L(N){a("filter-change",{name:o.name,value:N.value,label:N.label,type:N.type}),C()}function F(){a("filter-clear",{name:o.name}),C()}return ft(()=>{document.removeEventListener("click",f),window.removeEventListener("scroll",w,!0),window.removeEventListener("resize",w)}),(N,H)=>(Z(),oe("div",{ref_key:"rootRef",ref:u,class:He(["filter-dropdown",{"is-open":r.value}])},[E("button",{ref_key:"triggerRef",ref:d,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:b},[E("span",D_,[k.value?(Z(),oe(Se,{key:0},[Re(V(e.label)+": ",1),E("strong",null,V(k.value.label),1)],64)):(Z(),oe(Se,{key:1},[Re(V(e.label),1)],64))]),H[0]||(H[0]=E("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[E("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,I_),r.value?(Z(),oe("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:Ke(p.value)},[E("input",{ref_key:"searchInputRef",ref:c,class:"filter-dropdown__search",type:"text",value:i.value,placeholder:e.placeholder,onInput:$,onKeydown:O},null,40,G_),e.value?(Z(),oe("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:F},V(me(s)("buttons.clearSelection")),1)):Ae("",!0),E("div",U_,[v.value.length===0?(Z(),oe("div",B_,V(me(s)("buttons.noOptions")),1)):(Z(!0),oe(Se,{key:1},et(v.value,(M,re)=>(Z(),oe("div",{key:M.value,class:"filter-dropdown__option",role:"option","data-highlighted":re===l.value?"":void 0,"data-selected":M.value===e.value?"":void 0,"aria-selected":M.value===e.value,onClick:ge=>L(M),onMouseenter:ge=>l.value=re},[E("span",null,V(M.label),1),E("span",j_,V(M.count),1)],40,z_))),128))])],4)):Ae("",!0)],2))}},[["styles",[F_]]]);function Ln(){const{tm:e,rt:t,locale:o}=Qt(),n=le(()=>{try{return e("regions")||{}}catch{return{}}});function s(r){var l;const i=(l=n.value)==null?void 0:l[r];if(i==null)return r;try{return t(i)}catch{return typeof i=="string"?i:r}}function a(r,i={}){let l=s(r);for(const[u,c]of Object.entries(i))l=l.replace("%"+u+"%",String(c));return l}return{t:s,tf:a,locale:o}}function Ca(e,t){if(!t.includes("."))return e==null?void 0:e[t];const[o,...n]=t.split(".");let s=e==null?void 0:e[o];for(const a of n)s=s==null?void 0:s[a];return s}function V_(e,t){const o=e.toLowerCase(),n=t.toLowerCase(),s=[];let a=0,r=o.indexOf(n,a);for(;r!==-1;)s.push([r,r+n.length-1]),a=r+n.length,r=o.indexOf(n,a);return s}function H_(e,t,o){const n=e.toLowerCase(),s=t.toLowerCase(),a=s.length;if(!a||!n.length)return null;const r=Math.min(2,Math.floor(o*a));if(r<=0)return null;let i=new Array(n.length+1).fill(0),l=new Array(n.length+1);for(let p=1;p<=a;p++){l[0]=p;for(let _=1;_<=n.length;_++){const A=i[_-1]+(s[p-1]===n[_-1]?0:1);l[_]=Math.min(A,i[_]+1,l[_-1]+1)}[i,l]=[l,i]}let u=1/0,c=-1;for(let p=1;p<=n.length;p++)i[p]r?null:[[Math.max(0,c-a),c-1]]}function W_(e,t,{threshold:o=.4}={}){const n=String(e??"").trim().toLowerCase();if(!n)return[];const s=Math.min(2,Math.floor(o*n.length)),a=[];for(const i of t){if(!i)continue;const l=String(i).toLowerCase();if(Math.abs(l.length-n.length)>s)continue;const u=q_(l,n,s);u<=s&&a.push({value:i,distance:u})}if(!a.length)return[];const r=Math.min(...a.map(i=>i.distance));return a.filter(i=>i.distance===r).map(i=>i.value)}function q_(e,t,o){if(e===t)return 0;let n=Array.from({length:t.length+1},(a,r)=>r);const s=new Array(t.length+1);for(let a=1;a<=e.length;a++){s[0]=a;let r=a;for(let i=1;i<=t.length;i++)s[i]=Math.min(n[i-1]+(e[a-1]===t[i-1]?0:1),n[i]+1,s[i-1]+1),s[i]o)return o+1;for(let i=0;i<=t.length;i++)n[i]=s[i]}return n[t.length]}class K_{constructor(t,o={}){this.list=Array.isArray(t)?t:[],this.keys=o.keys||[],this.threshold=typeof o.threshold=="number"?o.threshold:.4,this.minMatchCharLength=o.minMatchCharLength||1}search(t){const o=String(t||"").trim();if(!o)return this.list.map(u=>({item:u,matches:[]}));if(o.lengthEa.has(n.value)),a=le(()=>({search:o("Search names, country/continent, religions..."),show_filters:o("Show Filters"),hide_filters:o("Hide Filters"),clear_all:o("Clear All"),type_to_search:o("Type to search..."),wagf_region:o("WAGF Region"),wagf_block:o("WAGF Block"),rop1:o("People Group"),religion:o("Religion"),loading:o("Loading results..."),load_more:o("Load More"),full_profile:o("Full Profile"),total:o("Total"),alternate_name:o("Alternate Names"),exact_filter:o("Exact Search"),adopted_filter:o("Adopted"),engaged_filter:o("Engaged")})),r=$e([]),i=$e(!0),l=$e(!1),u=$e(""),c=$e(!1),d=$e(t.perPage),p=$e({wagf_region:null,wagf_block:null,rop1:null,religion:null,adopted:null,engaged:null,exact:null}),_=S=>(S&&typeof S=="object"?S.label:S)||"",A=S=>(S&&typeof S=="object"?S.value:S)||"";async function w(){i.value=!0,l.value=!1;try{const S=await fetch(`${t.prayBaseUrl}/api/people-groups/list?fields=${Sy}&lang=${t.languageCode}`);if(!S.ok)throw new Error(`HTTP ${S.status}`);const z=await S.json(),Q=Array.isArray(z.posts)?z.posts:[];r.value=t.lockCountryCode?Q.filter(T=>A(T.country_code)===t.lockCountryCode):Q}catch(S){console.error("[UupgsList] fetch error:",S),l.value=!0,r.value=[]}finally{i.value=!1}}xt(w),qe(()=>t.lockCountryCode,w);function v(S){const z=new Map;for(const Q of r.value){const T=A(Q[S]),U=_(Q[S]);if(!T)continue;const K=z.get(T)||{value:T,label:U||T,count:0};K.count++,z.set(T,K)}return[...z.values()].sort((Q,T)=>Q.label.localeCompare(T.label))}const k=le(()=>[{name:"wagf_region",label:a.value.wagf_region},{name:"wagf_block",label:a.value.wagf_block},{name:"rop1",label:a.value.rop1},{name:"religion",label:a.value.religion}].map(S=>({...S,options:v(S.name)}))),f=le(()=>Object.entries(p.value).filter(([,S])=>S).map(([S,z])=>({name:S,...z})));function b(S){return String(S??"").normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function m(S){return String(S??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const C=["name","imb_alternate_name","country_code.label","rop1.label","religion.label","wagf_region.label","wagf_block.label"],$=(S,z)=>z.split(".").reduce((Q,T)=>Q==null?void 0:Q[T],S),O=le(()=>r.value.filter(S=>{for(const[z,Q]of Object.entries(p.value))if(Q){if(z==="adopted"){if(!((S.adopted_by_churches??0)>0))return!1;continue}if(z==="engaged"){if(!((S.people_praying??0)>0))return!1;continue}if(z!=="exact"&&A(S[z])!==Q.value)return!1}return!0}));function x(S,z){let Q=0,T="";return z.forEach((U,K)=>{const[pe,be]=U,_e=K===z.length-1;T+=m(S.slice(Q,pe))+''+m(S.slice(pe,be+1))+""+(_e?m(S.slice(be+1)):""),Q=be+1}),T}const L=le(()=>{const S=u.value.trim();if(!S)return O.value;const z=O.value.map(T=>({__row:T,name:b(T.name),imb_alternate_name:b(T.imb_alternate_name),country_code:{label:b(_(T.country_code))},rop1:{label:b(_(T.rop1))},religion:{label:b(_(T.religion))},wagf_region:{label:b(_(T.wagf_region))},wagf_block:{label:b(_(T.wagf_block))}}));return new K_(z,{keys:C,threshold:p.value.exact?0:.4,minMatchCharLength:3}).search(b(S)).map(T=>{const U=T.item.__row,K={...U,matches:[],name_label:"",country_label:"",rop1_label:""};for(const pe of T.matches||[]){const be=String($(U,pe.key)??(pe.key.includes(".")?_($(U,pe.key.split(".")[0])):""));if(!be)continue;const _e=x(be,pe.indices),j=pe.key.split(".")[0];pe.key==="name"?K.name_label=_e:pe.key==="imb_alternate_name"?K.matches.push({key:a.value.alternate_name,label:_e}):j==="country_code"?K.country_label=_e:j==="rop1"?K.rop1_label=_e:j==="wagf_region"||K.matches.push({key:j==="religion"?a.value.religion:a.value.wagf_block,label:_e})}return K})}),F=le(()=>L.value.slice(0,d.value)),N=le(()=>L.value.length>d.value);function H(){d.value+=t.morePerPage||t.perPage}qe([u,p],()=>{d.value=t.perPage},{deep:!0});function M(S,z){p.value={...p.value,[S]:p.value[S]?null:{value:"yes",label:z}}}function re(S){S&&S.name&&(p.value={...p.value,[S.name]:{value:S.value,label:S.label}})}function ge(S){S&&S.name&&(p.value={...p.value,[S.name]:null})}function de(){p.value={wagf_region:null,wagf_block:null,rop1:null,religion:null}}function se(S){return`${t.researchUrl}${S.slug||""}`}return Pt(Js+':host{ display:block; }.ul-root{ display:flex; flex-direction:column; gap:var(--spacing-md); background-repeat:no-repeat; background-size:60%; background-position:top; min-height:400px; --dx-text:#2a332a; --dx-muted:#6d766e; --dx-white:#fff; color:var(--dx-text); font:var(--font-size-md)/1.5 Poppins,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }.filters{ display:flex; flex-direction:column; gap:var(--spacing-md); }.search-box{ position:relative; width:100%; max-width:50ch; margin-inline:auto; }.search-box input{ box-sizing:border-box; width:100%; border:1px solid #666; border-radius:100px; background:var(--dx-white); padding:10px var(--spacing-lg); text-indent:1.5em; font:inherit; font-size:var(--font-size-md); color:var(--dx-text); }.search-box input::placeholder{ color:gray; }.search-icon{ position:absolute; inset-inline-start:1em; top:0; bottom:0; margin:auto 0; width:1em; height:1em; fill:none; stroke:var(--dx-muted); stroke-width:2; pointer-events:none; }.filters__toggle{ background:none; border:0; cursor:pointer; font:inherit; font-size:var(--font-size-sm); display:inline-flex; align-items:center; gap:var(--spacing-2xs); margin-inline:auto; color:var(--dx-text); }.filters__toggle svg{ transition:transform 200ms ease; }.filters__toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }.filter-toggle{ padding:5.65323px 13.3px; cursor:pointer; font:inherit; font-size:var(--font-size-sm); color:#2a332a; border:1px solid rgb(128,128,128); border-radius:8px; background-color:#fff; width:fit-content; transition:border-color 150ms ease, background-color 150ms ease; }.filter-toggle:hover{ border-color:#92b195; }.filter-toggle[data-active]{ background-color:#6d766e; color:#fff; }.filters__panel{ display:flex; flex-wrap:wrap; gap:13.3px; justify-content:center; align-items:flex-start; }.filters__active{ display:flex; flex-wrap:wrap; gap:var(--spacing-2xs); align-items:center; justify-content:center; }.filter-chip{ display:inline-flex; gap:var(--spacing-2xs); background:#6d766e; color:#fff; border-radius:100px; padding:var(--spacing-3xs) 13.3px; font-size:var(--font-size-sm); text-align:center; }.filter-chip__remove{ background:none; border:0; cursor:pointer; font-size:1.1em; line-height:1; color:inherit; padding:0; display:inline-flex; align-items:center; }.filter-chip__remove:hover{ opacity:0.7; }.filters__clear-all{ background:none; border:0; cursor:pointer; font:inherit; font-size:var(--font-size-sm); color:#3b463d; text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:2px; }.ul-total{ display:flex; gap:var(--spacing-md); justify-content:space-between; align-items:center; }.ul-total__count{ font-size:var(--font-size-sm); }.invisible-placeholder{ visibility:hidden; overflow:hidden; }.grid{ display:grid; grid-gap:var(--spacing-2xl); grid-template-columns:repeat(auto-fit, minmax(min(400px,100%), 1fr)); }.uupg__card{ box-sizing:border-box; background:var(--dx-white); color:var(--dx-text); border-radius:35px; display:grid; grid-template-areas:"image header adopted" "image content content" "footer footer footer-right"; grid-template-columns:auto 1fr auto; grid-template-rows:auto auto auto; gap:var(--spacing-md); padding:var(--spacing-md); }.uupg__image{ width:100px; height:100px; object-fit:cover; grid-area:image; border-radius:7.5px; background:#f3f3f1; }.uupg__header{ grid-area:header; }.uupg__name{ margin:0; font-family:inherit; font-size:var(--font-size-lg); font-weight:500; line-height:1.25; }.uupg__country{ margin:0; font-size:var(--font-size-md); }.uupg__country-link{ color:#4e594f; text-decoration:none; }.uupg__country-link:hover{ text-decoration:underline; }.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); white-space:nowrap; border-width:0; }.search-highlight{ background-color:#92b195; color:#fff; }.uupg__match{ margin:0; font-size:var(--font-size-sm); color:var(--dx-muted); }.uupg__content{ display:none; grid-area:content; }.uupg__more-button{ grid-area:footer; align-self:flex-end; display:block; width:fit-content; box-sizing:border-box; padding:10px var(--spacing-2xl); color:#f3f3f1; background:#92b195; border-radius:100px; border:1px solid transparent; line-height:1; text-decoration:none; text-transform:uppercase; font-size:var(--font-size-md); font-family:Figtree,Poppins,-apple-system,"Segoe UI",sans-serif; transition:background-color .3s ease, color .3s ease; cursor:pointer; }.uupg__more-button:hover{ background:#2a332a; color:#f3f3f1; }@media (max-width:576px){ .uupg__card{ grid-template-areas:"image adopted" "header header" "content content" "footer footer"; grid-template-columns:auto 1fr; grid-template-rows:auto auto auto auto; } }.loading, .ul-status{ text-align:center; color:var(--dx-muted); font-size:var(--font-size-md); padding:var(--spacing-md); }.ul-status.ul-failed{ font-weight:600; }.ul-more{ margin-inline:auto; margin-top:var(--spacing-2xl); display:block; width:fit-content; padding:10px var(--spacing-2xl); color:#f3f3f1; background:#92b195; border-radius:100px; border:1px solid transparent; line-height:1; text-transform:uppercase; font-size:var(--font-size-md); font-family:Figtree,Poppins,-apple-system,"Segoe UI",sans-serif; cursor:pointer; }.ul-more:hover{ background:#2a332a; }',"uupgs-list"),(S,z)=>(Z(),oe("div",{class:"ul-root",dir:s.value?"rtl":"ltr",style:Ke(`background-image: url(${e.imagesBase}/worldmap.svg);`)},[E("div",Y_,[E("div",Z_,[z[5]||(z[5]=E("svg",{class:"search-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[E("circle",{cx:"11",cy:"11",r:"7"}),E("path",{d:"M20 20l-3.5-3.5","stroke-linecap":"round"})],-1)),E("label",J_,V(a.value.search),1),es(E("input",{id:"ul-search","onUpdate:modelValue":z[0]||(z[0]=Q=>u.value=Q),type:"search",placeholder:a.value.search,"aria-label":a.value.search},null,8,Q_),[[Yp,u.value]])]),E("button",{type:"button",class:"filters__toggle","aria-expanded":c.value?"true":"false",onClick:z[1]||(z[1]=Q=>c.value=!c.value)},[Re(V(c.value?a.value.hide_filters:a.value.show_filters)+" ",1),z[6]||(z[6]=E("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true"},[E("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,ey),c.value?(Z(),oe("div",ty,[(Z(!0),oe(Se,null,et(k.value,Q=>{var T;return Z(),Ot(Zs,{key:Q.name,label:Q.label,name:Q.name,options:Q.options,value:((T=p.value[Q.name])==null?void 0:T.value)||"",placeholder:a.value.type_to_search,onFilterChange:re,onFilterClear:ge},null,8,["label","name","options","value","placeholder"])}),128))])):Ae("",!0),c.value?(Z(),oe("div",oy,[E("button",{type:"button",class:"filter-toggle","data-active":p.value.adopted?"":void 0,onClick:z[2]||(z[2]=Q=>M("adopted",a.value.adopted_filter))},V(a.value.adopted_filter),9,ny),E("button",{type:"button",class:"filter-toggle","data-active":p.value.engaged?"":void 0,onClick:z[3]||(z[3]=Q=>M("engaged",a.value.engaged_filter))},V(a.value.engaged_filter),9,ay),E("button",{type:"button",class:"filter-toggle","data-active":p.value.exact?"":void 0,onClick:z[4]||(z[4]=Q=>M("exact",a.value.exact_filter))},V(a.value.exact_filter),9,sy)])):Ae("",!0),f.value.length?(Z(),oe("div",ry,[(Z(!0),oe(Se,null,et(f.value,Q=>(Z(),oe("span",{key:Q.name,class:"filter-chip"},[Re(V(Q.label)+" ",1),E("button",{type:"button",class:"filter-chip__remove","aria-label":Q.label,onClick:T=>ge({name:Q.name})},"×",8,iy)]))),128)),E("button",{type:"button",class:"filters__clear-all",onClick:de},V(a.value.clear_all),1)])):Ae("",!0)]),l.value?Ae("",!0):(Z(),oe("div",ly,[E("div",cy,[i.value?(Z(),oe("span",uy,V(a.value.total),1)):(Z(),oe(Se,{key:0},[Re(V(a.value.total)+": "+V(L.value.length),1)],64))])])),l.value?(Z(),oe("div",dy,V(me(o)("People groups could not be loaded. This is a connection problem, not a filter.")),1)):Ae("",!0),E("div",py,[(Z(!0),oe(Se,null,et(F.value,Q=>(Z(),oe("div",{key:Q.slug,class:"uupg__card"},[Q.image_url?(Z(),oe("img",{key:0,class:"uupg__image",src:Q.image_url,alt:Q.name,loading:"lazy"},null,8,gy)):Ae("",!0),E("div",hy,[Q.name_label?(Z(),oe("h3",{key:0,class:"uupg__name",innerHTML:Q.name_label},null,8,fy)):(Z(),oe("h3",my,V(Q.name),1)),E("p",$y,[E("a",{class:"uupg__country-link",href:se(Q)},[Q.country_label?(Z(),oe("span",{key:0,innerHTML:Q.country_label},null,8,_y)):(Z(),oe("span",yy,V(_(Q.country_code)),1))],8,by),Q.rop1_label?(Z(),oe("span",vy,[z[7]||(z[7]=Re(" (",-1)),E("span",{innerHTML:Q.rop1_label},null,8,xy),z[8]||(z[8]=Re(")",-1))])):_(Q.rop1)?(Z(),oe("span",wy," ("+V(_(Q.rop1))+")",1)):Ae("",!0)]),(Z(!0),oe(Se,null,et(Q.matches||[],(T,U)=>(Z(),oe("p",{key:U,class:"uupg__match"},[E("strong",null,V(T.key),1),z[9]||(z[9]=Re(": ",-1)),E("span",{innerHTML:T.label},null,8,ky)]))),128))]),Q.location_description?(Z(),oe("p",Ly,V(Q.location_description),1)):Ae("",!0),E("a",{class:"uupg__more-button",href:se(Q)},V(a.value.full_profile),9,Py)]))),128)),i.value?(Z(),oe("div",Ay,V(a.value.loading),1)):Ae("",!0)]),N.value?(Z(),oe("button",{key:2,type:"button",class:"ul-more",onClick:H},V(a.value.load_more),1)):Ae("",!0)],12,X_))}};function Rc(e){const t=String(e??"").trim().split(/\s+/).filter(Boolean);if(!t.length)return{head:"",last:""};const o=t[t.length-1];return{head:t.slice(0,-1).join(" "),last:o}}const Cc="#6d766e",Ry={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},Pn={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Mc=Object.keys(Pn);function Cy(e){var o,n,s;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((s=e==null?void 0:e._raw)==null?void 0:s.wagf_region);return Pn[t]||Cc}function My(){const e=["match",["coalesce",["get","region"],""]];for(const t of Mc)e.push(t,Pn[t]);return e.push(Cc),e}const Ty="rgba(120, 128, 134, 0.28)",Tc="36px",Oc=()=>{};function Oy(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Oc;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Oc;const s=f=>f.classList.contains("map-scroll-edge--left");for(const f of n)f.style.background=`linear-gradient(${s(f)?"to right":"to left"}, ${Ty} ${Tc}, transparent ${Tc})`,f.style.opacity="0",f.style.transition="opacity 0.16s ease",f.style.userSelect="none",f.style.webkitUserSelect="none";const a=f=>{f.style.opacity="1"},r=f=>{f.style.opacity="0"},i=()=>n.find(f=>!s(f))||null,l=new Set;let u=!1,c=null;const d=()=>{for(const f of n)l.has(f)||r(f)},p=()=>{const f=i();f&&(a(f),c&&clearTimeout(c),c=setTimeout(d,250))},_=()=>p(),A=f=>{if(!(f.touches&&f.touches.length===1))return;const b=f.target;b&&b.classList&&b.classList.contains("map-scroll-edge")||p()},w=()=>{c&&clearTimeout(c),d()};e.addEventListener("wheel",_,{passive:!0}),e.addEventListener("touchmove",A,{passive:!0}),e.addEventListener("touchend",w,{passive:!0}),e.addEventListener("touchcancel",w,{passive:!0});const v=()=>{u||p()};typeof window<"u"&&window.addEventListener("scroll",v,{passive:!0});const k=[];for(const f of n){const b=()=>{l.add(f),a(f)},m=()=>{l.delete(f),r(f)},C=()=>{u=!0,a(f)},$=()=>{u=!1,r(f)};f.addEventListener("mouseenter",b),f.addEventListener("mouseleave",m),f.addEventListener("touchstart",C,{passive:!0}),f.addEventListener("touchend",$,{passive:!0}),k.push(()=>{f.removeEventListener("mouseenter",b),f.removeEventListener("mouseleave",m),f.removeEventListener("touchstart",C),f.removeEventListener("touchend",$)})}return function(){c&&(clearTimeout(c),c=null),e.removeEventListener("wheel",_),e.removeEventListener("touchmove",A),e.removeEventListener("touchend",w),e.removeEventListener("touchcancel",w),typeof window<"u"&&window.removeEventListener("scroll",v);for(const b of k)b();for(const b of n)r(b)}}const Ny=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function Fy(e,t="mapbox"){const o=Ny[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function Iy(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const Dy=["mapbox","maplibre"],Nc="mapbox";function Gy(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function Fc(e){const t=Gy(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,s=typeof window<"u"?window.MAP_PROVIDER:void 0,a=String(o||n||s||Nc).toLowerCase().trim();return Dy.includes(a)?a:Nc}const Ic={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function Uy(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function By(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(Uy(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const s=n.setRTLTextPlugin(Ic.maplibre,!0);s&&s.catch&&s.catch(()=>{})}else n.setRTLTextPlugin(Ic.mapbox,null,!0);o=!0}catch{}return o}const zy=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,Dc=new WeakMap;function jy(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function Gc(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!jy(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let s=Dc.get(e);s||(s=new Map,Dc.set(e,s));let a=0;for(const r of n.layers){if(r.type!=="symbol"||!r.layout||r.layout["text-field"]==null)continue;const i=r.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!s.has(r.id))continue}else{if(!zy.test(l))continue;s.set(r.id,i)}const u=o==="en"?s.get(r.id):["coalesce",["get","name:"+o],["get","name:latin"],["get","name"]];e.setLayoutProperty(r.id,"text-field",u),a++}return a}catch{return 0}}const zo={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 Uc(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 Vy=zo.mapbox.css,Hy="https://tiles.openfreemap.org/styles/liberty",Wy="https://tiles.openfreemap.org/styles/fiord";function Qs(e){var o;const t=((o=zo[e])==null?void 0:o.global)||zo.mapbox.global;return typeof window<"u"?window[t]:void 0}async function qy(e){const t=zo[e]||zo.mapbox;if(Qs(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(Qs(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,s)=>{const a=document.createElement("script");a.src=t.js,a.async=!1,a.addEventListener("load",n,{once:!0}),a.addEventListener("error",()=>s(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(a)})}async function Ky(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=r=>new Promise(i=>setTimeout(i,r)),s=o.querySelector(`link[href="${t}"]`);if(s){if(s.sheet)return;await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0})}),n(2e3)]);return}const a=document.createElement("link");a.rel="stylesheet",a.href=t,await Promise.race([new Promise(r=>{a.addEventListener("load",r,{once:!0}),a.addEventListener("error",r,{once:!0}),o.prepend(a)}),n(2e3)])}function Xy(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Wy:Hy}const Yy=85.0511,er=-2,Zy=0,Jy=-60;function Bc(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Qy(e,t,o,n){if(!e||e<=0||!t||t<=0)return Zy;const s=Math.log2(e/512),a=Bc(n)-Bc(Yy),r=Math.log2(t/(512*a)),i=Math.max(s,r);return Math.max(er,Math.min(i,(o??18)-1))}function e1({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:s=void 0,center:a=[20,10],zoom:r=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:u=void 0,skipWorldFloor:c=!1,maxZoom:d=18,pitch:p=0,bearing:_=0,renderWorldCopies:A=!0,showEdgeBorders:w=!0,southCutoff:v=Jy,maxBounds:k=void 0}){const f=Kn(null),b=$e(!1);let m=null,C=null,$=null,O=null;try{O=je("profileConfig",null)}catch{}s=s||Fc(O);const x=s==="maplibre";let L=null;try{L=je("lang",null)}catch{}const F=()=>{const M=L&&typeof L=="object"&&"value"in L?L.value:L;if(typeof M=="string"&&M)return M;const re=O&&typeof O=="object"&&"value"in O?O.value:O;if(re&&(re.locale||re.lang))return String(re.locale||re.lang);try{const ge=new URLSearchParams(location.search);return ge.get("lang")||ge.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function N(){var j;const M=Fy(o,s),re=M.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const ge=()=>!e.value;if(await qy(s),ge())return;const de=Qs(s);if(!de){console.error(`[useMapInstance] ${x?"maplibregl":"mapboxgl"} is not available. Add the ${x?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(By(de),!x){if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await Ky(e.value,x?zo.maplibre.css:Vy),ge()||(await new Promise(ee=>requestAnimationFrame(ee)),ge()))return;const se=e.value,S=se.clientWidth,z=se.clientHeight;if(S===0||z===0){console.error(`[useMapInstance] Container has ZERO dimensions (${S}×${z}). Map will be invisible. Check that parent elements have CSS sizing.`);let ee=se.parentElement,ne=0;for(;ee&&ne<5;)ee=ee.parentElement,ne++}const Q=t;x||(de.accessToken=Q);const T=()=>typeof window<"u"&&window.innerWidth>=1024,U=(ee,ne)=>{if(c)return typeof u=="number"?u:er;if(!T())return er;const ae=Qy(ee,ne,d,v);return typeof u=="number"?Math.max(u,ae):ae},K=U(se.clientWidth,se.clientHeight),pe=M.lightPreset||(()=>{var ee;try{const ne=typeof n=="function"?n():n;return(ee=ne==null?void 0:ne.basemap)==null?void 0:ee.lightPreset}catch{return}})();if(x){f.value=new de.Map({container:e.value,style:Xy(re,pe),center:a,zoom:r,minZoom:K,maxZoom:d,pitch:p,bearing:_,dragRotate:!1,renderWorldCopies:A,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...k?{maxBounds:k}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Uc(f.value);try{e.value.__doxaMap=f.value}catch{}}else{const ee=typeof n=="function"?n():n;f.value=new de.Map({accessToken:Q,container:e.value,style:re,...ee?{config:ee}:{},center:a,zoom:r,minZoom:K,maxZoom:d,pitch:p,bearing:_,dragRotate:!1,touchPitch:!1,renderWorldCopies:A,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...k?{maxBounds:k}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Uc(f.value);try{e.value.__doxaMap=f.value}catch{}}try{let ee=!1;f.value.on("error",ne=>{var y,R;const ae=((y=ne==null?void 0:ne.error)==null?void 0:y.status)??(ne==null?void 0:ne.status),ve=String(((R=ne==null?void 0:ne.error)==null?void 0:R.url)||(ne==null?void 0:ne.sourceId)||"");ae!==401&&ae!==403||ee||(ee=!0,console.error(`[doxa-maps] Mapbox returned ${ae} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(ve?` First failing request: ${ve.slice(0,120)}`:"")))})}catch{}try{f.value.touchZoomRotate.disableRotation()}catch{}$=Oy(((j=e.value)==null?void 0:j.parentElement)||null,{enabled:w});let be=K,_e=null;m=()=>{const ee=f.value;if(!ee)return;const ne=U(se.clientWidth,se.clientHeight);ne!==be&&(be=ne,ee.setMinZoom(ne)),ee.getZoom(){_e=null;const ae=f.value;if(!ae)return;const ve=U(se.clientWidth,se.clientHeight);if(ae.getZoom(){_e&&(clearTimeout(_e),_e=null)},f.value.on("resize",m),typeof window<"u"&&(window.addEventListener("resize",m),window.addEventListener("orientationchange",m)),f.value.on("style.load",()=>{if(f.value&&Gc(f.value,F()),M.paint&&f.value){const ee=Iy(f.value,M.paint);console.info("[useMapInstance] style paint applied ("+s+"):",ee.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ee;(ee=f.value)==null||ee.resize(),f.value&&f.value.setMinZoom(U(se.clientWidth,se.clientHeight)),b.value=!0})})}function H(){if(f.value){if(m&&(f.value.off("resize",m),typeof window<"u"&&(window.removeEventListener("resize",m),window.removeEventListener("orientationchange",m)),m=null),C){try{C()}catch{}C=null}$&&($(),$=null),f.value.remove(),f.value=null,b.value=!1}}if(L&&typeof L=="object"&&"value"in L)try{qe(L,()=>{f.value&&b.value&&Gc(f.value,F())})}catch{}return{map:f,isMapReady:b,initializeMap:N,destroy:H}}const t1={class:"rcm"},o1={key:0,class:"rcm__note",role:"status"},n1={key:1,class:"rcm__legend"},zc=100,jc=.42,Ma="rcm-people-groups",jo="rcm-country-boundaries",a1=.92,s1={__name:"RegionCountryMap",props:{countryCodes:{type:Array,default:()=>[]},points:{type:Array,default:()=>[]},colorMode:{type:String,default:"in-country"},highlightRegion:{type:String,default:""},selectOnPinClick:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:2},bounds:{type:Array,default:null},prayBaseUrl:{type:String,default:"https://pray.doxa.life"},researchUrl:{type:String,default:"https://doxa.life/research/"}},emits:["pick-country"],setup(e,{emit:t}){const{t:o,locale:n}=Ln(),s=t,a=e,r=je("profileConfig",$e(null)),i=Fc(r)==="maplibre",l=je("mapboxToken",$e("")),u=le(()=>(typeof l=="string"?l:l==null?void 0:l.value)||""),c={brand:"#3b463d",muted:"#6d766e",inCountry:"#73A17F",prayerFull:"#92b195",prayerPartial:"#f0c64a",prayerNone:"#4e594f",outside:"#a59d92"},d=$e(null),p=$e(!1),_=le(()=>{const S=new Set(a.countryCodes);return{type:"FeatureCollection",features:a.points.filter(z=>Number.isFinite(z.lng)&&Number.isFinite(z.lat)).map(z=>({type:"Feature",geometry:{type:"Point",coordinates:[z.lng,z.lat]},properties:{name:z.name||"",slug:z.slug||"",country:z.country||"",inCountry:S.has(z.code),committed:Number(z.committed)||0,region:z.region||"",code:z.code||"",population:Number(z.population)||0,rop1:z.rop1||"",religion:z.religion||"",description:z.description||"",imageUrl:z.imageUrl||""}}))}}),A={padding:40,maxZoom:6},{map:w,isMapReady:v,initializeMap:k,destroy:f}=e1({containerRef:d,accessToken:u.value,style:"mapbox://styles/mapbox/light-v11",center:a.center,zoom:a.zoom,maxZoom:12,bounds:a.bounds||void 0,fitBoundsOptions:A,showEdgeBorders:!0}),b=Cy({}),m=le(()=>{const S=new Map;for(const Q of a.points)!Q||!Q.code||!Q.region||S.has(Q.code)||S.set(Q.code,Q.region);if(!S.size)return b;const z=["match",["get","iso_3166_1_alpha_3"]];for(const[Q,T]of S)z.push(Q,Pn[T]||b);return z.push(b),z});function C(){return["all",["in",["get","iso_3166_1_alpha_3"],["literal",a.countryCodes]],["any",["==",["get","worldview"],"all"],["in","US",["get","worldview"]]]]}function $(){const S=["!",["get","inCountry"]],z=[">=",["get","committed"],zc],Q=[">",["get","committed"],0],T=a.highlightRegion,U=["==",["get","region"],T];return a.colorMode==="region"?{color:My(),sortKey:T?["case",U,2,1]:1,opacity:T?["case",U,1,.25]:.9,radius:T?["case",U,["interpolate",["linear"],["zoom"],2,4.5,6,8],["interpolate",["linear"],["zoom"],2,2.5,6,5]]:["interpolate",["linear"],["zoom"],2,3,6,6.5]}:{color:a.colorMode==="prayer"?["case",S,c.outside,z,c.prayerFull,Q,c.prayerPartial,c.prayerNone]:["case",["get","inCountry"],c.inCountry,c.muted],sortKey:a.colorMode==="prayer"?["case",S,0,z,3,Q,2,1]:["case",["get","inCountry"],1,0],opacity:["case",["get","inCountry"],1,.75],radius:["interpolate",["linear"],["zoom"],2,3,6,6.5]}}function O(){const S=w.value;if(!S)return;const{color:z,sortKey:Q,opacity:T,radius:U}=$();if(!S.getSource(jo)){i?(S.addSource(jo,{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${Ra(r==null?void 0:r.value)}/boundaries/world-adm0.geojson`).then(pe=>pe.json()).then(pe=>{for(const _e of pe.features||[])_e.properties&&_e.properties.iso3&&(_e.properties.iso_3166_1_alpha_3=_e.properties.iso3);const be=w.value&&w.value.getSource(jo);be&&be.setData(pe)}).catch(pe=>console.warn("[rcm] country boundaries failed to load",pe))):S.addSource(jo,{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"});const K=i?{}:{"source-layer":"country_boundaries"};S.addLayer({id:"rcm-focus-fill",type:"fill",source:jo,...K,filter:C(),paint:{"fill-color":a.colorMode==="region"?m.value:c.brand,"fill-opacity":a.colorMode==="region"?jc:.12}}),S.addLayer({id:"rcm-focus-outline",type:"line",source:jo,...K,filter:C(),paint:{"line-color":c.brand,"line-width":2}})}S.getSource(Ma)||(S.addSource(Ma,{type:"geojson",data:_.value}),S.addLayer({id:"rcm-pins",type:"circle",source:Ma,layout:{"circle-sort-key":Q},paint:{"circle-radius":U,"circle-color":z,"circle-opacity":T,"circle-stroke-width":1,"circle-stroke-color":"#ffffff"}}),S.on("click","rcm-pins",L),S.on("mouseenter","rcm-pins",()=>{S.getCanvas().style.cursor="pointer"}),S.on("mouseleave","rcm-pins",()=>{S.getCanvas().style.cursor=""}))}let x=null;function L(S){const z=S.features&&S.features[0];if(!z)return;if(a.selectOnPinClick){const K=z.properties||{};s("pick-country",{code:K.code||"",region:K.region||"",name:K.name||""});return}const Q=window.mapboxgl;if(!Q)return;const T=z.properties||{},U=N(T);x&&x.remove(),x=new Q.Popup({closeButton:!0,maxWidth:"264px",offset:12}).setLngLat(z.geometry.coordinates).setHTML(U).addTo(w.value)}function F(S){return String(S??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function N(S){const z=F(S.name||""),Q=[S.country,S.rop1].filter(Boolean).map(F).join(" · "),T=Number(S.population)>0?Number(S.population).toLocaleString(n.value||"en"):"",U=`${a.researchUrl}${S.slug||""}`,K=`${String(a.prayBaseUrl).replace(/\/+$/,"")}/${S.slug||""}?source=doxalife`,pe=[];return T&&pe.push(`
${F(o("Population"))}
${T}
`),S.religion&&pe.push(`
${F(o("Religion"))}
${F(S.religion)}
`),pe.push(`
${F(o("Intercessors"))}
${Number(S.committed)||0}/${zc}
`),`
+`),c=document.createElement("style");c.id=s,c.setAttribute("data-doxa-font",e),c.textContent=u,document.head.appendChild(c)}const Pc=[{src:"fonts/bebas-neue/bebas-neue-latin.woff2",unicodeRange:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD"},{src:"fonts/bebas-neue/bebas-neue-latin-ext.woff2",unicodeRange:"U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF"}],wn="U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD",kn="U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",Ac=[{weight:"500",src:"fonts/figtree/figtree-500-latin.woff2",unicodeRange:wn},{weight:"500",src:"fonts/figtree/figtree-500-latin-ext.woff2",unicodeRange:kn}],Sc=[{weight:"400",src:"fonts/poppins/poppins-400-latin.woff2",unicodeRange:wn},{weight:"400",src:"fonts/poppins/poppins-400-latin-ext.woff2",unicodeRange:kn},{weight:"500",src:"fonts/poppins/poppins-500-latin.woff2",unicodeRange:wn},{weight:"500",src:"fonts/poppins/poppins-500-latin-ext.woff2",unicodeRange:kn},{weight:"600",src:"fonts/poppins/poppins-600-latin.woff2",unicodeRange:wn},{weight:"600",src:"fonts/poppins/poppins-600-latin-ext.woff2",unicodeRange:kn},{weight:"700",src:"fonts/poppins/poppins-700-latin.woff2",unicodeRange:wn},{weight:"700",src:"fonts/poppins/poppins-700-latin-ext.woff2",unicodeRange:kn}],Ec=[{src:"fonts/oswald/oswald-400-cyrillic.woff2",unicodeRange:"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116"},{src:"fonts/oswald/oswald-400-cyrillic-ext.woff2",unicodeRange:"U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F"},{src:"fonts/oswald/oswald-400-latin.woff2",unicodeRange:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD"},{src:"fonts/oswald/oswald-400-latin-ext.woff2",unicodeRange:"U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF"}],F_=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 128px);min-width:var(--dx-filter-w, 128px);max-width:var(--dx-filter-w, 128px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 108px);min-width:var(--dx-filter-w-sm, 108px);max-width:var(--dx-filter-w-sm, 108px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) var(--dx-filter-pad-x, 8px);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;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:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 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:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",I_=["data-active","aria-expanded"],G_={class:"filter-dropdown__label"},D_=["value","placeholder"],U_={class:"filter-dropdown__options"},B_={key:0,class:"filter-dropdown__no-options"},z_=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],V_={class:"filter-dropdown__count"},Zs=Lc({__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 o=e,n={"buttons.clearSelection":"Clear selection","buttons.noOptions":"No options found"};let s=N=>n[N]||N;try{s=Qt().t}catch{}const a=t,r=be(!1),i=be(""),l=be(-1),u=be(null),c=be(null),p=be(null),d=be({});function _(N){const H=N.ownerDocument,M=H.createElement("div");M.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(N.parentElement||N.getRootNode().body||H.body).appendChild(M);const ge=M.getBoundingClientRect();return M.remove(),{x:ge.left,y:ge.top}}function A(){const N=p.value;if(!N)return;const H=N.getBoundingClientRect(),M=window.innerWidth,re=window.innerHeight,ge=320,pe=4,se=8,z=Math.round(Math.min(Math.max(H.width,240),M-se*2)),Q=H.right>se&&H.leftM-se?T=Math.round(Math.max(H.right-z,se)):T=Math.round(Math.max(H.left,se)):T=Math.round(Math.min(Math.max(H.left,se),M-z-se));const U=re-H.bottom,K=U<180&&H.top>U,de=_(N),$e=Math.round(T-de.x);d.value=K?{top:"auto",bottom:`${Math.round(re-H.top+pe+de.y)}px`,left:`${$e}px`,width:`${z}px`,maxHeight:`${Math.round(Math.min(ge,H.top-pe-se))}px`}:{top:`${Math.round(H.bottom+pe-de.y)}px`,bottom:"auto",left:`${$e}px`,width:`${z}px`,maxHeight:`${Math.round(Math.min(ge,U-pe-se))}px`}}function w(){r.value&&A()}const v=le(()=>{if(!i.value)return o.options;const N=i.value.toLowerCase();return o.options.filter(H=>H.label.toLowerCase().includes(N))}),k=le(()=>o.options.find(N=>N.value===o.value));function f(N){var M;const H=((M=N.composedPath)==null?void 0:M.call(N))??[];u.value&&!H.includes(u.value)&&C()}function $(){r.value?C():m()}function m(){r.value=!0,i.value="",l.value=-1,A(),document.addEventListener("click",f),window.addEventListener("scroll",w,!0),window.addEventListener("resize",w),no(()=>{var N;A(),(N=c.value)==null||N.focus()})}function C(){r.value=!1,i.value="",l.value=-1,document.removeEventListener("click",f),window.removeEventListener("scroll",w,!0),window.removeEventListener("resize",w)}function b(N){i.value=N.target.value,l.value=-1}function O(N){const H=v.value;switch(N.key){case"ArrowDown":N.preventDefault(),l.value=Math.min(l.value+1,H.length-1),x();break;case"ArrowUp":N.preventDefault(),l.value=Math.max(l.value-1,0),x();break;case"Enter":{N.preventDefault();const M=H[l.value];M&&L(M);break}case"Escape":N.preventDefault(),C();break}}function x(){no(()=>{var H;const N=(H=u.value)==null?void 0:H.querySelector(".filter-dropdown__option[data-highlighted]");N==null||N.scrollIntoView({block:"nearest"})})}function L(N){a("filter-change",{name:o.name,value:N.value,label:N.label,type:N.type}),C()}function F(){a("filter-clear",{name:o.name}),C()}return ft(()=>{document.removeEventListener("click",f),window.removeEventListener("scroll",w,!0),window.removeEventListener("resize",w)}),(N,H)=>(Z(),oe("div",{ref_key:"rootRef",ref:u,class:He(["filter-dropdown",{"is-open":r.value}])},[E("button",{ref_key:"triggerRef",ref:p,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:$},[E("span",G_,[k.value?(Z(),oe(Se,{key:0},[Re(j(e.label)+": ",1),E("strong",null,j(k.value.label),1)],64)):(Z(),oe(Se,{key:1},[Re(j(e.label),1)],64))]),H[0]||(H[0]=E("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[E("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,I_),r.value?(Z(),oe("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:Ke(d.value)},[E("input",{ref_key:"searchInputRef",ref:c,class:"filter-dropdown__search",type:"text",value:i.value,placeholder:e.placeholder,onInput:b,onKeydown:O},null,40,D_),e.value?(Z(),oe("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:F},j(me(s)("buttons.clearSelection")),1)):Ae("",!0),E("div",U_,[v.value.length===0?(Z(),oe("div",B_,j(me(s)("buttons.noOptions")),1)):(Z(!0),oe(Se,{key:1},et(v.value,(M,re)=>(Z(),oe("div",{key:M.value,class:"filter-dropdown__option",role:"option","data-highlighted":re===l.value?"":void 0,"data-selected":M.value===e.value?"":void 0,"aria-selected":M.value===e.value,onClick:ge=>L(M),onMouseenter:ge=>l.value=re},[E("span",null,j(M.label),1),E("span",V_,j(M.count),1)],40,z_))),128))])],4)):Ae("",!0)],2))}},[["styles",[F_]]]);function Ln(){const{tm:e,rt:t,locale:o}=Qt(),n=le(()=>{try{return e("regions")||{}}catch{return{}}});function s(r){var l;const i=(l=n.value)==null?void 0:l[r];if(i==null)return r;try{return t(i)}catch{return typeof i=="string"?i:r}}function a(r,i={}){let l=s(r);for(const[u,c]of Object.entries(i))l=l.replace("%"+u+"%",String(c));return l}return{t:s,tf:a,locale:o}}function Ca(e,t){if(!t.includes("."))return e==null?void 0:e[t];const[o,...n]=t.split(".");let s=e==null?void 0:e[o];for(const a of n)s=s==null?void 0:s[a];return s}function j_(e,t){const o=e.toLowerCase(),n=t.toLowerCase(),s=[];let a=0,r=o.indexOf(n,a);for(;r!==-1;)s.push([r,r+n.length-1]),a=r+n.length,r=o.indexOf(n,a);return s}function H_(e,t,o){const n=e.toLowerCase(),s=t.toLowerCase(),a=s.length;if(!a||!n.length)return null;const r=Math.min(2,Math.floor(o*a));if(r<=0)return null;let i=new Array(n.length+1).fill(0),l=new Array(n.length+1);for(let d=1;d<=a;d++){l[0]=d;for(let _=1;_<=n.length;_++){const A=i[_-1]+(s[d-1]===n[_-1]?0:1);l[_]=Math.min(A,i[_]+1,l[_-1]+1)}[i,l]=[l,i]}let u=1/0,c=-1;for(let d=1;d<=n.length;d++)i[d]r?null:[[Math.max(0,c-a),c-1]]}function W_(e,t,{threshold:o=.4}={}){const n=String(e??"").trim().toLowerCase();if(!n)return[];const s=Math.min(2,Math.floor(o*n.length)),a=[];for(const i of t){if(!i)continue;const l=String(i).toLowerCase();if(Math.abs(l.length-n.length)>s)continue;const u=q_(l,n,s);u<=s&&a.push({value:i,distance:u})}if(!a.length)return[];const r=Math.min(...a.map(i=>i.distance));return a.filter(i=>i.distance===r).map(i=>i.value)}function q_(e,t,o){if(e===t)return 0;let n=Array.from({length:t.length+1},(a,r)=>r);const s=new Array(t.length+1);for(let a=1;a<=e.length;a++){s[0]=a;let r=a;for(let i=1;i<=t.length;i++)s[i]=Math.min(n[i-1]+(e[a-1]===t[i-1]?0:1),n[i]+1,s[i-1]+1),s[i]o)return o+1;for(let i=0;i<=t.length;i++)n[i]=s[i]}return n[t.length]}class K_{constructor(t,o={}){this.list=Array.isArray(t)?t:[],this.keys=o.keys||[],this.threshold=typeof o.threshold=="number"?o.threshold:.4,this.minMatchCharLength=o.minMatchCharLength||1}search(t){const o=String(t||"").trim();if(!o)return this.list.map(u=>({item:u,matches:[]}));if(o.lengthEa.has(n.value)),a=le(()=>({search:o("Search names, country/continent, religions..."),show_filters:o("Show Filters"),hide_filters:o("Hide Filters"),clear_all:o("Clear All"),type_to_search:o("Type to search..."),wagf_region:o("WAGF Region"),wagf_block:o("WAGF Block"),rop1:o("People Group"),religion:o("Religion"),loading:o("Loading results..."),load_more:o("Load More"),full_profile:o("Full Profile"),total:o("Total"),alternate_name:o("Alternate Names"),exact_filter:o("Exact Search"),adopted_filter:o("Adopted"),engaged_filter:o("Engaged")})),r=be([]),i=be(!0),l=be(!1),u=be(""),c=be(!1),p=be(t.perPage),d=be({wagf_region:null,wagf_block:null,rop1:null,religion:null,adopted:null,engaged:null,exact:null}),_=S=>(S&&typeof S=="object"?S.label:S)||"",A=S=>(S&&typeof S=="object"?S.value:S)||"";async function w(){i.value=!0,l.value=!1;try{const S=await fetch(`${t.prayBaseUrl}/api/people-groups/list?fields=${Sy}&lang=${t.languageCode}`);if(!S.ok)throw new Error(`HTTP ${S.status}`);const z=await S.json(),Q=Array.isArray(z.posts)?z.posts:[];r.value=t.lockCountryCode?Q.filter(T=>A(T.country_code)===t.lockCountryCode):Q}catch(S){console.error("[UupgsList] fetch error:",S),l.value=!0,r.value=[]}finally{i.value=!1}}xt(w),qe(()=>t.lockCountryCode,w);function v(S){const z=new Map;for(const Q of r.value){const T=A(Q[S]),U=_(Q[S]);if(!T)continue;const K=z.get(T)||{value:T,label:U||T,count:0};K.count++,z.set(T,K)}return[...z.values()].sort((Q,T)=>Q.label.localeCompare(T.label))}const k=le(()=>[{name:"wagf_region",label:a.value.wagf_region},{name:"wagf_block",label:a.value.wagf_block},{name:"rop1",label:a.value.rop1},{name:"religion",label:a.value.religion}].map(S=>({...S,options:v(S.name)}))),f=le(()=>Object.entries(d.value).filter(([,S])=>S).map(([S,z])=>({name:S,...z})));function $(S){return String(S??"").normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function m(S){return String(S??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const C=["name","imb_alternate_name","country_code.label","rop1.label","religion.label","wagf_region.label","wagf_block.label"],b=(S,z)=>z.split(".").reduce((Q,T)=>Q==null?void 0:Q[T],S),O=le(()=>r.value.filter(S=>{for(const[z,Q]of Object.entries(d.value))if(Q){if(z==="adopted"){if(!((S.adopted_by_churches??0)>0))return!1;continue}if(z==="engaged"){if(!((S.people_praying??0)>0))return!1;continue}if(z!=="exact"&&A(S[z])!==Q.value)return!1}return!0}));function x(S,z){let Q=0,T="";return z.forEach((U,K)=>{const[de,$e]=U,_e=K===z.length-1;T+=m(S.slice(Q,de))+''+m(S.slice(de,$e+1))+""+(_e?m(S.slice($e+1)):""),Q=$e+1}),T}const L=le(()=>{const S=u.value.trim();if(!S)return O.value;const z=O.value.map(T=>({__row:T,name:$(T.name),imb_alternate_name:$(T.imb_alternate_name),country_code:{label:$(_(T.country_code))},rop1:{label:$(_(T.rop1))},religion:{label:$(_(T.religion))},wagf_region:{label:$(_(T.wagf_region))},wagf_block:{label:$(_(T.wagf_block))}}));return new K_(z,{keys:C,threshold:d.value.exact?0:.4,minMatchCharLength:3}).search($(S)).map(T=>{const U=T.item.__row,K={...U,matches:[],name_label:"",country_label:"",rop1_label:""};for(const de of T.matches||[]){const $e=String(b(U,de.key)??(de.key.includes(".")?_(b(U,de.key.split(".")[0])):""));if(!$e)continue;const _e=x($e,de.indices),V=de.key.split(".")[0];de.key==="name"?K.name_label=_e:de.key==="imb_alternate_name"?K.matches.push({key:a.value.alternate_name,label:_e}):V==="country_code"?K.country_label=_e:V==="rop1"?K.rop1_label=_e:V==="wagf_region"||K.matches.push({key:V==="religion"?a.value.religion:a.value.wagf_block,label:_e})}return K})}),F=le(()=>L.value.slice(0,p.value)),N=le(()=>L.value.length>p.value);function H(){p.value+=t.morePerPage||t.perPage}qe([u,d],()=>{p.value=t.perPage},{deep:!0});function M(S,z){d.value={...d.value,[S]:d.value[S]?null:{value:"yes",label:z}}}function re(S){S&&S.name&&(d.value={...d.value,[S.name]:{value:S.value,label:S.label}})}function ge(S){S&&S.name&&(d.value={...d.value,[S.name]:null})}function pe(){d.value={wagf_region:null,wagf_block:null,rop1:null,religion:null}}function se(S){return`${t.researchUrl}${S.slug||""}`}return Pt(Js+':host{ display:block; }.ul-root{ display:flex; flex-direction:column; gap:var(--spacing-md); background-repeat:no-repeat; background-size:60%; background-position:top; min-height:400px; --dx-text:#2a332a; --dx-muted:#6d766e; --dx-white:#fff; color:var(--dx-text); font:var(--font-size-md)/1.5 Poppins,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }.filters{ display:flex; flex-direction:column; gap:var(--spacing-md); }.search-box{ position:relative; width:100%; max-width:50ch; margin-inline:auto; }.search-box input{ box-sizing:border-box; width:100%; border:1px solid #666; border-radius:100px; background:var(--dx-white); padding:10px var(--spacing-lg); text-indent:1.5em; font:inherit; font-size:var(--font-size-md); color:var(--dx-text); }.search-box input::placeholder{ color:gray; }.search-icon{ position:absolute; inset-inline-start:1em; top:0; bottom:0; margin:auto 0; width:1em; height:1em; fill:none; stroke:var(--dx-muted); stroke-width:2; pointer-events:none; }.filters__toggle{ background:none; border:0; cursor:pointer; font:inherit; font-size:var(--font-size-sm); display:inline-flex; align-items:center; gap:var(--spacing-2xs); margin-inline:auto; color:var(--dx-text); }.filters__toggle svg{ transition:transform 200ms ease; }.filters__toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }.filter-toggle{ padding:5.65323px 13.3px; cursor:pointer; font:inherit; font-size:var(--font-size-sm); color:#2a332a; border:1px solid rgb(128,128,128); border-radius:8px; background-color:#fff; width:fit-content; transition:border-color 150ms ease, background-color 150ms ease; }.filter-toggle:hover{ border-color:#92b195; }.filter-toggle[data-active]{ background-color:#6d766e; color:#fff; }.filters__panel{ display:flex; flex-wrap:wrap; gap:13.3px; justify-content:center; align-items:flex-start; }.filters__active{ display:flex; flex-wrap:wrap; gap:var(--spacing-2xs); align-items:center; justify-content:center; }.filter-chip{ display:inline-flex; gap:var(--spacing-2xs); background:#6d766e; color:#fff; border-radius:100px; padding:var(--spacing-3xs) 13.3px; font-size:var(--font-size-sm); text-align:center; }.filter-chip__remove{ background:none; border:0; cursor:pointer; font-size:1.1em; line-height:1; color:inherit; padding:0; display:inline-flex; align-items:center; }.filter-chip__remove:hover{ opacity:0.7; }.filters__clear-all{ background:none; border:0; cursor:pointer; font:inherit; font-size:var(--font-size-sm); color:#3b463d; text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:2px; }.ul-total{ display:flex; gap:var(--spacing-md); justify-content:space-between; align-items:center; }.ul-total__count{ font-size:var(--font-size-sm); }.invisible-placeholder{ visibility:hidden; overflow:hidden; }.grid{ display:grid; grid-gap:var(--spacing-2xl); grid-template-columns:repeat(auto-fit, minmax(min(400px,100%), 1fr)); }.uupg__card{ box-sizing:border-box; background:var(--dx-white); color:var(--dx-text); border-radius:35px; display:grid; grid-template-areas:"image header adopted" "image content content" "footer footer footer-right"; grid-template-columns:auto 1fr auto; grid-template-rows:auto auto auto; gap:var(--spacing-md); padding:var(--spacing-md); }.uupg__image{ width:100px; height:100px; object-fit:cover; grid-area:image; border-radius:7.5px; background:#f3f3f1; }.uupg__header{ grid-area:header; }.uupg__name{ margin:0; font-family:inherit; font-size:var(--font-size-lg); font-weight:500; line-height:1.25; }.uupg__country{ margin:0; font-size:var(--font-size-md); }.uupg__country-link{ color:#4e594f; text-decoration:none; }.uupg__country-link:hover{ text-decoration:underline; }.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); white-space:nowrap; border-width:0; }.search-highlight{ background-color:#92b195; color:#fff; }.uupg__match{ margin:0; font-size:var(--font-size-sm); color:var(--dx-muted); }.uupg__content{ display:none; grid-area:content; }.uupg__more-button{ grid-area:footer; align-self:flex-end; display:block; width:fit-content; box-sizing:border-box; padding:10px var(--spacing-2xl); color:#f3f3f1; background:#92b195; border-radius:100px; border:1px solid transparent; line-height:1; text-decoration:none; text-transform:uppercase; font-size:var(--font-size-md); font-family:Figtree,Poppins,-apple-system,"Segoe UI",sans-serif; transition:background-color .3s ease, color .3s ease; cursor:pointer; }.uupg__more-button:hover{ background:#2a332a; color:#f3f3f1; }@media (max-width:576px){ .uupg__card{ grid-template-areas:"image adopted" "header header" "content content" "footer footer"; grid-template-columns:auto 1fr; grid-template-rows:auto auto auto auto; } }.loading, .ul-status{ text-align:center; color:var(--dx-muted); font-size:var(--font-size-md); padding:var(--spacing-md); }.ul-status.ul-failed{ font-weight:600; }.ul-more{ margin-inline:auto; margin-top:var(--spacing-2xl); display:block; width:fit-content; padding:10px var(--spacing-2xl); color:#f3f3f1; background:#92b195; border-radius:100px; border:1px solid transparent; line-height:1; text-transform:uppercase; font-size:var(--font-size-md); font-family:Figtree,Poppins,-apple-system,"Segoe UI",sans-serif; cursor:pointer; }.ul-more:hover{ background:#2a332a; }',"uupgs-list"),(S,z)=>(Z(),oe("div",{class:"ul-root",dir:s.value?"rtl":"ltr",style:Ke(`background-image: url(${e.imagesBase}/worldmap.svg);`)},[E("div",Y_,[E("div",Z_,[z[5]||(z[5]=E("svg",{class:"search-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[E("circle",{cx:"11",cy:"11",r:"7"}),E("path",{d:"M20 20l-3.5-3.5","stroke-linecap":"round"})],-1)),E("label",J_,j(a.value.search),1),es(E("input",{id:"ul-search","onUpdate:modelValue":z[0]||(z[0]=Q=>u.value=Q),type:"search",placeholder:a.value.search,"aria-label":a.value.search},null,8,Q_),[[Yd,u.value]])]),E("button",{type:"button",class:"filters__toggle","aria-expanded":c.value?"true":"false",onClick:z[1]||(z[1]=Q=>c.value=!c.value)},[Re(j(c.value?a.value.hide_filters:a.value.show_filters)+" ",1),z[6]||(z[6]=E("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true"},[E("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,ey),c.value?(Z(),oe("div",ty,[(Z(!0),oe(Se,null,et(k.value,Q=>{var T;return Z(),Ot(Zs,{key:Q.name,label:Q.label,name:Q.name,options:Q.options,value:((T=d.value[Q.name])==null?void 0:T.value)||"",placeholder:a.value.type_to_search,onFilterChange:re,onFilterClear:ge},null,8,["label","name","options","value","placeholder"])}),128))])):Ae("",!0),c.value?(Z(),oe("div",oy,[E("button",{type:"button",class:"filter-toggle","data-active":d.value.adopted?"":void 0,onClick:z[2]||(z[2]=Q=>M("adopted",a.value.adopted_filter))},j(a.value.adopted_filter),9,ny),E("button",{type:"button",class:"filter-toggle","data-active":d.value.engaged?"":void 0,onClick:z[3]||(z[3]=Q=>M("engaged",a.value.engaged_filter))},j(a.value.engaged_filter),9,ay),E("button",{type:"button",class:"filter-toggle","data-active":d.value.exact?"":void 0,onClick:z[4]||(z[4]=Q=>M("exact",a.value.exact_filter))},j(a.value.exact_filter),9,sy)])):Ae("",!0),f.value.length?(Z(),oe("div",ry,[(Z(!0),oe(Se,null,et(f.value,Q=>(Z(),oe("span",{key:Q.name,class:"filter-chip"},[Re(j(Q.label)+" ",1),E("button",{type:"button",class:"filter-chip__remove","aria-label":Q.label,onClick:T=>ge({name:Q.name})},"×",8,iy)]))),128)),E("button",{type:"button",class:"filters__clear-all",onClick:pe},j(a.value.clear_all),1)])):Ae("",!0)]),l.value?Ae("",!0):(Z(),oe("div",ly,[E("div",cy,[i.value?(Z(),oe("span",uy,j(a.value.total),1)):(Z(),oe(Se,{key:0},[Re(j(a.value.total)+": "+j(L.value.length),1)],64))])])),l.value?(Z(),oe("div",py,j(me(o)("People groups could not be loaded. This is a connection problem, not a filter.")),1)):Ae("",!0),E("div",dy,[(Z(!0),oe(Se,null,et(F.value,Q=>(Z(),oe("div",{key:Q.slug,class:"uupg__card"},[Q.image_url?(Z(),oe("img",{key:0,class:"uupg__image",src:Q.image_url,alt:Q.name,loading:"lazy"},null,8,gy)):Ae("",!0),E("div",hy,[Q.name_label?(Z(),oe("h3",{key:0,class:"uupg__name",innerHTML:Q.name_label},null,8,fy)):(Z(),oe("h3",my,j(Q.name),1)),E("p",by,[E("a",{class:"uupg__country-link",href:se(Q)},[Q.country_label?(Z(),oe("span",{key:0,innerHTML:Q.country_label},null,8,_y)):(Z(),oe("span",yy,j(_(Q.country_code)),1))],8,$y),Q.rop1_label?(Z(),oe("span",vy,[z[7]||(z[7]=Re(" (",-1)),E("span",{innerHTML:Q.rop1_label},null,8,xy),z[8]||(z[8]=Re(")",-1))])):_(Q.rop1)?(Z(),oe("span",wy," ("+j(_(Q.rop1))+")",1)):Ae("",!0)]),(Z(!0),oe(Se,null,et(Q.matches||[],(T,U)=>(Z(),oe("p",{key:U,class:"uupg__match"},[E("strong",null,j(T.key),1),z[9]||(z[9]=Re(": ",-1)),E("span",{innerHTML:T.label},null,8,ky)]))),128))]),Q.location_description?(Z(),oe("p",Ly,j(Q.location_description),1)):Ae("",!0),E("a",{class:"uupg__more-button",href:se(Q)},j(a.value.full_profile),9,Py)]))),128)),i.value?(Z(),oe("div",Ay,j(a.value.loading),1)):Ae("",!0)]),N.value?(Z(),oe("button",{key:2,type:"button",class:"ul-more",onClick:H},j(a.value.load_more),1)):Ae("",!0)],12,X_))}};function Rc(e){const t=String(e??"").trim().split(/\s+/).filter(Boolean);if(!t.length)return{head:"",last:""};const o=t[t.length-1];return{head:t.slice(0,-1).join(" "),last:o}}const Cc="#6d766e",Ry={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},Pn={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Mc=Object.keys(Pn);function Cy(e){var o,n,s;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((s=e==null?void 0:e._raw)==null?void 0:s.wagf_region);return Pn[t]||Cc}function My(){const e=["match",["coalesce",["get","region"],""]];for(const t of Mc)e.push(t,Pn[t]);return e.push(Cc),e}const Ty="rgba(120, 128, 134, 0.28)",Tc="36px",Oc=()=>{};function Oy(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Oc;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Oc;const s=f=>f.classList.contains("map-scroll-edge--left");for(const f of n)f.style.background=`linear-gradient(${s(f)?"to right":"to left"}, ${Ty} ${Tc}, transparent ${Tc})`,f.style.opacity="0",f.style.transition="opacity 0.16s ease",f.style.userSelect="none",f.style.webkitUserSelect="none";const a=f=>{f.style.opacity="1"},r=f=>{f.style.opacity="0"},i=()=>n.find(f=>!s(f))||null,l=new Set;let u=!1,c=null;const p=()=>{for(const f of n)l.has(f)||r(f)},d=()=>{const f=i();f&&(a(f),c&&clearTimeout(c),c=setTimeout(p,250))},_=()=>d(),A=f=>{if(!(f.touches&&f.touches.length===1))return;const $=f.target;$&&$.classList&&$.classList.contains("map-scroll-edge")||d()},w=()=>{c&&clearTimeout(c),p()};e.addEventListener("wheel",_,{passive:!0}),e.addEventListener("touchmove",A,{passive:!0}),e.addEventListener("touchend",w,{passive:!0}),e.addEventListener("touchcancel",w,{passive:!0});const v=()=>{u||d()};typeof window<"u"&&window.addEventListener("scroll",v,{passive:!0});const k=[];for(const f of n){const $=()=>{l.add(f),a(f)},m=()=>{l.delete(f),r(f)},C=()=>{u=!0,a(f)},b=()=>{u=!1,r(f)};f.addEventListener("mouseenter",$),f.addEventListener("mouseleave",m),f.addEventListener("touchstart",C,{passive:!0}),f.addEventListener("touchend",b,{passive:!0}),k.push(()=>{f.removeEventListener("mouseenter",$),f.removeEventListener("mouseleave",m),f.removeEventListener("touchstart",C),f.removeEventListener("touchend",b)})}return function(){c&&(clearTimeout(c),c=null),e.removeEventListener("wheel",_),e.removeEventListener("touchmove",A),e.removeEventListener("touchend",w),e.removeEventListener("touchcancel",w),typeof window<"u"&&window.removeEventListener("scroll",v);for(const $ of k)$();for(const $ of n)r($)}}const Ny=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function Fy(e,t="mapbox"){const o=Ny[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function Iy(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const Gy=["mapbox","maplibre"],Nc="mapbox";function Dy(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function Fc(e){const t=Dy(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,s=typeof window<"u"?window.MAP_PROVIDER:void 0,a=String(o||n||s||Nc).toLowerCase().trim();return Gy.includes(a)?a:Nc}const Ic={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function Uy(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function By(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(Uy(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const s=n.setRTLTextPlugin(Ic.maplibre,!0);s&&s.catch&&s.catch(()=>{})}else n.setRTLTextPlugin(Ic.mapbox,null,!0);o=!0}catch{}return o}const zy=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,Gc=new WeakMap;function Vy(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function Dc(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!Vy(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let s=Gc.get(e);s||(s=new Map,Gc.set(e,s));let a=0;for(const r of n.layers){if(r.type!=="symbol"||!r.layout||r.layout["text-field"]==null)continue;const i=r.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!s.has(r.id))continue}else{if(!zy.test(l))continue;s.set(r.id,i)}const u=o==="en"?s.get(r.id):["coalesce",["get","name:"+o],["get","name:latin"],["get","name"]];e.setLayoutProperty(r.id,"text-field",u),a++}return a}catch{return 0}}const zo={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 Uc(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 jy=zo.mapbox.css,Hy="https://tiles.openfreemap.org/styles/liberty",Wy="https://tiles.openfreemap.org/styles/fiord";function Qs(e){var o;const t=((o=zo[e])==null?void 0:o.global)||zo.mapbox.global;return typeof window<"u"?window[t]:void 0}async function qy(e){const t=zo[e]||zo.mapbox;if(Qs(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(Qs(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,s)=>{const a=document.createElement("script");a.src=t.js,a.async=!1,a.addEventListener("load",n,{once:!0}),a.addEventListener("error",()=>s(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(a)})}async function Ky(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=r=>new Promise(i=>setTimeout(i,r)),s=o.querySelector(`link[href="${t}"]`);if(s){if(s.sheet)return;await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0})}),n(2e3)]);return}const a=document.createElement("link");a.rel="stylesheet",a.href=t,await Promise.race([new Promise(r=>{a.addEventListener("load",r,{once:!0}),a.addEventListener("error",r,{once:!0}),o.prepend(a)}),n(2e3)])}function Xy(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Wy:Hy}const Yy=85.0511,er=-2,Zy=0,Jy=-60;function Bc(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Qy(e,t,o,n){if(!e||e<=0||!t||t<=0)return Zy;const s=Math.log2(e/512),a=Bc(n)-Bc(Yy),r=Math.log2(t/(512*a)),i=Math.max(s,r);return Math.max(er,Math.min(i,(o??18)-1))}function e1({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:s=void 0,center:a=[20,10],zoom:r=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:u=void 0,skipWorldFloor:c=!1,maxZoom:p=18,pitch:d=0,bearing:_=0,renderWorldCopies:A=!0,showEdgeBorders:w=!0,southCutoff:v=Jy,maxBounds:k=void 0}){const f=Kn(null),$=be(!1);let m=null,C=null,b=null,O=null;try{O=Ve("profileConfig",null)}catch{}s=s||Fc(O);const x=s==="maplibre";let L=null;try{L=Ve("lang",null)}catch{}const F=()=>{const M=L&&typeof L=="object"&&"value"in L?L.value:L;if(typeof M=="string"&&M)return M;const re=O&&typeof O=="object"&&"value"in O?O.value:O;if(re&&(re.locale||re.lang))return String(re.locale||re.lang);try{const ge=new URLSearchParams(location.search);return ge.get("lang")||ge.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function N(){var V;const M=Fy(o,s),re=M.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const ge=()=>!e.value;if(await qy(s),ge())return;const pe=Qs(s);if(!pe){console.error(`[useMapInstance] ${x?"maplibregl":"mapboxgl"} is not available. Add the ${x?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(By(pe),!x){if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await Ky(e.value,x?zo.maplibre.css:jy),ge()||(await new Promise(ee=>requestAnimationFrame(ee)),ge()))return;const se=e.value,S=se.clientWidth,z=se.clientHeight;if(S===0||z===0){console.error(`[useMapInstance] Container has ZERO dimensions (${S}×${z}). Map will be invisible. Check that parent elements have CSS sizing.`);let ee=se.parentElement,ne=0;for(;ee&&ne<5;)ee=ee.parentElement,ne++}const Q=t;x||(pe.accessToken=Q);const T=()=>typeof window<"u"&&window.innerWidth>=1024,U=(ee,ne)=>{if(c)return typeof u=="number"?u:er;if(!T())return er;const ae=Qy(ee,ne,p,v);return typeof u=="number"?Math.max(u,ae):ae},K=U(se.clientWidth,se.clientHeight),de=M.lightPreset||(()=>{var ee;try{const ne=typeof n=="function"?n():n;return(ee=ne==null?void 0:ne.basemap)==null?void 0:ee.lightPreset}catch{return}})();if(x){f.value=new pe.Map({container:e.value,style:Xy(re,de),center:a,zoom:r,minZoom:K,maxZoom:p,pitch:d,bearing:_,dragRotate:!1,renderWorldCopies:A,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...k?{maxBounds:k}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Uc(f.value);try{e.value.__doxaMap=f.value}catch{}}else{const ee=typeof n=="function"?n():n;f.value=new pe.Map({accessToken:Q,container:e.value,style:re,...ee?{config:ee}:{},center:a,zoom:r,minZoom:K,maxZoom:p,pitch:d,bearing:_,dragRotate:!1,touchPitch:!1,renderWorldCopies:A,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...k?{maxBounds:k}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Uc(f.value);try{e.value.__doxaMap=f.value}catch{}}try{let ee=!1;f.value.on("error",ne=>{var y,R;const ae=((y=ne==null?void 0:ne.error)==null?void 0:y.status)??(ne==null?void 0:ne.status),ve=String(((R=ne==null?void 0:ne.error)==null?void 0:R.url)||(ne==null?void 0:ne.sourceId)||"");ae!==401&&ae!==403||ee||(ee=!0,console.error(`[doxa-maps] Mapbox returned ${ae} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(ve?` First failing request: ${ve.slice(0,120)}`:"")))})}catch{}try{f.value.touchZoomRotate.disableRotation()}catch{}b=Oy(((V=e.value)==null?void 0:V.parentElement)||null,{enabled:w});let $e=K,_e=null;m=()=>{const ee=f.value;if(!ee)return;const ne=U(se.clientWidth,se.clientHeight);ne!==$e&&($e=ne,ee.setMinZoom(ne)),ee.getZoom(){_e=null;const ae=f.value;if(!ae)return;const ve=U(se.clientWidth,se.clientHeight);if(ae.getZoom(){_e&&(clearTimeout(_e),_e=null)},f.value.on("resize",m),typeof window<"u"&&(window.addEventListener("resize",m),window.addEventListener("orientationchange",m)),f.value.on("style.load",()=>{if(f.value&&Dc(f.value,F()),M.paint&&f.value){const ee=Iy(f.value,M.paint);console.info("[useMapInstance] style paint applied ("+s+"):",ee.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ee;(ee=f.value)==null||ee.resize(),f.value&&f.value.setMinZoom(U(se.clientWidth,se.clientHeight)),$.value=!0})})}function H(){if(f.value){if(m&&(f.value.off("resize",m),typeof window<"u"&&(window.removeEventListener("resize",m),window.removeEventListener("orientationchange",m)),m=null),C){try{C()}catch{}C=null}b&&(b(),b=null),f.value.remove(),f.value=null,$.value=!1}}if(L&&typeof L=="object"&&"value"in L)try{qe(L,()=>{f.value&&$.value&&Dc(f.value,F())})}catch{}return{map:f,isMapReady:$,initializeMap:N,destroy:H}}const t1={class:"rcm"},o1={key:0,class:"rcm__note",role:"status"},n1={key:1,class:"rcm__legend"},zc=100,Vc=.42,Ma="rcm-people-groups",Vo="rcm-country-boundaries",a1=.92,s1={__name:"RegionCountryMap",props:{countryCodes:{type:Array,default:()=>[]},points:{type:Array,default:()=>[]},colorMode:{type:String,default:"in-country"},highlightRegion:{type:String,default:""},selectOnPinClick:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:2},bounds:{type:Array,default:null},prayBaseUrl:{type:String,default:"https://pray.doxa.life"},researchUrl:{type:String,default:"https://doxa.life/research/"}},emits:["pick-country"],setup(e,{emit:t}){const{t:o,locale:n}=Ln(),s=t,a=e,r=Ve("profileConfig",be(null)),i=Fc(r)==="maplibre",l=Ve("mapboxToken",be("")),u=le(()=>(typeof l=="string"?l:l==null?void 0:l.value)||""),c={brand:"#3b463d",muted:"#6d766e",inCountry:"#73A17F",prayerFull:"#92b195",prayerPartial:"#f0c64a",prayerNone:"#4e594f",outside:"#a59d92"},p=be(null),d=be(!1),_=le(()=>{const S=new Set(a.countryCodes);return{type:"FeatureCollection",features:a.points.filter(z=>Number.isFinite(z.lng)&&Number.isFinite(z.lat)).map(z=>({type:"Feature",geometry:{type:"Point",coordinates:[z.lng,z.lat]},properties:{name:z.name||"",slug:z.slug||"",country:z.country||"",inCountry:S.has(z.code),committed:Number(z.committed)||0,region:z.region||"",code:z.code||"",population:Number(z.population)||0,rop1:z.rop1||"",religion:z.religion||"",description:z.description||"",imageUrl:z.imageUrl||""}}))}}),A={padding:40,maxZoom:6},{map:w,isMapReady:v,initializeMap:k,destroy:f}=e1({containerRef:p,accessToken:u.value,style:"mapbox://styles/mapbox/light-v11",center:a.center,zoom:a.zoom,maxZoom:12,bounds:a.bounds||void 0,fitBoundsOptions:A,showEdgeBorders:!0}),$=Cy({}),m=le(()=>{const S=new Map;for(const Q of a.points)!Q||!Q.code||!Q.region||S.has(Q.code)||S.set(Q.code,Q.region);if(!S.size)return $;const z=["match",["get","iso_3166_1_alpha_3"]];for(const[Q,T]of S)z.push(Q,Pn[T]||$);return z.push($),z});function C(){return["all",["in",["get","iso_3166_1_alpha_3"],["literal",a.countryCodes]],["any",["==",["get","worldview"],"all"],["in","US",["get","worldview"]]]]}function b(){const S=["!",["get","inCountry"]],z=[">=",["get","committed"],zc],Q=[">",["get","committed"],0],T=a.highlightRegion,U=["==",["get","region"],T];return a.colorMode==="region"?{color:My(),sortKey:T?["case",U,2,1]:1,opacity:T?["case",U,1,.25]:.9,radius:T?["case",U,["interpolate",["linear"],["zoom"],2,4.5,6,8],["interpolate",["linear"],["zoom"],2,2.5,6,5]]:["interpolate",["linear"],["zoom"],2,3,6,6.5]}:{color:a.colorMode==="prayer"?["case",S,c.outside,z,c.prayerFull,Q,c.prayerPartial,c.prayerNone]:["case",["get","inCountry"],c.inCountry,c.muted],sortKey:a.colorMode==="prayer"?["case",S,0,z,3,Q,2,1]:["case",["get","inCountry"],1,0],opacity:["case",["get","inCountry"],1,.75],radius:["interpolate",["linear"],["zoom"],2,3,6,6.5]}}function O(){const S=w.value;if(!S)return;const{color:z,sortKey:Q,opacity:T,radius:U}=b();if(!S.getSource(Vo)){i?(S.addSource(Vo,{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${Ra(r==null?void 0:r.value)}/boundaries/world-adm0.geojson`).then(de=>de.json()).then(de=>{for(const _e of de.features||[])_e.properties&&_e.properties.iso3&&(_e.properties.iso_3166_1_alpha_3=_e.properties.iso3);const $e=w.value&&w.value.getSource(Vo);$e&&$e.setData(de)}).catch(de=>console.warn("[rcm] country boundaries failed to load",de))):S.addSource(Vo,{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"});const K=i?{}:{"source-layer":"country_boundaries"};S.addLayer({id:"rcm-focus-fill",type:"fill",source:Vo,...K,filter:C(),paint:{"fill-color":a.colorMode==="region"?m.value:c.brand,"fill-opacity":a.colorMode==="region"?Vc:.12}}),S.addLayer({id:"rcm-focus-outline",type:"line",source:Vo,...K,filter:C(),paint:{"line-color":c.brand,"line-width":2}})}S.getSource(Ma)||(S.addSource(Ma,{type:"geojson",data:_.value}),S.addLayer({id:"rcm-pins",type:"circle",source:Ma,layout:{"circle-sort-key":Q},paint:{"circle-radius":U,"circle-color":z,"circle-opacity":T,"circle-stroke-width":1,"circle-stroke-color":"#ffffff"}}),S.on("click","rcm-pins",L),S.on("mouseenter","rcm-pins",()=>{S.getCanvas().style.cursor="pointer"}),S.on("mouseleave","rcm-pins",()=>{S.getCanvas().style.cursor=""}))}let x=null;function L(S){const z=S.features&&S.features[0];if(!z)return;if(a.selectOnPinClick){const K=z.properties||{};s("pick-country",{code:K.code||"",region:K.region||"",name:K.name||""});return}const Q=window.mapboxgl;if(!Q)return;const T=z.properties||{},U=N(T);x&&x.remove(),x=new Q.Popup({closeButton:!0,maxWidth:"264px",offset:12}).setLngLat(z.geometry.coordinates).setHTML(U).addTo(w.value)}function F(S){return String(S??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function N(S){const z=F(S.name||""),Q=[S.country,S.rop1].filter(Boolean).map(F).join(" · "),T=Number(S.population)>0?Number(S.population).toLocaleString(n.value||"en"):"",U=`${a.researchUrl}${S.slug||""}`,K=`${String(a.prayBaseUrl).replace(/\/+$/,"")}/${S.slug||""}?source=doxalife`,de=[];return T&&de.push(`
${F(o("Population"))}
${T}
`),S.religion&&de.push(`
${F(o("Religion"))}
${F(S.religion)}
`),de.push(`
${F(o("Intercessors"))}
${Number(S.committed)||0}/${zc}
`),`
${S.imageUrl?`${z}`:""}
${z}
${Q?`
${Q}
`:""} - ${pe.length?`
${pe.join("")}
`:""} + ${de.length?`
${de.join("")}
`:""} ${S.description?`

${F(S.description)}

`:""}
-
`}function H(S){if(a.colorMode!=="region")return a.zoom;let z=0,Q=0;try{const K=S.getContainer();z=(K==null?void 0:K.clientWidth)||0,Q=(K==null?void 0:K.clientHeight)||0}catch{z=0}if(!z)return a.zoom;const T=Math.max(0,Math.min(2,Math.log2(z/512)));if(!Q)return T;const U=S.getZoom();try{const K=S.getCenter(),pe=Math.PI/180,be=180/Math.PI,_e=K.lat*pe,j=[];for(let R=0;R<12;R++){const P=R/12*2*Math.PI,B=Math.asin(Math.cos(_e)*Math.cos(P)),J=K.lng+Math.atan2(Math.sin(P)*Math.cos(_e),-Math.sin(_e)*Math.sin(B))*be;j.push([J,B*be])}const ee=R=>{S.setZoom(R);const P=S.project([K.lng,K.lat]);let B=0;for(const J of j){const te=S.project(J),ue=Math.hypot(te.x-P.x,te.y-P.y);Number.isFinite(ue)&&ue>B&&(B=ue)}return B*2},ne=Math.min(z,Q)*a1;let ae=0,ve=5;if(ee(ve){Q||(Q=!0,S.off("style.load",T),S.off("load",T),z())};if(S.isStyleLoaded&&S.isStyleLoaded())return T();S.on("style.load",T),S.on("load",T),setTimeout(()=>{try{S.getStyle&&S.getStyle()&&S.getStyle().layers&&T()}catch{}},1500)}xt(async()=>{try{if(await k(),!w.value){p.value=!0;return}const S=typeof window<"u"&&(window.mapboxgl||window.maplibregl);if(S){try{w.value.addControl(new S.NavigationControl({showCompass:!1}),"top-right")}catch(z){console.warn("[RegionCountryMap] NavigationControl unavailable:",z&&z.message)}try{w.value.addControl(new S.FullscreenControl,"top-right")}catch(z){console.warn("[RegionCountryMap] FullscreenControl unavailable:",z&&z.message)}}ge(w.value,()=>{O(),re(),se()})}catch(S){console.error("[RegionCountryMap] init failed:",S),p.value=!0}}),qe(v,S=>{S&&typeof window<"u"&&(window.__rcmMap=w.value)});let de=null;function se(){typeof ResizeObserver>"u"||!d.value||(de=new ResizeObserver(()=>{const S=w.value;if(!(!S||a.colorMode!=="region"||a.bounds))try{S.setZoom(H(S))}catch{}}),de.observe(d.value))}return ft(()=>{if(de)try{de.disconnect()}catch{}x&&x.remove();try{delete window.__rcmMap}catch{}f()}),qe(()=>[a.countryCodes,a.bounds,a.center,a.zoom,a.points,a.colorMode,a.highlightRegion],re,{deep:!0}),Pt(".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}.rcm, .rcm *, .rcm *::before, .rcm *::after{ box-sizing:border-box; }.rcm{ display:block; position:relative; width:100%; min-height:780px; aspect-ratio:16/9; overflow:hidden; border-radius:inherit; }@media (max-width:768px){ .rcm{ min-height:0; aspect-ratio:1/2; } }.rcm__canvas{ position:absolute; inset:0; }.rcm__note{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:24px; color:#6d766e; font-size:15.625px; background:#f3f3f1; }.rcm__legend{ position:absolute; inset-inline-start:10px; bottom:28px; z-index:2; display:flex; flex-direction:column; gap:4px; padding:8px 10px; border-radius:8px; background:rgba(255,255,255,0.92); box-shadow:0 2px 8px rgba(0,0,0,0.15); font-size:12px; font-weight:600; color:#1f1f1f; pointer-events:none; }.rcm__legend span{ display:inline-flex; align-items:center; gap:6px; }.rcm__legend i{ display:inline-block; width:10px; height:10px; border-radius:100px; border:1px solid #ffffff; box-shadow:0 0 0 1px rgba(0,0,0,0.15); }.mapboxgl-popup-content:has(.cm-popup){ padding:12px; border-radius:10px; box-shadow:0 4px 16px rgba(0,0,0,0.18); }.cm-popup{ width:240px; }.cm-popup__img{ display:block; width:150px; aspect-ratio:4/5; object-fit:cover; border-radius:8px; margin:0 auto 8px; }.cm-popup__body{ padding:0; }.cm-popup__name{ font-weight:700; font-size:15px; line-height:1.25; color:var(--color-black, #1f1f1f); }.cm-popup__sub{ margin-top:2px; font-size:12px; color:var(--color-brand-lighter, #6d766e); }.cm-popup__stats{ margin:8px 0 0; display:flex; flex-direction:column; gap:3px; }.cm-popup__stats > div{ display:flex; justify-content:space-between; gap:10px; font-size:12px; }.cm-popup__stats dt{ margin:0; color:var(--color-brand-lighter, #6d766e); }.cm-popup__stats dd{ margin:0; text-align:right; font-weight:600; color:var(--color-black, #1f1f1f); }.cm-popup__desc{ margin:8px 0 0; font-size:12px; line-height:1.45; color:#555; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }.cm-popup__actions{ display:flex; gap:6px; margin-top:10px; }.cm-popup__btn{ flex:1; padding:6px 8px; border-radius:6px; font-size:12px; font-weight:600; text-align:center; text-decoration:none; background:#ecf0f1; color:var(--color-black, #1f1f1f); }.cm-popup__btn--primary{ background:var(--color-brand, #3b463d); color:#fff; }","region-country-map"),(S,z)=>(Z(),oe("div",t1,[E("div",{ref_key:"mapContainer",ref:d,class:"rcm__canvas"},null,512),z[0]||(z[0]=E("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),z[1]||(z[1]=E("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),p.value?(Z(),oe("p",o1,V(me(o)("The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.")),1)):Ae("",!0),e.colorMode==="prayer"&&!p.value?(Z(),oe("div",n1,[E("span",null,[E("i",{style:Ke({background:c.prayerFull})},null,4),Re(V(me(o)("100+ People Praying")),1)]),E("span",null,[E("i",{style:Ke({background:c.prayerPartial})},null,4),Re(V(me(o)("1+ People Praying")),1)]),E("span",null,[E("i",{style:Ke({background:c.prayerNone})},null,4),Re(V(me(o)("No One Praying")),1)]),E("span",null,[E("i",{style:Ke({background:c.outside})},null,4),Re(V(me(o)("Outside this region")),1)])])):Ae("",!0)]))}},r1=[{value:"AFG",label:"Afghanistan"},{value:"ALB",label:"Albania"},{value:"DZA",label:"Algeria"},{value:"ASM",label:"American Samoa"},{value:"AND",label:"Andorra"},{value:"AGO",label:"Angola"},{value:"AIA",label:"Anguilla"},{value:"ATG",label:"Antigua and Barbuda"},{value:"ARG",label:"Argentina"},{value:"ARM",label:"Armenia"},{value:"ABW",label:"Aruba"},{value:"AUS",label:"Australia"},{value:"AUT",label:"Austria"},{value:"AZE",label:"Azerbaijan"},{value:"BHR",label:"Bahrain"},{value:"BGD",label:"Bangladesh"},{value:"BRB",label:"Barbados"},{value:"BLR",label:"Belarus"},{value:"BEL",label:"Belgium"},{value:"BLZ",label:"Belize"},{value:"BEN",label:"Benin"},{value:"BMU",label:"Bermuda"},{value:"BTN",label:"Bhutan"},{value:"BOL",label:"Bolivia"},{value:"BES",label:"Bonaire, Sint Eustatius, and Saba"},{value:"BIH",label:"Bosnia and Herzegovina"},{value:"BWA",label:"Botswana"},{value:"BRA",label:"Brazil"},{value:"BRN",label:"Brunei"},{value:"BGR",label:"Bulgaria"},{value:"BFA",label:"Burkina Faso"},{value:"BDI",label:"Burundi"},{value:"CPV",label:"Cabo Verde"},{value:"KHM",label:"Cambodia"},{value:"CMR",label:"Cameroon"},{value:"CAN",label:"Canada"},{value:"CYM",label:"Cayman Islands"},{value:"CAF",label:"Central African Republic"},{value:"TCD",label:"Chad"},{value:"CHL",label:"Chile"},{value:"CHN",label:"China"},{value:"CXR",label:"Christmas Island"},{value:"CCK",label:"Cocos (Keeling) Islands"},{value:"COL",label:"Colombia"},{value:"COM",label:"Comoros"},{value:"COK",label:"Cook Islands"},{value:"CRI",label:"Costa Rica"},{value:"CIV",label:"Côte d’Ivoire"},{value:"HRV",label:"Croatia"},{value:"CUB",label:"Cuba"},{value:"CUW",label:"Curaçao"},{value:"CYP",label:"Cyprus"},{value:"DNK",label:"Denmark"},{value:"DJI",label:"Djibouti"},{value:"DMA",label:"Dominica"},{value:"DOM",label:"Dominican Republic"},{value:"ECU",label:"Ecuador"},{value:"EGY",label:"Egypt"},{value:"SLV",label:"El Salvador"},{value:"GNQ",label:"Equatorial Guinea"},{value:"ERI",label:"Eritrea"},{value:"EST",label:"Estonia"},{value:"SWZ",label:"Eswatini"},{value:"ETH",label:"Ethiopia"},{value:"FLK",label:"Falkland Islands (Islas Malvinas)"},{value:"FRO",label:"Faroe Islands"},{value:"FJI",label:"Fiji"},{value:"FIN",label:"Finland"},{value:"FRA",label:"France"},{value:"GUF",label:"French Guiana"},{value:"PYF",label:"French Polynesia"},{value:"GAB",label:"Gabon"},{value:"GEO",label:"Georgia"},{value:"DEU",label:"Germany"},{value:"GHA",label:"Ghana"},{value:"GIB",label:"Gibraltar"},{value:"GRC",label:"Greece"},{value:"GRL",label:"Greenland"},{value:"GRD",label:"Grenada"},{value:"GLP",label:"Guadeloupe"},{value:"GUM",label:"Guam"},{value:"GTM",label:"Guatemala"},{value:"GGY",label:"Guernsey"},{value:"GIN",label:"Guinea"},{value:"GNB",label:"Guinea-Bissau"},{value:"GUY",label:"Guyana"},{value:"HTI",label:"Haiti"},{value:"HND",label:"Honduras"},{value:"HKG",label:"Hong Kong"},{value:"HUN",label:"Hungary"},{value:"ISL",label:"Iceland"},{value:"IND",label:"India"},{value:"IDN",label:"Indonesia"},{value:"IRN",label:"Iran"},{value:"IRQ",label:"Iraq"},{value:"IRL",label:"Ireland"},{value:"IMN",label:"Isle of Man"},{value:"ISR",label:"Israel"},{value:"ITA",label:"Italy"},{value:"JAM",label:"Jamaica"},{value:"JPN",label:"Japan"},{value:"JEY",label:"Jersey"},{value:"JOR",label:"Jordan"},{value:"KAZ",label:"Kazakhstan"},{value:"KEN",label:"Kenya"},{value:"KIR",label:"Kiribati"},{value:"KOS",label:"Kosovo"},{value:"KWT",label:"Kuwait"},{value:"KGZ",label:"Kyrgyzstan"},{value:"LAO",label:"Laos"},{value:"LVA",label:"Latvia"},{value:"LBN",label:"Lebanon"},{value:"LSO",label:"Lesotho"},{value:"LBR",label:"Liberia"},{value:"LBY",label:"Libya"},{value:"LIE",label:"Liechtenstein"},{value:"LTU",label:"Lithuania"},{value:"LUX",label:"Luxembourg"},{value:"MAC",label:"Macao"},{value:"MDG",label:"Madagascar"},{value:"MWI",label:"Malawi"},{value:"MYS",label:"Malaysia"},{value:"MLI",label:"Mali"},{value:"MLT",label:"Malta"},{value:"MTQ",label:"Martinique"},{value:"MRT",label:"Mauritania"},{value:"MUS",label:"Mauritius"},{value:"MYT",label:"Mayotte"},{value:"MEX",label:"Mexico"},{value:"MDA",label:"Moldova"},{value:"MCO",label:"Monaco"},{value:"MNG",label:"Mongolia"},{value:"MNE",label:"Montenegro"},{value:"MSR",label:"Montserrat"},{value:"MAR",label:"Morocco"},{value:"MOZ",label:"Mozambique"},{value:"MMR",label:"Myanmar"},{value:"NAM",label:"Namibia"},{value:"NRU",label:"Nauru"},{value:"NPL",label:"Nepal"},{value:"NCL",label:"New Caledonia"},{value:"NZL",label:"New Zealand"},{value:"NIC",label:"Nicaragua"},{value:"NER",label:"Niger"},{value:"NGA",label:"Nigeria"},{value:"NIU",label:"Niue"},{value:"NFK",label:"Norfolk Island"},{value:"PRK",label:"North Korea"},{value:"MKD",label:"North Macedonia"},{value:"NOR",label:"Norway"},{value:"OMN",label:"Oman"},{value:"PAK",label:"Pakistan"},{value:"PLW",label:"Palau"},{value:"PSE",label:"Palestine"},{value:"PAN",label:"Panama"},{value:"PNG",label:"Papua New Guinea"},{value:"PRY",label:"Paraguay"},{value:"PER",label:"Peru"},{value:"POL",label:"Poland"},{value:"PRT",label:"Portugal"},{value:"PRI",label:"Puerto Rico"},{value:"QAT",label:"Qatar"},{value:"REU",label:"Reunion"},{value:"ROU",label:"Romania"},{value:"RWA",label:"Rwanda"},{value:"BLM",label:"Saint Barthelemy"},{value:"SHN",label:"Saint Helena, Ascension, and Tristan da Cunha"},{value:"KNA",label:"Saint Kitts and Nevis"},{value:"LCA",label:"Saint Lucia"},{value:"MAF",label:"Saint Martin"},{value:"SPM",label:"Saint Pierre and Miquelon"},{value:"VCT",label:"Saint Vincent and the Grenadines"},{value:"WSM",label:"Samoa"},{value:"SMR",label:"San Marino"},{value:"STP",label:"Sao Tome and Principe"},{value:"SAU",label:"Saudi Arabia"},{value:"SEN",label:"Senegal"},{value:"SRB",label:"Serbia"},{value:"SYC",label:"Seychelles"},{value:"SLE",label:"Sierra Leone"},{value:"SGP",label:"Singapore"},{value:"SXM",label:"Sint Maarten"},{value:"SVK",label:"Slovakia"},{value:"SVN",label:"Slovenia"},{value:"SOM",label:"Somalia"},{value:"ZAF",label:"South Africa"},{value:"KOR",label:"South Korea"},{value:"SSD",label:"South Sudan"},{value:"ESP",label:"Spain"},{value:"LKA",label:"Sri Lanka"},{value:"SDN",label:"Sudan"},{value:"SUR",label:"Suriname"},{value:"SJM",label:"Svalbard"},{value:"SWE",label:"Sweden"},{value:"CHE",label:"Switzerland"},{value:"SYR",label:"Syria"},{value:"TWN",label:"Taiwan"},{value:"TJK",label:"Tajikistan"},{value:"TZA",label:"Tanzania"},{value:"THA",label:"Thailand"},{value:"BHS",label:"The Bahamas"},{value:"VGB",label:"the British Virgin Islands"},{value:"CZE",label:"the Czech Republic"},{value:"COD",label:"the Democratic Republic of the Congo"},{value:"FSM",label:"the Federated States of Micronesia"},{value:"GMB",label:"The Gambia"},{value:"MDV",label:"the Maldives"},{value:"MHL",label:"the Marshall Islands"},{value:"NLD",label:"the Netherlands"},{value:"MNP",label:"the Northern Mariana Islands"},{value:"PHL",label:"the Philippines"},{value:"PCN",label:"the Pitcairn Islands"},{value:"COG",label:"the Republic of the Congo"},{value:"RUS",label:"the Russian Federation"},{value:"SLB",label:"the Solomon Islands"},{value:"TCA",label:"the Turks and Caicos Islands"},{value:"ARE",label:"the United Arab Emirates"},{value:"GBR",label:"the United Kingdom"},{value:"USA",label:"the United States"},{value:"VIR",label:"the Virgin Islands"},{value:"TLS",label:"Timor-Leste"},{value:"TGO",label:"Togo"},{value:"TKL",label:"Tokelau"},{value:"TON",label:"Tonga"},{value:"TTO",label:"Trinidad and Tobago"},{value:"TUN",label:"Tunisia"},{value:"TUR",label:"Turkiye"},{value:"TKM",label:"Turkmenistan"},{value:"TUV",label:"Tuvalu"},{value:"UGA",label:"Uganda"},{value:"UKR",label:"Ukraine"},{value:"URY",label:"Uruguay"},{value:"UZB",label:"Uzbekistan"},{value:"VUT",label:"Vanuatu"},{value:"VAT",label:"Vatican City"},{value:"VEN",label:"Venezuela"},{value:"VNM",label:"Vietnam"},{value:"WLF",label:"Wallis and Futuna"},{value:"ESH",label:"Western Sahara"},{value:"YEM",label:"Yemen"},{value:"ZMB",label:"Zambia"},{value:"ZWE",label:"Zimbabwe"}],Vc="country_code,wagf_region,latitude,longitude,population,adopted_by_churches,people_committed,engagement_status",i1=100,l1=new Map(r1.map(e=>[e.value,e.label]));function Hc(e){return String(e||"").normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/['’.]/g,"").replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function c1(e,t){return Hc(l1.get(e)||t||e)}function u1(e){return Hc(e)||"other"}function Ta(e){const t=typeof e=="string"?parseFloat(e):e??0;return Number.isNaN(t)?0:t}function An(){return{count:0,population:0,adopted:0,engaged:0,withPrayer:0,withFullPrayer:0,peopleCommitted:0}}function Wc(e,t){var n;const o=Ta(t.people_committed);e.count++,e.population+=Ta(t.population),(t.adopted_by_churches??0)>0&&e.adopted++,((n=t.engagement_status)==null?void 0:n.value)==="engaged"&&e.engaged++,o>0&&e.withPrayer++,o>=i1&&e.withFullPrayer++,e.peopleCommitted+=o}function qc(e,t){const o=typeof t.latitude=="string"?parseFloat(t.latitude):t.latitude,n=typeof t.longitude=="string"?parseFloat(t.longitude):t.longitude;o!=null&&n!=null&&!Number.isNaN(o)&&!Number.isNaN(n)&&(e.lats.push(o),e.lngs.push(n))}function tr(e){return Math.round(e*100)/100}function Kc(e){const t=Math.sin(e*Math.PI/180);return Math.log((1+t)/(1-t))/2}function d1(e,t,o,n){const c=Math.max((Kc(n)-Kc(t))/Math.PI,1e-6);let d=o-e;d<0&&(d+=360);const p=Math.max(d/360,1e-6),_=Math.log2(560/512/c),A=Math.log2(1e3/512/p);let w=Math.min(_,A,6)-.6;return w=Math.max(1.6,Math.min(w,6)),{center:[tr((e+o)/2),tr((t+n)/2)],zoom:tr(w)}}function p1(e){const t=[...e].sort((a,r)=>a-r),o=t.length-1;let n=o,s=t[0]+360-t[o];for(let a=0;as&&(s=r,n=a)}return n===o?[t[0],t[o]]:[t[n+1],t[n]+360]}const g1={center:[20,10],zoom:1.8,bounds:null};function Xc(e){if(e.lats.length===0)return g1;const[t,o]=p1(e.lngs),n=Math.min(...e.lats),s=Math.max(...e.lats);return{...d1(t,n,o,s),bounds:[[t,n],[o,s]]}}function h1(e){var n,s;const t=new Map;for(const a of e){const r=(n=a.country_code)==null?void 0:n.value;if(!r)continue;let i=t.get(r);i||(i={name:a.country_code.label,region:{value:"",label:""},pins:{lats:[],lngs:[]},stats:An()},t.set(r,i)),!i.region.value&&((s=a.wagf_region)!=null&&s.value)&&(i.region=a.wagf_region),Wc(i.stats,a),qc(i.pins,a)}const o=[];for(const[a,r]of t){const i=Xc(r.pins);o.push({slug:c1(a,r.name),code:a,name:r.name,region:r.region,center:i.center,zoom:i.zoom,bounds:i.bounds,...r.stats})}return o.sort((a,r)=>a.name.localeCompare(r.name)),o}function Yc(e){var a;const t=h1(e),o=new Map(t.map(r=>[r.code,u1(r.region.value)])),n=new Map;for(const r of t){const i=o.get(r.code);let l=n.get(i);l||(l={value:r.region.value,label:r.region.label,countries:[],pins:{lats:[],lngs:[]},stats:An()},n.set(i,l)),l.countries.push(r)}for(const r of e){const i=(a=r.country_code)==null?void 0:a.value;if(!i)continue;const l=n.get(o.get(i));Wc(l.stats,r),qc(l.pins,r)}const s=[];for(const[r,i]of n){const l=Xc(i.pins);s.push({slug:r,value:i.value,label:i.label,countryCount:i.countries.length,center:l.center,zoom:l.zoom,bounds:l.bounds,countries:i.countries,...i.stats})}return s.sort((r,i)=>r.label.localeCompare(i.label)),s}const f1=["lang","dir"],m1=["aria-label"],$1={key:0,class:"rd-status"},b1={key:1,class:"rd-status rd-failed",role:"status"},_1={class:"rd-head"},y1={key:0,class:"rd-backlink"},v1={class:"rd-title"},x1={class:"rd-title__last"},w1={key:1,class:"rd-summary"},k1={key:2,class:"rd-summary"},L1={key:3,class:"rd-prompt"},P1={key:0,class:"rd-chooser"},A1={key:1,class:"rd-stats"},S1=["data-len"],E1={class:"rd-stat__label"},R1={class:"rd-mapblock"},C1={key:0,class:"rd-mapnote"},M1={class:"rd-mapframe"},T1=["aria-label"],O1=["aria-label","onClick","onMouseenter","onFocus"],N1={class:"rd-regionkey__label"},F1={class:"rd-regionkey__count"},I1={key:2,class:"rd-regionkey__hint"},D1={key:2,class:"rd-switcher"},G1={class:"rd-card rd-card--secondary rd-goal-card"},U1={class:"rd-h2"},B1={class:"rd-big"},z1={class:"rd-big-label"},j1={class:"rd-stack-xs"},V1=["aria-label"],H1={class:"rd-legend"},W1={class:"rd-goal"},q1={class:"rd-card rd-goal-card"},K1={class:"rd-h2"},X1={class:"rd-big"},Y1={class:"rd-big-label"},Z1={class:"rd-bar"},J1={class:"rd-goal"},Q1={class:"rd-card rd-goal-card"},ev={class:"rd-h2"},tv={class:"rd-big"},ov={class:"rd-big-label"},nv={class:"rd-bar"},av={class:"rd-goal"},sv={key:3,class:"rd-section"},rv={class:"rd-h2 rd-h2--start"},iv={class:"rd-table-scroll"},lv={class:"rd-table"},cv=["onClick"],Zc="doxa-regions-dashboard:select",uv=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"region-dashboards",props:{profileConfig:{type:String,default:""},prayBaseUrl:{type:String,default:""},languageCode:{type:String,default:""}},setup(e){const t=e,o=je("profileConfig",null),n=le(()=>{const D=o&&(o.value!==void 0?o.value:o);if(D&&typeof D=="object")return D;if(!t.profileConfig)return{};try{return JSON.parse(t.profileConfig)||{}}catch{return{}}}),s=le(()=>t.prayBaseUrl||n.value.prayBaseUrl||"https://pray.doxa.life"),a=le(()=>n.value.researchUrl||"https://doxa.life/research/"),r=le(()=>t.languageCode||n.value.languageCode||n.value.locale||n.value.lang||""),i=le(()=>n.value.instanceId||""),l=le(()=>n.value.assetsBase||"./assets"),u=Ra(n.value);go("Bebas Neue",Pc,u),go("Poppins",Sc,u),go("Figtree",Ac,u),go("Oswald",Ec,u);const{t:c,tf:d,locale:p}=Ln(),_=c,A=le(()=>{var D;return Rc(((D=F.value)==null?void 0:D.title)||"")}),w=le(()=>Ea.has(p.value)),v=$e([]),k=$e([]),f=$e(!0),b=$e(!1),m=$e({regionSlug:n.value.regionSlug||"",countrySlug:n.value.countrySlug||""}),C="name,slug,rop1,religion,location_description,image_url,has_photo,"+Vc;function $(D){const Y=Number(D||0);try{return Y.toLocaleString(`${p.value||"en"}-u-nu-latn`)}catch{return Y.toLocaleString("en-US")}}function O(D){const Y=String(D).length;return Y>=12?"xlong":Y>=10?"long":""}const x=le(()=>v.value.find(D=>D.slug===m.value.regionSlug)||null),L=le(()=>{if(!m.value.countrySlug)return null;const D=x.value;return(D?D.countries:v.value.flatMap(X=>X.countries)).find(X=>X.slug===m.value.countrySlug)||null}),F=le(()=>{var Y;if(L.value){const X=L.value;return{kind:"country",title:X.name,context:((Y=X.region)==null?void 0:Y.label)||"Other",stats:X}}if(x.value){const X=x.value;return{kind:"region",title:X.label||"Other",context:`${$(X.countryCount)} countries`,stats:X}}const D=An();for(const X of v.value)D.count+=X.count,D.population+=X.population,D.adopted+=X.adopted,D.engaged+=X.engaged,D.withPrayer+=X.withPrayer,D.withFullPrayer+=X.withFullPrayer,D.peopleCommitted+=X.peopleCommitted;return{kind:"all",title:c("All Regions"),context:`${$(v.value.length)} regions`,stats:D}}),N=le(()=>Math.max(0,(F.value.stats.withPrayer||0)-(F.value.stats.withFullPrayer||0))),H=le(()=>Math.max(0,(F.value.stats.count||0)-(F.value.stats.withPrayer||0)));function M(D){const Y=F.value.stats.count||0;return Y?Math.min(100,D/Y*100):0}const re=le(()=>{var Le;const D=F.value.stats||An(),Y=Math.max(0,(D.count||0)-(D.engaged||0)),X=[{label:c("People Groups"),value:$(D.count)}];return F.value.kind==="country"?X.push({label:c("Engaged"),value:$(D.engaged)}):X.push({label:c("Countries"),value:$(F.value.kind==="all"?ge.value:((Le=x.value)==null?void 0:Le.countryCount)||0)}),X.push({label:c("Population"),value:$(D.population)}),X.push({label:c("Unengaged people groups"),value:$(Y)}),X}),ge=le(()=>v.value.reduce((D,Y)=>D+(Y.countryCount||0),0)),de=le(()=>M(F.value.stats.adopted||0)),se=le(()=>M(F.value.stats.engaged||0)),S=le(()=>{if(F.value.kind==="all")return v.value.map(X=>({key:X.slug,name:X.label||"Other",count:X.count,withPrayer:X.withPrayer,adopted:X.adopted,engaged:X.engaged,isSelected:!1,kind:"region"}));const D=x.value;return(D?D.countries:[]).map(X=>({key:X.slug,name:X.name,count:X.count,withPrayer:X.withPrayer,adopted:X.adopted,engaged:X.engaged,isSelected:!!L.value&&X.slug===L.value.slug,kind:"country"}))}),z=le(()=>F.value.kind==="all"?c("Regions"):c("Countries in this region")),Q=le(()=>F.value.kind==="all"?c("Regions"):c("Country")),T=le(()=>{var X,Le,we;const D=F.value.stats||An();if(F.value.kind==="country")return $(D.count)+" people groups · "+(((Le=(X=L.value)==null?void 0:X.region)==null?void 0:Le.label)||"Other");const Y=F.value.kind==="all"?ge.value:((we=x.value)==null?void 0:we.countryCount)||0;return d("%count% people groups in %countries% countries",{count:$(D.count),countries:$(Y)})}),U=le(()=>F.value.kind==="all"),K=le(()=>F.value.kind==="country"?"in-country":F.value.kind==="region"?"prayer":"region"),pe=le(()=>{const D=new Map(v.value.map(Y=>[Y.value,Y]));return Mc.map(Y=>{const X=D.get(Y);return X?{value:Y,slug:X.slug,label:X.label||Ry[Y],count:X.count,color:Pn[Y]}:null}).filter(Boolean)}),be=$e("");function _e(D){const Y=D==null?void 0:D.code;if(Y)for(const X of v.value){const Le=X.countries.find(we=>we.code===Y);if(Le){m.value={regionSlug:X.slug,countrySlug:Le.slug};return}}}const j=le(()=>v.value.map(D=>({value:D.slug,label:D.label||"Other",count:D.count}))),ee=le(()=>v.value.flatMap(D=>D.countries.map(Y=>({value:Y.slug,label:Y.name,count:Y.count}))).sort((D,Y)=>D.label.localeCompare(Y.label)));function ne(D){m.value={regionSlug:(D==null?void 0:D.value)||"",countrySlug:""}}function ae(D){const Y=(D==null?void 0:D.value)||"",X=v.value.find(Le=>Le.countries.some(we=>we.slug===Y));m.value={regionSlug:(X==null?void 0:X.slug)||"",countrySlug:Y}}const ve=le(()=>L.value?[L.value.code]:x.value?x.value.countries.map(D=>D.code):v.value.flatMap(D=>D.countries.map(Y=>Y.code))),y=le(()=>{if(U.value)return null;const D=L.value||x.value;return D&&D.bounds||null}),R=le(()=>{if(U.value)return[10,28];const D=L.value||x.value;return D&&Array.isArray(D.center)?D.center:[20,10]}),P=le(()=>{if(U.value)return 1.25;const D=L.value||x.value;return D&&typeof D.zoom=="number"?D.zoom:L.value?4:2}),B=le(()=>{var X;if(L.value)return d("There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",{count:$(L.value.count),country:L.value.name});const D=F.value.title,Y=F.value.kind==="all"?ge.value:((X=x.value)==null?void 0:X.countryCount)||0;return F.value.kind==="all"?"":d("%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.",{region:D,count:$(F.value.stats.count),countries:$(Y)})}),J=typeof window<"u"&&typeof history<"u",te=le(()=>J&&n.value.urlSync!==!1);function ue(){return J?decodeURIComponent(String(window.location.hash||"").replace(/^#/,"")).trim():""}function ce(D){if(!D)return{regionSlug:"",countrySlug:""};const Y=v.value.find(X=>X.slug===D);if(Y)return{regionSlug:Y.slug,countrySlug:""};for(const X of v.value){const Le=X.countries.find(we=>we.slug===D);if(Le)return{regionSlug:X.slug,countrySlug:Le.slug}}return{regionSlug:"",countrySlug:""}}function g(){return m.value.countrySlug||m.value.regionSlug||""}function h(D){if(!te.value)return;const Y=g(),X=window.location.pathname+window.location.search+(Y?"#"+encodeURIComponent(Y):""),Le=window.location.pathname+window.location.search+window.location.hash;if(X===Le){G();return}try{D?history.pushState({slug:Y},"",X):history.replaceState({slug:Y},"",X)}catch{}G()}function G(){var Le;if(typeof document>"u"||!te.value)return;const D=(Le=F.value)==null?void 0:Le.title,Y=_("All Regions"),X=_("Regions");try{document.title=D&&D!==Y?D+" — "+X:X}catch{}}function W(){te.value&&(m.value=ce(ue()),G())}qe(()=>[m.value.regionSlug,m.value.countrySlug],()=>{h(!0)},{flush:"post"});function he(){m.value={regionSlug:"",countrySlug:""}}function ie(D){var Y;D.kind==="region"?m.value={regionSlug:D.key,countrySlug:""}:m.value={regionSlug:m.value.regionSlug||((Y=x.value)==null?void 0:Y.slug)||"",countrySlug:D.key}}function I(D){const Y=(D==null?void 0:D.detail)||{};Y.instanceId&&i.value&&Y.instanceId!==i.value||(m.value={regionSlug:Y.regionSlug||"",countrySlug:Y.countrySlug||""})}async function q(){const D=`${s.value}/api/people-groups/list?fields=${C}&lang=${r.value}`;f.value=!0,b.value=!1;try{const Y=await fetch(D);if(!Y.ok)throw new Error(`HTTP ${Y.status}`);const X=await Y.json(),Le=Array.isArray(X.posts)?X.posts:[];v.value=Yc(Le),k.value=Le.map(we=>{var Ut,Ho,at,ht,Rn;return{name:we.name||"",slug:we.slug||"",code:((Ut=we.country_code)==null?void 0:Ut.value)||"",country:((Ho=we.country_code)==null?void 0:Ho.label)||"",region:((at=we.wagf_region)==null?void 0:at.value)||"",lng:parseFloat(we.longitude),lat:parseFloat(we.latitude),committed:Ta(we.people_committed),population:Ta(we.population),rop1:((ht=we.rop1)==null?void 0:ht.label)||"",religion:((Rn=we.religion)==null?void 0:Rn.label)||"",description:we.location_description||"",imageUrl:we.has_photo&&we.image_url?we.image_url:""}}).filter(we=>Number.isFinite(we.lng)&&Number.isFinite(we.lat))}catch(Y){console.error("[region-dashboards] fetch error:",Y),b.value=!0,v.value=[],k.value=[]}finally{f.value=!1}}return qe(r,()=>{q()}),xt(async()=>{window.addEventListener(Zc,I),J&&window.addEventListener("popstate",W),await q();const D=ue();D&&(m.value=ce(D)),h(!1)}),ft(()=>{window.removeEventListener(Zc,I),J&&window.removeEventListener("popstate",W)}),Pt(Js+':host{ display:block; width:100%; height:100%; min-height:320px; }.rd-root{ position:absolute; inset:0; display:flex; flex-direction:column; min-height:0; --dx-surface:#f3f3f1; --dx-elevated:#fff; --dx-text:#2a332a; --dx-header-bg:#3b463d; --dx-header-text:#fff; --dx-muted:#6d766e; --dx-line:#d1d4cd; --dx-accent:#92b195; --dx-dark:#2a332a; --dx-on-dark:#f3f3f1; --dx-track:#4e594f; --dx-partial:#f0c64a; --dx-radius:35px; --dx-radius-lg:25px; --dx-table-border:#666; --dx-link:#4e594f; --dx-link-hover:#6d766e; background:var(--dx-surface); color:var(--dx-text); font:var(--font-size-md)/1.5 Poppins,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }h1,h2,h3,h4,p,figure,blockquote,dl,dd{ margin:0; }img,picture{ max-width:100%; display:block; }@media (prefers-reduced-motion: reduce){ .rd-root, .rd-root *, .rd-root *::before, .rd-root *::after{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; } }.rd-scroll{ flex:1 1 auto; min-height:0; overflow-y:auto; scrollbar-gutter:stable; -webkit-overflow-scrolling:touch; padding:var(--spacing-3xl) 0 var(--spacing-4xl); display:flex; flex-direction:column; container-type:inline-size; }.rd-scroll > * + *{ margin-top:var(--spacing-3xl); }.rd-scroll > *{ box-sizing:border-box; width:calc(90% + 16px); max-width:1200px; margin-left:auto; margin-right:auto; }.rd-status{ padding:28px; text-align:center; color:var(--dx-muted); font-size:var(--font-size-md); }.rd-status.rd-failed{ font-weight:600; }.rd-head{ display:flex; flex-direction:column; text-align:center; }.rd-head > * + *{ margin-top:10px; }.rd-backlink{ margin:0; }.rd-light-link{ appearance:none; background:none; border:0; padding:0; margin:0; cursor:pointer; font:inherit; font-size:var(--font-size-md); color:#cbc5b9; font-weight:500; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }.rd-light-link:hover{ color:#d1d4cd; }.rd-light-link:focus-visible{ outline:2px solid var(--dx-accent); outline-offset:2px; border-radius:4px; }.rd-title{ font-size:clamp(var(--font-size-3xl), 7cqw, var(--font-size-5xl)); line-height:1; font-family:"Bebas Neue","Arial Narrow",BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif; font-weight:400; }.rd-title__last{ color:var(--dx-accent); }.rd-summary{ color:var(--dx-muted); font-size:var(--font-size-md); }.rd-prompt{ margin:0; color:var(--dx-muted); font-size:var(--font-size-sm); }.rd-card{ position:relative; box-sizing:border-box; border-radius:var(--dx-radius); background:var(--dx-elevated); color:var(--dx-text); padding:clamp(var(--spacing-lg), 6cqw, var(--spacing-2xl)) clamp(var(--spacing-lg), 6cqw, var(--spacing-3xl)); }.rd-card--small{ padding:var(--spacing-lg); }.rd-card--secondary{ background:var(--dx-dark); color:var(--dx-on-dark); }.rd-stats{ display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:var(--spacing-md); }.rd-stat{ text-align:center; }.rd-stat__value[data-len="long"]{ font-size:var(--font-size-2xl); }.rd-stat__value[data-len="xlong"]{ font-size:var(--font-size-xl); }.rd-stat__value{ margin:0; font-size:var(--font-size-3xl); line-height:1; font-family:"Bebas Neue","Arial Narrow",BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif; font-weight:400; }.rd-stat__label{ margin:var(--spacing-2xs) 0 0; font-size:var(--font-size-sm); color:var(--dx-muted); }.rd-chart{ padding:var(--spacing-lg) clamp(var(--spacing-md), 4cqw, var(--spacing-xl)); }.rd-chooser{ display:flex; flex-wrap:wrap; gap:13.3px; align-items:flex-end; justify-content:center; }.rd-mapblock{ display:flex; flex-direction:column; }.rd-mapblock > * + *{ margin-top:13.3px; }.rd-mapnote{ margin:0; text-align:center; color:#92b195; font-weight:700; font-size:var(--font-size-md); }.rd-mapframe{ border-radius:var(--dx-radius); overflow:hidden; }.rd-regionkey{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px 13.3px; justify-content:center; }.rd-regionkey__item{ appearance:none; border:1px solid var(--dx-line); background:var(--dx-elevated); border-radius:100px; padding:var(--spacing-2xs) 13.3px; cursor:pointer; font:inherit; font-size:var(--font-size-sm); color:var(--dx-text); display:inline-flex; align-items:center; gap:var(--spacing-2xs); transition:border-color .15s ease, background-color .15s ease; }.rd-regionkey__item:hover{ border-color:var(--dx-header-bg); background:#fff; }.rd-regionkey__item:focus-visible{ outline:2px solid var(--dx-accent); outline-offset:2px; }.rd-regionkey__dot{ width:10px; height:10px; border-radius:100px; flex:0 0 auto; }.rd-regionkey__count{ color:var(--dx-muted); font-variant-numeric:tabular-nums; }.rd-regionkey__hint{ margin:0; text-align:center; color:var(--dx-muted); font-size:var(--font-size-sm); }.rd-switcher{ display:flex; flex-wrap:wrap; gap:var(--spacing-2xl); }.rd-switcher > *{ flex-grow:1; flex-basis:calc((700px - 100%) * 999); min-width:0; }.rd-switcher > :nth-last-child(n + 6), .rd-switcher > :nth-last-child(n + 6) ~ *{ flex-basis:100%; }.rd-goal-card{ display:flex; flex-direction:column; text-align:center; }.rd-goal-card > * + *{ margin-top:var(--spacing-lg); }.rd-h2{ margin:0; font-size:clamp(var(--font-size-2xl), 6cqw, var(--font-size-4xl)); line-height:1; font-family:"Bebas Neue","Arial Narrow",BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif; font-weight:400; }.rd-h2--start{ text-align:start; }[lang="ru"] .rd-title, [lang="ru-RU"] .rd-title,[lang="ru"] .rd-h2, [lang="ru-RU"] .rd-h2{ font-family:"Oswald","Arial Narrow",BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif; letter-spacing:-0.02em; }.rd-big{ margin:0; font-size:var(--font-size-4xl); font-weight:500; line-height:1.1; }.rd-goal-card .rd-big{ white-space:nowrap; }.rd-big-label{ margin:0; font-size:var(--font-size-lg); }.rd-stack-xs{ display:flex; flex-direction:column; }.rd-stack-xs > * + *{ margin-top:10px; }.rd-goal{ margin:0; font-size:var(--font-size-sm); }.rd-root strong{ font-weight:500; }.rd-goal-card > .rd-goal{ margin-top:auto; }.rd-bar{ position:relative; overflow:hidden; width:100%; border-radius:100px; background:var(--dx-track); border:none; padding-top:clamp(15px, 6%, 25px); }.rd-bar__slider{ position:absolute; top:0; height:100%; width:0; border-radius:100px; background:var(--dx-accent); transition:width 1s ease-out; }.rd-bar--segments{ display:flex; height:clamp(15px, 6cqw, 25px); padding-top:0; }.rd-seg{ height:100%; transition:width 1s ease-out; }.rd-seg--full{ background:var(--dx-accent); }.rd-seg--partial{ background:var(--dx-partial); }.rd-seg--none{ background:var(--dx-track); }.rd-legend{ display:grid; justify-content:center; gap:3.5px; font-size:var(--font-size-sm); font-weight:600; text-align:center; }.rd-legend span{ display:inline-flex; align-items:center; justify-content:center; gap:4px; }.rd-key{ display:inline-block; flex:0 0 auto; width:7.5px; height:7.5px; border-radius:100px; }.rd-key--full{ background:var(--dx-accent); }.rd-key--partial{ background:var(--dx-partial); }.rd-key--none{ background:var(--dx-track); }.rd-section{ display:flex; flex-direction:column; padding-top:clamp(var(--spacing-2xl), 6cqw, var(--spacing-4xl)); padding-bottom:var(--spacing-4xl); }.rd-section > * + *{ margin-top:var(--spacing-md); }.rd-table-scroll{ overflow-x:auto; }.rd-table{ width:100%; min-width:560px; border-collapse:collapse; font-size:var(--font-size-md); border-radius:var(--dx-radius-lg); overflow:hidden; background:#fff; box-shadow:0 0 0 1px var(--dx-table-border); }.rd-table td{ border:1px solid var(--dx-table-border); }.rd-table th, .rd-table td{ padding:var(--spacing-2xs) 13.3px; text-align:start; }.rd-table th:not(:first-child), .rd-table td:not(:first-child){ text-align:end; }.rd-table th{ background:var(--dx-muted); color:var(--dx-on-dark); font-weight:500; }.rd-tr--selected{ background:#e8ece7; font-weight:600; }.rd-row-link{ appearance:none; background:none; border:0; padding:0; margin:0; cursor:pointer; font:inherit; font-weight:500; color:var(--dx-link); text-align:start; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; text-decoration-skip-ink:auto; transition:color .3s ease; }.rd-row-link:hover{ color:var(--dx-link-hover); }.rd-row-link:focus-visible{ outline:2px solid var(--dx-accent); outline-offset:2px; border-radius:4px; }',"region-dashboards"),(D,Y)=>(Z(),oe("div",{class:"rd-root",lang:me(p),dir:w.value?"rtl":"ltr"},[E("main",{class:"rd-scroll","aria-label":me(c)("Region dashboard")},[f.value?(Z(),oe("div",$1,V(me(c)("Loading region dashboards…")),1)):b.value?(Z(),oe("div",b1,V(me(c)("Region data could not be loaded. This is a connection problem, not a filter.")),1)):(Z(),oe(Se,{key:2},[E("div",_1,[U.value?Ae("",!0):(Z(),oe("p",y1,[E("button",{type:"button",class:"rd-light-link",onClick:he},"← "+V(me(c)("All Regions")),1)])),E("h1",v1,[Re(V(A.value.head?A.value.head+" ":""),1),E("span",x1,V(A.value.last),1)]),F.value.kind==="country"?(Z(),oe("p",w1,[Re(V(F.value.stats.count)+" "+V(me(c)("People Groups"))+" · ",1),E("button",{type:"button",class:"rd-light-link",onClick:Y[0]||(Y[0]=X=>{var Le;return ie({kind:"region",key:(Le=x.value)==null?void 0:Le.slug})})},V(F.value.context),1)])):(Z(),oe("p",k1,V(T.value),1)),U.value?(Z(),oe("p",L1,V(me(c)("Pick a region or a country on the Regions List tab to narrow this dashboard.")),1)):Ae("",!0)]),U.value?(Z(),oe("div",P1,[Ie(Zs,{label:me(c)("Regions"),name:"region",options:j.value,value:"",placeholder:me(c)("Type to search..."),onFilterChange:ne,onFilterClear:he},null,8,["label","options","placeholder"]),Ie(Zs,{label:me(c)("Countries"),name:"country",options:ee.value,value:"",placeholder:me(c)("Type to search..."),onFilterChange:ae,onFilterClear:he},null,8,["label","options","placeholder"])])):Ae("",!0),F.value.kind!=="country"?(Z(),oe("div",A1,[(Z(!0),oe(Se,null,et(re.value,X=>(Z(),oe("div",{key:X.label,class:"rd-card rd-card--small rd-stat"},[E("p",{class:"rd-stat__value","data-len":O(X.value)},V(X.value),9,S1),E("p",E1,V(X.label),1)]))),128))])):Ae("",!0),E("div",R1,[B.value?(Z(),oe("p",C1,V(B.value),1)):Ae("",!0),E("div",M1,[Ie(s1,{"country-codes":ve.value,points:k.value,bounds:y.value,center:R.value,zoom:P.value,"color-mode":K.value,"highlight-region":be.value,"select-on-pin-click":U.value,"pray-base-url":s.value,"research-url":a.value,onPickCountry:_e},null,8,["country-codes","points","bounds","center","zoom","color-mode","highlight-region","select-on-pin-click","pray-base-url","research-url"])]),U.value?(Z(),oe("ul",{key:1,class:"rd-regionkey","aria-label":me(c)("Choose a region")},[(Z(!0),oe(Se,null,et(pe.value,X=>(Z(),oe("li",{key:X.value},[E("button",{type:"button",class:"rd-regionkey__item","aria-label":"Open the "+X.label+" dashboard",onClick:Le=>m.value={regionSlug:X.slug,countrySlug:""},onMouseenter:Le=>be.value=X.value,onMouseleave:Y[1]||(Y[1]=Le=>be.value=""),onFocus:Le=>be.value=X.value,onBlur:Y[2]||(Y[2]=Le=>be.value="")},[E("i",{class:"rd-regionkey__dot",style:Ke({background:X.color}),"aria-hidden":"true"},null,4),E("span",N1,V(X.label),1),E("span",F1,V($(X.count)),1)],40,O1)]))),128))],8,T1)):Ae("",!0),U.value?(Z(),oe("p",I1,V(me(c)("Pick a region above, or click any dot to open that people group's country.")),1)):Ae("",!0)]),F.value.kind==="region"?(Z(),oe("div",D1,[E("div",G1,[E("h2",U1,V(me(c)("Prayer Coverage")),1),E("div",null,[E("p",B1,V($(F.value.stats.peopleCommitted)),1),E("p",z1,V(me(c)("People committed to praying")),1)]),E("div",j1,[E("div",{class:"rd-bar rd-bar--segments","aria-label":me(c)("Prayer coverage progress")},[E("div",{class:"rd-seg rd-seg--full",style:Ke({width:M(F.value.stats.withFullPrayer)+"%"})},null,4),E("div",{class:"rd-seg rd-seg--partial",style:Ke({width:M(N.value)+"%"})},null,4),E("div",{class:"rd-seg rd-seg--none",style:Ke({width:M(H.value)+"%"})},null,4)],8,V1),E("div",H1,[E("span",null,[Y[3]||(Y[3]=E("i",{class:"rd-key rd-key--full"},null,-1)),Re(V(me(c)("100+ People Praying"))+": "+V($(F.value.stats.withFullPrayer)),1)]),E("span",null,[Y[4]||(Y[4]=E("i",{class:"rd-key rd-key--partial"},null,-1)),Re(V(me(c)("1+ People Praying"))+": "+V($(N.value)),1)]),E("span",null,[Y[5]||(Y[5]=E("i",{class:"rd-key rd-key--none"},null,-1)),Re(V(me(c)("No One Praying"))+": "+V($(H.value)),1)])])]),E("p",W1,[E("strong",null,V(me(c)("Goal"))+":",1),Re(" "+V(me(c)("Mobilize 100+ people praying daily for each DOXA people group")),1)])]),E("div",q1,[E("h2",K1,V(me(c)("Adoption Progress")),1),E("div",null,[E("p",X1,V($(F.value.stats.adopted))+" / "+V($(F.value.stats.count)),1),E("p",Y1,V(me(c)("people groups adopted")),1)]),E("div",Z1,[E("div",{class:"rd-bar__slider",style:Ke({width:de.value+"%"})},null,4)]),E("p",J1,[E("strong",null,V(me(c)("Goal"))+":",1),Re(" "+V(me(c)("Every unengaged people group adopted by a church committed to prayer, giving, and sending")),1)])]),E("div",Q1,[E("h2",ev,V(me(c)("Engagement Progress")),1),E("div",null,[E("p",tv,V($(F.value.stats.engaged))+" / "+V($(F.value.stats.count)),1),E("p",ov,V(me(c)("people groups engaged")),1)]),E("div",nv,[E("div",{class:"rd-bar__slider",style:Ke({width:se.value+"%"})},null,4)]),E("p",av,[E("strong",null,V(me(c)("Goal"))+":",1),Re(" "+V(me(c)("No unengaged people groups by 2033")),1)])])])):Ae("",!0),F.value.kind!=="country"?(Z(),oe("div",sv,[E("h2",rv,V(z.value),1),E("div",iv,[E("table",lv,[E("thead",null,[E("tr",null,[E("th",null,V(Q.value),1),E("th",null,V(me(c)("People Groups")),1),E("th",null,V(me(c)("1+ People Praying")),1),E("th",null,V(me(c)("Adopted")),1),E("th",null,V(me(c)("Engaged")),1)])]),E("tbody",null,[(Z(!0),oe(Se,null,et(S.value,X=>(Z(),oe("tr",{key:X.key,class:He({"rd-tr--selected":X.isSelected})},[E("td",null,[E("button",{type:"button",class:"rd-row-link",onClick:Le=>ie(X)},V(X.name),9,cv)]),E("td",null,V($(X.count)),1),E("td",null,V($(X.withPrayer)),1),E("td",null,V($(X.adopted)),1),E("td",null,V($(X.engaged)),1)],2))),128))])])])])):Ae("",!0),F.value.kind==="country"&&L.value?(Z(),Ot(Ey,{key:4,"lock-country-code":L.value.code,"pray-base-url":s.value,"language-code":r.value,"images-base":l.value+"/images"},null,8,["lock-country-code","pray-base-url","language-code","images-base"])):Ae("",!0)],64))],8,m1)],8,f1))}}},Symbol.toStringTag,{value:"Module"}));function Sn(e,{autoprint:t=!1}={}){const o=document.createElement("iframe");o.setAttribute("aria-hidden","true"),o.style.cssText="position:fixed;right:0;bottom:0;width:1px;height:1px;opacity:0;border:0",document.body.appendChild(o);const n=o.contentDocument;if(!n)return o.remove(),null;n.open(),n.write(e),t&&n.write(' - + - + - + - +