163 lines
590 KiB
JavaScript
Generated
163 lines
590 KiB
JavaScript
Generated
(function(){"use strict";var Sc;var Ra=typeof document<"u"?document.currentScript:null;const Tv="modulepreload",Ov=function(e){return"/"+e},Mv={},_t=function(t,o,n){let a=Promise.resolve();function s(r){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=r,window.dispatchEvent(l),!l.defaultPrevented)throw r}return a.then(r=>{for(const l of r||[])l.status==="rejected"&&s(l.reason);return t().catch(s)})};/**
|
||
* @vue/shared v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function Ta(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Te={},Lo=[],St=()=>{},Hs=()=>!1,wn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),kn=e=>e.startsWith("onUpdate:"),Ke=Object.assign,Oa=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Cc=Object.prototype.hasOwnProperty,Le=(e,t)=>Cc.call(e,t),le=Array.isArray,oo=e=>Wo(e)==="[object Map]",Ln=e=>Wo(e)==="[object Set]",qs=e=>Wo(e)==="[object Date]",de=e=>typeof e=="function",je=e=>typeof e=="string",mt=e=>typeof e=="symbol",Ae=e=>e!==null&&typeof e=="object",Ks=e=>(Ae(e)||de(e))&&de(e.then)&&de(e.catch),Xs=Object.prototype.toString,Wo=e=>Xs.call(e),Rc=e=>Wo(e).slice(8,-1),Pn=e=>Wo(e)==="[object Object]",Sn=e=>je(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ho=Ta(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),An=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Tc=/-\w/g,Je=An(e=>e.replace(Tc,t=>t.slice(1).toUpperCase())),Oc=/\B([A-Z])/g,$t=An(e=>e.replace(Oc,"-$1").toLowerCase()),En=An(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ma=An(e=>e?`on${En(e)}`:""),At=(e,t)=>!Object.is(e,t),Na=(e,...t)=>{for(let o=0;o<e.length;o++)e[o](...t)},Ys=(e,t,o,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},Mc=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Zs=e=>{const t=je(e)?Number(e):NaN;return isNaN(t)?e:t};let Js;const Cn=()=>Js||(Js=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function at(e){if(le(e)){const t={};for(let o=0;o<e.length;o++){const n=e[o],a=je(n)?Dc(n):at(n);if(a)for(const s in a)t[s]=a[s]}return t}else if(je(e)||Ae(e))return e}const Nc=/;(?![^(]*\))/g,Fc=/:([^]+)/,Ic=/\/\*[^]*?\*\//g;function Dc(e){const t={};return e.replace(Ic,"").split(Nc).forEach(o=>{if(o){const n=o.split(Fc);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ve(e){let t="";if(je(e))t=e;else if(le(e))for(let o=0;o<e.length;o++){const n=Ve(e[o]);n&&(t+=n+" ")}else if(Ae(e))for(const o in e)e[o]&&(t+=o+" ");return t.trim()}const Gc=Ta("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function Qs(e){return!!e||e===""}function jc(e,t){if(e.length!==t.length)return!1;let o=!0;for(let n=0;o&&n<e.length;n++)o=Rn(e[n],t[n]);return o}function er(e,t){if(e.size!==t.size)return!1;const o=Array.from(t),n=new Uint8Array(o.length);for(const a of e){let s=-1;for(let r=0;r<o.length;r++)if(!n[r]&&Rn(a,o[r])){s=r;break}if(s<0)return!1;n[s]=1}return!0}function Rn(e,t){if(e===t)return!0;let o=qs(e),n=qs(t);if(o||n)return o&&n?e.getTime()===t.getTime():!1;if(o=mt(e),n=mt(t),o||n)return e===t;if(o=le(e),n=le(t),o||n)return o&&n?jc(e,t):!1;if(o=Ae(e),n=Ae(t),o||n){if(!o||!n)return!1;if(o=oo(e),n=oo(t),o||n||(o=Ln(e),n=Ln(t),o||n))return o&&n?er(e,t):!1;const a=Object.keys(e).length,s=Object.keys(t).length;if(a!==s)return!1;for(const r in e){const l=e.hasOwnProperty(r),i=t.hasOwnProperty(r);if(l&&!i||!l&&i||!Rn(e[r],t[r]))return!1}}return String(e)===String(t)}const tr=e=>!!(e&&e.__v_isRef===!0),q=e=>je(e)?e:e==null?"":le(e)||Ae(e)&&(e.toString===Xs||!de(e.toString))?tr(e)?q(e.value):JSON.stringify(e,or,2):String(e),or=(e,t)=>tr(t)?or(e,t.value):oo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[Fa(n,s)+" =>"]=a,o),{})}:Ln(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Fa(o))}:mt(t)?Fa(t):Ae(t)&&!le(t)&&!Pn(t)?String(t):t,Fa=(e,t="")=>{var o;return mt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/**
|
||
* @vue/reactivity v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let Ye;class nr{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&&Ye&&(Ye.active?(this.parent=Ye,this.index=(Ye.scopes||(Ye.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t<o;t++)n[t].pause()}for(t=0,o=this.effects.length;t<o;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,o;if(this.scopes){const a=this.scopes.slice();for(t=0,o=a.length;t<o;t++)a[t].resume()}const n=this.effects.slice();for(t=0,o=n.length;t<o;t++)n[t].resume()}}run(t){if(this._active){const o=Ye;try{return Ye=this,t()}finally{Ye=o}}}on(){++this._on===1&&(this.prevScope=Ye,Ye=this)}off(){if(this._on>0&&--this._on===0){if(Ye===this)Ye=this.prevScope;else{let t=Ye;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o<n;o++)this.effects[o].stop();for(this.effects.length=0,o=0,n=this.cleanups.length;o<n;o++)this.cleanups[o]();if(this.cleanups.length=0,this.scopes){const a=this.scopes.slice();for(o=0,n=a.length;o<n;o++)a[o].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const a=this.parent.scopes.pop();a&&a!==this&&(this.parent.scopes[this.index]=a,a.index=this.index)}this.parent=void 0}}}function Ia(e){return new nr(e)}function ar(){return Ye}function Bc(e,t=!1){Ye&&Ye.cleanups.push(e)}let Fe;const Da=new WeakSet;class sr{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Ye&&(Ye.active?Ye.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Da.has(this)&&(Da.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||lr(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,ur(this),ir(this);const t=Fe,o=yt;Fe=this,yt=!0;try{return this.fn()}finally{cr(this),Fe=t,yt=o,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Ua(t);this.deps=this.depsTail=void 0,ur(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Da.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Ba(this)&&this.run()}get dirty(){return Ba(this)}}let rr=0,qo,Ko;function lr(e,t=!1){if(e.flags|=8,t){e.next=Ko,Ko=e;return}e.next=qo,qo=e}function Ga(){rr++}function ja(){if(--rr>0)return;if(Ko){let t=Ko;for(Ko=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;qo;){let t=qo;for(qo=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function ir(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cr(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),Ua(n),Uc(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Ba(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(dr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function dr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Xo)||(e.globalVersion=Xo,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ba(e))))return;e.flags|=2;const t=e.dep,o=Fe,n=yt;Fe=e,yt=!0;try{ir(e);const a=e.fn(e._value);(t.version===0||At(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{Fe=o,yt=n,cr(e),e.flags&=-3}}function Ua(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let s=o.computed.deps;s;s=s.nextDep)Ua(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Uc(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let yt=!0;const pr=[];function Et(){pr.push(yt),yt=!1}function Ct(){const e=pr.pop();yt=e===void 0?!0:e}function ur(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=Fe;Fe=void 0;try{t()}finally{Fe=o}}}let Xo=0;class Vc{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Va{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(!Fe||!yt||Fe===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==Fe)o=this.activeLink=new Vc(Fe,this),Fe.deps?(o.prevDep=Fe.depsTail,Fe.depsTail.nextDep=o,Fe.depsTail=o):Fe.deps=Fe.depsTail=o,gr(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=Fe.depsTail,o.nextDep=void 0,Fe.depsTail.nextDep=o,Fe.depsTail=o,Fe.deps===o&&(Fe.deps=n)}return o}trigger(t){this.version++,Xo++,this.notify(t)}notify(t){Ga();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{ja()}}}function gr(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)gr(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Tn=new WeakMap,fo=Symbol(""),za=Symbol(""),Yo=Symbol("");function st(e,t,o){if(yt&&Fe){let n=Tn.get(e);n||Tn.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Va),a.map=n,a.key=o),a.track()}}function Ut(e,t,o,n,a,s){const r=Tn.get(e);if(!r){Xo++;return}const l=i=>{i&&i.trigger()};if(Ga(),t==="clear")r.forEach(l);else{const i=le(e),c=i&&Sn(o);if(i&&o==="length"){const u=Number(n);r.forEach((f,$)=>{($==="length"||$===Yo||!mt($)&&$>=u)&&l(f)})}else switch((o!==void 0||r.has(void 0))&&l(r.get(o)),c&&l(r.get(Yo)),t){case"add":i?c&&l(r.get("length")):(l(r.get(fo)),oo(e)&&l(r.get(za)));break;case"delete":i||(l(r.get(fo)),oo(e)&&l(r.get(za)));break;case"set":oo(e)&&l(r.get(fo));break}}ja()}function zc(e,t){const o=Tn.get(e);return o&&o.get(t)}function Po(e){const t=we(e);return t===e?t:(st(t,"iterate",Yo),ut(e)?t:t.map(vt))}function On(e){return st(e=we(e),"iterate",Yo),e}function Rt(e,t){return Wt(e)?So(zt(e)?vt(t):t):vt(t)}const Wc={__proto__:null,[Symbol.iterator](){return Wa(this,Symbol.iterator,e=>Rt(this,e))},concat(...e){return Po(this).concat(...e.map(t=>le(t)?Po(t):t))},entries(){return Wa(this,"entries",e=>(e[1]=Rt(this,e[1]),e))},every(e,t){return Vt(this,"every",e,t,void 0,arguments)},filter(e,t){return Vt(this,"filter",e,t,o=>o.map(n=>Rt(this,n)),arguments)},find(e,t){return Vt(this,"find",e,t,o=>Rt(this,o),arguments)},findIndex(e,t){return Vt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Vt(this,"findLast",e,t,o=>Rt(this,o),arguments)},findLastIndex(e,t){return Vt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Vt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ha(this,"includes",e)},indexOf(...e){return Ha(this,"indexOf",e)},join(e){return Po(this).join(e)},lastIndexOf(...e){return Ha(this,"lastIndexOf",e)},map(e,t){return Vt(this,"map",e,t,void 0,arguments)},pop(){return Zo(this,"pop")},push(...e){return Zo(this,"push",e)},reduce(e,...t){return fr(this,"reduce",e,t)},reduceRight(e,...t){return fr(this,"reduceRight",e,t)},shift(){return Zo(this,"shift")},some(e,t){return Vt(this,"some",e,t,void 0,arguments)},splice(...e){return Zo(this,"splice",e)},toReversed(){return Po(this).toReversed()},toSorted(e){return Po(this).toSorted(e)},toSpliced(...e){return Po(this).toSpliced(...e)},unshift(...e){return Zo(this,"unshift",e)},values(){return Wa(this,"values",e=>Rt(this,e))}};function Wa(e,t,o){const n=On(e),a=n[t]();return n!==e&&!ut(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const Hc=Array.prototype;function Vt(e,t,o,n,a,s){const r=On(e),l=r!==e&&!ut(e),i=r[t];if(i!==Hc[t]){const f=i.apply(e,s);return l?vt(f):f}let c=o;r!==e&&(l?c=function(f,$){return o.call(this,Rt(e,f),$,e)}:o.length>2&&(c=function(f,$){return o.call(this,f,$,e)}));const u=i.call(r,c,n);return l&&a?a(u):u}function fr(e,t,o,n){const a=On(e),s=a!==e&&!ut(e);let r=o,l=!1;a!==e&&(s?(l=n.length===0,r=function(c,u,f){return l&&(l=!1,c=Rt(e,c)),o.call(this,c,Rt(e,u),f,e)}):o.length>3&&(r=function(c,u,f){return o.call(this,c,u,f,e)}));const i=a[t](r,...n);return l?Rt(e,i):i}function Ha(e,t,o){const n=we(e);st(n,"iterate",Yo);const a=n[t](...o);return(a===-1||a===!1)&&Gn(o[0])?(o[0]=we(o[0]),n[t](...o)):a}function Zo(e,t,o=[]){Et(),Ga();const n=we(e)[t].apply(e,o);return ja(),Ct(),n}const qc=Ta("__proto__,__v_isRef,__isVue"),hr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(mt));function Kc(e){mt(e)||(e=String(e));const t=we(this);return st(t,"has",e),t.hasOwnProperty(e)}class mr{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,s=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return s;if(o==="__v_raw")return n===(a?s?xr:vr:s?yr:_r).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=le(t);if(!a){let i;if(r&&(i=Wc[o]))return i;if(o==="hasOwnProperty")return Kc}const l=Reflect.get(t,o,ze(t)?t:n);if((mt(o)?hr.has(o):qc(o))||(a||st(t,"get",o),s))return l;if(ze(l)){const i=r&&Sn(o)?l:l.value;return a&&Ae(i)?Ka(i):i}return Ae(l)?a?Ka(l):In(l):l}}class $r extends mr{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=le(t)&&Sn(o);if(!this._isShallow){const c=Wt(s);if(!ut(n)&&!Wt(n)&&(s=we(s),n=we(n)),!r&&ze(s)&&!ze(n))return c||(s.value=n),!0}const l=r?Number(o)<t.length:Le(t,o),i=Reflect.set(t,o,n,ze(t)?t:a);return t===we(a)&&i&&(l?At(n,s)&&Ut(t,"set",o,n):Ut(t,"add",o,n)),i}deleteProperty(t,o){const n=Le(t,o);t[o];const a=Reflect.deleteProperty(t,o);return a&&n&&Ut(t,"delete",o,void 0),a}has(t,o){const n=Reflect.has(t,o);return(!mt(o)||!hr.has(o))&&st(t,"has",o),n}ownKeys(t){return st(t,"iterate",le(t)?"length":fo),Reflect.ownKeys(t)}}class br extends mr{constructor(t=!1){super(!0,t)}set(t,o){return!0}deleteProperty(t,o){return!0}}const Xc=new $r,Yc=new br,Zc=new $r(!0),Jc=new br(!0),qa=e=>e,Mn=e=>Reflect.getPrototypeOf(e);function Qc(e,t,o){return function(...n){const a=this.__v_raw,s=we(a),r=oo(s),l=e==="entries"||e===Symbol.iterator&&r,i=e==="keys"&&r,c=a[e](...n),u=o?qa:t?So:vt;return!t&&st(s,"iterate",i?za:fo),Ke(Object.create(c),{next(){const{value:f,done:$}=c.next();return $?{value:f,done:$}:{value:l?[u(f[0]),u(f[1])]:u(f),done:$}}})}}function Nn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ed(e,t){const o={get(a){const s=this.__v_raw,r=we(s),l=we(a);e||(At(a,l)&&st(r,"get",a),st(r,"get",l));const{has:i}=Mn(r),c=t?qa:e?So:vt;if(i.call(r,a))return c(s.get(a));if(i.call(r,l))return c(s.get(l));s!==r&&s.get(a)},get size(){const a=this.__v_raw;return!e&&st(we(a),"iterate",fo),a.size},has(a){const s=this.__v_raw,r=we(s),l=we(a);return e||(At(a,l)&&st(r,"has",a),st(r,"has",l)),a===l?s.has(a):s.has(a)||s.has(l)},forEach(a,s){const r=this,l=r.__v_raw,i=we(l),c=t?qa:e?So:vt;return!e&&st(i,"iterate",fo),l.forEach((u,f)=>a.call(s,c(u),c(f),r))}};return Ke(o,e?{add:Nn("add"),set:Nn("set"),delete:Nn("delete"),clear:Nn("clear")}:{add(a){const s=we(this),r=Mn(s),l=we(a),i=!t&&!ut(a)&&!Wt(a)?l:a;return r.has.call(s,i)||At(a,i)&&r.has.call(s,a)||At(l,i)&&r.has.call(s,l)||(s.add(i),Ut(s,"add",i,i)),this},set(a,s){!t&&!ut(s)&&!Wt(s)&&(s=we(s));const r=we(this),{has:l,get:i}=Mn(r);let c=l.call(r,a);c||(a=we(a),c=l.call(r,a));const u=i.call(r,a);return r.set(a,s),c?At(s,u)&&Ut(r,"set",a,s):Ut(r,"add",a,s),this},delete(a){const s=we(this),{has:r,get:l}=Mn(s);let i=r.call(s,a);i||(a=we(a),i=r.call(s,a)),l&&l.call(s,a);const c=s.delete(a);return i&&Ut(s,"delete",a,void 0),c},clear(){const a=we(this),s=a.size!==0,r=a.clear();return s&&Ut(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=Qc(a,e,t)}),o}function Fn(e,t){const o=ed(e,t);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Le(o,a)&&a in n?o:n,a,s)}const td={get:Fn(!1,!1)},od={get:Fn(!1,!0)},nd={get:Fn(!0,!1)},ad={get:Fn(!0,!0)},_r=new WeakMap,yr=new WeakMap,vr=new WeakMap,xr=new WeakMap;function sd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function In(e){return Wt(e)?e:Dn(e,!1,Xc,td,_r)}function rd(e){return Dn(e,!1,Zc,od,yr)}function Ka(e){return Dn(e,!0,Yc,nd,vr)}function Fv(e){return Dn(e,!0,Jc,ad,xr)}function Dn(e,t,o,n,a){if(!Ae(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const r=sd(Rc(e));if(r===0)return e;const l=new Proxy(e,r===2?n:o);return a.set(e,l),l}function zt(e){return Wt(e)?zt(e.__v_raw):!!(e&&e.__v_isReactive)}function Wt(e){return!!(e&&e.__v_isReadonly)}function ut(e){return!!(e&&e.__v_isShallow)}function Gn(e){return e?!!e.__v_raw:!1}function we(e){const t=e&&e.__v_raw;return t?we(t):e}function Jo(e){return!Le(e,"__v_skip")&&Object.isExtensible(e)&&Ys(e,"__v_skip",!0),e}const vt=e=>Ae(e)?In(e):e,So=e=>Ae(e)?Ka(e):e;function ze(e){return e?e.__v_isRef===!0:!1}function H(e){return wr(e,!1)}function Ao(e){return wr(e,!0)}function wr(e,t){return ze(e)?e:new ld(e,t)}class ld{constructor(t,o){this.dep=new Va,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:we(t),this._value=o?t:vt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||ut(t)||Wt(t);t=n?t:we(t),At(t,o)&&(this._rawValue=t,this._value=n?t:vt(t),this.dep.trigger())}}function ve(e){return ze(e)?e.value:e}const id={get:(e,t,o)=>t==="__v_raw"?e:ve(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return ze(a)&&!ze(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function kr(e){return zt(e)?e:new Proxy(e,id)}function cd(e){const t=le(e)?new Array(e.length):{};for(const o in e)t[o]=pd(e,o);return t}class dd{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=mt(o)?o:String(o),this._raw=we(t);let a=!0,s=t;if(!le(t)||mt(this._key)||!Sn(this._key))do a=!Gn(s)||ut(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=ve(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ze(this._raw[this._key])){const o=this._object[this._key];if(ze(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return zc(this._raw,this._key)}}function pd(e,t,o){return new dd(e,t,o)}class ud{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Va(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Xo-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Fe!==this)return lr(this,!0),!0}get value(){const t=this.dep.track();return dr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function gd(e,t,o=!1){let n,a;return de(e)?n=e:(n=e.get,a=e.set),new ud(n,a,o)}const jn={},Bn=new WeakMap;let ho;function fd(e,t=!1,o=ho){if(o){let n=Bn.get(o);n||Bn.set(o,n=[]),n.push(e)}}function hd(e,t,o=Te){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:l,call:i}=o,c=m=>a?m:ut(m)||a===!1||a===0?Ht(m,1):Ht(m);let u,f,$,_,O=!1,L=!1;if(ze(e)?(f=()=>e.value,O=ut(e)):zt(e)?(f=()=>c(e),O=!0):le(e)?(L=!0,O=e.some(m=>zt(m)||ut(m)),f=()=>e.map(m=>{if(ze(m))return m.value;if(zt(m))return c(m);if(de(m))return i?i(m,2):m()})):de(e)?t?f=i?()=>i(e,2):e:f=()=>{if($){Et();try{$()}finally{Ct()}}const m=ho;ho=u;try{return i?i(e,3,[_]):e(_)}finally{ho=m}}:f=St,t&&a){const m=f,E=a===!0?1/0:a;f=()=>Ht(m(),E)}const G=ar(),A=()=>{u.stop(),G&&G.active&&Oa(G.effects,u)};if(s&&t){const m=t;t=(...E)=>{const P=m(...E);return A(),P}}let k=L?new Array(e.length).fill(jn):jn;const b=m=>{if(!(!(u.flags&1)||!u.dirty&&!m))if(t){const E=u.run();if(m||a||O||(L?E.some((P,F)=>At(P,k[F])):At(E,k))){$&&$();const P=ho;ho=u;try{const F=[E,k===jn?void 0:L&&k[0]===jn?[]:k,_];k=E,i?i(t,3,F):t(...F)}finally{ho=P}}}else u.run()};return l&&l(b),u=new sr(f),u.scheduler=r?()=>r(b,!1):b,_=m=>fd(m,!1,u),$=u.onStop=()=>{const m=Bn.get(u);if(m){if(i)i(m,4);else for(const E of m)E();Bn.delete(u)}},t?n?b(!0):k=u.run():r?r(b.bind(null,!0),!0):u.run(),A.pause=u.pause.bind(u),A.resume=u.resume.bind(u),A.stop=A,A}function Ht(e,t=1/0,o){if(t<=0||!Ae(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,ze(e))Ht(e.value,t,o);else if(le(e))for(let n=0;n<e.length;n++)Ht(e[n],t,o);else if(Ln(e)||oo(e))e.forEach(n=>{Ht(n,t,o)});else if(Pn(e)){for(const n in e)Ht(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Ht(e[n],t,o)}return e}/**
|
||
* @vue/runtime-core v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/const Qo=[];let Xa=!1;function Iv(e,...t){if(Xa)return;Xa=!0,Et();const o=Qo.length?Qo[Qo.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=md();if(n)Eo(n,o,11,[e+t.map(s=>{var r,l;return(l=(r=s.toString)==null?void 0:r.call(s))!=null?l:JSON.stringify(s)}).join(""),o&&o.proxy,a.map(({vnode:s})=>`at <${xl(o,s.type)}>`).join(`
|
||
`),a]);else{const s=[`[Vue warn]: ${e}`,...t];a.length&&s.push(`
|
||
`,...$d(a)),console.warn(...s)}Ct(),Xa=!1}function md(){let e=Qo[Qo.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function $d(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[`
|
||
`],...bd(o))}),t}function bd({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${xl(e.component,e.type,n)}`,s=">"+o;return e.props?[a,..._d(e.props),s]:[a+s]}function _d(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Lr(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Lr(e,t,o){return je(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:ze(t)?(t=Lr(e,we(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):de(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=we(t),o?t:[`${e}=`,t])}function Eo(e,t,o,n){try{return n?e(...n):e()}catch(a){en(a,t,o)}}function xt(e,t,o,n){if(de(e)){const a=Eo(e,t,o,n);return a&&Ks(a)&&a.catch(s=>{en(s,t,o)}),a}if(le(e)){const a=[];for(let s=0;s<e.length;s++)a.push(xt(e[s],t,o,n));return a}}function en(e,t,o,n=!0){const a=t?t.vnode:null,{errorHandler:s,throwUnhandledErrorInProduction:r}=t&&t.appContext.config||Te;if(t){let l=t.parent;const i=t.proxy,c=`https://vuejs.org/error-reference/#runtime-${o}`;for(;l;){const u=l.ec;if(u){for(let f=0;f<u.length;f++)if(u[f](e,i,c)===!1)return}l=l.parent}if(s){Et(),Eo(s,null,10,[e,i,c]),Ct();return}}yd(e,o,a,n,r)}function yd(e,t,o,n=!0,a=!1){if(a)throw e;console.error(e)}const lt=[];let Tt=-1;const Co=[];let no=null,Ro=0;const Pr=Promise.resolve();let Un=null;function To(e){const t=Un||Pr;return e?t.then(this?e.bind(this):e):t}function vd(e){let t=Tt+1,o=lt.length;for(;t<o;){const n=t+o>>>1,a=lt[n],s=tn(a);s<e||s===e&&a.flags&2?t=n+1:o=n}return t}function Ya(e){if(!(e.flags&1)){const t=tn(e),o=lt[lt.length-1];!o||!(e.flags&2)&&t>=tn(o)?lt.push(e):lt.splice(vd(t),0,e),e.flags|=1,Sr()}}function Sr(){Un||(Un=Pr.then(Cr))}function xd(e){if(!le(e))no&&e.id===-1?no.splice(Ro+1,0,e):e.flags&1||(Co.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Co.push(e[t]);Sr()}function Ar(e,t,o=Tt+1){for(;o<lt.length;o++){const n=lt[o];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;lt.splice(o,1),o--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function Er(e){if(Co.length){const t=[...new Set(Co)].sort((o,n)=>tn(o)-tn(n));if(Co.length=0,no){for(let o=0;o<t.length;o++)no.push(t[o]);return}for(no=t,Ro=0;Ro<no.length;Ro++){const o=no[Ro];o.flags&4&&(o.flags&=-2),o.flags&8||o(),o.flags&=-2}no=null,Ro=0}}const tn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Cr(e){try{for(Tt=0;Tt<lt.length;Tt++){const t=lt[Tt];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Eo(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Tt<lt.length;Tt++){const t=lt[Tt];t&&(t.flags&=-2)}Tt=-1,lt.length=0,Er(),Un=null,(lt.length||Co.length)&&Cr()}}let gt=null,Rr=null;function Vn(e){const t=gt;return gt=e,Rr=e&&e.type.__scopeId||null,t}function ao(e,t=gt,o){if(!t||e._n)return e;const n=(...a)=>{n._d&&Qn(-1);const s=Vn(t),r=_o.length;let l;try{l=e(...a)}finally{for(let i=_o.length;i>r;i--)gl();Vn(s),n._d&&Qn(1)}return l};return n._n=!0,n._c=!0,n._d=!0,n}function wd(e,t){if(gt===null)return e;const o=aa(gt),n=e.dirs||(e.dirs=[]);for(let a=0;a<t.length;a++){let[s,r,l,i=Te]=t[a];s&&(de(s)&&(s={mounted:s,updated:s}),s.deep&&Ht(r),n.push({dir:s,instance:o,value:r,oldValue:void 0,arg:l,modifiers:i}))}return e}function mo(e,t,o,n){const a=e.dirs,s=t&&t.dirs;for(let r=0;r<a.length;r++){const l=a[r];s&&(l.oldValue=s[r].value);let i=l.dir[n];i&&(Et(),xt(i,o,8,[e.el,l,e,t]),Ct())}}function wt(e,t){if(ot){let o=ot.provides;const n=ot.parent&&ot.parent.provides;n===o&&(o=ot.provides=Object.create(n)),o[e]=t}}function Oe(e,t,o=!1){const n=Yt();if(n||$o){let a=$o?$o._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(a&&e in a)return a[e];if(arguments.length>1)return o&&de(t)?t.call(n&&n.proxy):t}}function kd(){return!!(Yt()||$o)}const Ld=Symbol.for("v-scx"),Pd=()=>Oe(Ld);function Sd(e,t){return Za(e,null,t)}function We(e,t,o){return Za(e,t,o)}function Za(e,t,o=Te){const{immediate:n,deep:a,flush:s,once:r}=o,l=Ke({},o),i=t&&n||!t&&s!=="post";let c;if(Mo){if(s==="sync"){const _=Pd();c=_.__watcherHandles||(_.__watcherHandles=[])}else if(!i){const _=()=>{};return _.stop=St,_.resume=St,_.pause=St,_}}const u=ot;l.call=(_,O,L)=>xt(_,u,O,L);let f=!1;s==="post"?l.scheduler=_=>{dt(_,u&&u.suspense)}:s!=="sync"&&(f=!0,l.scheduler=(_,O)=>{O?_():Ya(_)}),l.augmentJob=_=>{t&&(_.flags|=4),f&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const $=hd(e,t,l);return Mo&&(c?c.push($):i&&$()),$}function Ad(e,t,o){const n=this.proxy,a=je(e)?e.includes(".")?Tr(n,e):()=>n[e]:e.bind(n,n);let s;de(t)?s=t:(s=t.handler,o=t);const r=un(this),l=Za(a,s.bind(n),o);return r(),l}function Tr(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;a<o.length&&n;a++)n=n[o[a]];return n}}const Ed=Symbol("_vte"),zn=e=>e.__isTeleport,Ja=Symbol("_leaveCb");function Cd(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Kt){t=o;break}}return t}function Or(e){if(!qn(e))return zn(e.type)&&e.children?Cd(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&de(o.default))return o.default()}}function Qa(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Qa(zn(o.type)&&Or(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function on(e,t){return de(e)?Ke({name:e.name},t,{setup:e}):e}function es(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Mr(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Wn=new WeakMap;function nn(e,t,o,n,a=!1){if(le(e)){e.forEach((L,G)=>nn(L,t&&(le(t)?t[G]:t),o,n,a));return}if(an(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&nn(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?aa(n.component):n.el,r=a?null:s,{i:l,r:i}=e,c=t&&t.r,u=l.refs===Te?l.refs={}:l.refs,f=l.setupState,$=we(f),_=f===Te?Hs:L=>Mr(u,L)?!1:Le($,L),O=(L,G)=>!(G&&Mr(u,G));if(c!=null&&c!==i){if(Nr(t),je(c))u[c]=null,_(c)&&(f[c]=null);else if(ze(c)){const L=t;O(c,L.k)&&(c.value=null),L.k&&(u[L.k]=null)}}if(de(i))Eo(i,l,12,[r,u]);else{const L=je(i),G=ze(i);if(L||G){const A=()=>{if(e.f){const k=L?_(i)?f[i]:u[i]:O()||!e.k?i.value:u[e.k];if(a)le(k)&&Oa(k,s);else if(le(k))k.includes(s)||k.push(s);else if(L)u[i]=[s],_(i)&&(f[i]=u[i]);else{const b=[s];O(i,e.k)&&(i.value=b),e.k&&(u[e.k]=b)}}else L?(u[i]=r,_(i)&&(f[i]=r)):G&&(O(i,e.k)&&(i.value=r),e.k&&(u[e.k]=r))};if(r){const k=()=>{A(),Wn.delete(e)};k.id=-1,Wn.set(e,k),dt(k,o)}else Nr(e),A()}}}function Nr(e){const t=Wn.get(e);t&&(t.flags|=8,Wn.delete(e))}const Fr=e=>e.nodeType===8;Cn().requestIdleCallback,Cn().cancelIdleCallback;function Rd(e,t){if(Fr(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(Fr(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const an=e=>!!e.type.__asyncLoader;function Ir(e){de(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:s,timeout:r,suspensible:l=!0,onError:i}=e;let c=null,u,f=0;const $=()=>(f++,c=null,_()),_=()=>{let O;return c||(O=c=t().catch(L=>{if(L=L instanceof Error?L:new Error(String(L)),i)return new Promise((G,A)=>{i(L,()=>G($()),()=>A(L),f+1)});throw L}).then(L=>O!==c&&c?c:(L&&(L.__esModule||L[Symbol.toStringTag]==="Module")&&(L=L.default),u=L,L)))};return on({name:"AsyncComponentWrapper",__asyncLoader:_,__asyncHydrate(O,L,G){const A=O.isConnected;let k=!1;(L.bu||(L.bu=[])).push(()=>k=!0);const b=()=>{k||!O.parentNode||A&&!O.isConnected||G()},m=s?()=>{const E=s(b,P=>Rd(O,P));E&&(L.bum||(L.bum=[])).push(E)}:b;u?m():_().then(()=>!L.isUnmounted&&m())},get __asyncResolved(){return u},setup(){const O=ot;if(es(O),u)return()=>Hn(u,O);const L=E=>{c=null,en(E,O,13,!n)};if(l&&O.suspense||Mo)return _().then(E=>()=>Hn(E,O)).catch(E=>(L(E),()=>n?Be(n,{error:E}):null));const G=H(!1),A=H(),k=H(!!a);let b,m;return Xn(()=>{b!=null&&clearTimeout(b),m!=null&&clearTimeout(m)}),a&&(m=setTimeout(()=>{O.isUnmounted||(k.value=!1)},a)),r!=null&&(b=setTimeout(()=>{if(!O.isUnmounted&&!G.value&&!A.value){const E=new Error(`Async component timed out after ${r}ms.`);L(E),A.value=E}},r)),_().then(()=>{O.isUnmounted||(G.value=!0,O.parent&&qn(O.parent.vnode)&&O.parent.update())}).catch(E=>{if(O.isUnmounted){c=null;return}L(E),A.value=E}),()=>{if(G.value&&u)return Hn(u,O);if(A.value&&n)return Be(n,{error:A.value});if(o&&!k.value)return Hn(o,O)}}})}function Hn(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=Be(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const qn=e=>e.type.__isKeepAlive;function Td(e,t){Dr(e,"a",t)}function Od(e,t){Dr(e,"da",t)}function Dr(e,t,o=ot){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Kn(t,n,o),o){let a=o.parent;for(;a&&a.parent;)qn(a.parent.vnode)&&Md(n,t,o,a),a=a.parent}}function Md(e,t,o,n){const a=Kn(t,e,n,!0);Xn(()=>{Oa(n[t],a)},o)}function Kn(e,t,o=ot,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{Et();const l=un(o),i=xt(t,o,e,r);return l(),Ct(),i});return n?a.unshift(s):a.push(s),s}}const qt=e=>(t,o=ot)=>{(!Mo||e==="sp")&&Kn(e,(...n)=>t(...n),o)},Gr=qt("bm"),Qe=qt("m"),Nd=qt("bu"),Fd=qt("u"),rt=qt("bum"),Xn=qt("um"),Id=qt("sp"),Dd=qt("rtg"),Gd=qt("rtc");function jd(e,t=ot){Kn("ec",e,t)}const Bd="components",jr=Symbol.for("v-ndc");function Ot(e){return je(e)?Ud(Bd,e,!1)||e:e||jr}function Ud(e,t,o=!0,n=!1){const a=gt||ot;if(a){const s=a.type;{const l=vl(s,!1);if(l&&(l===t||l===Je(t)||l===En(Je(t))))return s}const r=Br(a[e]||s[e],t)||Br(a.appContext[e],t);return!r&&n?s:r}}function Br(e,t){return e&&(e[t]||e[Je(t)]||e[En(Je(t))])}function xe(e,t,o,n){let a;const s=o,r=le(e);if(r||je(e)){const l=r&&zt(e);let i=!1,c=!1;l&&(i=!ut(e),c=Wt(e),e=On(e)),a=new Array(e.length);for(let u=0,f=e.length;u<f;u++)a[u]=t(i?c?So(vt(e[u])):vt(e[u]):e[u],u,void 0,s)}else if(typeof e=="number"){a=new Array(e);for(let l=0;l<e;l++)a[l]=t(l+1,l,void 0,s)}else if(Ae(e))if(e[Symbol.iterator])a=Array.from(e,(l,i)=>t(l,i,void 0,s));else{const l=Object.keys(e);a=new Array(l.length);for(let i=0,c=l.length;i<c;i++){const u=l[i];a[i]=t(e[u],u,i,s)}}else a=[];return a}const ts=e=>e?bl(e)?aa(e):ts(e.parent):null,sn=Ke(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ts(e.parent),$root:e=>ts(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Wr(e),$forceUpdate:e=>e.f||(e.f=()=>{Ya(e.update)}),$nextTick:e=>e.n||(e.n=To.bind(e.proxy)),$watch:e=>Ad.bind(e)}),os=(e,t)=>e!==Te&&!e.__isScriptSetup&&Le(e,t),Vd={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:s,accessCache:r,type:l,appContext:i}=e;if(t[0]!=="$"){const $=r[t];if($!==void 0)switch($){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(os(n,t))return r[t]=1,n[t];if(a!==Te&&Le(a,t))return r[t]=2,a[t];if(Le(s,t))return r[t]=3,s[t];if(o!==Te&&Le(o,t))return r[t]=4,o[t];ns&&(r[t]=0)}}const c=sn[t];let u,f;if(c)return t==="$attrs"&&st(e.attrs,"get",""),c(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(o!==Te&&Le(o,t))return r[t]=4,o[t];if(f=i.config.globalProperties,Le(f,t))return f[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return os(a,t)?(a[t]=o,!0):n!==Te&&Le(n,t)?(n[t]=o,!0):Le(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:s,type:r}},l){let i;return!!(o[l]||e!==Te&&l[0]!=="$"&&Le(e,l)||os(t,l)||Le(s,l)||Le(n,l)||Le(sn,l)||Le(a.config.globalProperties,l)||(i=r.__cssModules)&&i[l])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Le(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Ur(e){return le(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let ns=!0;function zd(e){const t=Wr(e),o=e.proxy,n=e.ctx;ns=!1,t.beforeCreate&&Vr(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:l,provide:i,inject:c,created:u,beforeMount:f,mounted:$,beforeUpdate:_,updated:O,activated:L,deactivated:G,beforeDestroy:A,beforeUnmount:k,destroyed:b,unmounted:m,render:E,renderTracked:P,renderTriggered:F,errorCaptured:T,serverPrefetch:S,expose:W,inheritAttrs:X,components:K,directives:ae,filters:ge}=t;if(c&&Wd(c,n,null),r)for(const ee in r){const ce=r[ee];de(ce)&&(n[ee]=ce.bind(o))}if(a){const ee=a.call(o,o);Ae(ee)&&(e.data=In(ee))}if(ns=!0,s)for(const ee in s){const ce=s[ee],Ne=de(ce)?ce.bind(o,o):de(ce.get)?ce.get.bind(o,o):St,Z=!de(ce)&&de(ce.set)?ce.set.bind(o):St,J=ne({get:Ne,set:Z});Object.defineProperty(n,ee,{enumerable:!0,configurable:!0,get:()=>J.value,set:te=>J.value=te})}if(l)for(const ee in l)zr(l[ee],n,o,ee);if(i){const ee=de(i)?i.call(o):i;Reflect.ownKeys(ee).forEach(ce=>{wt(ce,ee[ce])})}u&&Vr(u,e,"c");function se(ee,ce){le(ce)?ce.forEach(Ne=>ee(Ne.bind(o))):ce&&ee(ce.bind(o))}if(se(Gr,f),se(Qe,$),se(Nd,_),se(Fd,O),se(Td,L),se(Od,G),se(jd,T),se(Gd,P),se(Dd,F),se(rt,k),se(Xn,m),se(Id,S),le(W))if(W.length){const ee=e.exposed||(e.exposed={});W.forEach(ce=>{Object.defineProperty(ee,ce,{get:()=>o[ce],set:Ne=>o[ce]=Ne,enumerable:!0})})}else e.exposed||(e.exposed={});E&&e.render===St&&(e.render=E),X!=null&&(e.inheritAttrs=X),K&&(e.components=K),ae&&(e.directives=ae),S&&es(e)}function Wd(e,t,o=St){le(e)&&(e=as(e));for(const n in e){const a=e[n];let s;Ae(a)?"default"in a?s=Oe(a.from||n,a.default,!0):s=Oe(a.from||n):s=Oe(a),ze(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function Vr(e,t,o){xt(le(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function zr(e,t,o,n){let a=n.includes(".")?Tr(o,n):()=>o[n];if(je(e)){const s=t[e];de(s)&&We(a,s)}else if(de(e))We(a,e.bind(o));else if(Ae(e))if(le(e))e.forEach(s=>zr(s,t,o,n));else{const s=de(e.handler)?e.handler.bind(o):t[e.handler];de(s)&&We(a,s,e)}}function Wr(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,l=s.get(t);let i;return l?i=l:!a.length&&!o&&!n?i=t:(i={},a.length&&a.forEach(c=>Yn(i,c,r,!0)),Yn(i,t,r)),Ae(t)&&s.set(t,i),i}function Yn(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Yn(e,s,o,!0),a&&a.forEach(r=>Yn(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const l=Hd[r]||o&&o[r];e[r]=l?l(e[r],t[r]):t[r]}return e}const Hd={data:Hr,props:qr,emits:qr,methods:rn,computed:rn,beforeCreate:it,created:it,beforeMount:it,mounted:it,beforeUpdate:it,updated:it,beforeDestroy:it,beforeUnmount:it,destroyed:it,unmounted:it,activated:it,deactivated:it,errorCaptured:it,serverPrefetch:it,components:rn,directives:rn,watch:Kd,provide:Hr,inject:qd};function Hr(e,t){return t?e?function(){return Ke(de(e)?e.call(this,this):e,de(t)?t.call(this,this):t)}:t:e}function qd(e,t){return rn(as(e),as(t))}function as(e){if(le(e)){const t={};for(let o=0;o<e.length;o++)t[e[o]]=e[o];return t}return e}function it(e,t){return e?[...new Set([].concat(e,t))]:t}function rn(e,t){return e?Ke(Object.create(null),e,t):t}function qr(e,t){return e?le(e)&&le(t)?[...new Set([...e,...t])]:Ke(Object.create(null),Ur(e),Ur(t??{})):t}function Kd(e,t){if(!e)return t;if(!t)return e;const o=Ke(Object.create(null),e);for(const n in t)o[n]=it(e[n],t[n]);return o}function Kr(){return{app:null,config:{isNativeTag:Hs,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Xd=0;function Yd(e,t){return function(n,a=null){de(n)||(n=Ke({},n)),a!=null&&!Ae(a)&&(a=null);const s=Kr(),r=new WeakSet,l=[];let i=!1;const c=s.app={_uid:Xd++,_component:n,_props:a,_container:null,_context:s,_instance:null,version:Ap,get config(){return s.config},set config(u){},use(u,...f){return r.has(u)||(u&&de(u.install)?(r.add(u),u.install(c,...f)):de(u)&&(r.add(u),u(c,...f))),c},mixin(u){return s.mixins.includes(u)||s.mixins.push(u),c},component(u,f){return f?(s.components[u]=f,c):s.components[u]},directive(u,f){return f?(s.directives[u]=f,c):s.directives[u]},mount(u,f,$){if(!i){const _=c._ceVNode||Be(n,a);return _.appContext=s,$===!0?$="svg":$===!1&&($=void 0),e(_,u,$),i=!0,c._container=u,u.__vue_app__=c,aa(_.component)}},onUnmount(u){l.push(u)},unmount(){i&&(xt(l,c._instance,16),e(null,c._container),delete c._container.__vue_app__)},provide(u,f){return s.provides[u]=f,c},runWithContext(u){const f=$o;$o=c;try{return u()}finally{$o=f}}};return c}}let $o=null;const Zd=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Je(t)}Modifiers`]||e[`${$t(t)}Modifiers`];function Jd(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Te;let a=o;const s=t.startsWith("update:"),r=s&&Zd(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>je(u)?u.trim():u)),r.number&&(a=a.map(Mc)));let l,i=n[l=Ma(t)]||n[l=Ma(Je(t))];!i&&s&&(i=n[l=Ma($t(t))]),i&&xt(i,e,6,a);const c=n[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,xt(c,e,6,a)}}const Qd=new WeakMap;function Xr(e,t,o=!1){const n=o?Qd:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},l=!1;if(!de(e)){const i=c=>{const u=Xr(c,t,!0);u&&(l=!0,Ke(r,u))};!o&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!s&&!l?(Ae(e)&&n.set(e,null),null):(le(s)?s.forEach(i=>r[i]=null):Ke(r,s),Ae(e)&&n.set(e,r),r)}function Zn(e,t){return!e||!wn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Le(e,t[0].toLowerCase()+t.slice(1))||Le(e,$t(t))||Le(e,t))}function Dv(){}function Yr(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:l,emit:i,render:c,renderCache:u,props:f,data:$,setupState:_,ctx:O,inheritAttrs:L}=e,G=Vn(e);let A,k;try{if(o.shapeFlag&4){const m=a||n,E=m;A=Mt(c.call(E,m,u,f,_,$,O)),k=l}else{const m=t;A=Mt(m.length>1?m(f,{attrs:l,slots:r,emit:i}):m(f,null)),k=t.props?l:ep(l)}}catch(m){_o.length=0,en(m,e,1),A=Be(Kt)}let b=A;if(k&&L!==!1){const m=Object.keys(k),{shapeFlag:E}=b;m.length&&E&7&&(s&&m.some(kn)&&(k=tp(k,s)),b=Oo(b,k,!1,!0))}if(o.dirs&&(b=Oo(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(o.dirs):o.dirs),o.transition){const m=zn(b.type)&&Or(b)||b;Qa(m,o.transition)}return A=b,Vn(G),A}const ep=e=>{let t;for(const o in e)(o==="class"||o==="style"||wn(o))&&((t||(t={}))[o]=e[o]);return t},tp=(e,t)=>{const o={};for(const n in e)(!kn(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function op(e,t,o){const{props:n,children:a,component:s}=e,{props:r,children:l,patchFlag:i}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&i>=0){if(i&1024)return!0;if(i&16)return n?Zr(n,r,c):!!r;if(i&8){const u=t.dynamicProps;for(let f=0;f<u.length;f++){const $=u[f];if(Jr(r,n,$)&&!Zn(c,$))return!0}}}else return(a||l)&&(!l||!l.$stable)?!0:n===r?!1:n?r?Zr(n,r,c):!0:!!r;return!1}function Zr(e,t,o){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let a=0;a<n.length;a++){const s=n[a];if(Jr(t,e,s)&&!Zn(o,s))return!0}return!1}function Jr(e,t,o){const n=e[o],a=t[o];return o==="style"&&Ae(n)&&Ae(a)?!Rn(n,a):n!==a}function np({vnode:e,parent:t,suspense:o},n){for(;t;){const a=t.subTree;if(a.suspense&&a.suspense.activeBranch===e&&(a.suspense.vnode.el=a.el=n,e=a),a===e)(e=t.vnode).el=n,t=t.parent;else break}o&&o.activeBranch===e&&(o.vnode.el=n)}const Qr={},el=()=>Object.create(Qr),tl=e=>Object.getPrototypeOf(e)===Qr;function ap(e,t,o,n=!1){const a={},s=el();e.propsDefaults=Object.create(null),ol(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:rd(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function sp(e,t,o,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,l=we(a),[i]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let f=0;f<u.length;f++){let $=u[f];if(Zn(e.emitsOptions,$))continue;const _=t[$];if(i)if(Le(s,$))_!==s[$]&&(s[$]=_,c=!0);else{const O=Je($);a[O]=ss(i,l,O,_,e,!1)}else _!==s[$]&&(s[$]=_,c=!0)}}}else{ol(e,t,a,s)&&(c=!0);let u;for(const f in l)(!t||!Le(t,f)&&((u=$t(f))===f||!Le(t,u)))&&(i?o&&(o[f]!==void 0||o[u]!==void 0)&&(a[f]=ss(i,l,f,void 0,e,!0)):delete a[f]);if(s!==l)for(const f in s)(!t||!Le(t,f))&&(delete s[f],c=!0)}c&&Ut(e.attrs,"set","")}function ol(e,t,o,n){const[a,s]=e.propsOptions;let r=!1,l;if(t)for(let i in t){if(Ho(i))continue;const c=t[i];let u;a&&Le(a,u=Je(i))?!s||!s.includes(u)?o[u]=c:(l||(l={}))[u]=c:Zn(e.emitsOptions,i)||(!(i in n)||c!==n[i])&&(n[i]=c,r=!0)}if(s){const i=we(o),c=l||Te;for(let u=0;u<s.length;u++){const f=s[u];o[f]=ss(a,i,f,c[f],e,!Le(c,f))}}return r}function ss(e,t,o,n,a,s){const r=e[o];if(r!=null){const l=Le(r,"default");if(l&&n===void 0){const i=r.default;if(r.type!==Function&&!r.skipFactory&&de(i)){const{propsDefaults:c}=a;if(o in c)n=c[o];else{const u=un(a);n=c[o]=i.call(null,t),u()}}else n=i;a.ce&&a.ce._setProp(o,n)}r[0]&&(s&&!l?n=!1:r[1]&&(n===""||n===$t(o))&&(n=!0))}return n}const rp=new WeakMap;function nl(e,t,o=!1){const n=o?rp:t.propsCache,a=n.get(e);if(a)return a;const s=e.props,r={},l=[];let i=!1;if(!de(e)){const u=f=>{i=!0;const[$,_]=nl(f,t,!0);Ke(r,$),_&&l.push(..._)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!i)return Ae(e)&&n.set(e,Lo),Lo;if(le(s))for(let u=0;u<s.length;u++){const f=Je(s[u]);al(f)&&(r[f]=Te)}else if(s)for(const u in s){const f=Je(u);if(al(f)){const $=s[u],_=r[f]=le($)||de($)?{type:$}:Ke({},$),O=_.type;let L=!1,G=!0;if(le(O))for(let A=0;A<O.length;++A){const k=O[A],b=de(k)&&k.name;if(b==="Boolean"){L=!0;break}else b==="String"&&(G=!1)}else L=de(O)&&O.name==="Boolean";_[0]=L,_[1]=G,(L||Le(_,"default"))&&l.push(f)}}const c=[r,l];return Ae(e)&&n.set(e,c),c}function al(e){return e[0]!=="$"&&!Ho(e)}const rs=e=>e==="_"||e==="_ctx"||e==="$stable",ls=e=>le(e)?e.map(Mt):[Mt(e)],lp=(e,t,o)=>{if(t._n)return t;const n=ao((...a)=>ls(t(...a)),o);return n._c=!1,n},sl=(e,t,o)=>{const n=e._ctx;for(const a in e){if(rs(a))continue;const s=e[a];if(de(s))t[a]=lp(a,s,n);else if(s!=null){const r=ls(s);t[a]=()=>r}}},rl=(e,t)=>{const o=ls(t);e.slots.default=()=>o},ll=(e,t,o)=>{for(const n in t)(o||!rs(n))&&(e[n]=t[n])},ip=(e,t,o)=>{const n=e.slots=el();if(e.vnode.shapeFlag&32){const a=t._;a?(ll(n,t,o),o&&Ys(n,"_",a,!0)):sl(t,n)}else t&&rl(e,t)},cp=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=Te;if(n.shapeFlag&32){const l=t._;l?o&&l===1?s=!1:ll(a,t,o):(s=!t.$stable,sl(t,a)),r=t}else t&&(rl(e,t),r={default:1});if(s)for(const l in a)!rs(l)&&r[l]==null&&delete a[l]},dt=fp;function dp(e){return pp(e)}function pp(e,t){const o=Cn();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:l,createComment:i,setText:c,setElementText:u,parentNode:f,nextSibling:$,setScopeId:_=St,insertStaticContent:O}=e,L=(h,v,x,D=null,w=null,p=null,C=void 0,N=null,d=!!v.dynamicChildren)=>{if(h===v)return;h&&!dn(h,v)&&(D=qe(h),te(h,w,p,!0),h=null),v.patchFlag===-2&&(d=!1,v.dynamicChildren=null);const{type:g,ref:R,shapeFlag:M}=v;switch(g){case ln:G(h,v,x,D);break;case Kt:A(h,v,x,D);break;case Jn:h==null&&k(v,x,D,C);break;case re:K(h,v,x,D,w,p,C,N,d);break;default:M&1?E(h,v,x,D,w,p,C,N,d):M&6?ae(h,v,x,D,w,p,C,N,d):(M&64||M&128)&&g.process(h,v,x,D,w,p,C,N,d,Se)}R!=null&&w?nn(R,h&&h.ref,p,v||h,!v):R==null&&h&&h.ref!=null&&nn(h.ref,null,p,h,!0)},G=(h,v,x,D)=>{if(h==null)n(v.el=l(v.children),x,D);else{const w=v.el=h.el;v.children!==h.children&&c(w,v.children)}},A=(h,v,x,D)=>{h==null?n(v.el=i(v.children||""),x,D):v.el=h.el},k=(h,v,x,D)=>{[h.el,h.anchor]=O(h.children,v,x,D,h.el,h.anchor)},b=({el:h,anchor:v},x,D)=>{let w;for(;h&&h!==v;)w=$(h),n(h,x,D),h=w;n(v,x,D)},m=({el:h,anchor:v})=>{let x;for(;h&&h!==v;)x=$(h),a(h),h=x;a(v)},E=(h,v,x,D,w,p,C,N,d)=>{if(v.type==="svg"?C="svg":v.type==="math"&&(C="mathml"),h==null)P(v,x,D,w,p,C,N,d);else{const g=h.el&&h.el._isVueCE?h.el:null;try{g&&g._beginPatch(),S(h,v,w,p,C,N,d)}finally{g&&g._endPatch()}}},P=(h,v,x,D,w,p,C,N)=>{let d,g;const{props:R,shapeFlag:M,transition:V,dirs:z}=h;if(d=h.el=r(h.type,p,R&&R.is,R),M&8?u(d,h.children):M&16&&T(h.children,d,null,D,w,is(h,p),C,N),z&&mo(h,null,D,"created"),F(d,h,h.scopeId,C,D),R){for(const B in R)B!=="value"&&!Ho(B)&&s(d,B,null,R[B],p,D);"value"in R&&s(d,"value",null,R.value,p),(g=R.onVnodeBeforeMount)&&Nt(g,D,h)}z&&mo(h,null,D,"beforeMount");const I=up(w,V);I&&V.beforeEnter(d),n(d,v,x),((g=R&&R.onVnodeMounted)||I||z)&&dt(()=>{try{g&&Nt(g,D,h),I&&V.enter(d),z&&mo(h,null,D,"mounted")}finally{}},w)},F=(h,v,x,D,w)=>{if(x&&_(h,x),D)for(let p=0;p<D.length;p++)_(h,D[p]);if(w){let p=w.subTree;if(v===p||ul(p.type)&&(p.ssContent===v||p.ssFallback===v)){const C=w.vnode;F(h,C,C.scopeId,C.slotScopeIds,w.parent)}}},T=(h,v,x,D,w,p,C,N,d=0)=>{for(let g=d;g<h.length;g++){const R=h[g]=N?Xt(h[g]):Mt(h[g]);L(null,R,v,x,D,w,p,C,N)}},S=(h,v,x,D,w,p,C)=>{const N=v.el=h.el;let{patchFlag:d,dynamicChildren:g,dirs:R}=v;d|=h.patchFlag&16;const M=h.props||Te,V=v.props||Te;let z;if(x&&bo(x,!1),(z=V.onVnodeBeforeUpdate)&&Nt(z,x,v,h),R&&mo(v,h,x,"beforeUpdate"),x&&bo(x,!0),g&&(!h.dynamicChildren||h.dynamicChildren.length!==g.length)&&(d=0,C=!1,g=null),(M.innerHTML&&V.innerHTML==null||M.textContent&&V.textContent==null)&&u(N,""),g?W(h.dynamicChildren,g,N,x,D,is(v,w),p):C||ce(h,v,N,null,x,D,is(v,w),p,!1),d>0){if(d&16)X(N,M,V,x,w);else if(d&2&&M.class!==V.class&&s(N,"class",null,V.class,w),d&4&&s(N,"style",M.style,V.style,w),d&8){const I=v.dynamicProps;for(let B=0;B<I.length;B++){const oe=I[B],me=M[oe],fe=V[oe];(fe!==me||oe==="value")&&s(N,oe,me,fe,w,x)}}d&1&&h.children!==v.children&&u(N,v.children)}else!C&&g==null&&X(N,M,V,x,w);((z=V.onVnodeUpdated)||R)&&dt(()=>{z&&Nt(z,x,v,h),R&&mo(v,h,x,"updated")},D)},W=(h,v,x,D,w,p,C)=>{for(let N=0;N<v.length;N++){const d=h[N],g=v[N],R=d.el&&(d.type===re||!dn(d,g)||d.shapeFlag&198)?f(d.el):x;L(d,g,R,null,D,w,p,C,!0)}},X=(h,v,x,D,w)=>{if(v!==x){if(v!==Te)for(const p in v)!Ho(p)&&!(p in x)&&s(h,p,v[p],null,w,D);for(const p in x){if(Ho(p))continue;const C=x[p],N=v[p];C!==N&&p!=="value"&&s(h,p,N,C,w,D)}"value"in x&&s(h,"value",v.value,x.value,w)}},K=(h,v,x,D,w,p,C,N,d)=>{const g=v.el=h?h.el:l(""),R=v.anchor=h?h.anchor:l("");let{patchFlag:M,dynamicChildren:V,slotScopeIds:z}=v;z&&(N=N?N.concat(z):z),h==null?(n(g,x,D),n(R,x,D),T(v.children||[],x,R,w,p,C,N,d)):M>0&&M&64&&V&&h.dynamicChildren&&h.dynamicChildren.length===V.length?(W(h.dynamicChildren,V,x,w,p,C,N),(v.key!=null||w&&v===w.subTree)&&il(h,v,!0)):ce(h,v,x,R,w,p,C,N,d)},ae=(h,v,x,D,w,p,C,N,d)=>{v.slotScopeIds=N,h==null?v.shapeFlag&512?w.ctx.activate(v,x,D,C,d):ge(v,x,D,w,p,C,d):ye(h,v,d)},ge=(h,v,x,D,w,p,C)=>{const N=h.component=yp(h,D,w);if(qn(h)&&(N.ctx.renderer=Se),vp(N,!1,C),N.asyncDep){if(w&&w.registerDep(N,se,C),!h.el){const d=N.subTree=Be(Kt);A(null,d,v,x),h.placeholder=d.el}}else se(N,h,v,x,w,p,C)},ye=(h,v,x)=>{const D=v.component=h.component;if(op(h,v,x))if(D.asyncDep&&!D.asyncResolved){ee(D,v,x);return}else D.next=v,D.update();else v.el=h.el,D.vnode=v},se=(h,v,x,D,w,p,C)=>{const N=()=>{if(h.isMounted){let{next:M,bu:V,u:z,parent:I,vnode:B}=h;{const Ge=cl(h);if(Ge){M&&(M.el=B.el,ee(h,M,C)),Ge.asyncDep.then(()=>{dt(()=>{h.isUnmounted||g()},w)});return}}let oe=M,me;bo(h,!1),M?(M.el=B.el,ee(h,M,C)):M=B,V&&Na(V),(me=M.props&&M.props.onVnodeBeforeUpdate)&&Nt(me,I,M,B),bo(h,!0);const fe=Yr(h),Re=h.subTree;h.subTree=fe,L(Re,fe,f(Re.el),qe(Re),h,w,p),M.el=fe.el,oe===null&&np(h,fe.el),z&&dt(z,w),(me=M.props&&M.props.onVnodeUpdated)&&dt(()=>Nt(me,I,M,B),w)}else{let M;const{el:V,props:z}=v,{bm:I,m:B,parent:oe,root:me,type:fe}=h,Re=an(v);bo(h,!1),I&&Na(I),!Re&&(M=z&&z.onVnodeBeforeMount)&&Nt(M,oe,v),bo(h,!0);{me.ce&&me.ce._hasShadowRoot()&&me.ce._injectChildStyle(fe,h.parent?h.parent.type:void 0);const Ge=h.subTree=Yr(h);L(null,Ge,x,D,h,w,p),v.el=Ge.el}if(B&&dt(B,w),!Re&&(M=z&&z.onVnodeMounted)){const Ge=v;dt(()=>Nt(M,oe,Ge),w)}(v.shapeFlag&256||oe&&an(oe.vnode)&&oe.vnode.shapeFlag&256)&&h.a&&dt(h.a,w),h.isMounted=!0,v=x=D=null}};h.scope.on();const d=h.effect=new sr(N);h.scope.off();const g=h.update=d.run.bind(d),R=h.job=d.runIfDirty.bind(d);R.i=h,R.id=h.uid,d.scheduler=()=>Ya(R),bo(h,!0),g()},ee=(h,v,x)=>{v.component=h;const D=h.vnode.props;h.vnode=v,h.next=null,sp(h,v.props,D,x),cp(h,v.children,x),Et(),Ar(h),Ct()},ce=(h,v,x,D,w,p,C,N,d=!1)=>{const g=h&&h.children,R=h?h.shapeFlag:0,M=v.children,{patchFlag:V,shapeFlag:z}=v;if(V>0){if(V&128){Z(g,M,x,D,w,p,C,N,d);return}else if(V&256){Ne(g,M,x,D,w,p,C,N,d);return}}z&8?(R&16&&Pe(g,w,p),M!==g&&u(x,M)):R&16?z&16?Z(g,M,x,D,w,p,C,N,d):Pe(g,w,p,!0):(R&8&&u(x,""),z&16&&T(M,x,D,w,p,C,N,d))},Ne=(h,v,x,D,w,p,C,N,d)=>{h=h||Lo,v=v||Lo;const g=h.length,R=v.length,M=Math.min(g,R);let V;for(V=0;V<M;V++){const z=v[V]=d?Xt(v[V]):Mt(v[V]);L(h[V],z,x,null,w,p,C,N,d)}g>R?Pe(h,w,p,!0,!1,M):T(v,x,D,w,p,C,N,d,M)},Z=(h,v,x,D,w,p,C,N,d)=>{let g=0;const R=v.length;let M=h.length-1,V=R-1;for(;g<=M&&g<=V;){const z=h[g],I=v[g]=d?Xt(v[g]):Mt(v[g]);if(dn(z,I))L(z,I,x,null,w,p,C,N,d);else break;g++}for(;g<=M&&g<=V;){const z=h[M],I=v[V]=d?Xt(v[V]):Mt(v[V]);if(dn(z,I))L(z,I,x,null,w,p,C,N,d);else break;M--,V--}if(g>M){if(g<=V){const z=V+1,I=z<R?v[z].el:D;for(;g<=V;)L(null,v[g]=d?Xt(v[g]):Mt(v[g]),x,I,w,p,C,N,d),g++}}else if(g>V)for(;g<=M;)te(h[g],w,p,!0),g++;else{const z=g,I=g,B=new Map;for(g=I;g<=V;g++){const ht=v[g]=d?Xt(v[g]):Mt(v[g]);ht.key!=null&&B.set(ht.key,g)}let oe,me=0;const fe=V-I+1;let Re=!1,Ge=0;const jt=new Array(fe);for(g=0;g<fe;g++)jt[g]=0;for(g=z;g<=M;g++){const ht=h[g];if(me>=fe){te(ht,w,p,!0);continue}let Bt;if(ht.key!=null)Bt=B.get(ht.key);else for(oe=I;oe<=V;oe++)if(jt[oe-I]===0&&dn(ht,v[oe])){Bt=oe;break}Bt===void 0?te(ht,w,p,!0):(jt[Bt-I]=g+1,Bt>=Ge?Ge=Bt:Re=!0,L(ht,v[Bt],x,null,w,p,C,N,d),me++)}const Ws=Re?gp(jt):Lo;for(oe=Ws.length-1,g=fe-1;g>=0;g--){const ht=I+g,Bt=v[ht],Ac=v[ht+1],Ec=ht+1<R?Ac.el||pl(Ac):D;jt[g]===0?L(null,Bt,x,Ec,w,p,C,N,d):Re&&(oe<0||g!==Ws[oe]?J(Bt,x,Ec,2):oe--)}}},J=(h,v,x,D,w=null)=>{const{el:p,type:C,transition:N,children:d,shapeFlag:g}=h;if(g&6){J(h.component.subTree,v,x,D);return}if(g&128){h.suspense.move(v,x,D);return}if(g&64){C.move(h,v,x,Se);return}if(C===re){n(p,v,x);for(let M=0;M<d.length;M++)J(d[M],v,x,D);n(h.anchor,v,x);return}if(C===Jn){b(h,v,x);return}if(D!==2&&g&1&&N)if(D===0)N.persisted&&!p[Ja]?n(p,v,x):(N.beforeEnter(p),n(p,v,x),dt(()=>N.enter(p),w));else{const{leave:M,delayLeave:V,afterLeave:z}=N,I=()=>{h.ctx.isUnmounted?a(p):n(p,v,x)},B=()=>{const oe=p._isLeaving||!!p[Ja];p._isLeaving&&p[Ja](!0),N.persisted&&!oe?I():M(p,()=>{I(),z&&z()})};V?V(p,I,B):B()}else n(p,v,x)},te=(h,v,x,D=!1,w=!1)=>{const{type:p,props:C,ref:N,children:d,dynamicChildren:g,shapeFlag:R,patchFlag:M,dirs:V,cacheIndex:z,memo:I}=h;if(M===-2&&(w=!1),N!=null&&(Et(),nn(N,null,x,h,!0),Ct()),z!=null&&(v.renderCache[z]=void 0),R&256){v.ctx.deactivate(h);return}const B=R&1&&V,oe=!an(h);let me;if(oe&&(me=C&&C.onVnodeBeforeUnmount)&&Nt(me,v,h),R&6)He(h.component,x,D);else{if(R&128){h.suspense.unmount(x,D);return}B&&mo(h,null,v,"beforeUnmount"),R&64?h.type.remove(h,v,x,Se,D):g&&!g.hasOnce&&(p!==re||M>0&&M&64)?Pe(g,v,x,!1,!0):(p===re&&M&384||!w&&R&16)&&Pe(d,v,x),D&&be(h)}const fe=I!=null&&z==null;(oe&&(me=C&&C.onVnodeUnmounted)||B||fe)&&dt(()=>{me&&Nt(me,v,h),B&&mo(h,null,v,"unmounted"),fe&&(h.el=null)},x)},be=h=>{const{type:v,el:x,anchor:D,transition:w}=h;if(v===re){De(x,D);return}if(v===Jn){m(h);return}const p=()=>{a(x),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(h.shapeFlag&1&&w&&!w.persisted){const{leave:C,delayLeave:N}=w,d=()=>C(x,p);N?N(h.el,p,d):d()}else p()},De=(h,v)=>{let x;for(;h!==v;)x=$(h),a(h),h=x;a(v)},He=(h,v,x)=>{const{bum:D,scope:w,job:p,subTree:C,um:N,m:d,a:g}=h;dl(d),dl(g),D&&Na(D),w.stop(),p&&(p.flags|=8,te(C,h,v,x)),N&&dt(N,v),dt(()=>{h.isUnmounted=!0},v)},Pe=(h,v,x,D=!1,w=!1,p=0)=>{for(let C=p;C<h.length;C++)te(h[C],v,x,D,w)},qe=h=>{if(h.shapeFlag&6)return qe(h.component.subTree);if(h.shapeFlag&128)return h.suspense.next();const v=$(h.anchor||h.el),x=v&&v[Ed];return x?$(x):v};let pe=!1;const $e=(h,v,x)=>{let D;h==null?v._vnode&&(te(v._vnode,null,null,!0),D=v._vnode.component):L(v._vnode||null,h,v,null,null,null,x),v._vnode=h,pe||(pe=!0,Ar(D),Er(),pe=!1)},Se={p:L,um:te,m:J,r:be,mt:ge,mc:T,pc:ce,pbc:W,n:qe,o:e};return{render:$e,hydrate:void 0,createApp:Yd($e)}}function is({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function bo({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function up(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function il(e,t,o=!1){const n=e.children,a=t.children;if(le(n)&&le(a))for(let s=0;s<n.length;s++){const r=n[s];let l=a[s];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=a[s]=Xt(a[s]),l.el=r.el),!o&&l.patchFlag!==-2&&il(r,l)),l.type===ln&&(l.patchFlag===-1&&(l=a[s]=Xt(l)),l.el=r.el),l.type===Kt&&!l.el&&(l.el=r.el)}}function gp(e){const t=e.slice(),o=[0];let n,a,s,r,l;const i=e.length;for(n=0;n<i;n++){const c=e[n];if(c!==0){if(a=o[o.length-1],e[a]<c){t[n]=a,o.push(n);continue}for(s=0,r=o.length-1;s<r;)l=s+r>>1,e[o[l]]<c?s=l+1:r=l;c<e[o[s]]&&(s>0&&(t[n]=o[s-1]),o[s]=n)}}for(s=o.length,r=o[s-1];s-- >0;)o[s]=r,r=t[r];return o}function cl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:cl(t)}function dl(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function pl(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?pl(t.subTree):null}const ul=e=>e.__isSuspense;function fp(e,t){t&&t.pendingBranch?le(e)?t.effects.push(...e):t.effects.push(e):xd(e)}const re=Symbol.for("v-fgt"),ln=Symbol.for("v-txt"),Kt=Symbol.for("v-cmt"),Jn=Symbol.for("v-stc"),_o=[];let ft=null;function j(e=!1){_o.push(ft=e?null:[])}function gl(){_o.pop(),ft=_o[_o.length-1]||null}let cn=1;function Qn(e,t=!1){cn+=e,e<0&&ft&&t&&(ft.hasOnce=!0)}function fl(e){return e.dynamicChildren=cn>0?ft||Lo:null,gl(),cn>0&&ft&&ft.push(e),e}function U(e,t,o,n,a,s){return fl(y(e,t,o,n,a,s,!0))}function Me(e,t,o,n,a){return fl(Be(e,t,o,n,a,!0))}function ea(e){return e?e.__v_isVNode===!0:!1}function dn(e,t){return e.type===t.type&&e.key===t.key}const hl=({key:e})=>e??null,ta=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?je(e)||ze(e)||de(e)?{i:gt,r:e,k:t,f:!!o}:e:null);function y(e,t=null,o=null,n=0,a=null,s=e===re?0:1,r=!1,l=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&hl(t),ref:t&&ta(t),scopeId:Rr,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:gt};return l?(oa(i,o),s&128&&e.normalize(i)):o&&(i.shapeFlag|=je(o)?8:16),cn>0&&!r&&ft&&(i.patchFlag>0||s&6)&&i.patchFlag!==32&&ft.push(i),i}const Be=hp;function hp(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===jr)&&(e=Kt),ea(e)){const l=Oo(e,t,!0);return o&&oa(l,o),cn>0&&!s&&ft&&(l.shapeFlag&6?ft[ft.indexOf(e)]=l:ft.push(l)),l.patchFlag=-2,l}if(Sp(e)&&(e=e.__vccOpts),t){t=mp(t);let{class:l,style:i}=t;l&&!je(l)&&(t.class=Ve(l)),Ae(i)&&(Gn(i)&&!le(i)&&(i=Ke({},i)),t.style=at(i))}const r=je(e)?1:ul(e)?128:zn(e)?64:Ae(e)?4:de(e)?2:0;return y(e,t,o,n,a,r,s,!0)}function mp(e){return e?Gn(e)||tl(e)?Ke({},e):e:null}function Oo(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:l,transition:i}=e,c=t?$p(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&hl(c),ref:t&&t.ref?o&&s?le(s)?s.concat(ta(t)):[s,ta(t)]:ta(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==re?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Oo(e.ssContent),ssFallback:e.ssFallback&&Oo(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&n&&Qa(u,i.clone(u)),u}function Ee(e=" ",t=0){return Be(ln,null,e,t)}function ml(e,t){const o=Be(Jn,null,e);return o.staticCount=t,o}function he(e="",t=!1){return t?(j(),Me(Kt,null,e)):Be(Kt,null,e)}function Mt(e){return e==null||typeof e=="boolean"?Be(Kt):le(e)?Be(re,null,e.slice()):ea(e)?Xt(e):Be(ln,null,String(e))}function Xt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Oo(e)}function oa(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(le(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),oa(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!tl(t)?t._ctx=gt:a===3&>&&(gt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(de(t)){if(n&65){oa(e,{default:t});return}t={default:t,_ctx:gt},o=32}else t=String(t),n&64?(o=16,t=[Ee(t)]):o=8;e.children=t,e.shapeFlag|=o}function $p(...e){const t={};for(let o=0;o<e.length;o++){const n=e[o];for(const a in n)if(a==="class")t.class!==n.class&&(t.class=Ve([t.class,n.class]));else if(a==="style")t.style=at([t.style,n.style]);else if(wn(a)){const s=t[a],r=n[a];r&&s!==r&&!(le(s)&&s.includes(r))?t[a]=s?[].concat(s,r):r:r==null&&s==null&&!kn(a)&&(t[a]=r)}else a!==""&&(t[a]=n[a])}return t}function Nt(e,t,o,n=null){xt(e,t,7,[o,n])}const bp=Kr();let _p=0;function yp(e,t,o){const n=e.type,a=(t?t.appContext:e.appContext)||bp,s={uid:_p++,vnode:e,type:n,parent:t,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new nr(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(a.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:nl(n,a),emitsOptions:Xr(n,a),emit:null,emitted:null,propsDefaults:Te,inheritAttrs:n.inheritAttrs,ctx:Te,data:Te,props:Te,attrs:Te,slots:Te,refs:Te,setupState:Te,setupContext:null,suspense:o,suspenseId:o?o.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=Jd.bind(null,s),e.ce&&e.ce(s),s}let ot=null;const Yt=()=>ot||gt;let na,pn;{const e=Cn(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),s=>{a.length>1?a.forEach(r=>r(s)):a[0](s)}};na=t("__VUE_INSTANCE_SETTERS__",o=>ot=o),pn=t("__VUE_SSR_SETTERS__",o=>Mo=o)}const un=e=>{const t=ot;return na(e),e.scope.on(),()=>{e.scope.off(),na(t)}},$l=()=>{ot&&ot.scope.off(),na(null)};function bl(e){return e.vnode.shapeFlag&4}let Mo=!1;function vp(e,t=!1,o=!1){t&&pn(t);const{props:n,children:a}=e.vnode,s=bl(e);ap(e,n,s,t),ip(e,a,o||t);const r=s?xp(e,t):void 0;return t&&pn(!1),r}function xp(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Vd);const{setup:n}=o;if(n){Et();const a=e.setupContext=n.length>1?kp(e):null,s=un(e),r=Eo(n,e,0,[e.props,a]),l=Ks(r);if(Ct(),s(),(l||e.sp)&&!an(e)&&es(e),l){if(r.then($l,$l),t)return r.then(i=>{pn(!0);try{_l(e,i,t)}finally{pn(!1)}}).catch(i=>{en(i,e,0)});e.asyncDep=r}else _l(e,r)}else yl(e)}function _l(e,t,o){de(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ae(t)&&(e.setupState=kr(t)),yl(e)}function yl(e,t,o){const n=e.type;e.render||(e.render=n.render||St);{const a=un(e);Et();try{zd(e)}finally{Ct(),a()}}}const wp={get(e,t){return st(e,"get",""),e[t]}};function kp(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,wp),slots:e.slots,emit:e.emit,expose:t}}function aa(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(kr(Jo(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in sn)return sn[o](e)},has(t,o){return o in t||o in sn}})):e.proxy}const Lp=/(?:^|[-_])\w/g,Pp=e=>e.replace(Lp,t=>t.toUpperCase()).replace(/[-_]/g,"");function vl(e,t=!0){return de(e)?e.displayName||e.name:e.name||t&&e.__name}function xl(e,t,o=!1){let n=vl(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=s=>{for(const r in s)if(s[r]===t)return r};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Pp(n):o?"App":"Anonymous"}function Sp(e){return de(e)&&"__vccOpts"in e}const ne=(e,t)=>gd(e,t,Mo);function wl(e,t,o){try{Qn(-1);const n=arguments.length;return n===2?Ae(t)&&!le(t)?ea(t)?Be(e,null,[t]):Be(e,t):Be(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&ea(o)&&(o=[o]),Be(e,t,o))}finally{Qn(1)}}const Ap="3.5.42";/**
|
||
* @vue/runtime-dom v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let cs;const kl=typeof window<"u"&&window.trustedTypes;if(kl)try{cs=kl.createPolicy("vue",{createHTML:e=>e})}catch{}const Ll=cs?e=>cs.createHTML(e):e=>e,Ep="http://www.w3.org/2000/svg",Cp="http://www.w3.org/1998/Math/MathML",Zt=typeof document<"u"?document:null,Pl=Zt&&Zt.createElement("template"),Rp={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?Zt.createElementNS(Ep,e):t==="mathml"?Zt.createElementNS(Cp,e):o?Zt.createElement(e,{is:o}):Zt.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Zt.createTextNode(e),createComment:e=>Zt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Zt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,s){const r=o?o.previousSibling:t.lastChild;if(a&&(a===s||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===s||!(a=a.nextSibling)););else{Pl.innerHTML=Ll(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const l=Pl.content;if(n==="svg"||n==="mathml"){const i=l.firstChild;for(;i.firstChild;)l.appendChild(i.firstChild);l.removeChild(i)}t.insertBefore(l,o)}return[r?r.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Tp=Symbol("_vtc");function Op(e,t,o){const n=e[Tp];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const sa=Symbol("_vod"),Sl=Symbol("_vsh"),Mp={name:"show",beforeMount(e,{value:t},{transition:o}){e[sa]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):gn(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),gn(e,!0),n.enter(e)):n.leave(e,()=>{gn(e,!1)}):gn(e,t))},beforeUnmount(e,{value:t}){gn(e,t)}};function gn(e,t){e.style.display=t?e[sa]:"none",e[Sl]=!t}const Np=Symbol(""),Fp=/(?:^|;)\s*display\s*:/;function Ip(e,t,o){const n=e.style,a=je(o);let s=!1;if(o&&!a){if(t)if(je(t))for(const r of t.split(";")){const l=r.slice(0,r.indexOf(":")).trim();o[l]==null&&fn(n,l,"")}else for(const r in t)o[r]==null&&fn(n,r,"");for(const r in o){r==="display"&&(s=!0);const l=o[r];l!=null?Gp(e,r,!je(t)&&t?t[r]:void 0,l)||fn(n,r,l):fn(n,r,"")}}else if(a){if(t!==o){const r=n[Np];r&&(o+=";"+r),n.cssText=o,s=Fp.test(o)}}else t&&e.removeAttribute("style");sa in e&&(e[sa]=s?n.display:"",e[Sl]&&(n.display="none"))}const ra=/\s*!important$/;function fn(e,t,o){if(le(o))o.forEach(n=>fn(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))ra.test(o)?e.setProperty(t,o.replace(ra,""),"important"):e.setProperty(t,o);else{const n=Dp(e,t);ra.test(o)?e.setProperty($t(n),o.replace(ra,""),"important"):e[n]=o}}const Al=["Webkit","Moz","ms"],ds={};function Dp(e,t){const o=ds[t];if(o)return o;let n=Je(t);if(n!=="filter"&&n in e)return ds[t]=n;n=En(n);for(let a=0;a<Al.length;a++){const s=Al[a]+n;if(s in e)return ds[t]=s}return t}function Gp(e,t,o,n){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&je(n)&&o===n}const El="http://www.w3.org/1999/xlink";function Cl(e,t,o,n,a,s=Gc(t)){n&&t.startsWith("xlink:")?o==null?e.removeAttributeNS(El,t.slice(6,t.length)):e.setAttributeNS(El,t,o):o==null||s&&!Qs(o)?e.removeAttribute(t):e.setAttribute(t,s?"":mt(o)?String(o):o)}function Rl(e,t,o,n,a){if(t==="innerHTML"||t==="textContent"){o!=null&&(e[t]=t==="innerHTML"?Ll(o):o);return}const s=e.tagName;if(t==="value"&&s!=="PROGRESS"&&!s.includes("-")){const l=s==="OPTION"?e.getAttribute("value")||"":e.value,i=o==null?e.type==="checkbox"?"on":"":String(o);(l!==i||!("_value"in e))&&(e.value=i),o==null&&e.removeAttribute(t),e._value=o;return}let r=!1;if(o===""||o==null){const l=typeof e[t];l==="boolean"?o=Qs(o):o==null&&l==="string"?(o="",r=!0):l==="number"&&(o=0,r=!0)}try{e[t]=o}catch{}r&&e.removeAttribute(a||t)}function jp(e,t,o,n){e.addEventListener(t,o,n)}function Bp(e,t,o,n){e.removeEventListener(t,o,n)}const Tl=Symbol("_vei");function Up(e,t,o,n,a=null){const s=e[Tl]||(e[Tl]={}),r=s[t];if(n&&r)r.value=n;else{const[l,i]=Wp(t);if(n){const c=s[t]=Kp(n,a);jp(e,l,c,i)}else r&&(Bp(e,l,r,i),s[t]=void 0)}}const Vp=/(Once|Passive|Capture)$/,zp=/^on:?(?:Once|Passive|Capture)$/;function Wp(e){let t,o;for(;(o=e.match(Vp))&&!zp.test(e);)t||(t={}),e=e.slice(0,e.length-o[1].length),t[o[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):$t(e.slice(2)),t]}let ps=0;const Hp=Promise.resolve(),qp=()=>ps||(Hp.then(()=>ps=0),ps=Date.now());function Kp(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(le(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),l=[n];for(let i=0;i<r.length&&!n._stopped;i++){const c=r[i];c&&xt(c,t,5,l)}}else xt(a,t,5,[n])};return o.value=e,o.attached=qp(),o}const Ol=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Xp=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?Op(e,n,r):t==="style"?Ip(e,o,n):wn(t)?kn(t)||Up(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Yp(e,t,n,r))?(Rl(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Cl(e,t,n,r,s,t!=="value")):e._isVueCE&&(Zp(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!je(n)))?Rl(e,Je(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Cl(e,t,n,r))};function Yp(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ol(t)&&de(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return Ol(t)&&je(o)?!1:t in e}function Zp(e,t){const o=e._def.props;if(!o)return!1;const n=Je(t);return Array.isArray(o)?o.some(a=>Je(a)===n):Object.keys(o).some(a=>Je(a)===n)}const Ml={};function Jp(e,t,o){let n=on(e,t);Pn(n)&&(n=Ke({},n,t));class a extends us{constructor(r){super(n,r,o)}}return a.def=n,a}const Qp=typeof HTMLElement<"u"?HTMLElement:class{};class us extends Qp{constructor(t,o={},n=Dl){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==Dl?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Ke({},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 us){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,To(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n<this.attributes.length;n++)this._setAttr(this.attributes[n].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});const t=(n,a=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:s,styles:r}=n;let l;if(s&&!le(s))for(const i in s){const c=s[i];(c===Number||c&&c.type===Number)&&(i in this._props&&(this._props[i]=Zs(this._props[i])),(l||(l=Object.create(null)))[Je(i)]=!0)}this._numberProps=l,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)Le(this,n)||Object.defineProperty(this,n,{get:()=>ve(o[n])})}_resolveProps(t){const{props:o}=t,n=le(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(Je))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(s){this._setProp(a,s,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):Ml;const a=Je(t);o&&this._numberProps&&this._numberProps[a]&&(n=Zs(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===Ml?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const s=this._ob;s&&(this._processMutations(s.takeRecords()),s.disconnect()),o===!0?this.setAttribute($t(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute($t(t),o+""):o||this.removeAttribute($t(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),nu(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=Be(this._def,Ke(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(s,r)=>{this.dispatchEvent(new CustomEvent(s,Pn(r[0])?Ke({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),$t(s)!==s&&a($t(s),r)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,s=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(s);let l=null;for(let i=t.length-1;i>=0;i--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[i],s.insertBefore(c,l||r),l=c,i===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o<t.childNodes.length;o++){const n=t.childNodes[o];if(!(n instanceof HTMLStyleElement))return n}return null}_parseSlots(){const t=this._slots={};let o;for(;o=this.firstChild;){const n=o.nodeType===1&&o.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(o),this.removeChild(o)}}_renderSlots(){const t=this._getSlots(),o=this._instance.type.__scopeId;for(let n=0;n<t.length;n++){const a=t[n],s=a.getAttribute("name")||"default",r=this._slots[s],l=a.parentNode;if(r)for(const i of r){if(o&&i.nodeType===1){const c=o+"-s",u=document.createTreeWalker(i,1);i.setAttribute(c,"");let f;for(;f=u.nextNode();)f.setAttribute(c,"")}l.insertBefore(i,a)}else for(;a.firstChild;)l.insertBefore(a.firstChild,a);l.removeChild(a)}}_getSlots(){const t=[this];this._teleportTargets&&t.push(...this._teleportTargets);const o=new Set;for(const n of t){const a=n.querySelectorAll("slot");for(let s=0;s<a.length;s++)o.add(a[s])}return Array.from(o)}_injectChildStyle(t,o){this._applyStyles(t.styles,t,o)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return this._def.shadowRoot!==!1}_removeChildStyle(t){}}const eu=["ctrl","shift","alt","meta"],tu={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)=>eu.some(o=>e[`${o}Key`]&&!t.includes(o))},Nl=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...s)=>{for(let r=0;r<t.length;r++){const l=tu[t[r]];if(l&&l(a,t))return}return e(a,...s)})},ou=Ke({patchProp:Xp},Rp);let Fl;function Il(){return Fl||(Fl=dp(ou))}const nu=(...e)=>{Il().render(...e)},Dl=(...e)=>{const t=Il().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=su(n);if(!a)return;const s=t._component;!de(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,au(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function au(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function su(e){return je(e)?document.querySelector(e):e}/*!
|
||
* pinia v2.3.1
|
||
* (c) 2025 Eduardo San Martin Morote
|
||
* @license MIT
|
||
*/let Gl;const la=e=>Gl=e,jl=Symbol();function gs(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var hn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(hn||(hn={}));function ru(){const e=Ia(!0),t=e.run(()=>H({}));let o=[],n=[];const a=Jo({install(s){la(a),a._a=s,s.provide(jl,a),s.config.globalProperties.$pinia=a,n.forEach(r=>o.push(r)),n=[]},use(s){return this._a?o.push(s):n.push(s),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Bl=()=>{};function Ul(e,t,o,n=Bl){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&ar()&&Bc(a),a}function No(e,...t){e.slice().forEach(o=>{o(...t)})}const lu=e=>e(),Vl=Symbol(),fs=Symbol();function hs(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];gs(a)&&gs(n)&&e.hasOwnProperty(o)&&!ze(n)&&!zt(n)?e[o]=hs(a,n):e[o]=n}return e}const iu=Symbol();function cu(e){return!gs(e)||!e.hasOwnProperty(iu)}const{assign:so}=Object;function du(e){return!!(ze(e)&&e.effect)}function pu(e,t,o,n){const{state:a,actions:s,getters:r}=t,l=o.state.value[e];let i;function c(){l||(o.state.value[e]=a?a():{});const u=cd(o.state.value[e]);return so(u,s,Object.keys(r||{}).reduce((f,$)=>(f[$]=Jo(ne(()=>{la(o);const _=o._s.get(e);return r[$].call(_,_)})),f),{}))}return i=zl(e,c,t,o,n,!0),i}function zl(e,t,o={},n,a,s){let r;const l=so({actions:{}},o),i={deep:!0};let c,u,f=[],$=[],_;const O=n.state.value[e];!s&&!O&&(n.state.value[e]={});let L;function G(T){let S;c=u=!1,typeof T=="function"?(T(n.state.value[e]),S={type:hn.patchFunction,storeId:e,events:_}):(hs(n.state.value[e],T),S={type:hn.patchObject,payload:T,storeId:e,events:_});const W=L=Symbol();To().then(()=>{L===W&&(c=!0)}),u=!0,No(f,S,n.state.value[e])}const A=s?function(){const{state:S}=o,W=S?S():{};this.$patch(X=>{so(X,W)})}:Bl;function k(){r.stop(),f=[],$=[],n._s.delete(e)}const b=(T,S="")=>{if(Vl in T)return T[fs]=S,T;const W=function(){la(n);const X=Array.from(arguments),K=[],ae=[];function ge(ee){K.push(ee)}function ye(ee){ae.push(ee)}No($,{args:X,name:W[fs],store:E,after:ge,onError:ye});let se;try{se=T.apply(this&&this.$id===e?this:E,X)}catch(ee){throw No(ae,ee),ee}return se instanceof Promise?se.then(ee=>(No(K,ee),ee)).catch(ee=>(No(ae,ee),Promise.reject(ee))):(No(K,se),se)};return W[Vl]=!0,W[fs]=S,W},m={_p:n,$id:e,$onAction:Ul.bind(null,$),$patch:G,$reset:A,$subscribe(T,S={}){const W=Ul(f,T,S.detached,()=>X()),X=r.run(()=>We(()=>n.state.value[e],K=>{(S.flush==="sync"?u:c)&&T({storeId:e,type:hn.direct,events:_},K)},so({},i,S)));return W},$dispose:k},E=In(m);n._s.set(e,E);const F=(n._a&&n._a.runWithContext||lu)(()=>n._e.run(()=>(r=Ia()).run(()=>t({action:b}))));for(const T in F){const S=F[T];if(ze(S)&&!du(S)||zt(S))s||(O&&cu(S)&&(ze(S)?S.value=O[T]:hs(S,O[T])),n.state.value[e][T]=S);else if(typeof S=="function"){const W=b(S,T);F[T]=W,l.actions[T]=S}}return so(E,F),so(we(E),F),Object.defineProperty(E,"$state",{get:()=>n.state.value[e],set:T=>{G(S=>{so(S,T)})}}),n._p.forEach(T=>{so(E,r.run(()=>T({store:E,app:n._a,pinia:n,options:l})))}),O&&s&&o.hydrate&&o.hydrate(E.$state,O),c=!0,u=!0,E}/*! #__NO_SIDE_EFFECTS__ */function ms(e,t,o){let n,a;const s=typeof t=="function";typeof e=="string"?(n=e,a=s?o:t):(a=e,n=e.id);function r(l,i){const c=kd();return l=l||(c?Oe(jl,null):null),l&&la(l),l=Gl,l._s.has(n)||(s?zl(n,t,a,l):pu(n,a,l)),l._s.get(n)}return r.$id=n,r}const $s="__doxaMapToken",bs="doxa:map-token",Wl="__doxaMapTokenBridge",Fo=()=>{if(typeof window>"u")return"";const e=window[$s];return typeof e=="string"?e:""};function Hl(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===Fo())return Fo();window[$s]=t;try{window.dispatchEvent(new CustomEvent(bs,{detail:t}))}catch{}return t}function uu(){if(typeof window>"u"||window[Wl])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Fo()&&(window[$s]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Fo()},set(t){Hl(t)}}),window[Wl]=!0}catch{}}function gu(){uu();const e=H(Fo());if(typeof window<"u"){const t=()=>{e.value=Fo()};window.addEventListener(bs,t);try{rt(()=>window.removeEventListener(bs,t))}catch{}}return e}function fu(e){return Ir({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const hu={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},mu={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},$u={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:"الملصقات في كل صف"},bu={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 — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},_u={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:"أدوات التحكم بالخريطة"},yu={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:"المكان"},vu={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},xu={_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:"جارٍ تحميل جداول الموارد…"}},wu={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:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},ku={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:"إلغاء التحديد"}},Lu={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم <strong>باسم شعبهم</strong>."},Pu={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Su={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Au={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Eu={"%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.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Cu={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},Ru={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}، غير منشور بمفرده"},Tu={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:"الخريطة"},Ou={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 حسب الشعب والبلد. ليست كلها حدودية."},Mu={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}"},Nu={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},Fu={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"},Iu={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."}},Du={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"},Gu={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"},ju={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Bu={_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…"}},Uu={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."},Vu={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"}},zu={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 <strong>mit dem Namen ihrer Volksgruppe</strong> beten."},Wu={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Hu={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},qu={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Ku={"%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."},Xu={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"}},Yu={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"},Zu={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"},Ju={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."},Qu={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}"},eg={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},tg={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"},og={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."}},ng={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"},ag={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"},sg={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},rg={_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…"}},lg={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."},ig={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"}},cg={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 <strong>by their people group name</strong>."},dg={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},pg={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},ug={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},gg={"%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."},fg={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"}},hg={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"},mg={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"},$g={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."},bg={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}"},_g={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},yg={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"},vg={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."}},xg={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"},wg={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"},kg={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."}},Lg={_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…"}},Pg={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."},Sg={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"}},Ag={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 <strong>por el nombre de su pueblo</strong>."},Eg={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Cg={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},Rg={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Tg={"%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."},Og={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"}},Mg={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"},Ng={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"},Fg={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."},Ig={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}"},Dg={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"},Gg={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"},jg={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."}},Bg={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"},Ug={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"},Vg={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},zg={_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…"}},Wg={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."},Hg={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"}},qg={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 <strong>par le nom de leur peuple</strong>."},Kg={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Xg={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Yg={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Zg={"%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."},Jg={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"}},Qg={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:"कोई विवरण उपलब्ध नहीं है।"}},df={_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:"संसाधन तालिकाएँ लोड हो रही हैं…"}},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:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},uf={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 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए <strong>उनके जनसमूह के नाम से</strong> प्रार्थना करते हुए।"},ff={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},hf={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"},Sf={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"},Af={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…"}},Cf={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."},Rf={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"}},Tf={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 <strong>con il nome del loro popolo</strong>."},Of={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Mf={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"},jf={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}"},Uf={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"},zf={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."}},Wf={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"},Hf={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 <strong>pelo nome do seu povo</strong>."},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"}},eh={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},th={"%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."},oh={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"}},nh={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"},ah={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"},sh={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."},rh={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}"},lh={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},ih={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"},ch={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ă."}},dh={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"},ph={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"},uh={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ă."}},gh={_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…"}},fh={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."},hh={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"}},mh={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 <strong>pe numele poporului lor</strong>."},$h={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},bh={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},_h={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},yh={"%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."},vh={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"}},xh={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"},wh={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ă"},kh={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ă."},Lh={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},Ph={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},Sh={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:"Плакатов в ряду"},Ah={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; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},Eh={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:"Элементы управления картой"},Ch={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:"Место"},Rh={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Th={_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:"Загрузка таблиц ресурсов…"}},Oh={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:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},Mh={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:"Снять выделение"}},Nh={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них <strong>по имени их народа</strong>."},Fh={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Ih={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},Dh={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},Gh={"%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.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},jh={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},Bh={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}, не публикуется отдельно"},Uh={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:"Карта"},Vh={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 по народу и стране. Не все из них рубежные."},zh={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},Wh={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},Hh={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:"每行海报数"},qh={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 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},Kh={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:"地图控件"},Xh={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:"地点"},Yh={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Zh={_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:"正在加载资源表…"}},Jh={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:"无法加载民族数据。这是连接问题,而不是筛选问题。"},Qh={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:"清除选择"}},em={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — <strong>按著他們族群的名字</strong>為他們禱告。"},tm={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},om={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},nm={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},am={"%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.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},sm={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},rm={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} 的一部分,不单独发布"},lm={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:"地圖"},im={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 cm(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const ia=typeof window<"u",ro=(e,t=!1)=>t?Symbol.for(e):Symbol(e),dm=(e,t,o)=>pm({l:e,k:t,s:o}),pm=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Xe=e=>typeof e=="number"&&isFinite(e),um=e=>Zl(e)==="[object Date]",lo=e=>Zl(e)==="[object RegExp]",ca=e=>ue(e)&&Object.keys(e).length===0,nt=Object.assign,gm=Object.create,Ce=(e=null)=>gm(e);let ql;const Jt=()=>ql||(ql=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ce());function Kl(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Xl(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function fm(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${Xl(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${Xl(s)}'`),/\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 hm=Object.prototype.hasOwnProperty;function kt(e,t){return hm.call(e,t)}const Ue=Array.isArray,Ie=e=>typeof e=="function",Y=e=>typeof e=="string",_e=e=>typeof e=="boolean",ke=e=>e!==null&&typeof e=="object",mm=e=>ke(e)&&Ie(e.then)&&Ie(e.catch),Yl=Object.prototype.toString,Zl=e=>Yl.call(e),ue=e=>{if(!ke(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},$m=e=>e==null?"":Ue(e)||ue(e)&&e.toString===Yl?JSON.stringify(e,null,2):String(e);function bm(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function da(e){let t=e;return()=>++t}const pa=e=>!ke(e)||Ue(e);function ua(e,t){if(pa(e)||pa(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(s=>{s!=="__proto__"&&(ke(n[s])&&!ke(a[s])&&(a[s]=Array.isArray(n[s])?[]:Ce()),pa(a[s])||pa(n[s])?a[s]=n[s]:o.push({src:n[s],des:a[s]}))})}}/*!
|
||
* message-compiler v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function _m(e,t,o){return{line:e,column:t,offset:o}}function ga(e,t,o){return{start:e,end:t}}const ym=/\{([0-9a-zA-Z]+)\}/g;function Jl(e,...t){return t.length===1&&vm(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(ym,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Ql=Object.assign,ei=e=>typeof e=="string",vm=e=>e!==null&&typeof e=="object";function ti(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const _s={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},xm={[_s.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function wm(e,t,...o){const n=Jl(xm[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const ie={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},km={[ie.EXPECTED_TOKEN]:"Expected token: '{0}'",[ie.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[ie.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[ie.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[ie.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[ie.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[ie.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[ie.EMPTY_PLACEHOLDER]:"Empty placeholder",[ie.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[ie.INVALID_LINKED_FORMAT]:"Invalid linked format",[ie.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[ie.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[ie.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[ie.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[ie.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[ie.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Io(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=Jl((a||km)[e]||"",...s||[]),l=new SyntaxError(String(r));return l.code=e,t&&(l.location=t),l.domain=n,l}function Lm(e){throw e}const Qt=" ",Pm="\r",ct=`
|
||
`,Sm="\u2028",Am="\u2029";function Em(e){const t=e;let o=0,n=1,a=1,s=0;const r=F=>t[F]===Pm&&t[F+1]===ct,l=F=>t[F]===ct,i=F=>t[F]===Am,c=F=>t[F]===Sm,u=F=>r(F)||l(F)||i(F)||c(F),f=()=>o,$=()=>n,_=()=>a,O=()=>s,L=F=>r(F)||i(F)||c(F)?ct:t[F],G=()=>L(o),A=()=>L(o+s);function k(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function b(){return r(o+s)&&s++,s++,t[o+s]}function m(){o=0,n=1,a=1,s=0}function E(F=0){s=F}function P(){const F=o+s;for(;F!==o;)k();s=0}return{index:f,line:$,column:_,peekOffset:O,charAt:L,currentChar:G,currentPeek:A,next:k,peek:b,reset:m,resetPeek:E,skipToPeek:P}}const io=void 0,Cm=".",oi="'",Rm="tokenizer";function Tm(e,t={}){const o=t.location!==!1,n=Em(e),a=()=>n.index(),s=()=>_m(n.line(),n.column(),n.index()),r=s(),l=a(),i={currentType:14,offset:l,startLoc:r,endLoc:r,lastType:14,lastOffset:l,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},c=()=>i,{onError:u}=t;function f(d,g,R,...M){const V=c();if(g.column+=R,g.offset+=R,u){const z=o?ga(V.startLoc,g):null,I=Io(d,z,{domain:Rm,args:M});u(I)}}function $(d,g,R){d.endLoc=s(),d.currentType=g;const M={type:g};return o&&(M.loc=ga(d.startLoc,d.endLoc)),R!=null&&(M.value=R),M}const _=d=>$(d,14);function O(d,g){return d.currentChar()===g?(d.next(),g):(f(ie.EXPECTED_TOKEN,s(),0,g),"")}function L(d){let g="";for(;d.currentPeek()===Qt||d.currentPeek()===ct;)g+=d.currentPeek(),d.peek();return g}function G(d){const g=L(d);return d.skipToPeek(),g}function A(d){if(d===io)return!1;const g=d.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g===95}function k(d){if(d===io)return!1;const g=d.charCodeAt(0);return g>=48&&g<=57}function b(d,g){const{currentType:R}=g;if(R!==2)return!1;L(d);const M=A(d.currentPeek());return d.resetPeek(),M}function m(d,g){const{currentType:R}=g;if(R!==2)return!1;L(d);const M=d.currentPeek()==="-"?d.peek():d.currentPeek(),V=k(M);return d.resetPeek(),V}function E(d,g){const{currentType:R}=g;if(R!==2)return!1;L(d);const M=d.currentPeek()===oi;return d.resetPeek(),M}function P(d,g){const{currentType:R}=g;if(R!==8)return!1;L(d);const M=d.currentPeek()===".";return d.resetPeek(),M}function F(d,g){const{currentType:R}=g;if(R!==9)return!1;L(d);const M=A(d.currentPeek());return d.resetPeek(),M}function T(d,g){const{currentType:R}=g;if(!(R===8||R===12))return!1;L(d);const M=d.currentPeek()===":";return d.resetPeek(),M}function S(d,g){const{currentType:R}=g;if(R!==10)return!1;const M=()=>{const z=d.currentPeek();return z==="{"?A(d.peek()):z==="@"||z==="%"||z==="|"||z===":"||z==="."||z===Qt||!z?!1:z===ct?(d.peek(),M()):K(d,!1)},V=M();return d.resetPeek(),V}function W(d){L(d);const g=d.currentPeek()==="|";return d.resetPeek(),g}function X(d){const g=L(d),R=d.currentPeek()==="%"&&d.peek()==="{";return d.resetPeek(),{isModulo:R,hasSpace:g.length>0}}function K(d,g=!0){const R=(V=!1,z="",I=!1)=>{const B=d.currentPeek();return B==="{"?z==="%"?!1:V:B==="@"||!B?z==="%"?!0:V:B==="%"?(d.peek(),R(V,"%",!0)):B==="|"?z==="%"||I?!0:!(z===Qt||z===ct):B===Qt?(d.peek(),R(!0,Qt,I)):B===ct?(d.peek(),R(!0,ct,I)):!0},M=R();return g&&d.resetPeek(),M}function ae(d,g){const R=d.currentChar();return R===io?io:g(R)?(d.next(),R):null}function ge(d){const g=d.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36}function ye(d){return ae(d,ge)}function se(d){const g=d.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36||g===45}function ee(d){return ae(d,se)}function ce(d){const g=d.charCodeAt(0);return g>=48&&g<=57}function Ne(d){return ae(d,ce)}function Z(d){const g=d.charCodeAt(0);return g>=48&&g<=57||g>=65&&g<=70||g>=97&&g<=102}function J(d){return ae(d,Z)}function te(d){let g="",R="";for(;g=Ne(d);)R+=g;return R}function be(d){G(d);const g=d.currentChar();return g!=="%"&&f(ie.EXPECTED_TOKEN,s(),0,g),d.next(),"%"}function De(d){let g="";for(;;){const R=d.currentChar();if(R==="{"||R==="}"||R==="@"||R==="|"||!R)break;if(R==="%")if(K(d))g+=R,d.next();else break;else if(R===Qt||R===ct)if(K(d))g+=R,d.next();else{if(W(d))break;g+=R,d.next()}else g+=R,d.next()}return g}function He(d){G(d);let g="",R="";for(;g=ee(d);)R+=g;return d.currentChar()===io&&f(ie.UNTERMINATED_CLOSING_BRACE,s(),0),R}function Pe(d){G(d);let g="";return d.currentChar()==="-"?(d.next(),g+=`-${te(d)}`):g+=te(d),d.currentChar()===io&&f(ie.UNTERMINATED_CLOSING_BRACE,s(),0),g}function qe(d){return d!==oi&&d!==ct}function pe(d){G(d),O(d,"'");let g="",R="";for(;g=ae(d,qe);)g==="\\"?R+=$e(d):R+=g;const M=d.currentChar();return M===ct||M===io?(f(ie.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),M===ct&&(d.next(),O(d,"'")),R):(O(d,"'"),R)}function $e(d){const g=d.currentChar();switch(g){case"\\":case"'":return d.next(),`\\${g}`;case"u":return Se(d,g,4);case"U":return Se(d,g,6);default:return f(ie.UNKNOWN_ESCAPE_SEQUENCE,s(),0,g),""}}function Se(d,g,R){O(d,g);let M="";for(let V=0;V<R;V++){const z=J(d);if(!z){f(ie.INVALID_UNICODE_ESCAPE_SEQUENCE,s(),0,`\\${g}${M}${d.currentChar()}`);break}M+=z}return`\\${g}${M}`}function Q(d){return d!=="{"&&d!=="}"&&d!==Qt&&d!==ct}function h(d){G(d);let g="",R="";for(;g=ae(d,Q);)R+=g;return R}function v(d){let g="",R="";for(;g=ye(d);)R+=g;return R}function x(d){const g=R=>{const M=d.currentChar();return M==="{"||M==="%"||M==="@"||M==="|"||M==="("||M===")"||!M||M===Qt?R:(R+=M,d.next(),g(R))};return g("")}function D(d){G(d);const g=O(d,"|");return G(d),g}function w(d,g){let R=null;switch(d.currentChar()){case"{":return g.braceNest>=1&&f(ie.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),d.next(),R=$(g,2,"{"),G(d),g.braceNest++,R;case"}":return g.braceNest>0&&g.currentType===2&&f(ie.EMPTY_PLACEHOLDER,s(),0),d.next(),R=$(g,3,"}"),g.braceNest--,g.braceNest>0&&G(d),g.inLinked&&g.braceNest===0&&(g.inLinked=!1),R;case"@":return g.braceNest>0&&f(ie.UNTERMINATED_CLOSING_BRACE,s(),0),R=p(d,g)||_(g),g.braceNest=0,R;default:{let V=!0,z=!0,I=!0;if(W(d))return g.braceNest>0&&f(ie.UNTERMINATED_CLOSING_BRACE,s(),0),R=$(g,1,D(d)),g.braceNest=0,g.inLinked=!1,R;if(g.braceNest>0&&(g.currentType===5||g.currentType===6||g.currentType===7))return f(ie.UNTERMINATED_CLOSING_BRACE,s(),0),g.braceNest=0,C(d,g);if(V=b(d,g))return R=$(g,5,He(d)),G(d),R;if(z=m(d,g))return R=$(g,6,Pe(d)),G(d),R;if(I=E(d,g))return R=$(g,7,pe(d)),G(d),R;if(!V&&!z&&!I)return R=$(g,13,h(d)),f(ie.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,R.value),G(d),R;break}}return R}function p(d,g){const{currentType:R}=g;let M=null;const V=d.currentChar();switch((R===8||R===9||R===12||R===10)&&(V===ct||V===Qt)&&f(ie.INVALID_LINKED_FORMAT,s(),0),V){case"@":return d.next(),M=$(g,8,"@"),g.inLinked=!0,M;case".":return G(d),d.next(),$(g,9,".");case":":return G(d),d.next(),$(g,10,":");default:return W(d)?(M=$(g,1,D(d)),g.braceNest=0,g.inLinked=!1,M):P(d,g)||T(d,g)?(G(d),p(d,g)):F(d,g)?(G(d),$(g,12,v(d))):S(d,g)?(G(d),V==="{"?w(d,g)||M:$(g,11,x(d))):(R===8&&f(ie.INVALID_LINKED_FORMAT,s(),0),g.braceNest=0,g.inLinked=!1,C(d,g))}}function C(d,g){let R={type:14};if(g.braceNest>0)return w(d,g)||_(g);if(g.inLinked)return p(d,g)||_(g);switch(d.currentChar()){case"{":return w(d,g)||_(g);case"}":return f(ie.UNBALANCED_CLOSING_BRACE,s(),0),d.next(),$(g,3,"}");case"@":return p(d,g)||_(g);default:{if(W(d))return R=$(g,1,D(d)),g.braceNest=0,g.inLinked=!1,R;const{isModulo:V,hasSpace:z}=X(d);if(V)return z?$(g,0,De(d)):$(g,4,be(d));if(K(d))return $(g,0,De(d));break}}return R}function N(){const{currentType:d,offset:g,startLoc:R,endLoc:M}=i;return i.lastType=d,i.lastOffset=g,i.lastStartLoc=R,i.lastEndLoc=M,i.offset=a(),i.startLoc=s(),n.currentChar()===io?$(i,14):C(n,i)}return{nextToken:N,currentOffset:a,currentPosition:s,context:c}}const Om="parser",Mm=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Nm(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"<22>"}}}function Fm(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(b,m,E,P,...F){const T=b.currentPosition();if(T.offset+=P,T.column+=P,o){const S=t?ga(E,T):null,W=Io(m,S,{domain:Om,args:F});o(W)}}function s(b,m,E,P,...F){const T=b.currentPosition();if(T.offset+=P,T.column+=P,n){const S=t?ga(E,T):null;n(wm(m,S,F))}}function r(b,m,E){const P={type:b};return t&&(P.start=m,P.end=m,P.loc={start:E,end:E}),P}function l(b,m,E,P){t&&(b.end=m,b.loc&&(b.loc.end=E))}function i(b,m){const E=b.context(),P=r(3,E.offset,E.startLoc);return P.value=m,l(P,b.currentOffset(),b.currentPosition()),P}function c(b,m){const E=b.context(),{lastOffset:P,lastStartLoc:F}=E,T=r(5,P,F);return T.index=parseInt(m,10),b.nextToken(),l(T,b.currentOffset(),b.currentPosition()),T}function u(b,m,E){const P=b.context(),{lastOffset:F,lastStartLoc:T}=P,S=r(4,F,T);return S.key=m,E===!0&&(S.modulo=!0),b.nextToken(),l(S,b.currentOffset(),b.currentPosition()),S}function f(b,m){const E=b.context(),{lastOffset:P,lastStartLoc:F}=E,T=r(9,P,F);return T.value=m.replace(Mm,Nm),b.nextToken(),l(T,b.currentOffset(),b.currentPosition()),T}function $(b){const m=b.nextToken(),E=b.context(),{lastOffset:P,lastStartLoc:F}=E,T=r(8,P,F);return m.type!==12?(a(b,ie.UNEXPECTED_EMPTY_LINKED_MODIFIER,E.lastStartLoc,0),T.value="",l(T,P,F),{nextConsumeToken:m,node:T}):(m.value==null&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Lt(m)),T.value=m.value||"",l(T,b.currentOffset(),b.currentPosition()),{node:T})}function _(b,m){const E=b.context(),P=r(7,E.offset,E.startLoc);return P.value=m,l(P,b.currentOffset(),b.currentPosition()),P}function O(b){const m=b.context(),E=r(6,m.offset,m.startLoc);let P=b.nextToken();if(P.type===9){const F=$(b);E.modifier=F.node,P=F.nextConsumeToken||b.nextToken()}switch(P.type!==10&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,Lt(P)),P=b.nextToken(),P.type===2&&(P=b.nextToken()),P.type){case 11:P.value==null&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,Lt(P)),E.key=_(b,P.value||"");break;case 5:P.value==null&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,Lt(P)),E.key=u(b,P.value||"");break;case 6:P.value==null&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,Lt(P)),E.key=c(b,P.value||"");break;case 7:P.value==null&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,Lt(P)),E.key=f(b,P.value||"");break;default:{a(b,ie.UNEXPECTED_EMPTY_LINKED_KEY,m.lastStartLoc,0);const F=b.context(),T=r(7,F.offset,F.startLoc);return T.value="",l(T,F.offset,F.startLoc),E.key=T,l(E,F.offset,F.startLoc),{nextConsumeToken:P,node:E}}}return l(E,b.currentOffset(),b.currentPosition()),{node:E}}function L(b){const m=b.context(),E=m.currentType===1?b.currentOffset():m.offset,P=m.currentType===1?m.endLoc:m.startLoc,F=r(2,E,P);F.items=[];let T=null,S=null;do{const K=T||b.nextToken();switch(T=null,K.type){case 0:K.value==null&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,Lt(K)),F.items.push(i(b,K.value||""));break;case 6:K.value==null&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,Lt(K)),F.items.push(c(b,K.value||""));break;case 4:S=!0;break;case 5:K.value==null&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,Lt(K)),F.items.push(u(b,K.value||"",!!S)),S&&(s(b,_s.USE_MODULO_SYNTAX,m.lastStartLoc,0,Lt(K)),S=null);break;case 7:K.value==null&&a(b,ie.UNEXPECTED_LEXICAL_ANALYSIS,m.lastStartLoc,0,Lt(K)),F.items.push(f(b,K.value||""));break;case 8:{const ae=O(b);F.items.push(ae.node),T=ae.nextConsumeToken||null;break}}}while(m.currentType!==14&&m.currentType!==1);const W=m.currentType===1?m.lastOffset:b.currentOffset(),X=m.currentType===1?m.lastEndLoc:b.currentPosition();return l(F,W,X),F}function G(b,m,E,P){const F=b.context();let T=P.items.length===0;const S=r(1,m,E);S.cases=[],S.cases.push(P);do{const W=L(b);T||(T=W.items.length===0),S.cases.push(W)}while(F.currentType!==14);return T&&a(b,ie.MUST_HAVE_MESSAGES_IN_PLURAL,E,0),l(S,b.currentOffset(),b.currentPosition()),S}function A(b){const m=b.context(),{offset:E,startLoc:P}=m,F=L(b);return m.currentType===14?F:G(b,E,P,F)}function k(b){const m=Tm(b,Ql({},e)),E=m.context(),P=r(0,E.offset,E.startLoc);return t&&P.loc&&(P.loc.source=b),P.body=A(m),e.onCacheKey&&(P.cacheKey=e.onCacheKey(b)),E.currentType!==14&&a(m,ie.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,b[E.offset]||""),l(P,m.currentOffset(),m.currentPosition()),P}return{parse:k}}function Lt(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 Im(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function ni(e,t){for(let o=0;o<e.length;o++)ys(e[o],t)}function ys(e,t){switch(e.type){case 1:ni(e.cases,t),t.helper("plural");break;case 2:ni(e.items,t);break;case 6:{ys(e.key,t),t.helper("linked"),t.helper("type");break}case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named");break}}function Dm(e,t={}){const o=Im(e);o.helper("normalize"),e.body&&ys(e.body,o);const n=o.context();e.helpers=Array.from(n.helpers)}function Gm(e){const t=e.body;return t.type===2?ai(t):t.cases.forEach(o=>ai(o)),e}function ai(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;o<e.items.length;o++){const n=e.items[o];if(!(n.type===3||n.type===9)||n.value==null)break;t.push(n.value)}if(t.length===e.items.length){e.static=ti(t);for(let o=0;o<e.items.length;o++){const n=e.items[o];(n.type===3||n.type===9)&&delete n.value}}}}const jm="minifier";function Do(e){switch(e.t=e.type,e.type){case 0:{const t=e;Do(t.body),t.b=t.body,delete t.body;break}case 1:{const t=e,o=t.cases;for(let n=0;n<o.length;n++)Do(o[n]);t.c=o,delete t.cases;break}case 2:{const t=e,o=t.items;for(let n=0;n<o.length;n++)Do(o[n]);t.i=o,delete t.items,t.static&&(t.s=t.static,delete t.static);break}case 3:case 9:case 8:case 7:{const t=e;t.value&&(t.v=t.value,delete t.value);break}case 6:{const t=e;Do(t.key),t.k=t.key,delete t.key,t.modifier&&(Do(t.modifier),t.m=t.modifier,delete t.modifier);break}case 5:{const t=e;t.i=t.index,delete t.index;break}case 4:{const t=e;t.k=t.key,delete t.key;break}default:throw Io(ie.UNHANDLED_MINIFIER_NODE_TYPE,null,{domain:jm,args:[e.type]})}delete e.type}const Bm="parser";function Um(e,t){const{filename:o,breakLineCode:n,needIndent:a}=t,s=t.location!==!1,r={filename:o,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:n,needIndent:a,indentLevel:0};s&&e.loc&&(r.source=e.loc.source);const l=()=>r;function i(L,G){r.code+=L}function c(L,G=!0){const A=G?n:"";i(a?A+" ".repeat(L):A)}function u(L=!0){const G=++r.indentLevel;L&&c(G)}function f(L=!0){const G=--r.indentLevel;L&&c(G)}function $(){c(r.indentLevel)}return{context:l,push:i,indent:u,deindent:f,newline:$,helper:L=>`_${L}`,needIndent:()=>r.needIndent}}function Vm(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 zm(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let s=0;s<a&&(Go(e,t.items[s]),s!==a-1);s++)e.push(", ");e.deindent(n()),e.push("])")}function Wm(e,t){const{helper:o,needIndent:n}=e;if(t.cases.length>1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let s=0;s<a&&(Go(e,t.cases[s]),s!==a-1);s++)e.push(", ");e.deindent(n()),e.push("])")}}function Hm(e,t){t.body?Go(e,t.body):e.push("null")}function Go(e,t){const{helper:o}=e;switch(t.type){case 0:Hm(e,t);break;case 1:Wm(e,t);break;case 2:zm(e,t);break;case 6:Vm(e,t);break;case 8:e.push(JSON.stringify(t.value),t);break;case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${o("interpolate")}(${o("list")}(${t.index}))`,t);break;case 4:e.push(`${o("interpolate")}(${o("named")}(${JSON.stringify(t.key)}))`,t);break;case 9:e.push(JSON.stringify(t.value),t);break;case 3:e.push(JSON.stringify(t.value),t);break;default:throw Io(ie.UNHANDLED_CODEGEN_NODE_TYPE,null,{domain:Bm,args:[t.type]})}}const qm=(e,t={})=>{const o=ei(t.mode)?t.mode:"normal",n=ei(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":`
|
||
`,s=t.needIndent?t.needIndent:o!=="arrow",r=e.helpers||[],l=Um(e,{filename:n,breakLineCode:a,needIndent:s});l.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),l.indent(s),r.length>0&&(l.push(`const { ${ti(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),l.newline()),l.push("return "),Go(l,e),l.deindent(s),l.push("}"),delete e.helpers;const{code:i,map:c}=l.context();return{ast:e,code:i,map:c?c.toJSON():void 0}};function Km(e,t={}){const o=Ql({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,l=Fm(o).parse(e);return n?(s&&Gm(l),a&&Do(l),{ast:l,code:""}):(Dm(l,o),qm(l,o))}/*!
|
||
* core-base v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function Xm(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Jt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Jt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Jt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Ft(e){return ke(e)&&vs(e)===0&&(kt(e,"b")||kt(e,"body"))}const si=["b","body"];function Ym(e){return co(e,si)}const ri=["c","cases"];function Zm(e){return co(e,ri,[])}const li=["s","static"];function Jm(e){return co(e,li)}const ii=["i","items"];function Qm(e){return co(e,ii,[])}const ci=["t","type"];function vs(e){return co(e,ci)}const di=["v","value"];function fa(e,t){const o=co(e,di);if(o!=null)return o;throw mn(t)}const pi=["m","modifier"];function e$(e){return co(e,pi)}const ui=["k","key"];function t$(e){const t=co(e,ui);if(t)return t;throw mn(6)}function co(e,t,o){for(let n=0;n<t.length;n++){const a=t[n];if(kt(e,a)&&e[a]!=null)return e[a]}return o}const gi=[...si,...ri,...li,...ii,...ui,...pi,...di,...ci];function mn(e){return new Error(`unhandled node type: ${e}`)}const po=[];po[0]={w:[0],i:[3,0],"[":[4],o:[7]},po[1]={w:[1],".":[2],"[":[4],o:[7]},po[2]={w:[2],i:[3,0],0:[3,0]},po[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},po[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},po[5]={"'":[4,0],o:8,l:[5,0]},po[6]={'"':[4,0],o:8,l:[6,0]};const o$=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function n$(e){return o$.test(e)}function a$(e){const t=e.charCodeAt(0),o=e.charCodeAt(e.length-1);return t===o&&(t===34||t===39)?e.slice(1,-1):e}function s$(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function r$(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:n$(t)?a$(t):"*"+t}function l$(e){const t=[];let o=-1,n=0,a=0,s,r,l,i,c,u,f;const $=[];$[0]=()=>{r===void 0?r=l:r+=l},$[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},$[2]=()=>{$[0](),a++},$[3]=()=>{if(a>0)a--,n=4,$[0]();else{if(a=0,r===void 0||(r=r$(r),r===!1))return!1;$[1]()}};function _(){const O=e[o+1];if(n===5&&O==="'"||n===6&&O==='"')return o++,l="\\"+O,$[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&_())){if(i=s$(s),f=po[n],c=f[i]||f.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=$[c[1]],u&&(l=s,u()===!1))))return;if(n===7)return t}}const fi=new Map;function i$(e,t){return ke(e)?e[t]:null}function c$(e,t){if(!ke(e))return null;let o=fi.get(t);if(o||(o=l$(t),o&&fi.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;s<n;){const r=o[s];if(gi.includes(r)&&Ft(a))return null;const l=a[r];if(l===void 0||Ie(a))return null;a=l,s++}return a}const d$=e=>e,p$=e=>"",u$="text",g$=e=>e.length===0?"":bm(e),f$=$m;function hi(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function h$(e){const t=Xe(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Xe(e.named.count)||Xe(e.named.n))?Xe(e.named.count)?e.named.count:Xe(e.named.n)?e.named.n:t:t}function m$(e,t){t.count||(t.count=e),t.n||(t.n=e)}function $$(e={}){const t=e.locale,o=h$(e),n=ke(e.pluralRules)&&Y(t)&&Ie(e.pluralRules[t])?e.pluralRules[t]:hi,a=ke(e.pluralRules)&&Y(t)&&Ie(e.pluralRules[t])?hi:void 0,s=A=>A[n(o,A.length,a)],r=e.list||[],l=A=>r[A],i=e.named||Ce();Xe(e.pluralIndex)&&m$(o,i);const c=A=>i[A];function u(A){const k=Ie(e.messages)?e.messages(A):ke(e.messages)?e.messages[A]:!1;return k||(e.parent?e.parent.message(A):p$)}const f=A=>e.modifiers?e.modifiers[A]:d$,$=ue(e.processor)&&Ie(e.processor.normalize)?e.processor.normalize:g$,_=ue(e.processor)&&Ie(e.processor.interpolate)?e.processor.interpolate:f$,O=ue(e.processor)&&Y(e.processor.type)?e.processor.type:u$,G={list:l,named:c,plural:s,linked:(A,...k)=>{const[b,m]=k;let E="text",P="";k.length===1?ke(b)?(P=b.modifier||P,E=b.type||E):Y(b)&&(P=b||P):k.length===2&&(Y(b)&&(P=b||P),Y(m)&&(E=m||E));const F=u(A)(G),T=E==="vnode"&&Ue(F)&&P?F[0]:F;return P?f(P)(T,E):T},message:u,type:O,interpolate:_,normalize:$,values:nt(Ce(),r,i)};return G}let $n=null;function b$(e){$n=e}function _$(e,t,o){$n&&$n.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const y$=v$("function:translate");function v$(e){return t=>$n&&$n.emit(e,t)}const x$=_s.__EXTEND_POINT__,yo=da(x$),w$={FALLBACK_TO_TRANSLATE:yo(),CANNOT_FORMAT_NUMBER:yo(),FALLBACK_TO_NUMBER_FORMAT:yo(),CANNOT_FORMAT_DATE:yo(),FALLBACK_TO_DATE_FORMAT:yo(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:yo(),__EXTEND_POINT__:yo()},mi=ie.__EXTEND_POINT__,vo=da(mi),Pt={INVALID_ARGUMENT:mi,INVALID_DATE_ARGUMENT:vo(),INVALID_ISO_DATE_ARGUMENT:vo(),NOT_SUPPORT_NON_STRING_MESSAGE:vo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:vo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:vo(),NOT_SUPPORT_LOCALE_TYPE:vo(),__EXTEND_POINT__:vo()};function It(e){return Io(e,null,void 0)}function xs(e,t){return t.locale!=null?$i(t.locale):$i(e.locale)}let ws;function $i(e){if(Y(e))return e;if(Ie(e)){if(e.resolvedOnce&&ws!=null)return ws;if(e.constructor.name==="Function"){const t=e();if(mm(t))throw It(Pt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return ws=t}else throw It(Pt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw It(Pt.NOT_SUPPORT_LOCALE_TYPE)}function k$(e,t,o){return[...new Set([o,...Ue(t)?t:ke(t)?Object.keys(t):Y(t)?[t]:[o]])]}function bi(e,t,o){const n=Y(o)?o:jo,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;Ue(r);)r=_i(s,r,t);const l=Ue(t)||!ue(t)?t:t.default?t.default:null;r=Y(l)?[l]:l,Ue(r)&&_i(s,r,!1),a.__localeChainCache.set(n,s)}return s}function _i(e,t,o){let n=!0;for(let a=0;a<t.length&&_e(n);a++){const s=t[a];Y(s)&&(n=L$(e,t[a],o))}return n}function L$(e,t,o){let n;const a=t.split("-");do{const s=a.join("-");n=P$(e,s,o),a.splice(-1,1)}while(a.length&&n===!0);return n}function P$(e,t,o){let n=!1;if(!e.includes(t)&&(n=!0,t)){n=t[t.length-1]!=="!";const a=t.replace(/!/g,"");e.push(a),(Ue(o)||ue(o))&&o[a]&&(n=o[a])}return n}const S$="9.14.5",ha=-1,jo="en-US",yi="",vi=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function A$(){return{upper:(e,t)=>t==="text"&&Y(e)?e.toUpperCase():t==="vnode"&&ke(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&Y(e)?e.toLowerCase():t==="vnode"&&ke(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&Y(e)?vi(e):t==="vnode"&&ke(e)&&"__v_isVNode"in e?vi(e.children):e}}let xi;function wi(e){xi=e}let ki;function E$(e){ki=e}let Li;function C$(e){Li=e}let Pi=null;const R$=e=>{Pi=e},T$=()=>Pi;let Si=null;const Ai=e=>{Si=e},O$=()=>Si;let Ei=0;function M$(e={}){const t=Ie(e.onWarn)?e.onWarn:cm,o=Y(e.version)?e.version:S$,n=Y(e.locale)||Ie(e.locale)?e.locale:jo,a=Ie(n)?jo:n,s=Ue(e.fallbackLocale)||ue(e.fallbackLocale)||Y(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=ue(e.messages)?e.messages:ks(a),l=ue(e.datetimeFormats)?e.datetimeFormats:ks(a),i=ue(e.numberFormats)?e.numberFormats:ks(a),c=nt(Ce(),e.modifiers,A$()),u=e.pluralRules||Ce(),f=Ie(e.missing)?e.missing:null,$=_e(e.missingWarn)||lo(e.missingWarn)?e.missingWarn:!0,_=_e(e.fallbackWarn)||lo(e.fallbackWarn)?e.fallbackWarn:!0,O=!!e.fallbackFormat,L=!!e.unresolving,G=Ie(e.postTranslation)?e.postTranslation:null,A=ue(e.processor)?e.processor:null,k=_e(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,m=Ie(e.messageCompiler)?e.messageCompiler:xi,E=Ie(e.messageResolver)?e.messageResolver:ki||i$,P=Ie(e.localeFallbacker)?e.localeFallbacker:Li||k$,F=ke(e.fallbackContext)?e.fallbackContext:void 0,T=e,S=ke(T.__datetimeFormatters)?T.__datetimeFormatters:new Map,W=ke(T.__numberFormatters)?T.__numberFormatters:new Map,X=ke(T.__meta)?T.__meta:{};Ei++;const K={version:o,cid:Ei,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:f,missingWarn:$,fallbackWarn:_,fallbackFormat:O,unresolving:L,postTranslation:G,processor:A,warnHtmlMessage:k,escapeParameter:b,messageCompiler:m,messageResolver:E,localeFallbacker:P,fallbackContext:F,onWarn:t,__meta:X};return K.datetimeFormats=l,K.numberFormats=i,K.__datetimeFormatters=S,K.__numberFormatters=W,__INTLIFY_PROD_DEVTOOLS__&&_$(K,o,X),K}const ks=e=>({[e]:Ce()});function Ls(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const l=s(e,o,t,a);return Y(l)?l:t}else return t}function bn(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;n<t.length;n++)if(N$(e,t[n]))return!0;return!1}function Ps(e){return o=>I$(o,e)}function I$(e,t){const o=Ym(t);if(o==null)throw mn(0);if(vs(o)===1){const s=Zm(o);return e.plural(s.reduce((r,l)=>[...r,Ci(e,l)],[]))}else return Ci(e,o)}function Ci(e,t){const o=Jm(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=Qm(t).reduce((a,s)=>[...a,Ss(e,s)],[]);return e.normalize(n)}}function Ss(e,t){const o=vs(t);switch(o){case 3:return fa(t,o);case 9:return fa(t,o);case 4:{const n=t;if(kt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(kt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw mn(o)}case 5:{const n=t;if(kt(n,"i")&&Xe(n.i))return e.interpolate(e.list(n.i));if(kt(n,"index")&&Xe(n.index))return e.interpolate(e.list(n.index));throw mn(o)}case 6:{const n=t,a=e$(n),s=t$(n);return e.linked(Ss(e,s),a?Ss(e,a):void 0,e.type)}case 7:return fa(t,o);case 8:return fa(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Ri=e=>e;let Bo=Ce();function Ti(e,t={}){let o=!1;const n=t.onError||Lm;return t.onError=a=>{o=!0,n(a)},{...Km(e,t),detectError:o}}const D$=(e,t)=>{if(!Y(e))throw It(Pt.NOT_SUPPORT_NON_STRING_MESSAGE);{_e(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Ri)(e),a=Bo[n];if(a)return a;const{code:s,detectError:r}=Ti(e,t),l=new Function(`return ${s}`)();return r?l:Bo[n]=l}};function G$(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&Y(e)){_e(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Ri)(e),a=Bo[n];if(a)return a;const{ast:s,detectError:r}=Ti(e,{...t,location:!1,jit:!0}),l=Ps(s);return r?l:Bo[n]=l}else{const o=e.cacheKey;if(o){const n=Bo[o];return n||(Bo[o]=Ps(e))}else return Ps(e)}}const Oi=()=>"",bt=e=>Ie(e);function Mi(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:l}=e,[i,c]=As(...t),u=_e(c.missingWarn)?c.missingWarn:e.missingWarn,f=_e(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,$=_e(c.escapeParameter)?c.escapeParameter:e.escapeParameter,_=!!c.resolvedMessage,O=Y(c.default)||_e(c.default)?_e(c.default)?s?i:()=>i:c.default:o?s?i:()=>i:"",L=o||O!=="",G=xs(e,c);$&&j$(c);let[A,k,b]=_?[i,G,l[G]||Ce()]:Ni(e,i,G,r,f,u),m=A,E=i;if(!_&&!(Y(m)||Ft(m)||bt(m))&&L&&(m=O,E=m),!_&&(!(Y(m)||Ft(m)||bt(m))||!Y(k)))return a?ha:i;let P=!1;const F=()=>{P=!0},T=bt(m)?m:Fi(e,i,k,m,E,F);if(P)return m;const S=V$(e,k,b,c),W=$$(S),X=B$(e,T,W);let K=n?n(X,i):X;if($&&Y(K)&&(K=fm(K)),__INTLIFY_PROD_DEVTOOLS__){const ae={timestamp:Date.now(),key:Y(i)?i:bt(m)?m.key:"",locale:k||(bt(m)?m.locale:""),format:Y(m)?m:bt(m)?m.source:"",message:K};ae.meta=nt({},e.__meta,T$()||{}),y$(ae)}return K}function j$(e){Ue(e.list)?e.list=e.list.map(t=>Y(t)?Kl(t):t):ke(e.named)&&Object.keys(e.named).forEach(t=>{Y(e.named[t])&&(e.named[t]=Kl(e.named[t]))})}function Ni(e,t,o,n,a,s){const{messages:r,onWarn:l,messageResolver:i,localeFallbacker:c}=e,u=c(e,n,o);let f=Ce(),$,_=null;const O="translate";for(let L=0;L<u.length&&($=u[L],f=r[$]||Ce(),(_=i(f,t))===null&&(_=f[t]),!(Y(_)||Ft(_)||bt(_)));L++)if(!F$($,u)){const G=Ls(e,t,$,s,O);G!==t&&(_=G)}return[_,$,f]}function Fi(e,t,o,n,a,s){const{messageCompiler:r,warnHtmlMessage:l}=e;if(bt(n)){const c=n;return c.locale=c.locale||o,c.key=c.key||t,c}if(r==null){const c=()=>n;return c.locale=o,c.key=t,c}const i=r(n,U$(e,o,a,n,l,s));return i.locale=o,i.key=t,i.source=n,i}function B$(e,t,o){return t(o)}function As(...e){const[t,o,n]=e,a=Ce();if(!Y(t)&&!Xe(t)&&!bt(t)&&!Ft(t))throw It(Pt.INVALID_ARGUMENT);const s=Xe(t)?String(t):(bt(t),t);return Xe(o)?a.plural=o:Y(o)?a.default=o:ue(o)&&!ca(o)?a.named=o:Ue(o)&&(a.list=o),Xe(n)?a.plural=n:Y(n)?a.default=n:ue(n)&&nt(a,n),[s,a]}function U$(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>dm(t,o,r)}}function V$(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:l,fallbackWarn:i,missingWarn:c,fallbackContext:u}=e,$={locale:t,modifiers:a,pluralRules:s,messages:_=>{let O=r(o,_);if(O==null&&u){const[,,L]=Ni(u,_,t,l,i,c);O=r(L,_)}if(Y(O)||Ft(O)){let L=!1;const A=Fi(e,_,t,O,_,()=>{L=!0});return L?Oi:A}else return bt(O)?O:Oi}};return e.processor&&($.processor=e.processor),n.list&&($.list=n.list),n.named&&($.named=n.named),Xe(n.plural)&&($.pluralIndex=n.plural),$}function Ii(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:l}=e,[i,c,u,f]=Es(...t),$=_e(u.missingWarn)?u.missingWarn:e.missingWarn;_e(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const _=!!u.part,O=xs(e,u),L=r(e,a,O);if(!Y(i)||i==="")return new Intl.DateTimeFormat(O,f).format(c);let G={},A,k=null;const b="datetime format";for(let P=0;P<L.length&&(A=L[P],G=o[A]||{},k=G[i],!ue(k));P++)Ls(e,i,A,$,b);if(!ue(k)||!Y(A))return n?ha:i;let m=`${A}__${i}`;ca(f)||(m=`${m}__${JSON.stringify(f)}`);let E=l.get(m);return E||(E=new Intl.DateTimeFormat(A,nt({},k,f)),l.set(m,E)),_?E.formatToParts(c):E.format(c)}const Di=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Es(...e){const[t,o,n,a]=e,s=Ce();let r=Ce(),l;if(Y(t)){const i=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!i)throw It(Pt.INVALID_ISO_DATE_ARGUMENT);const c=i[3]?i[3].trim().startsWith("T")?`${i[1].trim()}${i[3].trim()}`:`${i[1].trim()}T${i[3].trim()}`:i[1].trim();l=new Date(c);try{l.toISOString()}catch{throw It(Pt.INVALID_ISO_DATE_ARGUMENT)}}else if(um(t)){if(isNaN(t.getTime()))throw It(Pt.INVALID_DATE_ARGUMENT);l=t}else if(Xe(t))l=t;else throw It(Pt.INVALID_ARGUMENT);return Y(o)?s.key=o:ue(o)&&Object.keys(o).forEach(i=>{Di.includes(i)?r[i]=o[i]:s[i]=o[i]}),Y(n)?s.locale=n:ue(n)&&(r=n),ue(a)&&(r=a),[s.key||"",l,s,r]}function Gi(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function ji(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:l}=e,[i,c,u,f]=Cs(...t),$=_e(u.missingWarn)?u.missingWarn:e.missingWarn;_e(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const _=!!u.part,O=xs(e,u),L=r(e,a,O);if(!Y(i)||i==="")return new Intl.NumberFormat(O,f).format(c);let G={},A,k=null;const b="number format";for(let P=0;P<L.length&&(A=L[P],G=o[A]||{},k=G[i],!ue(k));P++)Ls(e,i,A,$,b);if(!ue(k)||!Y(A))return n?ha:i;let m=`${A}__${i}`;ca(f)||(m=`${m}__${JSON.stringify(f)}`);let E=l.get(m);return E||(E=new Intl.NumberFormat(A,nt({},k,f)),l.set(m,E)),_?E.formatToParts(c):E.format(c)}const Bi=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Cs(...e){const[t,o,n,a]=e,s=Ce();let r=Ce();if(!Xe(t))throw It(Pt.INVALID_ARGUMENT);const l=t;return Y(o)?s.key=o:ue(o)&&Object.keys(o).forEach(i=>{Bi.includes(i)?r[i]=o[i]:s[i]=o[i]}),Y(n)?s.locale=n:ue(n)&&(r=n),ue(a)&&(r=a),[s.key||"",l,s,r]}function Ui(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}Xm();/*!
|
||
* vue-i18n v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/const z$="9.14.5";function W$(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Jt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Jt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Jt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Jt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Jt().__INTLIFY_PROD_DEVTOOLS__=!1)}const H$=w$.__EXTEND_POINT__,eo=da(H$);eo(),eo(),eo(),eo(),eo(),eo(),eo(),eo(),eo();const Vi=Pt.__EXTEND_POINT__,pt=da(Vi),Ze={UNEXPECTED_RETURN_TYPE:Vi,INVALID_ARGUMENT:pt(),MUST_BE_CALL_SETUP_TOP:pt(),NOT_INSTALLED:pt(),NOT_AVAILABLE_IN_LEGACY_MODE:pt(),REQUIRED_VALUE:pt(),INVALID_VALUE:pt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:pt(),NOT_INSTALLED_WITH_PROVIDE:pt(),UNEXPECTED_ERROR:pt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:pt(),BRIDGE_SUPPORT_VUE_2_ONLY:pt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:pt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:pt(),__EXTEND_POINT__:pt()};function et(e,...t){return Io(e,null,void 0)}const Rs=ro("__translateVNode"),Ts=ro("__datetimeParts"),Os=ro("__numberParts"),zi=ro("__setPluralRules"),Wi=ro("__injectWithOption"),Ms=ro("__dispose");function _n(e){if(!ke(e)||Ft(e))return e;for(const t in e)if(kt(e,t))if(!t.includes("."))ke(e[t])&&_n(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,s=!1;for(let r=0;r<n;r++){if(o[r]==="__proto__")throw new Error(`unsafe key: ${o[r]}`);if(o[r]in a||(a[o[r]]=Ce()),!ke(a[o[r]])){s=!0;break}a=a[o[r]]}if(s||(Ft(a)?gi.includes(o[n])||delete e[t]:(a[o[n]]=e[t],delete e[t])),!Ft(a)){const r=a[o[n]];ke(r)&&_n(r)}}return e}function ma(e,t){const{messages:o,__i18n:n,messageResolver:a,flatJson:s}=t,r=ue(o)?o:Ue(n)?Ce():{[e]:Ce()};if(Ue(n)&&n.forEach(l=>{if("locale"in l&&"resource"in l){const{locale:i,resource:c}=l;i?(r[i]=r[i]||Ce(),ua(c,r[i])):ua(c,r)}else Y(l)&&ua(JSON.parse(l),r)}),a==null&&s)for(const l in r)kt(r,l)&&_n(r[l]);return r}function Hi(e){return e.type}function qi(e,t,o){let n=ke(t.messages)?t.messages:Ce();"__i18nGlobal"in o&&(n=ma(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(ke(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(ke(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function Ki(e){return Be(ln,null,e,0)}const Xi="__INTLIFY_META__",Yi=()=>[],q$=()=>!1;let Zi=0;function Ji(e){return(t,o,n,a)=>e(o,n,Yt()||void 0,a)}const K$=()=>{const e=Yt();let t=null;return e&&(t=Hi(e)[Xi])?{[Xi]:t}:null};function Ns(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=ia?H:Ao,l=!!e.translateExistCompatible;let i=_e(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&i?o.locale.value:Y(e.locale)?e.locale:jo),u=r(o&&i?o.fallbackLocale.value:Y(e.fallbackLocale)||Ue(e.fallbackLocale)||ue(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=r(ma(c.value,e)),$=r(ue(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),_=r(ue(e.numberFormats)?e.numberFormats:{[c.value]:{}});let O=o?o.missingWarn:_e(e.missingWarn)||lo(e.missingWarn)?e.missingWarn:!0,L=o?o.fallbackWarn:_e(e.fallbackWarn)||lo(e.fallbackWarn)?e.fallbackWarn:!0,G=o?o.fallbackRoot:_e(e.fallbackRoot)?e.fallbackRoot:!0,A=!!e.fallbackFormat,k=Ie(e.missing)?e.missing:null,b=Ie(e.missing)?Ji(e.missing):null,m=Ie(e.postTranslation)?e.postTranslation:null,E=o?o.warnHtmlMessage:_e(e.warnHtmlMessage)?e.warnHtmlMessage:!0,P=!!e.escapeParameter;const F=o?o.modifiers:ue(e.modifiers)?e.modifiers:{};let T=e.pluralRules||o&&o.pluralRules,S;S=(()=>{a&&Ai(null);const I={version:z$,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:F,pluralRules:T,missing:b===null?void 0:b,missingWarn:O,fallbackWarn:L,fallbackFormat:A,unresolving:!0,postTranslation:m===null?void 0:m,warnHtmlMessage:E,escapeParameter:P,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};I.datetimeFormats=$.value,I.numberFormats=_.value,I.__datetimeFormatters=ue(S)?S.__datetimeFormatters:void 0,I.__numberFormatters=ue(S)?S.__numberFormatters:void 0;const B=M$(I);return a&&Ai(B),B})(),bn(S,c.value,u.value);function X(){return[c.value,u.value,f.value,$.value,_.value]}const K=ne({get:()=>c.value,set:I=>{c.value=I,S.locale=c.value}}),ae=ne({get:()=>u.value,set:I=>{u.value=I,S.fallbackLocale=u.value,bn(S,c.value,I)}}),ge=ne(()=>f.value),ye=ne(()=>$.value),se=ne(()=>_.value);function ee(){return Ie(m)?m:null}function ce(I){m=I,S.postTranslation=I}function Ne(){return k}function Z(I){I!==null&&(b=Ji(I)),k=I,S.missing=b}const J=(I,B,oe,me,fe,Re)=>{X();let Ge;try{__INTLIFY_PROD_DEVTOOLS__,a||(S.fallbackContext=o?O$():void 0),Ge=I(S)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(S.fallbackContext=void 0)}if(oe!=="translate exists"&&Xe(Ge)&&Ge===ha||oe==="translate exists"&&!Ge){const[jt,Ws]=B();return o&&G?me(o):fe(jt)}else{if(Re(Ge))return Ge;throw et(Ze.UNEXPECTED_RETURN_TYPE)}};function te(...I){return J(B=>Reflect.apply(Mi,null,[B,...I]),()=>As(...I),"translate",B=>Reflect.apply(B.t,B,[...I]),B=>B,B=>Y(B))}function be(...I){const[B,oe,me]=I;if(me&&!ke(me))throw et(Ze.INVALID_ARGUMENT);return te(B,oe,nt({resolvedMessage:!0},me||{}))}function De(...I){return J(B=>Reflect.apply(Ii,null,[B,...I]),()=>Es(...I),"datetime format",B=>Reflect.apply(B.d,B,[...I]),()=>yi,B=>Y(B))}function He(...I){return J(B=>Reflect.apply(ji,null,[B,...I]),()=>Cs(...I),"number format",B=>Reflect.apply(B.n,B,[...I]),()=>yi,B=>Y(B))}function Pe(I){return I.map(B=>Y(B)||Xe(B)||_e(B)?Ki(String(B)):B)}const pe={normalize:Pe,interpolate:I=>I,type:"vnode"};function $e(...I){return J(B=>{let oe;const me=B;try{me.processor=pe,oe=Reflect.apply(Mi,null,[me,...I])}finally{me.processor=null}return oe},()=>As(...I),"translate",B=>B[Rs](...I),B=>[Ki(B)],B=>Ue(B))}function Se(...I){return J(B=>Reflect.apply(ji,null,[B,...I]),()=>Cs(...I),"number format",B=>B[Os](...I),Yi,B=>Y(B)||Ue(B))}function Q(...I){return J(B=>Reflect.apply(Ii,null,[B,...I]),()=>Es(...I),"datetime format",B=>B[Ts](...I),Yi,B=>Y(B)||Ue(B))}function h(I){T=I,S.pluralRules=T}function v(I,B){return J(()=>{if(!I)return!1;const oe=Y(B)?B:c.value,me=w(oe),fe=S.messageResolver(me,I);return l?fe!=null:Ft(fe)||bt(fe)||Y(fe)},()=>[I],"translate exists",oe=>Reflect.apply(oe.te,oe,[I,B]),q$,oe=>_e(oe))}function x(I){let B=null;const oe=bi(S,u.value,c.value);for(let me=0;me<oe.length;me++){const fe=f.value[oe[me]]||{},Re=S.messageResolver(fe,I);if(Re!=null){B=Re;break}}return B}function D(I){const B=x(I);return B??(o?o.tm(I)||{}:{})}function w(I){return f.value[I]||{}}function p(I,B){if(s){const oe={[I]:B};for(const me in oe)kt(oe,me)&&_n(oe[me]);B=oe[I]}f.value[I]=B,S.messages=f.value}function C(I,B){f.value[I]=f.value[I]||{};const oe={[I]:B};if(s)for(const me in oe)kt(oe,me)&&_n(oe[me]);B=oe[I],ua(B,f.value[I]),S.messages=f.value}function N(I){return $.value[I]||{}}function d(I,B){$.value[I]=B,S.datetimeFormats=$.value,Gi(S,I,B)}function g(I,B){$.value[I]=nt($.value[I]||{},B),S.datetimeFormats=$.value,Gi(S,I,B)}function R(I){return _.value[I]||{}}function M(I,B){_.value[I]=B,S.numberFormats=_.value,Ui(S,I,B)}function V(I,B){_.value[I]=nt(_.value[I]||{},B),S.numberFormats=_.value,Ui(S,I,B)}Zi++,o&&ia&&(We(o.locale,I=>{i&&(c.value=I,S.locale=I,bn(S,c.value,u.value))}),We(o.fallbackLocale,I=>{i&&(u.value=I,S.fallbackLocale=I,bn(S,c.value,u.value))}));const z={id:Zi,locale:K,fallbackLocale:ae,get inheritLocale(){return i},set inheritLocale(I){i=I,I&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,bn(S,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ge,get modifiers(){return F},get pluralRules(){return T||{}},get isGlobal(){return a},get missingWarn(){return O},set missingWarn(I){O=I,S.missingWarn=O},get fallbackWarn(){return L},set fallbackWarn(I){L=I,S.fallbackWarn=L},get fallbackRoot(){return G},set fallbackRoot(I){G=I},get fallbackFormat(){return A},set fallbackFormat(I){A=I,S.fallbackFormat=A},get warnHtmlMessage(){return E},set warnHtmlMessage(I){E=I,S.warnHtmlMessage=I},get escapeParameter(){return P},set escapeParameter(I){P=I,S.escapeParameter=I},t:te,getLocaleMessage:w,setLocaleMessage:p,mergeLocaleMessage:C,getPostTranslationHandler:ee,setPostTranslationHandler:ce,getMissingHandler:Ne,setMissingHandler:Z,[zi]:h};return z.datetimeFormats=ye,z.numberFormats=se,z.rt=be,z.te=v,z.tm=D,z.d=De,z.n=He,z.getDateTimeFormat=N,z.setDateTimeFormat=d,z.mergeDateTimeFormat=g,z.getNumberFormat=R,z.setNumberFormat=M,z.mergeNumberFormat=V,z[Wi]=n,z[Rs]=$e,z[Ts]=Q,z[Os]=Se,z}function X$(e){const t=Y(e.locale)?e.locale:jo,o=Y(e.fallbackLocale)||Ue(e.fallbackLocale)||ue(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=Ie(e.missing)?e.missing:void 0,a=_e(e.silentTranslationWarn)||lo(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=_e(e.silentFallbackWarn)||lo(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=_e(e.fallbackRoot)?e.fallbackRoot:!0,l=!!e.formatFallbackMessages,i=ue(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Ie(e.postTranslation)?e.postTranslation:void 0,f=Y(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,$=!!e.escapeParameterHtml,_=_e(e.sync)?e.sync:!0;let O=e.messages;if(ue(e.sharedMessages)){const P=e.sharedMessages;O=Object.keys(P).reduce((T,S)=>{const W=T[S]||(T[S]={});return nt(W,P[S]),T},O||{})}const{__i18n:L,__root:G,__injectWithOption:A}=e,k=e.datetimeFormats,b=e.numberFormats,m=e.flatJson,E=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:O,flatJson:m,datetimeFormats:k,numberFormats:b,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:l,modifiers:i,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:$,messageResolver:e.messageResolver,inheritLocale:_,translateExistCompatible:E,__i18n:L,__root:G,__injectWithOption:A}}function Fs(e={},t){{const o=Ns(X$(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(s){o.locale.value=s},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(s){o.fallbackLocale.value=s},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(s){},get missing(){return o.getMissingHandler()},set missing(s){o.setMissingHandler(s)},get silentTranslationWarn(){return _e(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=_e(s)?!s:s},get silentFallbackWarn(){return _e(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=_e(s)?!s:s},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(s){o.fallbackFormat=s},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(s){o.setPostTranslationHandler(s)},get sync(){return o.inheritLocale},set sync(s){o.inheritLocale=s},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){o.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(s){o.escapeParameter=s},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(s){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...s){const[r,l,i]=s,c={};let u=null,f=null;if(!Y(r))throw et(Ze.INVALID_ARGUMENT);const $=r;return Y(l)?c.locale=l:Ue(l)?u=l:ue(l)&&(f=l),Ue(i)?u=i:ue(i)&&(f=i),Reflect.apply(o.t,o,[$,u||f||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,l,i]=s,c={plural:1};let u=null,f=null;if(!Y(r))throw et(Ze.INVALID_ARGUMENT);const $=r;return Y(l)?c.locale=l:Xe(l)?c.plural=l:Ue(l)?u=l:ue(l)&&(f=l),Y(i)?c.locale=i:Ue(i)?u=i:ue(i)&&(f=i),Reflect.apply(o.t,o,[$,u||f||{},c])},te(s,r){return o.te(s,r)},tm(s){return o.tm(s)},getLocaleMessage(s){return o.getLocaleMessage(s)},setLocaleMessage(s,r){o.setLocaleMessage(s,r)},mergeLocaleMessage(s,r){o.mergeLocaleMessage(s,r)},d(...s){return Reflect.apply(o.d,o,[...s])},getDateTimeFormat(s){return o.getDateTimeFormat(s)},setDateTimeFormat(s,r){o.setDateTimeFormat(s,r)},mergeDateTimeFormat(s,r){o.mergeDateTimeFormat(s,r)},n(...s){return Reflect.apply(o.n,o,[...s])},getNumberFormat(s){return o.getNumberFormat(s)},setNumberFormat(s,r){o.setNumberFormat(s,r)},mergeNumberFormat(s,r){o.mergeNumberFormat(s,r)},getChoiceIndex(s,r){return-1}};return a.__extender=n,a}}const Is={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,a)=>[...n,...a.type===re?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Ce())}function Qi(e){return re}const ec=on({name:"i18n-t",props:nt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Xe(e)||!isNaN(e)}},Is),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||yn({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(f=>f!=="_"),r=Ce();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=Y(e.plural)?+e.plural:e.plural);const l=Y$(t,s),i=a[Rs](e.keypath,l,r),c=nt(Ce(),n),u=Y(e.tag)||ke(e.tag)?e.tag:Qi();return wl(u,c,i)}}});function Z$(e){return Ue(e)&&!Y(e[0])}function tc(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let l=Ce();e.locale&&(r.locale=e.locale),Y(e.format)?r.key=e.format:ke(e.format)&&(Y(e.format.key)&&(r.key=e.format.key),l=Object.keys(e.format).reduce(($,_)=>o.includes(_)?nt(Ce(),$,{[_]:e.format[_]}):$,Ce()));const i=n(e.value,r,l);let c=[r.key];Ue(i)?c=i.map(($,_)=>{const O=a[$.type],L=O?O({[$.type]:$.value,index:_,parts:i}):[$.value];return Z$(L)&&(L[0].key=`${$.type}-${_}`),L}):Y(i)&&(c=[i]);const u=nt(Ce(),s),f=Y(e.tag)||ke(e.tag)?e.tag:Qi();return wl(f,u,c)}}const oc=on({name:"i18n-n",props:nt({value:{type:Number,required:!0},format:{type:[String,Object]}},Is),setup(e,t){const o=e.i18n||yn({useScope:e.scope,__useComponent:!0});return tc(e,t,Bi,(...n)=>o[Os](...n))}}),nc=on({name:"i18n-d",props:nt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Is),setup(e,t){const o=e.i18n||yn({useScope:e.scope,__useComponent:!0});return tc(e,t,Di,(...n)=>o[Ts](...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:l,modifiers:i,value:c}=r;if(!l||!l.$)throw et(Ze.UNEXPECTED_ERROR);const u=J$(e,l.$),f=ac(c);return[Reflect.apply(u.t,u,[...sc(f)]),u]};return{created:(r,l)=>{const[i,c]=t(l);ia&&e.global===c&&(r.__i18nWatcher=We(c.locale,()=>{l.instance&&l.instance.$forceUpdate()})),r.__composer=c,r.textContent=i},unmounted:r=>{ia&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:l})=>{if(r.__composer){const i=r.__composer,c=ac(l);r.textContent=Reflect.apply(i.t,i,[...sc(c)])}},getSSRProps:r=>{const[l]=t(r);return{textContent:l}}}}function ac(e){if(Y(e))return{path:e};if(ue(e)){if(!("path"in e))throw et(Ze.REQUIRED_VALUE,"path");return e}else throw et(Ze.INVALID_VALUE)}function sc(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},l=n||{};return Y(o)&&(r.locale=o),Xe(a)&&(r.plural=a),Xe(s)&&(r.plural=s),[t,l,r]}function eb(e,t,...o){const n=ue(o[0])?o[0]:{},a=!!n.useI18nComponentName;(_e(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":ec.name,"I18nT"].forEach(r=>e.component(r,ec)),[oc.name,"I18nN"].forEach(r=>e.component(r,oc)),[nc.name,"I18nD"].forEach(r=>e.component(r,nc))),e.directive("t",Q$(t))}function tb(e,t,o){return{beforeCreate(){const n=Yt();if(!n)throw et(Ze.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const s=a.i18n;if(a.__i18n&&(s.__i18n=a.__i18n),s.__root=t,this===this.$root)this.$i18n=rc(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=Fs(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=rc(e,a);else{this.$i18n=Fs({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&qi(t,a,a),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,r)=>this.$i18n.te(s,r),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=Yt();if(!n)throw et(Ze.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function rc(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[zi](t.pluralizationRules||e.pluralizationRules);const o=ma(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 ob=ro("global-vue-i18n");function nb(e={},t){const o=__VUE_I18N_LEGACY_API__&&_e(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=_e(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,l]=ab(e,o),i=ro("");function c($){return s.get($)||null}function u($,_){s.set($,_)}function f($){s.delete($)}{const $={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(_,...O){if(_.__VUE_I18N_SYMBOL__=i,_.provide(_.__VUE_I18N_SYMBOL__,$),ue(O[0])){const A=O[0];$.__composerExtend=A.__composerExtend,$.__vueI18nExtend=A.__vueI18nExtend}let L=null;!o&&n&&(L=gb(_,$.global)),__VUE_I18N_FULL_INSTALL__&&eb(_,$,...O),__VUE_I18N_LEGACY_API__&&o&&_.mixin(tb(l,l.__composer,$));const G=_.unmount;_.unmount=()=>{L&&L(),$.dispose(),G()}},get global(){return l},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:f};return $}}function yn(e={}){const t=Yt();if(t==null)throw et(Ze.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw et(Ze.NOT_INSTALLED);const o=sb(t),n=lb(o),a=Hi(t),s=rb(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw et(Ze.NOT_AVAILABLE_IN_LEGACY_MODE);return pb(t,s,n,e)}if(s==="global")return qi(n,e,a),n;if(s==="parent"){let i=ib(o,t,e.__useComponent);return i==null&&(i=n),i}const r=o;let l=r.__getInstance(t);if(l==null){const i=nt({},e);"__i18n"in a&&(i.__i18n=a.__i18n),n&&(i.__root=n),l=Ns(i),r.__composerExtend&&(l[Ms]=r.__composerExtend(l)),db(r,t,l),r.__setInstance(t,l)}return l}function ab(e,t,o){const n=Ia();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Fs(e)):n.run(()=>Ns(e));if(a==null)throw et(Ze.UNEXPECTED_ERROR);return[n,a]}}function sb(e){{const t=Oe(e.isCE?ob:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw et(e.isCE?Ze.NOT_INSTALLED_WITH_PROVIDE:Ze.UNEXPECTED_ERROR);return t}}function rb(e,t){return ca(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function lb(e){return e.mode==="composition"?e.global:e.global.__composer}function ib(e,t,o=!1){let n=null;const a=t.root;let s=cb(t,o);for(;s!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const l=r.__getInstance(s);l!=null&&(n=l.__composer,o&&n&&!n[Wi]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function cb(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function db(e,t,o){Qe(()=>{},t),Xn(()=>{const n=o;e.__deleteInstance(t);const a=n[Ms];a&&(a(),delete n[Ms])},t)}function pb(e,t,o,n={}){const a=t==="local",s=Ao(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw et(Ze.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=_e(n.inheritLocale)?n.inheritLocale:!Y(n.locale),l=H(!a||r?o.locale.value:Y(n.locale)?n.locale:jo),i=H(!a||r?o.fallbackLocale.value:Y(n.fallbackLocale)||Ue(n.fallbackLocale)||ue(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:l.value),c=H(ma(l.value,n)),u=H(ue(n.datetimeFormats)?n.datetimeFormats:{[l.value]:{}}),f=H(ue(n.numberFormats)?n.numberFormats:{[l.value]:{}}),$=a?o.missingWarn:_e(n.missingWarn)||lo(n.missingWarn)?n.missingWarn:!0,_=a?o.fallbackWarn:_e(n.fallbackWarn)||lo(n.fallbackWarn)?n.fallbackWarn:!0,O=a?o.fallbackRoot:_e(n.fallbackRoot)?n.fallbackRoot:!0,L=!!n.fallbackFormat,G=Ie(n.missing)?n.missing:null,A=Ie(n.postTranslation)?n.postTranslation:null,k=a?o.warnHtmlMessage:_e(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,m=a?o.modifiers:ue(n.modifiers)?n.modifiers:{},E=n.pluralRules||a&&o.pluralRules;function P(){return[l.value,i.value,c.value,u.value,f.value]}const F=ne({get:()=>s.value?s.value.locale.value:l.value,set:x=>{s.value&&(s.value.locale.value=x),l.value=x}}),T=ne({get:()=>s.value?s.value.fallbackLocale.value:i.value,set:x=>{s.value&&(s.value.fallbackLocale.value=x),i.value=x}}),S=ne(()=>s.value?s.value.messages.value:c.value),W=ne(()=>u.value),X=ne(()=>f.value);function K(){return s.value?s.value.getPostTranslationHandler():A}function ae(x){s.value&&s.value.setPostTranslationHandler(x)}function ge(){return s.value?s.value.getMissingHandler():G}function ye(x){s.value&&s.value.setMissingHandler(x)}function se(x){return P(),x()}function ee(...x){return s.value?se(()=>Reflect.apply(s.value.t,null,[...x])):se(()=>"")}function ce(...x){return s.value?Reflect.apply(s.value.rt,null,[...x]):""}function Ne(...x){return s.value?se(()=>Reflect.apply(s.value.d,null,[...x])):se(()=>"")}function Z(...x){return s.value?se(()=>Reflect.apply(s.value.n,null,[...x])):se(()=>"")}function J(x){return s.value?s.value.tm(x):{}}function te(x,D){return s.value?s.value.te(x,D):!1}function be(x){return s.value?s.value.getLocaleMessage(x):{}}function De(x,D){s.value&&(s.value.setLocaleMessage(x,D),c.value[x]=D)}function He(x,D){s.value&&s.value.mergeLocaleMessage(x,D)}function Pe(x){return s.value?s.value.getDateTimeFormat(x):{}}function qe(x,D){s.value&&(s.value.setDateTimeFormat(x,D),u.value[x]=D)}function pe(x,D){s.value&&s.value.mergeDateTimeFormat(x,D)}function $e(x){return s.value?s.value.getNumberFormat(x):{}}function Se(x,D){s.value&&(s.value.setNumberFormat(x,D),f.value[x]=D)}function Q(x,D){s.value&&s.value.mergeNumberFormat(x,D)}const h={get id(){return s.value?s.value.id:-1},locale:F,fallbackLocale:T,messages:S,datetimeFormats:W,numberFormats:X,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(x){s.value&&(s.value.inheritLocale=x)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:m},get pluralRules(){return s.value?s.value.pluralRules:E},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:$},set missingWarn(x){s.value&&(s.value.missingWarn=x)},get fallbackWarn(){return s.value?s.value.fallbackWarn:_},set fallbackWarn(x){s.value&&(s.value.missingWarn=x)},get fallbackRoot(){return s.value?s.value.fallbackRoot:O},set fallbackRoot(x){s.value&&(s.value.fallbackRoot=x)},get fallbackFormat(){return s.value?s.value.fallbackFormat:L},set fallbackFormat(x){s.value&&(s.value.fallbackFormat=x)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:k},set warnHtmlMessage(x){s.value&&(s.value.warnHtmlMessage=x)},get escapeParameter(){return s.value?s.value.escapeParameter:b},set escapeParameter(x){s.value&&(s.value.escapeParameter=x)},t:ee,getPostTranslationHandler:K,setPostTranslationHandler:ae,getMissingHandler:ge,setMissingHandler:ye,rt:ce,d:Ne,n:Z,tm:J,te,getLocaleMessage:be,setLocaleMessage:De,mergeLocaleMessage:He,getDateTimeFormat:Pe,setDateTimeFormat:qe,mergeDateTimeFormat:pe,getNumberFormat:$e,setNumberFormat:Se,mergeNumberFormat:Q};function v(x){x.locale.value=l.value,x.fallbackLocale.value=i.value,Object.keys(c.value).forEach(D=>{x.mergeLocaleMessage(D,c.value[D])}),Object.keys(u.value).forEach(D=>{x.mergeDateTimeFormat(D,u.value[D])}),Object.keys(f.value).forEach(D=>{x.mergeNumberFormat(D,f.value[D])}),x.escapeParameter=b,x.fallbackFormat=L,x.fallbackRoot=O,x.fallbackWarn=_,x.missingWarn=$,x.warnHtmlMessage=k}return Gr(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw et(Ze.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const x=s.value=e.proxy.$i18n.__composer;t==="global"?(l.value=x.locale.value,i.value=x.fallbackLocale.value,c.value=x.messages.value,u.value=x.datetimeFormats.value,f.value=x.numberFormats.value):a&&v(x)}),h}const ub=["locale","fallbackLocale","availableLocales"],lc=["t","rt","d","n","tm","te"];function gb(e,t){const o=Object.create(null);return ub.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw et(Ze.UNEXPECTED_ERROR);const r=ze(s.value)?{get(){return s.value.value},set(l){s.value.value=l}}:{get(){return s.get&&s.get()}};Object.defineProperty(o,a,r)}),e.config.globalProperties.$i18n=o,lc.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw et(Ze.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,lc.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(W$(),__INTLIFY_JIT_COMPILATION__?wi(G$):wi(D$),E$(c$),C$(bi),__INTLIFY_PROD_DEVTOOLS__){const e=Jt();e.__INTLIFY__=!0,b$(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const fb=Object.assign({"./locales/ar/allPeopleGroups.json":hu,"./locales/ar/aria.json":mu,"./locales/ar/buttons.json":$u,"./locales/ar/connectivity.json":bu,"./locales/ar/controls.json":_u,"./locales/ar/dashboard.json":yu,"./locales/ar/detail.json":vu,"./locales/ar/gospel.json":xu,"./locales/ar/grid.json":wu,"./locales/ar/legend.json":ku,"./locales/ar/messages.json":Lu,"./locales/ar/options.json":Pu,"./locales/ar/popup.json":Su,"./locales/ar/prayerLaps.json":Au,"./locales/ar/regions.json":Eu,"./locales/ar/search.json":Cu,"./locales/ar/studio.json":Ru,"./locales/ar/tabs.json":Tu,"./locales/ar/vision.json":Ou,"./locales/de/allPeopleGroups.json":Mu,"./locales/de/aria.json":Nu,"./locales/de/buttons.json":Fu,"./locales/de/connectivity.json":Iu,"./locales/de/controls.json":Du,"./locales/de/dashboard.json":Gu,"./locales/de/detail.json":ju,"./locales/de/gospel.json":Bu,"./locales/de/grid.json":Uu,"./locales/de/legend.json":Vu,"./locales/de/messages.json":zu,"./locales/de/options.json":Wu,"./locales/de/popup.json":Hu,"./locales/de/prayerLaps.json":qu,"./locales/de/regions.json":Ku,"./locales/de/search.json":Xu,"./locales/de/studio.json":Yu,"./locales/de/tabs.json":Zu,"./locales/de/vision.json":Ju,"./locales/en/allPeopleGroups.json":Qu,"./locales/en/aria.json":eg,"./locales/en/buttons.json":tg,"./locales/en/connectivity.json":og,"./locales/en/controls.json":ng,"./locales/en/dashboard.json":ag,"./locales/en/detail.json":sg,"./locales/en/gospel.json":rg,"./locales/en/grid.json":lg,"./locales/en/legend.json":ig,"./locales/en/messages.json":cg,"./locales/en/options.json":dg,"./locales/en/popup.json":pg,"./locales/en/prayerLaps.json":ug,"./locales/en/regions.json":gg,"./locales/en/search.json":fg,"./locales/en/studio.json":hg,"./locales/en/tabs.json":mg,"./locales/en/vision.json":$g,"./locales/es/allPeopleGroups.json":bg,"./locales/es/aria.json":_g,"./locales/es/buttons.json":yg,"./locales/es/connectivity.json":vg,"./locales/es/controls.json":xg,"./locales/es/dashboard.json":wg,"./locales/es/detail.json":kg,"./locales/es/gospel.json":Lg,"./locales/es/grid.json":Pg,"./locales/es/legend.json":Sg,"./locales/es/messages.json":Ag,"./locales/es/options.json":Eg,"./locales/es/popup.json":Cg,"./locales/es/prayerLaps.json":Rg,"./locales/es/regions.json":Tg,"./locales/es/search.json":Og,"./locales/es/studio.json":Mg,"./locales/es/tabs.json":Ng,"./locales/es/vision.json":Fg,"./locales/fr/allPeopleGroups.json":Ig,"./locales/fr/aria.json":Dg,"./locales/fr/buttons.json":Gg,"./locales/fr/connectivity.json":jg,"./locales/fr/controls.json":Bg,"./locales/fr/dashboard.json":Ug,"./locales/fr/detail.json":Vg,"./locales/fr/gospel.json":zg,"./locales/fr/grid.json":Wg,"./locales/fr/legend.json":Hg,"./locales/fr/messages.json":qg,"./locales/fr/options.json":Kg,"./locales/fr/popup.json":Xg,"./locales/fr/prayerLaps.json":Yg,"./locales/fr/regions.json":Zg,"./locales/fr/search.json":Jg,"./locales/fr/studio.json":Qg,"./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":df,"./locales/hi/grid.json":pf,"./locales/hi/legend.json":uf,"./locales/hi/messages.json":gf,"./locales/hi/options.json":ff,"./locales/hi/popup.json":hf,"./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":Sf,"./locales/it/detail.json":Af,"./locales/it/gospel.json":Ef,"./locales/it/grid.json":Cf,"./locales/it/legend.json":Rf,"./locales/it/messages.json":Tf,"./locales/it/options.json":Of,"./locales/it/popup.json":Mf,"./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":jf,"./locales/pt/allPeopleGroups.json":Bf,"./locales/pt/aria.json":Uf,"./locales/pt/buttons.json":Vf,"./locales/pt/connectivity.json":zf,"./locales/pt/controls.json":Wf,"./locales/pt/dashboard.json":Hf,"./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":eh,"./locales/pt/regions.json":th,"./locales/pt/search.json":oh,"./locales/pt/studio.json":nh,"./locales/pt/tabs.json":ah,"./locales/pt/vision.json":sh,"./locales/ro/allPeopleGroups.json":rh,"./locales/ro/aria.json":lh,"./locales/ro/buttons.json":ih,"./locales/ro/connectivity.json":ch,"./locales/ro/controls.json":dh,"./locales/ro/dashboard.json":ph,"./locales/ro/detail.json":uh,"./locales/ro/gospel.json":gh,"./locales/ro/grid.json":fh,"./locales/ro/legend.json":hh,"./locales/ro/messages.json":mh,"./locales/ro/options.json":$h,"./locales/ro/popup.json":bh,"./locales/ro/prayerLaps.json":_h,"./locales/ro/regions.json":yh,"./locales/ro/search.json":vh,"./locales/ro/studio.json":xh,"./locales/ro/tabs.json":wh,"./locales/ro/vision.json":kh,"./locales/ru/allPeopleGroups.json":Lh,"./locales/ru/aria.json":Ph,"./locales/ru/buttons.json":Sh,"./locales/ru/connectivity.json":Ah,"./locales/ru/controls.json":Eh,"./locales/ru/dashboard.json":Ch,"./locales/ru/detail.json":Rh,"./locales/ru/gospel.json":Th,"./locales/ru/grid.json":Oh,"./locales/ru/legend.json":Mh,"./locales/ru/messages.json":Nh,"./locales/ru/options.json":Fh,"./locales/ru/popup.json":Ih,"./locales/ru/prayerLaps.json":Dh,"./locales/ru/regions.json":Gh,"./locales/ru/search.json":jh,"./locales/ru/studio.json":Bh,"./locales/ru/tabs.json":Uh,"./locales/ru/vision.json":Vh,"./locales/zh/allPeopleGroups.json":zh,"./locales/zh/aria.json":Wh,"./locales/zh/buttons.json":Hh,"./locales/zh/connectivity.json":qh,"./locales/zh/controls.json":Kh,"./locales/zh/dashboard.json":Xh,"./locales/zh/detail.json":Yh,"./locales/zh/gospel.json":Zh,"./locales/zh/grid.json":Jh,"./locales/zh/legend.json":Qh,"./locales/zh/messages.json":em,"./locales/zh/options.json":tm,"./locales/zh/popup.json":om,"./locales/zh/prayerLaps.json":nm,"./locales/zh/regions.json":am,"./locales/zh/search.json":sm,"./locales/zh/studio.json":rm,"./locales/zh/tabs.json":lm,"./locales/zh/vision.json":im}),Uo={};for(const[e,t]of Object.entries(fb)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;Uo[n]??(Uo[n]={}),Uo[n][a]=t}Uo.en;const Ds=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],hb=new Set(["ar"]);function mb(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(Ds.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Ds.includes(o)?o:"en"}function $b(){const e=mb();try{hb.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return nb({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Uo,missingWarn:!1,fallbackWarn:!1})}function ic(e,t){const o=t||bb(e);Qe(()=>{var l;const n=Yt();if(!n)return;const a=(l=n.proxy)==null?void 0:l.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,s.appendChild(r)})}function bb(e){let t=0;for(let o=0;o<e.length;o++)t=(t<<5)-t+e.charCodeAt(o),t|=0;return"s"+Math.abs(t).toString(36)}const _b={class:"pin-hint-pill"},yb={__name:"PinHint",setup(e){const t={"messages.pinHint.tapDot":"Tap a dot to see who still needs prayer"};let o=T=>t[T]||T,n=()=>!1;try{const T=yn();o=T.t,n=T.te}catch{}const a=Oe("uiStore",null),s=Oe("profileConfig",null),r=ne(()=>(a==null?void 0:a.theme)==="dark"),l=ne(()=>{var W;const T=(W=s==null?void 0:s.value)==null?void 0:W.pinHintLabel;if(T)return T;const S="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):S}catch{return S}}),i=H(!1),c=H(null);let u=null,f=null,$=null,_=null,O=null,L=null,G=[],A=null,k=null;function b(){i.value=!1}function m(T,S){var X;let W=T==null?void 0:T.parentElement;for(let K=0;W&&K<12;K++,W=W.parentElement){if(W===S||(X=W.classList)!=null&&X.contains("profile-loader"))return null;let ae="";try{ae=getComputedStyle(W).position}catch{}if(ae&&ae!=="static"){const ge=W.getBoundingClientRect();if(ge.height>=120&&ge.width>=160)return W}}return null}function E(T){var W;const S=(W=_==null?void 0:_.querySelector)==null?void 0:W.call(_,".legend-mobile-sheet");if(!S)return 1/0;if(O&&L!==S){try{O.disconnect()}catch{}O=null}if(!O&&typeof ResizeObserver<"u")try{O=new ResizeObserver(()=>P()),O.observe(S),L=S}catch{O=null}try{const X=S.getBoundingClientRect();return!(X.height>16)||!(X.width>16)||T.right<=X.left||X.right<=T.left?1/0:X.top}catch{return 1/0}}function P(){const T=c.value;if(T)try{T.style.removeProperty("--pin-hint-lift");const S=T.getBoundingClientRect();if(!S.height)return;const W=Math.min(window.innerHeight,E(S)),X=Math.round(S.bottom-W);X>0&&T.style.setProperty("--pin-hint-lift",X+8+"px")}catch{}}function F(T){const S=c.value;if(!S||!(T!=null&&T.querySelector))return;let W=0;try{const K=T.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(K){const ae=K.getBoundingClientRect(),ge=S.parentElement,ye=ge?ge.getBoundingClientRect():null;if(W=ye?Math.max(ae.height||0,ye.bottom-ae.top):ae.height||0,k!==K&&typeof ResizeObserver<"u"){if($)try{$.disconnect()}catch{}k=K,$=new ResizeObserver(()=>F(T)),$.observe(K)}}}catch{}const X=Math.min(Math.max(Math.ceil(W)||20,20),72);S.style.setProperty("--pin-hint-attrib-clear",X+"px"),P()}return Qe(()=>{var X,K,ae;const T=Yt(),S=(ae=(K=(X=T==null?void 0:T.proxy)==null?void 0:X.$el)==null?void 0:K.getRootNode)==null?void 0:ae.call(K);if(!S||typeof S.querySelector!="function")return;_=S;let W=0;u=setInterval(()=>{W++;const ge=S.querySelector("canvas");ge?(clearInterval(u),u=null,i.value=!0,To(()=>{const ye=m(ge,S),se=c.value;if(ye&&se&&se.parentElement!==ye)try{ye.appendChild(se),f=ye}catch{}F(S),P(),G.push(setTimeout(P,1200),setTimeout(P,3e3),setTimeout(P,6e3));try{const ee=c.value&&c.value.offsetParent||null;if(ee&&typeof ResizeObserver<"u"){if(A)try{A.disconnect()}catch{}A=new ResizeObserver(()=>P()),A.observe(ee)}}catch{}})):W>40&&(clearInterval(u),u=null)},300)}),rt(()=>{var T;if(u&&clearInterval(u),$){try{$.disconnect()}catch{}$=null}if(k=null,A){try{A.disconnect()}catch{}A=null}if(O){try{O.disconnect()}catch{}O=null}L=null;for(const S of G)clearTimeout(S);if(G=[],_=null,f&&((T=c.value)==null?void 0:T.parentElement)===f)try{f.removeChild(c.value)}catch{}f=null}),ic(`
|
||
.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;
|
||
max-width: calc(100% - 24px); box-sizing: border-box;
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||
animation: pinhint-in .5s ease both; }
|
||
.pin-hint-pill { pointer-events: auto; display: inline-flex; align-items: center; gap: 9px;
|
||
padding: 9px 14px 9px 11px; border-radius: 999px;
|
||
background: rgba(23, 29, 38, .92); color: #fff; font-size: 13.5px; font-weight: 600;
|
||
letter-spacing: .01em; box-shadow: 0 4px 18px rgba(0,0,0,.30);
|
||
animation: pinhint-bob 2.6s ease-in-out 1s infinite; }
|
||
.pin-hint-dot { position: relative; width: 12px; height: 12px; flex: none; }
|
||
.pin-hint-dot::before { content: ''; position: absolute; inset: 0; border-radius: 50%;
|
||
background: #e05252; box-shadow: 0 0 0 2px rgba(224,82,82,.35); }
|
||
.pin-hint-dot::after { content: ''; position: absolute; inset: -5px; border-radius: 50%;
|
||
border: 2px solid rgba(224,82,82,.55); animation: pinhint-pulse 1.8s ease-out infinite; }
|
||
.pin-hint-x { pointer-events: auto; border: none; background: none; color: #aeb7c2;
|
||
font-size: 16px; line-height: 1; cursor: pointer; padding: 0 0 0 2px; }
|
||
.pin-hint-x:hover { color: #fff; }
|
||
@media (pointer:coarse) { .pin-hint-x { min-width: 24px; min-height: 24px;
|
||
display: inline-flex; align-items: center; justify-content: center; padding: 0; } }
|
||
.pin-hint.dark .pin-hint-pill { background: rgba(240, 243, 247, .95); color: #1b212b; }
|
||
.pin-hint.dark .pin-hint-x { color: #5a6470; }
|
||
.pin-hint.dark .pin-hint-x:hover { color: #1b212b; }
|
||
@keyframes pinhint-pulse { 0% { transform: scale(.6); opacity: .9 } 70% { transform: scale(1.5); opacity: 0 } 100% { opacity: 0 } }
|
||
@keyframes pinhint-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
|
||
@keyframes pinhint-in { from { opacity: 0; transform: translateX(-50%) translateY(10px) } to { opacity: 1; transform: translateX(-50%) translateY(0) } }
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; }
|
||
}
|
||
`,"pin-hint"),(T,S)=>i.value?(j(),U("div",{key:0,ref_key:"hintEl",ref:c,class:Ve(["pin-hint",{dark:r.value}]),role:"status"},[y("span",_b,[S[0]||(S[0]=y("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Ee(" "+q(l.value)+" ",1),y("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:b},"×")])],2)):he("",!0)}};let vb=0;const xb=ms("ui",{state:()=>({_storeInstanceId:++vb,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:s=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(r),!s&&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)}))}}}),wb=ms("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},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()}}}),kb=ms("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Jo({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]=Jo({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}}}),Lb={activeSource:"pray-tools"},Pb=".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}",tt=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Sb={class:"profile-loader"},Ab={key:0,class:"profile-error"},Eb={key:1,class:"profile-error"},Cb=tt({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var E;const o=e,n=Oe("profileConfig",null),a=ne(()=>{var F;if(!o.profileConfig)return null;let P;try{P=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(P&&P.assetsBase===void 0){const T=(F=n==null?void 0:n.value)==null?void 0:F.assetsBase;typeof T=="string"&&T&&(P.assetsBase=T)}return P}),s=ne(()=>{var P;return((P=a.value)==null?void 0:P.profile)||null}),r=gu(),l=ne(()=>{var F;const P=(F=a.value)==null?void 0:F.tk;return typeof P=="string"&&P?P:r.value||""});We(()=>{var P;return(P=a.value)==null?void 0:P.tk},P=>{typeof P=="string"&&P&&Hl(P)},{immediate:!0});const i=ne(()=>{var P;return((P=a.value)==null?void 0:P.dataSource)||Lb.activeSource}),c=ne(()=>{var P;return((P=a.value)==null?void 0:P.colorSet)||"default"}),u=ne(()=>!1),f=ne(()=>{var P;return((P=a.value)==null?void 0:P.pinHint)!==!1}),$=ne(()=>{var F,T;const P=(((F=a.value)==null?void 0:F.locale)||((T=a.value)==null?void 0:T.lang)||"").split("-")[0].toLowerCase();return Ds.includes(P)?P:""}),_=Oe("appI18n",null);Sd(()=>{$.value&&_&&(_.global.locale.value=$.value)});const O=ne(()=>{var P,F;return $.value||((F=(P=_==null?void 0:_.global)==null?void 0:P.locale)==null?void 0:F.value)||"en"}),L=ne(()=>{var P;return((P=a.value)==null?void 0:P.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),G=Oe("profileModules",null);if(!G)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const A=ne(()=>{if(!s.value)return null;const P=`./${s.value}.vue`;return G[P]?fu(G[P]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(G)),null)});wt("mapboxToken",l),wt("dataSource",i),wt("colorSet",c),wt("profileConfig",a),wt("instanceId",L),wt("lang",O);const k=xb(),b=wb(),m=kb();try{const P=typeof localStorage<"u"?localStorage.getItem("theme"):null;P&&((E=k.setTheme)==null||E.call(k,P))}catch{}return wt("uiStore",k),wt("mapStore",b),wt("dataStore",m),(P,F)=>(j(),U("div",Sb,[a.value?A.value?(j(),Me(Ot(A.value),{key:2})):(j(),U("div",Eb,[y("p",null,[F[1]||(F[1]=Ee("⚠️ Profile ",-1)),y("strong",null,'"'+q(s.value)+'"',1),F[2]||(F[2]=Ee(" not found.",-1))])])):(j(),U("div",Ab,[...F[0]||(F[0]=[y("p",null,[Ee("⚠️ "),y("strong",null,"doxa-map"),Ee(": missing or invalid "),y("code",null,"profile-config"),Ee(" prop.")],-1),y("p",null,[Ee("Example: "),y("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),A.value&&u.value?(j(),Me(Ot(ve(null)),{key:3})):he("",!0),A.value&&f.value?(j(),Me(yb,{key:4})):he("",!0)]))}},[["styles",[Pb]],["__scopeId","data-v-ba19fc13"]]),Rb=Object.assign({"./pplr-data-maps.vue":()=>_t(()=>Promise.resolve().then(()=>Wb),void 0)});if(typeof window<"u"&&((Sc=window.mapboxgl)!=null&&Sc.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}const Tb=Jp(Cb,{configureApp(e){e.use(ru());const t=$b();e.use(t),e.provide("appI18n",t),e.provide("profileModules",Rb)}});typeof customElements<"u"&&!customElements.get("pplr-data-maps")&&customElements.define("pplr-data-maps",Tb);const Ob=Ra&&Ra.tagName.toUpperCase()==="SCRIPT"&&Ra.src||new URL("pplr-data-maps.js",document.baseURI).href,vn=e=>String(e||"").trim().replace(/\/+$/,"");function Mb(){try{const t=String(Ob||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Nb(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=vn(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=vn((e==null?void 0:e.treeBase)||"")||vn(Mb()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return vn(new URL(o+"/assets",n).href)}catch{return vn(o+"/assets")}return"./assets"}let cc="./assets";function Fb(e){e&&(cc=String(e).replace(/\/+$/,""))}function Dt(e){return cc+"/pplr/"+e}let $a=null;function Ib(){return typeof window>"u"||window.d3?Promise.resolve():($a||($a=new Promise((e,t)=>{const o=document.createElement("script");o.src="https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js",o.onload=()=>e(),o.onerror=()=>{$a=null,t(new Error("d3 failed to load"))},document.head.appendChild(o)})),$a)}let ba=null;function Db(){return ba||(ba=fetch(Dt("pg-names.json")).then(e=>{if(!e.ok)throw new Error("pg-names.json "+e.status);return e.json()}).catch(e=>{throw ba=null,e})),ba}const _a={mapbox:{js:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",css:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",global:"MapboxGeocoder"},maplibre:{js:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.min.js",css:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.css",global:"MaplibreGeocoder"}},ya={};function Gb(e="mapbox"){const t=_a[e]||_a.mapbox;return typeof window>"u"||window[t.global]?Promise.resolve():(ya[e]||(ya[e]=new Promise((o,n)=>{const a=document.createElement("script");a.src=t.js,a.onload=()=>o(),a.onerror=()=>{delete ya[e],n(new Error("geocoder failed to load"))},document.head.appendChild(a)})),ya[e])}function to(e){if(typeof window>"u")return;const t=window.maplibregl;return t&&e&&t.Map&&e instanceof t.Map?t:window.mapboxgl||t}function xo(e){if(typeof window>"u"||!e)return;let t=!1;e.once("load",()=>{t=!0}),window.__pplrMap=()=>{var n;let o=[];try{o=((n=e.getStyle())==null?void 0:n.layers)||[]}catch{}return{engine:window.maplibregl&&window.maplibregl.Map&&e instanceof window.maplibregl.Map?"maplibre":"mapbox",loaded:t||!!(e.isStyleLoaded&&e.isStyleLoaded()),styleLayers:o.length,dataSources:(()=>{var a;try{return Object.keys(((a=e.getStyle())==null?void 0:a.sources)||{}).filter(s=>!/^(composite|mapbox|openmaptiles|natural_earth|ne2_shaded|maplibre)/i.test(s)).length}catch{return 0}})()}}}const jb={class:"pdm-root"},Bb={class:"pdm-bar"},Ub={class:"pdm-seg",role:"tablist","aria-label":"Choose a view"},Vb=["aria-selected","onClick"],zb={class:"pdm-stage"},Wb=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"pplr-data-maps",setup(e){const t=Oe("profileConfig"),o=ne(()=>(t==null?void 0:t.value)||{});Fb(Nb(o.value));const n=[{key:"pplr-religion",label:"Religion",load:()=>_t(()=>Promise.resolve().then(()=>e1),void 0)},{key:"pplr-rop-tree",label:"ROP Tree",load:()=>_t(()=>Promise.resolve().then(()=>Z1),void 0)},{key:"pplr-language-families",label:"Language Families",load:()=>_t(()=>Promise.resolve().then(()=>my),void 0)},{key:"pplr-semantic-trees",label:"Semantic Trees",load:()=>_t(()=>Promise.resolve().then(()=>Py),void 0)},{key:"pplr-translations",label:"PG Name Locales",load:()=>_t(()=>Promise.resolve().then(()=>Fy),void 0)},{key:"pplr-d3-tree",label:"ROP Sunburst",load:()=>Ib().then(()=>_t(()=>Promise.resolve().then(()=>Yy),void 0))},{key:"pplr-pins",label:"All PG-in-country pins",load:()=>_t(()=>Promise.resolve().then(()=>rv),void 0)},{key:"pplr-rosetta-cards",label:"Cross-system ID Rosetta",load:()=>_t(()=>Promise.resolve().then(()=>bv),void 0)},{key:"pplr-coverage",label:"Translation coverage",load:()=>_t(()=>Promise.resolve().then(()=>Pv),void 0)},{key:"pplr-index",label:"Index",load:()=>_t(()=>Promise.resolve().then(()=>Rv),void 0)}],a=Object.fromEntries(n.map(c=>[c.key,Ir(c.load)])),s=new Set(n.map(c=>c.key)),r=H(s.has(o.value.view)?o.value.view:"pplr-religion");function l(c){s.has(c)&&(r.value=c)}function i(c){var u,f;l(((u=c==null?void 0:c.detail)==null?void 0:u.profile)||((f=c==null?void 0:c.detail)==null?void 0:f.id)||(c==null?void 0:c.detail))}return Qe(()=>window.addEventListener("pplr-select-profile",i)),rt(()=>window.removeEventListener("pplr-select-profile",i)),ic('.pdm-root{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;background:#f3f3f1;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;isolation:isolate}.pdm-bar{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border-bottom:1px solid #d1d4cd;overflow-x:auto;z-index:50}.pdm-brand{font:700 12px/1 ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:#3b463d;white-space:nowrap}.pdm-seg{display:inline-flex;gap:4px;flex-wrap:nowrap}.pdm-seg button{border:1px solid #d1d4cd;background:#fff;color:#3b463d;cursor:pointer;white-space:nowrap;font:600 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:7px 11px;border-radius:999px}.pdm-seg button.on{background:#92b195;border-color:#92b195;color:#fff}.pdm-seg button:hover:not(.on){border-color:#92b195}.pdm-stage{flex:1 1 0;position:relative;min-height:0}',"pplr-data-maps"),(c,u)=>(j(),U("div",jb,[y("div",Bb,[u[0]||(u[0]=y("span",{class:"pdm-brand"},"PPLR data maps",-1)),y("div",Ub,[(j(),U(re,null,xe(n,f=>y("button",{key:f.key,role:"tab","aria-selected":r.value===f.key,class:Ve({on:r.value===f.key}),onClick:$=>l(f.key)},q(f.label),11,Vb)),64))])]),y("div",zb,[(j(),Me(Ot(ve(a)[r.value]),{key:r.value}))])]))}}},Symbol.toStringTag,{value:"Module"})),Hb=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 va(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=Hb[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 qb(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 Kb=["mapbox","maplibre"],dc="mapbox";function Xb(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function xn(e){const t=Xb(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(o||n||a||dc).toLowerCase().trim();return Kb.includes(s)?s:dc}const Yb="rgba(120, 128, 134, 0.28)",pc="36px",uc=()=>{};function Zb(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return uc;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return uc;const a=k=>k.classList.contains("map-scroll-edge--left");for(const k of n)k.style.background=`linear-gradient(${a(k)?"to right":"to left"}, ${Yb} ${pc}, transparent ${pc})`,k.style.opacity="0",k.style.transition="opacity 0.16s ease",k.style.userSelect="none",k.style.webkitUserSelect="none";const s=k=>{k.style.opacity="1"},r=k=>{k.style.opacity="0"},l=()=>n.find(k=>!a(k))||null,i=new Set;let c=!1,u=null;const f=()=>{for(const k of n)i.has(k)||r(k)},$=()=>{const k=l();k&&(s(k),u&&clearTimeout(u),u=setTimeout(f,250))},_=()=>$(),O=k=>{if(!(k.touches&&k.touches.length===1))return;const b=k.target;b&&b.classList&&b.classList.contains("map-scroll-edge")||$()},L=()=>{u&&clearTimeout(u),f()};e.addEventListener("wheel",_,{passive:!0}),e.addEventListener("touchmove",O,{passive:!0}),e.addEventListener("touchend",L,{passive:!0}),e.addEventListener("touchcancel",L,{passive:!0});const G=()=>{c||$()};typeof window<"u"&&window.addEventListener("scroll",G,{passive:!0});const A=[];for(const k of n){const b=()=>{i.add(k),s(k)},m=()=>{i.delete(k),r(k)},E=()=>{c=!0,s(k)},P=()=>{c=!1,r(k)};k.addEventListener("mouseenter",b),k.addEventListener("mouseleave",m),k.addEventListener("touchstart",E,{passive:!0}),k.addEventListener("touchend",P,{passive:!0}),A.push(()=>{k.removeEventListener("mouseenter",b),k.removeEventListener("mouseleave",m),k.removeEventListener("touchstart",E),k.removeEventListener("touchend",P)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",_),e.removeEventListener("touchmove",O),e.removeEventListener("touchend",L),e.removeEventListener("touchcancel",L),typeof window<"u"&&window.removeEventListener("scroll",G);for(const b of A)b();for(const b of n)r(b)}}const gc={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 Jb(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Qb(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(Jb(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(gc.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(gc.mapbox,null,!0);o=!0}catch{}return o}const e_=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,fc=new WeakMap;function t_(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function hc(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!t_(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=fc.get(e);a||(a=new Map,fc.set(e,a));let s=0;for(const r of n.layers){if(r.type!=="symbol"||!r.layout||r.layout["text-field"]==null)continue;const l=r.layout["text-field"],i=JSON.stringify(l);if(i.startsWith('["coalesce",["get","name:')){if(!a.has(r.id))continue}else{if(!e_.test(i))continue;a.set(r.id,l)}const c=o==="en"?a.get(r.id):["coalesce",["get","name:"+o],["get","name:latin"],["get","name"]];e.setLayoutProperty(r.id,"text-field",c),s++}return s}catch{return 0}}const Vo={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 mc(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 o_=Vo.mapbox.css,n_="https://tiles.openfreemap.org/styles/liberty",a_="https://tiles.openfreemap.org/styles/fiord";function Gs(e){var o;const t=((o=Vo[e])==null?void 0:o.global)||Vo.mapbox.global;return typeof window<"u"?window[t]:void 0}async function s_(e){const t=Vo[e]||Vo.mapbox;if(Gs(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(Gs(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const s=document.createElement("script");s.src=t.js,s.async=!1,s.addEventListener("load",n,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function r_(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=r=>new Promise(l=>setTimeout(l,r)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(r=>{a.addEventListener("load",r,{once:!0}),a.addEventListener("error",r,{once:!0})}),n(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function l_(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?a_:n_}const i_=85.0511,js=-2,c_=0,d_=-60;function $c(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function p_(e,t,o,n){if(!e||e<=0||!t||t<=0)return c_;const a=Math.log2(e/512),s=$c(n)-$c(i_),r=Math.log2(t/(512*s)),l=Math.max(a,r);return Math.max(js,Math.min(l,(o??18)-1))}function wo({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:s=[20,10],zoom:r=2,bounds:l=void 0,fitBoundsOptions:i=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:f=18,pitch:$=0,bearing:_=0,renderWorldCopies:O=!0,showEdgeBorders:L=!0,southCutoff:G=d_,maxBounds:A=void 0}){const k=Ao(null),b=H(!1);let m=null,E=null,P=null,F=null;try{F=Oe("profileConfig",null)}catch{}a=a||xn(F);const T=a==="maplibre";let S=null;try{S=Oe("lang",null)}catch{}const W=()=>{const ae=S&&typeof S=="object"&&"value"in S?S.value:S;if(typeof ae=="string"&&ae)return ae;const ge=F&&typeof F=="object"&&"value"in F?F.value:F;if(ge&&(ge.locale||ge.lang))return String(ge.locale||ge.lang);try{const ye=new URLSearchParams(location.search);return ye.get("lang")||ye.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function X(){var qe;const ae=va(o,a),ge=ae.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const ye=()=>!e.value;if(await s_(a),ye())return;const se=Gs(a);if(!se){console.error(`[useMapInstance] ${T?"maplibregl":"mapboxgl"} is not available. Add the ${T?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Qb(se),!T){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 r_(e.value,T?Vo.maplibre.css:o_),ye()||(await new Promise(pe=>requestAnimationFrame(pe)),ye()))return;const ee=e.value,ce=ee.clientWidth,Ne=ee.clientHeight;if(ce===0||Ne===0){console.error(`[useMapInstance] Container has ZERO dimensions (${ce}×${Ne}). Map will be invisible. Check that parent elements have CSS sizing.`);let pe=ee.parentElement,$e=0;for(;pe&&$e<5;)pe=pe.parentElement,$e++}const Z=t;T||(se.accessToken=Z);const J=()=>typeof window<"u"&&window.innerWidth>=1024,te=(pe,$e)=>{if(u)return typeof c=="number"?c:js;if(!J())return js;const Se=p_(pe,$e,f,G);return typeof c=="number"?Math.max(c,Se):Se},be=te(ee.clientWidth,ee.clientHeight),De=ae.lightPreset||(()=>{var pe;try{const $e=typeof n=="function"?n():n;return(pe=$e==null?void 0:$e.basemap)==null?void 0:pe.lightPreset}catch{return}})();if(T){k.value=new se.Map({container:e.value,style:l_(ge,De),center:s,zoom:r,minZoom:be,maxZoom:f,pitch:$,bearing:_,dragRotate:!1,renderWorldCopies:O,...l?{bounds:l,...i?{fitBoundsOptions:i}:{}}:{},...A?{maxBounds:A}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),mc(k.value);try{e.value.__doxaMap=k.value}catch{}}else{const pe=typeof n=="function"?n():n;k.value=new se.Map({accessToken:Z,container:e.value,style:ge,...pe?{config:pe}:{},center:s,zoom:r,minZoom:be,maxZoom:f,pitch:$,bearing:_,dragRotate:!1,touchPitch:!1,renderWorldCopies:O,...l?{bounds:l,...i?{fitBoundsOptions:i}:{}}:{},...A?{maxBounds:A}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),mc(k.value);try{e.value.__doxaMap=k.value}catch{}}try{let pe=!1;k.value.on("error",$e=>{var h,v;const Se=((h=$e==null?void 0:$e.error)==null?void 0:h.status)??($e==null?void 0:$e.status),Q=String(((v=$e==null?void 0:$e.error)==null?void 0:v.url)||($e==null?void 0:$e.sourceId)||"");Se!==401&&Se!==403||pe||(pe=!0,console.error(`[doxa-maps] Mapbox returned ${Se} 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.`+(Q?` First failing request: ${Q.slice(0,120)}`:"")))})}catch{}try{k.value.touchZoomRotate.disableRotation()}catch{}P=Zb(((qe=e.value)==null?void 0:qe.parentElement)||null,{enabled:L});let He=be,Pe=null;m=()=>{const pe=k.value;if(!pe)return;const $e=te(ee.clientWidth,ee.clientHeight);$e!==He&&(He=$e,pe.setMinZoom($e)),pe.getZoom()<$e?(Pe&&clearTimeout(Pe),Pe=setTimeout(()=>{Pe=null;const Se=k.value;if(!Se)return;const Q=te(ee.clientWidth,ee.clientHeight);if(Se.getZoom()<Q)try{Se.jumpTo({zoom:Q})}catch{Se.setZoom(Q)}},150)):Pe&&(clearTimeout(Pe),Pe=null)},E=()=>{Pe&&(clearTimeout(Pe),Pe=null)},k.value.on("resize",m),typeof window<"u"&&(window.addEventListener("resize",m),window.addEventListener("orientationchange",m)),k.value.on("style.load",()=>{if(k.value&&hc(k.value,W()),ae.paint&&k.value){const pe=qb(k.value,ae.paint);console.info("[useMapInstance] style paint applied ("+a+"):",pe.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var pe;(pe=k.value)==null||pe.resize(),k.value&&k.value.setMinZoom(te(ee.clientWidth,ee.clientHeight)),b.value=!0})})}function K(){if(k.value){if(m&&(k.value.off("resize",m),typeof window<"u"&&(window.removeEventListener("resize",m),window.removeEventListener("orientationchange",m)),m=null),E){try{E()}catch{}E=null}P&&(P(),P=null),k.value.remove(),k.value=null,b.value=!1}}if(S&&typeof S=="object"&&"value"in S)try{We(S,()=>{k.value&&b.value&&hc(k.value,W())})}catch{}return{map:k,isMapReady:b,initializeMap:X,destroy:K}}const u_=["en","hi","bn","ar","zh_TW","fr","ru","ne","pt","es","ko","tl","zh_CN","id","gu","am","de"],g_={en:"English",hi:"Hindi",bn:"Bengali",ar:"Arabic",zh_TW:"Chinese (Trad)",fr:"French",ru:"Russian",ne:"Nepali",pt:"Portuguese",es:"Spanish",ko:"Korean",tl:"Tagalog",zh_CN:"Chinese (Simp)",id:"Indonesian",gu:"Gujarati",am:"Amharic",de:"German"},Bs="https://services2.arcgis.com/S4ydGgujXcif36k3/arcgis/rest/services/aCountry/FeatureServer/0/query",bc=["GENCalpha3","ISOalpha2","CtryNm","ctryNmDisp"],_c={GENCalpha3:"GENCAlpha3",ISOalpha2:"ISOAlpha2",CtryNm:"Name",ctryNmDisp:"DisplayName"},uo=new Map;async function Us(e){if(uo.has(e))return uo.get(e);const t=(async()=>{const o=await fetch(/^(https?:)?\/|\//.test(e)?e:Dt(e));if(!o.ok)throw new Error(`${e}: HTTP ${o.status}`);return o.json()})();uo.set(e,t);try{return await t}catch(o){throw uo.delete(e),o}}function f_(){const e="__pplr_country_polygons__";if(uo.has(e))return uo.get(e);const t=(async()=>{var s,r,l,i;const o=[];let n=0,a=!0;for(;a;){const c=new URLSearchParams({where:"1=1",returnGeometry:"true",f:"geojson",outFields:Object.values(_c).join(","),resultRecordCount:"200",resultOffset:String(n),maxAllowableOffset:"0.05"}),u=await fetch(`${Bs}?${c}`);if(!u.ok)throw new Error(`PPLR aCountry: HTTP ${u.status}`);const f=await u.json();if(f.error)throw new Error(`PPLR aCountry: ${(f.error.details||[]).join("; ")||f.error.message||f.error.code}`);for(const $ of f.features||[]){const _=$.properties||($.properties={});for(const[O,L]of Object.entries(_c))_[O]==null&&(_[O]=_[L]);o.push($)}if(a=f.exceededTransferLimit===!0||((s=f.properties)==null?void 0:s.exceededTransferLimit)===!0||(((r=f.features)==null?void 0:r.length)||0)>=200,n+=((l=f.features)==null?void 0:l.length)||0,!((i=f.features)!=null&&i.length))break}return{type:"FeatureCollection",features:o}})();return uo.set(e,t),t.catch(()=>uo.delete(e)),t}const yc={dark:{fillColor:"#1f2937",fillOpacity:.35,lineColor:"#3b82f6",lineOpacity:.5},light:{fillColor:"rgba(0,0,0,0)",fillOpacity:0,lineColor:"rgba(0,0,0,0)",lineOpacity:0}};function Gt(e,{sourceId:t="pplr-countries",fillColor:o="#1f2937",fillOpacity:n=.35,lineColor:a="#3b82f6",lineOpacity:s=.5,blocking:r=!1,theme:l=null}={}){l&&yc[l]&&({fillColor:o,fillOpacity:n,lineColor:a,lineOpacity:s}=yc[l]);const i={type:"FeatureCollection",features:[]};e.getSource(t)||e.addSource(t,{type:"geojson",data:i,generateId:!0}),e.getLayer(`${t}-fill`)||e.addLayer({id:`${t}-fill`,type:"fill",source:t,paint:{"fill-color":o,"fill-opacity":["case",["boolean",["feature-state","hover"],!1],n+.2,n]}}),e.getLayer(`${t}-line`)||e.addLayer({id:`${t}-line`,type:"line",source:t,paint:{"line-color":a,"line-width":.6,"line-opacity":s}});let c=null;e.on("mousemove",`${t}-fill`,f=>{f.features.length&&(c!==null&&e.setFeatureState({source:t,id:c},{hover:!1}),c=f.features[0].id,e.setFeatureState({source:t,id:c},{hover:!0}),e.getCanvas().style.cursor="pointer")}),e.on("mouseleave",`${t}-fill`,()=>{c!==null&&e.setFeatureState({source:t,id:c},{hover:!1}),c=null,e.getCanvas().style.cursor=""});const u=f_().then(f=>(e.getSource(t)&&e.getSource(t).setData(f),{fc:f,sourceId:t}));return r?u:(u.catch(f=>console.warn("Country polygons failed to load:",f)),Promise.resolve({sourceId:t,dataReady:u}))}function xa(e,t,o,{tolerance:n=8}={}){e&&(e.on("click",a=>{const s=n,r=[[a.point.x-s,a.point.y-s],[a.point.x+s,a.point.y+s]],l=e.queryRenderedFeatures(r,{layers:[t]});l.length&&o({features:l,lngLat:a.lngLat})}),e.on("mouseenter",t,()=>e.getCanvas().style.cursor="pointer"),e.on("mouseleave",t,()=>e.getCanvas().style.cursor=""))}function wa(){let e=null,t=null;function o(n){t||(t=document.createElement("div"),t.className="pplr-pin-indicator",t.style.cssText="pointer-events:none;width:30px;height:38px;transform:translateY(-12px);"),t.innerHTML=`<svg viewBox="0 0 24 32" width="30" height="38" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="M12 0C5.4 0 0 5.4 0 12c0 8 12 20 12 20s12-12 12-20C24 5.4 18.6 0 12 0z"
|
||
fill="${n||"#73A17F"}" stroke="#ffffff" stroke-width="1.6"
|
||
style="filter:drop-shadow(0 2px 4px rgba(0,0,0,0.45))"/>
|
||
<circle cx="12" cy="12" r="4.2" fill="#ffffff"/>
|
||
</svg>`}return{show(n,a,{color:s}={}){!n||!a||(o(s),e||(e=new(to(n)).Marker({element:t,anchor:"bottom"})),e.setLngLat(a).addTo(n))},hide(){e==null||e.remove()},destroy(){e==null||e.remove(),e=null,t=null}}}async function vc(e,{path:t="pg-points.json",sourceId:o="pplr-pgs",circleColor:n="#fbbf24"}={}){const a=await Us(t);return e.getSource(o)||e.addSource(o,{type:"geojson",data:a,cluster:!1}),e.getLayer(`${o}-pin`)||e.addLayer({id:`${o}-pin`,type:"circle",source:o,paint:{"circle-color":typeof n=="string"?n:"#fbbf24","circle-radius":["interpolate",["linear"],["zoom"],1,2,4,3.5,8,5.5,14,9],"circle-stroke-color":"#0d1117","circle-stroke-width":.8,"circle-opacity":.88}}),e.on("mouseenter",`${o}-pin`,()=>e.getCanvas().style.cursor="pointer"),e.on("mouseleave",`${o}-pin`,()=>e.getCanvas().style.cursor=""),{fc:a,sourceId:o,pinLayerId:`${o}-pin`}}function Vs(e,t=""){const o=n=>n==null||n==="None"||n===""?'<span class="m">—</span>':n;return`<div class="pplr-popup">
|
||
<h3>${e.name||"(no name)"}</h3>
|
||
<table>
|
||
<tr><td>Country</td><td>${o(e.country)} <code>${o(e.iso3)}</code></td></tr>
|
||
<tr><td>ROP3</td><td><code>${o(e.rop3)}</code></td></tr>
|
||
<tr><td>ROP25 (Ethne)</td><td><code>${o(e.rop25)}</code></td></tr>
|
||
<tr><td>JoshuaProject</td><td><code>${o(e.jp)}</code></td></tr>
|
||
<tr><td>IMB People</td><td><code>${o(e.imb)}</code></td></tr>
|
||
<tr><td>WCD</td><td><code>${o(e.wcd)}</code></td></tr>
|
||
<tr><td>Religion</td><td>${o(e.religion)}</td></tr>
|
||
<tr><td>Language</td><td>${o(e.language)}</td></tr>
|
||
${t}
|
||
</table>
|
||
</div>`}const ko=`
|
||
.pplr-popup { font-family: system-ui, sans-serif; color: #0d1117; min-width: 240px; max-width: 320px; }
|
||
.pplr-popup h3 { font-size: 13px; font-weight: 600; margin: 0 0 8px; color: #1f2937; }
|
||
.pplr-popup table { width: 100%; border-collapse: collapse; font-size: 11px; }
|
||
.pplr-popup td { padding: 3px 6px; vertical-align: top; }
|
||
.pplr-popup td:first-child { color: #6b7280; font-weight: 500; width: 38%; }
|
||
.pplr-popup code { font: 11px ui-monospace, monospace; color: #1d4ed8; background: #eff6ff; padding: 1px 4px; border-radius: 3px; }
|
||
.pplr-popup .m { color: #9ca3af; font-style: italic; }
|
||
.mapboxgl-popup-content { padding: 12px 14px !important; border-radius: 6px !important; box-shadow: 0 4px 16px rgba(0,0,0,0.5) !important; }
|
||
|
||
/* ── Mapbox built-in controls (NavigationControl / FullscreenControl) — themed ── */
|
||
.mapboxgl-ctrl-group {
|
||
background: rgba(13,17,23,0.92) !important;
|
||
border: 1px solid #30363d !important;
|
||
border-radius: 8px !important;
|
||
box-shadow: 0 4px 14px rgba(0,0,0,0.35) !important;
|
||
overflow: hidden !important;
|
||
}
|
||
.mapboxgl-ctrl-group button {
|
||
background: transparent !important;
|
||
width: 32px !important;
|
||
height: 32px !important;
|
||
border: none !important;
|
||
border-bottom: 1px solid rgba(48,54,61,0.6) !important;
|
||
}
|
||
.mapboxgl-ctrl-group button:last-child { border-bottom: none !important; }
|
||
.mapboxgl-ctrl-group button:hover {
|
||
background: rgba(115,161,127,0.18) !important;
|
||
}
|
||
.mapboxgl-ctrl-group button .mapboxgl-ctrl-icon {
|
||
/* Pure white — was invert(0.85) which read too gray against the dark chip. */
|
||
filter: invert(1) !important;
|
||
}
|
||
.mapboxgl-ctrl-attrib { background: rgba(13,17,23,0.7) !important; }
|
||
.mapboxgl-ctrl-attrib a, .mapboxgl-ctrl-attrib { color: #adbac7 !important; }
|
||
|
||
/* Light-mode overrides — when host profile sets [data-theme="light"], Mapbox
|
||
controls invert. We can't scope by theme since controls live outside our
|
||
component tree, so we use a class on the map container set by the profile. */
|
||
.profile[data-theme="light"] .mapboxgl-ctrl-group {
|
||
background: #ffffff !important;
|
||
border-color: #d0d7de !important;
|
||
box-shadow: 0 4px 14px rgba(31,35,40,0.15) !important;
|
||
}
|
||
.profile[data-theme="light"] .mapboxgl-ctrl-group button {
|
||
border-bottom-color: rgba(208,215,222,0.6) !important;
|
||
}
|
||
.profile[data-theme="light"] .mapboxgl-ctrl-group button:hover {
|
||
background: rgba(59,70,61,0.08) !important;
|
||
}
|
||
.profile[data-theme="light"] .mapboxgl-ctrl-group button .mapboxgl-ctrl-icon {
|
||
filter: none !important;
|
||
}
|
||
`;class ka{constructor(t){this._container=t}_isFs(){var o,n;if(document.fullscreenElement)return!0;const t=(n=(o=this._container)==null?void 0:o.getRootNode)==null?void 0:n.call(o);return!!(t&&t!==document&&t.fullscreenElement)}onAdd(t){var n,a;this._map=t,this._wrap=document.createElement("div"),this._wrap.className="mapboxgl-ctrl mapboxgl-ctrl-group",this._btn=document.createElement("button"),this._btn.type="button",this._btn.className="mapboxgl-ctrl-fullscreen",this._btn.setAttribute("aria-label","Toggle fullscreen"),this._btn.title="Toggle fullscreen",this._btn.innerHTML='<span class="mapboxgl-ctrl-icon" aria-hidden="true"></span>',this._btn.addEventListener("click",()=>this._toggle()),this._sync=()=>{this._btn.className=this._isFs()?"mapboxgl-ctrl-shrink":"mapboxgl-ctrl-fullscreen"},document.addEventListener("fullscreenchange",this._sync);const o=(a=(n=this._container)==null?void 0:n.getRootNode)==null?void 0:a.call(n);return o&&o!==document&&o.addEventListener("fullscreenchange",this._sync),this._rootForCleanup=o,this._wrap.appendChild(this._btn),this._wrap}_toggle(){var t,o,n;this._isFs()?(t=document.exitFullscreen)==null||t.call(document):(n=(o=this._container)==null?void 0:o.requestFullscreen)==null||n.call(o)}onRemove(){var t;document.removeEventListener("fullscreenchange",this._sync),this._rootForCleanup&&this._rootForCleanup!==document&&this._rootForCleanup.removeEventListener("fullscreenchange",this._sync),(t=this._wrap.parentNode)==null||t.removeChild(this._wrap)}}const xc="pplrInstance";function La(e){return{instanceId:e,selection:H(null),activeTab:H(0),isSearching:H(!1),geocoderText:H(""),pinDetail:H(null),theme:H("dark")}}function Pa(e){wt(xc,e)}function Sa(){return Oe(xc,null)}const h_=".mgc-wrap[data-v-1c745521]{width:100%;position:relative}.mgc-slot[data-v-1c745521] .mapboxgl-ctrl-geocoder{width:100%;max-width:100%;background:#0d1117f5;border:1px solid #30363d;border-radius:999px;box-shadow:0 4px 14px #00000040;font:13px system-ui,sans-serif;min-width:0}.mgc-slot[data-v-1c745521] .mapboxgl-ctrl-geocoder--input{color:#c9d1d9;height:36px;padding:6px 36px 6px 38px;font:13px system-ui,sans-serif}.mgc-slot[data-v-1c745521] .mapboxgl-ctrl-geocoder--input::placeholder{color:#6e7681}.mgc-slot[data-v-1c745521] .mapboxgl-ctrl-geocoder--icon-search{fill:#6e7681;top:8px;left:9px}.mgc-slot[data-v-1c745521] .mapboxgl-ctrl-geocoder--button{background:transparent;top:6px}.mgc-slot[data-v-1c745521] .suggestions{background:#0d1117f7;border:1px solid #30363d;border-radius:8px;margin-top:4px;box-shadow:0 8px 24px #00000073}.mgc-slot[data-v-1c745521] .suggestions>li>a{color:#c9d1d9;padding:8px 12px}.mgc-slot[data-v-1c745521] .suggestions>.active>a,.mgc-slot[data-v-1c745521] .suggestions>li>a:hover{background:#73a17f1f;color:#c9d1d9}.mgc-wrap[data-theme=light][data-v-1c745521] .mapboxgl-ctrl-geocoder{background:#fffffff7;border-color:#d0d7de;box-shadow:0 4px 14px #1f232826}.mgc-wrap[data-theme=light][data-v-1c745521] .mapboxgl-ctrl-geocoder--input{color:#1f2328}.mgc-wrap[data-theme=light][data-v-1c745521] .mapboxgl-ctrl-geocoder--input::placeholder{color:#57606a}.mgc-wrap[data-theme=light][data-v-1c745521] .suggestions{background:#fff;border-color:#d0d7de;color:#1f2328}.mgc-wrap[data-theme=light][data-v-1c745521] .suggestions>li>a{color:#1f2328}.mgc-wrap[data-theme=light][data-v-1c745521] .suggestions>.active>a,.mgc-wrap[data-theme=light][data-v-1c745521] .suggestions>li>a:hover{background:#f6f8fa;color:#1f2328}",m_=["data-theme"],zs=tt({__name:"MapboxGeocoder",props:{localIndex:{type:Array,default:()=>[]},placeholder:{type:String,default:"Search…"},mapboxToken:{type:String,default:""},minChars:{type:Number,default:2},kindLabels:{type:Object,default:()=>({})},localMax:{type:Number,default:8}},emits:["select","place"],setup(e,{emit:t}){const o=e,n=t,a=Sa(),s=H(null),r=H(null);let l=null;const i=xn(Oe("profileConfig",null)),c=i==="maplibre";function u(){return A=>{if(!A||A.length<o.minChars)return[];const k=A.toLowerCase(),b=[];for(const m of o.localIndex)if((m.label||"").toLowerCase().includes(k)&&(b.push({type:"Feature",place_name:m.label,place_type:["poi"],text:m.label,properties:{__pplr_kind:o.kindLabels[m.kind]||m.kind||"",__pplr_local:m},geometry:{type:"Point",coordinates:[0,0]},center:[0,0]}),b.length>=o.localMax))break;return b.sort((m,E)=>{const P=m.properties.__pplr_local,F=E.properties.__pplr_local,T=(P==null?void 0:P.depth)??99,S=(F==null?void 0:F.depth)??99;if(T!==S)return T-S;const W=m.place_name.toLowerCase().startsWith(k)?0:1,X=E.place_name.toLowerCase().startsWith(k)?0:1;return W!==X?W-X:((F==null?void 0:F.pop)||0)-((P==null?void 0:P.pop)||0)||((F==null?void 0:F.count)||0)-((P==null?void 0:P.count)||0)}),b}}function f(A){var F,T;const k=((F=A==null?void 0:A.properties)==null?void 0:F.__pplr_kind)||"",b=(T=A==null?void 0:A.properties)==null?void 0:T.__pplr_local,m=(b==null?void 0:b.color)||"",E=m?`<span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:${m};margin-right:8px;vertical-align:middle"></span>`:"",P=k?`<span style="font:600 9px ui-monospace,monospace;color:#73A17F;text-transform:uppercase;letter-spacing:0.06em;margin-left:auto">${k}</span>`:"";return`<div class="mapboxgl-ctrl-geocoder--suggestion-title" style="display:flex;align-items:center;gap:4px;width:100%">
|
||
${E}<span style="flex:1">${A.place_name}</span>${P}
|
||
</div>`}const $=(_a[i]||_a.mapbox).css;function _(A){if(!A||A===document||A.querySelector("link[data-pplr-geocoder-css]"))return;const k=document.createElement("link");k.rel="stylesheet",k.href=$,k.setAttribute("data-pplr-geocoder-css","1"),A.prepend(k)}function O(){try{if(c){if(!window.MaplibreGeocoder||!window.maplibregl){console.warn("[MapboxGeocoder] maplibre-gl-geocoder or maplibre-gl not on window — search disabled");return}l=new window.MaplibreGeocoder({forwardGeocode:async()=>({type:"FeatureCollection",features:[]})},{maplibregl:window.maplibregl,placeholder:o.placeholder,localGeocoder:u(),localGeocoderOnly:!0,minLength:o.minChars,showResultsWhileTyping:!0,render:f})}else{if(!window.MapboxGeocoder||!window.mapboxgl){console.warn("[MapboxGeocoder] mapbox-gl-geocoder or mapbox-gl not on window — check CDN <script> tags");return}o.mapboxToken||console.warn("[MapboxGeocoder] mapboxToken prop is empty — geographic Places search disabled"),l=new window.MapboxGeocoder({accessToken:o.mapboxToken,mapboxgl:window.mapboxgl,placeholder:o.placeholder,localGeocoder:u(),localGeocoderOnly:!1,minLength:o.minChars,types:"country,region,district,place",limit:5,render:f})}if(l.on("result",k=>{var E;const b=k.result,m=(E=b==null?void 0:b.properties)==null?void 0:E.__pplr_local;m?(a&&(a.selection.value=m,typeof m.depth=="number"&&(a.activeTab.value=m.depth)),n("select",m)):n("place",{id:b.id,label:b.place_name,place:b.text,kind:"place",bbox:b.bbox,center:b.center})}),l.on("clear",()=>{a&&(a.selection.value=null),n("select",null)}),!r.value)return;_(r.value.getRootNode());const A=document.createElement("div");A.style.cssText="position:absolute;left:-9999px;top:-9999px;visibility:hidden;pointer-events:none;",document.body.appendChild(A);try{l.addTo(A);const k=A.firstElementChild;k&&r.value.appendChild(k)}finally{A.parentNode&&A.parentNode.removeChild(A)}}catch(A){console.warn("[MapboxGeocoder] setup failed — geocoder disabled:",A),l=null}}function L(){try{l==null||l.onRemove()}catch{}l=null,r.value&&(r.value.innerHTML="")}function G(A){var P,F;const k=document.activeElement,b=k&&(k.tagName==="INPUT"||k.tagName==="TEXTAREA"||k.isContentEditable),m=A.key==="/"&&!b,E=(A.metaKey||A.ctrlKey)&&(A.key==="k"||A.key==="K");if(m||E){A.preventDefault();const T=(P=r.value)==null?void 0:P.querySelector("input.mapboxgl-ctrl-geocoder--input, input.maplibregl-ctrl-geocoder--input");T==null||T.focus(),(F=T==null?void 0:T.select)==null||F.call(T)}}return Qe(()=>{Gb(i).then(O,A=>console.warn("[MapboxGeocoder]",A.message)),document.addEventListener("keydown",G)}),rt(()=>{document.removeEventListener("keydown",G),L()}),(A,k)=>{var b;return j(),U("div",{ref_key:"wrapEl",ref:s,class:"mgc-wrap","data-theme":((b=ve(a))==null?void 0:b.theme.value)||"dark"},[y("div",{ref_key:"slotEl",ref:r,class:"mgc-slot"},null,512)],8,m_)}}},[["styles",[h_]],["__scopeId","data-v-1c745521"]]),$_=".pdc-panel[data-v-5915ce4d]{position:absolute;left:8px;top:60px;bottom:12px;width:380px;z-index:6;background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px #00000073;display:flex;flex-direction:column;overflow:hidden}.pdc-accent[data-v-5915ce4d]{height:4px;flex-shrink:0}.pdc-header[data-v-5915ce4d]{display:flex;align-items:center;justify-content:space-between;padding:8px 14px 0}.pdc-eyebrow[data-v-5915ce4d]{font:600 9px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.08em}.pdc-close[data-v-5915ce4d]{background:#6e768133;border:none;border-radius:50%;color:#c9d1d9;cursor:pointer;width:22px;height:22px;display:flex;align-items:center;justify-content:center;transition:background .1s}.pdc-close[data-v-5915ce4d]:hover{background:#ef4444;color:#fff}.pdc-name[data-v-5915ce4d]{margin:4px 14px 12px;font:600 17px system-ui,-apple-system,sans-serif;color:#e6edf3;line-height:1.3}.pdc-fields[data-v-5915ce4d]{flex:1;overflow-y:auto;padding:0 14px;display:flex;flex-direction:column;gap:1px}.pdc-fields[data-v-5915ce4d]::-webkit-scrollbar{width:6px}.pdc-fields[data-v-5915ce4d]::-webkit-scrollbar-thumb{background:#21262d;border-radius:3px}.pdc-field[data-v-5915ce4d]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid rgba(33,38,45,.6);min-height:28px}.pdc-field[data-v-5915ce4d]:last-child{border-bottom:none}.pdc-field-label[data-v-5915ce4d]{font:11px ui-monospace,monospace;color:#6e7681;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em;font-size:9.5px}.pdc-field-value[data-v-5915ce4d]{font:12px system-ui,sans-serif;color:#c9d1d9;text-align:right;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdc-locale .pdc-field-value[data-v-5915ce4d]{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word;line-height:1.3}.pdc-locale .pdc-field-label code[data-v-5915ce4d]{font:9px ui-monospace,monospace;color:#6e7681;margin-left:4px}.pdc-field-value.is-missing[data-v-5915ce4d]{color:#6e7681;font-style:italic}.pdc-section-divider[data-v-5915ce4d]{margin:12px 0 4px;font:600 9px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.08em;padding-bottom:4px;border-bottom:1px solid #21262d}.pdc-panel[data-theme=light] .pdc-section-divider[data-v-5915ce4d]{color:#3b463d;border-bottom-color:#d8dee4}.pdc-panel[data-theme=light] .pdc-locale .pdc-field-label code[data-v-5915ce4d],.pdc-panel[data-theme=light] .pdc-field-value.is-missing[data-v-5915ce4d]{color:#57606a}.pdc-field-value.mono[data-v-5915ce4d]{font:11px ui-monospace,monospace;background:#0d1117;border:1px solid #21262d;border-radius:3px;padding:1px 6px}.pdc-actions[data-v-5915ce4d]{display:flex;gap:6px;padding:10px 14px;border-top:1px solid #21262d;flex-shrink:0;background:#0d111799}.pdc-btn[data-v-5915ce4d]{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;background:#21262d;border:1px solid #30363d;border-radius:6px;color:#c9d1d9;font:600 11px system-ui;padding:6px 10px;cursor:pointer;transition:background .1s,border-color .1s}.pdc-btn[data-v-5915ce4d]:hover{background:#2d333b;border-color:#484f58}.pdc-btn-primary[data-v-5915ce4d]{background:#3b463d;border-color:#92b195;color:#fff}.pdc-btn-primary[data-v-5915ce4d]:hover{background:#92b195}@media (max-width: 640px){.pdc-panel[data-v-5915ce4d]{width:92vw;max-width:380px;top:64px;bottom:8px}}.pdc-panel[data-theme=light][data-v-5915ce4d]{background:#fff;border-color:#d0d7de;box-shadow:0 6px 24px #1f232826}.pdc-panel[data-theme=light] .pdc-eyebrow[data-v-5915ce4d]{color:#3b463d}.pdc-panel[data-theme=light] .pdc-close[data-v-5915ce4d]{background:#d0d7de80;color:#1f2328}.pdc-panel[data-theme=light] .pdc-name[data-v-5915ce4d]{color:#1f2328}.pdc-panel[data-theme=light] .pdc-field[data-v-5915ce4d]{border-color:#d0d7de99}.pdc-panel[data-theme=light] .pdc-field-label[data-v-5915ce4d]{color:#57606a}.pdc-panel[data-theme=light] .pdc-field-value[data-v-5915ce4d]{color:#1f2328}.pdc-panel[data-theme=light] .pdc-field-value.mono[data-v-5915ce4d]{background:#f6f8fa;border-color:#d0d7de;color:#24292f}.pdc-panel[data-theme=light] .pdc-actions[data-v-5915ce4d]{border-color:#d8dee4;background:#f6f8fa80}.pdc-panel[data-theme=light] .pdc-btn[data-v-5915ce4d]{background:#f6f8fa;border-color:#d0d7de;color:#1f2328}.pdc-panel[data-theme=light] .pdc-btn[data-v-5915ce4d]:hover{background:#eaeef2;border-color:#afb8c1}.pdc-panel[data-theme=light] .pdc-btn-primary[data-v-5915ce4d]{background:#3b463d;border-color:#3b463d;color:#fff}.pdc-panel[data-theme=light] .pdc-btn-primary[data-v-5915ce4d]:hover{background:#3b463d}",b_=["data-theme"],__={class:"pdc-name"},y_={class:"pdc-fields"},v_={class:"pdc-field-label"},x_={class:"pdc-field-label"},Aa=tt({__name:"PinDetailCard",props:{pin:{type:Object,default:null},color:{type:String,default:"#73A17F"}},emits:["close","locate"],setup(e,{emit:t}){const o=e,n=t,a=Sa(),s=ne(()=>o.pin||(a==null?void 0:a.pinDetail.value)||null),r=H(null);We(s,$=>{$&&!r.value&&Db().then(_=>{r.value=_}).catch(()=>{})},{immediate:!0});const l=ne(()=>{if(!s.value)return[];const $=s.value,_=r.value,O=_&&_.names[$.code];return u_.map((L,G)=>({code:L,name:g_[L]||L,value:$[`n_${L}`]||O&&O[_.locales.indexOf(L)]||null}))}),i=ne(()=>{if(!s.value)return[];const $=s.value,_=O=>O==null||O==="None"||O===""||O==="*"?"—":O;return[{label:"Country",value:_($.country),mono:!1},{label:"Religion",value:_($.religion),mono:!1},{label:"Language",value:_($.language),mono:!1},{label:"ISO-3 Country",value:_($.iso3),mono:!0,hidden:!$.iso3},{label:"Affinity Bloc",value:_($.rop1),mono:!0,hidden:!$.rop1},{label:"People Cluster",value:_($.rop2),mono:!0,hidden:!$.rop2},{label:"ROP25",value:_($.rop3),mono:!0,hidden:!$.rop3},{label:"PGIC GeoID",value:_($.rop25),mono:!0,hidden:!$.rop25},{label:"PEID",value:_($.peid),mono:!0,hidden:!$.peid},{label:"IMB PGID",value:_($.imb),mono:!0,hidden:!$.imb},{label:"Joshua Project",value:_($.jp),mono:!0,hidden:!$.jp},{label:"WCD",value:_($.wcd),mono:!0,hidden:!$.wcd}].filter(O=>!O.hidden)});function c(){a&&(a.pinDetail.value=null),n("close")}function u(){n("locate",s.value)}function f($){$.key==="Escape"&&s.value&&c()}return Qe(()=>document.addEventListener("keydown",f)),rt(()=>document.removeEventListener("keydown",f)),($,_)=>{var O;return s.value?(j(),U("div",{key:0,class:"pdc-panel","data-theme":((O=ve(a))==null?void 0:O.theme.value)||"dark"},[y("div",{class:"pdc-accent",style:at({background:e.color})},null,4),y("div",{class:"pdc-header"},[_[1]||(_[1]=y("span",{class:"pdc-eyebrow"},"People Group",-1)),y("button",{class:"pdc-close",title:"Close (Esc)",onClick:c},[..._[0]||(_[0]=[y("svg",{width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[y("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round"})],-1)])])]),y("h2",__,q(s.value.name||"—"),1),y("div",y_,[(j(!0),U(re,null,xe(i.value,L=>(j(),U("div",{key:L.label,class:"pdc-field"},[y("span",v_,q(L.label),1),y("span",{class:Ve(["pdc-field-value",{mono:L.mono}])},q(L.value),3)]))),128)),_[2]||(_[2]=y("div",{class:"pdc-section-divider"},[y("span",null,"Name in 17 locales")],-1)),(j(!0),U(re,null,xe(l.value,L=>(j(),U("div",{key:L.code,class:"pdc-field pdc-locale"},[y("span",x_,[Ee(q(L.name)+" ",1),y("code",null,q(L.code),1)]),y("span",{class:Ve(["pdc-field-value",{"is-missing":!L.value}])},q(L.value||"—"),3)]))),128))]),y("div",{class:"pdc-actions"},[y("button",{class:"pdc-btn pdc-btn-primary",onClick:u},[..._[3]||(_[3]=[y("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none"},[y("path",{d:"M12 21s7-7 7-12a7 7 0 1 0-14 0c0 5 7 12 7 12z",stroke:"currentColor","stroke-width":"2"}),y("circle",{cx:"12",cy:"9",r:"2.5",stroke:"currentColor","stroke-width":"2"})],-1),Ee(" Fly to pin ",-1)])]),y("button",{class:"pdc-btn",onClick:c},"Close")])],8,b_)):he("",!0)}}},[["styles",[$_]],["__scopeId","data-v-5915ce4d"]]),w_=".fl-panel[data-v-47e0bfc8]{position:absolute;top:60px;left:8px;width:320px;background:#0d1117f5;color:#c9d1d9;border:1px solid #30363d;border-radius:12px;box-shadow:0 8px 24px #00000073;z-index:4;font:12px system-ui,sans-serif;max-height:calc(100% - 80px);display:flex;flex-direction:column;overflow:hidden}.fl-panel[data-theme=light][data-v-47e0bfc8]{background:#fffffff7;color:#1f2328;border-color:#d0d7de;box-shadow:0 8px 24px #1f23282e}.fl-titlebar[data-v-47e0bfc8]{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #21262d}.fl-panel[data-theme=light] .fl-titlebar[data-v-47e0bfc8]{border-bottom-color:#d8dee4}.fl-collapse-btn[data-v-47e0bfc8]{background:transparent;border:none;cursor:pointer;color:#8b949e;padding:2px 4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.fl-collapse-btn[data-v-47e0bfc8]:hover{color:#c9d1d9;background:#73a17f1f}.fl-panel[data-theme=light] .fl-collapse-btn[data-v-47e0bfc8]{color:#57606a}.fl-panel[data-theme=light] .fl-collapse-btn[data-v-47e0bfc8]:hover{color:#1f2328;background:#f6f8fa}.fl-title[data-v-47e0bfc8]{flex:1;font:600 11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em;color:#73a17f}.fl-panel[data-theme=light] .fl-title[data-v-47e0bfc8]{color:#3b463d}.fl-clear[data-v-47e0bfc8]{background:transparent;border:none;cursor:pointer;color:#8b949e;font-size:16px;line-height:1;padding:2px 6px;border-radius:4px}.fl-clear[data-v-47e0bfc8]:hover{background:#ef4444;color:#fff}.fl-panel[data-theme=light] .fl-clear[data-v-47e0bfc8]{color:#57606a}.fl-rows[data-v-47e0bfc8]{overflow-y:auto;padding:4px}.fl-row[data-v-47e0bfc8]{width:100%;display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:8px;padding:6px 8px;background:transparent;border:none;cursor:pointer;color:inherit;text-align:left;font:12px system-ui,sans-serif;border-radius:6px;transition:opacity .12s,background .12s}.fl-row[data-v-47e0bfc8]:hover{background:#73a17f14}.fl-panel[data-theme=light] .fl-row[data-v-47e0bfc8]:hover{background:#f6f8fa}.fl-rows.has-sel .fl-row[data-v-47e0bfc8]{opacity:.3}.fl-rows.has-sel .fl-row.selected[data-v-47e0bfc8]{opacity:1;background:#ffffff0d;box-shadow:inset 3px 0 0 0 var(--row-color, #73A17F),inset 0 0 0 1px #ffffff0d}.fl-panel[data-theme=light] .fl-rows.has-sel .fl-row.selected[data-v-47e0bfc8]{background:#0000000a;box-shadow:inset 3px 0 0 0 var(--row-color, #3b463d),inset 0 0 0 1px #0000000d}.fl-dot[data-v-47e0bfc8]{width:11px;height:11px;border-radius:50%}.fl-label[data-v-47e0bfc8]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fl-count[data-v-47e0bfc8]{font:11px ui-monospace,monospace;color:#6e7681}.fl-panel[data-theme=light] .fl-count[data-v-47e0bfc8]{color:#57606a}.fl-reopen[data-v-47e0bfc8]{position:absolute;top:60px;left:8px;z-index:3;height:36px;border-radius:999px;background:#0d1117f5;color:#c9d1d9;border:1px solid #30363d;padding:0 14px 0 10px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font:600 11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 4px 14px #00000059}.fl-reopen[data-theme=light][data-v-47e0bfc8]{background:#fffffff7;color:#1f2328;border-color:#d0d7de;box-shadow:0 4px 14px #1f232826}.fl-reopen[data-v-47e0bfc8]:hover{border-color:#73a17f}",k_=["data-theme"],L_={class:"fl-titlebar"},P_=["title"],S_={class:"fl-title"},A_=["data-row-id","onClick"],E_={class:"fl-label"},C_={key:0,class:"fl-count"},R_=["data-theme"],T_=tt({__name:"FlatLegend",props:{items:{type:Array,default:()=>[]},title:{type:String,default:"Legend"},showCount:{type:Boolean,default:!0}},emits:["select"],setup(e,{emit:t}){const o=t,n=Sa(),a=H(!1),s=ne(()=>(n==null?void 0:n.theme.value)||"dark"),r=ne(()=>{const c=n==null?void 0:n.selection.value;return c?typeof c.id=="string"&&c.id.startsWith("rel:")?c.id.slice(4):c.id||c.key||null:null});function l(c){if(r.value===c.key){n&&(n.selection.value=null),o("select",null);return}const f={id:`rel:${c.key}`,label:c.label,color:c.color,filter:c.filter,kind:"religion"};n&&(n.selection.value=f),o("select",f)}function i(){n&&(n.selection.value=null),o("select",null)}return(c,u)=>(j(),U(re,null,[wd(y("div",{class:Ve(["fl-panel",{collapsed:a.value}]),"data-theme":s.value},[y("div",L_,[y("button",{class:"fl-collapse-btn",title:a.value?"Expand legend":"Collapse legend",onClick:u[0]||(u[0]=f=>a.value=!0)},[...u[2]||(u[2]=[y("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none"},[y("polyline",{points:"14,18 8,12 14,6",stroke:"currentColor","stroke-width":"2.4","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],8,P_),y("div",S_,q(e.title),1),r.value?(j(),U("button",{key:0,class:"fl-clear",title:"Clear selection (Esc)",onClick:i},"×")):he("",!0)]),y("div",{class:Ve(["fl-rows",{"has-sel":!!r.value}])},[(j(!0),U(re,null,xe(e.items,f=>(j(),U("button",{key:f.key,class:Ve(["fl-row",{selected:r.value===f.key}]),"data-row-id":f.key,style:at({"--row-color":f.color}),onClick:$=>l(f)},[y("span",{class:"fl-dot",style:at({background:f.color})},null,4),y("span",E_,q(f.label),1),e.showCount&&f.count!=null?(j(),U("span",C_,q(f.count.toLocaleString()),1)):he("",!0)],14,A_))),128))],2)],10,k_),[[Mp,!a.value]]),a.value?(j(),U("button",{key:0,class:"fl-reopen","data-theme":s.value,title:"Open legend",onClick:u[1]||(u[1]=f=>a.value=!1)},[...u[3]||(u[3]=[y("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none"},[y("polyline",{points:"9,18 15,12 9,6",stroke:"currentColor","stroke-width":"2.4","stroke-linecap":"round","stroke-linejoin":"round"})],-1),y("span",null,"Legend",-1)])],8,R_)):he("",!0)],64))}},[["styles",[w_]],["__scopeId","data-v-47e0bfc8"]]),O_=".lg-frame[data-v-07f5b7bd]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0f1216;z-index:1}.lg-globe[data-v-07f5b7bd]{width:64px;height:64px;animation:lg-spin-07f5b7bd 1.6s linear infinite;filter:drop-shadow(0 4px 14px rgba(115,161,127,.35))}@keyframes lg-spin-07f5b7bd{to{transform:rotate(360deg)}}.lg-text[data-v-07f5b7bd]{color:#73a17f;opacity:.85;font:600 12px ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.lg-retry[data-v-07f5b7bd]{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:6px 12px;background:#161b22;color:#c9d1d9;border:1px solid #73A17F;border-radius:999px;font:600 11px system-ui,sans-serif;cursor:pointer;transition:background .12s,color .12s}.lg-retry[data-v-07f5b7bd]:hover{background:#73a17f;color:#0d1117}",M_={class:"lg-frame",role:"status","aria-live":"polite"},N_={class:"lg-text"},go=tt({__name:"LoadingGlobe",props:{label:{type:String,default:"Loading map"},stuckAfterMs:{type:Number,default:3e4}},emits:["retry"],setup(e,{emit:t}){const o=e,n=t,a=H(!1);let s=null;function r(){s&&clearTimeout(s),a.value=!1,s=setTimeout(()=>{a.value=!0},o.stuckAfterMs)}Qe(r),rt(()=>s&&clearTimeout(s)),We(()=>o.label,r);function l(){a.value=!1,r(),n("retry")}return(i,c)=>(j(),U("div",M_,[c[1]||(c[1]=ml('<svg class="lg-globe" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-v-07f5b7bd><defs data-v-07f5b7bd><radialGradient id="lg-grad" cx="35%" cy="35%" r="65%" data-v-07f5b7bd><stop offset="0%" stop-color="#92b195" stop-opacity="0.35" data-v-07f5b7bd></stop><stop offset="100%" stop-color="#3b463d" stop-opacity="0" data-v-07f5b7bd></stop></radialGradient></defs><circle cx="32" cy="32" r="26" fill="url(#lg-grad)" data-v-07f5b7bd></circle><circle cx="32" cy="32" r="26" fill="none" stroke="#73A17F" stroke-width="2" data-v-07f5b7bd></circle><ellipse cx="32" cy="32" rx="26" ry="10" fill="none" stroke="#73A17F" stroke-width="1.4" opacity="0.7" data-v-07f5b7bd></ellipse><ellipse cx="32" cy="32" rx="14" ry="26" fill="none" stroke="#73A17F" stroke-width="1.4" opacity="0.7" data-v-07f5b7bd></ellipse><line x1="6" y1="32" x2="58" y2="32" stroke="#73A17F" stroke-width="1.2" opacity="0.45" data-v-07f5b7bd></line><line x1="32" y1="6" x2="32" y2="58" stroke="#73A17F" stroke-width="1.2" opacity="0.45" data-v-07f5b7bd></line></svg>',1)),y("span",N_,q(e.label),1),a.value?(j(),U("button",{key:0,class:"lg-retry",type:"button",onClick:l},[...c[0]||(c[0]=[y("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[y("path",{d:"M21 12a9 9 0 1 1-3-6.7",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"}),y("polyline",{points:"21 4 21 11 14 11",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Ee(" Retry ",-1)])])):he("",!0)]))}},[["styles",[O_]],["__scopeId","data-v-07f5b7bd"]]),F_=".profile[data-v-14ca7fdd]{width:100%;height:100%;position:relative}.map[data-v-14ca7fdd]{width:100%;height:100%}.loading[data-v-14ca7fdd]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f1216;color:#94a3b8;font:13px sans-serif;z-index:1}.status[data-v-14ca7fdd]{position:absolute;bottom:32px;left:12px;background:#0d1117eb;color:#86efac;border:1px solid #30363d;font:11px ui-monospace,monospace;padding:6px 12px;border-radius:4px;z-index:2;max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-pill[data-v-14ca7fdd]{position:absolute;bottom:64px;left:12px;background:#0d1117eb;color:#c9d1d9;border:1px solid #30363d;font:11px system-ui;padding:6px 12px;border-radius:999px;z-index:2;max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geocoder-slot[data-v-14ca7fdd]{position:absolute;top:12px;left:8px;width:320px;z-index:5}@media (max-width: 640px){.geocoder-slot[data-v-14ca7fdd]{width:calc(100vw - 16px);max-width:320px}}.profile[data-theme=light] .toolbar-btn[data-v-14ca7fdd]{background:#fffffff5;border-color:#d0d7de;color:#57606a;box-shadow:0 3px 10px #1f23281f}.profile[data-theme=light] .toolbar-btn[data-v-14ca7fdd]:hover{background:#f6f8fa;color:#3b463d;border-color:#3b463d}.profile[data-theme=light] .toolbar-btn.round[data-v-14ca7fdd]{background:#fff}.profile[data-theme=light] .toolbar-btn.round[data-v-14ca7fdd]:hover{background:#f6f8fa;box-shadow:0 5px 14px #3b463d33}.profile[data-theme=light] .basemap-panel[data-v-14ca7fdd],.profile[data-theme=light] .settings-panel[data-v-14ca7fdd]{background:#fffffffa;border-color:#d0d7de;box-shadow:0 6px 20px #1f232826}.profile[data-theme=light] .basemap-title[data-v-14ca7fdd],.profile[data-theme=light] .settings-src-label[data-v-14ca7fdd]{color:#3b463d;border-color:#d8dee4}.profile[data-theme=light] .basemap-opt[data-v-14ca7fdd]{color:#57606a}.profile[data-theme=light] .basemap-opt[data-v-14ca7fdd]:hover{background:#f6f8fa;color:#1f2328}.profile[data-theme=light] .basemap-opt.active[data-v-14ca7fdd]{border-color:#3b463d;color:#3b463d}.profile[data-theme=light] .status[data-v-14ca7fdd]{background:#fffffff2;border-color:#d0d7de;color:#1a7f37}.profile[data-theme=light] .header-pill[data-v-14ca7fdd]{background:#fffffff2;border-color:#d0d7de;color:#1f2328}.profile[data-theme=light] .loading[data-v-14ca7fdd]{background:#f6f8fa;color:#57606a}.profile[data-theme=light] .settings-panel.toolbar-attached[data-v-14ca7fdd]{background:#fffffffa;border-color:#d0d7de;box-shadow:0 6px 20px #1f232826;color:#1f2328}.profile[data-theme=light] .settings-src-url[data-v-14ca7fdd]{background:#f6f8fa;border-color:#d0d7de;color:#57606a}.profile[data-theme=light] .settings-field[data-v-14ca7fdd]{background:#eaeef2;color:#1f2328}.map-toolbar[data-v-14ca7fdd]{position:absolute;top:12px;right:12px;z-index:3;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.toolbar-btn[data-v-14ca7fdd]{display:flex;align-items:center;gap:5px;background:#0d1117eb;color:#8b949e;border:1px solid #30363d;border-radius:6px;font:11px ui-monospace,monospace;padding:5px 10px;cursor:pointer;white-space:nowrap;transition:color .12s,border-color .12s,background .12s,transform .12s,box-shadow .12s}.toolbar-btn[data-v-14ca7fdd]:hover{color:#c9d1d9;border-color:#73a17f}.toolbar-btn.round[data-v-14ca7fdd]{width:36px;height:36px;padding:0;border-radius:50%;justify-content:center;background:#161b22;box-shadow:0 3px 10px #0000004d}.toolbar-btn.round[data-v-14ca7fdd]:hover{background:#1c2333;transform:translateY(-1px);box-shadow:0 5px 14px #3b463d40}.toolbar-icon[data-v-14ca7fdd]{font-size:13px;line-height:1}.toolbar-label[data-v-14ca7fdd]{font-size:10px;letter-spacing:.04em}.basemap-wrap[data-v-14ca7fdd]{position:relative}.basemap-panel[data-v-14ca7fdd]{position:absolute;top:calc(100% + 4px);right:0;background:#0d1117f7;border:1px solid #30363d;border-radius:6px;padding:8px;min-width:130px;z-index:10;display:flex;flex-direction:column;gap:3px}.basemap-title[data-v-14ca7fdd]{font:600 10px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;padding:0 4px 4px;border-bottom:1px solid #21262d;margin-bottom:2px}.basemap-opt[data-v-14ca7fdd]{background:transparent;border:1px solid transparent;border-radius:4px;color:#8b949e;font:11px system-ui;padding:4px 8px;cursor:pointer;text-align:left}.basemap-opt[data-v-14ca7fdd]:hover{background:#161b22;color:#c9d1d9}.basemap-opt.active[data-v-14ca7fdd]{border-color:#73a17f;color:#73a17f}.settings-wrap[data-v-14ca7fdd]{position:relative}.settings-panel.toolbar-attached[data-v-14ca7fdd]{position:absolute;top:calc(100% + 4px);right:0;background:#0d1117f7;color:#c9d1d9;border:1px solid #30363d;border-radius:8px;font:12px system-ui;padding:12px 16px;min-width:320px;max-width:420px;max-height:50vh;overflow-y:auto;z-index:10}.settings-header[data-v-14ca7fdd]{font:600 11px ui-monospace,monospace;color:#c9d1d9;text-transform:uppercase;letter-spacing:.08em;padding:0 4px 8px;margin-bottom:6px;border-bottom:1px solid #21262d}.profile[data-theme=light] .settings-header[data-v-14ca7fdd]{color:#1f2328;border-bottom-color:#d8dee4}.settings-src[data-v-14ca7fdd]{margin-bottom:10px}.settings-src[data-v-14ca7fdd]:last-child{margin-bottom:0}.settings-src-label[data-v-14ca7fdd]{font:600 10px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.settings-src-url[data-v-14ca7fdd]{font:10px ui-monospace,monospace;color:#6e7681;word-break:break-all;background:#161b22;border:1px solid #21262d;border-radius:4px;padding:4px 6px;margin-bottom:4px}.settings-fields[data-v-14ca7fdd]{display:flex;flex-wrap:wrap;gap:3px}.settings-field[data-v-14ca7fdd]{font:10px ui-monospace,monospace;background:#21262d;color:#c9d1d9;border-radius:3px;padding:1px 5px}",I_=["data-theme"],D_={class:"status"},G_={class:"geocoder-slot"},j_={class:"map-toolbar"},B_=["title"],U_={key:0,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},V_={key:1,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},z_=["title"],W_={class:"toolbar-icon"},H_={class:"basemap-wrap"},q_={key:0,class:"basemap-panel"},K_=["onClick"],X_={class:"settings-wrap"},Y_={key:0,class:"settings-panel toolbar-attached"},Z_={class:"settings-src-label"},J_={class:"settings-src-url"},Q_={class:"settings-fields"},zo="rel-pins",e1=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-religion",setup(e){const t=La("religion");Pa(t);const o=xn(Oe("profileConfig",null)),n=Oe("mapboxToken"),a=H(null),s=H(null),r=H("Loading…"),l=H(!1),i=H("mercator"),c=H(!1),u=H("dark"),f=[{key:"dark",label:"Dark",url:"ink"},{key:"satellite",label:"Satellite",url:"hybrid"},{key:"light",label:"Light",url:"paper"}],$=H(null),_=H(!1);function O(){window.location.reload()}function L(){i.value=i.value==="globe"?"mercator":"globe",m.value&&m.value.setProjection(i.value)}function G(){A(u.value==="dark"?"light":"dark")}function A(Z){var te;if(Z===u.value){c.value=!1;return}u.value=Z,t.theme.value=Z==="light"?"light":"dark",c.value=!1;const J=(te=f.find(be=>be.key===Z))==null?void 0:te.url;!J||!m.value||(m.value.once("style.load",()=>{k(),m.value.setProjection(i.value)}),m.value.setStyle(va(J,o).style,{diff:!1}))}function k(){!$.value||!m.value||(Gt(m.value,{fillColor:"rgba(0,0,0,0)",fillOpacity:0,lineColor:"rgba(0,0,0,0)",lineOpacity:0}),m.value.getSource("rel-pgs")||(m.value.addSource("rel-pgs",{type:"geojson",data:$.value,cluster:!1}),m.value.addLayer({id:zo,type:"circle",source:"rel-pgs",paint:{"circle-color":S,"circle-radius":["interpolate",["linear"],["zoom"],1,2,6,4,12,7],"circle-opacity":.85,"circle-stroke-color":"#0d1117","circle-stroke-width":.5}}),xa(m.value,zo,({features:Z})=>{var He;const J=Z[0],te=J.geometry.coordinates[0],be=J.geometry.coordinates[1];t.pinDetail.value={...J.properties,lng:te,lat:be};const De=((He=T.find(Pe=>Pe.key===J.properties.rg))==null?void 0:He.color)||"#73A17F";ye.show(m.value,[te,be],{color:De})})))}const b=[{label:"PG-in-country pins",url:"pg-points.json",fields:["name","country","rg","religion","language","imb","jp"]},{label:"Country polygons — PPLR FeatureServer aCountry",url:Bs,fields:bc}],{map:m,isMapReady:E,initializeMap:P,destroy:F}=wo({containerRef:a,accessToken:n.value,style:"ink",center:[25,18],zoom:1.6,projection:"mercator"}),T=[{key:"christian",label:"Christianity",color:"#0ea5e9"},{key:"islam",label:"Islam",color:"#f59e0b"},{key:"hindu",label:"Hinduism",color:"#f97316"},{key:"ethnic",label:"Ethnoreligion",color:"#ec4899"},{key:"buddhist",label:"Buddhism",color:"#fcd34d"},{key:"jewish",label:"Judaism",color:"#a855f7"},{key:"sikh",label:"Sikhism",color:"#22c55e"},{key:"none",label:"Unaffiliated",color:"#94a3b8"},{key:"other",label:"Other / Unknown",color:"#4b5563"}],S=["match",["get","rg"],...T.flatMap(Z=>[Z.key,Z.color]),"#4b5563"],W=H({}),X=ne(()=>T.map(Z=>({key:Z.key,label:Z.label,color:Z.color,count:W.value[Z.key]||0,filter:["==",["get","rg"],Z.key]})));function K(Z){m.value&&(Z?Z.filter&&m.value.setFilter(zo,Z.filter):m.value.setFilter(zo,null))}const ae=ne(()=>{const Z=T.map((J,te)=>({id:`rel:${J.key}`,label:J.label,color:J.color,kind:"religion",depth:0,filter:["==",["get","rg"],J.key]}));if($.value){const J=new Set;for(const te of $.value.features){const be=te.properties.country;be&&!J.has(be)&&(J.add(be),Z.push({id:`country:${te.properties.iso3||be}`,label:be,kind:"country",depth:0,filter:["==",["get","iso3"],te.properties.iso3]}))}}return Z}),ge={religion:"Religion",country:"Country"},ye=wa();We(()=>t.pinDetail.value,Z=>{Z||ye.hide()}),We(()=>t.selection.value,Z=>{m.value&&(Z?Z.filter&&m.value.setFilter(zo,Z.filter):m.value.setFilter(zo,null))});function se(Z){m.value&&(m.value.stop(),Z.bbox?m.value.fitBounds([[Z.bbox[0],Z.bbox[1]],[Z.bbox[2],Z.bbox[3]]],{padding:60,maxZoom:7,duration:1200}):Z.center&&m.value.flyTo({center:Z.center,zoom:5,duration:1200}))}function ee(Z){!m.value||(Z==null?void 0:Z.lng)==null||(Z==null?void 0:Z.lat)==null||(m.value.stop(),m.value.flyTo({center:[Z.lng,Z.lat],zoom:6,duration:1200}))}const ce=ne(()=>{var J;const Z=t.pinDetail.value;return Z?((J=T.find(te=>te.key===Z.rg))==null?void 0:J.color)||"#4b5563":"#73A17F"});Qe(async()=>{await P(),xo(m.value),m.value&&(m.value.addControl(new(to(m.value)).NavigationControl({showCompass:!1,visualizePitch:!1}),"bottom-right"),m.value.addControl(new ka(s.value),"bottom-right")),m.value.on("load",async()=>{try{m.value.setPadding({left:320,top:0,right:0,bottom:0}),r.value="Loading country polygons…",Gt(m.value,{theme:t.theme.value}),r.value="Loading PG pins…";const Z=await fetch(Dt("pg-points.json"));$.value=await Z.json(),k();const J={};$.value.features.forEach(be=>{const De=be.properties.rg;J[De]=(J[De]||0)+1}),W.value=J;const te=T.reduce((be,De)=>(J[be.key]||0)>(J[De.key]||0)?be:De);r.value=`${$.value.features.length.toLocaleString()} pins · ${te.label} most common (${(J[te.key]||0).toLocaleString()})`,_.value=!0}catch(Z){r.value=`Error: ${Z.message}`}})}),rt(()=>{ye.destroy(),F()});const Ne=ko+`
|
||
.pplr-popup h3 small { display: block; font-weight: 400; color: #6b7280; font-size: 11px; margin-top: 2px; }
|
||
`;return(Z,J)=>(j(),U("div",{ref_key:"profileRoot",ref:s,class:"profile","data-theme":ve(t).theme.value},[!ve(E)||!_.value?(j(),Me(go,{key:0,label:r.value,onRetry:O},null,8,["label"])):he("",!0),y("div",{ref_key:"mapContainer",ref:a,class:"map"},null,512),y("div",D_,q(r.value),1),J[8]||(J[8]=y("div",{class:"header-pill"},"Religion distribution · click pin for detail",-1)),y("div",G_,[Be(zs,{"local-index":ae.value,"kind-labels":ge,"mapbox-token":ve(n),placeholder:"Search by people, place, language, religion…",onPlace:se},null,8,["local-index","mapbox-token"])]),ve(t).pinDetail.value?(j(),Me(Aa,{key:1,color:ce.value,onLocate:ee},null,8,["color"])):(j(),Me(T_,{key:2,items:X.value,title:"Primary Religion",onSelect:K},null,8,["items"])),y("div",j_,[y("button",{class:"toolbar-btn round",title:`Theme: ${u.value==="dark"?"Dark":"Light"} (click to toggle)`,onClick:G},[u.value==="dark"?(j(),U("svg",U_,[...J[2]||(J[2]=[y("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])):(j(),U("svg",V_,[...J[3]||(J[3]=[y("circle",{cx:"12",cy:"12",r:"4",stroke:"currentColor","stroke-width":"1.8"},null,-1),y("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"},null,-1)])]))],8,B_),y("button",{class:"toolbar-btn round",title:i.value==="globe"?"Switch to Mercator":"Switch to Globe",onClick:L},[y("span",W_,q(i.value==="globe"?"🌐":"🗺"),1)],8,z_),y("div",H_,[y("button",{class:"toolbar-btn round",title:"Base map",onClick:J[0]||(J[0]=te=>c.value=!c.value)},[...J[4]||(J[4]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("path",{d:"M3 7l9-4 9 4-9 4-9-4z",stroke:"currentColor","stroke-width":"1.8","stroke-linejoin":"round"}),y("path",{d:"M3 12l9 4 9-4M3 17l9 4 9-4",stroke:"currentColor","stroke-width":"1.8","stroke-linejoin":"round"})],-1)])]),c.value?(j(),U("div",q_,[J[5]||(J[5]=y("div",{class:"basemap-title"},"Base map",-1)),(j(),U(re,null,xe(f,te=>y("button",{key:te.key,class:Ve(["basemap-opt",{active:u.value===te.key}]),onClick:be=>A(te.key)},q(te.label),11,K_)),64))])):he("",!0)]),y("div",X_,[y("button",{class:"toolbar-btn round",title:"Data sources",onClick:J[1]||(J[1]=te=>l.value=!l.value)},[...J[6]||(J[6]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor","stroke-width":"1.8"}),y("path",{d:"M19 12a7 7 0 0 0-.1-1.2l2-1.5-2-3.5-2.4 1a7 7 0 0 0-2.1-1.2L14 3h-4l-.4 2.6A7 7 0 0 0 7.5 6.8l-2.4-1-2 3.5 2 1.5A7 7 0 0 0 5 12c0 .4 0 .8.1 1.2l-2 1.5 2 3.5 2.4-1a7 7 0 0 0 2.1 1.2L10 21h4l.4-2.6a7 7 0 0 0 2.1-1.2l2.4 1 2-3.5-2-1.5c.06-.4.1-.8.1-1.2z",stroke:"currentColor","stroke-width":"1.6","stroke-linejoin":"round"})],-1)])]),l.value?(j(),U("div",Y_,[J[7]||(J[7]=y("div",{class:"settings-header"},"Data sources",-1)),(j(),U(re,null,xe(b,te=>y("div",{key:te.url,class:"settings-src"},[y("div",Z_,q(te.label),1),y("div",J_,q(te.url),1),y("div",Q_,[(j(!0),U(re,null,xe(te.fields,be=>(j(),U("span",{key:be,class:"settings-field"},q(be),1))),128))])])),64))])):he("",!0)])]),(j(),Me(Ot("style"),null,{default:ao(()=>[Ee(q(Ne))]),_:1}))],8,I_))}},[["styles",[F_]],["__scopeId","data-v-14ca7fdd"]])},Symbol.toStringTag,{value:"Module"})),t1='.stl-inner[data-v-c431bf5e]{--stl-pad-x: 10px;--stl-gap: 6px;--stl-caret-w: 14px;--stl-dot-w: 8px;--stl-num-w: 44px;--stl-x-w: 22px;flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px #00000073;overflow:hidden}.stl-panel[data-v-c431bf5e]{position:absolute;left:8px;top:60px;bottom:12px;width:380px;z-index:4;display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.2,0,0,1),opacity .2s;pointer-events:auto}.stl-panel.closed[data-v-c431bf5e]{transform:translate(-100%);opacity:0;pointer-events:none}.stl-titlebar[data-v-c431bf5e]{display:flex;align-items:center;gap:6px;padding:8px 12px;flex-shrink:0;border-bottom:1px solid #21262d;min-height:32px}.stl-tb-title[data-v-c431bf5e],.stl-tb-eyebrow[data-v-c431bf5e]{font:600 10px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.07em;flex-shrink:0}.stl-tb-eyebrow[data-v-c431bf5e]{color:#6e7681;font-size:9px;letter-spacing:.08em}.stl-tb-dot[data-v-c431bf5e]{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #0006,0 0 0 3px #73a17f26}.stl-tb-text[data-v-c431bf5e]{flex:1;min-width:0;font:600 12px system-ui;color:#e6edf3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stl-tabs-wrap[data-v-c431bf5e]{flex-shrink:0}.stl-tabs[data-v-c431bf5e]{display:flex;flex-wrap:nowrap;gap:4px;padding:6px 8px;border-bottom:1px solid #21262d;overflow-x:auto;scrollbar-width:none}.stl-tabs[data-v-c431bf5e]::-webkit-scrollbar{display:none}.stl-tab-chip[data-v-c431bf5e]{display:inline-flex;align-items:stretch;flex-shrink:0;background:#1c2333;border:1px solid #30363d;border-radius:6px;overflow:hidden;transition:border-color .12s,box-shadow .12s}.stl-tab-chip[data-v-c431bf5e]:hover{border-color:#484f58}.stl-tab-chip.active[data-v-c431bf5e]{background:#3b463d;border-color:#73a17f;box-shadow:0 0 0 2px #73a17f38,0 1px 4px #3b463d66}.stl-tab[data-v-c431bf5e]{display:inline-flex;align-items:center;background:transparent;border:none;color:#8b949e;font:600 10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;cursor:pointer;white-space:nowrap}.stl-tab[data-v-c431bf5e]:hover{color:#c9d1d9}.stl-tab-chip.active .stl-tab[data-v-c431bf5e]{color:#fff}.stl-tab-info[data-v-c431bf5e]{background:#6e768126;border:none;border-left:1px solid #30363d;color:#6e7681;cursor:pointer;width:18px;padding:0;font:700 9px ui-monospace,monospace}.stl-tab-info[data-v-c431bf5e]:hover{background:#3b463d33;color:#73a17f}.stl-tab-chip.active .stl-tab-info[data-v-c431bf5e]{border-left-color:#0000004d;color:#fff;background:#0003}.stl-info-pop[data-v-c431bf5e]{margin:2px 8px 6px;padding:7px 10px;background:#0d1117;border:1px solid #30363d;border-radius:6px;font:11px system-ui;color:#c9d1d9;line-height:1.45}.stl-col-hdr[data-v-c431bf5e],.stl-row[data-v-c431bf5e]{display:flex;align-items:center;gap:var(--stl-gap);padding:0 var(--stl-pad-x)}.stl-col-hdr[data-v-c431bf5e]{height:22px;flex-shrink:0;background:#0d1117;border-bottom:1px solid #21262d}.stl-hdr-name[data-v-c431bf5e]{flex:1;min-width:0;font:600 9px ui-monospace,monospace;color:#6e7681;text-transform:uppercase;letter-spacing:.05em}.stl-hdr-num[data-v-c431bf5e]{width:var(--stl-num-w);text-align:right;flex-shrink:0;font:600 9px ui-monospace,monospace;color:#6e7681;text-transform:uppercase;letter-spacing:.05em;background:transparent;border:none;cursor:pointer;padding:0;transition:color .1s;display:inline-flex;align-items:center;justify-content:flex-end;gap:3px}.stl-hdr-num[data-v-c431bf5e]:hover{color:#c9d1d9}.stl-hdr-num.active[data-v-c431bf5e]{color:#73a17f}.stl-sort-arrow[data-v-c431bf5e]{font-size:8px}.stl-rows[data-v-c431bf5e]{flex:1;overflow-y:auto;padding-bottom:6px}.stl-rows[data-v-c431bf5e]::-webkit-scrollbar{width:6px}.stl-rows[data-v-c431bf5e]::-webkit-scrollbar-track{background:transparent}.stl-rows[data-v-c431bf5e]::-webkit-scrollbar-thumb{background:#21262d;border-radius:3px}.stl-rows[data-v-c431bf5e]::-webkit-scrollbar-thumb:hover{background:#30363d}.stl-empty[data-v-c431bf5e]{padding:20px 12px;text-align:center;font:11px system-ui;color:#484f58}.stl-loading[data-v-c431bf5e]{display:inline-flex;align-items:center;gap:8px;width:100%;justify-content:center;color:#73a17f}.stl-spinner[data-v-c431bf5e]{width:12px;height:12px;border-radius:50%;border:2px solid rgba(115,161,127,.25);border-top-color:#73a17f;animation:stl-spin-c431bf5e .7s linear infinite}@keyframes stl-spin-c431bf5e{to{transform:rotate(360deg)}}.stl-overflow[data-v-c431bf5e]{padding:8px 10px;margin:4px 0 0;background:#0d1117;border-top:1px dashed #30363d;text-align:center;font:10px system-ui;color:#6e7681}.stl-overflow-hint[data-v-c431bf5e]{color:#73a17f}.stl-row[data-v-c431bf5e]{min-height:27px;cursor:pointer;transition:opacity .12s,background .1s;border-bottom:1px solid rgba(33,38,45,.45)}.stl-row[data-v-c431bf5e]:last-child{border-bottom:none}.stl-row[data-v-c431bf5e]:hover{background:#ffffff0a}.stl-row.child .stl-name[data-v-c431bf5e]{color:#adbac7}.stl-row.leaf .stl-name[data-v-c431bf5e]{font-style:italic}.stl-rows.has-sel .stl-row[data-v-c431bf5e]:not(.selected):not(.descendant){opacity:.3}.stl-rows.has-sel .stl-row[data-v-c431bf5e]:not(.selected):not(.descendant):hover{opacity:.6}.stl-rows.has-sel .stl-row.descendant[data-v-c431bf5e]{opacity:1}.stl-rows.has-sel .stl-row.selected[data-v-c431bf5e]{opacity:1;background:#ffffff0d;box-shadow:inset 3px 0 0 0 var(--row-color, #73A17F),inset 0 0 0 1px #ffffff0d,0 0 14px -2px var(--row-color, rgba(115,161,127,.4))}.stl-panel[data-theme=light] .stl-rows.has-sel .stl-row.selected[data-v-c431bf5e]{background:#ffffffb3;box-shadow:inset 3px 0 0 0 var(--row-color, #3b463d),inset 0 0 0 1px #0000000a,0 0 14px -2px var(--row-color, rgba(59,70,61,.35))}.stl-caret-sp[data-v-c431bf5e]{width:var(--stl-caret-w);flex-shrink:0}.stl-dot-sp[data-v-c431bf5e]{width:var(--stl-dot-w);flex-shrink:0}.stl-x-slot[data-v-c431bf5e]{width:var(--stl-x-w);flex-shrink:0;display:flex;align-items:center;justify-content:center}.stl-trunk[data-v-c431bf5e]{position:relative;flex-shrink:0;width:12px;align-self:stretch}.stl-trunk-pipe[data-v-c431bf5e]:before{content:"";position:absolute;left:5px;top:0;bottom:0;width:1px;background:var(--trunk-color, #6e7681);opacity:.45}.stl-trunk-tee[data-v-c431bf5e]:before{content:"";position:absolute;left:5px;top:0;bottom:0;width:1px;background:var(--trunk-color, #6e7681);opacity:.45}.stl-trunk-tee[data-v-c431bf5e]:after{content:"";position:absolute;left:5px;top:50%;height:1px;width:7px;background:var(--trunk-color, #6e7681);opacity:.55}.stl-trunk-elbow[data-v-c431bf5e]:before{content:"";position:absolute;left:5px;top:0;height:50%;width:1px;background:var(--trunk-color, #6e7681);opacity:.45}.stl-trunk-elbow[data-v-c431bf5e]:after{content:"";position:absolute;left:5px;top:calc(50% - .5px);height:1px;width:7px;background:var(--trunk-color, #6e7681);opacity:.55}.stl-row.selected .stl-trunk-pipe[data-v-c431bf5e]:before,.stl-row.selected .stl-trunk-tee[data-v-c431bf5e]:before,.stl-row.selected .stl-trunk-tee[data-v-c431bf5e]:after,.stl-row.selected .stl-trunk-elbow[data-v-c431bf5e]:before,.stl-row.selected .stl-trunk-elbow[data-v-c431bf5e]:after,.stl-row.descendant .stl-trunk-pipe[data-v-c431bf5e]:before,.stl-row.descendant .stl-trunk-tee[data-v-c431bf5e]:before,.stl-row.descendant .stl-trunk-tee[data-v-c431bf5e]:after,.stl-row.descendant .stl-trunk-elbow[data-v-c431bf5e]:before,.stl-row.descendant .stl-trunk-elbow[data-v-c431bf5e]:after{opacity:.85}.stl-caret[data-v-c431bf5e]{background:none;border:none;padding:0;cursor:pointer;color:#6e7681;width:var(--stl-caret-w);height:var(--stl-caret-w);flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:3px}.stl-caret svg[data-v-c431bf5e]{transition:transform .15s}.stl-caret.open svg[data-v-c431bf5e]{transform:rotate(90deg)}.stl-caret[data-v-c431bf5e]:hover{color:#c9d1d9;background:#ffffff0f}.stl-dot[data-v-c431bf5e]{width:var(--stl-dot-w);height:var(--stl-dot-w);border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #0006}.stl-row.selected .stl-dot[data-v-c431bf5e]{box-shadow:0 0 0 1px #0006,0 0 0 3px #73a17f40}.stl-name[data-v-c431bf5e]{flex:1;min-width:0;font:11.5px system-ui,sans-serif;color:#e6edf3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stl-num[data-v-c431bf5e]{width:var(--stl-num-w);text-align:right;flex-shrink:0;font:10.5px ui-monospace,monospace;color:#8b949e;font-variant-numeric:tabular-nums}.stl-row.selected .stl-num[data-v-c431bf5e]{color:#e6edf3}.stl-x-chip[data-v-c431bf5e]{background:#ef4444;border:none;border-radius:50%;color:#fff;cursor:pointer;width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #ef44442e;transition:transform .12s,box-shadow .12s}.stl-x-chip[data-v-c431bf5e]:hover{transform:scale(1.08);box-shadow:0 0 0 3px #ef44444d}.stl-collapse-btn[data-v-c431bf5e]{background:#6e768126;border:1px solid #30363d;border-radius:5px;color:#8b949e;cursor:pointer;width:22px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color .1s,background .1s,transform .18s}.stl-collapse-btn[data-v-c431bf5e]:hover{color:#c9d1d9;background:#3b463d2e;border-color:#73a17f}.stl-collapse-btn svg[data-v-c431bf5e]{transition:transform .18s;transform:rotate(180deg)}.stl-reopen[data-v-c431bf5e]{position:absolute;left:8px;top:60px;z-index:3;display:inline-flex;align-items:center;gap:8px;background:#0d1117;border:1px solid #30363d;border-radius:999px;color:#c9d1d9;cursor:pointer;height:36px;padding:0 14px 0 12px;box-shadow:0 4px 14px #00000040;font:600 11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em;max-width:320px;transition:color .12s,background .12s,border-color .12s,transform .12s,box-shadow .12s}.stl-reopen[data-v-c431bf5e]:hover{color:#fff;background:#1c2333;border-color:#73a17f;box-shadow:0 6px 20px #3b463d40;transform:translateY(-1px)}.stl-reopen-icon[data-v-c431bf5e]{color:#73a17f;flex-shrink:0}.stl-reopen-label[data-v-c431bf5e]{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none;letter-spacing:0;font:600 12px system-ui,sans-serif}.stl-reopen-dot[data-v-c431bf5e]{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #0006}.stl-reopen-caret[data-v-c431bf5e]{color:#6e7681;flex-shrink:0}.stl-reopen:hover .stl-reopen-caret[data-v-c431bf5e]{color:#c9d1d9}@media (max-width: 640px){.stl-panel[data-v-c431bf5e]{width:92vw;max-width:380px;top:64px;bottom:8px}.stl-reopen[data-v-c431bf5e]{top:64px}}.stl-panel[data-theme=light] .stl-inner[data-v-c431bf5e]{background:#fff;border-color:#d0d7de;box-shadow:0 6px 24px #1f23281f}.stl-panel[data-theme=light] .stl-titlebar[data-v-c431bf5e]{border-color:#d8dee4}.stl-panel[data-theme=light] .stl-tb-title[data-v-c431bf5e],.stl-panel[data-theme=light] .stl-tb-eyebrow[data-v-c431bf5e]{color:#3b463d}.stl-panel[data-theme=light] .stl-tb-eyebrow[data-v-c431bf5e]{color:#57606a}.stl-panel[data-theme=light] .stl-tb-text[data-v-c431bf5e]{color:#1f2328}.stl-panel[data-theme=light] .stl-collapse-btn[data-v-c431bf5e]{background:#d0d7de66;border-color:#d0d7de;color:#57606a}.stl-panel[data-theme=light] .stl-collapse-btn[data-v-c431bf5e]:hover{background:#3b463d1f;border-color:#3b463d;color:#3b463d}.stl-panel[data-theme=light] .stl-tabs[data-v-c431bf5e]{border-color:#d8dee4}.stl-panel[data-theme=light] .stl-tab-chip[data-v-c431bf5e]{background:#f6f8fa;border-color:#d0d7de}.stl-panel[data-theme=light] .stl-tab[data-v-c431bf5e]{color:#57606a}.stl-panel[data-theme=light] .stl-tab[data-v-c431bf5e]:hover{color:#1f2328}.stl-panel[data-theme=light] .stl-tab-chip.active[data-v-c431bf5e]{background:#3b463d;border-color:#3b463d;box-shadow:0 0 0 2px #3b463d2e}.stl-panel[data-theme=light] .stl-tab-chip.active .stl-tab[data-v-c431bf5e]{color:#fff}.stl-panel[data-theme=light] .stl-tab-info[data-v-c431bf5e]{background:#d0d7de66;border-color:#d0d7de;color:#57606a}.stl-panel[data-theme=light] .stl-info-pop[data-v-c431bf5e]{background:#f6f8fa;border-color:#d0d7de;color:#1f2328}.stl-panel[data-theme=light] .stl-col-hdr[data-v-c431bf5e]{background:#f6f8fa;border-color:#d8dee4}.stl-panel[data-theme=light] .stl-hdr-name[data-v-c431bf5e],.stl-panel[data-theme=light] .stl-hdr-num[data-v-c431bf5e]{color:#57606a}.stl-panel[data-theme=light] .stl-hdr-num[data-v-c431bf5e]:hover,.stl-panel[data-theme=light] .stl-hdr-num.active[data-v-c431bf5e]{color:#3b463d}.stl-panel[data-theme=light] .stl-rows[data-v-c431bf5e]::-webkit-scrollbar-thumb{background:#d0d7de}.stl-panel[data-theme=light] .stl-rows[data-v-c431bf5e]::-webkit-scrollbar-thumb:hover{background:#afb8c1}.stl-panel[data-theme=light] .stl-empty[data-v-c431bf5e],.stl-panel[data-theme=light] .stl-overflow[data-v-c431bf5e]{color:#57606a;background:#f6f8fa;border-color:#d8dee4}.stl-panel[data-theme=light] .stl-overflow-hint[data-v-c431bf5e]{color:#3b463d}.stl-panel[data-theme=light] .stl-row[data-v-c431bf5e]{border-color:#d0d7de80}.stl-panel[data-theme=light] .stl-row[data-v-c431bf5e]:hover{background:#3b463d0a}.stl-panel[data-theme=light] .stl-row.child .stl-name[data-v-c431bf5e]{color:#57606a}.stl-panel[data-theme=light] .stl-rows.has-sel .stl-row.selected[data-v-c431bf5e]{background:#3b463d1f;box-shadow:inset 3px 0 #3b463d,0 0 12px #3b463d14}.stl-panel[data-theme=light] .stl-name[data-v-c431bf5e]{color:#1f2328}.stl-panel[data-theme=light] .stl-num[data-v-c431bf5e]{color:#57606a}.stl-panel[data-theme=light] .stl-row.selected .stl-num[data-v-c431bf5e]{color:#1f2328}.stl-panel[data-theme=light] .stl-caret[data-v-c431bf5e]{color:#57606a}.stl-panel[data-theme=light] .stl-caret[data-v-c431bf5e]:hover{background:#3b463d14;color:#3b463d}.stl-reopen[data-theme=light][data-v-c431bf5e]{background:#fff;border-color:#d0d7de;color:#1f2328;box-shadow:0 4px 16px #1f23282e}.stl-reopen[data-theme=light][data-v-c431bf5e]:hover{background:#f6f8fa;border-color:#3b463d;color:#3b463d;box-shadow:0 6px 20px #3b463d33}.stl-reopen[data-theme=light] .stl-reopen-icon[data-v-c431bf5e]{color:#3b463d}.stl-reopen[data-theme=light] .stl-reopen-caret[data-v-c431bf5e]{color:#57606a}',o1=["data-theme"],n1={class:"stl-inner"},a1={class:"stl-titlebar"},s1=["title","aria-label","aria-expanded"],r1={class:"stl-tb-eyebrow"},l1=["title"],i1={key:1,class:"stl-tb-title"},c1={class:"stl-tabs-wrap"},d1={class:"stl-tabs"},p1=["onClick"],u1=["title","onClick"],g1={key:0,class:"stl-info-pop"},f1={class:"stl-col-hdr"},h1={class:"stl-hdr-name"},m1={key:0,class:"stl-sort-arrow"},$1={key:0,class:"stl-sort-arrow"},b1=["data-row-id","onClick"],_1=["aria-expanded","aria-label","onClick"],y1={key:1,class:"stl-caret-sp"},v1={key:3,class:"stl-dot-sp"},x1={class:"stl-name"},w1={key:4,class:"stl-num"},k1={key:5,class:"stl-num"},L1={class:"stl-x-slot"},P1=["title","aria-label"],S1={key:0,class:"stl-empty stl-loading"},A1={key:1,class:"stl-empty"},E1={key:2,class:"stl-empty"},C1={key:3,class:"stl-overflow"},R1=["data-theme","title","aria-label"],T1={class:"stl-reopen-label"},wc=tt({__name:"SemanticTreeLegend",props:{nodes:{type:Array,default:()=>[]},tabs:{type:Array,default:null},columns:{type:Array,default:()=>["count","pop"]},title:{type:String,default:"Legend"}},emits:["select"],setup(e,{emit:t}){const o={"legend.a11y.expandRow":"Expand {label}","legend.a11y.collapseRow":"Collapse {label}","legend.a11y.clearSelection":"Clear selection","aria.expandLegend":"Expand legend","aria.collapseLegend":"Collapse legend"},n=(w,p)=>String(w).replace(/\{(\w+)\}/g,(C,N)=>p&&N in p?p[N]:C);let a=(w,p)=>n(o[w]??w,p);try{const w=yn();a=(p,C)=>{const N=w.t(p,C||{});return N===p?n(o[p]??p,C):N}}catch{}const s=e,r=t,l=Sa();function i(w,p=0){return w!=null&&w.length?Math.max(...w.map(C=>i(C.children??[],p+1))):p}function c(w,p,C=0){return C===p?w.slice():w.flatMap(N=>c(N.children??[],p,C+1))}function u(w,p,C=[]){var N;for(const d of w){if(d.id===p)return C;if((N=d.children)!=null&&N.length){const g=u(d.children,p,[...C,d]);if(g)return g}}return null}function f(w,p=new Set){var C;if(!((C=w==null?void 0:w.children)!=null&&C.length))return p;for(const N of w.children)p.add(N.id),f(N,p);return p}const $=ne(()=>i(s.nodes)),_=ne(()=>{const w=s.tabs??[],p=w.length||$.value+1;return Array.from({length:p},(C,N)=>w[N]??{id:`gen${N+1}`,label:`Generation ${N+1}`})}),O=H(0),L=H(new Set),G=H(null),A=H(!0),k=H(null),b=H(null),m=H("desc"),E=ne({get:()=>l?l.activeTab.value:O.value,set:w=>{l?l.activeTab.value=w:O.value=w}}),P=ne({get:()=>l?l.selection.value:G.value,set:w=>{l?l.selection.value=w:G.value=w}}),F=ne(()=>{var w;return((w=P.value)==null?void 0:w.id)||null});We(()=>s.nodes,()=>{E.value=0,L.value=new Set,P.value=null,r("select",null)},{deep:!1});let T=null;l&&We(()=>l.selection.value,w=>{if((w==null?void 0:w.id)===T)return;if(!w){T=null;return}T=w.id;const p=u(s.nodes,w.id)||[];typeof w.depth=="number"&&(E.value=Math.min(w.depth,_.value.length-1));const C=E.value,N=new Set;p.slice(C).forEach(d=>N.add(d.id)),L.value=N,r("select",w),S()});function S(){To(()=>{var d,g,R,M,V,z;const w=(d=P.value)==null?void 0:d.id;if(!w)return;const p=`[data-row-id="${CSS.escape(w)}"]`,C=(R=(g=W.value)==null?void 0:g.getRootNode)==null?void 0:R.call(g),N=C&&C!==document&&((M=C.querySelector)==null?void 0:M.call(C,p))||((z=(V=W.value)==null?void 0:V.querySelector)==null?void 0:z.call(V,p))||document.querySelector(p);N==null||N.scrollIntoView({behavior:"smooth",block:"nearest"})})}const W=H(null);function X(w,p){const C=(p.pop??0)-(w.pop??0);return C!==0?C:(p.count??0)-(w.count??0)}const K=ne(()=>{if(!b.value)return X;const w=b.value,p=m.value==="asc"?1:-1;return(C,N)=>((C[w]??0)-(N[w]??0))*p});function ae(w){b.value===w?m.value==="desc"?m.value="asc":(b.value=null,m.value="desc"):(b.value=w,m.value="desc")}const ge=H([]),ye=H(!1);let se=-1;function ee(w){if(ge.value[w]){ye.value=!1;return}ye.value=!0,se=w,setTimeout(()=>{if(se!==w)return;const p=[...c(s.nodes,w)].sort(K.value),C=[...ge.value];C[w]=p,ge.value=C,ye.value=!1},0)}We(E,w=>ee(w),{immediate:!0}),We(()=>[s.nodes,b.value,m.value],()=>{ge.value=[],ee(E.value)},{deep:!1});const ce=ne(()=>ge.value[E.value]||[]),Ne=ne(()=>{var p;const w=(p=_.value[E.value])==null?void 0:p.topLimit;return w?ce.value.slice(0,w):ce.value}),Z=ne(()=>{var p;const w=(p=_.value[E.value])==null?void 0:p.topLimit;return w?Math.max(0,ce.value.length-w):0});function J(w,p,C,N,d){var g;for(const R of p)w.push({node:R,relDepth:C,parent:N,ancestors:d}),L.value.has(R.id)&&((g=R.children)!=null&&g.length)&&J(w,[...R.children].sort(K.value),C+1,R,[...d,R])}const te=ne(()=>{const w=[];J(w,Ne.value,0,null,[]);for(let p=0;p<w.length;p++){const C=w[p],N=[];for(let d=0;d<C.relDepth;d++){const g=C.ancestors[d];let R=!1;for(let M=p+1;M<w.length;M++){const V=w[M];if(V.relDepth<=d)break;if(V.relDepth===d+1&&V.ancestors[d]===g){R=!0;break}V.relDepth>d+1&&V.ancestors[d]}if(d===C.relDepth-1){let M=!1;for(let V=p+1;V<w.length;V++){const z=w[V];if(z.relDepth<C.relDepth)break;if(z.relDepth===C.relDepth&&z.parent===C.parent){M=!0;break}}N.push(M?"tee":"elbow")}else N.push(R?"pipe":"blank")}C.trunks=N}return w}),be=ne(()=>F.value!==null),De=ne(()=>s.columns.includes("count")),He=ne(()=>s.columns.includes("pop")),Pe=ne(()=>P.value?f(P.value):new Set),qe=ne(()=>{var g;const w=P.value;if(!w)return null;const p=u(s.nodes,w.id);if(!p||!p.length)return null;const C=p[p.length-1],N=p.length-1,d=((g=_.value[N])==null?void 0:g.label)||"Parent";return{node:C,tabName:d}});function pe(w){F.value===w.id?(T=null,P.value=null,r("select",null)):(T=w.id,P.value=w,r("select",w),S())}function $e(w,p){p==null||p.stopPropagation();const C=new Set(L.value);C.has(w)?C.delete(w):C.add(w),L.value=C}function Se(w){if(E.value===w){k.value=k.value===w?null:w;return}E.value=w,L.value=new Set,T=null,P.value=null,k.value=null,r("select",null)}function Q(w){w==null||w.stopPropagation(),T=null,P.value=null,r("select",null)}function h(w,p){p==null||p.stopPropagation(),k.value=k.value===w?null:w}function v(w){return w?w>=1e6?(w/1e6).toFixed(1)+"M":w>=1e3?Math.round(w/1e3)+"k":w.toLocaleString():"—"}function x(w){return w!=null?w.toLocaleString():"—"}function D(w){var p;return{selected:F.value===w.node.id,descendant:be.value&&Pe.value.has(w.node.id),child:w.relDepth>0,leaf:!((p=w.node.children)!=null&&p.length)}}return(w,p)=>{var C,N,d,g,R;return j(),U(re,null,[y("div",{ref_key:"panelRoot",ref:W,class:Ve(["stl-panel",{closed:!A.value}]),"data-theme":((C=ve(l))==null?void 0:C.theme.value)||"dark"},[y("div",n1,[y("div",a1,[y("button",{class:Ve(["stl-collapse-btn",{closed:!A.value}]),title:A.value?"Collapse legend":"Expand legend","aria-label":A.value?ve(a)("aria.collapseLegend"):ve(a)("aria.expandLegend"),"aria-expanded":String(A.value),onClick:p[0]||(p[0]=M=>A.value=!A.value)},[...p[5]||(p[5]=[y("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[y("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,s1),qe.value&&P.value?(j(),U(re,{key:0},[y("span",r1,q(qe.value.tabName),1),qe.value.node.color?(j(),U("span",{key:0,class:"stl-tb-dot",style:at({background:qe.value.node.color})},null,4)):he("",!0),y("span",{class:"stl-tb-text",title:qe.value.node.label},q(qe.value.node.label),9,l1)],64)):(j(),U("span",i1,q(e.title),1))]),y("div",c1,[y("div",d1,[(j(!0),U(re,null,xe(_.value,(M,V)=>(j(),U("div",{key:M.id,class:Ve(["stl-tab-chip",{active:E.value===V}])},[y("button",{class:"stl-tab",onClick:z=>Se(V)},q(M.label),9,p1),M.info?(j(),U("button",{key:0,class:"stl-tab-info",title:M.info,onClick:z=>h(V,z)},"i",8,u1)):he("",!0)],2))),128))]),k.value!==null&&((N=_.value[k.value])!=null&&N.info)?(j(),U("div",g1,q(_.value[k.value].info),1)):he("",!0)]),y("div",f1,[p[8]||(p[8]=y("span",{class:"stl-caret-sp"},null,-1)),p[9]||(p[9]=y("span",{class:"stl-dot-sp"},null,-1)),y("span",h1,q(((d=_.value[E.value])==null?void 0:d.label)||"Name"),1),De.value?(j(),U("button",{key:0,class:Ve(["stl-hdr-num",{active:b.value==="count"}]),title:"Sort by UPGs",onClick:p[1]||(p[1]=M=>ae("count"))},[p[6]||(p[6]=Ee(" UPGs ",-1)),b.value==="count"?(j(),U("span",m1,q(m.value==="desc"?"▼":"▲"),1)):he("",!0)],2)):he("",!0),He.value?(j(),U("button",{key:1,class:Ve(["stl-hdr-num",{active:b.value==="pop"}]),title:"Sort by Population",onClick:p[2]||(p[2]=M=>ae("pop"))},[p[7]||(p[7]=Ee(" Pop ",-1)),b.value==="pop"?(j(),U("span",$1,q(m.value==="desc"?"▼":"▲"),1)):he("",!0)],2)):he("",!0),p[10]||(p[10]=y("span",{class:"stl-x-slot"},null,-1))]),y("div",{class:Ve(["stl-rows",{"has-sel":be.value}])},[(j(!0),U(re,null,xe(te.value,M=>{var V,z;return j(),U("div",{key:M.node.id,class:Ve(["stl-row",D(M)]),"data-row-id":M.node.id,style:at({"--trunk-color":((V=M.parent)==null?void 0:V.color)||"#6e7681","--row-color":M.node.color||"#73A17F"}),onClick:I=>pe(M.node)},[(j(!0),U(re,null,xe(M.trunks,(I,B)=>(j(),U("span",{key:`tr${B}`,class:Ve(["stl-trunk",`stl-trunk-${I}`])},null,2))),128)),(z=M.node.children)!=null&&z.length?(j(),U("button",{key:0,class:Ve(["stl-caret",{open:L.value.has(M.node.id)}]),"aria-expanded":L.value.has(M.node.id)?"true":"false","aria-label":ve(a)(L.value.has(M.node.id)?"legend.a11y.collapseRow":"legend.a11y.expandRow",{label:M.node.label}),onClick:Nl(I=>$e(M.node.id,I),["stop"])},[...p[11]||(p[11]=[y("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[y("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,_1)):(j(),U("span",y1)),M.node.color?(j(),U("span",{key:2,class:"stl-dot",style:at({background:M.node.color})},null,4)):(j(),U("span",v1)),y("span",x1,q(M.node.label),1),De.value?(j(),U("span",w1,q(x(M.node.count)),1)):he("",!0),He.value?(j(),U("span",k1,q(v(M.node.pop)),1)):he("",!0),y("span",L1,[F.value===M.node.id?(j(),U("button",{key:0,class:"stl-x-chip",title:ve(a)("legend.a11y.clearSelection"),"aria-label":ve(a)("legend.a11y.clearSelection"),onClick:p[3]||(p[3]=Nl(I=>Q(I),["stop"]))},[...p[12]||(p[12]=[y("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[y("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,P1)):he("",!0)])],14,b1)}),128)),ye.value&&!te.value.length?(j(),U("div",S1,[p[13]||(p[13]=y("span",{class:"stl-spinner"},null,-1)),y("span",null,"Loading "+q(((g=_.value[E.value])==null?void 0:g.label)||"rows")+"…",1)])):!te.value.length&&e.nodes.length===0?(j(),U("div",A1,"Loading data…")):te.value.length?he("",!0):(j(),U("div",E1,"No data at this level")),Z.value>0?(j(),U("div",C1,[Ee(" Showing top "+q(_.value[E.value].topLimit.toLocaleString())+" of "+q(ce.value.length.toLocaleString())+" — ",1),p[14]||(p[14]=y("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):he("",!0)],2)])],10,o1),A.value?he("",!0):(j(),U("button",{key:0,class:"stl-reopen","data-theme":((R=ve(l))==null?void 0:R.theme.value)||"dark",title:ve(a)("aria.expandLegend"),"aria-label":ve(a)("aria.expandLegend"),"aria-expanded":"false",onClick:p[4]||(p[4]=M=>A.value=!0)},[p[15]||(p[15]=y("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[y("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),y("span",T1,[P.value?(j(),U(re,{key:0},[P.value.color?(j(),U("span",{key:0,class:"stl-reopen-dot",style:at({background:P.value.color})},null,4)):he("",!0),Ee(" "+q(P.value.label),1)],64)):(j(),U(re,{key:1},[Ee(q(e.title),1)],64))]),p[16]||(p[16]=y("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[y("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,R1))],64)}}},[["styles",[t1]],["__scopeId","data-v-c431bf5e"]]),O1=".profile[data-v-6d32b707]{width:100%;height:100%;position:relative}.map[data-v-6d32b707]{width:100%;height:100%}.loading[data-v-6d32b707]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f1216;color:#94a3b8;font:13px sans-serif;z-index:1}.status[data-v-6d32b707]{position:absolute;bottom:32px;left:12px;background:#0d1117eb;color:#86efac;border:1px solid #30363d;font:11px ui-monospace,monospace;padding:6px 12px;border-radius:4px;z-index:2;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-pill[data-v-6d32b707]{position:absolute;bottom:64px;left:12px;background:#0d1117eb;color:#c9d1d9;border:1px solid #30363d;font:11px system-ui;padding:6px 12px;border-radius:999px;z-index:2;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geocoder-slot[data-v-6d32b707]{position:absolute;top:12px;left:8px;width:380px;z-index:5}@media (max-width: 640px){.geocoder-slot[data-v-6d32b707]{width:92vw;max-width:380px;left:8px}}.profile[data-theme=light] .toolbar-btn[data-v-6d32b707]{background:#fffffff5;border-color:#d0d7de;color:#57606a;box-shadow:0 3px 10px #1f23281f}.profile[data-theme=light] .toolbar-btn[data-v-6d32b707]:hover{background:#f6f8fa;color:#3b463d;border-color:#3b463d}.profile[data-theme=light] .toolbar-btn.round[data-v-6d32b707]{background:#fff}.profile[data-theme=light] .toolbar-btn.round[data-v-6d32b707]:hover{background:#f6f8fa;box-shadow:0 5px 14px #3b463d33}.profile[data-theme=light] .basemap-panel[data-v-6d32b707],.profile[data-theme=light] .settings-panel[data-v-6d32b707]{background:#fffffffa;border-color:#d0d7de;box-shadow:0 6px 20px #1f232826}.profile[data-theme=light] .basemap-title[data-v-6d32b707],.profile[data-theme=light] .settings-src-label[data-v-6d32b707]{color:#3b463d;border-color:#d8dee4}.profile[data-theme=light] .basemap-opt[data-v-6d32b707]{color:#57606a}.profile[data-theme=light] .basemap-opt[data-v-6d32b707]:hover{background:#f6f8fa;color:#1f2328}.profile[data-theme=light] .basemap-opt.active[data-v-6d32b707]{border-color:#3b463d;color:#3b463d}.profile[data-theme=light] .status[data-v-6d32b707]{background:#fffffff2;border-color:#d0d7de;color:#1a7f37}.profile[data-theme=light] .header-pill[data-v-6d32b707]{background:#fffffff2;border-color:#d0d7de;color:#1f2328}.profile[data-theme=light] .loading[data-v-6d32b707]{background:#f6f8fa;color:#57606a}.profile[data-theme=light] .settings-src-url[data-v-6d32b707]{background:#f6f8fa;border-color:#d0d7de;color:#57606a}.profile[data-theme=light] .settings-field[data-v-6d32b707]{background:#eaeef2;color:#1f2328}.map-toolbar[data-v-6d32b707]{position:absolute;top:12px;right:12px;z-index:5;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.toolbar-btn[data-v-6d32b707]{display:flex;align-items:center;gap:5px;background:#0d1117eb;color:#8b949e;border:1px solid #30363d;border-radius:6px;font:11px ui-monospace,monospace;padding:5px 10px;cursor:pointer;white-space:nowrap;transition:color .12s,border-color .12s,background .12s,transform .12s,box-shadow .12s}.toolbar-btn[data-v-6d32b707]:hover{color:#c9d1d9;border-color:#73a17f}.toolbar-btn.round[data-v-6d32b707]{width:36px;height:36px;padding:0;border-radius:50%;justify-content:center;background:#161b22;box-shadow:0 3px 10px #0000004d}.toolbar-btn.round[data-v-6d32b707]:hover{background:#1c2333;transform:translateY(-1px);box-shadow:0 5px 14px #3b463d40}.toolbar-icon[data-v-6d32b707]{font-size:13px;line-height:1}.toolbar-label[data-v-6d32b707]{font-size:10px;letter-spacing:.04em}.basemap-wrap[data-v-6d32b707],.settings-wrap[data-v-6d32b707]{position:relative}.basemap-panel[data-v-6d32b707],.settings-panel[data-v-6d32b707]{position:absolute;top:calc(100% + 4px);right:0;background:#0d1117f7;border:1px solid #30363d;border-radius:6px;padding:8px;min-width:130px;z-index:10;display:flex;flex-direction:column;gap:3px}.basemap-title[data-v-6d32b707]{font:600 10px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;padding:0 4px 4px;border-bottom:1px solid #21262d;margin-bottom:2px}.basemap-opt[data-v-6d32b707]{background:transparent;border:1px solid transparent;border-radius:4px;color:#8b949e;font:11px system-ui;padding:4px 8px;cursor:pointer;text-align:left}.basemap-opt[data-v-6d32b707]:hover{background:#161b22;color:#c9d1d9}.basemap-opt.active[data-v-6d32b707]{border-color:#73a17f;color:#73a17f}.settings-panel[data-v-6d32b707]{min-width:300px;max-width:420px;max-height:50vh;overflow-y:auto}.settings-header[data-v-6d32b707]{font:600 11px ui-monospace,monospace;color:#c9d1d9;text-transform:uppercase;letter-spacing:.08em;padding:4px 4px 8px;margin-bottom:6px;border-bottom:1px solid #21262d}.profile[data-theme=light] .settings-header[data-v-6d32b707]{color:#1f2328;border-bottom-color:#d8dee4}.settings-src[data-v-6d32b707]{margin-bottom:8px}.settings-src-label[data-v-6d32b707]{font:600 9px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.settings-src-url[data-v-6d32b707]{font:10px ui-monospace,monospace;color:#6e7681;word-break:break-all;background:#161b22;border:1px solid #21262d;border-radius:3px;padding:3px 5px;margin-bottom:3px}.settings-fields[data-v-6d32b707]{display:flex;flex-wrap:wrap;gap:2px}.settings-field[data-v-6d32b707]{font:10px ui-monospace,monospace;background:#21262d;color:#c9d1d9;border-radius:3px;padding:1px 4px}",M1=["data-theme"],N1={class:"geocoder-slot"},F1={class:"status"},I1={class:"map-toolbar"},D1=["title"],G1={key:0,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},j1={key:1,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},B1=["title"],U1={class:"toolbar-icon"},V1={class:"basemap-wrap"},z1={key:0,class:"basemap-panel"},W1=["onClick"],H1={class:"settings-wrap"},q1={key:0,class:"settings-panel"},K1={class:"settings-src-label"},X1={class:"settings-src-url"},Y1={class:"settings-fields"},Ea="rop-pins",Z1=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-rop-tree",setup(e){const t=La("rop-tree");Pa(t);const o=xn(Oe("profileConfig",null)),n=Oe("mapboxToken"),a=H(null),s=H(null),r=H("Loading…"),{map:l,isMapReady:i,initializeMap:c,destroy:u}=wo({containerRef:a,accessToken:n.value,style:"ink",center:[25,18],zoom:1.6,projection:"mercator"}),f={A001:"#f59e0b",A017:"#94a3b8",A002:"#ef4444",A003:"#8b5cf6",A019:"#06b6d4",A004:"#f43f5e",A006:"#3b82f6",A007:"#10b981",A008:"#14b8a6",A009:"#6366f1",A010:"#22c55e",A005:"#ec4899",A012:"#a78bfa",A011:"#84cc16",A013:"#facc15",A018:"#e11d48",A015:"#0ea5e9"};function $(Q){return f[Q]||"#6b7280"}const _=H(!1),O=[{label:"ROP tree",url:"rop-tree.json",fields:["code","name","clusters[].code","clusters[].name","clusters[].groups[].code","clusters[].groups[].entries[]"]},{label:"PG pins",url:"pg-points.json",fields:["code","name","rop1","rop2","rop3","rop25","iso3","country","imb","jp","religion","language"]},{label:"Country polygons",url:Bs,fields:bc}],L=Ao([]),G=Ao(null),A=H(!1),k=Ao([]),b=H({}),m=H({}),E=H({}),P=H({}),F=H({}),T=H(!1),S=H({}),W=H("mercator"),X=H(!1),K=H("dark"),ae=[{key:"dark",label:"Dark",url:"ink"},{key:"satellite",label:"Satellite",url:"hybrid"},{key:"light",label:"Light",url:"paper"}],ge=[{id:"affinity",label:"Bloc",info:"Affinity Bloc — top-level grouping of related people groups (e.g. Arab Peoples). 17 blocs total."},{id:"cluster",label:"Cluster",info:"People Cluster — subdivision within an Affinity Bloc (e.g. Maghrebi Arab inside Arab Peoples). 292 clusters."},{id:"rop25",label:"ROP25",info:"People Group level — a distinct ethnolinguistic identity (e.g. Algerian Arab). ~13k groups."},{id:"rop3xc",label:"PGIC",topLimit:200,info:"ROP3 × Country (PGIC) — same ethnolinguistic group in a specific country (e.g. Algerian Arab in France). 21k records. Showing top 200 by population — use the geocoder to find the rest."}];function ye(){if(!L.value.length){k.value=[];return}const Q=S.value;k.value=[...L.value].sort((h,v)=>(b.value[v.code]||0)-(b.value[h.code]||0)).map(h=>({id:`bloc:${h.code}`,label:h.name||h.code,color:$(h.code),count:b.value[h.code]||0,pop:E.value[h.code]||0,filter:["==",["get","rop1"],h.code],children:[...h.clusters||[]].sort((v,x)=>(m.value[x.code]||0)-(m.value[v.code]||0)).map(v=>({id:`cl:${v.code}`,label:v.name||v.code,color:$(h.code),count:m.value[v.code]||0,pop:P.value[v.code]||0,filter:["==",["get","rop2"],v.code],children:[...v.groups||[]].sort((x,D)=>D.entries.length-x.entries.length).map(x=>({id:`pg:${x.code}`,label:x.name||x.code,color:$(h.code),count:x.entries.length,pop:F.value[x.code]||0,filter:["==",["get","rop3"],x.code],pgicIds:x.entries,children:x.entries.map(D=>{const w=Q[D],p=w?w.country?`${w.name} · ${w.country}`:w.name:`Unmapped · ${D}`;return{id:`pgic:${D}`,label:p,color:$(h.code),count:1,pop:(w==null?void 0:w.pop)||0,filter:["==",["get","rop25"],D]}})}))}))}))}const se=ne(()=>k.value),ee={bloc:"Affinity Bloc",cluster:"People Cluster",pg:"ROP25",pgic:"ROP3 × Country",country:"Country"},ce=ne(()=>{const Q=[];for(const v of se.value){Q.push({...v,kind:"bloc",depth:0});for(const x of v.children){Q.push({...x,kind:"cluster",depth:1});for(const D of x.children)Q.push({id:D.id,label:D.label,color:D.color,count:D.count,pop:D.pop,filter:D.filter,kind:"pg",depth:2})}}const h=Object.entries(S.value).sort((v,x)=>(x[1].pop||0)-(v[1].pop||0)).slice(0,2e3);for(const[v,x]of h)Q.push({id:`pgic:${v}`,label:x.country?`${x.name} · ${x.country}`:x.name,kind:"pgic",depth:3,filter:["==",["get","rop25"],v],pop:x.pop||0});if(G.value){const v=new Set;for(const x of G.value.features){const D=x.properties.country,w=x.properties.iso3;D&&w&&!v.has(w)&&(v.add(w),Q.push({id:`country:${w}`,label:D,kind:"country",depth:0,filter:["==",["get","iso3"],w]}))}}return Q});function Ne(Q){var h,v;if(!Q){(h=l.value)==null||h.setFilter(Ea,null);return}Q.filter&&((v=l.value)==null||v.setFilter(Ea,Q.filter)),be(Q)}function Z(Q){!l.value||(Q==null?void 0:Q.lng)==null||(Q==null?void 0:Q.lat)==null||(l.value.stop(),l.value.flyTo({center:[Q.lng,Q.lat],zoom:6.5,duration:1200}))}const J=ne(()=>{const Q=t.pinDetail.value;return Q?$(Q.rop1):"#73A17F"});function te(Q){l.value&&(l.value.stop(),Q.bbox?l.value.fitBounds([[Q.bbox[0],Q.bbox[1]],[Q.bbox[2],Q.bbox[3]]],{padding:60,maxZoom:7,duration:1200}):Q.center&&l.value.flyTo({center:Q.center,zoom:6.5,duration:1200}))}function be(Q){if(!G.value||!A.value||!l.value)return;const h=Q.id;let v,x;if(h.startsWith("bloc:"))v="rop1",x=h.slice(5);else if(h.startsWith("cl:"))v="rop2",x=h.slice(3);else if(h.startsWith("pg:"))v="rop3",x=h.slice(3);else if(h.startsWith("pgic:"))v="rop25",x=h.slice(5);else if(h.startsWith("country:"))v="iso3",x=h.slice(8);else return;const D=[],w=[];for(const p of G.value.features)p.properties[v]===x&&(D.push(p.geometry.coordinates[0]),w.push(p.geometry.coordinates[1]));if(D.length){if(l.value.stop(),D.length===1){l.value.flyTo({center:[D[0],w[0]],zoom:6.5,duration:1200});return}l.value.fitBounds([[Math.min(...D),Math.min(...w)],[Math.max(...D),Math.max(...w)]],{padding:60,maxZoom:6,duration:1200})}}function De(){W.value=W.value==="globe"?"mercator":"globe",l.value&&l.value.setProjection(W.value)}function He(Q){var v;if(Q===K.value){X.value=!1;return}K.value=Q,t.theme.value=Q==="light"?"light":"dark",X.value=!1;const h=(v=ae.find(x=>x.key===Q))==null?void 0:v.url;!h||!l.value||(l.value.once("style.load",()=>{$e(),l.value.setProjection(W.value)}),l.value.setStyle(va(h,o).style,{diff:!1}))}function Pe(){He(K.value==="dark"?"light":"dark")}function qe(){window.location.reload()}const pe=wa();We(()=>t.pinDetail.value,Q=>{Q||pe.hide()}),We(()=>t.selection.value,Q=>{l.value&&(Q!=null&&Q.filter?Ne(Q):Q||Ne(null))});function $e(){if(!(!G.value||!l.value)&&(Gt(l.value,{theme:t.theme.value}),!l.value.getSource("rop-pgs"))){l.value.addSource("rop-pgs",{type:"geojson",data:G.value,cluster:!1});const Q=["match",["get","rop1"],...Object.entries(f).flatMap(([h,v])=>[h,v]),"#6b7280"];l.value.addLayer({id:Ea,type:"circle",source:"rop-pgs",paint:{"circle-color":Q,"circle-radius":["interpolate",["linear"],["zoom"],1,2,6,4,12,7],"circle-opacity":.85,"circle-stroke-color":"#0d1117","circle-stroke-width":.5}}),xa(l.value,Ea,({features:h})=>{const v=h[0],x=v.geometry.coordinates[0],D=v.geometry.coordinates[1];t.pinDetail.value={...v.properties,lng:x,lat:D},pe.show(l.value,[x,D],{color:$(v.properties.rop1)})})}}Qe(async()=>{await c(),xo(l.value),l.value&&(l.value.addControl(new(to(l.value)).NavigationControl({showCompass:!1,visualizePitch:!1}),"bottom-right"),l.value.addControl(new ka(s.value),"bottom-right"));const Q=await fetch(Dt("rop-tree.json"));L.value=await Q.json(),l.value.on("load",async()=>{try{l.value.setPadding({left:380,top:0,right:0,bottom:0}),Gt(l.value,{theme:t.theme.value}),r.value="Loading PG pins…";const v=await(await fetch(Dt("pg-points.json"))).json();G.value=v;const x={},D={},w={},p={},C={};let N=0;for(const R of v.features){const M=R.properties.rop1,V=R.properties.rop2,z=R.properties.rop3,I=R.properties.pop||R.properties.population||0;M&&(x[M]=(x[M]||0)+1,w[M]=(w[M]||0)+I),V&&(D[V]=(D[V]||0)+1,p[V]=(p[V]||0)+I),z&&(C[z]=(C[z]||0)+I),N+=I}b.value=x,m.value=D,E.value=w,P.value=p,F.value=C,T.value=N>0;const d={};for(const R of v.features){const M=R.properties.rop25;M&&!d[M]&&(d[M]={name:R.properties.name,country:R.properties.country,pop:R.properties.pop||R.properties.population||0})}S.value=d,ye(),$e();const g=v.features.filter(R=>R.properties.peid!=null).length;A.value=!0,r.value=`Ready · ${v.features.length.toLocaleString()} pins · ${g.toLocaleString()} with PEID`}catch(h){r.value=`Error: ${h.message}`}})}),rt(()=>{pe.destroy(),u()});const Se=ko+`
|
||
.pplr-popup h3 small { display: block; color: #6b7280; font-weight: 400; font-size: 11px; margin-top: 2px; }
|
||
`;return(Q,h)=>(j(),U("div",{ref_key:"profileRoot",ref:s,class:"profile","data-theme":ve(t).theme.value},[!ve(i)||!A.value?(j(),Me(go,{key:0,label:r.value,onRetry:qe},null,8,["label"])):he("",!0),y("div",N1,[Be(zs,{"local-index":ce.value,"kind-labels":ee,"mapbox-token":ve(n),placeholder:"Search by people, place, language, religion…",onPlace:te},null,8,["local-index","mapbox-token"])]),ve(t).pinDetail.value?(j(),Me(Aa,{key:1,color:J.value,onLocate:Z},null,8,["color"])):(j(),Me(wc,{key:2,nodes:se.value,tabs:ge,title:"ROP Hierarchy",onSelect:Ne},null,8,["nodes"])),y("div",{ref_key:"mapContainer",ref:a,class:"map"},null,512),y("div",F1,q(r.value),1),h[8]||(h[8]=y("div",{class:"header-pill"},"ROP Hierarchy · Affinity Bloc → Cluster → People Group → PGIC",-1)),y("div",I1,[y("button",{class:"toolbar-btn round",title:`Theme: ${K.value==="dark"?"Dark":"Light"} (click to toggle)`,onClick:Pe},[K.value==="dark"?(j(),U("svg",G1,[...h[2]||(h[2]=[y("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])):(j(),U("svg",j1,[...h[3]||(h[3]=[y("circle",{cx:"12",cy:"12",r:"4",stroke:"currentColor","stroke-width":"1.8"},null,-1),y("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"},null,-1)])]))],8,D1),y("button",{class:"toolbar-btn round",title:W.value==="globe"?"Switch to Mercator":"Switch to Globe",onClick:De},[y("span",U1,q(W.value==="globe"?"🌐":"🗺"),1)],8,B1),y("div",V1,[y("button",{class:"toolbar-btn round",title:"Base map",onClick:h[0]||(h[0]=v=>X.value=!X.value)},[...h[4]||(h[4]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("path",{d:"M3 7l9-4 9 4-9 4-9-4z",stroke:"currentColor","stroke-width":"1.8","stroke-linejoin":"round"}),y("path",{d:"M3 12l9 4 9-4M3 17l9 4 9-4",stroke:"currentColor","stroke-width":"1.8","stroke-linejoin":"round"})],-1)])]),X.value?(j(),U("div",z1,[h[5]||(h[5]=y("div",{class:"basemap-title"},"Base map",-1)),(j(),U(re,null,xe(ae,v=>y("button",{key:v.key,class:Ve(["basemap-opt",{active:K.value===v.key}]),onClick:x=>He(v.key)},q(v.label),11,W1)),64))])):he("",!0)]),y("div",H1,[y("button",{class:"toolbar-btn round",title:"Data sources",onClick:h[1]||(h[1]=v=>_.value=!_.value)},[...h[6]||(h[6]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor","stroke-width":"1.8"}),y("path",{d:"M19 12a7 7 0 0 0-.1-1.2l2-1.5-2-3.5-2.4 1a7 7 0 0 0-2.1-1.2L14 3h-4l-.4 2.6A7 7 0 0 0 7.5 6.8l-2.4-1-2 3.5 2 1.5A7 7 0 0 0 5 12c0 .4 0 .8.1 1.2l-2 1.5 2 3.5 2.4-1a7 7 0 0 0 2.1 1.2L10 21h4l.4-2.6a7 7 0 0 0 2.1-1.2l2.4 1 2-3.5-2-1.5c.06-.4.1-.8.1-1.2z",stroke:"currentColor","stroke-width":"1.6","stroke-linejoin":"round"})],-1)])]),_.value?(j(),U("div",q1,[h[7]||(h[7]=y("div",{class:"settings-header"},"Data sources",-1)),(j(),U(re,null,xe(O,v=>y("div",{key:v.url,class:"settings-src"},[y("div",K1,q(v.label),1),y("div",X1,q(v.url),1),y("div",Y1,[(j(!0),U(re,null,xe(v.fields,x=>(j(),U("span",{key:x,class:"settings-field"},q(x),1))),128))])])),64))])):he("",!0)])]),(j(),Me(Ot("style"),null,{default:ao(()=>[Ee(q(Se))]),_:1}))],8,M1))}},[["styles",[O1]],["__scopeId","data-v-6d32b707"]])},Symbol.toStringTag,{value:"Module"})),J1=".profile[data-v-ffd1dd3f]{width:100%;height:100%;position:relative}.map[data-v-ffd1dd3f]{width:100%;height:100%}.loading[data-v-ffd1dd3f]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f1216;color:#94a3b8;font:13px sans-serif;z-index:1}.status[data-v-ffd1dd3f]{position:absolute;bottom:32px;left:12px;background:#0d1117eb;color:#86efac;border:1px solid #30363d;font:11px ui-monospace,monospace;padding:6px 12px;border-radius:4px;z-index:2;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-pill[data-v-ffd1dd3f]{position:absolute;bottom:64px;left:12px;background:#0d1117eb;color:#c9d1d9;border:1px solid #30363d;font:11px system-ui;padding:6px 12px;border-radius:999px;z-index:2;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geocoder-slot[data-v-ffd1dd3f]{position:absolute;top:12px;left:8px;width:380px;z-index:5}@media (max-width: 640px){.geocoder-slot[data-v-ffd1dd3f]{width:92vw;max-width:380px;left:8px}}.profile[data-theme=light] .toolbar-btn[data-v-ffd1dd3f]{background:#fffffff5;border-color:#d0d7de;color:#57606a;box-shadow:0 3px 10px #1f23281f}.profile[data-theme=light] .toolbar-btn[data-v-ffd1dd3f]:hover{background:#f6f8fa;color:#3b463d;border-color:#3b463d}.profile[data-theme=light] .toolbar-btn.round[data-v-ffd1dd3f]{background:#fff}.profile[data-theme=light] .toolbar-btn.round[data-v-ffd1dd3f]:hover{background:#f6f8fa;box-shadow:0 5px 14px #3b463d33}.profile[data-theme=light] .basemap-panel[data-v-ffd1dd3f]{background:#fffffffa;border-color:#d0d7de;box-shadow:0 6px 20px #1f232826}.profile[data-theme=light] .basemap-title[data-v-ffd1dd3f]{color:#3b463d;border-color:#d8dee4}.profile[data-theme=light] .basemap-opt[data-v-ffd1dd3f]{color:#57606a}.profile[data-theme=light] .basemap-opt[data-v-ffd1dd3f]:hover{background:#f6f8fa;color:#1f2328}.profile[data-theme=light] .basemap-opt.active[data-v-ffd1dd3f]{border-color:#3b463d;color:#3b463d}.profile[data-theme=light] .status[data-v-ffd1dd3f]{background:#fffffff2;border-color:#d0d7de;color:#1a7f37}.profile[data-theme=light] .header-pill[data-v-ffd1dd3f]{background:#fffffff2;border-color:#d0d7de;color:#1f2328}.profile[data-theme=light] .loading[data-v-ffd1dd3f]{background:#f6f8fa;color:#57606a}.map-toolbar[data-v-ffd1dd3f]{position:absolute;top:12px;right:12px;z-index:5;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.toolbar-btn[data-v-ffd1dd3f]{display:flex;align-items:center;gap:5px;background:#0d1117eb;color:#8b949e;border:1px solid #30363d;border-radius:6px;font:11px ui-monospace,monospace;padding:5px 10px;cursor:pointer;white-space:nowrap;transition:color .12s,border-color .12s,background .12s,transform .12s,box-shadow .12s}.toolbar-btn[data-v-ffd1dd3f]:hover{color:#c9d1d9;border-color:#73a17f}.toolbar-btn.round[data-v-ffd1dd3f]{width:36px;height:36px;padding:0;border-radius:50%;justify-content:center;background:#161b22;box-shadow:0 3px 10px #0000004d}.toolbar-btn.round[data-v-ffd1dd3f]:hover{background:#1c2333;transform:translateY(-1px);box-shadow:0 5px 14px #3b463d40}.toolbar-icon[data-v-ffd1dd3f]{font-size:13px;line-height:1}.toolbar-label[data-v-ffd1dd3f]{font-size:10px;letter-spacing:.04em}.basemap-wrap[data-v-ffd1dd3f]{position:relative}.basemap-panel[data-v-ffd1dd3f]{position:absolute;top:calc(100% + 4px);right:0;background:#0d1117f7;border:1px solid #30363d;border-radius:6px;padding:8px;min-width:130px;z-index:10;display:flex;flex-direction:column;gap:3px}.basemap-title[data-v-ffd1dd3f]{font:600 10px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;padding:0 4px 4px;border-bottom:1px solid #21262d;margin-bottom:2px}.basemap-opt[data-v-ffd1dd3f]{background:transparent;border:1px solid transparent;border-radius:4px;color:#8b949e;font:11px system-ui;padding:4px 8px;cursor:pointer;text-align:left}.basemap-opt[data-v-ffd1dd3f]:hover{background:#161b22;color:#c9d1d9}.basemap-opt.active[data-v-ffd1dd3f]{border-color:#73a17f;color:#73a17f}.settings-wrap[data-v-ffd1dd3f]{position:relative}.settings-panel[data-v-ffd1dd3f]{position:absolute;top:calc(100% + 4px);right:0;background:#0d1117f7;color:#c9d1d9;border:1px solid #30363d;border-radius:8px;font:12px system-ui;padding:12px 16px;min-width:320px;max-width:420px;max-height:50vh;overflow-y:auto;z-index:10}.settings-header[data-v-ffd1dd3f]{font:600 11px ui-monospace,monospace;color:#c9d1d9;text-transform:uppercase;letter-spacing:.08em;padding:0 4px 8px;margin-bottom:6px;border-bottom:1px solid #21262d}.settings-src[data-v-ffd1dd3f]{margin-bottom:8px}.settings-src[data-v-ffd1dd3f]:last-child{margin-bottom:0}.settings-src-label[data-v-ffd1dd3f]{font:600 9px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.settings-src-url[data-v-ffd1dd3f]{font:10px ui-monospace,monospace;color:#6e7681;word-break:break-all;background:#161b22;border:1px solid #21262d;border-radius:3px;padding:3px 5px;margin-bottom:3px}.settings-fields[data-v-ffd1dd3f]{display:flex;flex-wrap:wrap;gap:2px}.settings-field[data-v-ffd1dd3f]{font:10px ui-monospace,monospace;background:#21262d;color:#c9d1d9;border-radius:3px;padding:1px 4px}.profile[data-theme=light] .settings-panel[data-v-ffd1dd3f]{background:#fffffffa;border-color:#d0d7de;box-shadow:0 6px 20px #1f232826;color:#1f2328}.profile[data-theme=light] .settings-header[data-v-ffd1dd3f]{color:#1f2328;border-bottom-color:#d8dee4}.profile[data-theme=light] .settings-src-label[data-v-ffd1dd3f]{color:#3b463d}.profile[data-theme=light] .settings-src-url[data-v-ffd1dd3f]{background:#f6f8fa;border-color:#d0d7de;color:#57606a}.profile[data-theme=light] .settings-field[data-v-ffd1dd3f]{background:#eaeef2;color:#1f2328}",Q1=["data-theme"],ey={class:"geocoder-slot"},ty={class:"status"},oy={class:"map-toolbar"},ny=["title"],ay={key:0,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},sy={key:1,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},ry=["title"],ly={class:"toolbar-icon"},iy={class:"basemap-wrap"},cy={key:0,class:"basemap-panel"},dy=["onClick"],py={class:"settings-wrap"},uy={key:0,class:"settings-panel"},gy={class:"settings-src-label"},fy={class:"settings-src-url"},hy={class:"settings-fields"},Ca="lf-pins",my=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-language-families",setup(e){const t=La("language-families");Pa(t);const o=xn(Oe("profileConfig",null)),n=Oe("mapboxToken"),a=H(null),s=H(null),r=H("Loading…"),{map:l,isMapReady:i,initializeMap:c,destroy:u}=wo({containerRef:a,accessToken:n.value,style:"ink",center:[25,18],zoom:1.6,projection:"mercator"}),f=[{key:"North Indian",color:"#f97316"},{key:"Bantu",color:"#8b5cf6"},{key:"Tibeto-Burmese",color:"#3b82f6"},{key:"Indo-Malay",color:"#06b6d4"},{key:"Papuan",color:"#84cc16"},{key:"Dravidian",color:"#f59e0b"},{key:"Southern Amerindian",color:"#a78bfa"},{key:"Bantoid",color:"#10b981"},{key:"Germanic",color:"#94a3b8"},{key:"Iranian",color:"#ec4899"},{key:"Arab (Arabic)",color:"#fbbf24"},{key:"Melanesian",color:"#0ea5e9"},{key:"Sudanic",color:"#6366f1"},{key:"Latin (Romance)",color:"#ef4444"},{key:"Chinese",color:"#f43f5e"},{key:"Slav",color:"#67e8f9"},{key:"Central Amerindian",color:"#22c55e"},{key:"Altaic",color:"#fb923c"},{key:"Guinean (Kwa)",color:"#c084fc"},{key:"Hausa-Chadic",color:"#14b8a6"},{key:"Mon-Khmer",color:"#a3e635"},{key:"Northern Amerindian",color:"#fde047"},{key:"Jewish",color:"#60a5fa"},{key:"Tai",color:"#4ade80"},{key:"Nilotic (Para-Nilotic)",color:"#f87171"},{key:"Other",color:"#374151"}],$=new Map(f.map(p=>[p.key,p.color]));function _(p){return $.get(p)||$.get("Other")}const O=H(!1);function L(){window.location.reload()}const G=H(!1),A=[{label:"PG pins (PG-in-country)",url:"pg-points.json",fields:["code","name","rop1","rop2","rop3","rop25","iso3","country","language","fam (joined)"]},{label:"Language family lookup (joined)",url:"pplr-geoid-family.json",fields:["<rop25-code>: <Family Name>"]},{label:"Country polygons (live)",url:"PPLR FeatureServer · aCountry",fields:["GENCalpha3","ISOalpha2","CtryNm","ctryNmDisp"]}];function k(){return["match",["get","fam"],...f.slice(0,25).flatMap(p=>[p.key,p.color]),"#374151"]}const b=H("mercator"),m=H(!1),E=H("dark"),P=[{key:"dark",label:"Dark",url:"ink"},{key:"satellite",label:"Satellite",url:"hybrid"},{key:"light",label:"Light",url:"paper"}],F=H(null),T=H({}),S=H({}),W=H(!1),X=H({}),K=[{id:"family",label:"Lang Family",info:`PPLR's ethnolinguistic family classification (per assets/data/pplr-geoid-family.json). Note: PPLR groups Arabic under "Arab (Arabic)" rather than the broader linguistic family "Afro-Asiatic", and splits other Afro-Asiatic peoples into "Hausa-Chadic", "Cushitic", "Sudanic", etc.`},{id:"language",label:"Language",info:"A distinct language (e.g. Arabic, Hindi, Punjabi). Identified by 3-character ROL code (ISO 639-3)."},{id:"variant",label:"Variant / Dialect",info:'A regional or social variety of a language (e.g. "Punjabi, Western", "Arabic, Egyptian"). Comma-separated names group as variants under a root language.'}],ae={family:"Lang Family",language:"Language",variant:"Variant",dialect:"Dialect"};function ge(p,C){const N=(C.pop||0)-(p.pop||0);return N!==0?N:(C.count||0)-(p.count||0)}function ye(p){if(p.includes(":")){const C=p.indexOf(":"),N=p.substring(0,C).trim();if(N.includes(",")){const d=N.indexOf(",");return{root:N.substring(0,d).trim(),variant:N,dialectFull:p}}return{root:N,variant:null,dialectFull:p}}if(p.includes(",")){const C=p.indexOf(",");return{root:p.substring(0,C).trim(),variant:p,dialectFull:null}}return{root:p,variant:null,dialectFull:null}}function se(p,C,N){if(!C)return;const{root:d,variant:g,dialectFull:R}=ye(C);if(p[d]||(p[d]={base:d,count:0,pop:0,variants:{},dialects:[]}),p[d].count++,p[d].pop+=N,g){if(p[d].variants[g]||(p[d].variants[g]={name:g,count:0,pop:0,dialects:[]}),p[d].variants[g].count++,p[d].variants[g].pop+=N,R){const M=p[d].variants[g].dialects;let V=M.find(z=>z.name===R);V||(V={name:R,count:0,pop:0},M.push(V)),V.count++,V.pop+=N}}else if(R){let M=p[d].dialects.find(V=>V.name===R);M||(M={name:R,count:0,pop:0},p[d].dialects.push(M)),M.count++,M.pop+=N}}function ee(p){return Object.values(p).map(C=>({...C,variants:Object.values(C.variants).map(N=>({...N,dialects:[...N.dialects].sort(ge)})).sort(ge),dialects:[...C.dialects].sort(ge)})).sort(ge)}function ce(p){return p.length===1?["==",["get","language"],p[0]]:["in",["get","language"],["literal",p]]}function Ne(p,C){return{id:`d:${C}:${p.name}`,label:p.name,color:_(C),count:p.count,pop:p.pop,filter:["==",["get","language"],p.name],children:[]}}function Z(p,C){const N=[p.name,...p.dialects.map(d=>d.name)];return{id:`v:${C}:${p.name}`,label:p.name,color:_(C),count:p.count,pop:p.pop,filter:ce(N),children:p.dialects.map(d=>Ne(d,C))}}function J(p,C){const N=[p.base,...p.variants.map(d=>d.name),...p.variants.flatMap(d=>d.dialects.map(g=>g.name)),...p.dialects.map(d=>d.name)];return{id:`l:${C}:${p.base}`,label:p.base,color:_(C),count:p.count,pop:p.pop,filter:ce(N),children:[...p.variants.map(d=>Z(d,C)),...p.dialects.map(d=>Ne(d,C))]}}const te=ne(()=>[...f].sort((p,C)=>{const N=(S.value[C.key]||0)-(S.value[p.key]||0);return N!==0?N:(T.value[C.key]||0)-(T.value[p.key]||0)})),be=f.slice(0,25).map(p=>p.key),De=ne(()=>Object.keys(X.value).length===0?[]:te.value.filter(p=>(T.value[p.key]||0)>0).map(p=>{var C;return{id:`fam:${p.key}`,label:p.key,color:p.color,count:T.value[p.key]||0,pop:S.value[p.key]||0,filter:p.key==="Other"?["!",["in",["get","fam"],["literal",be]]]:["==",["get","fam"],p.key],children:(((C=X.value[p.key])==null?void 0:C.langs)||[]).map(N=>J(N,p.key))}})),He=wa();We(()=>t.pinDetail.value,p=>{p||He.hide()}),We(()=>t.selection.value,p=>{l.value&&Pe(p||null)});function Pe(p){var C,N;p?p.filter&&((N=l.value)==null||N.setFilter(Ca,p.filter),qe(p.filter)):(C=l.value)==null||C.setFilter(Ca,null)}function qe(p){if(!l.value||!F.value||!Array.isArray(p))return;let C,N;if(p[0]==="=="&&Array.isArray(p[1])&&p[1][0]==="get")C=p[1][1],N=[p[2]];else if(p[0]==="in"&&Array.isArray(p[1])&&p[1][0]==="get"&&Array.isArray(p[2])&&p[2][0]==="literal")C=p[1][1],N=p[2][1];else return;const d=new Set(N),g=[],R=[];for(const M of F.value.features)d.has(M.properties[C])&&(g.push(M.geometry.coordinates[0]),R.push(M.geometry.coordinates[1]));g.length&&(l.value.stop(),g.length===1?l.value.flyTo({center:[g[0],R[0]],zoom:6.5,duration:1200}):l.value.fitBounds([[Math.min(...g),Math.min(...R)],[Math.max(...g),Math.max(...R)]],{padding:60,maxZoom:6,duration:1200}))}const pe=ne(()=>{const p=[];function C(N,d,g){var R;for(const M of N)if(p.push({...M,kind:g,depth:d}),(R=M.children)!=null&&R.length){const V=d===0?"language":d===1?"variant":"dialect";C(M.children,d+1,V)}}return C(De.value,0,"family"),p});function $e(p){l.value&&(l.value.stop(),p.bbox?l.value.fitBounds([[p.bbox[0],p.bbox[1]],[p.bbox[2],p.bbox[3]]],{padding:60,maxZoom:7,duration:1200}):p.center&&l.value.flyTo({center:p.center,zoom:5,duration:1200}))}function Se(p){!l.value||(p==null?void 0:p.lng)==null||(p==null?void 0:p.lat)==null||(l.value.stop(),l.value.flyTo({center:[p.lng,p.lat],zoom:6,duration:1200}))}const Q=ne(()=>{const p=t.pinDetail.value;return p?_(p.fam||"Other"):"#73A17F"});function h(){b.value=b.value==="globe"?"mercator":"globe",l.value&&l.value.setProjection(b.value)}function v(p){var N;if(p===E.value){m.value=!1;return}E.value=p,t.theme.value=p==="light"?"light":"dark",m.value=!1;const C=(N=P.find(d=>d.key===p))==null?void 0:N.url;!C||!l.value||(l.value.once("style.load",()=>{D(),l.value.setProjection(b.value)}),l.value.setStyle(va(C,o).style,{diff:!1}))}function x(){v(E.value==="dark"?"light":"dark")}function D(){!F.value||!l.value||(Gt(l.value,{theme:t.theme.value}),l.value.getSource("lf-pgs")||(l.value.addSource("lf-pgs",{type:"geojson",data:F.value,cluster:!1}),l.value.addLayer({id:Ca,type:"circle",source:"lf-pgs",paint:{"circle-color":k(),"circle-radius":["interpolate",["linear"],["zoom"],1,2,6,4,12,7],"circle-opacity":.85,"circle-stroke-color":"#0d1117","circle-stroke-width":.5}}),xa(l.value,Ca,({features:p})=>{const C=p[0],N=C.geometry.coordinates[0],d=C.geometry.coordinates[1];t.pinDetail.value={...C.properties,lng:N,lat:d},He.show(l.value,[N,d],{color:_(C.properties.fam||"Other")})})))}Qe(async()=>{await c(),xo(l.value),l.value&&(l.value.addControl(new(to(l.value)).NavigationControl({showCompass:!1,visualizePitch:!1}),"bottom-right"),l.value.addControl(new ka(s.value),"bottom-right")),l.value.on("load",async()=>{try{l.value.setPadding({left:380,top:0,right:0,bottom:0}),Gt(l.value,{theme:t.theme.value}),r.value="Loading language data…";const[p,C]=await Promise.all([fetch(Dt("pg-points.json")),fetch(Dt("pplr-geoid-family.json"))]),N=await p.json(),d=await C.json();let g=0,R=0,M=0;const V=new Set(be);for(const fe of N.features){const Re=String(fe.properties.code),Ge=d[Re]||null;fe.properties.fam=Ge,Ge&&(g++,V.has(Ge)&&R++),M+=fe.properties.pop||fe.properties.population||0}W.value=M>0,F.value=N,D();const z={},I={};for(const fe of N.features){const Re=fe.properties.fam||"Other",Ge=fe.properties.pop||fe.properties.population||0;z[Re]=(z[Re]||0)+1,I[Re]=(I[Re]||0)+Ge}T.value=z,S.value=I;const B={};for(const fe of N.features){const Re=fe.properties.fam||"Other",Ge=fe.properties.language||"",jt=fe.properties.pop||fe.properties.population||0;B[Re]||(B[Re]={count:0,pop:0,lmap:{}}),B[Re].count++,B[Re].pop+=jt,Ge&&se(B[Re].lmap,Ge,jt)}const oe={};for(const fe of Object.keys(B))oe[fe]={count:B[fe].count,pop:B[fe].pop,langs:ee(B[fe].lmap)};X.value=oe;const me=Math.round(100*g/N.features.length);r.value=`Ready · ${N.features.length.toLocaleString()} pins · ${me}% family coverage · top-25 = ${Math.round(100*R/N.features.length)}%`,O.value=!0}catch(p){r.value=`Error: ${p.message}`}})}),rt(()=>{He.destroy(),u()});const w=ko+`
|
||
.pplr-popup h3 small { display: block; font-weight: 400; color: #6b7280; font-size: 11px; margin-top: 2px; }
|
||
`;return(p,C)=>(j(),U("div",{ref_key:"profileRoot",ref:s,class:"profile","data-theme":ve(t).theme.value},[!ve(i)||!O.value?(j(),Me(go,{key:0,label:r.value,onRetry:L},null,8,["label"])):he("",!0),y("div",ey,[Be(zs,{"local-index":pe.value,"kind-labels":ae,"mapbox-token":ve(n),placeholder:"Search by people, place, language, religion…",onPlace:$e},null,8,["local-index","mapbox-token"])]),ve(t).pinDetail.value?(j(),Me(Aa,{key:1,color:Q.value,onLocate:Se},null,8,["color"])):(j(),Me(wc,{key:2,nodes:De.value,tabs:K,title:"Language Families",onSelect:Pe},null,8,["nodes"])),y("div",{ref_key:"mapContainer",ref:a,class:"map"},null,512),y("div",ty,q(r.value),1),C[8]||(C[8]=y("div",{class:"header-pill"},"Ethnolinguistic families (PPLR) · click pin for detail",-1)),y("div",oy,[y("button",{class:"toolbar-btn round",title:`Theme: ${E.value==="dark"?"Dark":"Light"} (click to toggle)`,onClick:x},[E.value==="dark"?(j(),U("svg",ay,[...C[2]||(C[2]=[y("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])):(j(),U("svg",sy,[...C[3]||(C[3]=[y("circle",{cx:"12",cy:"12",r:"4",stroke:"currentColor","stroke-width":"1.8"},null,-1),y("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"},null,-1)])]))],8,ny),y("button",{class:"toolbar-btn round",title:b.value==="globe"?"Switch to Mercator":"Switch to Globe",onClick:h},[y("span",ly,q(b.value==="globe"?"🌐":"🗺"),1)],8,ry),y("div",iy,[y("button",{class:"toolbar-btn round",title:"Base map",onClick:C[0]||(C[0]=N=>m.value=!m.value)},[...C[4]||(C[4]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("path",{d:"M3 7l9-4 9 4-9 4-9-4z",stroke:"currentColor","stroke-width":"1.8","stroke-linejoin":"round"}),y("path",{d:"M3 12l9 4 9-4M3 17l9 4 9-4",stroke:"currentColor","stroke-width":"1.8","stroke-linejoin":"round"})],-1)])]),m.value?(j(),U("div",cy,[C[5]||(C[5]=y("div",{class:"basemap-title"},"Base map",-1)),(j(),U(re,null,xe(P,N=>y("button",{key:N.key,class:Ve(["basemap-opt",{active:E.value===N.key}]),onClick:d=>v(N.key)},q(N.label),11,dy)),64))])):he("",!0)]),y("div",py,[y("button",{class:"toolbar-btn round",title:"Data sources",onClick:C[1]||(C[1]=N=>G.value=!G.value)},[...C[6]||(C[6]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor","stroke-width":"1.8"}),y("path",{d:"M19 12a7 7 0 0 0-.1-1.2l2-1.5-2-3.5-2.4 1a7 7 0 0 0-2.1-1.2L14 3h-4l-.4 2.6A7 7 0 0 0 7.5 6.8l-2.4-1-2 3.5 2 1.5A7 7 0 0 0 5 12c0 .4 0 .8.1 1.2l-2 1.5 2 3.5 2.4-1a7 7 0 0 0 2.1 1.2L10 21h4l.4-2.6a7 7 0 0 0 2.1-1.2l2.4 1 2-3.5-2-1.5c.06-.4.1-.8.1-1.2z",stroke:"currentColor","stroke-width":"1.6","stroke-linejoin":"round"})],-1)])]),G.value?(j(),U("div",uy,[C[7]||(C[7]=y("div",{class:"settings-header"},"Data sources",-1)),(j(),U(re,null,xe(A,N=>y("div",{key:N.url,class:"settings-src"},[y("div",gy,q(N.label),1),y("div",fy,q(N.url),1),y("div",hy,[(j(!0),U(re,null,xe(N.fields,d=>(j(),U("span",{key:d,class:"settings-field"},q(d),1))),128))])])),64))])):he("",!0)])]),(j(),Me(Ot("style"),null,{default:ao(()=>[Ee(q(w))]),_:1}))],8,Q1))}},[["styles",[J1]],["__scopeId","data-v-ffd1dd3f"]])},Symbol.toStringTag,{value:"Module"})),$y=".page[data-v-e279eb62]{width:100%;height:100%;overflow:hidden;background:#161b22;color:#e6edf3;font-family:system-ui,-apple-system,sans-serif;padding:10px 14px 12px;box-sizing:border-box;display:flex;flex-direction:column}.page-header[data-v-e279eb62]{flex-shrink:0}.page-header h1[data-v-e279eb62]{font-size:13px;font-weight:600;color:#79c0ff;margin:0 0 2px;letter-spacing:.01em}.page-header p[data-v-e279eb62]{font-size:10.5px;color:#adbac7;max-width:720px;line-height:1.4;margin:0 0 8px}.trees-grid[data-v-e279eb62]{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px}.tree-cell[data-v-e279eb62]{min-width:0;min-height:0;background:#1c2128;border:1px solid #373e47;border-radius:8px;padding:6px 8px;box-shadow:0 3px 10px #00000038;overflow:auto;display:flex;flex-direction:column}.tree-cell[data-v-e279eb62]::-webkit-scrollbar{width:6px;height:6px}.tree-cell[data-v-e279eb62]::-webkit-scrollbar-thumb{background:#484f58;border-radius:3px}.tree-table-wrap[data-v-e279eb62]{position:relative;overflow-x:auto;overflow-y:visible}.tree-table-wrap[data-v-e279eb62]::-webkit-scrollbar{height:6px}.tree-table-wrap[data-v-e279eb62]::-webkit-scrollbar-thumb{background:#484f58;border-radius:3px}.tree-lines-svg[data-v-e279eb62]{position:absolute;top:0;left:0;pointer-events:none;z-index:2;overflow:visible}table[data-v-e279eb62]{width:100%;border-collapse:collapse;table-layout:fixed;position:relative;z-index:1}col.col-label[data-v-e279eb62]{width:72px}col.col-level[data-v-e279eb62]{width:auto}.tree-title-cell[data-v-e279eb62]{background:#22272e;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;font-weight:700;font-size:10px;padding:6px 0;border:1px solid #373e47;vertical-align:middle}.level-hdr[data-v-e279eb62]{background:#22272e;text-transform:uppercase;font-size:9px;letter-spacing:.05em;font-weight:700;color:#cdd9e5;padding:5px 4px;text-align:center;border:1px solid #373e47;white-space:normal;word-break:break-word;vertical-align:bottom}.example-cell[data-v-e279eb62]{font:10px system-ui,sans-serif;padding:3px 5px;border:1px solid #2d333b;background:#1c2128;color:#6e7681;text-align:left;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.example-cell--filled[data-v-e279eb62]{color:#cdd9e5;font-weight:500}.example-cell--nodialect[data-v-e279eb62]{color:#ef4444;font-style:italic}.sys-sep-row[data-v-e279eb62]{background:#22272e}.sys-sep-cell[data-v-e279eb62]{font:700 8.5px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em;color:#79c0ff;padding:4px 6px;border:1px solid #373e47;border-top:2px solid #4d586a;white-space:normal}.system-row[data-v-e279eb62]{background:#1c2128}.system-row[data-v-e279eb62]:nth-child(2n){background:#22272e}.system-name-cell[data-v-e279eb62]{font:700 9px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.05em;color:#adbac7;padding:4px 5px;border:1px solid #373e47;white-space:normal;word-break:break-word;vertical-align:top}.system-field-cell[data-v-e279eb62]{font:9.5px ui-monospace,monospace;color:#cdd9e5;padding:4px 6px;border:1px solid #373e47;text-align:center;white-space:normal;word-break:break-word;overflow-wrap:break-word;vertical-align:top}.system-field-cell--dash[data-v-e279eb62]{color:#545d68}.tree-discover[data-v-e279eb62]{justify-content:center;align-items:center;gap:6px;padding:10px 12px;text-align:center;overflow:hidden}.discover-mark[data-v-e279eb62]{font:700 56px system-ui,-apple-system,sans-serif;color:#73a17f;line-height:.85;text-shadow:0 4px 14px rgba(115,161,127,.3);margin:0}.discover-title[data-v-e279eb62]{margin:2px 0 0;font:600 12px system-ui,sans-serif;color:#e6edf3;line-height:1.25}.discover-body[data-v-e279eb62]{margin:2px 0 0;font:10.5px system-ui,sans-serif;color:#adbac7;line-height:1.4;max-width:38ch}.discover-hints[data-v-e279eb62]{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px;font:9.5px system-ui,sans-serif;color:#8b949e;text-align:left;width:100%}.discover-hints li[data-v-e279eb62]{padding:3px 6px;border-left:2px solid #30363d;border-radius:0 4px 4px 0;background:#73a17f0a;line-height:1.3}.discover-hints li span[data-v-e279eb62]{display:block;font-weight:600;color:#cdd9e5}",by={class:"page"},_y={class:"trees-grid"},yy=["width","height","viewBox"],vy=["d","stroke"],xy=["rowspan"],wy=["title"],ky={class:"sys-sep-row"},Ly=["colspan"],Py=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-semantic-trees",setup(e){Oe("profileConfig",null);const t=[{id:"rop",title:"ROP Tree",color:"#a78bfa",levels:["Affinity Bloc","People Cluster","ROP25","ROP3 × Country"],examples:[["Arab Peoples","Maghrebi Arab","Algerian Arab","Algerian Arab in Algeria"],["","","","Algerian Arab in France"],["","","Moroccan Arab","Moroccan Arab in Morocco"],["","","","Moroccan Arab in Spain"],["","Levantine Arab","Lebanese Arab","Lebanese Arab in Lebanon"],["","","","Lebanese Arab in USA"],["","","Syrian Arab","Syrian Arab in Syria"],["","","","Syrian Arab in Germany"]],systems:[{label:"PPLR",color:"#58a6ff",fields:["ROP1Code · ROP1Name","ROP2Code · ROP2Name","ROP25Code · ROP25Name","GeoID · Code · Name"]},{label:"Joshua Project",color:"#f59e0b",fields:["—","—","JoshuaProjectCode (PGID)","PGID · JoshuaProjectName"]},{label:"IMB",color:"#f43f5e",fields:["—","—","IMBPeopleCode","PEID · IMBPeopleName"]},{label:"WCD",color:"#10b981",fields:["—","—","WorldChristianDatabaseCode","WCDPRN · wcdName"]}]},{id:"lang",title:"Lang Tree",color:"#06b6d4",levels:["Lang Family","Language","Dialect / Variety"],examples:[["Arab (Arabic)","Egyptian Arabic","Egyptian: Cairene"],["","","Egyptian: Saidi"],["","Standard Arabic","✕ No dialects"]],systems:[{label:"PPLR",color:"#58a6ff",fields:["Family · aROP3byCountry","langCd (3-char ROL) · aLanguage","langCd (ROL-GRN, 9-char) · aLanguage"]},{label:"aLanguage scale",color:"#14b8a6",fields:["—","7,270 language records","534 dialect records"]},{label:"Joshua Project",color:"#f59e0b",fields:["—","PrimaryLanguageName · ROL3","LanguageClass"]},{label:"IMB",color:"#f43f5e",fields:["—","—","—"]}]},{id:"admin",title:"Admin Tree",color:"#22c55e",levels:["Admin 1","Admin 2","Admin 3","Admin 4"],examples:[["Vanuatu","Tafea Province","Tanna Parish","Whitesands village"],["","","","Lenakel village"],["","","Aniwa Parish","Itonga village"],["","","","Imanaka village"],["","Penama Province","Pentecost Parish","Loltong village"],["","","","Melsisi village"],["","","Ambae Parish","Lolovenue village"],["","","","Lolopuepue village"]],systems:[{label:"GADM / OSM",color:"#22c55e",fields:["NAME_1 / admin_level=4","NAME_2 / admin_level=6","NAME_3 / admin_level=8","NAME_4 / admin_level=10"]},{label:"PPLR",color:"#58a6ff",fields:["ISOAlpha3 / ROG","—","—","Lat/Lon → spatial join"]},{label:"WHOSIS",color:"#f59e0b",fields:["ISO3","Subdivision","—","—"]}]}],o=ne(()=>t);function n(f){return 2+f.examples.length}function a(f){return f%2===0?"#0d1117":"#0a0e14"}const s={},r=H({}),l=H({});function i(f,$){f&&(s[$]=f)}function c(f){const $=s[f.id];if(!$)return;const _=$.getBoundingClientRect();if(!_.width)return;l.value[f.id]={w:Math.ceil(_.width),h:Math.ceil($.scrollHeight)};const O=$.querySelectorAll("tr.ex-row"),L=[];O.forEach(b=>{const m=b.querySelectorAll("td.ex-cell"),E=[];m.forEach(P=>{const F=P.getBoundingClientRect();E.push({cx:(F.left+F.right)/2-_.left,cy:(F.top+F.bottom)/2-_.top})}),L.push(E)});const G=[],A=f.examples.length,k=f.levels.length;for(let b=1;b<k;b++){let m=null,E=[];const P=()=>{var T,S;if(m===null||!E.length)return;const F=(T=L[m])==null?void 0:T[b-1];if(F){for(const W of E){const X=(S=L[W])==null?void 0:S[b];if(!X)continue;const K=(X.cx-F.cx)*.45;G.push(`M ${F.cx} ${F.cy} C ${F.cx+K} ${F.cy} ${X.cx-K} ${X.cy} ${X.cx} ${X.cy}`)}m=null,E=[]}};for(let F=0;F<A;F++)f.examples[F][b-1]!==""&&(P(),m=F),f.examples[F][b]!==""&&m!==null&&E.push(F);P()}r.value[f.id]=G}let u=null;return Qe(async()=>{await To();for(const f of o.value)c(f);u=new ResizeObserver(()=>{for(const f of o.value)c(f)});for(const f of Object.keys(s))u.observe(s[f])}),rt(()=>u==null?void 0:u.disconnect()),(f,$)=>(j(),U("div",by,[$[2]||($[2]=y("header",{class:"page-header"},[y("h1",null,"Semantic tree reference"),y("p",null,"Classification hierarchies used in PPLR. Each column = one depth level. Dots mark node presence. System rows show API field names per external system.")],-1)),y("div",_y,[(j(!0),U(re,null,xe(o.value,_=>{var O,L,G,A,k;return j(),U("div",{key:_.id,class:"tree-cell"},[y("div",{class:"tree-table-wrap",ref_for:!0,ref:b=>i(b,_.id)},[(O=r.value[_.id])!=null&&O.length?(j(),U("svg",{key:0,class:"tree-lines-svg",width:(L=l.value[_.id])==null?void 0:L.w,height:(G=l.value[_.id])==null?void 0:G.h,viewBox:`0 0 ${(A=l.value[_.id])==null?void 0:A.w} ${(k=l.value[_.id])==null?void 0:k.h}`,xmlns:"http://www.w3.org/2000/svg"},[(j(!0),U(re,null,xe(r.value[_.id],(b,m)=>(j(),U("path",{key:m,d:b,stroke:_.color,"stroke-width":"1.5","stroke-opacity":"0.55",fill:"none","stroke-linecap":"round"},null,8,vy))),128))],8,yy)):he("",!0),y("table",null,[y("colgroup",null,[$[0]||($[0]=y("col",{class:"col-label"},null,-1)),(j(!0),U(re,null,xe(_.levels,b=>(j(),U("col",{key:b,class:"col-level"}))),128))]),y("tbody",null,[y("tr",null,[y("td",{class:"tree-title-cell",rowspan:n(_),style:at({color:_.color,borderRight:"2px solid "+_.color})},q(_.title),13,xy),(j(!0),U(re,null,xe(_.levels,b=>(j(),U("th",{key:b,class:"level-hdr",style:at({color:_.color})},q(b),5))),128))]),(j(!0),U(re,null,xe(_.examples,(b,m)=>(j(),U("tr",{key:"ex"+m,class:"ex-row",style:at({background:a(m)})},[(j(!0),U(re,null,xe(b,(E,P)=>(j(),U("td",{key:P,class:Ve(["ex-cell example-cell",{"example-cell--filled":E!=="","example-cell--nodialect":E.startsWith("✕")}]),title:E},q(E),11,wy))),128))],4))),128)),y("tr",ky,[y("td",{colspan:_.levels.length,class:"sys-sep-cell"},"API field names per external system",8,Ly)]),(j(!0),U(re,null,xe(_.systems,b=>(j(),U("tr",{key:b.label,class:"system-row"},[y("td",{class:"system-name-cell",style:at({color:b.color})},q(b.label),5),(j(!0),U(re,null,xe(b.fields,(m,E)=>(j(),U("td",{key:E,class:Ve(["system-field-cell",{"system-field-cell--dash":m==="—"}])},q(m),3))),128))]))),128))])])],512)])}),128)),$[1]||($[1]=ml('<div class="tree-cell tree-discover" data-v-e279eb62><div class="discover-mark" aria-hidden="true" data-v-e279eb62>?</div><h2 class="discover-title" data-v-e279eb62>What other semantic trees<br data-v-e279eb62>are hiding in the data?</h2><p class="discover-body" data-v-e279eb62> The three trees here are what we've mapped so far. The goal is to find all of them. If you spot a one-to-many hierarchy in PPLR, JP, IMB or WCD that isn't represented yet, add it as the 4th cell. </p><ul class="discover-hints" data-v-e279eb62><li data-v-e279eb62><span data-v-e279eb62>Migration corridors?</span> origin → diaspora pathways</li><li data-v-e279eb62><span data-v-e279eb62>Religious sub-streams?</span> denomination → tradition → school</li><li data-v-e279eb62><span data-v-e279eb62>Engagement status tiers?</span> unreached → unengaged → unevangelized</li><li data-v-e279eb62><span data-v-e279eb62>Translation lineage?</span> source language → script → orthography</li></ul></div>',1))])]))}},[["styles",[$y]],["__scopeId","data-v-e279eb62"]])},Symbol.toStringTag,{value:"Module"})),Sy=".profile[data-v-2137ef2a]{width:100%;height:100%;position:relative}.map[data-v-2137ef2a]{width:100%;height:100%}.loading[data-v-2137ef2a]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f1216;color:#94a3b8;font:13px sans-serif;z-index:1}.status[data-v-2137ef2a]{position:absolute;bottom:32px;left:12px;background:#0d1117eb;color:#c4b5fd;border:1px solid #30363d;font:11px ui-monospace,monospace;padding:6px 12px;border-radius:999px;z-index:2;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-pill[data-v-2137ef2a]{position:absolute;bottom:64px;left:12px;background:#0d1117eb;color:#c9d1d9;border:1px solid #30363d;font:11px system-ui;padding:6px 12px;border-radius:999px;z-index:2;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-toolbar[data-v-2137ef2a]{position:absolute;top:12px;right:12px;z-index:5;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.toolbar-btn.round[data-v-2137ef2a]{width:36px;height:36px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#161b22;color:#8b949e;border:1px solid #30363d;cursor:pointer;box-shadow:0 3px 10px #0000004d;transition:color .12s,background .12s,transform .12s,box-shadow .12s}.toolbar-btn.round[data-v-2137ef2a]:hover{background:#1c2333;color:#c9d1d9;border-color:#73a17f;transform:translateY(-1px);box-shadow:0 5px 14px #3b463d40}.settings-wrap[data-v-2137ef2a]{position:relative}.settings-panel[data-v-2137ef2a]{position:absolute;top:calc(100% + 4px);right:0;background:#0d1117f7;color:#c9d1d9;border:1px solid #30363d;border-radius:8px;font:12px system-ui;padding:12px 16px;min-width:320px;max-width:420px;max-height:50vh;overflow-y:auto;z-index:10}.settings-header[data-v-2137ef2a]{font:600 11px ui-monospace,monospace;color:#c9d1d9;text-transform:uppercase;letter-spacing:.08em;padding:0 4px 8px;margin-bottom:6px;border-bottom:1px solid #21262d}.settings-src[data-v-2137ef2a]{margin-bottom:8px}.settings-src[data-v-2137ef2a]:last-child{margin-bottom:0}.settings-src-label[data-v-2137ef2a]{font:600 9px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.settings-src-url[data-v-2137ef2a]{font:10px ui-monospace,monospace;color:#6e7681;word-break:break-all;background:#161b22;border:1px solid #21262d;border-radius:3px;padding:3px 5px;margin-bottom:3px}.settings-fields[data-v-2137ef2a]{display:flex;flex-wrap:wrap;gap:2px}.settings-field[data-v-2137ef2a]{font:10px ui-monospace,monospace;background:#21262d;color:#c9d1d9;border-radius:3px;padding:1px 4px}",Ay=["data-theme"],Ey={class:"status"},Cy={class:"map-toolbar"},Ry={class:"settings-wrap"},Ty={key:0,class:"settings-panel"},Oy={class:"settings-src-label"},My={class:"settings-src-url"},Ny={class:"settings-fields"},kc="trans-pins",Fy=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-translations",setup(e){const t=La("translations");Pa(t);const o=Oe("mapboxToken"),n=H(null),a=H(null),s=H("Loading…"),{map:r,isMapReady:l,initializeMap:i,destroy:c}=wo({containerRef:n,accessToken:o.value,style:"ink",center:[70,22],zoom:2,projection:"mercator"}),u=wa();We(()=>t.pinDetail.value,A=>{A||u.hide()});function f(A){!r.value||(A==null?void 0:A.lng)==null||(A==null?void 0:A.lat)==null||(r.value.stop(),r.value.flyTo({center:[A.lng,A.lat],zoom:6,duration:1200}))}const $=ne(()=>"#a78bfa"),_=H(!1);function O(){window.location.reload()}const L=H(!1),G=[{label:"PG pins (PG-in-country)",url:"pg-points.json",fields:["code","name","country","iso3","rop25","language","n_en…n_de (17 locales)"]},{label:"Country polygons (live)",url:"PPLR FeatureServer · aCountry",fields:["GENCalpha3","ISOalpha2","CtryNm","ctryNmDisp"]}];return Qe(async()=>{await i(),xo(r.value),r.value&&(r.value.addControl(new(to(r.value)).NavigationControl({showCompass:!1,visualizePitch:!1}),"bottom-right"),r.value.addControl(new ka(a.value),"bottom-right")),r.value.on("load",async()=>{try{r.value.setPadding({left:380,top:0,right:0,bottom:0}),s.value="Loading PG data…",Gt(r.value,{theme:t.theme.value}),s.value="Loading PG pins…";const k=await(await fetch(Dt("pg-points.json"))).json();r.value.addSource("trans-pgs",{type:"geojson",data:k,cluster:!1}),r.value.addLayer({id:kc,type:"circle",source:"trans-pgs",paint:{"circle-color":"#a78bfa","circle-radius":["interpolate",["linear"],["zoom"],1,2,6,4,12,7],"circle-opacity":.85,"circle-stroke-color":"#0d1117","circle-stroke-width":.6}}),xa(r.value,kc,({features:b})=>{const m=b[0],E=m.geometry.coordinates[0],P=m.geometry.coordinates[1];t.pinDetail.value={...m.properties,lng:E,lat:P},u.show(r.value,[E,P],{color:"#a78bfa"})}),s.value=`${k.features.length.toLocaleString()} pins · click any pin to see all 17 locale names`,_.value=!0}catch(A){s.value=`Error: ${A.message}`}})}),rt(()=>{u.destroy(),c()}),(A,k)=>(j(),U("div",{ref_key:"profileRoot",ref:a,class:"profile","data-theme":ve(t).theme.value},[!ve(l)||!_.value?(j(),Me(go,{key:0,label:s.value,onRetry:O},null,8,["label"])):he("",!0),ve(t).pinDetail.value?(j(),Me(Aa,{key:1,color:$.value,onLocate:f},null,8,["color"])):he("",!0),y("div",{ref_key:"mapContainer",ref:n,class:"map"},null,512),y("div",Ey,q(s.value),1),k[3]||(k[3]=y("div",{class:"header-pill"},"PG name · 17 locales · click any pin",-1)),y("div",Cy,[y("div",Ry,[y("button",{class:"toolbar-btn round",title:"Data sources",onClick:k[0]||(k[0]=b=>L.value=!L.value)},[...k[1]||(k[1]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor","stroke-width":"1.8"}),y("path",{d:"M19 12a7 7 0 0 0-.1-1.2l2-1.5-2-3.5-2.4 1a7 7 0 0 0-2.1-1.2L14 3h-4l-.4 2.6A7 7 0 0 0 7.5 6.8l-2.4-1-2 3.5 2 1.5A7 7 0 0 0 5 12c0 .4 0 .8.1 1.2l-2 1.5 2 3.5 2.4-1a7 7 0 0 0 2.1 1.2L10 21h4l.4-2.6a7 7 0 0 0 2.1-1.2l2.4 1 2-3.5-2-1.5c.06-.4.1-.8.1-1.2z",stroke:"currentColor","stroke-width":"1.6","stroke-linejoin":"round"})],-1)])]),L.value?(j(),U("div",Ty,[k[2]||(k[2]=y("div",{class:"settings-header"},"Data sources",-1)),(j(),U(re,null,xe(G,b=>y("div",{key:b.url,class:"settings-src"},[y("div",Oy,q(b.label),1),y("div",My,q(b.url),1),y("div",Ny,[(j(!0),U(re,null,xe(b.fields,m=>(j(),U("span",{key:m,class:"settings-field"},q(m),1))),128))])])),64))])):he("",!0)])]),(j(),Me(Ot("style"),null,{default:ao(()=>[Ee(q(ve(ko)),1)]),_:1}))],8,Ay))}},[["styles",[Sy]],["__scopeId","data-v-2137ef2a"]])},Symbol.toStringTag,{value:"Module"})),Iy=".ssb-frame[data-v-dd1a47ca]{width:100%;height:100%;position:relative;background:#0d1117}.ssb-canvas[data-v-dd1a47ca]{width:100%;height:100%;position:relative}.ssb-status[data-v-dd1a47ca]{position:absolute;bottom:8px;left:12px;background:#0d1117eb;color:#86efac;border:1px solid #30363d;font:11px ui-monospace,monospace;padding:5px 10px;border-radius:4px;z-index:2}",Dy={class:"ssb-frame"},Gy={key:0,class:"ssb-status"},Lc=.1,jy=tt({__name:"SemanticSunburst",props:{tree:{type:Object,required:!0},colorMap:{type:Object,default:()=>({})},centerLabel:{type:String,default:""},depthLabels:{type:Array,default:()=>[]},maxDepth:{type:Number,default:3}},setup(e){const t=e,o=H(null),n=H("");let a=null,s=null;function r(i){let c=i;for(;c.depth>1;)c=c.parent;const u=c.depth===1?t.colorMap[c.data.code]||"#888":"#334155",f=i.depth===1?0:i.depth===2?.18:.34;if(f===0)return u;const $=u.replace("#",""),_=parseInt($.slice(0,2),16),O=parseInt($.slice(2,4),16),L=parseInt($.slice(4,6),16),G=Math.round(_+(255-_)*f),A=Math.round(O+(255-O)*f),k=Math.round(L+(255-L)*f);return`rgb(${G},${A},${k})`}function l(){const i=window.d3;if(!i){n.value="D3 not loaded — refresh page";return}const c=o.value;if(!c||!t.tree)return;c.innerHTML="";const u=c.clientWidth||720,f=c.clientHeight||600,$=Math.min(u,f)/2-10,_=i.hierarchy(t.tree).sum(S=>S.value||0).sort((S,W)=>W.value-S.value);i.partition().size([2*Math.PI,$])(_);const O=i.arc().startAngle(S=>S.x0).endAngle(S=>S.x1).padAngle(S=>Math.min((S.x1-S.x0)/2,.004)).padRadius($/2).innerRadius(S=>S.y0).outerRadius(S=>Math.max(S.y0,S.y1-1.5)),L=i.select(c).append("svg").attr("viewBox",[-u/2,-f/2,u,f]).attr("width",u).attr("height",f).style("font","10px system-ui").style("background","transparent").style("cursor","grab");a=L.node();const G=L.append("g");G.append("text").attr("text-anchor","middle").attr("dominant-baseline","middle").style("fill","#c9d1d9").style("font-size","12px").style("font-weight","600").style("pointer-events","none").text(t.centerLabel);const A=i.select(c).append("div").style("position","absolute").style("pointer-events","none").style("display","none").style("background","rgba(13,17,23,0.95)").style("color","#c9d1d9").style("border","1px solid #30363d").style("border-radius","6px").style("padding","8px 12px").style("font","12px system-ui").style("z-index","10").style("max-width","260px"),k=_.descendants().filter(S=>S.depth>0&&S.depth<=t.maxDepth),b=G.append("g").selectAll("path").data(k).join("path").attr("fill",S=>r(S)).attr("fill-opacity",S=>S.depth===1?.92:.7).attr("stroke","#0d1117").attr("stroke-width",.5).attr("d",O).style("cursor","pointer"),m=k.filter(S=>S.depth===1&&S.x1-S.x0>Lc),P=G.append("g").attr("pointer-events","none").selectAll("text").data(m).join("text").attr("transform",S=>{const W=(S.x0+S.x1)/2*180/Math.PI-90,X=(S.y0+S.y1)/2;return`rotate(${W}) translate(${X},0) rotate(${W<90||W>270?0:180})`}).attr("dy","0.35em").attr("text-anchor","middle").style("fill","#ffffff").style("font-size","11px").style("font-weight","700").style("paint-order","stroke").style("stroke","rgba(13,17,23,0.65)").style("stroke-width","2.5px").text(S=>(S.data.name||"").replace(" Peoples","").replace(" People",""));b.on("mousemove",(S,W)=>{const X=t.depthLabels[W.depth]||"";A.style("display","block").style("left",S.offsetX+14+"px").style("top",S.offsetY-10+"px").html(`<b>${W.data.name}</b><br><span style="color:#6b7280">${X} · ${W.value.toLocaleString()} entries</span>`)}).on("mouseleave",()=>A.style("display","none"));const F=i.zoom().scaleExtent([.5,12]).wheelDelta(S=>-S.deltaY*(S.deltaMode?120:1)/500).on("zoom",S=>{G.attr("transform",S.transform);const W=S.transform.k;P.style("font-size",`${Math.max(9,11/W*1.1)}px`).style("display",X=>(X.x1-X.x0)*W>Lc?null:"none")});L.call(F).on("mousedown.cursor",()=>L.style("cursor","grabbing")).on("mouseup.cursor",()=>L.style("cursor","grab")).on("dblclick.zoom",null);const T=_.value;n.value=`${T.toLocaleString()} entries · scroll to zoom · drag to pan`}return Qe(()=>{if(l(),"ResizeObserver"in window&&o.value){let i=!1;s=new ResizeObserver(()=>{i||(i=!0,requestAnimationFrame(()=>{i=!1,l()}))}),s.observe(o.value)}}),rt(()=>{s==null||s.disconnect(),a&&a.remove()}),We(()=>t.tree,()=>l(),{deep:!1}),(i,c)=>(j(),U("div",Dy,[y("div",{ref_key:"container",ref:o,class:"ssb-canvas"},null,512),n.value?(j(),U("div",Gy,q(n.value),1)):he("",!0)]))}},[["styles",[Iy]],["__scopeId","data-v-dd1a47ca"]]),By=".profile[data-v-fe0c70ba]{width:100%;height:100%;position:relative;background:#0d1117;color:#c9d1d9;font-family:system-ui,-apple-system,sans-serif}.header-pill[data-v-fe0c70ba]{position:absolute;top:12px;left:12px;background:#0d1117eb;color:#c9d1d9;border:1px solid #30363d;font:11px system-ui;padding:6px 12px;border-radius:999px;z-index:2}.status[data-v-fe0c70ba]{position:absolute;bottom:12px;left:12px;background:#0d1117eb;color:#86efac;border:1px solid #30363d;font:11px ui-monospace,monospace;padding:6px 12px;border-radius:4px;z-index:2}.map-toolbar[data-v-fe0c70ba]{position:absolute;top:12px;right:12px;z-index:5;display:flex;flex-direction:column;gap:4px}.toolbar-btn.round[data-v-fe0c70ba]{width:36px;height:36px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#161b22;color:#8b949e;border:1px solid #30363d;cursor:pointer;box-shadow:0 3px 10px #0000004d}.toolbar-btn.round[data-v-fe0c70ba]:hover{background:#1c2333;color:#c9d1d9;border-color:#73a17f}.settings-wrap[data-v-fe0c70ba]{position:relative}.settings-panel[data-v-fe0c70ba]{position:absolute;top:calc(100% + 4px);right:0;background:#0d1117f7;color:#c9d1d9;border:1px solid #30363d;border-radius:8px;font:12px system-ui;padding:12px 16px;min-width:280px;max-width:380px;z-index:10}.settings-header[data-v-fe0c70ba]{font:600 11px ui-monospace,monospace;color:#c9d1d9;text-transform:uppercase;letter-spacing:.08em;padding:0 4px 8px;margin-bottom:6px;border-bottom:1px solid #21262d}.settings-src[data-v-fe0c70ba]{margin-bottom:8px}.settings-src-label[data-v-fe0c70ba]{font:600 9px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.settings-src-url[data-v-fe0c70ba]{font:10px ui-monospace,monospace;color:#6e7681;word-break:break-all;background:#161b22;border:1px solid #21262d;border-radius:3px;padding:3px 5px;margin-bottom:3px}.settings-fields[data-v-fe0c70ba]{display:flex;flex-wrap:wrap;gap:2px}.settings-field[data-v-fe0c70ba]{font:10px ui-monospace,monospace;background:#21262d;color:#c9d1d9;border-radius:3px;padding:1px 4px}",Uy={class:"profile"},Vy={class:"status"},zy={class:"map-toolbar"},Wy={class:"settings-wrap"},Hy={key:0,class:"settings-panel"},qy={class:"settings-src-label"},Ky={class:"settings-src-url"},Xy={class:"settings-fields"},Yy=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-d3-tree",setup(e){const t=H(null),o=H("Loading ROP hierarchy…"),n=H(!1);function a(){window.location.reload()}const s={A001:"#f59e0b",A017:"#94a3b8",A002:"#ef4444",A003:"#8b5cf6",A019:"#06b6d4",A004:"#f97316",A006:"#3b82f6",A007:"#10b981",A008:"#14b8a6",A009:"#6366f1",A010:"#22c55e",A005:"#ec4899",A012:"#a78bfa",A011:"#84cc16",A013:"#fb923c",A018:"#e11d48",A015:"#0ea5e9"},r=[{label:"ROP hierarchy",url:"rop-tree.json",fields:["code","name","clusters[].code","clusters[].name","clusters[].groups[].entries[]"]}];return Qe(async()=>{try{const i=await(await fetch(Dt("rop-tree.json"))).json();t.value={name:"PPLR",code:"root",children:i.map(u=>({name:u.name,code:u.code,children:u.clusters.map(f=>({name:f.name,code:f.code,children:f.groups.map($=>({name:$.name,code:$.code,value:$.entries.length}))}))}))};const c=i.reduce((u,f)=>u+f.clusters.reduce(($,_)=>$+_.groups.reduce((O,L)=>O+L.entries.length,0),0),0);o.value=`${c.toLocaleString()} entries · scroll to zoom · drag to pan`}catch(l){o.value=`Error: ${l.message}`}}),(l,i)=>(j(),U("div",Uy,[t.value?(j(),U(re,{key:1},[Be(jy,{tree:t.value,"color-map":s,"center-label":"PPLR","depth-labels":["","Affinity Bloc","People Cluster","PG (not rendered)"],"max-depth":2},null,8,["tree"]),i[3]||(i[3]=y("div",{class:"header-pill"},"ROP Hierarchy · Affinity Bloc → People Cluster · scroll to zoom",-1)),y("div",Vy,q(o.value),1),y("div",zy,[y("div",Wy,[y("button",{class:"toolbar-btn round",title:"Data sources",onClick:i[0]||(i[0]=c=>n.value=!n.value)},[...i[1]||(i[1]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor","stroke-width":"1.8"}),y("path",{d:"M19 12a7 7 0 0 0-.1-1.2l2-1.5-2-3.5-2.4 1a7 7 0 0 0-2.1-1.2L14 3h-4l-.4 2.6A7 7 0 0 0 7.5 6.8l-2.4-1-2 3.5 2 1.5A7 7 0 0 0 5 12c0 .4 0 .8.1 1.2l-2 1.5 2 3.5 2.4-1a7 7 0 0 0 2.1 1.2L10 21h4l.4-2.6a7 7 0 0 0 2.1-1.2l2.4 1 2-3.5-2-1.5c.06-.4.1-.8.1-1.2z",stroke:"currentColor","stroke-width":"1.6","stroke-linejoin":"round"})],-1)])]),n.value?(j(),U("div",Hy,[i[2]||(i[2]=y("div",{class:"settings-header"},"Data sources",-1)),(j(),U(re,null,xe(r,c=>y("div",{key:c.url,class:"settings-src"},[y("div",qy,q(c.label),1),y("div",Ky,q(c.url),1),y("div",Xy,[(j(!0),U(re,null,xe(c.fields,u=>(j(),U("span",{key:u,class:"settings-field"},q(u),1))),128))])])),64))])):he("",!0)])])],64)):(j(),Me(go,{key:0,label:"Loading ROP hierarchy",onRetry:a}))]))}},[["styles",[By]],["__scopeId","data-v-fe0c70ba"]])},Symbol.toStringTag,{value:"Module"})),Zy=".profile[data-v-9274ccb8]{width:100%;height:100%;position:relative}.map[data-v-9274ccb8]{width:100%;height:100%}.loading[data-v-9274ccb8]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f1216;color:#94a3b8;font:13px sans-serif;z-index:1}.status[data-v-9274ccb8]{position:absolute;bottom:12px;left:12px;background:#0d1117eb;color:#79c0ff;border:1px solid #30363d;font:11px ui-monospace,monospace;padding:6px 12px;border-radius:4px;z-index:2}.header-pill[data-v-9274ccb8]{position:absolute;top:12px;left:12px;background:#0d1117eb;color:#c9d1d9;border:1px solid #30363d;font:12px system-ui;padding:8px 14px;border-radius:999px;z-index:2}.map-toolbar[data-v-9274ccb8]{position:absolute;top:12px;right:12px;z-index:5;display:flex;flex-direction:column;gap:4px}.toolbar-btn.round[data-v-9274ccb8]{width:36px;height:36px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#161b22;color:#8b949e;border:1px solid #30363d;cursor:pointer;box-shadow:0 3px 10px #0000004d}.toolbar-btn.round[data-v-9274ccb8]:hover{background:#1c2333;color:#c9d1d9;border-color:#73a17f}.settings-wrap[data-v-9274ccb8]{position:relative}.settings-panel[data-v-9274ccb8]{position:absolute;top:calc(100% + 4px);right:0;background:#0d1117f7;color:#c9d1d9;border:1px solid #30363d;border-radius:8px;font:12px system-ui;padding:12px 16px;min-width:320px;max-width:420px;z-index:10}.settings-header[data-v-9274ccb8]{font:600 11px ui-monospace,monospace;color:#c9d1d9;text-transform:uppercase;letter-spacing:.08em;padding:0 4px 8px;margin-bottom:6px;border-bottom:1px solid #21262d}.settings-src[data-v-9274ccb8]{margin-bottom:8px}.settings-src-label[data-v-9274ccb8]{font:600 9px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.settings-src-url[data-v-9274ccb8]{font:10px ui-monospace,monospace;color:#6e7681;word-break:break-all;background:#161b22;border:1px solid #21262d;border-radius:3px;padding:3px 5px;margin-bottom:3px}.settings-fields[data-v-9274ccb8]{display:flex;flex-wrap:wrap;gap:2px}.settings-field[data-v-9274ccb8]{font:10px ui-monospace,monospace;background:#21262d;color:#c9d1d9;border-radius:3px;padding:1px 4px}",Jy={class:"profile"},Qy={class:"status"},ev={class:"map-toolbar"},tv={class:"settings-wrap"},ov={key:0,class:"settings-panel"},nv={class:"settings-src-label"},av={class:"settings-src-url"},sv={class:"settings-fields"},rv=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-pins",setup(e){const t=Oe("mapboxToken"),o=H(null),n=H("Loading…"),a=H(!1);function s(){window.location.reload()}const r=H(!1),l=[{label:"PG pins (PG-in-country)",url:"pg-points.json",fields:["code","name","country","iso3","rop1–3","rop25","imb","jp","wcd","religion","language","pop"]},{label:"Country polygons (live)",url:"PPLR FeatureServer · aCountry",fields:["GENCalpha3","ISOalpha2","CtryNm","ctryNmDisp"]}],{map:i,isMapReady:c,initializeMap:u,destroy:f}=wo({containerRef:o,accessToken:t.value,style:"ink",center:[25,18],zoom:1.6});return Qe(async()=>{await u(),xo(i.value),i.value.on("load",async()=>{try{n.value="Adding country polygons…",await Gt(i.value),n.value="Adding PG pins…";const{fc:$,pinLayerId:_}=await vc(i.value);i.value.on("click",_,O=>{const L=O.features[0];new(to(i.value)).Popup({maxWidth:"340px"}).setLngLat(L.geometry.coordinates).setHTML(Vs(L.properties)).addTo(i.value)}),n.value=`Ready · ${$.features.length.toLocaleString("en-US")} PG-in-country pins · click any pin`,a.value=!0}catch($){n.value=`Error: ${$.message}`}})}),rt(()=>f()),($,_)=>(j(),U("div",Jy,[!ve(c)||!a.value?(j(),Me(go,{key:0,label:n.value,onRetry:s},null,8,["label"])):he("",!0),y("div",{ref_key:"mapContainer",ref:o,class:"map"},null,512),y("div",Qy,q(n.value),1),_[3]||(_[3]=y("div",{class:"header-pill"},"All PG-in-country pins · click for cross-system IDs",-1)),y("div",ev,[y("div",tv,[y("button",{class:"toolbar-btn round",title:"Data sources",onClick:_[0]||(_[0]=O=>r.value=!r.value)},[..._[1]||(_[1]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor","stroke-width":"1.8"}),y("path",{d:"M19 12a7 7 0 0 0-.1-1.2l2-1.5-2-3.5-2.4 1a7 7 0 0 0-2.1-1.2L14 3h-4l-.4 2.6A7 7 0 0 0 7.5 6.8l-2.4-1-2 3.5 2 1.5A7 7 0 0 0 5 12c0 .4 0 .8.1 1.2l-2 1.5 2 3.5 2.4-1a7 7 0 0 0 2.1 1.2L10 21h4l.4-2.6a7 7 0 0 0 2.1-1.2l2.4 1 2-3.5-2-1.5c.06-.4.1-.8.1-1.2z",stroke:"currentColor","stroke-width":"1.6","stroke-linejoin":"round"})],-1)])]),r.value?(j(),U("div",ov,[_[2]||(_[2]=y("div",{class:"settings-header"},"Data sources",-1)),(j(),U(re,null,xe(l,O=>y("div",{key:O.url,class:"settings-src"},[y("div",nv,q(O.label),1),y("div",av,q(O.url),1),y("div",sv,[(j(!0),U(re,null,xe(O.fields,L=>(j(),U("span",{key:L,class:"settings-field"},q(L),1))),128))])])),64))])):he("",!0)])]),(j(),Me(Ot("style"),null,{default:ao(()=>[Ee(q(ve(ko)),1)]),_:1}))]))}},[["styles",[Zy]],["__scopeId","data-v-9274ccb8"]])},Symbol.toStringTag,{value:"Module"})),lv=".dsd-wrap[data-v-0c848f68]{position:relative}.toolbar-btn.round[data-v-0c848f68]{width:36px;height:36px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#161b22;color:#8b949e;border:1px solid #30363d;cursor:pointer;box-shadow:0 3px 10px #0000004d}.toolbar-btn.round[data-v-0c848f68]:hover{background:#1c2333;color:#c9d1d9;border-color:#73a17f}.dsd-panel[data-v-0c848f68]{position:absolute;top:calc(100% + 4px);right:0;background:#0d1117f7;color:#c9d1d9;border:1px solid #30363d;border-radius:8px;font:12px system-ui;padding:12px 16px;min-width:320px;max-width:420px;max-height:60vh;overflow-y:auto;z-index:10}.dsd-header[data-v-0c848f68]{font:600 11px ui-monospace,monospace;color:#c9d1d9;text-transform:uppercase;letter-spacing:.08em;padding:0 4px 8px;margin-bottom:6px;border-bottom:1px solid #21262d}.dsd-src[data-v-0c848f68]{margin-bottom:8px}.dsd-src[data-v-0c848f68]:last-child{margin-bottom:0}.dsd-src-label[data-v-0c848f68]{font:600 9px ui-monospace,monospace;color:#73a17f;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.dsd-src-url[data-v-0c848f68]{font:10px ui-monospace,monospace;color:#6e7681;word-break:break-all;background:#161b22;border:1px solid #21262d;border-radius:3px;padding:3px 5px;margin-bottom:3px}.dsd-fields[data-v-0c848f68]{display:flex;flex-wrap:wrap;gap:2px}.dsd-field[data-v-0c848f68]{font:10px ui-monospace,monospace;background:#21262d;color:#c9d1d9;border-radius:3px;padding:1px 4px}",iv={class:"dsd-wrap"},cv={key:0,class:"dsd-panel"},dv={class:"dsd-src-label"},pv={class:"dsd-src-url"},uv={key:0,class:"dsd-fields"},Pc=tt({__name:"DataSourcesDropdown",props:{sources:{type:Array,default:()=>[]}},setup(e){const t=H(!1);function o(){t.value=!t.value}return(n,a)=>(j(),U("div",iv,[y("button",{class:"toolbar-btn round",type:"button",title:"Data sources",onClick:o},[...a[0]||(a[0]=[y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[y("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor","stroke-width":"1.8"}),y("path",{d:"M19 12a7 7 0 0 0-.1-1.2l2-1.5-2-3.5-2.4 1a7 7 0 0 0-2.1-1.2L14 3h-4l-.4 2.6A7 7 0 0 0 7.5 6.8l-2.4-1-2 3.5 2 1.5A7 7 0 0 0 5 12c0 .4 0 .8.1 1.2l-2 1.5 2 3.5 2.4-1a7 7 0 0 0 2.1 1.2L10 21h4l.4-2.6a7 7 0 0 0 2.1-1.2l2.4 1 2-3.5-2-1.5c.06-.4.1-.8.1-1.2z",stroke:"currentColor","stroke-width":"1.6","stroke-linejoin":"round"})],-1)])]),t.value?(j(),U("div",cv,[a[1]||(a[1]=y("div",{class:"dsd-header"},"Data sources",-1)),(j(!0),U(re,null,xe(e.sources,s=>{var r;return j(),U("div",{key:s.url,class:"dsd-src"},[y("div",dv,q(s.label),1),y("div",pv,q(s.url),1),(r=s.fields)!=null&&r.length?(j(),U("div",uv,[(j(!0),U(re,null,xe(s.fields,l=>(j(),U("span",{key:l,class:"dsd-field"},q(l),1))),128))])):he("",!0)])}),128))])):he("",!0)]))}},[["styles",[lv]],["__scopeId","data-v-0c848f68"]]),gv=".profile[data-v-ce28047e]{width:100%;height:100%;position:relative}.map[data-v-ce28047e]{width:100%;height:100%}.loading[data-v-ce28047e]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f1216;color:#94a3b8;font:13px sans-serif;z-index:1}.status[data-v-ce28047e]{position:absolute;bottom:12px;left:12px;background:#0d1117eb;color:#fcd34d;border:1px solid #30363d;font:11px ui-monospace,monospace;padding:6px 12px;border-radius:4px;z-index:2}.header-pill[data-v-ce28047e]{position:absolute;top:12px;left:12px;background:#0d1117eb;color:#c9d1d9;border:1px solid #30363d;font:12px system-ui;padding:8px 14px;border-radius:999px;z-index:2}.legend[data-v-ce28047e]{position:absolute;top:56px;right:12px;z-index:2;background:#0d1117f0;color:#c9d1d9;border:1px solid #30363d;border-radius:6px;padding:10px 14px;min-width:160px}.legend .title[data-v-ce28047e]{font:600 11px system-ui;color:#fcd34d;margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.legend .row[data-v-ce28047e]{display:flex;align-items:center;gap:8px;font:11px system-ui;padding:2px 0}.legend .dot[data-v-ce28047e]{width:12px;height:12px;border-radius:50%}.map-toolbar[data-v-ce28047e]{position:absolute;top:12px;right:12px;z-index:5}",fv={class:"profile"},hv={class:"status"},mv={class:"legend"},$v={class:"map-toolbar"},bv=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-rosetta-cards",setup(e){const t=[{label:"PG pins (PG-in-country)",url:"pg-points.json",fields:["code","name","country","iso3","rop25","imb","jp","wcd","rosetta"]},{label:"Rosetta sample (5 PGs)",url:"rosetta-sample.json",fields:["joshuaProjectCode","imb","wcd","name","country","language"]}],o=Oe("mapboxToken"),n=H(null),a=H("Loading…"),s=H(!1);function r(){window.location.reload()}const{map:l,isMapReady:i,initializeMap:c,destroy:u}=wo({containerRef:n,accessToken:o.value,style:"ink",center:[50,22],zoom:1.8});Qe(async()=>{await c(),xo(l.value),l.value.on("load",async()=>{try{a.value="Loading PG data…",await Gt(l.value),a.value="Loading PG pins + Rosetta sample…";const[$,_]=await Promise.all([Us("pg-points.json"),Us("rosetta-sample.json")]),O=new Set(_.map(G=>String(G.joshuaProjectCode||"")));$.features.forEach(G=>{G.properties.rosetta=O.has(String(G.properties.jp||""))?1:0;const A=E=>E!=null&&E!=="None"&&E!==""&&E!=="*",k=A(G.properties.jp),b=A(G.properties.imb),m=A(G.properties.wcd);G.properties.idTier=k&&b&&m?"all":k&&b?"jp_imb":b?"imb":k?"jp":"none"}),l.value.addSource("pgs",{type:"geojson",data:$}),l.value.addLayer({id:"pgs-pin",type:"circle",source:"pgs",filter:["==",["get","rosetta"],0],paint:{"circle-color":["match",["get","idTier"],"all","#fbbf24","jp_imb","#3b82f6","imb","#a78bfa","jp","#ec4899","#6b7280"],"circle-radius":["interpolate",["linear"],["zoom"],1,2,6,5,12,8],"circle-stroke-color":"#0d1117","circle-stroke-width":.8,"circle-opacity":.85}}),l.value.addLayer({id:"rosetta-pin",type:"circle",source:"pgs",filter:["==",["get","rosetta"],1],paint:{"circle-color":"#fbbf24","circle-radius":["interpolate",["linear"],["zoom"],1,4,6,7,12,11],"circle-stroke-color":"#fbbf24","circle-stroke-width":1.5,"circle-stroke-opacity":.5,"circle-opacity":.95}});const L=G=>{const A=G.features[0],k=A.properties,b=T=>T!=null&&T!=="None"&&T!==""&&T!=="*",m=_.find(T=>String(T.joshuaProjectCode||"")===String(k.jp||"")),E=[!b(k.jp)&&"JoshuaProject",!b(k.imb)&&"IMB People",!b(k.wcd)&&"WCD"].filter(Boolean),P=m?'<tr><td>Rosetta ★</td><td><b style="color:#d97706">★ sample PG</b></td></tr>':"",F=E.length?`<tr><td colspan="2" style="padding-top:6px;font-size:10px;color:#6b7280;font-style:italic">
|
||
${E.join(", ")} ID${E.length>1?"s":""} not yet cross-mapped in PPLR — empty rows are a data gap, not an error.
|
||
</td></tr>`:"";new(to(l.value)).Popup({maxWidth:"360px"}).setLngLat(A.geometry.coordinates).setHTML(Vs(k,P+F)).addTo(l.value)};l.value.on("click","pgs-pin",L),l.value.on("click","rosetta-pin",L),l.value.on("mouseenter","pgs-pin",()=>l.value.getCanvas().style.cursor="pointer"),l.value.on("mouseleave","pgs-pin",()=>l.value.getCanvas().style.cursor=""),l.value.on("mouseenter","rosetta-pin",()=>l.value.getCanvas().style.cursor="pointer"),l.value.on("mouseleave","rosetta-pin",()=>l.value.getCanvas().style.cursor=""),a.value=`Ready · ${$.features.length} pins · ${O.size} Rosetta samples (gold ★)`,s.value=!0}catch($){a.value=`Error: ${$.message}`}})}),rt(()=>u());const f=[{color:"#fbbf24",label:"JP + IMB + WCD all"},{color:"#3b82f6",label:"JP + IMB"},{color:"#a78bfa",label:"IMB only"},{color:"#ec4899",label:"JP only"},{color:"#6b7280",label:"neither"}];return($,_)=>(j(),U("div",fv,[!ve(i)||!s.value?(j(),Me(go,{key:0,label:a.value,onRetry:r},null,8,["label"])):he("",!0),y("div",{ref_key:"mapContainer",ref:n,class:"map"},null,512),y("div",hv,q(a.value),1),_[1]||(_[1]=y("div",{class:"header-pill"},"Cross-system ID Rosetta · color = which IDs exist · ★ = sample row",-1)),y("div",mv,[_[0]||(_[0]=y("div",{class:"title"},"ID coverage",-1)),(j(),U(re,null,xe(f,O=>y("div",{key:O.label,class:"row"},[y("span",{class:"dot",style:at({background:O.color})},null,4),Ee(q(O.label),1)])),64))]),y("div",$v,[Be(Pc,{sources:t})]),(j(),Me(Ot("style"),null,{default:ao(()=>[Ee(q(ve(ko)),1)]),_:1}))]))}},[["styles",[gv]],["__scopeId","data-v-ce28047e"]])},Symbol.toStringTag,{value:"Module"})),_v=".profile[data-v-b6e46d06]{width:100%;height:100%;position:relative}.map[data-v-b6e46d06]{width:100%;height:100%}.loading[data-v-b6e46d06]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f1216;color:#94a3b8;font:13px sans-serif;z-index:1}.status[data-v-b6e46d06]{position:absolute;bottom:12px;left:12px;background:#0d1117eb;color:#86efac;border:1px solid #30363d;font:11px ui-monospace,monospace;padding:6px 12px;border-radius:4px;z-index:2}.header-pill[data-v-b6e46d06]{position:absolute;top:12px;left:12px;background:#0d1117eb;color:#c9d1d9;border:1px solid #30363d;font:12px system-ui;padding:8px 14px;border-radius:999px;z-index:2}.legend[data-v-b6e46d06]{position:absolute;top:56px;right:12px;z-index:2;background:#0d1117f0;color:#c9d1d9;border:1px solid #30363d;border-radius:6px;padding:8px 12px;min-width:200px}.map-toolbar[data-v-b6e46d06]{position:absolute;top:12px;right:12px;z-index:5}.legend .title[data-v-b6e46d06]{font:600 10px system-ui;color:#86efac;margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.legend .bar[data-v-b6e46d06]{display:flex;height:22px;border-radius:4px;overflow:hidden;border:1px solid #30363d}.legend .seg[data-v-b6e46d06]{flex:1;display:flex;align-items:center;justify-content:center;font:10px ui-monospace,monospace;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}",yv={class:"profile"},vv={class:"status"},xv={class:"legend"},wv={class:"bar"},kv={key:0},Lv={class:"map-toolbar"},Pv=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-coverage",setup(e){const t=[{label:"PG pins (PG-in-country)",url:"pg-points.json",fields:["code","iso3","country","n_en…n_de (17 locale name fields)"]},{label:"Country polygons (live)",url:"PPLR FeatureServer · aCountry",fields:["GENCalpha3","ISOalpha2","CtryNm","ctryNmDisp"]}],o=Oe("mapboxToken"),n=H(null),a=H("Loading…"),s=H(!1);function r(){window.location.reload()}const{map:l,isMapReady:i,initializeMap:c,destroy:u}=wo({containerRef:n,accessToken:o.value,style:"ink",center:[25,18],zoom:1.6}),f=new Map;async function $(){const L=await fetch(Dt("coverage.json"));if(!L.ok)throw new Error(`HTTP ${L.status}`);const G=await L.json();for(const[A,k]of Object.entries(G))f.set(A,{pgCount:k.pgCount,localeSum:k.localeSum,sampleN:k.pgCount})}Qe(async()=>{await c(),xo(l.value),l.value.on("load",async()=>{try{a.value="Loading per-country coverage…",await $(),a.value="Loading country polygons…";const{fc:L,sourceId:G}=await Gt(l.value,{fillOpacity:0,blocking:!0});L.features.forEach(k=>{const b=k.properties.GENCalpha3,m=b?f.get(b):null;k.properties.avgFilled=m?m.localeSum/m.sampleN:null,k.properties.pgCount=m?m.pgCount:0}),l.value.getSource(G).setData(L),typeof window<"u"&&(window.__pplrCoverage=()=>{var k;return{polygons:L.features.length,matched:L.features.filter(b=>b.properties.avgFilled!=null).length,sampleUnmatched:L.features.filter(b=>b.properties.avgFilled==null).slice(0,5).map(b=>b.properties.GENCalpha3),rendered:(k=l.value)!=null&&k.getLayer("choropleth")?l.value.queryRenderedFeatures({layers:["choropleth"]}).length:0}}),l.value.addLayer({id:"choropleth",type:"fill",source:G,paint:{"fill-color":["case",["==",["get","avgFilled"],null],"rgba(31,41,55,0.4)",["interpolate",["linear"],["get","avgFilled"],0,"#7f1d1d",4,"#dc2626",8,"#f59e0b",12,"#84cc16",17,"#22c55e"]],"fill-opacity":.7}},`${G}-line`),l.value.on("click","choropleth",k=>{const b=k.features[0].properties,m=`<div class="pplr-popup">
|
||
<h3>${b.CtryNm||b.ctryNmDisp||"—"}<small>${b.GENCalpha3||b.ISOalpha2||"?"}</small></h3>
|
||
<table>
|
||
<tr><td>PG count</td><td><b>${b.pgCount||0}</b></td></tr>
|
||
<tr><td>Avg locales filled</td><td>
|
||
<b>${b.avgFilled!=null?b.avgFilled.toFixed(1):"—"}</b> / 17</td></tr>
|
||
</table>
|
||
</div>`;new(to(l.value)).Popup({maxWidth:"300px"}).setLngLat(k.lngLat).setHTML(m).addTo(l.value)}),a.value="Adding PG pins on top…";const{pinLayerId:A}=await vc(l.value,{circleColor:"#fef3c7"});l.value.on("click",A,k=>{const b=k.features[0];new(to(l.value)).Popup({maxWidth:"320px"}).setLngLat(b.geometry.coordinates).setHTML(Vs(b.properties)).addTo(l.value)}),a.value=`Ready · ${f.size} countries colored by avg translation locales / 17 (all ${[...f.values()].reduce((k,b)=>k+b.pgCount,0).toLocaleString("en-US")} PG-in-country rows)`,s.value=!0}catch(L){a.value=`Error: ${L.message}`}})}),rt(()=>u());const _=[{stop:"0",color:"#7f1d1d",label:"0 locales"},{stop:"4",color:"#dc2626",label:""},{stop:"8",color:"#f59e0b",label:"8"},{stop:"12",color:"#84cc16",label:""},{stop:"17",color:"#22c55e",label:"17/17"}],O=ko+`
|
||
.pplr-popup h3 small { font-weight: 400; color: #6b7280; margin-left: 6px; font-size: 11px; font-family: ui-monospace, monospace; }
|
||
`;return(L,G)=>(j(),U("div",yv,[!ve(i)||!s.value?(j(),Me(go,{key:0,label:a.value,onRetry:r},null,8,["label"])):he("",!0),y("div",{ref_key:"mapContainer",ref:n,class:"map"},null,512),y("div",vv,q(a.value),1),G[1]||(G[1]=y("div",{class:"header-pill"},"Translation coverage · choropleth = avg locales filled per country · click PG pin or country",-1)),y("div",xv,[G[0]||(G[0]=y("div",{class:"title"},"Avg locales / 17",-1)),y("div",wv,[(j(),U(re,null,xe(_,A=>y("div",{key:A.stop,class:"seg",style:at({background:A.color})},[A.label?(j(),U("span",kv,q(A.label),1)):he("",!0)],4)),64))])]),y("div",Lv,[Be(Pc,{sources:t})]),(j(),Me(Ot("style"),null,{default:ao(()=>[Ee(q(O))]),_:1}))]))}},[["styles",[_v]],["__scopeId","data-v-b6e46d06"]])},Symbol.toStringTag,{value:"Module"})),Sv=".pplr-index[data-v-8227304a]{width:100%;height:100%;overflow:auto;background:#0d1117;color:#c9d1d9;font-family:system-ui,-apple-system,sans-serif;padding:32px 40px;box-sizing:border-box}header h1[data-v-8227304a]{font-size:22px;font-weight:500;color:#58a6ff;margin:0 0 8px}header p[data-v-8227304a]{font-size:13px;color:#8b949e;line-height:1.6;max-width:720px}header a[data-v-8227304a]{color:#79c0ff}.grid[data-v-8227304a]{margin-top:28px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.tile[data-v-8227304a]{display:block;text-align:left;cursor:pointer;background:#161b22;border:1px solid #30363d;border-radius:8px;padding:16px 18px;color:inherit;font:inherit;transition:border-color .15s,background .15s}.tile[data-v-8227304a]:hover{border-color:#58a6ff;background:#1c2128}.tile h2[data-v-8227304a]{font-size:14px;font-weight:600;color:#79c0ff;margin:0 0 6px}.tile p[data-v-8227304a]{font-size:12px;color:#8b949e;line-height:1.55;margin:0 0 10px}.tile code[data-v-8227304a]{font-family:ui-monospace,monospace;font-size:11px;color:#6e7681}footer[data-v-8227304a]{margin-top:28px;padding-top:14px;border-top:1px solid #21262d;font-size:11px;color:#6e7681}footer b[data-v-8227304a]{color:#c9d1d9}",Av={class:"pplr-index"},Ev={class:"grid"},Cv=["onClick"],Rv=Object.freeze(Object.defineProperty({__proto__:null,default:tt({__name:"pplr-index",setup(e){const t=[{id:"pplr-religion",title:"Religion distribution map",desc:"All 21k PG-in-country pins colored by primary religion group (9 groups: Christianity, Islam, Hinduism, Ethnoreligion, Buddhism, Judaism, Sikhism, Unaffiliated, Other). Country polygons underneath. Click any pin for detail."},{id:"pplr-rop-tree",title:"ROP hierarchy tree explorer",desc:"Split map + sidebar. Left panel: collapsible tree of 17 Affinity Blocs → 292 Clusters → 13,065 People Groups → PG-in-Country (21k entries). Click any node to filter map pins and fly the viewport. Pins colored by Affinity Bloc."},{id:"pplr-language-families",title:"Language families map",desc:"21k PG-in-country pins colored by PPLR ethnolinguistic family (71 families, ~100% coverage via GeoID join to aROP3byCountry). Top 25 families (85% of pins) get distinct colors; remainder shown grey."},{id:"pplr-semantic-trees",title:"Semantic tree reference",desc:"Left-to-right reference tables for the three PPLR classification trees (Lang, ROP, Admin). Shows real API field names per level per system (PPLR / Joshua Project / IMB / WCD)."},{id:"pplr-d3-tree",title:"ROP sunburst (D3)",desc:"D3 zoomable sunburst of the full ROP hierarchy. Inner ring: 17 Affinity Blocs; middle ring: 292 Clusters; outer ring: 13k People Groups. Click any arc to zoom in; click center to zoom out. Colors match the tree explorer."},{id:"pplr-pins",title:"All PG-in-country pins",desc:"World Mapbox map with country polygons + every PG-in-country pin. Click any pin for full Rosetta popup. Validates lat/long completeness and global PG distribution."},{id:"pplr-translations",title:"Translations on the map (17 locales)",desc:'Same map; click any pin to see the PG name in English + 17 IMB locales side-by-side. Surfaces machine-translation quality issues (e.g. Asas → "basics" in 17 languages).'},{id:"pplr-rosetta-cards",title:"Cross-system IDs colored on the map",desc:"Pin color encodes which cross-system IDs exist (gold = JP+IMB+WCD, blue = JP+IMB, etc.). The 5 Rosetta sample PGs show as gold ★. Click any pin for the full Rosetta table."},{id:"pplr-coverage",title:"Country choropleth — translation coverage",desc:"Country polygons shaded by avg locales filled per PG (red 0/17 → green 17/17). PG pins overlaid on top. Click a country for stats; click a pin for the PG record."}];function o(n){window.dispatchEvent(new CustomEvent("pplr-select-profile",{detail:{profile:n},bubbles:!0,composed:!0}))}return(n,a)=>(j(),U("div",Av,[a[0]||(a[0]=y("header",null,[y("h1",null,"PPLR data validation"),y("p",null,[Ee("Many small displays — each answers one validation question about the PPLR people-group data. Source: "),y("a",{href:"https://services2.arcgis.com/S4ydGgujXcif36k3",target:"_blank"},"PPLR ArcGIS FeatureServer"),Ee(" · 6 parquets · 48,174 PG records · 17 locales.")])],-1)),y("section",Ev,[(j(),U(re,null,xe(t,s=>y("button",{key:s.id,onClick:r=>o(s.id),class:"tile"},[y("h2",null,q(s.title),1),y("p",null,q(s.desc),1),y("code",null,q(s.id),1)],8,Cv)),64))]),a[1]||(a[1]=y("footer",null,[y("p",null,[Ee("Click a tile, or use the topbar tabs above to switch displays. Click "),y("b",null,"Overview"),Ee(" top-right to see every slot at once.")])],-1))]))}},[["styles",[Sv]],["__scopeId","data-v-8227304a"]])},Symbol.toStringTag,{value:"Module"}))})();
|