1){for(const o of e)if(o.type!==no){t=o;break}}return t}function Zi(e){if(!Ia(e))return Ra(e.type)&&e.children?Fp(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&&Re(o.default))return o.default()}}function zs(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;zs(Ra(o.type)&&Zi(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 zn(e,t){return Re(e)?rt({name:e.name},t,{setup:e}):e}function Bs(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Ji(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Oa=new WeakMap;function Bn(e,t,o,n,a=!1){if(Ce(e)){e.forEach((k,S)=>Bn(k,t&&(Ce(t)?t[S]:t),o,n,a));return}if(dn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Bn(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?Ha(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===Je?i.refs={}:i.refs,p=i.setupState,h=Ve(p),_=p===Je?ii:k=>Ji(u,k)?!1:He(h,k),x=(k,S)=>!(S&&Ji(u,S));if(c!=null&&c!==l){if(Qi(t),Qe(c))u[c]=null,_(c)&&(p[c]=null);else if(at(c)){const k=t;x(c,k.k)&&(c.value=null),k.k&&(u[k.k]=null)}}if(Re(l))rn(l,i,12,[r,u]);else{const k=Qe(l),S=at(l);if(k||S){const C=()=>{if(e.f){const m=k?_(l)?p[l]:u[l]:x()||!e.k?l.value:u[e.k];if(a)Ce(m)&&ys(m,s);else if(Ce(m))m.includes(s)||m.push(s);else if(k)u[l]=[s],_(l)&&(p[l]=u[l]);else{const g=[s];x(l,e.k)&&(l.value=g),e.k&&(u[e.k]=g)}}else k?(u[l]=r,_(l)&&(p[l]=r)):S&&(x(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const m=()=>{C(),Oa.delete(e)};m.id=-1,Oa.set(e,m),St(m,o)}else Qi(e),C()}}}function Qi(e){const t=Oa.get(e);t&&(t.flags|=8,Oa.delete(e))}const el=e=>e.nodeType===8;ya().requestIdleCallback,ya().cancelIdleCallback;function Ip(e,t){if(el(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(el(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const dn=e=>!!e.type.__asyncLoader;function Dp(e){Re(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:s,timeout:r,suspensible:i=!0,onError:l}=e;let c=null,u,p=0;const h=()=>(p++,c=null,_()),_=()=>{let x;return c||(x=c=t().catch(k=>{if(k=k instanceof Error?k:new Error(String(k)),l)return new Promise((S,C)=>{l(k,()=>S(h()),()=>C(k),p+1)});throw k}).then(k=>x!==c&&c?c:(k&&(k.__esModule||k[Symbol.toStringTag]==="Module")&&(k=k.default),u=k,k)))};return zn({name:"AsyncComponentWrapper",__asyncLoader:_,__asyncHydrate(x,k,S){const C=x.isConnected;let m=!1;(k.bu||(k.bu=[])).push(()=>m=!0);const g=()=>{m||!x.parentNode||C&&!x.isConnected||S()},d=s?()=>{const $=s(g,L=>Ip(x,L));$&&(k.bum||(k.bum=[])).push($)}:g;u?d():_().then(()=>!k.isUnmounted&&d())},get __asyncResolved(){return u},setup(){const x=_t;if(Bs(x),u)return()=>Fa(u,x);const k=$=>{c=null,Un($,x,13,!n)};if(i&&x.suspense||gn)return _().then($=>()=>Fa($,x)).catch($=>(k($),()=>n?ze(n,{error:$}):null));const S=ue(!1),C=ue(),m=ue(!!a);let g,d;return Ua(()=>{g!=null&&clearTimeout(g),d!=null&&clearTimeout(d)}),a&&(d=setTimeout(()=>{x.isUnmounted||(m.value=!1)},a)),r!=null&&(g=setTimeout(()=>{if(!x.isUnmounted&&!S.value&&!C.value){const $=new Error(`Async component timed out after ${r}ms.`);k($),C.value=$}},r)),_().then(()=>{x.isUnmounted||(S.value=!0,x.parent&&Ia(x.parent.vnode)&&x.parent.update())}).catch($=>{if(x.isUnmounted){c=null;return}k($),C.value=$}),()=>{if(S.value&&u)return Fa(u,x);if(C.value&&n)return ze(n,{error:C.value});if(o&&!m.value)return Fa(o,x)}}})}function Fa(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=ze(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Ia=e=>e.type.__isKeepAlive;function Up(e,t){tl(e,"a",t)}function Gp(e,t){tl(e,"da",t)}function tl(e,t,o=_t){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Da(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ia(a.parent.vnode)&&jp(n,t,o,a),a=a.parent}}function jp(e,t,o,n){const a=Da(t,e,n,!0);Ua(()=>{ys(n[t],a)},o)}function Da(e,t,o=_t,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{Qt();const i=Zn(o),l=qt(t,o,e,r);return i(),eo(),l});return n?a.unshift(s):a.push(s),s}}const mo=e=>(t,o=_t)=>{(!gn||e==="sp")&&Da(e,(...n)=>t(...n),o)},ol=mo("bm"),kt=mo("m"),zp=mo("bu"),Bp=mo("u"),Ft=mo("bum"),Ua=mo("um"),Vp=mo("sp"),qp=mo("rtg"),Hp=mo("rtc");function Wp(e,t=_t){Da("ec",e,t)}const Kp="components",nl=Symbol.for("v-ndc");function al(e){return Qe(e)?Yp(Kp,e,!1)||e:e||nl}function Yp(e,t,o=!0,n=!1){const a=$t||_t;if(a){const s=a.type;{const i=Il(s,!1);if(i&&(i===t||i===ft(t)||i===ba(ft(t))))return s}const r=sl(a[e]||s[e],t)||sl(a.appContext[e],t);return!r&&n?s:r}}function sl(e,t){return e&&(e[t]||e[ft(t)]||e[ba(ft(t))])}function st(e,t,o,n){let a;const s=o,r=Ce(e);if(r||Qe(e)){const i=r&&go(e);let l=!1,c=!1;i&&(l=!Ot(e),c=fo(e),e=wa(e)),a=new Array(e.length);for(let u=0,p=e.length;ut(i,l,void 0,s));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return ee(),ao(Oe,null,[ze("slot",c,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=$o.length;ee();let l;try{const c=r&&rl(r(o)),u=o.key||s||c&&c.key;l=ao(Oe,{key:(u&&!Rt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=$o.length;u>i;u--)tr();throw c}finally{r&&r._c&&(r._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function rl(e){return e.some(t=>Kn(t)?!(t.type===no||t.type===Oe&&!rl(t.children)):!0)?e:null}const qs=e=>e?Ml(e)?Ha(e):qs(e.parent):null,Vn=rt(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=>qs(e.parent),$root:e=>qs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ul(e),$forceUpdate:e=>e.f||(e.f=()=>{Is(e.update)}),$nextTick:e=>e.n||(e.n=Ho.bind(e.proxy)),$watch:e=>Tp.bind(e)}),Hs=(e,t)=>e!==Je&&!e.__isScriptSetup&&He(e,t),Xp={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:s,accessCache:r,type:i,appContext:l}=e;if(t[0]!=="$"){const h=r[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(Hs(n,t))return r[t]=1,n[t];if(a!==Je&&He(a,t))return r[t]=2,a[t];if(He(s,t))return r[t]=3,s[t];if(o!==Je&&He(o,t))return r[t]=4,o[t];Ws&&(r[t]=0)}}const c=Vn[t];let u,p;if(c)return t==="$attrs"&&vt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==Je&&He(o,t))return r[t]=4,o[t];if(p=l.config.globalProperties,He(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return Hs(a,t)?(a[t]=o,!0):n!==Je&&He(n,t)?(n[t]=o,!0):He(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}},i){let l;return!!(o[i]||e!==Je&&i[0]!=="$"&&He(e,i)||Hs(t,i)||He(s,i)||He(n,i)||He(Vn,i)||He(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:He(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function il(e){return Ce(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let Ws=!0;function Zp(e){const t=ul(e),o=e.proxy,n=e.ctx;Ws=!1,t.beforeCreate&&ll(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:h,beforeUpdate:_,updated:x,activated:k,deactivated:S,beforeDestroy:C,beforeUnmount:m,destroyed:g,unmounted:d,render:$,renderTracked:L,renderTriggered:v,errorCaptured:w,serverPrefetch:P,expose:H,inheritAttrs:M,components:j,directives:ae,filters:I}=t;if(c&&Jp(c,n,null),r)for(const O in r){const te=r[O];Re(te)&&(n[O]=te.bind(o))}if(a){const O=a.call(o,o);Ke(O)&&(e.data=Vo(O))}if(Ws=!0,s)for(const O in s){const te=s[O],U=Re(te)?te.bind(o,o):Re(te.get)?te.get.bind(o,o):Zt,R=!Re(te)&&Re(te.set)?te.set.bind(o):Zt,V=re({get:U,set:R});Object.defineProperty(n,O,{enumerable:!0,configurable:!0,get:()=>V.value,set:G=>V.value=G})}if(i)for(const O in i)cl(i[O],n,o,O);if(l){const O=Re(l)?l.call(o):l;Reflect.ownKeys(O).forEach(te=>{bt(te,O[te])})}u&&ll(u,e,"c");function B(O,te){Ce(te)?te.forEach(U=>O(U.bind(o))):te&&O(te.bind(o))}if(B(ol,p),B(kt,h),B(zp,_),B(Bp,x),B(Up,k),B(Gp,S),B(Wp,w),B(Hp,L),B(qp,v),B(Ft,m),B(Ua,d),B(Vp,P),Ce(H))if(H.length){const O=e.exposed||(e.exposed={});H.forEach(te=>{Object.defineProperty(O,te,{get:()=>o[te],set:U=>o[te]=U,enumerable:!0})})}else e.exposed||(e.exposed={});$&&e.render===Zt&&(e.render=$),M!=null&&(e.inheritAttrs=M),j&&(e.components=j),ae&&(e.directives=ae),P&&Bs(e)}function Jp(e,t,o=Zt){Ce(e)&&(e=Ks(e));for(const n in e){const a=e[n];let s;Ke(a)?"default"in a?s=Ne(a.from||n,a.default,!0):s=Ne(a.from||n):s=Ne(a),at(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function ll(e,t,o){qt(Ce(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function cl(e,t,o,n){let a=n.includes(".")?Wi(o,n):()=>o[n];if(Qe(e)){const s=t[e];Re(s)&&ct(a,s)}else if(Re(e))ct(a,e.bind(o));else if(Ke(e))if(Ce(e))e.forEach(s=>cl(s,t,o,n));else{const s=Re(e.handler)?e.handler.bind(o):t[e.handler];Re(s)&&ct(a,s,e)}}function ul(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,i=s.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Ga(l,c,r,!0)),Ga(l,t,r)),Ke(t)&&s.set(t,l),l}function Ga(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Ga(e,s,o,!0),a&&a.forEach(r=>Ga(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=Qp[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const Qp={data:dl,props:pl,emits:pl,methods:qn,computed:qn,beforeCreate:xt,created:xt,beforeMount:xt,mounted:xt,beforeUpdate:xt,updated:xt,beforeDestroy:xt,beforeUnmount:xt,destroyed:xt,unmounted:xt,activated:xt,deactivated:xt,errorCaptured:xt,serverPrefetch:xt,components:qn,directives:qn,watch:tg,provide:dl,inject:eg};function dl(e,t){return t?e?function(){return rt(Re(e)?e.call(this,this):e,Re(t)?t.call(this,this):t)}:t:e}function eg(e,t){return qn(Ks(e),Ks(t))}function Ks(e){if(Ce(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ft(t)}Modifiers`]||e[`${Mt(t)}Modifiers`];function sg(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Je;let a=o;const s=t.startsWith("update:"),r=s&&ag(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>Qe(u)?u.trim():u)),r.number&&(a=a.map(ks)));let i,l=n[i=vs(t)]||n[i=vs(ft(t))];!l&&s&&(l=n[i=vs(Mt(t))]),l&&qt(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,qt(c,e,6,a)}}const rg=new WeakMap;function fl(e,t,o=!1){const n=o?rg:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!Re(e)){const l=c=>{const u=fl(c,t,!0);u&&(i=!0,rt(r,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(Ke(e)&&n.set(e,null),null):(Ce(s)?s.forEach(l=>r[l]=null):rt(r,s),Ke(e)&&n.set(e,r),r)}function ja(e,t){return!e||!pa(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),He(e,t[0].toLowerCase()+t.slice(1))||He(e,Mt(t))||He(e,t))}function ax(){}function hl(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:p,data:h,setupState:_,ctx:x,inheritAttrs:k}=e,S=Na(e);let C,m;try{if(o.shapeFlag&4){const d=a||n,$=d;C=so(c.call($,d,u,p,_,h,x)),m=i}else{const d=t;C=so(d.length>1?d(p,{attrs:i,slots:r,emit:l}):d(p,null)),m=t.props?i:ig(i)}}catch(d){$o.length=0,Un(d,e,1),C=ze(no)}let g=C;if(m&&k!==!1){const d=Object.keys(m),{shapeFlag:$}=g;d.length&&$&7&&(s&&d.some(ga)&&(m=lg(m,s)),g=pn(g,m,!1,!0))}if(o.dirs&&(g=pn(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(o.dirs):o.dirs),o.transition){const d=Ra(g.type)&&Zi(g)||g;zs(d,o.transition)}return C=g,Na(S),C}const ig=e=>{let t;for(const o in e)(o==="class"||o==="style"||pa(o))&&((t||(t={}))[o]=e[o]);return t},lg=(e,t)=>{const o={};for(const n in e)(!ga(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function cg(e,t,o){const{props:n,children:a,component:s}=e,{props:r,children:i,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?ml(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(bl),yl=e=>Object.getPrototypeOf(e)===bl;function dg(e,t,o,n=!1){const a={},s=_l();e.propsDefaults=Object.create(null),vl(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:up(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function pg(e,t,o,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,i=Ve(a),[l]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let p=0;p{l=!0;const[h,_]=kl(p,t,!0);rt(r,h),_&&i.push(..._)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return Ke(e)&&n.set(e,nn),nn;if(Ce(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Zs=e=>Ce(e)?e.map(so):[so(e)],fg=(e,t,o)=>{if(t._n)return t;const n=un((...a)=>Zs(t(...a)),o);return n._c=!1,n},xl=(e,t,o)=>{const n=e._ctx;for(const a in e){if(Xs(a))continue;const s=e[a];if(Re(s))t[a]=fg(a,s,n);else if(s!=null){const r=Zs(s);t[a]=()=>r}}},Sl=(e,t)=>{const o=Zs(t);e.slots.default=()=>o},Ll=(e,t,o)=>{for(const n in t)(o||!Xs(n))&&(e[n]=t[n])},hg=(e,t,o)=>{const n=e.slots=_l();if(e.vnode.shapeFlag&32){const a=t._;a?(Ll(n,t,o),o&&di(n,"_",a,!0)):xl(t,n)}else t&&Sl(e,t)},mg=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=Je;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:Ll(a,t,o):(s=!t.$stable,xl(t,a)),r=t}else t&&(Sl(e,t),r={default:1});if(s)for(const i in a)!Xs(i)&&r[i]==null&&delete a[i]},St=vg;function $g(e){return bg(e)}function bg(e,t){const o=ya();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:h,setScopeId:_=Zt,insertStaticContent:x}=e,k=(y,E,A,z=null,Z=null,J=null,ie=void 0,ne=null,f=!!E.dynamicChildren)=>{if(y===E)return;y&&!Yn(y,E)&&(z=Le(y),G(y,Z,J,!0),y=null),E.patchFlag===-2&&(f=!1,E.dynamicChildren=null);const{type:b,ref:F,shapeFlag:X}=E;switch(b){case Hn:S(y,E,A,z);break;case no:C(y,E,A,z);break;case er:y==null&&m(E,A,z,ie);break;case Oe:j(y,E,A,z,Z,J,ie,ne,f);break;default:X&1?$(y,E,A,z,Z,J,ie,ne,f):X&6?ae(y,E,A,z,Z,J,ie,ne,f):(X&64||X&128)&&b.process(y,E,A,z,Z,J,ie,ne,f,pe)}F!=null&&Z?Bn(F,y&&y.ref,J,E||y,!E):F==null&&y&&y.ref!=null&&Bn(y.ref,null,J,y,!0)},S=(y,E,A,z)=>{if(y==null)n(E.el=i(E.children),A,z);else{const Z=E.el=y.el;E.children!==y.children&&c(Z,E.children)}},C=(y,E,A,z)=>{y==null?n(E.el=l(E.children||""),A,z):E.el=y.el},m=(y,E,A,z)=>{[y.el,y.anchor]=x(y.children,E,A,z,y.el,y.anchor)},g=({el:y,anchor:E},A,z)=>{let Z;for(;y&&y!==E;)Z=h(y),n(y,A,z),y=Z;n(E,A,z)},d=({el:y,anchor:E})=>{let A;for(;y&&y!==E;)A=h(y),a(y),y=A;a(E)},$=(y,E,A,z,Z,J,ie,ne,f)=>{if(E.type==="svg"?ie="svg":E.type==="math"&&(ie="mathml"),y==null)L(E,A,z,Z,J,ie,ne,f);else{const b=y.el&&y.el._isVueCE?y.el:null;try{b&&b._beginPatch(),P(y,E,Z,J,ie,ne,f)}finally{b&&b._endPatch()}}},L=(y,E,A,z,Z,J,ie,ne)=>{let f,b;const{props:F,shapeFlag:X,transition:ge,dirs:le}=y;if(f=y.el=r(y.type,J,F&&F.is,F),X&8?u(f,y.children):X&16&&w(y.children,f,null,z,Z,Js(y,J),ie,ne),le&&Wo(y,null,z,"created"),v(f,y,y.scopeId,ie,z),F){for(const K in F)K!=="value"&&!Cn(K)&&s(f,K,null,F[K],J,z);"value"in F&&s(f,"value",null,F.value,J),(b=F.onVnodeBeforeMount)&&ro(b,z,y)}le&&Wo(y,null,z,"beforeMount");const D=_g(Z,ge);D&&ge.beforeEnter(f),n(f,E,A),((b=F&&F.onVnodeMounted)||D||le)&&St(()=>{try{b&&ro(b,z,y),D&&ge.enter(f),le&&Wo(y,null,z,"mounted")}finally{}},Z)},v=(y,E,A,z,Z)=>{if(A&&_(y,A),z)for(let J=0;J{for(let b=f;b{const ne=E.el=y.el;let{patchFlag:f,dynamicChildren:b,dirs:F}=E;f|=y.patchFlag&16;const X=y.props||Je,ge=E.props||Je;let le;if(A&&Xo(A,!1),(le=ge.onVnodeBeforeUpdate)&&ro(le,A,E,y),F&&Wo(E,y,A,"beforeUpdate"),A&&Xo(A,!0),b&&(!y.dynamicChildren||y.dynamicChildren.length!==b.length)&&(f=0,ie=!1,b=null),(X.innerHTML&&ge.innerHTML==null||X.textContent&&ge.textContent==null)&&u(ne,""),b?H(y.dynamicChildren,b,ne,A,z,Js(E,Z),J):ie||te(y,E,ne,null,A,z,Js(E,Z),J,!1),f>0){if(f&16)M(ne,X,ge,A,Z);else if(f&2&&X.class!==ge.class&&s(ne,"class",null,ge.class,Z),f&4&&s(ne,"style",X.style,ge.style,Z),f&8){const D=E.dynamicProps;for(let K=0;K{le&&ro(le,A,E,y),F&&Wo(E,y,A,"updated")},z)},H=(y,E,A,z,Z,J,ie)=>{for(let ne=0;ne{if(E!==A){if(E!==Je)for(const J in E)!Cn(J)&&!(J in A)&&s(y,J,E[J],null,Z,z);for(const J in A){if(Cn(J))continue;const ie=A[J],ne=E[J];ie!==ne&&J!=="value"&&s(y,J,ne,ie,Z,z)}"value"in A&&s(y,"value",E.value,A.value,Z)}},j=(y,E,A,z,Z,J,ie,ne,f)=>{const b=E.el=y?y.el:i(""),F=E.anchor=y?y.anchor:i("");let{patchFlag:X,dynamicChildren:ge,slotScopeIds:le}=E;le&&(ne=ne?ne.concat(le):le),y==null?(n(b,A,z),n(F,A,z),w(E.children||[],A,F,Z,J,ie,ne,f)):X>0&&X&64&&ge&&y.dynamicChildren&&y.dynamicChildren.length===ge.length?(H(y.dynamicChildren,ge,A,Z,J,ie,ne),(E.key!=null||Z&&E===Z.subTree)&&Qs(y,E,!0)):te(y,E,A,F,Z,J,ie,ne,f)},ae=(y,E,A,z,Z,J,ie,ne,f)=>{E.slotScopeIds=ne,y==null?E.shapeFlag&512?Z.ctx.activate(E,A,z,ie,f):I(E,A,z,Z,J,ie,f):q(y,E,f)},I=(y,E,A,z,Z,J,ie)=>{const ne=y.component=Ag(y,z,Z);if(Ia(y)&&(ne.ctx.renderer=pe),Pg(ne,!1,ie),ne.asyncDep){if(Z&&Z.registerDep(ne,B,ie),!y.el){const f=ne.subTree=ze(no);C(null,f,E,A),y.placeholder=f.el}}else B(ne,y,E,A,Z,J,ie)},q=(y,E,A)=>{const z=E.component=y.component;if(cg(y,E,A))if(z.asyncDep&&!z.asyncResolved){O(z,E,A);return}else z.next=E,z.update();else E.el=y.el,z.vnode=E},B=(y,E,A,z,Z,J,ie)=>{const ne=()=>{if(y.isMounted){let{next:X,bu:ge,u:le,parent:D,vnode:K}=y;{const We=Al(y);if(We){X&&(X.el=K.el,O(y,X,ie)),We.asyncDep.then(()=>{St(()=>{y.isUnmounted||b()},Z)});return}}let ye=X,Ee;Xo(y,!1),X?(X.el=K.el,O(y,X,ie)):X=K,ge&&_a(ge),(Ee=X.props&&X.props.onVnodeBeforeUpdate)&&ro(Ee,D,X,K),Xo(y,!0);const Be=hl(y),Ze=y.subTree;y.subTree=Be,k(Ze,Be,p(Ze.el),Le(Ze),y,Z,J),X.el=Be.el,ye===null&&ug(y,Be.el),le&&St(le,Z),(Ee=X.props&&X.props.onVnodeUpdated)&&St(()=>ro(Ee,D,X,K),Z)}else{let X;const{el:ge,props:le}=E,{bm:D,m:K,parent:ye,root:Ee,type:Be}=y,Ze=dn(E);Xo(y,!1),D&&_a(D),!Ze&&(X=le&&le.onVnodeBeforeMount)&&ro(X,ye,E),Xo(y,!0);{Ee.ce&&Ee.ce._hasShadowRoot()&&Ee.ce._injectChildStyle(Be,y.parent?y.parent.type:void 0);const We=y.subTree=hl(y);k(null,We,A,z,y,Z,J),E.el=We.el}if(K&&St(K,Z),!Ze&&(X=le&&le.onVnodeMounted)){const We=E;St(()=>ro(X,ye,We),Z)}(E.shapeFlag&256||ye&&dn(ye.vnode)&&ye.vnode.shapeFlag&256)&&y.a&&St(y.a,Z),y.isMounted=!0,E=A=z=null}};y.scope.on();const f=y.effect=new yi(ne);y.scope.off();const b=y.update=f.run.bind(f),F=y.job=f.runIfDirty.bind(f);F.i=y,F.id=y.uid,f.scheduler=()=>Is(F),Xo(y,!0),b()},O=(y,E,A)=>{E.component=y;const z=y.vnode.props;y.vnode=E,y.next=null,pg(y,E.props,z,A),mg(y,E.children,A),Qt(),Bi(y),eo()},te=(y,E,A,z,Z,J,ie,ne,f=!1)=>{const b=y&&y.children,F=y?y.shapeFlag:0,X=E.children,{patchFlag:ge,shapeFlag:le}=E;if(ge>0){if(ge&128){R(b,X,A,z,Z,J,ie,ne,f);return}else if(ge&256){U(b,X,A,z,Z,J,ie,ne,f);return}}le&8?(F&16&&Ae(b,Z,J),X!==b&&u(A,X)):F&16?le&16?R(b,X,A,z,Z,J,ie,ne,f):Ae(b,Z,J,!0):(F&8&&u(A,""),le&16&&w(X,A,z,Z,J,ie,ne,f))},U=(y,E,A,z,Z,J,ie,ne,f)=>{y=y||nn,E=E||nn;const b=y.length,F=E.length,X=Math.min(b,F);let ge;for(ge=0;geF?Ae(y,Z,J,!0,!1,X):w(E,A,z,Z,J,ie,ne,f,X)},R=(y,E,A,z,Z,J,ie,ne,f)=>{let b=0;const F=E.length;let X=y.length-1,ge=F-1;for(;b<=X&&b<=ge;){const le=y[b],D=E[b]=f?bo(E[b]):so(E[b]);if(Yn(le,D))k(le,D,A,null,Z,J,ie,ne,f);else break;b++}for(;b<=X&&b<=ge;){const le=y[X],D=E[ge]=f?bo(E[ge]):so(E[ge]);if(Yn(le,D))k(le,D,A,null,Z,J,ie,ne,f);else break;X--,ge--}if(b>X){if(b<=ge){const le=ge+1,D=lege)for(;b<=X;)G(y[b],Z,J,!0),b++;else{const le=b,D=b,K=new Map;for(b=D;b<=ge;b++){const mt=E[b]=f?bo(E[b]):so(E[b]);mt.key!=null&&K.set(mt.key,b)}let ye,Ee=0;const Be=ge-D+1;let Ze=!1,We=0;const Tt=new Array(Be);for(b=0;b=Be){G(mt,Z,J,!0);continue}let Y;if(mt.key!=null)Y=K.get(mt.key);else for(ye=D;ye<=ge;ye++)if(Tt[ye-D]===0&&Yn(mt,E[ye])){Y=ye;break}Y===void 0?G(mt,Z,J,!0):(Tt[Y-D]=b+1,Y>=We?We=Y:Ze=!0,k(mt,E[Y],A,null,Z,J,ie,ne,f),Ee++)}const Eo=Ze?yg(Tt):nn;for(ye=Eo.length-1,b=Be-1;b>=0;b--){const mt=D+b,Y=E[mt],$e=E[mt+1],be=mt+1{const{el:J,type:ie,transition:ne,children:f,shapeFlag:b}=y;if(b&6){V(y.component.subTree,E,A,z);return}if(b&128){y.suspense.move(E,A,z);return}if(b&64){ie.move(y,E,A,pe);return}if(ie===Oe){n(J,E,A);for(let X=0;Xne.enter(J),Z));else{const{leave:X,delayLeave:ge,afterLeave:le}=ne,D=()=>{y.ctx.isUnmounted?a(J):n(J,E,A)},K=()=>{const ye=J._isLeaving||!!J[js];J._isLeaving&&J[js](!0),ne.persisted&&!ye?D():X(J,()=>{D(),le&&le()})};ge?ge(J,D,K):K()}else n(J,E,A)},G=(y,E,A,z=!1,Z=!1)=>{const{type:J,props:ie,ref:ne,children:f,dynamicChildren:b,shapeFlag:F,patchFlag:X,dirs:ge,cacheIndex:le,memo:D}=y;if(X===-2&&(Z=!1),ne!=null&&(Qt(),Bn(ne,null,A,y,!0),eo()),le!=null&&(E.renderCache[le]=void 0),F&256){E.ctx.deactivate(y);return}const K=F&1&&ge,ye=!dn(y);let Ee;if(ye&&(Ee=ie&&ie.onVnodeBeforeUnmount)&&ro(Ee,E,y),F&6)ke(y.component,A,z);else{if(F&128){y.suspense.unmount(A,z);return}K&&Wo(y,null,E,"beforeUnmount"),F&64?y.type.remove(y,E,A,pe,z):b&&!b.hasOnce&&(J!==Oe||X>0&&X&64)?Ae(b,E,A,!1,!0):(J===Oe&&X&384||!Z&&F&16)&&Ae(f,E,A),z&&oe(y)}const Be=D!=null&&le==null;(ye&&(Ee=ie&&ie.onVnodeUnmounted)||K||Be)&&St(()=>{Ee&&ro(Ee,E,y),K&&Wo(y,null,E,"unmounted"),Be&&(y.el=null)},A)},oe=y=>{const{type:E,el:A,anchor:z,transition:Z}=y;if(E===Oe){he(A,z);return}if(E===er){d(y);return}const J=()=>{a(A),Z&&!Z.persisted&&Z.afterLeave&&Z.afterLeave()};if(y.shapeFlag&1&&Z&&!Z.persisted){const{leave:ie,delayLeave:ne}=Z,f=()=>ie(A,J);ne?ne(y.el,J,f):f()}else J()},he=(y,E)=>{let A;for(;y!==E;)A=h(y),a(y),y=A;a(E)},ke=(y,E,A)=>{const{bum:z,scope:Z,job:J,subTree:ie,um:ne,m:f,a:b}=y;Pl(f),Pl(b),z&&_a(z),Z.stop(),J&&(J.flags|=8,G(ie,y,E,A)),ne&&St(ne,E),St(()=>{y.isUnmounted=!0},E)},Ae=(y,E,A,z=!1,Z=!1,J=0)=>{for(let ie=J;ie{if(y.shapeFlag&6)return Le(y.component.subTree);if(y.shapeFlag&128)return y.suspense.next();const E=h(y.anchor||y.el),A=E&&E[Ki];return A?h(A):E};let ve=!1;const Q=(y,E,A)=>{let z;y==null?E._vnode&&(G(E._vnode,null,null,!0),z=E._vnode.component):k(E._vnode||null,y,E,null,null,null,A),E._vnode=y,ve||(ve=!0,Bi(z),Vi(),ve=!1)},pe={p:k,um:G,m:V,r:oe,mt:I,mc:w,pc:te,pbc:H,n:Le,o:e};return{render:Q,hydrate:void 0,createApp:ng(Q)}}function Js({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 Xo({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function _g(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Qs(e,t,o=!1){const n=e.children,a=t.children;if(Ce(n)&&Ce(a))for(let s=0;s>1,e[o[i]]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 Al(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Al(t)}function Pl(e){if(e)for(let t=0;te.__isSuspense;function vg(e,t){t&&t.pendingBranch?Ce(e)?t.effects.push(...e):t.effects.push(e):Lp(e)}const Oe=Symbol.for("v-fgt"),Hn=Symbol.for("v-txt"),no=Symbol.for("v-cmt"),er=Symbol.for("v-stc"),$o=[];let It=null;function ee(e=!1){$o.push(It=e?null:[])}function tr(){$o.pop(),It=$o[$o.length-1]||null}let Wn=1;function za(e,t=!1){Wn+=e,e<0&&It&&t&&(It.hasOnce=!0)}function Tl(e){return e.dynamicChildren=Wn>0?It||nn:null,tr(),Wn>0&&It&&It.push(e),e}function se(e,t,o,n,a,s){return Tl(N(e,t,o,n,a,s,!0))}function ao(e,t,o,n,a){return Tl(ze(e,t,o,n,a,!0))}function Kn(e){return e?e.__v_isVNode===!0:!1}function Yn(e,t){return e.type===t.type&&e.key===t.key}const Nl=({key:e})=>e??null,Ba=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Qe(e)||at(e)||Re(e)?{i:$t,r:e,k:t,f:!!o}:e:null);function N(e,t=null,o=null,n=0,a=null,s=e===Oe?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Nl(t),ref:t&&Ba(t),scopeId:Hi,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:$t};return i?(Va(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=Qe(o)?8:16),Wn>0&&!r&&It&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&It.push(l),l}const ze=kg;function kg(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===nl)&&(e=no),Kn(e)){const i=pn(e,t,!0);return o&&Va(i,o),Wn>0&&!s&&It&&(i.shapeFlag&6?It[It.indexOf(e)]=i:It.push(i)),i.patchFlag=-2,i}if(Mg(e)&&(e=e.__vccOpts),t){t=wg(t);let{class:i,style:l}=t;i&&!Qe(i)&&(t.class=je(i)),Ke(l)&&(Pa(l)&&!Ce(l)&&(l=rt({},l)),t.style=dt(l))}const r=Qe(e)?1:Cl(e)?128:Ra(e)?64:Ke(e)?4:Re(e)?2:0;return N(e,t,o,n,a,r,s,!0)}function wg(e){return e?Pa(e)||yl(e)?rt({},e):e:null}function pn(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?xg(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Nl(c),ref:t&&t.ref?o&&s?Ce(s)?s.concat(Ba(t)):[s,Ba(t)]:Ba(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Oe?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&pn(e.ssContent),ssFallback:e.ssFallback&&pn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&zs(u,l.clone(u)),u}function it(e=" ",t=0){return ze(Hn,null,e,t)}function Ye(e="",t=!1){return t?(ee(),ao(no,null,e)):ze(no,null,e)}function so(e){return e==null||typeof e=="boolean"?ze(no):Ce(e)?ze(Oe,null,e.slice()):Kn(e)?bo(e):ze(Hn,null,String(e))}function bo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:pn(e)}function Va(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Ce(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Va(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!yl(t)?t._ctx=$t:a===3&&$t&&($t.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Re(t)){if(n&65){Va(e,{default:t});return}t={default:t,_ctx:$t},o=32}else t=String(t),n&64?(o=16,t=[it(t)]):o=8;e.children=t,e.shapeFlag|=o}function xg(...e){const t={};for(let o=0;o_t||$t;let qa,Xn;{const e=ya(),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)}};qa=t("__VUE_INSTANCE_SETTERS__",o=>_t=o),Xn=t("__VUE_SSR_SETTERS__",o=>gn=o)}const Zn=e=>{const t=_t;return qa(e),e.scope.on(),()=>{e.scope.off(),qa(t)}},Rl=()=>{_t&&_t.scope.off(),qa(null)};function Ml(e){return e.vnode.shapeFlag&4}let gn=!1;function Pg(e,t=!1,o=!1){t&&Xn(t);const{props:n,children:a}=e.vnode,s=Ml(e);dg(e,n,s,t),hg(e,a,o||t);const r=s?Eg(e,t):void 0;return t&&Xn(!1),r}function Eg(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xp);const{setup:n}=o;if(n){Qt();const a=e.setupContext=n.length>1?Tg(e):null,s=Zn(e),r=rn(n,e,0,[e.props,a]),i=ci(r);if(eo(),s(),(i||e.sp)&&!dn(e)&&Bs(e),i){if(r.then(Rl,Rl),t)return r.then(l=>{Xn(!0);try{Ol(e,l,t)}finally{Xn(!1)}}).catch(l=>{Un(l,e,0)});e.asyncDep=r}else Ol(e,r)}else Fl(e)}function Ol(e,t,o){Re(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ke(t)&&(e.setupState=Ui(t)),Fl(e)}function Fl(e,t,o){const n=e.type;e.render||(e.render=n.render||Zt);{const a=Zn(e);Qt();try{Zp(e)}finally{eo(),a()}}}const Cg={get(e,t){return vt(e,"get",""),e[t]}};function Tg(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Cg),slots:e.slots,emit:e.emit,expose:t}}function Ha(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ui(Fn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Vn)return Vn[o](e)},has(t,o){return o in t||o in Vn}})):e.proxy}const Ng=/(?:^|[-_])\w/g,Rg=e=>e.replace(Ng,t=>t.toUpperCase()).replace(/[-_]/g,"");function Il(e,t=!0){return Re(e)?e.displayName||e.name:e.name||t&&e.__name}function Dl(e,t,o=!1){let n=Il(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?Rg(n):o?"App":"Anonymous"}function Mg(e){return Re(e)&&"__vccOpts"in e}const re=(e,t)=>$p(e,t,gn);function Ul(e,t,o){try{za(-1);const n=arguments.length;return n===2?Ke(t)&&!Ce(t)?Kn(t)?ze(e,null,[t]):ze(e,t):ze(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Kn(o)&&(o=[o]),ze(e,t,o))}finally{za(1)}}const Og="3.5.42";/**
+`,...vd(a)),console.warn(...s)}eo(),Os=!1}function yd(){let e=Dn[Dn.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 vd(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[`
+`],...kd(o))}),t}function kd({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Di(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...wd(e.props),s]:[a+s]}function wd(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Ul(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Ul(e,t,o){return Qe(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:at(t)?(t=Ul(e,Ve(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Ne(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Ve(t),o?t:[`${e}=`,t])}function rn(e,t,o,n){try{return n?e(...n):e()}catch(a){Gn(a,t,o)}}function qt(e,t,o,n){if(Ne(e)){const a=rn(e,t,o,n);return a&&cl(a)&&a.catch(s=>{Gn(s,t,o)}),a}if(Ce(e)){const a=[];for(let s=0;s>>1,a=wt[n],s=Un(a);s=Un(o)?wt.push(e):wt.splice(Sd(t),0,e),e.flags|=1,jl()}}function jl(){Ra||(Ra=zl.then(ql))}function Ad(e){if(!Ce(e))Ro&&e.id===-1?Ro.splice(cn+1,0,e):e.flags&1||(ln.push(e),e.flags|=1);else for(let t=0;tUn(o)-Un(n));if(ln.length=0,Ro){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function ql(e){try{for(oo=0;oo{n._d&&ja(-1);const s=Ta(t),r=$o.length;let l;try{l=e(...a)}finally{for(let i=$o.length;i>r;i--)tr();Ta(s),n._d&&ja(1)}return l};return n._n=!0,n._c=!0,n._d=!0,n}function Gt(e,t){if($t===null)return e;const o=Ha($t),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&Ne(t)?t.call(n&&n.proxy):t}}function Ld(){return!!(_o()||Yo)}const Pd=Symbol.for("v-scx"),Ed=()=>Te(Pd);function Cd(e,t){return Ds(e,null,t)}function ct(e,t,o){return Ds(e,t,o)}function Ds(e,t,o=Je){const{immediate:n,deep:a,flush:s,once:r}=o,l=rt({},o),i=t&&n||!t&&s!=="post";let c;if(gn){if(s==="sync"){const _=Ed();c=_.__watcherHandles||(_.__watcherHandles=[])}else if(!i){const _=()=>{};return _.stop=Zt,_.resume=Zt,_.pause=Zt,_}}const u=_t;l.call=(_,S,k)=>qt(_,u,S,k);let p=!1;s==="post"?l.scheduler=_=>{St(_,u&&u.suspense)}:s!=="sync"&&(p=!0,l.scheduler=(_,S)=>{S?_():Is(_)}),l.augmentJob=_=>{t&&(_.flags|=4),p&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const h=_d(e,t,l);return gn&&(c?c.push(h):i&&h()),h}function Rd(e,t,o){const n=this.proxy,a=Qe(e)?e.includes(".")?Wl(n,e):()=>n[e]:e.bind(n,n);let s;Ne(t)?s=t:(s=t.handler,o=t);const r=Zn(this),l=Ds(a,s.bind(n),o);return r(),l}function Wl(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Ko=e=>e&&(e.disabled||e.disabled===""),Td=e=>e&&(e.defer||e.defer===""),Yl=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Xl=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gs=(e,t)=>{const o=e&&e.to;return Qe(o)?t?t(o):null:o},Nd={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,l,i,c){const{mc:u,pc:p,pbc:h,o:{insert:_,querySelector:S,createText:k,createComment:A,parentNode:C}}=c,m=Ko(t.props);let{dynamicChildren:d}=t;const f=(y,w,P)=>{y.shapeFlag&16&&u(y.children,w,P,a,s,r,l,i)},$=(y=t)=>{const w=Ko(y.props),P=y.target=Gs(y.props,S),q=Us(P,y,k,_);P&&(r!=="svg"&&Yl(P)?r="svg":r!=="mathml"&&Xl(P)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(P),w||(f(y,P,q),zn(y,!1)))},x=y=>{const w=()=>{if(To.get(y)===w){if(To.delete(y),Ko(y.props)){const P=C(y.el)||o;f(y,P,y.anchor),zn(y,!0)}$(y)}};To.set(y,w),St(w,s)};if(e==null){const y=t.el=k(""),w=t.anchor=k("");if(_(y,o,n),_(w,o,n),Td(t.props)||s&&s.pendingBranch){x(t);return}m&&(f(t,o,w),zn(t,!0)),$()}else{t.el=e.el;const y=t.anchor=e.anchor,w=To.get(e);if(w){w.flags|=8,To.delete(e),x(t);return}t.targetStart=e.targetStart;const P=t.target=e.target,q=t.targetAnchor=e.targetAnchor,M=Ko(e.props),z=M?o:P,ae=M?y:q;if(r==="svg"||Yl(P)?r="svg":(r==="mathml"||Xl(P))&&(r="mathml"),d?(h(e.dynamicChildren,d,z,a,s,r,l),Qs(e,t,!0)):i||p(e,t,z,ae,a,s,r,l,!1),m)M?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ma(t,o,y,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const I=Gs(t.props,S);I&&(t.target=I,Ma(t,I,null,c,0))}else M&&Ma(t,P,q,c,1);zn(t,m)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:l,anchor:i,targetStart:c,targetAnchor:u,target:p,props:h}=e,_=Ko(h),S=s||!_,k=To.get(e);if(k&&(k.flags|=8,To.delete(e)),p&&(a(c),a(u)),s&&a(i),!k&&(_||p)&&r&16)for(let A=0;A1){for(const o of e)if(o.type!==no){t=o;break}}return t}function Zl(e){if(!Ia(e))return Na(e.type)&&e.children?Od(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&&Ne(o.default))return o.default()}}function js(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;js(Na(o.type)&&Zl(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 jn(e,t){return Ne(e)?rt({name:e.name},t,{setup:e}):e}function Bs(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Jl(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Fa=new WeakMap;function Bn(e,t,o,n,a=!1){if(Ce(e)){e.forEach((k,A)=>Bn(k,t&&(Ce(t)?t[A]:t),o,n,a));return}if(pn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Bn(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?Ha(n.component):n.el,r=a?null:s,{i:l,r:i}=e,c=t&&t.r,u=l.refs===Je?l.refs={}:l.refs,p=l.setupState,h=Ve(p),_=p===Je?ll:k=>Jl(u,k)?!1:He(h,k),S=(k,A)=>!(A&&Jl(u,A));if(c!=null&&c!==i){if(Ql(t),Qe(c))u[c]=null,_(c)&&(p[c]=null);else if(at(c)){const k=t;S(c,k.k)&&(c.value=null),k.k&&(u[k.k]=null)}}if(Ne(i))rn(i,l,12,[r,u]);else{const k=Qe(i),A=at(i);if(k||A){const C=()=>{if(e.f){const m=k?_(i)?p[i]:u[i]:S()||!e.k?i.value:u[e.k];if(a)Ce(m)&&ys(m,s);else if(Ce(m))m.includes(s)||m.push(s);else if(k)u[i]=[s],_(i)&&(p[i]=u[i]);else{const d=[s];S(i,e.k)&&(i.value=d),e.k&&(u[e.k]=d)}}else k?(u[i]=r,_(i)&&(p[i]=r)):A&&(S(i,e.k)&&(i.value=r),e.k&&(u[e.k]=r))};if(r){const m=()=>{C(),Fa.delete(e)};m.id=-1,Fa.set(e,m),St(m,o)}else Ql(e),C()}}}function Ql(e){const t=Fa.get(e);t&&(t.flags|=8,Fa.delete(e))}const ei=e=>e.nodeType===8;ya().requestIdleCallback,ya().cancelIdleCallback;function Id(e,t){if(ei(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(ei(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const pn=e=>!!e.type.__asyncLoader;function Dd(e){Ne(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,p=0;const h=()=>(p++,c=null,_()),_=()=>{let S;return c||(S=c=t().catch(k=>{if(k=k instanceof Error?k:new Error(String(k)),i)return new Promise((A,C)=>{i(k,()=>A(h()),()=>C(k),p+1)});throw k}).then(k=>S!==c&&c?c:(k&&(k.__esModule||k[Symbol.toStringTag]==="Module")&&(k=k.default),u=k,k)))};return jn({name:"AsyncComponentWrapper",__asyncLoader:_,__asyncHydrate(S,k,A){const C=S.isConnected;let m=!1;(k.bu||(k.bu=[])).push(()=>m=!0);const d=()=>{m||!S.parentNode||C&&!S.isConnected||A()},f=s?()=>{const $=s(d,x=>Id(S,x));$&&(k.bum||(k.bum=[])).push($)}:d;u?f():_().then(()=>!k.isUnmounted&&f())},get __asyncResolved(){return u},setup(){const S=_t;if(Bs(S),u)return()=>Oa(u,S);const k=$=>{c=null,Gn($,S,13,!n)};if(l&&S.suspense||gn)return _().then($=>()=>Oa($,S)).catch($=>(k($),()=>n?je(n,{error:$}):null));const A=ue(!1),C=ue(),m=ue(!!a);let d,f;return Ga(()=>{d!=null&&clearTimeout(d),f!=null&&clearTimeout(f)}),a&&(f=setTimeout(()=>{S.isUnmounted||(m.value=!1)},a)),r!=null&&(d=setTimeout(()=>{if(!S.isUnmounted&&!A.value&&!C.value){const $=new Error(`Async component timed out after ${r}ms.`);k($),C.value=$}},r)),_().then(()=>{S.isUnmounted||(A.value=!0,S.parent&&Ia(S.parent.vnode)&&S.parent.update())}).catch($=>{if(S.isUnmounted){c=null;return}k($),C.value=$}),()=>{if(A.value&&u)return Oa(u,S);if(C.value&&n)return je(n,{error:C.value});if(o&&!m.value)return Oa(o,S)}}})}function Oa(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=je(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Ia=e=>e.type.__isKeepAlive;function Gd(e,t){ti(e,"a",t)}function Ud(e,t){ti(e,"da",t)}function ti(e,t,o=_t){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Da(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ia(a.parent.vnode)&&zd(n,t,o,a),a=a.parent}}function zd(e,t,o,n){const a=Da(t,e,n,!0);Ga(()=>{ys(n[t],a)},o)}function Da(e,t,o=_t,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{Qt();const l=Zn(o),i=qt(t,o,e,r);return l(),eo(),i});return n?a.unshift(s):a.push(s),s}}const mo=e=>(t,o=_t)=>{(!gn||e==="sp")&&Da(e,(...n)=>t(...n),o)},oi=mo("bm"),kt=mo("m"),jd=mo("bu"),Bd=mo("u"),Ot=mo("bum"),Ga=mo("um"),Vd=mo("sp"),qd=mo("rtg"),Hd=mo("rtc");function Wd(e,t=_t){Da("ec",e,t)}const Kd="components",ni=Symbol.for("v-ndc");function ai(e){return Qe(e)?Yd(Kd,e,!1)||e:e||ni}function Yd(e,t,o=!0,n=!1){const a=$t||_t;if(a){const s=a.type;{const l=Ii(s,!1);if(l&&(l===t||l===ft(t)||l===ba(ft(t))))return s}const r=si(a[e]||s[e],t)||si(a.appContext[e],t);return!r&&n?s:r}}function si(e,t){return e&&(e[t]||e[ft(t)]||e[ba(ft(t))])}function st(e,t,o,n){let a;const s=o,r=Ce(e);if(r||Qe(e)){const l=r&&go(e);let i=!1,c=!1;l&&(i=!Ft(e),c=fo(e),e=wa(e)),a=new Array(e.length);for(let u=0,p=e.length;ut(l,i,void 0,s));else{const l=Object.keys(e);a=new Array(l.length);for(let i=0,c=l.length;i0;return ee(),ao(Fe,null,[je("slot",c,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const l=$o.length;ee();let i;try{const c=r&&ri(r(o)),u=o.key||s||c&&c.key;i=ao(Fe,{key:(u&&!Nt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=$o.length;u>l;u--)tr();throw c}finally{r&&r._c&&(r._d=!0)}return i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),i}function ri(e){return e.some(t=>Kn(t)?!(t.type===no||t.type===Fe&&!ri(t.children)):!0)?e:null}const qs=e=>e?Mi(e)?Ha(e):qs(e.parent):null,Vn=rt(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=>qs(e.parent),$root:e=>qs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ui(e),$forceUpdate:e=>e.f||(e.f=()=>{Is(e.update)}),$nextTick:e=>e.n||(e.n=Ho.bind(e.proxy)),$watch:e=>Rd.bind(e)}),Hs=(e,t)=>e!==Je&&!e.__isScriptSetup&&He(e,t),Xd={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 h=r[t];if(h!==void 0)switch(h){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(Hs(n,t))return r[t]=1,n[t];if(a!==Je&&He(a,t))return r[t]=2,a[t];if(He(s,t))return r[t]=3,s[t];if(o!==Je&&He(o,t))return r[t]=4,o[t];Ws&&(r[t]=0)}}const c=Vn[t];let u,p;if(c)return t==="$attrs"&&vt(e.attrs,"get",""),c(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(o!==Je&&He(o,t))return r[t]=4,o[t];if(p=i.config.globalProperties,He(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return Hs(a,t)?(a[t]=o,!0):n!==Je&&He(n,t)?(n[t]=o,!0):He(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!==Je&&l[0]!=="$"&&He(e,l)||Hs(t,l)||He(s,l)||He(n,l)||He(Vn,l)||He(a.config.globalProperties,l)||(i=r.__cssModules)&&i[l])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:He(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function li(e){return Ce(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let Ws=!0;function Zd(e){const t=ui(e),o=e.proxy,n=e.ctx;Ws=!1,t.beforeCreate&&ii(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:l,provide:i,inject:c,created:u,beforeMount:p,mounted:h,beforeUpdate:_,updated:S,activated:k,deactivated:A,beforeDestroy:C,beforeUnmount:m,destroyed:d,unmounted:f,render:$,renderTracked:x,renderTriggered:y,errorCaptured:w,serverPrefetch:P,expose:q,inheritAttrs:M,components:z,directives:ae,filters:I}=t;if(c&&Jd(c,n,null),r)for(const F in r){const te=r[F];Ne(te)&&(n[F]=te.bind(o))}if(a){const F=a.call(o,o);Ke(F)&&(e.data=Vo(F))}if(Ws=!0,s)for(const F in s){const te=s[F],G=Ne(te)?te.bind(o,o):Ne(te.get)?te.get.bind(o,o):Zt,N=!Ne(te)&&Ne(te.set)?te.set.bind(o):Zt,V=re({get:G,set:N});Object.defineProperty(n,F,{enumerable:!0,configurable:!0,get:()=>V.value,set:U=>V.value=U})}if(l)for(const F in l)ci(l[F],n,o,F);if(i){const F=Ne(i)?i.call(o):i;Reflect.ownKeys(F).forEach(te=>{bt(te,F[te])})}u&&ii(u,e,"c");function B(F,te){Ce(te)?te.forEach(G=>F(G.bind(o))):te&&F(te.bind(o))}if(B(oi,p),B(kt,h),B(jd,_),B(Bd,S),B(Gd,k),B(Ud,A),B(Wd,w),B(Hd,x),B(qd,y),B(Ot,m),B(Ga,f),B(Vd,P),Ce(q))if(q.length){const F=e.exposed||(e.exposed={});q.forEach(te=>{Object.defineProperty(F,te,{get:()=>o[te],set:G=>o[te]=G,enumerable:!0})})}else e.exposed||(e.exposed={});$&&e.render===Zt&&(e.render=$),M!=null&&(e.inheritAttrs=M),z&&(e.components=z),ae&&(e.directives=ae),P&&Bs(e)}function Jd(e,t,o=Zt){Ce(e)&&(e=Ks(e));for(const n in e){const a=e[n];let s;Ke(a)?"default"in a?s=Te(a.from||n,a.default,!0):s=Te(a.from||n):s=Te(a),at(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function ii(e,t,o){qt(Ce(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function ci(e,t,o,n){let a=n.includes(".")?Wl(o,n):()=>o[n];if(Qe(e)){const s=t[e];Ne(s)&&ct(a,s)}else if(Ne(e))ct(a,e.bind(o));else if(Ke(e))if(Ce(e))e.forEach(s=>ci(s,t,o,n));else{const s=Ne(e.handler)?e.handler.bind(o):t[e.handler];Ne(s)&&ct(a,s,e)}}function ui(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=>Ua(i,c,r,!0)),Ua(i,t,r)),Ke(t)&&s.set(t,i),i}function Ua(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Ua(e,s,o,!0),a&&a.forEach(r=>Ua(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const l=Qd[r]||o&&o[r];e[r]=l?l(e[r],t[r]):t[r]}return e}const Qd={data:pi,props:di,emits:di,methods:qn,computed:qn,beforeCreate:xt,created:xt,beforeMount:xt,mounted:xt,beforeUpdate:xt,updated:xt,beforeDestroy:xt,beforeUnmount:xt,destroyed:xt,unmounted:xt,activated:xt,deactivated:xt,errorCaptured:xt,serverPrefetch:xt,components:qn,directives:qn,watch:tg,provide:pi,inject:eg};function pi(e,t){return t?e?function(){return rt(Ne(e)?e.call(this,this):e,Ne(t)?t.call(this,this):t)}:t:e}function eg(e,t){return qn(Ks(e),Ks(t))}function Ks(e){if(Ce(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ft(t)}Modifiers`]||e[`${Mt(t)}Modifiers`];function sg(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Je;let a=o;const s=t.startsWith("update:"),r=s&&ag(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>Qe(u)?u.trim():u)),r.number&&(a=a.map(ks)));let l,i=n[l=vs(t)]||n[l=vs(ft(t))];!i&&s&&(i=n[l=vs(Mt(t))]),i&&qt(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,qt(c,e,6,a)}}const rg=new WeakMap;function fi(e,t,o=!1){const n=o?rg:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},l=!1;if(!Ne(e)){const i=c=>{const u=fi(c,t,!0);u&&(l=!0,rt(r,u))};!o&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!s&&!l?(Ke(e)&&n.set(e,null),null):(Ce(s)?s.forEach(i=>r[i]=null):rt(r,s),Ke(e)&&n.set(e,r),r)}function za(e,t){return!e||!da(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),He(e,t[0].toLowerCase()+t.slice(1))||He(e,Mt(t))||He(e,t))}function ax(){}function hi(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:l,emit:i,render:c,renderCache:u,props:p,data:h,setupState:_,ctx:S,inheritAttrs:k}=e,A=Ta(e);let C,m;try{if(o.shapeFlag&4){const f=a||n,$=f;C=so(c.call($,f,u,p,_,h,S)),m=l}else{const f=t;C=so(f.length>1?f(p,{attrs:l,slots:r,emit:i}):f(p,null)),m=t.props?l:lg(l)}}catch(f){$o.length=0,Gn(f,e,1),C=je(no)}let d=C;if(m&&k!==!1){const f=Object.keys(m),{shapeFlag:$}=d;f.length&&$&7&&(s&&f.some(ga)&&(m=ig(m,s)),d=dn(d,m,!1,!0))}if(o.dirs&&(d=dn(d,null,!1,!0),d.dirs=d.dirs?d.dirs.concat(o.dirs):o.dirs),o.transition){const f=Na(d.type)&&Zl(d)||d;js(f,o.transition)}return C=d,Ta(A),C}const lg=e=>{let t;for(const o in e)(o==="class"||o==="style"||da(o))&&((t||(t={}))[o]=e[o]);return t},ig=(e,t)=>{const o={};for(const n in e)(!ga(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function cg(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?mi(n,r,c):!!r;if(i&8){const u=t.dynamicProps;for(let p=0;pObject.create(bi),yi=e=>Object.getPrototypeOf(e)===bi;function pg(e,t,o,n=!1){const a={},s=_i();e.propsDefaults=Object.create(null),vi(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:ud(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function dg(e,t,o,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,l=Ve(a),[i]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let p=0;p{i=!0;const[h,_]=ki(p,t,!0);rt(r,h),_&&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 Ke(e)&&n.set(e,nn),nn;if(Ce(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Zs=e=>Ce(e)?e.map(so):[so(e)],fg=(e,t,o)=>{if(t._n)return t;const n=un((...a)=>Zs(t(...a)),o);return n._c=!1,n},xi=(e,t,o)=>{const n=e._ctx;for(const a in e){if(Xs(a))continue;const s=e[a];if(Ne(s))t[a]=fg(a,s,n);else if(s!=null){const r=Zs(s);t[a]=()=>r}}},Si=(e,t)=>{const o=Zs(t);e.slots.default=()=>o},Ai=(e,t,o)=>{for(const n in t)(o||!Xs(n))&&(e[n]=t[n])},hg=(e,t,o)=>{const n=e.slots=_i();if(e.vnode.shapeFlag&32){const a=t._;a?(Ai(n,t,o),o&&pl(n,"_",a,!0)):xi(t,n)}else t&&Si(e,t)},mg=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=Je;if(n.shapeFlag&32){const l=t._;l?o&&l===1?s=!1:Ai(a,t,o):(s=!t.$stable,xi(t,a)),r=t}else t&&(Si(e,t),r={default:1});if(s)for(const l in a)!Xs(l)&&r[l]==null&&delete a[l]},St=vg;function $g(e){return bg(e)}function bg(e,t){const o=ya();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:l,createComment:i,setText:c,setElementText:u,parentNode:p,nextSibling:h,setScopeId:_=Zt,insertStaticContent:S}=e,k=(v,E,L,j=null,Z=null,J=null,le=void 0,ne=null,g=!!E.dynamicChildren)=>{if(v===E)return;v&&!Yn(v,E)&&(j=Ae(v),U(v,Z,J,!0),v=null),E.patchFlag===-2&&(g=!1,E.dynamicChildren=null);const{type:b,ref:O,shapeFlag:X}=E;switch(b){case Hn:A(v,E,L,j);break;case no:C(v,E,L,j);break;case er:v==null&&m(E,L,j,le);break;case Fe:z(v,E,L,j,Z,J,le,ne,g);break;default:X&1?$(v,E,L,j,Z,J,le,ne,g):X&6?ae(v,E,L,j,Z,J,le,ne,g):(X&64||X&128)&&b.process(v,E,L,j,Z,J,le,ne,g,de)}O!=null&&Z?Bn(O,v&&v.ref,J,E||v,!E):O==null&&v&&v.ref!=null&&Bn(v.ref,null,J,v,!0)},A=(v,E,L,j)=>{if(v==null)n(E.el=l(E.children),L,j);else{const Z=E.el=v.el;E.children!==v.children&&c(Z,E.children)}},C=(v,E,L,j)=>{v==null?n(E.el=i(E.children||""),L,j):E.el=v.el},m=(v,E,L,j)=>{[v.el,v.anchor]=S(v.children,E,L,j,v.el,v.anchor)},d=({el:v,anchor:E},L,j)=>{let Z;for(;v&&v!==E;)Z=h(v),n(v,L,j),v=Z;n(E,L,j)},f=({el:v,anchor:E})=>{let L;for(;v&&v!==E;)L=h(v),a(v),v=L;a(E)},$=(v,E,L,j,Z,J,le,ne,g)=>{if(E.type==="svg"?le="svg":E.type==="math"&&(le="mathml"),v==null)x(E,L,j,Z,J,le,ne,g);else{const b=v.el&&v.el._isVueCE?v.el:null;try{b&&b._beginPatch(),P(v,E,Z,J,le,ne,g)}finally{b&&b._endPatch()}}},x=(v,E,L,j,Z,J,le,ne)=>{let g,b;const{props:O,shapeFlag:X,transition:fe,dirs:ie}=v;if(g=v.el=r(v.type,J,O&&O.is,O),X&8?u(g,v.children):X&16&&w(v.children,g,null,j,Z,Js(v,J),le,ne),ie&&Wo(v,null,j,"created"),y(g,v,v.scopeId,le,j),O){for(const K in O)K!=="value"&&!Cn(K)&&s(g,K,null,O[K],J,j);"value"in O&&s(g,"value",null,O.value,J),(b=O.onVnodeBeforeMount)&&ro(b,j,v)}ie&&Wo(v,null,j,"beforeMount");const D=_g(Z,fe);D&&fe.beforeEnter(g),n(g,E,L),((b=O&&O.onVnodeMounted)||D||ie)&&St(()=>{try{b&&ro(b,j,v),D&&fe.enter(g),ie&&Wo(v,null,j,"mounted")}finally{}},Z)},y=(v,E,L,j,Z)=>{if(L&&_(v,L),j)for(let J=0;J{for(let b=g;b{const ne=E.el=v.el;let{patchFlag:g,dynamicChildren:b,dirs:O}=E;g|=v.patchFlag&16;const X=v.props||Je,fe=E.props||Je;let ie;if(L&&Xo(L,!1),(ie=fe.onVnodeBeforeUpdate)&&ro(ie,L,E,v),O&&Wo(E,v,L,"beforeUpdate"),L&&Xo(L,!0),b&&(!v.dynamicChildren||v.dynamicChildren.length!==b.length)&&(g=0,le=!1,b=null),(X.innerHTML&&fe.innerHTML==null||X.textContent&&fe.textContent==null)&&u(ne,""),b?q(v.dynamicChildren,b,ne,L,j,Js(E,Z),J):le||te(v,E,ne,null,L,j,Js(E,Z),J,!1),g>0){if(g&16)M(ne,X,fe,L,Z);else if(g&2&&X.class!==fe.class&&s(ne,"class",null,fe.class,Z),g&4&&s(ne,"style",X.style,fe.style,Z),g&8){const D=E.dynamicProps;for(let K=0;K{ie&&ro(ie,L,E,v),O&&Wo(E,v,L,"updated")},j)},q=(v,E,L,j,Z,J,le)=>{for(let ne=0;ne{if(E!==L){if(E!==Je)for(const J in E)!Cn(J)&&!(J in L)&&s(v,J,E[J],null,Z,j);for(const J in L){if(Cn(J))continue;const le=L[J],ne=E[J];le!==ne&&J!=="value"&&s(v,J,ne,le,Z,j)}"value"in L&&s(v,"value",E.value,L.value,Z)}},z=(v,E,L,j,Z,J,le,ne,g)=>{const b=E.el=v?v.el:l(""),O=E.anchor=v?v.anchor:l("");let{patchFlag:X,dynamicChildren:fe,slotScopeIds:ie}=E;ie&&(ne=ne?ne.concat(ie):ie),v==null?(n(b,L,j),n(O,L,j),w(E.children||[],L,O,Z,J,le,ne,g)):X>0&&X&64&&fe&&v.dynamicChildren&&v.dynamicChildren.length===fe.length?(q(v.dynamicChildren,fe,L,Z,J,le,ne),(E.key!=null||Z&&E===Z.subTree)&&Qs(v,E,!0)):te(v,E,L,O,Z,J,le,ne,g)},ae=(v,E,L,j,Z,J,le,ne,g)=>{E.slotScopeIds=ne,v==null?E.shapeFlag&512?Z.ctx.activate(E,L,j,le,g):I(E,L,j,Z,J,le,g):H(v,E,g)},I=(v,E,L,j,Z,J,le)=>{const ne=v.component=Lg(v,j,Z);if(Ia(v)&&(ne.ctx.renderer=de),Pg(ne,!1,le),ne.asyncDep){if(Z&&Z.registerDep(ne,B,le),!v.el){const g=ne.subTree=je(no);C(null,g,E,L),v.placeholder=g.el}}else B(ne,v,E,L,Z,J,le)},H=(v,E,L)=>{const j=E.component=v.component;if(cg(v,E,L))if(j.asyncDep&&!j.asyncResolved){F(j,E,L);return}else j.next=E,j.update();else E.el=v.el,j.vnode=E},B=(v,E,L,j,Z,J,le)=>{const ne=()=>{if(v.isMounted){let{next:X,bu:fe,u:ie,parent:D,vnode:K}=v;{const We=Li(v);if(We){X&&(X.el=K.el,F(v,X,le)),We.asyncDep.then(()=>{St(()=>{v.isUnmounted||b()},Z)});return}}let ve=X,Ee;Xo(v,!1),X?(X.el=K.el,F(v,X,le)):X=K,fe&&_a(fe),(Ee=X.props&&X.props.onVnodeBeforeUpdate)&&ro(Ee,D,X,K),Xo(v,!0);const Be=hi(v),Ze=v.subTree;v.subTree=Be,k(Ze,Be,p(Ze.el),Ae(Ze),v,Z,J),X.el=Be.el,ve===null&&ug(v,Be.el),ie&&St(ie,Z),(Ee=X.props&&X.props.onVnodeUpdated)&&St(()=>ro(Ee,D,X,K),Z)}else{let X;const{el:fe,props:ie}=E,{bm:D,m:K,parent:ve,root:Ee,type:Be}=v,Ze=pn(E);Xo(v,!1),D&&_a(D),!Ze&&(X=ie&&ie.onVnodeBeforeMount)&&ro(X,ve,E),Xo(v,!0);{Ee.ce&&Ee.ce._hasShadowRoot()&&Ee.ce._injectChildStyle(Be,v.parent?v.parent.type:void 0);const We=v.subTree=hi(v);k(null,We,L,j,v,Z,J),E.el=We.el}if(K&&St(K,Z),!Ze&&(X=ie&&ie.onVnodeMounted)){const We=E;St(()=>ro(X,ve,We),Z)}(E.shapeFlag&256||ve&&pn(ve.vnode)&&ve.vnode.shapeFlag&256)&&v.a&&St(v.a,Z),v.isMounted=!0,E=L=j=null}};v.scope.on();const g=v.effect=new yl(ne);v.scope.off();const b=v.update=g.run.bind(g),O=v.job=g.runIfDirty.bind(g);O.i=v,O.id=v.uid,g.scheduler=()=>Is(O),Xo(v,!0),b()},F=(v,E,L)=>{E.component=v;const j=v.vnode.props;v.vnode=E,v.next=null,dg(v,E.props,j,L),mg(v,E.children,L),Qt(),Bl(v),eo()},te=(v,E,L,j,Z,J,le,ne,g=!1)=>{const b=v&&v.children,O=v?v.shapeFlag:0,X=E.children,{patchFlag:fe,shapeFlag:ie}=E;if(fe>0){if(fe&128){N(b,X,L,j,Z,J,le,ne,g);return}else if(fe&256){G(b,X,L,j,Z,J,le,ne,g);return}}ie&8?(O&16&&Le(b,Z,J),X!==b&&u(L,X)):O&16?ie&16?N(b,X,L,j,Z,J,le,ne,g):Le(b,Z,J,!0):(O&8&&u(L,""),ie&16&&w(X,L,j,Z,J,le,ne,g))},G=(v,E,L,j,Z,J,le,ne,g)=>{v=v||nn,E=E||nn;const b=v.length,O=E.length,X=Math.min(b,O);let fe;for(fe=0;feO?Le(v,Z,J,!0,!1,X):w(E,L,j,Z,J,le,ne,g,X)},N=(v,E,L,j,Z,J,le,ne,g)=>{let b=0;const O=E.length;let X=v.length-1,fe=O-1;for(;b<=X&&b<=fe;){const ie=v[b],D=E[b]=g?bo(E[b]):so(E[b]);if(Yn(ie,D))k(ie,D,L,null,Z,J,le,ne,g);else break;b++}for(;b<=X&&b<=fe;){const ie=v[X],D=E[fe]=g?bo(E[fe]):so(E[fe]);if(Yn(ie,D))k(ie,D,L,null,Z,J,le,ne,g);else break;X--,fe--}if(b>X){if(b<=fe){const ie=fe+1,D=iefe)for(;b<=X;)U(v[b],Z,J,!0),b++;else{const ie=b,D=b,K=new Map;for(b=D;b<=fe;b++){const mt=E[b]=g?bo(E[b]):so(E[b]);mt.key!=null&&K.set(mt.key,b)}let ve,Ee=0;const Be=fe-D+1;let Ze=!1,We=0;const Rt=new Array(Be);for(b=0;b=Be){U(mt,Z,J,!0);continue}let Y;if(mt.key!=null)Y=K.get(mt.key);else for(ve=D;ve<=fe;ve++)if(Rt[ve-D]===0&&Yn(mt,E[ve])){Y=ve;break}Y===void 0?U(mt,Z,J,!0):(Rt[Y-D]=b+1,Y>=We?We=Y:Ze=!0,k(mt,E[Y],L,null,Z,J,le,ne,g),Ee++)}const Eo=Ze?yg(Rt):nn;for(ve=Eo.length-1,b=Be-1;b>=0;b--){const mt=D+b,Y=E[mt],$e=E[mt+1],be=mt+1{const{el:J,type:le,transition:ne,children:g,shapeFlag:b}=v;if(b&6){V(v.component.subTree,E,L,j);return}if(b&128){v.suspense.move(E,L,j);return}if(b&64){le.move(v,E,L,de);return}if(le===Fe){n(J,E,L);for(let X=0;Xne.enter(J),Z));else{const{leave:X,delayLeave:fe,afterLeave:ie}=ne,D=()=>{v.ctx.isUnmounted?a(J):n(J,E,L)},K=()=>{const ve=J._isLeaving||!!J[zs];J._isLeaving&&J[zs](!0),ne.persisted&&!ve?D():X(J,()=>{D(),ie&&ie()})};fe?fe(J,D,K):K()}else n(J,E,L)},U=(v,E,L,j=!1,Z=!1)=>{const{type:J,props:le,ref:ne,children:g,dynamicChildren:b,shapeFlag:O,patchFlag:X,dirs:fe,cacheIndex:ie,memo:D}=v;if(X===-2&&(Z=!1),ne!=null&&(Qt(),Bn(ne,null,L,v,!0),eo()),ie!=null&&(E.renderCache[ie]=void 0),O&256){E.ctx.deactivate(v);return}const K=O&1&&fe,ve=!pn(v);let Ee;if(ve&&(Ee=le&&le.onVnodeBeforeUnmount)&&ro(Ee,E,v),O&6)ke(v.component,L,j);else{if(O&128){v.suspense.unmount(L,j);return}K&&Wo(v,null,E,"beforeUnmount"),O&64?v.type.remove(v,E,L,de,j):b&&!b.hasOnce&&(J!==Fe||X>0&&X&64)?Le(b,E,L,!1,!0):(J===Fe&&X&384||!Z&&O&16)&&Le(g,E,L),j&&oe(v)}const Be=D!=null&&ie==null;(ve&&(Ee=le&&le.onVnodeUnmounted)||K||Be)&&St(()=>{Ee&&ro(Ee,E,v),K&&Wo(v,null,E,"unmounted"),Be&&(v.el=null)},L)},oe=v=>{const{type:E,el:L,anchor:j,transition:Z}=v;if(E===Fe){he(L,j);return}if(E===er){f(v);return}const J=()=>{a(L),Z&&!Z.persisted&&Z.afterLeave&&Z.afterLeave()};if(v.shapeFlag&1&&Z&&!Z.persisted){const{leave:le,delayLeave:ne}=Z,g=()=>le(L,J);ne?ne(v.el,J,g):g()}else J()},he=(v,E)=>{let L;for(;v!==E;)L=h(v),a(v),v=L;a(E)},ke=(v,E,L)=>{const{bum:j,scope:Z,job:J,subTree:le,um:ne,m:g,a:b}=v;Pi(g),Pi(b),j&&_a(j),Z.stop(),J&&(J.flags|=8,U(le,v,E,L)),ne&&St(ne,E),St(()=>{v.isUnmounted=!0},E)},Le=(v,E,L,j=!1,Z=!1,J=0)=>{for(let le=J;le{if(v.shapeFlag&6)return Ae(v.component.subTree);if(v.shapeFlag&128)return v.suspense.next();const E=h(v.anchor||v.el),L=E&&E[Kl];return L?h(L):E};let ye=!1;const Q=(v,E,L)=>{let j;v==null?E._vnode&&(U(E._vnode,null,null,!0),j=E._vnode.component):k(E._vnode||null,v,E,null,null,null,L),E._vnode=v,ye||(ye=!0,Bl(j),Vl(),ye=!1)},de={p:k,um:U,m:V,r:oe,mt:I,mc:w,pc:te,pbc:q,n:Ae,o:e};return{render:Q,hydrate:void 0,createApp:ng(Q)}}function Js({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 Xo({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function _g(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Qs(e,t,o=!1){const n=e.children,a=t.children;if(Ce(n)&&Ce(a))for(let s=0;s>1,e[o[l]]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 Li(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Li(t)}function Pi(e){if(e)for(let t=0;te.__isSuspense;function vg(e,t){t&&t.pendingBranch?Ce(e)?t.effects.push(...e):t.effects.push(e):Ad(e)}const Fe=Symbol.for("v-fgt"),Hn=Symbol.for("v-txt"),no=Symbol.for("v-cmt"),er=Symbol.for("v-stc"),$o=[];let It=null;function ee(e=!1){$o.push(It=e?null:[])}function tr(){$o.pop(),It=$o[$o.length-1]||null}let Wn=1;function ja(e,t=!1){Wn+=e,e<0&&It&&t&&(It.hasOnce=!0)}function Ri(e){return e.dynamicChildren=Wn>0?It||nn:null,tr(),Wn>0&&It&&It.push(e),e}function se(e,t,o,n,a,s){return Ri(T(e,t,o,n,a,s,!0))}function ao(e,t,o,n,a){return Ri(je(e,t,o,n,a,!0))}function Kn(e){return e?e.__v_isVNode===!0:!1}function Yn(e,t){return e.type===t.type&&e.key===t.key}const Ti=({key:e})=>e??null,Ba=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Qe(e)||at(e)||Ne(e)?{i:$t,r:e,k:t,f:!!o}:e:null);function T(e,t=null,o=null,n=0,a=null,s=e===Fe?0:1,r=!1,l=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ti(t),ref:t&&Ba(t),scopeId:Hl,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:$t};return l?(Va(i,o),s&128&&e.normalize(i)):o&&(i.shapeFlag|=Qe(o)?8:16),Wn>0&&!r&&It&&(i.patchFlag>0||s&6)&&i.patchFlag!==32&&It.push(i),i}const je=kg;function kg(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===ni)&&(e=no),Kn(e)){const l=dn(e,t,!0);return o&&Va(l,o),Wn>0&&!s&&It&&(l.shapeFlag&6?It[It.indexOf(e)]=l:It.push(l)),l.patchFlag=-2,l}if(Mg(e)&&(e=e.__vccOpts),t){t=wg(t);let{class:l,style:i}=t;l&&!Qe(l)&&(t.class=ze(l)),Ke(i)&&(Pa(i)&&!Ce(i)&&(i=rt({},i)),t.style=pt(i))}const r=Qe(e)?1:Ci(e)?128:Na(e)?64:Ke(e)?4:Ne(e)?2:0;return T(e,t,o,n,a,r,s,!0)}function wg(e){return e?Pa(e)||yi(e)?rt({},e):e:null}function dn(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:l,transition:i}=e,c=t?xg(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ti(c),ref:t&&t.ref?o&&s?Ce(s)?s.concat(Ba(t)):[s,Ba(t)]:Ba(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!==Fe?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&&dn(e.ssContent),ssFallback:e.ssFallback&&dn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&n&&js(u,i.clone(u)),u}function lt(e=" ",t=0){return je(Hn,null,e,t)}function Ye(e="",t=!1){return t?(ee(),ao(no,null,e)):je(no,null,e)}function so(e){return e==null||typeof e=="boolean"?je(no):Ce(e)?je(Fe,null,e.slice()):Kn(e)?bo(e):je(Hn,null,String(e))}function bo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:dn(e)}function Va(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Ce(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Va(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!yi(t)?t._ctx=$t:a===3&&$t&&($t.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Ne(t)){if(n&65){Va(e,{default:t});return}t={default:t,_ctx:$t},o=32}else t=String(t),n&64?(o=16,t=[lt(t)]):o=8;e.children=t,e.shapeFlag|=o}function xg(...e){const t={};for(let o=0;o_t||$t;let qa,Xn;{const e=ya(),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)}};qa=t("__VUE_INSTANCE_SETTERS__",o=>_t=o),Xn=t("__VUE_SSR_SETTERS__",o=>gn=o)}const Zn=e=>{const t=_t;return qa(e),e.scope.on(),()=>{e.scope.off(),qa(t)}},Ni=()=>{_t&&_t.scope.off(),qa(null)};function Mi(e){return e.vnode.shapeFlag&4}let gn=!1;function Pg(e,t=!1,o=!1){t&&Xn(t);const{props:n,children:a}=e.vnode,s=Mi(e);pg(e,n,s,t),hg(e,a,o||t);const r=s?Eg(e,t):void 0;return t&&Xn(!1),r}function Eg(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xd);const{setup:n}=o;if(n){Qt();const a=e.setupContext=n.length>1?Rg(e):null,s=Zn(e),r=rn(n,e,0,[e.props,a]),l=cl(r);if(eo(),s(),(l||e.sp)&&!pn(e)&&Bs(e),l){if(r.then(Ni,Ni),t)return r.then(i=>{Xn(!0);try{Fi(e,i,t)}finally{Xn(!1)}}).catch(i=>{Gn(i,e,0)});e.asyncDep=r}else Fi(e,r)}else Oi(e)}function Fi(e,t,o){Ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ke(t)&&(e.setupState=Gl(t)),Oi(e)}function Oi(e,t,o){const n=e.type;e.render||(e.render=n.render||Zt);{const a=Zn(e);Qt();try{Zd(e)}finally{eo(),a()}}}const Cg={get(e,t){return vt(e,"get",""),e[t]}};function Rg(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Cg),slots:e.slots,emit:e.emit,expose:t}}function Ha(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Gl(On(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Vn)return Vn[o](e)},has(t,o){return o in t||o in Vn}})):e.proxy}const Tg=/(?:^|[-_])\w/g,Ng=e=>e.replace(Tg,t=>t.toUpperCase()).replace(/[-_]/g,"");function Ii(e,t=!0){return Ne(e)?e.displayName||e.name:e.name||t&&e.__name}function Di(e,t,o=!1){let n=Ii(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?Ng(n):o?"App":"Anonymous"}function Mg(e){return Ne(e)&&"__vccOpts"in e}const re=(e,t)=>$d(e,t,gn);function Gi(e,t,o){try{ja(-1);const n=arguments.length;return n===2?Ke(t)&&!Ce(t)?Kn(t)?je(e,null,[t]):je(e,t):je(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Kn(o)&&(o=[o]),je(e,t,o))}finally{ja(1)}}const Fg="3.5.42";/**
* @vue/runtime-dom v3.5.42
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
-**/let or;const Gl=typeof window<"u"&&window.trustedTypes;if(Gl)try{or=Gl.createPolicy("vue",{createHTML:e=>e})}catch{}const jl=or?e=>or.createHTML(e):e=>e,Fg="http://www.w3.org/2000/svg",Ig="http://www.w3.org/1998/Math/MathML",yo=typeof document<"u"?document:null,zl=yo&&yo.createElement("template"),Dg={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"?yo.createElementNS(Fg,e):t==="mathml"?yo.createElementNS(Ig,e):o?yo.createElement(e,{is:o}):yo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>yo.createTextNode(e),createComment:e=>yo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>yo.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{zl.innerHTML=jl(n==="svg"?`${e} `:n==="mathml"?`${e} `:e);const i=zl.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[r?r.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Ug=Symbol("_vtc");function Gg(e,t,o){const n=e[Ug];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Wa=Symbol("_vod"),Bl=Symbol("_vsh"),Ht={name:"show",beforeMount(e,{value:t},{transition:o}){e[Wa]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Jn(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),Jn(e,!0),n.enter(e)):n.leave(e,()=>{Jn(e,!1)}):Jn(e,t))},beforeUnmount(e,{value:t}){Jn(e,t)}};function Jn(e,t){e.style.display=t?e[Wa]:"none",e[Bl]=!t}const jg=Symbol(""),zg=/(?:^|;)\s*display\s*:/;function Bg(e,t,o){const n=e.style,a=Qe(o);let s=!1;if(o&&!a){if(t)if(Qe(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Qn(n,i,"")}else for(const r in t)o[r]==null&&Qn(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?qg(e,r,!Qe(t)&&t?t[r]:void 0,i)||Qn(n,r,i):Qn(n,r,"")}}else if(a){if(t!==o){const r=n[jg];r&&(o+=";"+r),n.cssText=o,s=zg.test(o)}}else t&&e.removeAttribute("style");Wa in e&&(e[Wa]=s?n.display:"",e[Bl]&&(n.display="none"))}const Ka=/\s*!important$/;function Qn(e,t,o){if(Ce(o))o.forEach(n=>Qn(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Ka.test(o)?e.setProperty(t,o.replace(Ka,""),"important"):e.setProperty(t,o);else{const n=Vg(e,t);Ka.test(o)?e.setProperty(Mt(n),o.replace(Ka,""),"important"):e[n]=o}}const Vl=["Webkit","Moz","ms"],nr={};function Vg(e,t){const o=nr[t];if(o)return o;let n=ft(t);if(n!=="filter"&&n in e)return nr[t]=n;n=ba(n);for(let a=0;aar||(Zg.then(()=>ar=0),ar=Date.now());function Qg(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Ce(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ef=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?Gg(e,n,r):t==="style"?Bg(e,o,n):pa(t)?ga(t)||Wg(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):tf(e,t,n,r))?(Wl(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Hl(e,t,n,r,s,t!=="value")):e._isVueCE&&(of(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Qe(n)))?Wl(e,ft(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Hl(e,t,n,r))};function tf(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Yl(t)&&Re(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 Yl(t)&&Qe(o)?!1:t in e}function of(e,t){const o=e._def.props;if(!o)return!1;const n=ft(t);return Array.isArray(o)?o.some(a=>ft(a)===n):Object.keys(o).some(a=>ft(a)===n)}const Xl={};function nf(e,t,o){let n=zn(e,t);ha(n)&&(n=rt({},n,t));class a extends sr{constructor(r){super(n,r,o)}}return a.def=n,a}const af=typeof HTMLElement<"u"?HTMLElement:class{};class sr extends af{constructor(t,o={},n=tc){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!==tc?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(rt({},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 sr){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,Ho(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:s,styles:r}=n;let i;if(s&&!Ce(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=pi(this._props[l])),(i||(i=Object.create(null)))[ft(l)]=!0)}this._numberProps=i,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)He(this,n)||Object.defineProperty(this,n,{get:()=>de(o[n])})}_resolveProps(t){const{props:o}=t,n=Ce(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(ft))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):Xl;const a=ft(t);o&&this._numberProps&&this._numberProps[a]&&(n=pi(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===Xl?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(Mt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Mt(t),o+""):o||this.removeAttribute(Mt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),pf(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=ze(this._def,rt(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,ha(r[0])?rt({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Mt(s)!==s&&a(Mt(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 i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],s.insertBefore(c,i||r),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return Ce(t)?o=>_a(t,o):t};function sf(e){e.target.composing=!0}function Jl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ya=Symbol("_assign"),Xa=Symbol("_initialValue");function rr(e,t,o){return t&&(e=e.trim()),o&&(e=ks(e)),e}const rf={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[Xa]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Xa]=e.defaultValue.replace(/\r\n?/g,`
-`))),e[Ya]=Zl(a);const s=n||a.props&&a.props.type==="number";fn(e,t?"change":"input",r=>{r.target.composing||e[Ya](rr(e.value,o,s))}),(o||s)&&fn(e,"change",()=>{e.value=rr(e.value,o,s)}),t||(fn(e,"compositionstart",sf),fn(e,"compositionend",Jl),fn(e,"change",Jl))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[Xa];delete e[Xa],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Ya](rr(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Ya]=Zl(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?ks(e.value):e.value,l=t??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},lf=["ctrl","shift","alt","meta"],cf={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)=>lf.some(o=>e[`${o}Key`]&&!t.includes(o))},hn=(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{const o=e._withKeys||(e._withKeys={}),n=t.join(".");return o[n]||(o[n]=a=>{if(!("key"in a))return;const s=Mt(a.key);if(t.some(r=>r===s||uf[r]===s))return e(a)})},df=rt({patchProp:ef},Dg);let Ql;function ec(){return Ql||(Ql=$g(df))}const pf=(...e)=>{ec().render(...e)},tc=(...e)=>{const t=ec().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=ff(n);if(!a)return;const s=t._component;!Re(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,gf(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function gf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ff(e){return Qe(e)?document.querySelector(e):e}/*!
+**/let or;const Ui=typeof window<"u"&&window.trustedTypes;if(Ui)try{or=Ui.createPolicy("vue",{createHTML:e=>e})}catch{}const zi=or?e=>or.createHTML(e):e=>e,Og="http://www.w3.org/2000/svg",Ig="http://www.w3.org/1998/Math/MathML",yo=typeof document<"u"?document:null,ji=yo&&yo.createElement("template"),Dg={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"?yo.createElementNS(Og,e):t==="mathml"?yo.createElementNS(Ig,e):o?yo.createElement(e,{is:o}):yo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>yo.createTextNode(e),createComment:e=>yo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>yo.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{ji.innerHTML=zi(n==="svg"?`${e} `:n==="mathml"?`${e} `:e);const l=ji.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]}},Gg=Symbol("_vtc");function Ug(e,t,o){const n=e[Gg];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Wa=Symbol("_vod"),Bi=Symbol("_vsh"),Ht={name:"show",beforeMount(e,{value:t},{transition:o}){e[Wa]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Jn(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),Jn(e,!0),n.enter(e)):n.leave(e,()=>{Jn(e,!1)}):Jn(e,t))},beforeUnmount(e,{value:t}){Jn(e,t)}};function Jn(e,t){e.style.display=t?e[Wa]:"none",e[Bi]=!t}const zg=Symbol(""),jg=/(?:^|;)\s*display\s*:/;function Bg(e,t,o){const n=e.style,a=Qe(o);let s=!1;if(o&&!a){if(t)if(Qe(t))for(const r of t.split(";")){const l=r.slice(0,r.indexOf(":")).trim();o[l]==null&&Qn(n,l,"")}else for(const r in t)o[r]==null&&Qn(n,r,"");for(const r in o){r==="display"&&(s=!0);const l=o[r];l!=null?qg(e,r,!Qe(t)&&t?t[r]:void 0,l)||Qn(n,r,l):Qn(n,r,"")}}else if(a){if(t!==o){const r=n[zg];r&&(o+=";"+r),n.cssText=o,s=jg.test(o)}}else t&&e.removeAttribute("style");Wa in e&&(e[Wa]=s?n.display:"",e[Bi]&&(n.display="none"))}const Ka=/\s*!important$/;function Qn(e,t,o){if(Ce(o))o.forEach(n=>Qn(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Ka.test(o)?e.setProperty(t,o.replace(Ka,""),"important"):e.setProperty(t,o);else{const n=Vg(e,t);Ka.test(o)?e.setProperty(Mt(n),o.replace(Ka,""),"important"):e[n]=o}}const Vi=["Webkit","Moz","ms"],nr={};function Vg(e,t){const o=nr[t];if(o)return o;let n=ft(t);if(n!=="filter"&&n in e)return nr[t]=n;n=ba(n);for(let a=0;aar||(Zg.then(()=>ar=0),ar=Date.now());function Qg(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Ce(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),l=[n];for(let i=0;ie.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ef=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?Ug(e,n,r):t==="style"?Bg(e,o,n):da(t)?ga(t)||Wg(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):tf(e,t,n,r))?(Wi(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Hi(e,t,n,r,s,t!=="value")):e._isVueCE&&(of(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Qe(n)))?Wi(e,ft(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Hi(e,t,n,r))};function tf(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Yi(t)&&Ne(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 Yi(t)&&Qe(o)?!1:t in e}function of(e,t){const o=e._def.props;if(!o)return!1;const n=ft(t);return Array.isArray(o)?o.some(a=>ft(a)===n):Object.keys(o).some(a=>ft(a)===n)}const Xi={};function nf(e,t,o){let n=jn(e,t);ha(n)&&(n=rt({},n,t));class a extends sr{constructor(r){super(n,r,o)}}return a.def=n,a}const af=typeof HTMLElement<"u"?HTMLElement:class{};class sr extends af{constructor(t,o={},n=tc){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!==tc?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(rt({},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 sr){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,Ho(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:s,styles:r}=n;let l;if(s&&!Ce(s))for(const i in s){const c=s[i];(c===Number||c&&c.type===Number)&&(i in this._props&&(this._props[i]=dl(this._props[i])),(l||(l=Object.create(null)))[ft(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)He(this,n)||Object.defineProperty(this,n,{get:()=>pe(o[n])})}_resolveProps(t){const{props:o}=t,n=Ce(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(ft))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):Xi;const a=ft(t);o&&this._numberProps&&this._numberProps[a]&&(n=dl(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===Xi?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(Mt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Mt(t),o+""):o||this.removeAttribute(Mt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),df(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=je(this._def,rt(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,ha(r[0])?rt({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Mt(s)!==s&&a(Mt(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{const t=e.props["onUpdate:modelValue"]||!1;return Ce(t)?o=>_a(t,o):t};function sf(e){e.target.composing=!0}function Ji(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ya=Symbol("_assign"),Xa=Symbol("_initialValue");function rr(e,t,o){return t&&(e=e.trim()),o&&(e=ks(e)),e}const rf={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[Xa]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Xa]=e.defaultValue.replace(/\r\n?/g,`
+`))),e[Ya]=Zi(a);const s=n||a.props&&a.props.type==="number";fn(e,t?"change":"input",r=>{r.target.composing||e[Ya](rr(e.value,o,s))}),(o||s)&&fn(e,"change",()=>{e.value=rr(e.value,o,s)}),t||(fn(e,"compositionstart",sf),fn(e,"compositionend",Ji),fn(e,"change",Ji))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[Xa];delete e[Xa],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Ya](rr(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Ya]=Zi(r),e.composing)return;const l=(s||e.type==="number")&&!/^0\d/.test(e.value)?ks(e.value):e.value,i=t??"";if(l===i)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===i)||(e.value=i)}},lf=["ctrl","shift","alt","meta"],cf={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)=>lf.some(o=>e[`${o}Key`]&&!t.includes(o))},hn=(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{const o=e._withKeys||(e._withKeys={}),n=t.join(".");return o[n]||(o[n]=a=>{if(!("key"in a))return;const s=Mt(a.key);if(t.some(r=>r===s||uf[r]===s))return e(a)})},pf=rt({patchProp:ef},Dg);let Qi;function ec(){return Qi||(Qi=$g(pf))}const df=(...e)=>{ec().render(...e)},tc=(...e)=>{const t=ec().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=ff(n);if(!a)return;const s=t._component;!Ne(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,gf(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function gf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ff(e){return Qe(e)?document.querySelector(e):e}/*!
* pinia v2.3.1
* (c) 2025 Eduardo San Martin Morote
* @license MIT
- */let oc;const Ja=e=>oc=e,nc=Symbol();function ir(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ea;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ea||(ea={}));function hf(){const e=xs(!0),t=e.run(()=>ue({}));let o=[],n=[];const a=Fn({install(s){Ja(a),a._a=s,s.provide(nc,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 ac=()=>{};function sc(e,t,o,n=ac){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&_i()&&qd(a),a}function mn(e,...t){e.slice().forEach(o=>{o(...t)})}const mf=e=>e(),rc=Symbol(),lr=Symbol();function cr(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];ir(a)&&ir(n)&&e.hasOwnProperty(o)&&!at(n)&&!go(n)?e[o]=cr(a,n):e[o]=n}return e}const $f=Symbol();function bf(e){return!ir(e)||!e.hasOwnProperty($f)}const{assign:Ro}=Object;function _f(e){return!!(at(e)&&e.effect)}function yf(e,t,o,n){const{state:a,actions:s,getters:r}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=gp(o.state.value[e]);return Ro(u,s,Object.keys(r||{}).reduce((p,h)=>(p[h]=Fn(re(()=>{Ja(o);const _=o._s.get(e);return r[h].call(_,_)})),p),{}))}return l=ic(e,c,t,o,n,!0),l}function ic(e,t,o={},n,a,s){let r;const i=Ro({actions:{}},o),l={deep:!0};let c,u,p=[],h=[],_;const x=n.state.value[e];!s&&!x&&(n.state.value[e]={});let k;function S(w){let P;c=u=!1,typeof w=="function"?(w(n.state.value[e]),P={type:ea.patchFunction,storeId:e,events:_}):(cr(n.state.value[e],w),P={type:ea.patchObject,payload:w,storeId:e,events:_});const H=k=Symbol();Ho().then(()=>{k===H&&(c=!0)}),u=!0,mn(p,P,n.state.value[e])}const C=s?function(){const{state:P}=o,H=P?P():{};this.$patch(M=>{Ro(M,H)})}:ac;function m(){r.stop(),p=[],h=[],n._s.delete(e)}const g=(w,P="")=>{if(rc in w)return w[lr]=P,w;const H=function(){Ja(n);const M=Array.from(arguments),j=[],ae=[];function I(O){j.push(O)}function q(O){ae.push(O)}mn(h,{args:M,name:H[lr],store:$,after:I,onError:q});let B;try{B=w.apply(this&&this.$id===e?this:$,M)}catch(O){throw mn(ae,O),O}return B instanceof Promise?B.then(O=>(mn(j,O),O)).catch(O=>(mn(ae,O),Promise.reject(O))):(mn(j,B),B)};return H[rc]=!0,H[lr]=P,H},d={_p:n,$id:e,$onAction:sc.bind(null,h),$patch:S,$reset:C,$subscribe(w,P={}){const H=sc(p,w,P.detached,()=>M()),M=r.run(()=>ct(()=>n.state.value[e],j=>{(P.flush==="sync"?u:c)&&w({storeId:e,type:ea.direct,events:_},j)},Ro({},l,P)));return H},$dispose:m},$=Vo(d);n._s.set(e,$);const v=(n._a&&n._a.runWithContext||mf)(()=>n._e.run(()=>(r=xs()).run(()=>t({action:g}))));for(const w in v){const P=v[w];if(at(P)&&!_f(P)||go(P))s||(x&&bf(P)&&(at(P)?P.value=x[w]:cr(P,x[w])),n.state.value[e][w]=P);else if(typeof P=="function"){const H=g(P,w);v[w]=H,i.actions[w]=P}}return Ro($,v),Ro(Ve($),v),Object.defineProperty($,"$state",{get:()=>n.state.value[e],set:w=>{S(P=>{Ro(P,w)})}}),n._p.forEach(w=>{Ro($,r.run(()=>w({store:$,app:n._a,pinia:n,options:i})))}),x&&s&&o.hydrate&&o.hydrate($.$state,x),c=!0,u=!0,$}/*! #__NO_SIDE_EFFECTS__ */function ur(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(i,l){const c=Ap();return i=i||(c?Ne(nc,null):null),i&&Ja(i),i=oc,i._s.has(n)||(s?ic(n,t,a,i):yf(n,a,i)),i._s.get(n)}return r.$id=n,r}const dr="__doxaMapToken",pr="doxa:map-token",lc="__doxaMapTokenBridge",$n=()=>{if(typeof window>"u")return"";const e=window[dr];return typeof e=="string"?e:""};function cc(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===$n())return $n();window[dr]=t;try{window.dispatchEvent(new CustomEvent(pr,{detail:t}))}catch{}return t}function vf(){if(typeof window>"u"||window[lc])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!$n()&&(window[dr]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return $n()},set(t){cc(t)}}),window[lc]=!0}catch{}}function kf(){vf();const e=ue($n());if(typeof window<"u"){const t=()=>{e.value=$n()};window.addEventListener(pr,t);try{Ft(()=>window.removeEventListener(pr,t))}catch{}}return e}function wf(e){return Dp({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const xf={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},Sf={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},Lf={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:"الملصقات في كل صف"},Af={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 — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},Pf={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:"أدوات التحكم بالخريطة"},Ef={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:"المكان"},Cf={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Tf={_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:"فيلم يسوع",audioScripture:"الكتاب المقدس الصوتي",bibleStoriesPlain:"قصص الكتاب المقدس"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"},charts:{scriptureAny:"الكتاب المقدس (أي نوع)",fullBible:"الكتاب المقدس كاملاً",newTestament:"العهد الجديد",filmAny:"الفيلم (أي نوع)",nothingInPools:"لا شيء في المصادر التي جرى البحث فيها",nothingInPoolsLower:"لا شيء في المصادر التي جرى البحث فيها",noResourceInPools:"لم يُعثر على أي مورد في المصادر التي جرى البحث فيها",aResourceFound:"وُجد مورد",tabCoverage:"تغطية الموارد",tabGap:"أكبر الفجوات",keyScripture:"الكتاب المقدس",keyFilmStories:"الفيلم / القصص",keyAudioEtc:"صوتيات / عرض / تدريب",unresolvedCode:"رمز خارج ISO 639-3 — غير محسوم، لم يُقَس",c1Title:"ما الذي وُجد، بحسب نوع المورد",c1Sub:"عبر جميع اللغات البالغة {n} في مجموعة البيانات. كل عمود يَعُدّ اللغات، لا الشعوب.",c1Unit:"لغات وُجد فيها المورد ضمن المصادر التي جرى البحث فيها",c2Title:"أكبر التجمعات السكانية التي لم يُعثر لها على شيء",c2Sub:"اللغات الـ{n} التي لا يوجد لها كتاب مقدس ولا فيلم في المصادر التي جرى البحث فيها، مرتَّبة بحسب عدد سكان الشعوب التي تتحدثها.",c2Unit:"أشخاص في الشعوب التي هذه لغتها الأساسية — لا المتحدثين بها عمومًا",c3Title:"البلدان الأكثر لغاتٍ غير مخدومة",c3Sub:"البلدان الـ{n} الأكثر لغاتٍ لم يُعثر لها على شيء. طول العمود هو كل لغة موجودة في ذلك البلد.",c3Unit:"لغات موجودة في البلد (اللغة العابرة للحدود تُحتسب في كل بلد)"}},Nf={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:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},Rf={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:"إلغاء التحديد"}},Mf={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم ."},Of={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Ff={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},If={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Df={"%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.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Uf={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},Gf={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}، غير منشور بمفرده",mapToken:"رمز الخريطة",tokenPaste:"رمز Mapbox العام (pk.…)",tokenUrlLabel:"…أو رابط خدمة الرموز",tokenApply:"استخدام",tokenClear:"مسح",tokenStoredHere:"يُحفظ في هذا المتصفح فقط.",tokenSourceYours:"يُستخدم رمزك",tokenSourceUrl:"يُستخدم رمز من {url}",tokenSourceBuilt:"يُستخدم الرمز المضمَّن في هذه الصفحة",tokenSourceNone:"لا يوجد رمز Mapbox: لا يمكن تحميل خرائط Mapbox (خرائط MapLibre لا تحتاج رمزًا)",tokenSecret:"هذا رمز سري (sk.…). الصق رمزًا عامًا (pk.…): هذه الصفحة عامة.",tokenNotPk:"يبدأ رمز Mapbox العام بـ pk.",tokenUrlFailed:"تعذّر الحصول على رمز من هذا الرابط: {why}",settings:"الإعدادات",mapEngine:"محرّك الخرائط",engineDefault:"الافتراضي لكل خريطة",engineMapboxNote:"يحتاج إلى رمز",engineMaplibreNote:"لا يحتاج إلى رمز",tokenNotNeeded:"تم اختيار MapLibre: خرائطه لا تحتاج إلى رمز Mapbox"},jf={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:"الخريطة"},zf={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 حسب الشعب والبلد. ليست كلها حدودية."},Bf={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}"},Vf={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},qf={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"},Hf={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."}},Wf={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"},Kf={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"},Yf={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Xf={_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",audioScripture:"Audio-Bibeltext",bibleStoriesPlain:"Bibelgeschichten"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"},charts:{scriptureAny:"Bibeltext (beliebig)",fullBible:"Vollbibel",newTestament:"Neues Testament",filmAny:"Film (beliebig)",nothingInPools:"Nichts in den geprüften Quellen gefunden",nothingInPoolsLower:"nichts in den geprüften Quellen gefunden",noResourceInPools:"keine Ressource in den geprüften Quellen gefunden",aResourceFound:"eine Ressource gefunden",tabCoverage:"Ressourcenabdeckung",tabGap:"Größte Lücken",keyScripture:"Bibeltext",keyFilmStories:"Film / Geschichten",keyAudioEtc:"Audio / Präsentation / Schulung",unresolvedCode:"Code außerhalb ISO 639-3 — ungeklärt, nicht gemessen",c1Title:"Was GEFUNDEN wurde, nach Ressourcentyp",c1Sub:"Über alle {n} Sprachen im Datenbestand. Jeder Balken zählt SPRACHEN, nicht Volksgruppen.",c1Unit:"Sprachen, in denen die Ressource in den geprüften Quellen gefunden wurde",c2Title:"Größte Bevölkerungen ohne jeden Fund",c2Sub:"Die {n} Sprachen ohne Bibeltext und ohne Film in den geprüften Quellen, sortiert nach der Bevölkerung der Volksgruppen, die sie sprechen.",c2Unit:"Menschen in den Volksgruppen, deren PRIMÄRE Sprache dies ist — nicht Sprecher der Sprache",c3Title:"Länder mit den meisten unversorgten Sprachen",c3Sub:"Die {n} Länder mit den meisten Sprachen, für die nichts gefunden wurde. Die Balkenlänge ist jede im Land vorhandene Sprache.",c3Unit:"im Land vorhandene Sprachen (eine grenzüberschreitende Sprache zählt in jedem Land)"}},Zf={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."},Jf={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"}},Qf={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},eh={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},th={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},oh={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},nh={"%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."},ah={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"},upg100Placeholder:"Volksgruppe, UPG-100-Liste oder Region suchen…"},sh={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",mapToken:"Karten-Token",tokenPaste:"Öffentlicher Mapbox-Token (pk.…)",tokenUrlLabel:"…oder die URL eines Token-Dienstes",tokenApply:"Verwenden",tokenClear:"Löschen",tokenStoredHere:"Nur in diesem Browser gespeichert.",tokenSourceYours:"Ihr Token wird verwendet",tokenSourceUrl:"Token von {url} wird verwendet",tokenSourceBuilt:"Der in diese Seite eingebaute Token wird verwendet",tokenSourceNone:"Kein Mapbox-Token: Mapbox-Karten können nicht laden (MapLibre-Karten brauchen keinen)",tokenSecret:"Das ist ein geheimer Token (sk.…). Fügen Sie einen öffentlichen ein (pk.…): Diese Seite ist öffentlich.",tokenNotPk:"Ein öffentlicher Mapbox-Token beginnt mit pk.",tokenUrlFailed:"Von dieser URL kam kein Token: {why}",settings:"Einstellungen",mapEngine:"Karten-Engine",engineDefault:"Je Karte eigenes",engineMapboxNote:"braucht einen Token",engineMaplibreNote:"kein Token nötig",tokenNotNeeded:"MapLibre ist gewählt: Seine Karten brauchen keinen Mapbox-Token"},rh={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"},ih={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."},lh={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}"},ch={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},uh={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"},dh={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."}},ph={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"},gh={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"},fh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},hh={_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",audioScripture:"Audio Scripture",bibleStoriesPlain:"Bible Stories"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"},charts:{scriptureAny:"Scripture (any)",fullBible:"Full Bible",newTestament:"New Testament",filmAny:"Film (any)",nothingInPools:"Nothing found in pools checked",nothingInPoolsLower:"nothing found in pools checked",noResourceInPools:"no resource found in pools checked",aResourceFound:"a resource found",tabCoverage:"Resource coverage",tabGap:"Largest gaps",keyScripture:"scripture",keyFilmStories:"film / stories",keyAudioEtc:"audio / presentation / training",unresolvedCode:"code outside ISO 639-3 — unresolved, not measured",c1Title:"What was FOUND, by resource type",c1Sub:"Across all {n} languages in the corpus. Each bar counts LANGUAGES, not people groups.",c1Unit:"languages where the resource was found in the pools checked",c2Title:"Largest populations with nothing found",c2Sub:"The {n} languages with no scripture and no film in the pools checked, ranked by the population of the people groups who speak them.",c2Unit:"people in the people groups whose PRIMARY language this is — not speakers of the language",c3Title:"Countries with the most unserved languages",c3Sub:"The {n} countries with the most languages that have nothing found. Bar length is every language present in that country.",c3Unit:"languages present in the country (a cross-border language counts in each)"}},mh={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."},$h={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"}},bh={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name ."},_h={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},yh={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},vh={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},kh={"%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."},wh={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"},upg100Placeholder:"Search people group, UPG-100 list, or region…"},xh={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",mapToken:"Map token",tokenPaste:"Mapbox public token (pk.…)",tokenUrlLabel:"…or the URL of a token service",tokenApply:"Use",tokenClear:"Clear",tokenStoredHere:"Kept in this browser only.",tokenSourceYours:"Using your token",tokenSourceUrl:"Using a token from {url}",tokenSourceBuilt:"Using the token built into this page",tokenSourceNone:"No Mapbox token: Mapbox maps cannot load (MapLibre maps need none)",tokenSecret:"That is a secret token (sk.…). Paste a public one (pk.…): this page is public.",tokenNotPk:"A Mapbox public token starts with pk.",tokenUrlFailed:"Could not get a token from that URL: {why}",settings:"Settings",mapEngine:"Map engine",engineDefault:"Each map’s own",engineMapboxNote:"needs a token",engineMaplibreNote:"no token needed",tokenNotNeeded:"MapLibre is selected: its maps need no Mapbox token"},Sh={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"},Lh={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."},Ah={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}"},Ph={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},Eh={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"},Ch={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."}},Th={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"},Nh={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"},Rh={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."}},Mh={_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",audioScripture:"Escrituras en audio",bibleStoriesPlain:"Historias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"},charts:{scriptureAny:"Escrituras (cualquiera)",fullBible:"Biblia completa",newTestament:"Nuevo Testamento",filmAny:"Película (cualquiera)",nothingInPools:"No se encontró nada en las fuentes consultadas",nothingInPoolsLower:"no se encontró nada en las fuentes consultadas",noResourceInPools:"no se encontró ningún recurso en las fuentes consultadas",aResourceFound:"se encontró un recurso",tabCoverage:"Cobertura de recursos",tabGap:"Mayores brechas",keyScripture:"escrituras",keyFilmStories:"película / historias",keyAudioEtc:"audio / presentación / formación",unresolvedCode:"código fuera de ISO 639-3 — sin resolver, no medido",c1Title:"Qué se ENCONTRÓ, por tipo de recurso",c1Sub:"En las {n} lenguas del conjunto de datos. Cada barra cuenta LENGUAS, no etnias.",c1Unit:"lenguas en las que se encontró el recurso en las fuentes consultadas",c2Title:"Mayores poblaciones sin nada encontrado",c2Sub:"Las {n} lenguas sin escrituras ni película en las fuentes consultadas, ordenadas por la población de las etnias que las hablan.",c2Unit:"personas en las etnias cuya lengua PRINCIPAL es esta — no hablantes de la lengua",c3Title:"Países con más lenguas desatendidas",c3Sub:"Los {n} países con más lenguas sin nada encontrado. La longitud de la barra es cada lengua presente en ese país.",c3Unit:"lenguas presentes en el país (una lengua transfronteriza cuenta en cada uno)"}},Oh={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."},Fh={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"}},Ih={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo ."},Dh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Uh={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},Gh={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},jh={"%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."},zh={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"},upg100Placeholder:"Buscar pueblo, lista UPG-100 o región…"},Bh={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",mapToken:"Token del mapa",tokenPaste:"Token público de Mapbox (pk.…)",tokenUrlLabel:"…o la URL de un servicio de tokens",tokenApply:"Usar",tokenClear:"Borrar",tokenStoredHere:"Se guarda solo en este navegador.",tokenSourceYours:"Usando tu token",tokenSourceUrl:"Usando un token de {url}",tokenSourceBuilt:"Usando el token integrado en esta página",tokenSourceNone:"Sin token de Mapbox: los mapas de Mapbox no cargan (los de MapLibre no lo necesitan)",tokenSecret:"Ese es un token secreto (sk.…). Pega uno público (pk.…): esta página es pública.",tokenNotPk:"Un token público de Mapbox empieza por pk.",tokenUrlFailed:"No se pudo obtener un token de esa URL: {why}",settings:"Ajustes",mapEngine:"Motor de mapas",engineDefault:"El de cada mapa",engineMapboxNote:"necesita un token",engineMaplibreNote:"no necesita token",tokenNotNeeded:"MapLibre está seleccionado: sus mapas no necesitan token de Mapbox"},Vh={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"},qh={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."},Hh={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}"},Wh={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"},Kh={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"},Yh={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."}},Xh={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},Zh={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu"},Jh={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Qh={_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",audioScripture:"Écritures en audio",bibleStoriesPlain:"Histoires bibliques"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"},charts:{scriptureAny:"Écritures (toutes)",fullBible:"Bible complète",newTestament:"Nouveau Testament",filmAny:"Film (tous)",nothingInPools:"Rien trouvé dans les sources consultées",nothingInPoolsLower:"rien trouvé dans les sources consultées",noResourceInPools:"aucune ressource trouvée dans les sources consultées",aResourceFound:"une ressource trouvée",tabCoverage:"Couverture des ressources",tabGap:"Plus grands écarts",keyScripture:"écritures",keyFilmStories:"film / histoires",keyAudioEtc:"audio / présentation / formation",unresolvedCode:"code hors ISO 639-3 — non résolu, non mesuré",c1Title:"Ce qui a été TROUVÉ, par type de ressource",c1Sub:"Sur l'ensemble des {n} langues du corpus. Chaque barre compte des LANGUES, pas des peuples.",c1Unit:"langues où la ressource a été trouvée dans les sources consultées",c2Title:"Populations les plus nombreuses sans rien de trouvé",c2Sub:"Les {n} langues sans Écritures ni film dans les sources consultées, classées selon la population des peuples qui les parlent.",c2Unit:"personnes dans les peuples dont c'est la langue PRINCIPALE — non les locuteurs de la langue",c3Title:"Pays comptant le plus de langues non desservies",c3Sub:"Les {n} pays comptant le plus de langues sans rien de trouvé. La longueur de la barre correspond à chaque langue présente dans ce pays.",c3Unit:"langues présentes dans le pays (une langue transfrontalière compte dans chacun)"}},em={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."},tm={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"}},om={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple ."},nm={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},am={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},sm={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},rm={"%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."},im={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"},upg100Placeholder:"Rechercher un peuple, une liste UPG-100 ou une région…"},lm={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",mapToken:"Jeton de carte",tokenPaste:"Jeton public Mapbox (pk.…)",tokenUrlLabel:"…ou l’URL d’un service de jetons",tokenApply:"Utiliser",tokenClear:"Effacer",tokenStoredHere:"Conservé dans ce navigateur uniquement.",tokenSourceYours:"Votre jeton est utilisé",tokenSourceUrl:"Jeton obtenu de {url}",tokenSourceBuilt:"Jeton intégré à cette page",tokenSourceNone:"Aucun jeton Mapbox : les cartes Mapbox ne peuvent pas charger (MapLibre n’en a pas besoin)",tokenSecret:"C’est un jeton secret (sk.…). Collez un jeton public (pk.…) : cette page est publique.",tokenNotPk:"Un jeton public Mapbox commence par pk.",tokenUrlFailed:"Impossible d’obtenir un jeton depuis cette URL : {why}",settings:"Paramètres",mapEngine:"Moteur de carte",engineDefault:"Celui de chaque carte",engineMapboxNote:"nécessite un jeton",engineMaplibreNote:"aucun jeton requis",tokenNotNeeded:"MapLibre est sélectionné : ses cartes n’ont pas besoin de jeton Mapbox"},cm={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"},um={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."},dm={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},pm={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},gm={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:"प्रति पंक्ति पोस्टर"},fm={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 रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},hm={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:"मानचित्र नियंत्रण"},mm={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:"स्थान"},$m={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},bm={_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:"यीशु फ़िल्म",audioScripture:"ऑडियो पवित्र शास्त्र",bibleStoriesPlain:"बाइबल की कहानियाँ"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"},charts:{scriptureAny:"पवित्र शास्त्र (कोई भी)",fullBible:"पूरी बाइबल",newTestament:"नया नियम",filmAny:"फ़िल्म (कोई भी)",nothingInPools:"जाँचे गए स्रोतों में कुछ नहीं मिला",nothingInPoolsLower:"जाँचे गए स्रोतों में कुछ नहीं मिला",noResourceInPools:"जाँचे गए स्रोतों में कोई संसाधन नहीं मिला",aResourceFound:"एक संसाधन मिला",tabCoverage:"संसाधन कवरेज",tabGap:"सबसे बड़े अंतराल",keyScripture:"पवित्र शास्त्र",keyFilmStories:"फ़िल्म / कहानियाँ",keyAudioEtc:"ऑडियो / प्रस्तुति / प्रशिक्षण",unresolvedCode:"ISO 639-3 से बाहर कोड — अनसुलझा, मापा नहीं गया",c1Title:"क्या मिला, संसाधन के प्रकार के अनुसार",c1Sub:"डेटा की सभी {n} भाषाओं में। हर बार भाषाओं की गिनती करता है, जनसमूहों की नहीं।",c1Unit:"भाषाएँ जिनमें जाँचे गए स्रोतों में संसाधन मिला",c2Title:"सबसे बड़ी आबादी जिनके लिए कुछ नहीं मिला",c2Sub:"{n} भाषाएँ जिनके लिए जाँचे गए स्रोतों में न पवित्र शास्त्र है न फ़िल्म, उन्हें बोलने वाले जनसमूहों की आबादी के क्रम में।",c2Unit:"उन जनसमूहों के लोग जिनकी मुख्य भाषा यही है — भाषा के सभी वक्ता नहीं",c3Title:"सबसे अधिक असेवित भाषाओं वाले देश",c3Sub:"{n} देश जिनमें सबसे अधिक भाषाओं के लिए कुछ नहीं मिला। बार की लंबाई उस देश में मौजूद हर भाषा है।",c3Unit:"देश में मौजूद भाषाएँ (सीमा-पार भाषा हर देश में गिनी जाती है)"}},_m={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:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},ym={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:"चयन हटाएँ"}},vm={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},km={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},wm={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},xm={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Sm={"%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.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Lm={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},Am={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} का भाग, अलग से प्रकाशित नहीं",mapToken:"मानचित्र टोकन",tokenPaste:"Mapbox सार्वजनिक टोकन (pk.…)",tokenUrlLabel:"…या किसी टोकन सेवा का URL",tokenApply:"उपयोग करें",tokenClear:"साफ़ करें",tokenStoredHere:"केवल इसी ब्राउज़र में रखा जाता है।",tokenSourceYours:"आपका टोकन उपयोग हो रहा है",tokenSourceUrl:"{url} से टोकन उपयोग हो रहा है",tokenSourceBuilt:"इस पेज में बना टोकन उपयोग हो रहा है",tokenSourceNone:"कोई Mapbox टोकन नहीं: Mapbox मानचित्र लोड नहीं हो सकते (MapLibre को इसकी ज़रूरत नहीं)",tokenSecret:"यह एक गुप्त टोकन है (sk.…)। सार्वजनिक टोकन (pk.…) चिपकाएँ: यह पेज सार्वजनिक है।",tokenNotPk:"Mapbox सार्वजनिक टोकन pk. से शुरू होता है",tokenUrlFailed:"उस URL से टोकन नहीं मिल सका: {why}",settings:"सेटिंग्स",mapEngine:"मानचित्र इंजन",engineDefault:"हर मानचित्र का अपना",engineMapboxNote:"टोकन चाहिए",engineMaplibreNote:"टोकन की ज़रूरत नहीं",tokenNotNeeded:"MapLibre चुना गया है: इसके मानचित्रों को Mapbox टोकन नहीं चाहिए"},Pm={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:"मानचित्र"},Em={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 आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Cm={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}"},Tm={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},Nm={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"},Rm={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."}},Mm={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"},Om={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"},Fm={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Im={_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Ù",audioScripture:"Scritture in audio",bibleStoriesPlain:"Storie bibliche"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"},charts:{scriptureAny:"Scritture (qualsiasi)",fullBible:"Bibbia completa",newTestament:"Nuovo Testamento",filmAny:"Film (qualsiasi)",nothingInPools:"Nulla trovato nelle fonti controllate",nothingInPoolsLower:"nulla trovato nelle fonti controllate",noResourceInPools:"nessuna risorsa trovata nelle fonti controllate",aResourceFound:"una risorsa trovata",tabCoverage:"Copertura delle risorse",tabGap:"Lacune maggiori",keyScripture:"scritture",keyFilmStories:"film / storie",keyAudioEtc:"audio / presentazione / formazione",unresolvedCode:"codice fuori ISO 639-3 — non risolto, non misurato",c1Title:"Che cosa è stato TROVATO, per tipo di risorsa",c1Sub:"Su tutte le {n} lingue del corpus. Ogni barra conta LINGUE, non gruppi etnici.",c1Unit:"lingue in cui la risorsa è stata trovata nelle fonti controllate",c2Title:"Popolazioni più numerose senza nulla trovato",c2Sub:"Le {n} lingue senza Scritture né film nelle fonti controllate, ordinate per la popolazione dei gruppi che le parlano.",c2Unit:"persone nei gruppi la cui lingua PRINCIPALE è questa — non i parlanti della lingua",c3Title:"Paesi con più lingue non servite",c3Sub:"I {n} paesi con più lingue per cui non è stato trovato nulla. La lunghezza della barra è ogni lingua presente in quel paese.",c3Unit:"lingue presenti nel paese (una lingua transfrontaliera conta in ciascuno)"}},Dm={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."},Um={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"}},Gm={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo ."},jm={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},zm={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},Bm={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Vm={"%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."},qm={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"},upg100Placeholder:"Cerca popolo, elenco UPG-100 o regione…"},Hm={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",mapToken:"Token mappa",tokenPaste:"Token pubblico Mapbox (pk.…)",tokenUrlLabel:"…o l’URL di un servizio di token",tokenApply:"Usa",tokenClear:"Cancella",tokenStoredHere:"Conservato solo in questo browser.",tokenSourceYours:"Uso il tuo token",tokenSourceUrl:"Uso un token da {url}",tokenSourceBuilt:"Uso il token integrato in questa pagina",tokenSourceNone:"Nessun token Mapbox: le mappe Mapbox non si caricano (MapLibre non ne ha bisogno)",tokenSecret:"Questo è un token segreto (sk.…). Incolla un token pubblico (pk.…): questa pagina è pubblica.",tokenNotPk:"Un token pubblico Mapbox inizia con pk.",tokenUrlFailed:"Impossibile ottenere un token da quell’URL: {why}",settings:"Impostazioni",mapEngine:"Motore mappe",engineDefault:"Quello di ogni mappa",engineMapboxNote:"richiede un token",engineMaplibreNote:"nessun token necessario",tokenNotNeeded:"MapLibre è selezionato: le sue mappe non richiedono un token Mapbox"},Wm={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"},Km={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."},Ym={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}"},Xm={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},Zm={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"},Jm={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."}},Qm={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"},e$={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"},t$={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."}},o$={_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",audioScripture:"Escrituras em áudio",bibleStoriesPlain:"Histórias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"},charts:{scriptureAny:"Escrituras (qualquer)",fullBible:"Bíblia completa",newTestament:"Novo Testamento",filmAny:"Filme (qualquer)",nothingInPools:"Nada encontrado nas fontes consultadas",nothingInPoolsLower:"nada encontrado nas fontes consultadas",noResourceInPools:"nenhum recurso encontrado nas fontes consultadas",aResourceFound:"um recurso encontrado",tabCoverage:"Cobertura de recursos",tabGap:"Maiores lacunas",keyScripture:"escrituras",keyFilmStories:"filme / histórias",keyAudioEtc:"áudio / apresentação / treinamento",unresolvedCode:"código fora da ISO 639-3 — não resolvido, não medido",c1Title:"O que foi ENCONTRADO, por tipo de recurso",c1Sub:"Em todas as {n} línguas do conjunto de dados. Cada barra conta LÍNGUAS, não etnias.",c1Unit:"línguas em que o recurso foi encontrado nas fontes consultadas",c2Title:"Maiores populações sem nada encontrado",c2Sub:"As {n} línguas sem Escrituras e sem filme nas fontes consultadas, ordenadas pela população das etnias que as falam.",c2Unit:"pessoas nas etnias cuja língua PRINCIPAL é esta — não falantes da língua",c3Title:"Países com mais línguas desatendidas",c3Sub:"Os {n} países com mais línguas sem nada encontrado. O comprimento da barra é cada língua presente nesse país.",c3Unit:"línguas presentes no país (uma língua transfronteiriça conta em cada um)"}},n$={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."},a$={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"}},s$={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo ."},r$={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},i$={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},l$={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},c$={"%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."},u$={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"},upg100Placeholder:"Procurar povo, lista UPG-100 ou região…"},d$={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",mapToken:"Token do mapa",tokenPaste:"Token público do Mapbox (pk.…)",tokenUrlLabel:"…ou o URL de um serviço de tokens",tokenApply:"Usar",tokenClear:"Limpar",tokenStoredHere:"Guardado apenas neste navegador.",tokenSourceYours:"A usar o seu token",tokenSourceUrl:"A usar um token de {url}",tokenSourceBuilt:"A usar o token incorporado nesta página",tokenSourceNone:"Sem token do Mapbox: os mapas Mapbox não carregam (os MapLibre não precisam)",tokenSecret:"Esse é um token secreto (sk.…). Cole um público (pk.…): esta página é pública.",tokenNotPk:"Um token público do Mapbox começa por pk.",tokenUrlFailed:"Não foi possível obter um token desse URL: {why}",settings:"Definições",mapEngine:"Motor de mapas",engineDefault:"O de cada mapa",engineMapboxNote:"precisa de um token",engineMaplibreNote:"não precisa de token",tokenNotNeeded:"MapLibre está selecionado: os seus mapas não precisam de token do Mapbox"},p$={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"},g$={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."},f$={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}"},h$={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},m$={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"},$$={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ă."}},b$={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"},_$={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"},y$={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ă."}},v$={_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",audioScripture:"Scripturi audio",bibleStoriesPlain:"Povestiri biblice"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"},charts:{scriptureAny:"Scripturi (oricare)",fullBible:"Biblia completă",newTestament:"Noul Testament",filmAny:"Film (oricare)",nothingInPools:"Nimic găsit în sursele verificate",nothingInPoolsLower:"nimic găsit în sursele verificate",noResourceInPools:"nicio resursă găsită în sursele verificate",aResourceFound:"o resursă găsită",tabCoverage:"Acoperirea resurselor",tabGap:"Cele mai mari lacune",keyScripture:"scripturi",keyFilmStories:"film / povestiri",keyAudioEtc:"audio / prezentare / instruire",unresolvedCode:"cod în afara ISO 639-3 — nerezolvat, nemăsurat",c1Title:"Ce s-a GĂSIT, după tipul resursei",c1Sub:"Pe toate cele {n} limbi din setul de date. Fiecare bară numără LIMBI, nu grupuri etnice.",c1Unit:"limbi în care resursa a fost găsită în sursele verificate",c2Title:"Cele mai mari populații fără nimic găsit",c2Sub:"Cele {n} limbi fără Scripturi și fără film în sursele verificate, ordonate după populația grupurilor care le vorbesc.",c2Unit:"persoane din grupurile a căror limbă PRINCIPALĂ este aceasta — nu vorbitorii limbii",c3Title:"Țări cu cele mai multe limbi neservite",c3Sub:"Cele {n} țări cu cele mai multe limbi pentru care nu s-a găsit nimic. Lungimea barei este fiecare limbă prezentă în acea țară.",c3Unit:"limbi prezente în țară (o limbă transfrontalieră se numără în fiecare)"}},k$={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."},w$={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"}},x$={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor ."},S$={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},L$={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},A$={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},P$={"%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."},E$={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"},upg100Placeholder:"Caută popor, listă UPG-100 sau regiune…"},C$={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",mapToken:"Token hartă",tokenPaste:"Token public Mapbox (pk.…)",tokenUrlLabel:"…sau adresa URL a unui serviciu de tokenuri",tokenApply:"Folosește",tokenClear:"Șterge",tokenStoredHere:"Păstrat doar în acest browser.",tokenSourceYours:"Se folosește tokenul tău",tokenSourceUrl:"Se folosește un token de la {url}",tokenSourceBuilt:"Se folosește tokenul inclus în această pagină",tokenSourceNone:"Niciun token Mapbox: hărțile Mapbox nu se pot încărca (MapLibre nu are nevoie)",tokenSecret:"Acesta este un token secret (sk.…). Lipește unul public (pk.…): pagina este publică.",tokenNotPk:"Un token public Mapbox începe cu pk.",tokenUrlFailed:"Nu s-a putut obține un token de la acea adresă: {why}",settings:"Setări",mapEngine:"Motor hărți",engineDefault:"Al fiecărei hărți",engineMapboxNote:"necesită un token",engineMaplibreNote:"nu necesită token",tokenNotNeeded:"MapLibre este selectat: hărțile sale nu necesită token Mapbox"},T$={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ă"},N$={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ă."},R$={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},M$={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},O$={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:"Плакатов в ряду"},F$={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; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},I$={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:"Элементы управления картой"},D$={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:"Место"},U$={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},G$={_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:"Фильм «Иисус»",audioScripture:"Аудио с Писанием",bibleStoriesPlain:"Библейские истории"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"},charts:{scriptureAny:"Писание (любое)",fullBible:"Полная Библия",newTestament:"Новый Завет",filmAny:"Фильм (любой)",nothingInPools:"Ничего не найдено в проверенных источниках",nothingInPoolsLower:"ничего не найдено в проверенных источниках",noResourceInPools:"ни одного ресурса не найдено в проверенных источниках",aResourceFound:"ресурс найден",tabCoverage:"Охват ресурсами",tabGap:"Наибольшие пробелы",keyScripture:"писание",keyFilmStories:"фильм / истории",keyAudioEtc:"аудио / презентация / обучение",unresolvedCode:"код вне ISO 639-3 — не определён, не измерен",c1Title:"Что НАЙДЕНО, по типу ресурса",c1Sub:"По всем {n} языкам в наборе данных. Каждый столбец считает ЯЗЫКИ, а не народы.",c1Unit:"языки, в которых ресурс найден в проверенных источниках",c2Title:"Самые многочисленные народы, для которых ничего не найдено",c2Sub:"{n} языков, для которых в проверенных источниках нет ни Писания, ни фильма, упорядоченные по численности говорящих на них народов.",c2Unit:"люди в народах, для которых это ОСНОВНОЙ язык, — не все говорящие на нём",c3Title:"Страны с наибольшим числом неохваченных языков",c3Sub:"{n} стран с наибольшим числом языков, для которых ничего не найдено. Длина столбца — каждый язык, присутствующий в этой стране.",c3Unit:"языки, присутствующие в стране (трансграничный язык считается в каждой)"}},j$={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:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},z$={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:"Снять выделение"}},B$={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа ."},V$={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},q$={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},H$={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},W$={"%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.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},K$={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},Y$={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}, не публикуется отдельно",mapToken:"Токен карты",tokenPaste:"Публичный токен Mapbox (pk.…)",tokenUrlLabel:"…или адрес службы токенов",tokenApply:"Применить",tokenClear:"Очистить",tokenStoredHere:"Хранится только в этом браузере.",tokenSourceYours:"Используется ваш токен",tokenSourceUrl:"Используется токен с {url}",tokenSourceBuilt:"Используется токен, встроенный в страницу",tokenSourceNone:"Нет токена Mapbox: карты Mapbox не загрузятся (MapLibre он не нужен)",tokenSecret:"Это секретный токен (sk.…). Вставьте публичный (pk.…): эта страница общедоступна.",tokenNotPk:"Публичный токен Mapbox начинается с pk.",tokenUrlFailed:"Не удалось получить токен по этому адресу: {why}",settings:"Настройки",mapEngine:"Движок карт",engineDefault:"Свой у каждой карты",engineMapboxNote:"нужен токен",engineMaplibreNote:"токен не нужен",tokenNotNeeded:"Выбран MapLibre: его картам не нужен токен Mapbox"},X$={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:"Карта"},Z$={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 по народу и стране. Не все из них рубежные."},J$={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},Q$={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},eb={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:"每行海报数"},tb={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 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},ob={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:"地图控件"},nb={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:"地点"},ab={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},sb={_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:"《耶稣传》",audioScripture:"音频圣经",bibleStoriesPlain:"圣经故事"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"},charts:{scriptureAny:"圣经(任意)",fullBible:"全本圣经",newTestament:"新约",filmAny:"影片(任意)",nothingInPools:"在已检索的资源库中一无所获",nothingInPoolsLower:"在已检索的资源库中一无所获",noResourceInPools:"在已检索的资源库中未找到资源",aResourceFound:"找到资源",tabCoverage:"资源覆盖",tabGap:"最大缺口",keyScripture:"圣经",keyFilmStories:"影片 / 故事",keyAudioEtc:"音频 / 简介 / 训练",unresolvedCode:"ISO 639-3 之外的代码 — 未确定,未测量",c1Title:"按资源类型统计已找到的内容",c1Sub:"涵盖数据中全部 {n} 种语言。每个条形统计的是语言,不是族群。",c1Unit:"在已检索的资源库中找到该资源的语言",c2Title:"一无所获的最大人口",c2Sub:"在已检索的资源库中既无圣经也无影片的 {n} 种语言,按使用这些语言的族群人口排序。",c2Unit:"以该语言为主要语言的族群人口 — 不是该语言的全部使用者",c3Title:"未得服事语言最多的国家",c3Sub:"一无所获语言最多的 {n} 个国家。条形长度为该国存在的全部语言。",c3Unit:"该国存在的语言(跨境语言在每个国家各计一次)"}},rb={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:"无法加载民族数据。这是连接问题,而不是筛选问题。"},ib={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:"清除选择"}},lb={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字 為他們禱告。"},cb={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},ub={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},db={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},pb={"%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.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},gb={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"},fb={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} 的一部分,不单独发布",mapToken:"地图令牌",tokenPaste:"Mapbox 公开令牌 (pk.…)",tokenUrlLabel:"…或令牌服务的网址",tokenApply:"使用",tokenClear:"清除",tokenStoredHere:"仅保存在此浏览器中。",tokenSourceYours:"正在使用您的令牌",tokenSourceUrl:"正在使用来自 {url} 的令牌",tokenSourceBuilt:"正在使用此页面内置的令牌",tokenSourceNone:"没有 Mapbox 令牌:Mapbox 地图无法加载(MapLibre 地图不需要)",tokenSecret:"这是秘密令牌 (sk.…)。请粘贴公开令牌 (pk.…):此页面是公开的。",tokenNotPk:"Mapbox 公开令牌以 pk. 开头",tokenUrlFailed:"无法从该网址获取令牌:{why}",settings:"设置",mapEngine:"地图引擎",engineDefault:"各地图自身的",engineMapboxNote:"需要令牌",engineMaplibreNote:"无需令牌",tokenNotNeeded:"已选择 MapLibre:其地图无需 Mapbox 令牌"},hb={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:"地圖"},mb={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*!
+ */let oc;const Ja=e=>oc=e,nc=Symbol();function lr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ea;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ea||(ea={}));function hf(){const e=xs(!0),t=e.run(()=>ue({}));let o=[],n=[];const a=On({install(s){Ja(a),a._a=s,s.provide(nc,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 ac=()=>{};function sc(e,t,o,n=ac){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&_l()&&qp(a),a}function mn(e,...t){e.slice().forEach(o=>{o(...t)})}const mf=e=>e(),rc=Symbol(),ir=Symbol();function cr(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];lr(a)&&lr(n)&&e.hasOwnProperty(o)&&!at(n)&&!go(n)?e[o]=cr(a,n):e[o]=n}return e}const $f=Symbol();function bf(e){return!lr(e)||!e.hasOwnProperty($f)}const{assign:No}=Object;function _f(e){return!!(at(e)&&e.effect)}function yf(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=gd(o.state.value[e]);return No(u,s,Object.keys(r||{}).reduce((p,h)=>(p[h]=On(re(()=>{Ja(o);const _=o._s.get(e);return r[h].call(_,_)})),p),{}))}return i=lc(e,c,t,o,n,!0),i}function lc(e,t,o={},n,a,s){let r;const l=No({actions:{}},o),i={deep:!0};let c,u,p=[],h=[],_;const S=n.state.value[e];!s&&!S&&(n.state.value[e]={});let k;function A(w){let P;c=u=!1,typeof w=="function"?(w(n.state.value[e]),P={type:ea.patchFunction,storeId:e,events:_}):(cr(n.state.value[e],w),P={type:ea.patchObject,payload:w,storeId:e,events:_});const q=k=Symbol();Ho().then(()=>{k===q&&(c=!0)}),u=!0,mn(p,P,n.state.value[e])}const C=s?function(){const{state:P}=o,q=P?P():{};this.$patch(M=>{No(M,q)})}:ac;function m(){r.stop(),p=[],h=[],n._s.delete(e)}const d=(w,P="")=>{if(rc in w)return w[ir]=P,w;const q=function(){Ja(n);const M=Array.from(arguments),z=[],ae=[];function I(F){z.push(F)}function H(F){ae.push(F)}mn(h,{args:M,name:q[ir],store:$,after:I,onError:H});let B;try{B=w.apply(this&&this.$id===e?this:$,M)}catch(F){throw mn(ae,F),F}return B instanceof Promise?B.then(F=>(mn(z,F),F)).catch(F=>(mn(ae,F),Promise.reject(F))):(mn(z,B),B)};return q[rc]=!0,q[ir]=P,q},f={_p:n,$id:e,$onAction:sc.bind(null,h),$patch:A,$reset:C,$subscribe(w,P={}){const q=sc(p,w,P.detached,()=>M()),M=r.run(()=>ct(()=>n.state.value[e],z=>{(P.flush==="sync"?u:c)&&w({storeId:e,type:ea.direct,events:_},z)},No({},i,P)));return q},$dispose:m},$=Vo(f);n._s.set(e,$);const y=(n._a&&n._a.runWithContext||mf)(()=>n._e.run(()=>(r=xs()).run(()=>t({action:d}))));for(const w in y){const P=y[w];if(at(P)&&!_f(P)||go(P))s||(S&&bf(P)&&(at(P)?P.value=S[w]:cr(P,S[w])),n.state.value[e][w]=P);else if(typeof P=="function"){const q=d(P,w);y[w]=q,l.actions[w]=P}}return No($,y),No(Ve($),y),Object.defineProperty($,"$state",{get:()=>n.state.value[e],set:w=>{A(P=>{No(P,w)})}}),n._p.forEach(w=>{No($,r.run(()=>w({store:$,app:n._a,pinia:n,options:l})))}),S&&s&&o.hydrate&&o.hydrate($.$state,S),c=!0,u=!0,$}/*! #__NO_SIDE_EFFECTS__ */function ur(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=Ld();return l=l||(c?Te(nc,null):null),l&&Ja(l),l=oc,l._s.has(n)||(s?lc(n,t,a,l):yf(n,a,l)),l._s.get(n)}return r.$id=n,r}const pr="__doxaMapToken",dr="doxa:map-token",ic="__doxaMapTokenBridge",$n=()=>{if(typeof window>"u")return"";const e=window[pr];return typeof e=="string"?e:""};function cc(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===$n())return $n();window[pr]=t;try{window.dispatchEvent(new CustomEvent(dr,{detail:t}))}catch{}return t}function vf(){if(typeof window>"u"||window[ic])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!$n()&&(window[pr]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return $n()},set(t){cc(t)}}),window[ic]=!0}catch{}}function kf(){vf();const e=ue($n());if(typeof window<"u"){const t=()=>{e.value=$n()};window.addEventListener(dr,t);try{Ot(()=>window.removeEventListener(dr,t))}catch{}}return e}function wf(e){return Dd({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const xf={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},Sf={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها",searchPeopleGroups:"ابحث عن الشعوب",resetAllFilters:"إعادة تعيين كل عوامل التصفية والبحث",selectAllRows:"تحديد كل الصفوف",deselectAllRows:"إلغاء تحديد كل الصفوف"},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:"الملصقات في كل صف"},Lf={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 — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},Pf={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:"أدوات التحكم بالخريطة"},Ef={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:"المكان",export_csv:"تصدير CSV",detail:"التفاصيل",detail_empty:"اختر شعبًا لعرض التفاصيل",heartbeat_zone:"منطقة نبض القلب",top_countries:"أبرز الدول",select_all:"تحديد الكل",expand_table:"توسيع الجدول",collapse_table:"طيّ الجدول — توسيع الخريطة",group:"مجموعة",deselect_all:"إلغاء تحديد الكل"},Cf={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Rf={_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:"فيلم يسوع",audioScripture:"الكتاب المقدس الصوتي",bibleStoriesPlain:"قصص الكتاب المقدس"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"},charts:{scriptureAny:"الكتاب المقدس (أي نوع)",fullBible:"الكتاب المقدس كاملاً",newTestament:"العهد الجديد",filmAny:"الفيلم (أي نوع)",nothingInPools:"لا شيء في المصادر التي جرى البحث فيها",nothingInPoolsLower:"لا شيء في المصادر التي جرى البحث فيها",noResourceInPools:"لم يُعثر على أي مورد في المصادر التي جرى البحث فيها",aResourceFound:"وُجد مورد",tabCoverage:"تغطية الموارد",tabGap:"أكبر الفجوات",keyScripture:"الكتاب المقدس",keyFilmStories:"الفيلم / القصص",keyAudioEtc:"صوتيات / عرض / تدريب",unresolvedCode:"رمز خارج ISO 639-3 — غير محسوم، لم يُقَس",c1Title:"ما الذي وُجد، بحسب نوع المورد",c1Sub:"عبر جميع اللغات البالغة {n} في مجموعة البيانات. كل عمود يَعُدّ اللغات، لا الشعوب.",c1Unit:"لغات وُجد فيها المورد ضمن المصادر التي جرى البحث فيها",c2Title:"أكبر التجمعات السكانية التي لم يُعثر لها على شيء",c2Sub:"اللغات الـ{n} التي لا يوجد لها كتاب مقدس ولا فيلم في المصادر التي جرى البحث فيها، مرتَّبة بحسب عدد سكان الشعوب التي تتحدثها.",c2Unit:"أشخاص في الشعوب التي هذه لغتها الأساسية — لا المتحدثين بها عمومًا",c3Title:"البلدان الأكثر لغاتٍ غير مخدومة",c3Sub:"البلدان الـ{n} الأكثر لغاتٍ لم يُعثر لها على شيء. طول العمود هو كل لغة موجودة في ذلك البلد.",c3Unit:"لغات موجودة في البلد (اللغة العابرة للحدود تُحتسب في كل بلد)"}},Tf={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:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية.",search_people_or_countries:"ابحث عن الشعوب أو الدول…"},Nf={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:"إلغاء التحديد"}},Mf={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم ."},Ff={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Of={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},If={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Df={"%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.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Gf={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},Uf={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}، غير منشور بمفرده",mapToken:"رمز الخريطة",tokenPaste:"رمز Mapbox العام (pk.…)",tokenUrlLabel:"…أو رابط خدمة الرموز",tokenApply:"استخدام",tokenClear:"مسح",tokenStoredHere:"يُحفظ في هذا المتصفح فقط.",tokenSourceYours:"يُستخدم رمزك",tokenSourceUrl:"يُستخدم رمز من {url}",tokenSourceBuilt:"يُستخدم الرمز المضمَّن في هذه الصفحة",tokenSourceNone:"لا يوجد رمز Mapbox: لا يمكن تحميل خرائط Mapbox (خرائط MapLibre لا تحتاج رمزًا)",tokenSecret:"هذا رمز سري (sk.…). الصق رمزًا عامًا (pk.…): هذه الصفحة عامة.",tokenNotPk:"يبدأ رمز Mapbox العام بـ pk.",tokenUrlFailed:"تعذّر الحصول على رمز من هذا الرابط: {why}",settings:"الإعدادات",mapEngine:"محرّك الخرائط",engineDefault:"الافتراضي لكل خريطة",engineMapboxNote:"يحتاج إلى رمز",engineMaplibreNote:"لا يحتاج إلى رمز",tokenNotNeeded:"تم اختيار MapLibre: خرائطه لا تحتاج إلى رمز Mapbox"},zf={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:"الخريطة"},jf={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 حسب الشعب والبلد. ليست كلها حدودية."},Bf={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}"},Vf={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden",searchPeopleGroups:"Volksgruppen suchen",resetAllFilters:"Alle Filter und die Suche zurücksetzen",selectAllRows:"Alle Zeilen auswählen",deselectAllRows:"Auswahl aller Zeilen aufheben"},qf={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"},Hf={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."}},Wf={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"},Kf={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",export_csv:"CSV exportieren",detail:"Details",detail_empty:"Wählen Sie eine Volksgruppe, um Details zu sehen",heartbeat_zone:"Herzschlag-Zone",top_countries:"Top-Länder",select_all:"Alle auswählen",expand_table:"Tabelle ausklappen",collapse_table:"Tabelle einklappen – Karte vergrößern",group:"Volksgruppe",deselect_all:"Auswahl aufheben"},Yf={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Xf={_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",audioScripture:"Audio-Bibeltext",bibleStoriesPlain:"Bibelgeschichten"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"},charts:{scriptureAny:"Bibeltext (beliebig)",fullBible:"Vollbibel",newTestament:"Neues Testament",filmAny:"Film (beliebig)",nothingInPools:"Nichts in den geprüften Quellen gefunden",nothingInPoolsLower:"nichts in den geprüften Quellen gefunden",noResourceInPools:"keine Ressource in den geprüften Quellen gefunden",aResourceFound:"eine Ressource gefunden",tabCoverage:"Ressourcenabdeckung",tabGap:"Größte Lücken",keyScripture:"Bibeltext",keyFilmStories:"Film / Geschichten",keyAudioEtc:"Audio / Präsentation / Schulung",unresolvedCode:"Code außerhalb ISO 639-3 — ungeklärt, nicht gemessen",c1Title:"Was GEFUNDEN wurde, nach Ressourcentyp",c1Sub:"Über alle {n} Sprachen im Datenbestand. Jeder Balken zählt SPRACHEN, nicht Volksgruppen.",c1Unit:"Sprachen, in denen die Ressource in den geprüften Quellen gefunden wurde",c2Title:"Größte Bevölkerungen ohne jeden Fund",c2Sub:"Die {n} Sprachen ohne Bibeltext und ohne Film in den geprüften Quellen, sortiert nach der Bevölkerung der Volksgruppen, die sie sprechen.",c2Unit:"Menschen in den Volksgruppen, deren PRIMÄRE Sprache dies ist — nicht Sprecher der Sprache",c3Title:"Länder mit den meisten unversorgten Sprachen",c3Sub:"Die {n} Länder mit den meisten Sprachen, für die nichts gefunden wurde. Die Balkenlänge ist jede im Land vorhandene Sprache.",c3Unit:"im Land vorhandene Sprachen (eine grenzüberschreitende Sprache zählt in jedem Land)"}},Zf={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.",search_people_or_countries:"Volksgruppen oder Länder suchen…"},Jf={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"}},Qf={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},eh={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},th={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},oh={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},nh={"%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."},ah={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"},upg100Placeholder:"Volksgruppe, UPG-100-Liste oder Region suchen…"},sh={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",mapToken:"Karten-Token",tokenPaste:"Öffentlicher Mapbox-Token (pk.…)",tokenUrlLabel:"…oder die URL eines Token-Dienstes",tokenApply:"Verwenden",tokenClear:"Löschen",tokenStoredHere:"Nur in diesem Browser gespeichert.",tokenSourceYours:"Ihr Token wird verwendet",tokenSourceUrl:"Token von {url} wird verwendet",tokenSourceBuilt:"Der in diese Seite eingebaute Token wird verwendet",tokenSourceNone:"Kein Mapbox-Token: Mapbox-Karten können nicht laden (MapLibre-Karten brauchen keinen)",tokenSecret:"Das ist ein geheimer Token (sk.…). Fügen Sie einen öffentlichen ein (pk.…): Diese Seite ist öffentlich.",tokenNotPk:"Ein öffentlicher Mapbox-Token beginnt mit pk.",tokenUrlFailed:"Von dieser URL kam kein Token: {why}",settings:"Einstellungen",mapEngine:"Karten-Engine",engineDefault:"Je Karte eigenes",engineMapboxNote:"braucht einen Token",engineMaplibreNote:"kein Token nötig",tokenNotNeeded:"MapLibre ist gewählt: Seine Karten brauchen keinen Mapbox-Token"},rh={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"},lh={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."},ih={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}"},ch={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend",searchPeopleGroups:"Search people groups",resetAllFilters:"Reset all filters and search",selectAllRows:"Select all rows",deselectAllRows:"Deselect all rows"},uh={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"},ph={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."}},dh={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"},gh={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",export_csv:"Export CSV",detail:"Detail",detail_empty:"Select a people group to see detail",heartbeat_zone:"heartbeat zone",top_countries:"Top countries",select_all:"Select all",expand_table:"Expand table",collapse_table:"Collapse table — grow the map",group:"group",deselect_all:"Deselect all"},fh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},hh={_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",audioScripture:"Audio Scripture",bibleStoriesPlain:"Bible Stories"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"},charts:{scriptureAny:"Scripture (any)",fullBible:"Full Bible",newTestament:"New Testament",filmAny:"Film (any)",nothingInPools:"Nothing found in pools checked",nothingInPoolsLower:"nothing found in pools checked",noResourceInPools:"no resource found in pools checked",aResourceFound:"a resource found",tabCoverage:"Resource coverage",tabGap:"Largest gaps",keyScripture:"scripture",keyFilmStories:"film / stories",keyAudioEtc:"audio / presentation / training",unresolvedCode:"code outside ISO 639-3 — unresolved, not measured",c1Title:"What was FOUND, by resource type",c1Sub:"Across all {n} languages in the corpus. Each bar counts LANGUAGES, not people groups.",c1Unit:"languages where the resource was found in the pools checked",c2Title:"Largest populations with nothing found",c2Sub:"The {n} languages with no scripture and no film in the pools checked, ranked by the population of the people groups who speak them.",c2Unit:"people in the people groups whose PRIMARY language this is — not speakers of the language",c3Title:"Countries with the most unserved languages",c3Sub:"The {n} countries with the most languages that have nothing found. Bar length is every language present in that country.",c3Unit:"languages present in the country (a cross-border language counts in each)"}},mh={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.",search_people_or_countries:"Search people groups or countries…"},$h={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"}},bh={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name ."},_h={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},yh={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},vh={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},kh={"%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."},wh={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"},upg100Placeholder:"Search people group, UPG-100 list, or region…"},xh={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",mapToken:"Map token",tokenPaste:"Mapbox public token (pk.…)",tokenUrlLabel:"…or the URL of a token service",tokenApply:"Use",tokenClear:"Clear",tokenStoredHere:"Kept in this browser only.",tokenSourceYours:"Using your token",tokenSourceUrl:"Using a token from {url}",tokenSourceBuilt:"Using the token built into this page",tokenSourceNone:"No Mapbox token: Mapbox maps cannot load (MapLibre maps need none)",tokenSecret:"That is a secret token (sk.…). Paste a public one (pk.…): this page is public.",tokenNotPk:"A Mapbox public token starts with pk.",tokenUrlFailed:"Could not get a token from that URL: {why}",settings:"Settings",mapEngine:"Map engine",engineDefault:"Each map’s own",engineMapboxNote:"needs a token",engineMaplibreNote:"no token needed",tokenNotNeeded:"MapLibre is selected: its maps need no Mapbox token"},Sh={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"},Ah={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."},Lh={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}"},Ph={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda",searchPeopleGroups:"Buscar pueblos",resetAllFilters:"Restablecer todos los filtros y la búsqueda",selectAllRows:"Seleccionar todas las filas",deselectAllRows:"Deseleccionar todas las filas"},Eh={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"},Ch={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."}},Rh={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"},Th={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",export_csv:"Exportar CSV",detail:"Detalle",detail_empty:"Selecciona un pueblo para ver el detalle",heartbeat_zone:"zona del latido",top_countries:"Países principales",select_all:"Seleccionar todo",expand_table:"Expandir tabla",collapse_table:"Contraer tabla — ampliar el mapa",group:"pueblo",deselect_all:"Deseleccionar todo"},Nh={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."}},Mh={_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",audioScripture:"Escrituras en audio",bibleStoriesPlain:"Historias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"},charts:{scriptureAny:"Escrituras (cualquiera)",fullBible:"Biblia completa",newTestament:"Nuevo Testamento",filmAny:"Película (cualquiera)",nothingInPools:"No se encontró nada en las fuentes consultadas",nothingInPoolsLower:"no se encontró nada en las fuentes consultadas",noResourceInPools:"no se encontró ningún recurso en las fuentes consultadas",aResourceFound:"se encontró un recurso",tabCoverage:"Cobertura de recursos",tabGap:"Mayores brechas",keyScripture:"escrituras",keyFilmStories:"película / historias",keyAudioEtc:"audio / presentación / formación",unresolvedCode:"código fuera de ISO 639-3 — sin resolver, no medido",c1Title:"Qué se ENCONTRÓ, por tipo de recurso",c1Sub:"En las {n} lenguas del conjunto de datos. Cada barra cuenta LENGUAS, no etnias.",c1Unit:"lenguas en las que se encontró el recurso en las fuentes consultadas",c2Title:"Mayores poblaciones sin nada encontrado",c2Sub:"Las {n} lenguas sin escrituras ni película en las fuentes consultadas, ordenadas por la población de las etnias que las hablan.",c2Unit:"personas en las etnias cuya lengua PRINCIPAL es esta — no hablantes de la lengua",c3Title:"Países con más lenguas desatendidas",c3Sub:"Los {n} países con más lenguas sin nada encontrado. La longitud de la barra es cada lengua presente en ese país.",c3Unit:"lenguas presentes en el país (una lengua transfronteriza cuenta en cada uno)"}},Fh={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.",search_people_or_countries:"Buscar pueblos o países…"},Oh={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"}},Ih={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo ."},Dh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Gh={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},Uh={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},zh={"%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."},jh={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"},upg100Placeholder:"Buscar pueblo, lista UPG-100 o región…"},Bh={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",mapToken:"Token del mapa",tokenPaste:"Token público de Mapbox (pk.…)",tokenUrlLabel:"…o la URL de un servicio de tokens",tokenApply:"Usar",tokenClear:"Borrar",tokenStoredHere:"Se guarda solo en este navegador.",tokenSourceYours:"Usando tu token",tokenSourceUrl:"Usando un token de {url}",tokenSourceBuilt:"Usando el token integrado en esta página",tokenSourceNone:"Sin token de Mapbox: los mapas de Mapbox no cargan (los de MapLibre no lo necesitan)",tokenSecret:"Ese es un token secreto (sk.…). Pega uno público (pk.…): esta página es pública.",tokenNotPk:"Un token público de Mapbox empieza por pk.",tokenUrlFailed:"No se pudo obtener un token de esa URL: {why}",settings:"Ajustes",mapEngine:"Motor de mapas",engineDefault:"El de cada mapa",engineMapboxNote:"necesita un token",engineMaplibreNote:"no necesita token",tokenNotNeeded:"MapLibre está seleccionado: sus mapas no necesitan token de Mapbox"},Vh={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"},qh={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."},Hh={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}"},Wh={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",searchPeopleGroups:"Rechercher des peuples",resetAllFilters:"Réinitialiser tous les filtres et la recherche",selectAllRows:"Sélectionner toutes les lignes",deselectAllRows:"Désélectionner toutes les lignes"},Kh={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"},Yh={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."}},Xh={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},Zh={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu",export_csv:"Exporter en CSV",detail:"Détail",detail_empty:"Sélectionnez un peuple pour voir le détail",heartbeat_zone:"zone du battement de cœur",top_countries:"Principaux pays",select_all:"Tout sélectionner",expand_table:"Développer le tableau",collapse_table:"Réduire le tableau — agrandir la carte",group:"peuple",deselect_all:"Tout désélectionner"},Jh={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Qh={_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",audioScripture:"Écritures en audio",bibleStoriesPlain:"Histoires bibliques"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"},charts:{scriptureAny:"Écritures (toutes)",fullBible:"Bible complète",newTestament:"Nouveau Testament",filmAny:"Film (tous)",nothingInPools:"Rien trouvé dans les sources consultées",nothingInPoolsLower:"rien trouvé dans les sources consultées",noResourceInPools:"aucune ressource trouvée dans les sources consultées",aResourceFound:"une ressource trouvée",tabCoverage:"Couverture des ressources",tabGap:"Plus grands écarts",keyScripture:"écritures",keyFilmStories:"film / histoires",keyAudioEtc:"audio / présentation / formation",unresolvedCode:"code hors ISO 639-3 — non résolu, non mesuré",c1Title:"Ce qui a été TROUVÉ, par type de ressource",c1Sub:"Sur l'ensemble des {n} langues du corpus. Chaque barre compte des LANGUES, pas des peuples.",c1Unit:"langues où la ressource a été trouvée dans les sources consultées",c2Title:"Populations les plus nombreuses sans rien de trouvé",c2Sub:"Les {n} langues sans Écritures ni film dans les sources consultées, classées selon la population des peuples qui les parlent.",c2Unit:"personnes dans les peuples dont c'est la langue PRINCIPALE — non les locuteurs de la langue",c3Title:"Pays comptant le plus de langues non desservies",c3Sub:"Les {n} pays comptant le plus de langues sans rien de trouvé. La longueur de la barre correspond à chaque langue présente dans ce pays.",c3Unit:"langues présentes dans le pays (une langue transfrontalière compte dans chacun)"}},em={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.",search_people_or_countries:"Rechercher des peuples ou des pays…"},tm={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"}},om={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple ."},nm={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},am={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},sm={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},rm={"%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."},lm={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"},upg100Placeholder:"Rechercher un peuple, une liste UPG-100 ou une région…"},im={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",mapToken:"Jeton de carte",tokenPaste:"Jeton public Mapbox (pk.…)",tokenUrlLabel:"…ou l’URL d’un service de jetons",tokenApply:"Utiliser",tokenClear:"Effacer",tokenStoredHere:"Conservé dans ce navigateur uniquement.",tokenSourceYours:"Votre jeton est utilisé",tokenSourceUrl:"Jeton obtenu de {url}",tokenSourceBuilt:"Jeton intégré à cette page",tokenSourceNone:"Aucun jeton Mapbox : les cartes Mapbox ne peuvent pas charger (MapLibre n’en a pas besoin)",tokenSecret:"C’est un jeton secret (sk.…). Collez un jeton public (pk.…) : cette page est publique.",tokenNotPk:"Un jeton public Mapbox commence par pk.",tokenUrlFailed:"Impossible d’obtenir un jeton depuis cette URL : {why}",settings:"Paramètres",mapEngine:"Moteur de carte",engineDefault:"Celui de chaque carte",engineMapboxNote:"nécessite un jeton",engineMaplibreNote:"aucun jeton requis",tokenNotNeeded:"MapLibre est sélectionné : ses cartes n’ont pas besoin de jeton Mapbox"},cm={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"},um={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."},pm={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},dm={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ",searchPeopleGroups:"जनसमूह खोजें",resetAllFilters:"सभी फ़िल्टर और खोज रीसेट करें",selectAllRows:"सभी पंक्तियाँ चुनें",deselectAllRows:"सभी पंक्तियाँ अचयनित करें"},gm={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:"प्रति पंक्ति पोस्टर"},fm={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 रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},hm={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:"मानचित्र नियंत्रण"},mm={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:"स्थान",export_csv:"CSV निर्यात करें",detail:"विवरण",detail_empty:"विवरण देखने के लिए एक जनसमूह चुनें",heartbeat_zone:"हृदयगति क्षेत्र",top_countries:"शीर्ष देश",select_all:"सभी चुनें",expand_table:"तालिका विस्तृत करें",collapse_table:"तालिका संक्षिप्त करें — मानचित्र बड़ा करें",group:"जनसमूह",deselect_all:"सभी अचयनित करें"},$m={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},bm={_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:"यीशु फ़िल्म",audioScripture:"ऑडियो पवित्र शास्त्र",bibleStoriesPlain:"बाइबल की कहानियाँ"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"},charts:{scriptureAny:"पवित्र शास्त्र (कोई भी)",fullBible:"पूरी बाइबल",newTestament:"नया नियम",filmAny:"फ़िल्म (कोई भी)",nothingInPools:"जाँचे गए स्रोतों में कुछ नहीं मिला",nothingInPoolsLower:"जाँचे गए स्रोतों में कुछ नहीं मिला",noResourceInPools:"जाँचे गए स्रोतों में कोई संसाधन नहीं मिला",aResourceFound:"एक संसाधन मिला",tabCoverage:"संसाधन कवरेज",tabGap:"सबसे बड़े अंतराल",keyScripture:"पवित्र शास्त्र",keyFilmStories:"फ़िल्म / कहानियाँ",keyAudioEtc:"ऑडियो / प्रस्तुति / प्रशिक्षण",unresolvedCode:"ISO 639-3 से बाहर कोड — अनसुलझा, मापा नहीं गया",c1Title:"क्या मिला, संसाधन के प्रकार के अनुसार",c1Sub:"डेटा की सभी {n} भाषाओं में। हर बार भाषाओं की गिनती करता है, जनसमूहों की नहीं।",c1Unit:"भाषाएँ जिनमें जाँचे गए स्रोतों में संसाधन मिला",c2Title:"सबसे बड़ी आबादी जिनके लिए कुछ नहीं मिला",c2Sub:"{n} भाषाएँ जिनके लिए जाँचे गए स्रोतों में न पवित्र शास्त्र है न फ़िल्म, उन्हें बोलने वाले जनसमूहों की आबादी के क्रम में।",c2Unit:"उन जनसमूहों के लोग जिनकी मुख्य भाषा यही है — भाषा के सभी वक्ता नहीं",c3Title:"सबसे अधिक असेवित भाषाओं वाले देश",c3Sub:"{n} देश जिनमें सबसे अधिक भाषाओं के लिए कुछ नहीं मिला। बार की लंबाई उस देश में मौजूद हर भाषा है।",c3Unit:"देश में मौजूद भाषाएँ (सीमा-पार भाषा हर देश में गिनी जाती है)"}},_m={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:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।",search_people_or_countries:"जनसमूह या देश खोजें…"},ym={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:"चयन हटाएँ"}},vm={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},km={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},wm={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},xm={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Sm={"%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.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Am={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},Lm={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} का भाग, अलग से प्रकाशित नहीं",mapToken:"मानचित्र टोकन",tokenPaste:"Mapbox सार्वजनिक टोकन (pk.…)",tokenUrlLabel:"…या किसी टोकन सेवा का URL",tokenApply:"उपयोग करें",tokenClear:"साफ़ करें",tokenStoredHere:"केवल इसी ब्राउज़र में रखा जाता है।",tokenSourceYours:"आपका टोकन उपयोग हो रहा है",tokenSourceUrl:"{url} से टोकन उपयोग हो रहा है",tokenSourceBuilt:"इस पेज में बना टोकन उपयोग हो रहा है",tokenSourceNone:"कोई Mapbox टोकन नहीं: Mapbox मानचित्र लोड नहीं हो सकते (MapLibre को इसकी ज़रूरत नहीं)",tokenSecret:"यह एक गुप्त टोकन है (sk.…)। सार्वजनिक टोकन (pk.…) चिपकाएँ: यह पेज सार्वजनिक है।",tokenNotPk:"Mapbox सार्वजनिक टोकन pk. से शुरू होता है",tokenUrlFailed:"उस URL से टोकन नहीं मिल सका: {why}",settings:"सेटिंग्स",mapEngine:"मानचित्र इंजन",engineDefault:"हर मानचित्र का अपना",engineMapboxNote:"टोकन चाहिए",engineMaplibreNote:"टोकन की ज़रूरत नहीं",tokenNotNeeded:"MapLibre चुना गया है: इसके मानचित्रों को Mapbox टोकन नहीं चाहिए"},Pm={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:"मानचित्र"},Em={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 आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Cm={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}"},Rm={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda",searchPeopleGroups:"Cerca popoli",resetAllFilters:"Reimposta tutti i filtri e la ricerca",selectAllRows:"Seleziona tutte le righe",deselectAllRows:"Deseleziona tutte le righe"},Tm={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"},Nm={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."}},Mm={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"},Fm={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",export_csv:"Esporta CSV",detail:"Dettaglio",detail_empty:"Seleziona un popolo per vedere il dettaglio",heartbeat_zone:"zona del battito",top_countries:"Paesi principali",select_all:"Seleziona tutto",expand_table:"Espandi tabella",collapse_table:"Comprimi tabella — ingrandisci la mappa",group:"popolo",deselect_all:"Deseleziona tutto"},Om={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Im={_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Ù",audioScripture:"Scritture in audio",bibleStoriesPlain:"Storie bibliche"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"},charts:{scriptureAny:"Scritture (qualsiasi)",fullBible:"Bibbia completa",newTestament:"Nuovo Testamento",filmAny:"Film (qualsiasi)",nothingInPools:"Nulla trovato nelle fonti controllate",nothingInPoolsLower:"nulla trovato nelle fonti controllate",noResourceInPools:"nessuna risorsa trovata nelle fonti controllate",aResourceFound:"una risorsa trovata",tabCoverage:"Copertura delle risorse",tabGap:"Lacune maggiori",keyScripture:"scritture",keyFilmStories:"film / storie",keyAudioEtc:"audio / presentazione / formazione",unresolvedCode:"codice fuori ISO 639-3 — non risolto, non misurato",c1Title:"Che cosa è stato TROVATO, per tipo di risorsa",c1Sub:"Su tutte le {n} lingue del corpus. Ogni barra conta LINGUE, non gruppi etnici.",c1Unit:"lingue in cui la risorsa è stata trovata nelle fonti controllate",c2Title:"Popolazioni più numerose senza nulla trovato",c2Sub:"Le {n} lingue senza Scritture né film nelle fonti controllate, ordinate per la popolazione dei gruppi che le parlano.",c2Unit:"persone nei gruppi la cui lingua PRINCIPALE è questa — non i parlanti della lingua",c3Title:"Paesi con più lingue non servite",c3Sub:"I {n} paesi con più lingue per cui non è stato trovato nulla. La lunghezza della barra è ogni lingua presente in quel paese.",c3Unit:"lingue presenti nel paese (una lingua transfrontaliera conta in ciascuno)"}},Dm={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.",search_people_or_countries:"Cerca popoli o paesi…"},Gm={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"}},Um={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo ."},zm={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},jm={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},Bm={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Vm={"%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."},qm={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"},upg100Placeholder:"Cerca popolo, elenco UPG-100 o regione…"},Hm={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",mapToken:"Token mappa",tokenPaste:"Token pubblico Mapbox (pk.…)",tokenUrlLabel:"…o l’URL di un servizio di token",tokenApply:"Usa",tokenClear:"Cancella",tokenStoredHere:"Conservato solo in questo browser.",tokenSourceYours:"Uso il tuo token",tokenSourceUrl:"Uso un token da {url}",tokenSourceBuilt:"Uso il token integrato in questa pagina",tokenSourceNone:"Nessun token Mapbox: le mappe Mapbox non si caricano (MapLibre non ne ha bisogno)",tokenSecret:"Questo è un token segreto (sk.…). Incolla un token pubblico (pk.…): questa pagina è pubblica.",tokenNotPk:"Un token pubblico Mapbox inizia con pk.",tokenUrlFailed:"Impossibile ottenere un token da quell’URL: {why}",settings:"Impostazioni",mapEngine:"Motore mappe",engineDefault:"Quello di ogni mappa",engineMapboxNote:"richiede un token",engineMaplibreNote:"nessun token necessario",tokenNotNeeded:"MapLibre è selezionato: le sue mappe non richiedono un token Mapbox"},Wm={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"},Km={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."},Ym={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}"},Xm={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda",searchPeopleGroups:"Pesquisar povos",resetAllFilters:"Redefinir todos os filtros e a pesquisa",selectAllRows:"Selecionar todas as linhas",deselectAllRows:"Desmarcar todas as linhas"},Zm={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"},Jm={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."}},Qm={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"},e$={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",export_csv:"Exportar CSV",detail:"Detalhe",detail_empty:"Selecione um povo para ver o detalhe",heartbeat_zone:"zona do batimento",top_countries:"Principais países",select_all:"Selecionar tudo",expand_table:"Expandir tabela",collapse_table:"Recolher tabela — ampliar o mapa",group:"povo",deselect_all:"Desmarcar tudo"},t$={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."}},o$={_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",audioScripture:"Escrituras em áudio",bibleStoriesPlain:"Histórias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"},charts:{scriptureAny:"Escrituras (qualquer)",fullBible:"Bíblia completa",newTestament:"Novo Testamento",filmAny:"Filme (qualquer)",nothingInPools:"Nada encontrado nas fontes consultadas",nothingInPoolsLower:"nada encontrado nas fontes consultadas",noResourceInPools:"nenhum recurso encontrado nas fontes consultadas",aResourceFound:"um recurso encontrado",tabCoverage:"Cobertura de recursos",tabGap:"Maiores lacunas",keyScripture:"escrituras",keyFilmStories:"filme / histórias",keyAudioEtc:"áudio / apresentação / treinamento",unresolvedCode:"código fora da ISO 639-3 — não resolvido, não medido",c1Title:"O que foi ENCONTRADO, por tipo de recurso",c1Sub:"Em todas as {n} línguas do conjunto de dados. Cada barra conta LÍNGUAS, não etnias.",c1Unit:"línguas em que o recurso foi encontrado nas fontes consultadas",c2Title:"Maiores populações sem nada encontrado",c2Sub:"As {n} línguas sem Escrituras e sem filme nas fontes consultadas, ordenadas pela população das etnias que as falam.",c2Unit:"pessoas nas etnias cuja língua PRINCIPAL é esta — não falantes da língua",c3Title:"Países com mais línguas desatendidas",c3Sub:"Os {n} países com mais línguas sem nada encontrado. O comprimento da barra é cada língua presente nesse país.",c3Unit:"línguas presentes no país (uma língua transfronteiriça conta em cada um)"}},n$={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.",search_people_or_countries:"Pesquisar povos ou países…"},a$={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"}},s$={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo ."},r$={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},l$={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},i$={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},c$={"%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."},u$={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"},upg100Placeholder:"Procurar povo, lista UPG-100 ou região…"},p$={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",mapToken:"Token do mapa",tokenPaste:"Token público do Mapbox (pk.…)",tokenUrlLabel:"…ou o URL de um serviço de tokens",tokenApply:"Usar",tokenClear:"Limpar",tokenStoredHere:"Guardado apenas neste navegador.",tokenSourceYours:"A usar o seu token",tokenSourceUrl:"A usar um token de {url}",tokenSourceBuilt:"A usar o token incorporado nesta página",tokenSourceNone:"Sem token do Mapbox: os mapas Mapbox não carregam (os MapLibre não precisam)",tokenSecret:"Esse é um token secreto (sk.…). Cole um público (pk.…): esta página é pública.",tokenNotPk:"Um token público do Mapbox começa por pk.",tokenUrlFailed:"Não foi possível obter um token desse URL: {why}",settings:"Definições",mapEngine:"Motor de mapas",engineDefault:"O de cada mapa",engineMapboxNote:"precisa de um token",engineMaplibreNote:"não precisa de token",tokenNotNeeded:"MapLibre está selecionado: os seus mapas não precisam de token do Mapbox"},d$={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"},g$={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."},f$={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}"},h$={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda",searchPeopleGroups:"Caută popoare",resetAllFilters:"Resetează toate filtrele și căutarea",selectAllRows:"Selectează toate rândurile",deselectAllRows:"Deselectează toate rândurile"},m$={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"},$$={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ă."}},b$={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"},_$={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",export_csv:"Exportă CSV",detail:"Detaliu",detail_empty:"Selectează un popor pentru a vedea detaliile",heartbeat_zone:"zona bătăilor inimii",top_countries:"Țări de top",select_all:"Selectează tot",expand_table:"Extinde tabelul",collapse_table:"Restrânge tabelul — mărește harta",group:"popor",deselect_all:"Deselectează tot"},y$={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ă."}},v$={_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",audioScripture:"Scripturi audio",bibleStoriesPlain:"Povestiri biblice"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"},charts:{scriptureAny:"Scripturi (oricare)",fullBible:"Biblia completă",newTestament:"Noul Testament",filmAny:"Film (oricare)",nothingInPools:"Nimic găsit în sursele verificate",nothingInPoolsLower:"nimic găsit în sursele verificate",noResourceInPools:"nicio resursă găsită în sursele verificate",aResourceFound:"o resursă găsită",tabCoverage:"Acoperirea resurselor",tabGap:"Cele mai mari lacune",keyScripture:"scripturi",keyFilmStories:"film / povestiri",keyAudioEtc:"audio / prezentare / instruire",unresolvedCode:"cod în afara ISO 639-3 — nerezolvat, nemăsurat",c1Title:"Ce s-a GĂSIT, după tipul resursei",c1Sub:"Pe toate cele {n} limbi din setul de date. Fiecare bară numără LIMBI, nu grupuri etnice.",c1Unit:"limbi în care resursa a fost găsită în sursele verificate",c2Title:"Cele mai mari populații fără nimic găsit",c2Sub:"Cele {n} limbi fără Scripturi și fără film în sursele verificate, ordonate după populația grupurilor care le vorbesc.",c2Unit:"persoane din grupurile a căror limbă PRINCIPALĂ este aceasta — nu vorbitorii limbii",c3Title:"Țări cu cele mai multe limbi neservite",c3Sub:"Cele {n} țări cu cele mai multe limbi pentru care nu s-a găsit nimic. Lungimea barei este fiecare limbă prezentă în acea țară.",c3Unit:"limbi prezente în țară (o limbă transfrontalieră se numără în fiecare)"}},k$={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.",search_people_or_countries:"Caută popoare sau țări…"},w$={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"}},x$={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor ."},S$={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},A$={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},L$={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},P$={"%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."},E$={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"},upg100Placeholder:"Caută popor, listă UPG-100 sau regiune…"},C$={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",mapToken:"Token hartă",tokenPaste:"Token public Mapbox (pk.…)",tokenUrlLabel:"…sau adresa URL a unui serviciu de tokenuri",tokenApply:"Folosește",tokenClear:"Șterge",tokenStoredHere:"Păstrat doar în acest browser.",tokenSourceYours:"Se folosește tokenul tău",tokenSourceUrl:"Se folosește un token de la {url}",tokenSourceBuilt:"Se folosește tokenul inclus în această pagină",tokenSourceNone:"Niciun token Mapbox: hărțile Mapbox nu se pot încărca (MapLibre nu are nevoie)",tokenSecret:"Acesta este un token secret (sk.…). Lipește unul public (pk.…): pagina este publică.",tokenNotPk:"Un token public Mapbox începe cu pk.",tokenUrlFailed:"Nu s-a putut obține un token de la acea adresă: {why}",settings:"Setări",mapEngine:"Motor hărți",engineDefault:"Al fiecărei hărți",engineMapboxNote:"necesită un token",engineMaplibreNote:"nu necesită token",tokenNotNeeded:"MapLibre este selectat: hărțile sale nu necesită token Mapbox"},R$={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ă"},T$={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ă."},N$={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},M$={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду",searchPeopleGroups:"Поиск народов",resetAllFilters:"Сбросить все фильтры и поиск",selectAllRows:"Выбрать все строки",deselectAllRows:"Снять выделение со всех строк"},F$={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:"Плакатов в ряду"},O$={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; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},I$={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:"Элементы управления картой"},D$={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:"Место",export_csv:"Экспорт CSV",detail:"Подробности",detail_empty:"Выберите народ, чтобы увидеть подробности",heartbeat_zone:"зона сердцебиения",top_countries:"Основные страны",select_all:"Выбрать все",expand_table:"Развернуть таблицу",collapse_table:"Свернуть таблицу — увеличить карту",group:"народ",deselect_all:"Снять выделение"},G$={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},U$={_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:"Фильм «Иисус»",audioScripture:"Аудио с Писанием",bibleStoriesPlain:"Библейские истории"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"},charts:{scriptureAny:"Писание (любое)",fullBible:"Полная Библия",newTestament:"Новый Завет",filmAny:"Фильм (любой)",nothingInPools:"Ничего не найдено в проверенных источниках",nothingInPoolsLower:"ничего не найдено в проверенных источниках",noResourceInPools:"ни одного ресурса не найдено в проверенных источниках",aResourceFound:"ресурс найден",tabCoverage:"Охват ресурсами",tabGap:"Наибольшие пробелы",keyScripture:"писание",keyFilmStories:"фильм / истории",keyAudioEtc:"аудио / презентация / обучение",unresolvedCode:"код вне ISO 639-3 — не определён, не измерен",c1Title:"Что НАЙДЕНО, по типу ресурса",c1Sub:"По всем {n} языкам в наборе данных. Каждый столбец считает ЯЗЫКИ, а не народы.",c1Unit:"языки, в которых ресурс найден в проверенных источниках",c2Title:"Самые многочисленные народы, для которых ничего не найдено",c2Sub:"{n} языков, для которых в проверенных источниках нет ни Писания, ни фильма, упорядоченные по численности говорящих на них народов.",c2Unit:"люди в народах, для которых это ОСНОВНОЙ язык, — не все говорящие на нём",c3Title:"Страны с наибольшим числом неохваченных языков",c3Sub:"{n} стран с наибольшим числом языков, для которых ничего не найдено. Длина столбца — каждый язык, присутствующий в этой стране.",c3Unit:"языки, присутствующие в стране (трансграничный язык считается в каждой)"}},z$={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:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра.",search_people_or_countries:"Поиск народов или стран…"},j$={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:"Снять выделение"}},B$={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа ."},V$={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},q$={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},H$={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},W$={"%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.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},K$={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},Y$={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}, не публикуется отдельно",mapToken:"Токен карты",tokenPaste:"Публичный токен Mapbox (pk.…)",tokenUrlLabel:"…или адрес службы токенов",tokenApply:"Применить",tokenClear:"Очистить",tokenStoredHere:"Хранится только в этом браузере.",tokenSourceYours:"Используется ваш токен",tokenSourceUrl:"Используется токен с {url}",tokenSourceBuilt:"Используется токен, встроенный в страницу",tokenSourceNone:"Нет токена Mapbox: карты Mapbox не загрузятся (MapLibre он не нужен)",tokenSecret:"Это секретный токен (sk.…). Вставьте публичный (pk.…): эта страница общедоступна.",tokenNotPk:"Публичный токен Mapbox начинается с pk.",tokenUrlFailed:"Не удалось получить токен по этому адресу: {why}",settings:"Настройки",mapEngine:"Движок карт",engineDefault:"Свой у каждой карты",engineMapboxNote:"нужен токен",engineMaplibreNote:"токен не нужен",tokenNotNeeded:"Выбран MapLibre: его картам не нужен токен Mapbox"},X$={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:"Карта"},Z$={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 по народу и стране. Не все из них рубежные."},J$={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},Q$={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例",searchPeopleGroups:"搜索民族",resetAllFilters:"重置所有筛选和搜索",selectAllRows:"选择所有行",deselectAllRows:"取消选择所有行"},eb={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:"每行海报数"},tb={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 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},ob={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:"地图控件"},nb={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:"地点",export_csv:"导出 CSV",detail:"详情",detail_empty:"选择一个民族以查看详情",heartbeat_zone:"心跳区",top_countries:"主要国家",select_all:"全选",expand_table:"展开表格",collapse_table:"收起表格 — 放大地图",group:"个民族",deselect_all:"取消全选"},ab={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},sb={_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:"《耶稣传》",audioScripture:"音频圣经",bibleStoriesPlain:"圣经故事"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"},charts:{scriptureAny:"圣经(任意)",fullBible:"全本圣经",newTestament:"新约",filmAny:"影片(任意)",nothingInPools:"在已检索的资源库中一无所获",nothingInPoolsLower:"在已检索的资源库中一无所获",noResourceInPools:"在已检索的资源库中未找到资源",aResourceFound:"找到资源",tabCoverage:"资源覆盖",tabGap:"最大缺口",keyScripture:"圣经",keyFilmStories:"影片 / 故事",keyAudioEtc:"音频 / 简介 / 训练",unresolvedCode:"ISO 639-3 之外的代码 — 未确定,未测量",c1Title:"按资源类型统计已找到的内容",c1Sub:"涵盖数据中全部 {n} 种语言。每个条形统计的是语言,不是族群。",c1Unit:"在已检索的资源库中找到该资源的语言",c2Title:"一无所获的最大人口",c2Sub:"在已检索的资源库中既无圣经也无影片的 {n} 种语言,按使用这些语言的族群人口排序。",c2Unit:"以该语言为主要语言的族群人口 — 不是该语言的全部使用者",c3Title:"未得服事语言最多的国家",c3Sub:"一无所获语言最多的 {n} 个国家。条形长度为该国存在的全部语言。",c3Unit:"该国存在的语言(跨境语言在每个国家各计一次)"}},rb={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:"无法加载民族数据。这是连接问题,而不是筛选问题。",search_people_or_countries:"搜索民族或国家…"},lb={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:"清除选择"}},ib={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字 為他們禱告。"},cb={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},ub={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},pb={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},db={"%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.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},gb={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"},fb={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} 的一部分,不单独发布",mapToken:"地图令牌",tokenPaste:"Mapbox 公开令牌 (pk.…)",tokenUrlLabel:"…或令牌服务的网址",tokenApply:"使用",tokenClear:"清除",tokenStoredHere:"仅保存在此浏览器中。",tokenSourceYours:"正在使用您的令牌",tokenSourceUrl:"正在使用来自 {url} 的令牌",tokenSourceBuilt:"正在使用此页面内置的令牌",tokenSourceNone:"没有 Mapbox 令牌:Mapbox 地图无法加载(MapLibre 地图不需要)",tokenSecret:"这是秘密令牌 (sk.…)。请粘贴公开令牌 (pk.…):此页面是公开的。",tokenNotPk:"Mapbox 公开令牌以 pk. 开头",tokenUrlFailed:"无法从该网址获取令牌:{why}",settings:"设置",mapEngine:"地图引擎",engineDefault:"各地图自身的",engineMapboxNote:"需要令牌",engineMaplibreNote:"无需令牌",tokenNotNeeded:"已选择 MapLibre:其地图无需 Mapbox 令牌"},hb={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:"地圖"},mb={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 $b(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Qa=typeof window<"u",Mo=(e,t=!1)=>t?Symbol.for(e):Symbol(e),bb=(e,t,o)=>_b({l:e,k:t,s:o}),_b=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),lt=e=>typeof e=="number"&&isFinite(e),yb=e=>fc(e)==="[object Date]",Oo=e=>fc(e)==="[object RegExp]",es=e=>Me(e)&&Object.keys(e).length===0,yt=Object.assign,vb=Object.create,Xe=(e=null)=>vb(e);let uc;const vo=()=>uc||(uc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Xe());function dc(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function pc(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function kb(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${pc(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${pc(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 wb=Object.prototype.hasOwnProperty;function Wt(e,t){return wb.call(e,t)}const ot=Array.isArray,tt=e=>typeof e=="function",me=e=>typeof e=="string",De=e=>typeof e=="boolean",qe=e=>e!==null&&typeof e=="object",xb=e=>qe(e)&&tt(e.then)&&tt(e.catch),gc=Object.prototype.toString,fc=e=>gc.call(e),Me=e=>{if(!qe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Sb=e=>e==null?"":ot(e)||Me(e)&&e.toString===gc?JSON.stringify(e,null,2):String(e);function Lb(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function ts(e){let t=e;return()=>++t}const os=e=>!qe(e)||ot(e);function ns(e,t){if(os(e)||os(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__"&&(qe(n[s])&&!qe(a[s])&&(a[s]=Array.isArray(n[s])?[]:Xe()),os(a[s])||os(n[s])?a[s]=n[s]:o.push({src:n[s],des:a[s]}))})}}/*!
+ */function $b(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Qa=typeof window<"u",Mo=(e,t=!1)=>t?Symbol.for(e):Symbol(e),bb=(e,t,o)=>_b({l:e,k:t,s:o}),_b=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),it=e=>typeof e=="number"&&isFinite(e),yb=e=>fc(e)==="[object Date]",Fo=e=>fc(e)==="[object RegExp]",es=e=>Me(e)&&Object.keys(e).length===0,yt=Object.assign,vb=Object.create,Xe=(e=null)=>vb(e);let uc;const vo=()=>uc||(uc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Xe());function pc(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function dc(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function kb(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${dc(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${dc(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 wb=Object.prototype.hasOwnProperty;function Wt(e,t){return wb.call(e,t)}const ot=Array.isArray,tt=e=>typeof e=="function",me=e=>typeof e=="string",De=e=>typeof e=="boolean",qe=e=>e!==null&&typeof e=="object",xb=e=>qe(e)&&tt(e.then)&&tt(e.catch),gc=Object.prototype.toString,fc=e=>gc.call(e),Me=e=>{if(!qe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Sb=e=>e==null?"":ot(e)||Me(e)&&e.toString===gc?JSON.stringify(e,null,2):String(e);function Ab(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function ts(e){let t=e;return()=>++t}const os=e=>!qe(e)||ot(e);function ns(e,t){if(os(e)||os(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__"&&(qe(n[s])&&!qe(a[s])&&(a[s]=Array.isArray(n[s])?[]:Xe()),os(a[s])||os(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 Ab(e,t,o){return{line:e,column:t,offset:o}}function as(e,t,o){return{start:e,end:t}}const Pb=/\{([0-9a-zA-Z]+)\}/g;function hc(e,...t){return t.length===1&&Eb(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Pb,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const mc=Object.assign,$c=e=>typeof e=="string",Eb=e=>e!==null&&typeof e=="object";function bc(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const gr={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Cb={[gr.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Tb(e,t,...o){const n=hc(Cb[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Te={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},Nb={[Te.EXPECTED_TOKEN]:"Expected token: '{0}'",[Te.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Te.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Te.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Te.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Te.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Te.EMPTY_PLACEHOLDER]:"Empty placeholder",[Te.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Te.INVALID_LINKED_FORMAT]:"Invalid linked format",[Te.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Te.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Te.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Te.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Te.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Te.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function bn(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=hc((a||Nb)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function Rb(e){throw e}const ko=" ",Mb="\r",Lt=`
-`,Ob="\u2028",Fb="\u2029";function Ib(e){const t=e;let o=0,n=1,a=1,s=0;const r=v=>t[v]===Mb&&t[v+1]===Lt,i=v=>t[v]===Lt,l=v=>t[v]===Fb,c=v=>t[v]===Ob,u=v=>r(v)||i(v)||l(v)||c(v),p=()=>o,h=()=>n,_=()=>a,x=()=>s,k=v=>r(v)||l(v)||c(v)?Lt:t[v],S=()=>k(o),C=()=>k(o+s);function m(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function g(){return r(o+s)&&s++,s++,t[o+s]}function d(){o=0,n=1,a=1,s=0}function $(v=0){s=v}function L(){const v=o+s;for(;v!==o;)m();s=0}return{index:p,line:h,column:_,peekOffset:x,charAt:k,currentChar:S,currentPeek:C,next:m,peek:g,reset:d,resetPeek:$,skipToPeek:L}}const Fo=void 0,Db=".",_c="'",Ub="tokenizer";function Gb(e,t={}){const o=t.location!==!1,n=Ib(e),a=()=>n.index(),s=()=>Ab(n.line(),n.column(),n.index()),r=s(),i=a(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function p(f,b,F,...X){const ge=c();if(b.column+=F,b.offset+=F,u){const le=o?as(ge.startLoc,b):null,D=bn(f,le,{domain:Ub,args:X});u(D)}}function h(f,b,F){f.endLoc=s(),f.currentType=b;const X={type:b};return o&&(X.loc=as(f.startLoc,f.endLoc)),F!=null&&(X.value=F),X}const _=f=>h(f,14);function x(f,b){return f.currentChar()===b?(f.next(),b):(p(Te.EXPECTED_TOKEN,s(),0,b),"")}function k(f){let b="";for(;f.currentPeek()===ko||f.currentPeek()===Lt;)b+=f.currentPeek(),f.peek();return b}function S(f){const b=k(f);return f.skipToPeek(),b}function C(f){if(f===Fo)return!1;const b=f.charCodeAt(0);return b>=97&&b<=122||b>=65&&b<=90||b===95}function m(f){if(f===Fo)return!1;const b=f.charCodeAt(0);return b>=48&&b<=57}function g(f,b){const{currentType:F}=b;if(F!==2)return!1;k(f);const X=C(f.currentPeek());return f.resetPeek(),X}function d(f,b){const{currentType:F}=b;if(F!==2)return!1;k(f);const X=f.currentPeek()==="-"?f.peek():f.currentPeek(),ge=m(X);return f.resetPeek(),ge}function $(f,b){const{currentType:F}=b;if(F!==2)return!1;k(f);const X=f.currentPeek()===_c;return f.resetPeek(),X}function L(f,b){const{currentType:F}=b;if(F!==8)return!1;k(f);const X=f.currentPeek()===".";return f.resetPeek(),X}function v(f,b){const{currentType:F}=b;if(F!==9)return!1;k(f);const X=C(f.currentPeek());return f.resetPeek(),X}function w(f,b){const{currentType:F}=b;if(!(F===8||F===12))return!1;k(f);const X=f.currentPeek()===":";return f.resetPeek(),X}function P(f,b){const{currentType:F}=b;if(F!==10)return!1;const X=()=>{const le=f.currentPeek();return le==="{"?C(f.peek()):le==="@"||le==="%"||le==="|"||le===":"||le==="."||le===ko||!le?!1:le===Lt?(f.peek(),X()):j(f,!1)},ge=X();return f.resetPeek(),ge}function H(f){k(f);const b=f.currentPeek()==="|";return f.resetPeek(),b}function M(f){const b=k(f),F=f.currentPeek()==="%"&&f.peek()==="{";return f.resetPeek(),{isModulo:F,hasSpace:b.length>0}}function j(f,b=!0){const F=(ge=!1,le="",D=!1)=>{const K=f.currentPeek();return K==="{"?le==="%"?!1:ge:K==="@"||!K?le==="%"?!0:ge:K==="%"?(f.peek(),F(ge,"%",!0)):K==="|"?le==="%"||D?!0:!(le===ko||le===Lt):K===ko?(f.peek(),F(!0,ko,D)):K===Lt?(f.peek(),F(!0,Lt,D)):!0},X=F();return b&&f.resetPeek(),X}function ae(f,b){const F=f.currentChar();return F===Fo?Fo:b(F)?(f.next(),F):null}function I(f){const b=f.charCodeAt(0);return b>=97&&b<=122||b>=65&&b<=90||b>=48&&b<=57||b===95||b===36}function q(f){return ae(f,I)}function B(f){const b=f.charCodeAt(0);return b>=97&&b<=122||b>=65&&b<=90||b>=48&&b<=57||b===95||b===36||b===45}function O(f){return ae(f,B)}function te(f){const b=f.charCodeAt(0);return b>=48&&b<=57}function U(f){return ae(f,te)}function R(f){const b=f.charCodeAt(0);return b>=48&&b<=57||b>=65&&b<=70||b>=97&&b<=102}function V(f){return ae(f,R)}function G(f){let b="",F="";for(;b=U(f);)F+=b;return F}function oe(f){S(f);const b=f.currentChar();return b!=="%"&&p(Te.EXPECTED_TOKEN,s(),0,b),f.next(),"%"}function he(f){let b="";for(;;){const F=f.currentChar();if(F==="{"||F==="}"||F==="@"||F==="|"||!F)break;if(F==="%")if(j(f))b+=F,f.next();else break;else if(F===ko||F===Lt)if(j(f))b+=F,f.next();else{if(H(f))break;b+=F,f.next()}else b+=F,f.next()}return b}function ke(f){S(f);let b="",F="";for(;b=O(f);)F+=b;return f.currentChar()===Fo&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),F}function Ae(f){S(f);let b="";return f.currentChar()==="-"?(f.next(),b+=`-${G(f)}`):b+=G(f),f.currentChar()===Fo&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),b}function Le(f){return f!==_c&&f!==Lt}function ve(f){S(f),x(f,"'");let b="",F="";for(;b=ae(f,Le);)b==="\\"?F+=Q(f):F+=b;const X=f.currentChar();return X===Lt||X===Fo?(p(Te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),X===Lt&&(f.next(),x(f,"'")),F):(x(f,"'"),F)}function Q(f){const b=f.currentChar();switch(b){case"\\":case"'":return f.next(),`\\${b}`;case"u":return pe(f,b,4);case"U":return pe(f,b,6);default:return p(Te.UNKNOWN_ESCAPE_SEQUENCE,s(),0,b),""}}function pe(f,b,F){x(f,b);let X="";for(let ge=0;ge{const X=f.currentChar();return X==="{"||X==="%"||X==="@"||X==="|"||X==="("||X===")"||!X||X===ko?F:(F+=X,f.next(),b(F))};return b("")}function z(f){S(f);const b=x(f,"|");return S(f),b}function Z(f,b){let F=null;switch(f.currentChar()){case"{":return b.braceNest>=1&&p(Te.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),f.next(),F=h(b,2,"{"),S(f),b.braceNest++,F;case"}":return b.braceNest>0&&b.currentType===2&&p(Te.EMPTY_PLACEHOLDER,s(),0),f.next(),F=h(b,3,"}"),b.braceNest--,b.braceNest>0&&S(f),b.inLinked&&b.braceNest===0&&(b.inLinked=!1),F;case"@":return b.braceNest>0&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),F=J(f,b)||_(b),b.braceNest=0,F;default:{let ge=!0,le=!0,D=!0;if(H(f))return b.braceNest>0&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),F=h(b,1,z(f)),b.braceNest=0,b.inLinked=!1,F;if(b.braceNest>0&&(b.currentType===5||b.currentType===6||b.currentType===7))return p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),b.braceNest=0,ie(f,b);if(ge=g(f,b))return F=h(b,5,ke(f)),S(f),F;if(le=d(f,b))return F=h(b,6,Ae(f)),S(f),F;if(D=$(f,b))return F=h(b,7,ve(f)),S(f),F;if(!ge&&!le&&!D)return F=h(b,13,y(f)),p(Te.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,F.value),S(f),F;break}}return F}function J(f,b){const{currentType:F}=b;let X=null;const ge=f.currentChar();switch((F===8||F===9||F===12||F===10)&&(ge===Lt||ge===ko)&&p(Te.INVALID_LINKED_FORMAT,s(),0),ge){case"@":return f.next(),X=h(b,8,"@"),b.inLinked=!0,X;case".":return S(f),f.next(),h(b,9,".");case":":return S(f),f.next(),h(b,10,":");default:return H(f)?(X=h(b,1,z(f)),b.braceNest=0,b.inLinked=!1,X):L(f,b)||w(f,b)?(S(f),J(f,b)):v(f,b)?(S(f),h(b,12,E(f))):P(f,b)?(S(f),ge==="{"?Z(f,b)||X:h(b,11,A(f))):(F===8&&p(Te.INVALID_LINKED_FORMAT,s(),0),b.braceNest=0,b.inLinked=!1,ie(f,b))}}function ie(f,b){let F={type:14};if(b.braceNest>0)return Z(f,b)||_(b);if(b.inLinked)return J(f,b)||_(b);switch(f.currentChar()){case"{":return Z(f,b)||_(b);case"}":return p(Te.UNBALANCED_CLOSING_BRACE,s(),0),f.next(),h(b,3,"}");case"@":return J(f,b)||_(b);default:{if(H(f))return F=h(b,1,z(f)),b.braceNest=0,b.inLinked=!1,F;const{isModulo:ge,hasSpace:le}=M(f);if(ge)return le?h(b,0,he(f)):h(b,4,oe(f));if(j(f))return h(b,0,he(f));break}}return F}function ne(){const{currentType:f,offset:b,startLoc:F,endLoc:X}=l;return l.lastType=f,l.lastOffset=b,l.lastStartLoc=F,l.lastEndLoc=X,l.offset=a(),l.startLoc=s(),n.currentChar()===Fo?h(l,14):ie(n,l)}return{nextToken:ne,currentOffset:a,currentPosition:s,context:c}}const jb="parser",zb=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Bb(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function Vb(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(g,d,$,L,...v){const w=g.currentPosition();if(w.offset+=L,w.column+=L,o){const P=t?as($,w):null,H=bn(d,P,{domain:jb,args:v});o(H)}}function s(g,d,$,L,...v){const w=g.currentPosition();if(w.offset+=L,w.column+=L,n){const P=t?as($,w):null;n(Tb(d,P,v))}}function r(g,d,$){const L={type:g};return t&&(L.start=d,L.end=d,L.loc={start:$,end:$}),L}function i(g,d,$,L){t&&(g.end=d,g.loc&&(g.loc.end=$))}function l(g,d){const $=g.context(),L=r(3,$.offset,$.startLoc);return L.value=d,i(L,g.currentOffset(),g.currentPosition()),L}function c(g,d){const $=g.context(),{lastOffset:L,lastStartLoc:v}=$,w=r(5,L,v);return w.index=parseInt(d,10),g.nextToken(),i(w,g.currentOffset(),g.currentPosition()),w}function u(g,d,$){const L=g.context(),{lastOffset:v,lastStartLoc:w}=L,P=r(4,v,w);return P.key=d,$===!0&&(P.modulo=!0),g.nextToken(),i(P,g.currentOffset(),g.currentPosition()),P}function p(g,d){const $=g.context(),{lastOffset:L,lastStartLoc:v}=$,w=r(9,L,v);return w.value=d.replace(zb,Bb),g.nextToken(),i(w,g.currentOffset(),g.currentPosition()),w}function h(g){const d=g.nextToken(),$=g.context(),{lastOffset:L,lastStartLoc:v}=$,w=r(8,L,v);return d.type!==12?(a(g,Te.UNEXPECTED_EMPTY_LINKED_MODIFIER,$.lastStartLoc,0),w.value="",i(w,L,v),{nextConsumeToken:d,node:w}):(d.value==null&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,Kt(d)),w.value=d.value||"",i(w,g.currentOffset(),g.currentPosition()),{node:w})}function _(g,d){const $=g.context(),L=r(7,$.offset,$.startLoc);return L.value=d,i(L,g.currentOffset(),g.currentPosition()),L}function x(g){const d=g.context(),$=r(6,d.offset,d.startLoc);let L=g.nextToken();if(L.type===9){const v=h(g);$.modifier=v.node,L=v.nextConsumeToken||g.nextToken()}switch(L.type!==10&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Kt(L)),L=g.nextToken(),L.type===2&&(L=g.nextToken()),L.type){case 11:L.value==null&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Kt(L)),$.key=_(g,L.value||"");break;case 5:L.value==null&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Kt(L)),$.key=u(g,L.value||"");break;case 6:L.value==null&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Kt(L)),$.key=c(g,L.value||"");break;case 7:L.value==null&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Kt(L)),$.key=p(g,L.value||"");break;default:{a(g,Te.UNEXPECTED_EMPTY_LINKED_KEY,d.lastStartLoc,0);const v=g.context(),w=r(7,v.offset,v.startLoc);return w.value="",i(w,v.offset,v.startLoc),$.key=w,i($,v.offset,v.startLoc),{nextConsumeToken:L,node:$}}}return i($,g.currentOffset(),g.currentPosition()),{node:$}}function k(g){const d=g.context(),$=d.currentType===1?g.currentOffset():d.offset,L=d.currentType===1?d.endLoc:d.startLoc,v=r(2,$,L);v.items=[];let w=null,P=null;do{const j=w||g.nextToken();switch(w=null,j.type){case 0:j.value==null&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Kt(j)),v.items.push(l(g,j.value||""));break;case 6:j.value==null&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Kt(j)),v.items.push(c(g,j.value||""));break;case 4:P=!0;break;case 5:j.value==null&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Kt(j)),v.items.push(u(g,j.value||"",!!P)),P&&(s(g,gr.USE_MODULO_SYNTAX,d.lastStartLoc,0,Kt(j)),P=null);break;case 7:j.value==null&&a(g,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Kt(j)),v.items.push(p(g,j.value||""));break;case 8:{const ae=x(g);v.items.push(ae.node),w=ae.nextConsumeToken||null;break}}}while(d.currentType!==14&&d.currentType!==1);const H=d.currentType===1?d.lastOffset:g.currentOffset(),M=d.currentType===1?d.lastEndLoc:g.currentPosition();return i(v,H,M),v}function S(g,d,$,L){const v=g.context();let w=L.items.length===0;const P=r(1,d,$);P.cases=[],P.cases.push(L);do{const H=k(g);w||(w=H.items.length===0),P.cases.push(H)}while(v.currentType!==14);return w&&a(g,Te.MUST_HAVE_MESSAGES_IN_PLURAL,$,0),i(P,g.currentOffset(),g.currentPosition()),P}function C(g){const d=g.context(),{offset:$,startLoc:L}=d,v=k(g);return d.currentType===14?v:S(g,$,L,v)}function m(g){const d=Gb(g,mc({},e)),$=d.context(),L=r(0,$.offset,$.startLoc);return t&&L.loc&&(L.loc.source=g),L.body=C(d),e.onCacheKey&&(L.cacheKey=e.onCacheKey(g)),$.currentType!==14&&a(d,Te.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,g[$.offset]||""),i(L,d.currentOffset(),d.currentPosition()),L}return{parse:m}}function Kt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function qb(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function yc(e,t){for(let o=0;ovc(o)),e}function vc(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;or;function l(k,S){r.code+=k}function c(k,S=!0){const C=S?n:"";l(a?C+" ".repeat(k):C)}function u(k=!0){const S=++r.indentLevel;k&&c(S)}function p(k=!0){const S=--r.indentLevel;k&&c(S)}function h(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:h,helper:k=>`_${k}`,needIndent:()=>r.needIndent}}function Zb(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),yn(e,t.key),t.modifier?(e.push(", "),yn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Jb(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let s=0;s1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let s=0;s {const o=$c(t.mode)?t.mode:"normal",n=$c(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||[],i=Xb(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${bc(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),yn(i,e),i.deindent(s),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function o_(e,t={}){const o=mc({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=Vb(o).parse(e);return n?(s&&Wb(i),a&&_n(i),{ast:i,code:""}):(Hb(i,o),t_(i,o))}/*!
+ */function Lb(e,t,o){return{line:e,column:t,offset:o}}function as(e,t,o){return{start:e,end:t}}const Pb=/\{([0-9a-zA-Z]+)\}/g;function hc(e,...t){return t.length===1&&Eb(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Pb,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const mc=Object.assign,$c=e=>typeof e=="string",Eb=e=>e!==null&&typeof e=="object";function bc(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const gr={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Cb={[gr.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Rb(e,t,...o){const n=hc(Cb[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Re={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},Tb={[Re.EXPECTED_TOKEN]:"Expected token: '{0}'",[Re.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Re.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Re.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Re.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Re.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Re.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Re.EMPTY_PLACEHOLDER]:"Empty placeholder",[Re.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Re.INVALID_LINKED_FORMAT]:"Invalid linked format",[Re.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Re.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Re.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Re.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Re.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Re.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function bn(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=hc((a||Tb)[e]||"",...s||[]),l=new SyntaxError(String(r));return l.code=e,t&&(l.location=t),l.domain=n,l}function Nb(e){throw e}const ko=" ",Mb="\r",At=`
+`,Fb="\u2028",Ob="\u2029";function Ib(e){const t=e;let o=0,n=1,a=1,s=0;const r=y=>t[y]===Mb&&t[y+1]===At,l=y=>t[y]===At,i=y=>t[y]===Ob,c=y=>t[y]===Fb,u=y=>r(y)||l(y)||i(y)||c(y),p=()=>o,h=()=>n,_=()=>a,S=()=>s,k=y=>r(y)||i(y)||c(y)?At:t[y],A=()=>k(o),C=()=>k(o+s);function m(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function d(){return r(o+s)&&s++,s++,t[o+s]}function f(){o=0,n=1,a=1,s=0}function $(y=0){s=y}function x(){const y=o+s;for(;y!==o;)m();s=0}return{index:p,line:h,column:_,peekOffset:S,charAt:k,currentChar:A,currentPeek:C,next:m,peek:d,reset:f,resetPeek:$,skipToPeek:x}}const Oo=void 0,Db=".",_c="'",Gb="tokenizer";function Ub(e,t={}){const o=t.location!==!1,n=Ib(e),a=()=>n.index(),s=()=>Lb(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 p(g,b,O,...X){const fe=c();if(b.column+=O,b.offset+=O,u){const ie=o?as(fe.startLoc,b):null,D=bn(g,ie,{domain:Gb,args:X});u(D)}}function h(g,b,O){g.endLoc=s(),g.currentType=b;const X={type:b};return o&&(X.loc=as(g.startLoc,g.endLoc)),O!=null&&(X.value=O),X}const _=g=>h(g,14);function S(g,b){return g.currentChar()===b?(g.next(),b):(p(Re.EXPECTED_TOKEN,s(),0,b),"")}function k(g){let b="";for(;g.currentPeek()===ko||g.currentPeek()===At;)b+=g.currentPeek(),g.peek();return b}function A(g){const b=k(g);return g.skipToPeek(),b}function C(g){if(g===Oo)return!1;const b=g.charCodeAt(0);return b>=97&&b<=122||b>=65&&b<=90||b===95}function m(g){if(g===Oo)return!1;const b=g.charCodeAt(0);return b>=48&&b<=57}function d(g,b){const{currentType:O}=b;if(O!==2)return!1;k(g);const X=C(g.currentPeek());return g.resetPeek(),X}function f(g,b){const{currentType:O}=b;if(O!==2)return!1;k(g);const X=g.currentPeek()==="-"?g.peek():g.currentPeek(),fe=m(X);return g.resetPeek(),fe}function $(g,b){const{currentType:O}=b;if(O!==2)return!1;k(g);const X=g.currentPeek()===_c;return g.resetPeek(),X}function x(g,b){const{currentType:O}=b;if(O!==8)return!1;k(g);const X=g.currentPeek()===".";return g.resetPeek(),X}function y(g,b){const{currentType:O}=b;if(O!==9)return!1;k(g);const X=C(g.currentPeek());return g.resetPeek(),X}function w(g,b){const{currentType:O}=b;if(!(O===8||O===12))return!1;k(g);const X=g.currentPeek()===":";return g.resetPeek(),X}function P(g,b){const{currentType:O}=b;if(O!==10)return!1;const X=()=>{const ie=g.currentPeek();return ie==="{"?C(g.peek()):ie==="@"||ie==="%"||ie==="|"||ie===":"||ie==="."||ie===ko||!ie?!1:ie===At?(g.peek(),X()):z(g,!1)},fe=X();return g.resetPeek(),fe}function q(g){k(g);const b=g.currentPeek()==="|";return g.resetPeek(),b}function M(g){const b=k(g),O=g.currentPeek()==="%"&&g.peek()==="{";return g.resetPeek(),{isModulo:O,hasSpace:b.length>0}}function z(g,b=!0){const O=(fe=!1,ie="",D=!1)=>{const K=g.currentPeek();return K==="{"?ie==="%"?!1:fe:K==="@"||!K?ie==="%"?!0:fe:K==="%"?(g.peek(),O(fe,"%",!0)):K==="|"?ie==="%"||D?!0:!(ie===ko||ie===At):K===ko?(g.peek(),O(!0,ko,D)):K===At?(g.peek(),O(!0,At,D)):!0},X=O();return b&&g.resetPeek(),X}function ae(g,b){const O=g.currentChar();return O===Oo?Oo:b(O)?(g.next(),O):null}function I(g){const b=g.charCodeAt(0);return b>=97&&b<=122||b>=65&&b<=90||b>=48&&b<=57||b===95||b===36}function H(g){return ae(g,I)}function B(g){const b=g.charCodeAt(0);return b>=97&&b<=122||b>=65&&b<=90||b>=48&&b<=57||b===95||b===36||b===45}function F(g){return ae(g,B)}function te(g){const b=g.charCodeAt(0);return b>=48&&b<=57}function G(g){return ae(g,te)}function N(g){const b=g.charCodeAt(0);return b>=48&&b<=57||b>=65&&b<=70||b>=97&&b<=102}function V(g){return ae(g,N)}function U(g){let b="",O="";for(;b=G(g);)O+=b;return O}function oe(g){A(g);const b=g.currentChar();return b!=="%"&&p(Re.EXPECTED_TOKEN,s(),0,b),g.next(),"%"}function he(g){let b="";for(;;){const O=g.currentChar();if(O==="{"||O==="}"||O==="@"||O==="|"||!O)break;if(O==="%")if(z(g))b+=O,g.next();else break;else if(O===ko||O===At)if(z(g))b+=O,g.next();else{if(q(g))break;b+=O,g.next()}else b+=O,g.next()}return b}function ke(g){A(g);let b="",O="";for(;b=F(g);)O+=b;return g.currentChar()===Oo&&p(Re.UNTERMINATED_CLOSING_BRACE,s(),0),O}function Le(g){A(g);let b="";return g.currentChar()==="-"?(g.next(),b+=`-${U(g)}`):b+=U(g),g.currentChar()===Oo&&p(Re.UNTERMINATED_CLOSING_BRACE,s(),0),b}function Ae(g){return g!==_c&&g!==At}function ye(g){A(g),S(g,"'");let b="",O="";for(;b=ae(g,Ae);)b==="\\"?O+=Q(g):O+=b;const X=g.currentChar();return X===At||X===Oo?(p(Re.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),X===At&&(g.next(),S(g,"'")),O):(S(g,"'"),O)}function Q(g){const b=g.currentChar();switch(b){case"\\":case"'":return g.next(),`\\${b}`;case"u":return de(g,b,4);case"U":return de(g,b,6);default:return p(Re.UNKNOWN_ESCAPE_SEQUENCE,s(),0,b),""}}function de(g,b,O){S(g,b);let X="";for(let fe=0;fe{const X=g.currentChar();return X==="{"||X==="%"||X==="@"||X==="|"||X==="("||X===")"||!X||X===ko?O:(O+=X,g.next(),b(O))};return b("")}function j(g){A(g);const b=S(g,"|");return A(g),b}function Z(g,b){let O=null;switch(g.currentChar()){case"{":return b.braceNest>=1&&p(Re.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),g.next(),O=h(b,2,"{"),A(g),b.braceNest++,O;case"}":return b.braceNest>0&&b.currentType===2&&p(Re.EMPTY_PLACEHOLDER,s(),0),g.next(),O=h(b,3,"}"),b.braceNest--,b.braceNest>0&&A(g),b.inLinked&&b.braceNest===0&&(b.inLinked=!1),O;case"@":return b.braceNest>0&&p(Re.UNTERMINATED_CLOSING_BRACE,s(),0),O=J(g,b)||_(b),b.braceNest=0,O;default:{let fe=!0,ie=!0,D=!0;if(q(g))return b.braceNest>0&&p(Re.UNTERMINATED_CLOSING_BRACE,s(),0),O=h(b,1,j(g)),b.braceNest=0,b.inLinked=!1,O;if(b.braceNest>0&&(b.currentType===5||b.currentType===6||b.currentType===7))return p(Re.UNTERMINATED_CLOSING_BRACE,s(),0),b.braceNest=0,le(g,b);if(fe=d(g,b))return O=h(b,5,ke(g)),A(g),O;if(ie=f(g,b))return O=h(b,6,Le(g)),A(g),O;if(D=$(g,b))return O=h(b,7,ye(g)),A(g),O;if(!fe&&!ie&&!D)return O=h(b,13,v(g)),p(Re.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,O.value),A(g),O;break}}return O}function J(g,b){const{currentType:O}=b;let X=null;const fe=g.currentChar();switch((O===8||O===9||O===12||O===10)&&(fe===At||fe===ko)&&p(Re.INVALID_LINKED_FORMAT,s(),0),fe){case"@":return g.next(),X=h(b,8,"@"),b.inLinked=!0,X;case".":return A(g),g.next(),h(b,9,".");case":":return A(g),g.next(),h(b,10,":");default:return q(g)?(X=h(b,1,j(g)),b.braceNest=0,b.inLinked=!1,X):x(g,b)||w(g,b)?(A(g),J(g,b)):y(g,b)?(A(g),h(b,12,E(g))):P(g,b)?(A(g),fe==="{"?Z(g,b)||X:h(b,11,L(g))):(O===8&&p(Re.INVALID_LINKED_FORMAT,s(),0),b.braceNest=0,b.inLinked=!1,le(g,b))}}function le(g,b){let O={type:14};if(b.braceNest>0)return Z(g,b)||_(b);if(b.inLinked)return J(g,b)||_(b);switch(g.currentChar()){case"{":return Z(g,b)||_(b);case"}":return p(Re.UNBALANCED_CLOSING_BRACE,s(),0),g.next(),h(b,3,"}");case"@":return J(g,b)||_(b);default:{if(q(g))return O=h(b,1,j(g)),b.braceNest=0,b.inLinked=!1,O;const{isModulo:fe,hasSpace:ie}=M(g);if(fe)return ie?h(b,0,he(g)):h(b,4,oe(g));if(z(g))return h(b,0,he(g));break}}return O}function ne(){const{currentType:g,offset:b,startLoc:O,endLoc:X}=i;return i.lastType=g,i.lastOffset=b,i.lastStartLoc=O,i.lastEndLoc=X,i.offset=a(),i.startLoc=s(),n.currentChar()===Oo?h(i,14):le(n,i)}return{nextToken:ne,currentOffset:a,currentPosition:s,context:c}}const zb="parser",jb=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Bb(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function Vb(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(d,f,$,x,...y){const w=d.currentPosition();if(w.offset+=x,w.column+=x,o){const P=t?as($,w):null,q=bn(f,P,{domain:zb,args:y});o(q)}}function s(d,f,$,x,...y){const w=d.currentPosition();if(w.offset+=x,w.column+=x,n){const P=t?as($,w):null;n(Rb(f,P,y))}}function r(d,f,$){const x={type:d};return t&&(x.start=f,x.end=f,x.loc={start:$,end:$}),x}function l(d,f,$,x){t&&(d.end=f,d.loc&&(d.loc.end=$))}function i(d,f){const $=d.context(),x=r(3,$.offset,$.startLoc);return x.value=f,l(x,d.currentOffset(),d.currentPosition()),x}function c(d,f){const $=d.context(),{lastOffset:x,lastStartLoc:y}=$,w=r(5,x,y);return w.index=parseInt(f,10),d.nextToken(),l(w,d.currentOffset(),d.currentPosition()),w}function u(d,f,$){const x=d.context(),{lastOffset:y,lastStartLoc:w}=x,P=r(4,y,w);return P.key=f,$===!0&&(P.modulo=!0),d.nextToken(),l(P,d.currentOffset(),d.currentPosition()),P}function p(d,f){const $=d.context(),{lastOffset:x,lastStartLoc:y}=$,w=r(9,x,y);return w.value=f.replace(jb,Bb),d.nextToken(),l(w,d.currentOffset(),d.currentPosition()),w}function h(d){const f=d.nextToken(),$=d.context(),{lastOffset:x,lastStartLoc:y}=$,w=r(8,x,y);return f.type!==12?(a(d,Re.UNEXPECTED_EMPTY_LINKED_MODIFIER,$.lastStartLoc,0),w.value="",l(w,x,y),{nextConsumeToken:f,node:w}):(f.value==null&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,Kt(f)),w.value=f.value||"",l(w,d.currentOffset(),d.currentPosition()),{node:w})}function _(d,f){const $=d.context(),x=r(7,$.offset,$.startLoc);return x.value=f,l(x,d.currentOffset(),d.currentPosition()),x}function S(d){const f=d.context(),$=r(6,f.offset,f.startLoc);let x=d.nextToken();if(x.type===9){const y=h(d);$.modifier=y.node,x=y.nextConsumeToken||d.nextToken()}switch(x.type!==10&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,f.lastStartLoc,0,Kt(x)),x=d.nextToken(),x.type===2&&(x=d.nextToken()),x.type){case 11:x.value==null&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,f.lastStartLoc,0,Kt(x)),$.key=_(d,x.value||"");break;case 5:x.value==null&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,f.lastStartLoc,0,Kt(x)),$.key=u(d,x.value||"");break;case 6:x.value==null&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,f.lastStartLoc,0,Kt(x)),$.key=c(d,x.value||"");break;case 7:x.value==null&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,f.lastStartLoc,0,Kt(x)),$.key=p(d,x.value||"");break;default:{a(d,Re.UNEXPECTED_EMPTY_LINKED_KEY,f.lastStartLoc,0);const y=d.context(),w=r(7,y.offset,y.startLoc);return w.value="",l(w,y.offset,y.startLoc),$.key=w,l($,y.offset,y.startLoc),{nextConsumeToken:x,node:$}}}return l($,d.currentOffset(),d.currentPosition()),{node:$}}function k(d){const f=d.context(),$=f.currentType===1?d.currentOffset():f.offset,x=f.currentType===1?f.endLoc:f.startLoc,y=r(2,$,x);y.items=[];let w=null,P=null;do{const z=w||d.nextToken();switch(w=null,z.type){case 0:z.value==null&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,f.lastStartLoc,0,Kt(z)),y.items.push(i(d,z.value||""));break;case 6:z.value==null&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,f.lastStartLoc,0,Kt(z)),y.items.push(c(d,z.value||""));break;case 4:P=!0;break;case 5:z.value==null&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,f.lastStartLoc,0,Kt(z)),y.items.push(u(d,z.value||"",!!P)),P&&(s(d,gr.USE_MODULO_SYNTAX,f.lastStartLoc,0,Kt(z)),P=null);break;case 7:z.value==null&&a(d,Re.UNEXPECTED_LEXICAL_ANALYSIS,f.lastStartLoc,0,Kt(z)),y.items.push(p(d,z.value||""));break;case 8:{const ae=S(d);y.items.push(ae.node),w=ae.nextConsumeToken||null;break}}}while(f.currentType!==14&&f.currentType!==1);const q=f.currentType===1?f.lastOffset:d.currentOffset(),M=f.currentType===1?f.lastEndLoc:d.currentPosition();return l(y,q,M),y}function A(d,f,$,x){const y=d.context();let w=x.items.length===0;const P=r(1,f,$);P.cases=[],P.cases.push(x);do{const q=k(d);w||(w=q.items.length===0),P.cases.push(q)}while(y.currentType!==14);return w&&a(d,Re.MUST_HAVE_MESSAGES_IN_PLURAL,$,0),l(P,d.currentOffset(),d.currentPosition()),P}function C(d){const f=d.context(),{offset:$,startLoc:x}=f,y=k(d);return f.currentType===14?y:A(d,$,x,y)}function m(d){const f=Ub(d,mc({},e)),$=f.context(),x=r(0,$.offset,$.startLoc);return t&&x.loc&&(x.loc.source=d),x.body=C(f),e.onCacheKey&&(x.cacheKey=e.onCacheKey(d)),$.currentType!==14&&a(f,Re.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,d[$.offset]||""),l(x,f.currentOffset(),f.currentPosition()),x}return{parse:m}}function Kt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function qb(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function yc(e,t){for(let o=0;ovc(o)),e}function vc(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;or;function i(k,A){r.code+=k}function c(k,A=!0){const C=A?n:"";i(a?C+" ".repeat(k):C)}function u(k=!0){const A=++r.indentLevel;k&&c(A)}function p(k=!0){const A=--r.indentLevel;k&&c(A)}function h(){c(r.indentLevel)}return{context:l,push:i,indent:u,deindent:p,newline:h,helper:k=>`_${k}`,needIndent:()=>r.needIndent}}function Zb(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),yn(e,t.key),t.modifier?(e.push(", "),yn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Jb(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let s=0;s1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let s=0;s {const o=$c(t.mode)?t.mode:"normal",n=$c(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=Xb(e,{filename:n,breakLineCode:a,needIndent:s});l.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),l.indent(s),r.length>0&&(l.push(`const { ${bc(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),l.newline()),l.push("return "),yn(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 o_(e,t={}){const o=mc({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,l=Vb(o).parse(e);return n?(s&&Wb(l),a&&_n(l),{ast:l,code:""}):(Hb(l,o),t_(l,o))}/*!
* core-base v9.14.5
* (c) 2025 kazuya kawaguchi
* Released under the MIT License.
- */function n_(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(vo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(vo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(vo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function io(e){return qe(e)&&hr(e)===0&&(Wt(e,"b")||Wt(e,"body"))}const kc=["b","body"];function a_(e){return Io(e,kc)}const wc=["c","cases"];function s_(e){return Io(e,wc,[])}const xc=["s","static"];function r_(e){return Io(e,xc)}const Sc=["i","items"];function i_(e){return Io(e,Sc,[])}const Lc=["t","type"];function hr(e){return Io(e,Lc)}const Ac=["v","value"];function ss(e,t){const o=Io(e,Ac);if(o!=null)return o;throw ta(t)}const Pc=["m","modifier"];function l_(e){return Io(e,Pc)}const Ec=["k","key"];function c_(e){const t=Io(e,Ec);if(t)return t;throw ta(6)}function Io(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},h[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},h[2]=()=>{h[0](),a++},h[3]=()=>{if(a>0)a--,n=4,h[0]();else{if(a=0,r===void 0||(r=f_(r),r===!1))return!1;h[1]()}};function _(){const x=e[o+1];if(n===5&&x==="'"||n===6&&x==='"')return o++,i="\\"+x,h[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&_())){if(l=g_(s),p=Do[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const Tc=new Map;function m_(e,t){return qe(e)?e[t]:null}function $_(e,t){if(!qe(e))return null;let o=Tc.get(t);if(o||(o=h_(t),o&&Tc.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,__=e=>"",y_="text",v_=e=>e.length===0?"":Lb(e),k_=Sb;function Nc(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function w_(e){const t=lt(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(lt(e.named.count)||lt(e.named.n))?lt(e.named.count)?e.named.count:lt(e.named.n)?e.named.n:t:t}function x_(e,t){t.count||(t.count=e),t.n||(t.n=e)}function S_(e={}){const t=e.locale,o=w_(e),n=qe(e.pluralRules)&&me(t)&&tt(e.pluralRules[t])?e.pluralRules[t]:Nc,a=qe(e.pluralRules)&&me(t)&&tt(e.pluralRules[t])?Nc:void 0,s=C=>C[n(o,C.length,a)],r=e.list||[],i=C=>r[C],l=e.named||Xe();lt(e.pluralIndex)&&x_(o,l);const c=C=>l[C];function u(C){const m=tt(e.messages)?e.messages(C):qe(e.messages)?e.messages[C]:!1;return m||(e.parent?e.parent.message(C):__)}const p=C=>e.modifiers?e.modifiers[C]:b_,h=Me(e.processor)&&tt(e.processor.normalize)?e.processor.normalize:v_,_=Me(e.processor)&&tt(e.processor.interpolate)?e.processor.interpolate:k_,x=Me(e.processor)&&me(e.processor.type)?e.processor.type:y_,S={list:i,named:c,plural:s,linked:(C,...m)=>{const[g,d]=m;let $="text",L="";m.length===1?qe(g)?(L=g.modifier||L,$=g.type||$):me(g)&&(L=g||L):m.length===2&&(me(g)&&(L=g||L),me(d)&&($=d||$));const v=u(C)(S),w=$==="vnode"&&ot(v)&&L?v[0]:v;return L?p(L)(w,$):w},message:u,type:x,interpolate:_,normalize:h,values:yt(Xe(),r,l)};return S}let oa=null;function L_(e){oa=e}function A_(e,t,o){oa&&oa.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const P_=E_("function:translate");function E_(e){return t=>oa&&oa.emit(e,t)}const C_=gr.__EXTEND_POINT__,Zo=ts(C_),T_={FALLBACK_TO_TRANSLATE:Zo(),CANNOT_FORMAT_NUMBER:Zo(),FALLBACK_TO_NUMBER_FORMAT:Zo(),CANNOT_FORMAT_DATE:Zo(),FALLBACK_TO_DATE_FORMAT:Zo(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Zo(),__EXTEND_POINT__:Zo()},Rc=Te.__EXTEND_POINT__,Jo=ts(Rc),Yt={INVALID_ARGUMENT:Rc,INVALID_DATE_ARGUMENT:Jo(),INVALID_ISO_DATE_ARGUMENT:Jo(),NOT_SUPPORT_NON_STRING_MESSAGE:Jo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Jo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Jo(),NOT_SUPPORT_LOCALE_TYPE:Jo(),__EXTEND_POINT__:Jo()};function lo(e){return bn(e,null,void 0)}function mr(e,t){return t.locale!=null?Mc(t.locale):Mc(e.locale)}let $r;function Mc(e){if(me(e))return e;if(tt(e)){if(e.resolvedOnce&&$r!=null)return $r;if(e.constructor.name==="Function"){const t=e();if(xb(t))throw lo(Yt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return $r=t}else throw lo(Yt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw lo(Yt.NOT_SUPPORT_LOCALE_TYPE)}function N_(e,t,o){return[...new Set([o,...ot(t)?t:qe(t)?Object.keys(t):me(t)?[t]:[o]])]}function Oc(e,t,o){const n=me(o)?o:vn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;ot(r);)r=Fc(s,r,t);const i=ot(t)||!Me(t)?t:t.default?t.default:null;r=me(i)?[i]:i,ot(r)&&Fc(s,r,!1),a.__localeChainCache.set(n,s)}return s}function Fc(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function F_(){return{upper:(e,t)=>t==="text"&&me(e)?e.toUpperCase():t==="vnode"&&qe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&me(e)?e.toLowerCase():t==="vnode"&&qe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&me(e)?Dc(e):t==="vnode"&&qe(e)&&"__v_isVNode"in e?Dc(e.children):e}}let Uc;function Gc(e){Uc=e}let jc;function I_(e){jc=e}let zc;function D_(e){zc=e}let Bc=null;const U_=e=>{Bc=e},G_=()=>Bc;let Vc=null;const qc=e=>{Vc=e},j_=()=>Vc;let Hc=0;function z_(e={}){const t=tt(e.onWarn)?e.onWarn:$b,o=me(e.version)?e.version:O_,n=me(e.locale)||tt(e.locale)?e.locale:vn,a=tt(n)?vn:n,s=ot(e.fallbackLocale)||Me(e.fallbackLocale)||me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=Me(e.messages)?e.messages:br(a),i=Me(e.datetimeFormats)?e.datetimeFormats:br(a),l=Me(e.numberFormats)?e.numberFormats:br(a),c=yt(Xe(),e.modifiers,F_()),u=e.pluralRules||Xe(),p=tt(e.missing)?e.missing:null,h=De(e.missingWarn)||Oo(e.missingWarn)?e.missingWarn:!0,_=De(e.fallbackWarn)||Oo(e.fallbackWarn)?e.fallbackWarn:!0,x=!!e.fallbackFormat,k=!!e.unresolving,S=tt(e.postTranslation)?e.postTranslation:null,C=Me(e.processor)?e.processor:null,m=De(e.warnHtmlMessage)?e.warnHtmlMessage:!0,g=!!e.escapeParameter,d=tt(e.messageCompiler)?e.messageCompiler:Uc,$=tt(e.messageResolver)?e.messageResolver:jc||m_,L=tt(e.localeFallbacker)?e.localeFallbacker:zc||N_,v=qe(e.fallbackContext)?e.fallbackContext:void 0,w=e,P=qe(w.__datetimeFormatters)?w.__datetimeFormatters:new Map,H=qe(w.__numberFormatters)?w.__numberFormatters:new Map,M=qe(w.__meta)?w.__meta:{};Hc++;const j={version:o,cid:Hc,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:p,missingWarn:h,fallbackWarn:_,fallbackFormat:x,unresolving:k,postTranslation:S,processor:C,warnHtmlMessage:m,escapeParameter:g,messageCompiler:d,messageResolver:$,localeFallbacker:L,fallbackContext:v,onWarn:t,__meta:M};return j.datetimeFormats=i,j.numberFormats=l,j.__datetimeFormatters=P,j.__numberFormatters=H,__INTLIFY_PROD_DEVTOOLS__&&A_(j,o,M),j}const br=e=>({[e]:Xe()});function _r(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return me(i)?i:t}else return t}function na(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function B_(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function V_(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nq_(o,e)}function q_(e,t){const o=a_(t);if(o==null)throw ta(0);if(hr(o)===1){const s=s_(o);return e.plural(s.reduce((r,i)=>[...r,Wc(e,i)],[]))}else return Wc(e,o)}function Wc(e,t){const o=r_(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=i_(t).reduce((a,s)=>[...a,vr(e,s)],[]);return e.normalize(n)}}function vr(e,t){const o=hr(t);switch(o){case 3:return ss(t,o);case 9:return ss(t,o);case 4:{const n=t;if(Wt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Wt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw ta(o)}case 5:{const n=t;if(Wt(n,"i")&<(n.i))return e.interpolate(e.list(n.i));if(Wt(n,"index")&<(n.index))return e.interpolate(e.list(n.index));throw ta(o)}case 6:{const n=t,a=l_(n),s=c_(n);return e.linked(vr(e,s),a?vr(e,a):void 0,e.type)}case 7:return ss(t,o);case 8:return ss(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Kc=e=>e;let kn=Xe();function Yc(e,t={}){let o=!1;const n=t.onError||Rb;return t.onError=a=>{o=!0,n(a)},{...o_(e,t),detectError:o}}const H_=(e,t)=>{if(!me(e))throw lo(Yt.NOT_SUPPORT_NON_STRING_MESSAGE);{De(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Kc)(e),a=kn[n];if(a)return a;const{code:s,detectError:r}=Yc(e,t),i=new Function(`return ${s}`)();return r?i:kn[n]=i}};function W_(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&me(e)){De(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Kc)(e),a=kn[n];if(a)return a;const{ast:s,detectError:r}=Yc(e,{...t,location:!1,jit:!0}),i=yr(s);return r?i:kn[n]=i}else{const o=e.cacheKey;if(o){const n=kn[o];return n||(kn[o]=yr(e))}else return yr(e)}}const Xc=()=>"",Gt=e=>tt(e);function Zc(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=kr(...t),u=De(c.missingWarn)?c.missingWarn:e.missingWarn,p=De(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=De(c.escapeParameter)?c.escapeParameter:e.escapeParameter,_=!!c.resolvedMessage,x=me(c.default)||De(c.default)?De(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",k=o||x!=="",S=mr(e,c);h&&K_(c);let[C,m,g]=_?[l,S,i[S]||Xe()]:Jc(e,l,S,r,p,u),d=C,$=l;if(!_&&!(me(d)||io(d)||Gt(d))&&k&&(d=x,$=d),!_&&(!(me(d)||io(d)||Gt(d))||!me(m)))return a?rs:l;let L=!1;const v=()=>{L=!0},w=Gt(d)?d:Qc(e,l,m,d,$,v);if(L)return d;const P=Z_(e,m,g,c),H=S_(P),M=Y_(e,w,H);let j=n?n(M,l):M;if(h&&me(j)&&(j=kb(j)),__INTLIFY_PROD_DEVTOOLS__){const ae={timestamp:Date.now(),key:me(l)?l:Gt(d)?d.key:"",locale:m||(Gt(d)?d.locale:""),format:me(d)?d:Gt(d)?d.source:"",message:j};ae.meta=yt({},e.__meta,G_()||{}),P_(ae)}return j}function K_(e){ot(e.list)?e.list=e.list.map(t=>me(t)?dc(t):t):qe(e.named)&&Object.keys(e.named).forEach(t=>{me(e.named[t])&&(e.named[t]=dc(e.named[t]))})}function Jc(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=Xe(),h,_=null;const x="translate";for(let k=0;kn;return c.locale=o,c.key=t,c}const l=r(n,X_(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function Y_(e,t,o){return t(o)}function kr(...e){const[t,o,n]=e,a=Xe();if(!me(t)&&!lt(t)&&!Gt(t)&&!io(t))throw lo(Yt.INVALID_ARGUMENT);const s=lt(t)?String(t):(Gt(t),t);return lt(o)?a.plural=o:me(o)?a.default=o:Me(o)&&!es(o)?a.named=o:ot(o)&&(a.list=o),lt(n)?a.plural=n:me(n)?a.default=n:Me(n)&&yt(a,n),[s,a]}function X_(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>bb(t,o,r)}}function Z_(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:a,pluralRules:s,messages:_=>{let x=r(o,_);if(x==null&&u){const[,,k]=Jc(u,_,t,i,l,c);x=r(k,_)}if(me(x)||io(x)){let k=!1;const C=Qc(e,_,t,x,_,()=>{k=!0});return k?Xc:C}else return Gt(x)?x:Xc}};return e.processor&&(h.processor=e.processor),n.list&&(h.list=n.list),n.named&&(h.named=n.named),lt(n.plural)&&(h.pluralIndex=n.plural),h}function eu(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=wr(...t),h=De(u.missingWarn)?u.missingWarn:e.missingWarn;De(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const _=!!u.part,x=mr(e,u),k=r(e,a,x);if(!me(l)||l==="")return new Intl.DateTimeFormat(x,p).format(c);let S={},C,m=null;const g="datetime format";for(let L=0;L{tu.includes(l)?r[l]=o[l]:s[l]=o[l]}),me(n)?s.locale=n:Me(n)&&(r=n),Me(a)&&(r=a),[s.key||"",i,s,r]}function ou(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function nu(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,p]=xr(...t),h=De(u.missingWarn)?u.missingWarn:e.missingWarn;De(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const _=!!u.part,x=mr(e,u),k=r(e,a,x);if(!me(l)||l==="")return new Intl.NumberFormat(x,p).format(c);let S={},C,m=null;const g="number format";for(let L=0;L{au.includes(l)?r[l]=o[l]:s[l]=o[l]}),me(n)?s.locale=n:Me(n)&&(r=n),Me(a)&&(r=a),[s.key||"",i,s,r]}function su(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}n_();/*!
+ */function n_(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(vo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(vo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(vo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function lo(e){return qe(e)&&hr(e)===0&&(Wt(e,"b")||Wt(e,"body"))}const kc=["b","body"];function a_(e){return Io(e,kc)}const wc=["c","cases"];function s_(e){return Io(e,wc,[])}const xc=["s","static"];function r_(e){return Io(e,xc)}const Sc=["i","items"];function l_(e){return Io(e,Sc,[])}const Ac=["t","type"];function hr(e){return Io(e,Ac)}const Lc=["v","value"];function ss(e,t){const o=Io(e,Lc);if(o!=null)return o;throw ta(t)}const Pc=["m","modifier"];function i_(e){return Io(e,Pc)}const Ec=["k","key"];function c_(e){const t=Io(e,Ec);if(t)return t;throw ta(6)}function Io(e,t,o){for(let n=0;n{r===void 0?r=l:r+=l},h[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},h[2]=()=>{h[0](),a++},h[3]=()=>{if(a>0)a--,n=4,h[0]();else{if(a=0,r===void 0||(r=f_(r),r===!1))return!1;h[1]()}};function _(){const S=e[o+1];if(n===5&&S==="'"||n===6&&S==='"')return o++,l="\\"+S,h[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&_())){if(i=g_(s),p=Do[n],c=p[i]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(l=s,u()===!1))))return;if(n===7)return t}}const Rc=new Map;function m_(e,t){return qe(e)?e[t]:null}function $_(e,t){if(!qe(e))return null;let o=Rc.get(t);if(o||(o=h_(t),o&&Rc.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,__=e=>"",y_="text",v_=e=>e.length===0?"":Ab(e),k_=Sb;function Tc(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function w_(e){const t=it(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(it(e.named.count)||it(e.named.n))?it(e.named.count)?e.named.count:it(e.named.n)?e.named.n:t:t}function x_(e,t){t.count||(t.count=e),t.n||(t.n=e)}function S_(e={}){const t=e.locale,o=w_(e),n=qe(e.pluralRules)&&me(t)&&tt(e.pluralRules[t])?e.pluralRules[t]:Tc,a=qe(e.pluralRules)&&me(t)&&tt(e.pluralRules[t])?Tc:void 0,s=C=>C[n(o,C.length,a)],r=e.list||[],l=C=>r[C],i=e.named||Xe();it(e.pluralIndex)&&x_(o,i);const c=C=>i[C];function u(C){const m=tt(e.messages)?e.messages(C):qe(e.messages)?e.messages[C]:!1;return m||(e.parent?e.parent.message(C):__)}const p=C=>e.modifiers?e.modifiers[C]:b_,h=Me(e.processor)&&tt(e.processor.normalize)?e.processor.normalize:v_,_=Me(e.processor)&&tt(e.processor.interpolate)?e.processor.interpolate:k_,S=Me(e.processor)&&me(e.processor.type)?e.processor.type:y_,A={list:l,named:c,plural:s,linked:(C,...m)=>{const[d,f]=m;let $="text",x="";m.length===1?qe(d)?(x=d.modifier||x,$=d.type||$):me(d)&&(x=d||x):m.length===2&&(me(d)&&(x=d||x),me(f)&&($=f||$));const y=u(C)(A),w=$==="vnode"&&ot(y)&&x?y[0]:y;return x?p(x)(w,$):w},message:u,type:S,interpolate:_,normalize:h,values:yt(Xe(),r,i)};return A}let oa=null;function A_(e){oa=e}function L_(e,t,o){oa&&oa.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const P_=E_("function:translate");function E_(e){return t=>oa&&oa.emit(e,t)}const C_=gr.__EXTEND_POINT__,Zo=ts(C_),R_={FALLBACK_TO_TRANSLATE:Zo(),CANNOT_FORMAT_NUMBER:Zo(),FALLBACK_TO_NUMBER_FORMAT:Zo(),CANNOT_FORMAT_DATE:Zo(),FALLBACK_TO_DATE_FORMAT:Zo(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Zo(),__EXTEND_POINT__:Zo()},Nc=Re.__EXTEND_POINT__,Jo=ts(Nc),Yt={INVALID_ARGUMENT:Nc,INVALID_DATE_ARGUMENT:Jo(),INVALID_ISO_DATE_ARGUMENT:Jo(),NOT_SUPPORT_NON_STRING_MESSAGE:Jo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Jo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Jo(),NOT_SUPPORT_LOCALE_TYPE:Jo(),__EXTEND_POINT__:Jo()};function io(e){return bn(e,null,void 0)}function mr(e,t){return t.locale!=null?Mc(t.locale):Mc(e.locale)}let $r;function Mc(e){if(me(e))return e;if(tt(e)){if(e.resolvedOnce&&$r!=null)return $r;if(e.constructor.name==="Function"){const t=e();if(xb(t))throw io(Yt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return $r=t}else throw io(Yt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw io(Yt.NOT_SUPPORT_LOCALE_TYPE)}function T_(e,t,o){return[...new Set([o,...ot(t)?t:qe(t)?Object.keys(t):me(t)?[t]:[o]])]}function Fc(e,t,o){const n=me(o)?o:vn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;ot(r);)r=Oc(s,r,t);const l=ot(t)||!Me(t)?t:t.default?t.default:null;r=me(l)?[l]:l,ot(r)&&Oc(s,r,!1),a.__localeChainCache.set(n,s)}return s}function Oc(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function O_(){return{upper:(e,t)=>t==="text"&&me(e)?e.toUpperCase():t==="vnode"&&qe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&me(e)?e.toLowerCase():t==="vnode"&&qe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&me(e)?Dc(e):t==="vnode"&&qe(e)&&"__v_isVNode"in e?Dc(e.children):e}}let Gc;function Uc(e){Gc=e}let zc;function I_(e){zc=e}let jc;function D_(e){jc=e}let Bc=null;const G_=e=>{Bc=e},U_=()=>Bc;let Vc=null;const qc=e=>{Vc=e},z_=()=>Vc;let Hc=0;function j_(e={}){const t=tt(e.onWarn)?e.onWarn:$b,o=me(e.version)?e.version:F_,n=me(e.locale)||tt(e.locale)?e.locale:vn,a=tt(n)?vn:n,s=ot(e.fallbackLocale)||Me(e.fallbackLocale)||me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=Me(e.messages)?e.messages:br(a),l=Me(e.datetimeFormats)?e.datetimeFormats:br(a),i=Me(e.numberFormats)?e.numberFormats:br(a),c=yt(Xe(),e.modifiers,O_()),u=e.pluralRules||Xe(),p=tt(e.missing)?e.missing:null,h=De(e.missingWarn)||Fo(e.missingWarn)?e.missingWarn:!0,_=De(e.fallbackWarn)||Fo(e.fallbackWarn)?e.fallbackWarn:!0,S=!!e.fallbackFormat,k=!!e.unresolving,A=tt(e.postTranslation)?e.postTranslation:null,C=Me(e.processor)?e.processor:null,m=De(e.warnHtmlMessage)?e.warnHtmlMessage:!0,d=!!e.escapeParameter,f=tt(e.messageCompiler)?e.messageCompiler:Gc,$=tt(e.messageResolver)?e.messageResolver:zc||m_,x=tt(e.localeFallbacker)?e.localeFallbacker:jc||T_,y=qe(e.fallbackContext)?e.fallbackContext:void 0,w=e,P=qe(w.__datetimeFormatters)?w.__datetimeFormatters:new Map,q=qe(w.__numberFormatters)?w.__numberFormatters:new Map,M=qe(w.__meta)?w.__meta:{};Hc++;const z={version:o,cid:Hc,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:p,missingWarn:h,fallbackWarn:_,fallbackFormat:S,unresolving:k,postTranslation:A,processor:C,warnHtmlMessage:m,escapeParameter:d,messageCompiler:f,messageResolver:$,localeFallbacker:x,fallbackContext:y,onWarn:t,__meta:M};return z.datetimeFormats=l,z.numberFormats=i,z.__datetimeFormatters=P,z.__numberFormatters=q,__INTLIFY_PROD_DEVTOOLS__&&L_(z,o,M),z}const br=e=>({[e]:Xe()});function _r(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const l=s(e,o,t,a);return me(l)?l:t}else return t}function na(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function B_(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function V_(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nq_(o,e)}function q_(e,t){const o=a_(t);if(o==null)throw ta(0);if(hr(o)===1){const s=s_(o);return e.plural(s.reduce((r,l)=>[...r,Wc(e,l)],[]))}else return Wc(e,o)}function Wc(e,t){const o=r_(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=l_(t).reduce((a,s)=>[...a,vr(e,s)],[]);return e.normalize(n)}}function vr(e,t){const o=hr(t);switch(o){case 3:return ss(t,o);case 9:return ss(t,o);case 4:{const n=t;if(Wt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Wt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw ta(o)}case 5:{const n=t;if(Wt(n,"i")&&it(n.i))return e.interpolate(e.list(n.i));if(Wt(n,"index")&&it(n.index))return e.interpolate(e.list(n.index));throw ta(o)}case 6:{const n=t,a=i_(n),s=c_(n);return e.linked(vr(e,s),a?vr(e,a):void 0,e.type)}case 7:return ss(t,o);case 8:return ss(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Kc=e=>e;let kn=Xe();function Yc(e,t={}){let o=!1;const n=t.onError||Nb;return t.onError=a=>{o=!0,n(a)},{...o_(e,t),detectError:o}}const H_=(e,t)=>{if(!me(e))throw io(Yt.NOT_SUPPORT_NON_STRING_MESSAGE);{De(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Kc)(e),a=kn[n];if(a)return a;const{code:s,detectError:r}=Yc(e,t),l=new Function(`return ${s}`)();return r?l:kn[n]=l}};function W_(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&me(e)){De(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Kc)(e),a=kn[n];if(a)return a;const{ast:s,detectError:r}=Yc(e,{...t,location:!1,jit:!0}),l=yr(s);return r?l:kn[n]=l}else{const o=e.cacheKey;if(o){const n=kn[o];return n||(kn[o]=yr(e))}else return yr(e)}}const Xc=()=>"",Ut=e=>tt(e);function Zc(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:l}=e,[i,c]=kr(...t),u=De(c.missingWarn)?c.missingWarn:e.missingWarn,p=De(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=De(c.escapeParameter)?c.escapeParameter:e.escapeParameter,_=!!c.resolvedMessage,S=me(c.default)||De(c.default)?De(c.default)?s?i:()=>i:c.default:o?s?i:()=>i:"",k=o||S!=="",A=mr(e,c);h&&K_(c);let[C,m,d]=_?[i,A,l[A]||Xe()]:Jc(e,i,A,r,p,u),f=C,$=i;if(!_&&!(me(f)||lo(f)||Ut(f))&&k&&(f=S,$=f),!_&&(!(me(f)||lo(f)||Ut(f))||!me(m)))return a?rs:i;let x=!1;const y=()=>{x=!0},w=Ut(f)?f:Qc(e,i,m,f,$,y);if(x)return f;const P=Z_(e,m,d,c),q=S_(P),M=Y_(e,w,q);let z=n?n(M,i):M;if(h&&me(z)&&(z=kb(z)),__INTLIFY_PROD_DEVTOOLS__){const ae={timestamp:Date.now(),key:me(i)?i:Ut(f)?f.key:"",locale:m||(Ut(f)?f.locale:""),format:me(f)?f:Ut(f)?f.source:"",message:z};ae.meta=yt({},e.__meta,U_()||{}),P_(ae)}return z}function K_(e){ot(e.list)?e.list=e.list.map(t=>me(t)?pc(t):t):qe(e.named)&&Object.keys(e.named).forEach(t=>{me(e.named[t])&&(e.named[t]=pc(e.named[t]))})}function Jc(e,t,o,n,a,s){const{messages:r,onWarn:l,messageResolver:i,localeFallbacker:c}=e,u=c(e,n,o);let p=Xe(),h,_=null;const S="translate";for(let k=0;kn;return c.locale=o,c.key=t,c}const i=r(n,X_(e,o,a,n,l,s));return i.locale=o,i.key=t,i.source=n,i}function Y_(e,t,o){return t(o)}function kr(...e){const[t,o,n]=e,a=Xe();if(!me(t)&&!it(t)&&!Ut(t)&&!lo(t))throw io(Yt.INVALID_ARGUMENT);const s=it(t)?String(t):(Ut(t),t);return it(o)?a.plural=o:me(o)?a.default=o:Me(o)&&!es(o)?a.named=o:ot(o)&&(a.list=o),it(n)?a.plural=n:me(n)?a.default=n:Me(n)&&yt(a,n),[s,a]}function X_(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>bb(t,o,r)}}function Z_(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:l,fallbackWarn:i,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:a,pluralRules:s,messages:_=>{let S=r(o,_);if(S==null&&u){const[,,k]=Jc(u,_,t,l,i,c);S=r(k,_)}if(me(S)||lo(S)){let k=!1;const C=Qc(e,_,t,S,_,()=>{k=!0});return k?Xc:C}else return Ut(S)?S:Xc}};return e.processor&&(h.processor=e.processor),n.list&&(h.list=n.list),n.named&&(h.named=n.named),it(n.plural)&&(h.pluralIndex=n.plural),h}function eu(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:l}=e,[i,c,u,p]=wr(...t),h=De(u.missingWarn)?u.missingWarn:e.missingWarn;De(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const _=!!u.part,S=mr(e,u),k=r(e,a,S);if(!me(i)||i==="")return new Intl.DateTimeFormat(S,p).format(c);let A={},C,m=null;const d="datetime format";for(let x=0;x{tu.includes(i)?r[i]=o[i]:s[i]=o[i]}),me(n)?s.locale=n:Me(n)&&(r=n),Me(a)&&(r=a),[s.key||"",l,s,r]}function ou(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function nu(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:l}=e,[i,c,u,p]=xr(...t),h=De(u.missingWarn)?u.missingWarn:e.missingWarn;De(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const _=!!u.part,S=mr(e,u),k=r(e,a,S);if(!me(i)||i==="")return new Intl.NumberFormat(S,p).format(c);let A={},C,m=null;const d="number format";for(let x=0;x{au.includes(i)?r[i]=o[i]:s[i]=o[i]}),me(n)?s.locale=n:Me(n)&&(r=n),Me(a)&&(r=a),[s.key||"",l,s,r]}function su(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}n_();/*!
* vue-i18n v9.14.5
* (c) 2025 kazuya kawaguchi
* Released under the MIT License.
- */const J_="9.14.5";function Q_(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(vo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(vo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(vo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(vo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(vo().__INTLIFY_PROD_DEVTOOLS__=!1)}const ey=T_.__EXTEND_POINT__,wo=ts(ey);wo(),wo(),wo(),wo(),wo(),wo(),wo(),wo(),wo();const ru=Yt.__EXTEND_POINT__,Et=ts(ru),gt={UNEXPECTED_RETURN_TYPE:ru,INVALID_ARGUMENT:Et(),MUST_BE_CALL_SETUP_TOP:Et(),NOT_INSTALLED:Et(),NOT_AVAILABLE_IN_LEGACY_MODE:Et(),REQUIRED_VALUE:Et(),INVALID_VALUE:Et(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Et(),NOT_INSTALLED_WITH_PROVIDE:Et(),UNEXPECTED_ERROR:Et(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Et(),BRIDGE_SUPPORT_VUE_2_ONLY:Et(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Et(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Et(),__EXTEND_POINT__:Et()};function ht(e,...t){return bn(e,null,void 0)}const Sr=Mo("__translateVNode"),Lr=Mo("__datetimeParts"),Ar=Mo("__numberParts"),iu=Mo("__setPluralRules"),lu=Mo("__injectWithOption"),Pr=Mo("__dispose");function aa(e){if(!qe(e)||io(e))return e;for(const t in e)if(Wt(e,t))if(!t.includes("."))qe(e[t])&&aa(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,s=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(r[l]=r[l]||Xe(),ns(c,r[l])):ns(c,r)}else me(i)&&ns(JSON.parse(i),r)}),a==null&&s)for(const i in r)Wt(r,i)&&aa(r[i]);return r}function cu(e){return e.type}function uu(e,t,o){let n=qe(t.messages)?t.messages:Xe();"__i18nGlobal"in o&&(n=is(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(qe(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(qe(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function du(e){return ze(Hn,null,e,0)}const pu="__INTLIFY_META__",gu=()=>[],ty=()=>!1;let fu=0;function hu(e){return(t,o,n,a)=>e(o,n,_o()||void 0,a)}const oy=()=>{const e=_o();let t=null;return e&&(t=cu(e)[pu])?{[pu]:t}:null};function Er(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=Qa?ue:In,i=!!e.translateExistCompatible;let l=De(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:me(e.locale)?e.locale:vn),u=r(o&&l?o.fallbackLocale.value:me(e.fallbackLocale)||ot(e.fallbackLocale)||Me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=r(is(c.value,e)),h=r(Me(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),_=r(Me(e.numberFormats)?e.numberFormats:{[c.value]:{}});let x=o?o.missingWarn:De(e.missingWarn)||Oo(e.missingWarn)?e.missingWarn:!0,k=o?o.fallbackWarn:De(e.fallbackWarn)||Oo(e.fallbackWarn)?e.fallbackWarn:!0,S=o?o.fallbackRoot:De(e.fallbackRoot)?e.fallbackRoot:!0,C=!!e.fallbackFormat,m=tt(e.missing)?e.missing:null,g=tt(e.missing)?hu(e.missing):null,d=tt(e.postTranslation)?e.postTranslation:null,$=o?o.warnHtmlMessage:De(e.warnHtmlMessage)?e.warnHtmlMessage:!0,L=!!e.escapeParameter;const v=o?o.modifiers:Me(e.modifiers)?e.modifiers:{};let w=e.pluralRules||o&&o.pluralRules,P;P=(()=>{a&&qc(null);const D={version:J_,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:v,pluralRules:w,missing:g===null?void 0:g,missingWarn:x,fallbackWarn:k,fallbackFormat:C,unresolving:!0,postTranslation:d===null?void 0:d,warnHtmlMessage:$,escapeParameter:L,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};D.datetimeFormats=h.value,D.numberFormats=_.value,D.__datetimeFormatters=Me(P)?P.__datetimeFormatters:void 0,D.__numberFormatters=Me(P)?P.__numberFormatters:void 0;const K=z_(D);return a&&qc(K),K})(),na(P,c.value,u.value);function M(){return[c.value,u.value,p.value,h.value,_.value]}const j=re({get:()=>c.value,set:D=>{c.value=D,P.locale=c.value}}),ae=re({get:()=>u.value,set:D=>{u.value=D,P.fallbackLocale=u.value,na(P,c.value,D)}}),I=re(()=>p.value),q=re(()=>h.value),B=re(()=>_.value);function O(){return tt(d)?d:null}function te(D){d=D,P.postTranslation=D}function U(){return m}function R(D){D!==null&&(g=hu(D)),m=D,P.missing=g}const V=(D,K,ye,Ee,Be,Ze)=>{M();let We;try{__INTLIFY_PROD_DEVTOOLS__,a||(P.fallbackContext=o?j_():void 0),We=D(P)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(P.fallbackContext=void 0)}if(ye!=="translate exists"&<(We)&&We===rs||ye==="translate exists"&&!We){const[Tt,Eo]=K();return o&&S?Ee(o):Be(Tt)}else{if(Ze(We))return We;throw ht(gt.UNEXPECTED_RETURN_TYPE)}};function G(...D){return V(K=>Reflect.apply(Zc,null,[K,...D]),()=>kr(...D),"translate",K=>Reflect.apply(K.t,K,[...D]),K=>K,K=>me(K))}function oe(...D){const[K,ye,Ee]=D;if(Ee&&!qe(Ee))throw ht(gt.INVALID_ARGUMENT);return G(K,ye,yt({resolvedMessage:!0},Ee||{}))}function he(...D){return V(K=>Reflect.apply(eu,null,[K,...D]),()=>wr(...D),"datetime format",K=>Reflect.apply(K.d,K,[...D]),()=>Ic,K=>me(K))}function ke(...D){return V(K=>Reflect.apply(nu,null,[K,...D]),()=>xr(...D),"number format",K=>Reflect.apply(K.n,K,[...D]),()=>Ic,K=>me(K))}function Ae(D){return D.map(K=>me(K)||lt(K)||De(K)?du(String(K)):K)}const ve={normalize:Ae,interpolate:D=>D,type:"vnode"};function Q(...D){return V(K=>{let ye;const Ee=K;try{Ee.processor=ve,ye=Reflect.apply(Zc,null,[Ee,...D])}finally{Ee.processor=null}return ye},()=>kr(...D),"translate",K=>K[Sr](...D),K=>[du(K)],K=>ot(K))}function pe(...D){return V(K=>Reflect.apply(nu,null,[K,...D]),()=>xr(...D),"number format",K=>K[Ar](...D),gu,K=>me(K)||ot(K))}function _e(...D){return V(K=>Reflect.apply(eu,null,[K,...D]),()=>wr(...D),"datetime format",K=>K[Lr](...D),gu,K=>me(K)||ot(K))}function y(D){w=D,P.pluralRules=w}function E(D,K){return V(()=>{if(!D)return!1;const ye=me(K)?K:c.value,Ee=Z(ye),Be=P.messageResolver(Ee,D);return i?Be!=null:io(Be)||Gt(Be)||me(Be)},()=>[D],"translate exists",ye=>Reflect.apply(ye.te,ye,[D,K]),ty,ye=>De(ye))}function A(D){let K=null;const ye=Oc(P,u.value,c.value);for(let Ee=0;Ee{l&&(c.value=D,P.locale=D,na(P,c.value,u.value))}),ct(o.fallbackLocale,D=>{l&&(u.value=D,P.fallbackLocale=D,na(P,c.value,u.value))}));const le={id:fu,locale:j,fallbackLocale:ae,get inheritLocale(){return l},set inheritLocale(D){l=D,D&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,na(P,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:I,get modifiers(){return v},get pluralRules(){return w||{}},get isGlobal(){return a},get missingWarn(){return x},set missingWarn(D){x=D,P.missingWarn=x},get fallbackWarn(){return k},set fallbackWarn(D){k=D,P.fallbackWarn=k},get fallbackRoot(){return S},set fallbackRoot(D){S=D},get fallbackFormat(){return C},set fallbackFormat(D){C=D,P.fallbackFormat=C},get warnHtmlMessage(){return $},set warnHtmlMessage(D){$=D,P.warnHtmlMessage=D},get escapeParameter(){return L},set escapeParameter(D){L=D,P.escapeParameter=D},t:G,getLocaleMessage:Z,setLocaleMessage:J,mergeLocaleMessage:ie,getPostTranslationHandler:O,setPostTranslationHandler:te,getMissingHandler:U,setMissingHandler:R,[iu]:y};return le.datetimeFormats=q,le.numberFormats=B,le.rt=oe,le.te=E,le.tm=z,le.d=he,le.n=ke,le.getDateTimeFormat=ne,le.setDateTimeFormat=f,le.mergeDateTimeFormat=b,le.getNumberFormat=F,le.setNumberFormat=X,le.mergeNumberFormat=ge,le[lu]=n,le[Sr]=Q,le[Lr]=_e,le[Ar]=pe,le}function ny(e){const t=me(e.locale)?e.locale:vn,o=me(e.fallbackLocale)||ot(e.fallbackLocale)||Me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=tt(e.missing)?e.missing:void 0,a=De(e.silentTranslationWarn)||Oo(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=De(e.silentFallbackWarn)||Oo(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=De(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Me(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=tt(e.postTranslation)?e.postTranslation:void 0,p=me(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,_=De(e.sync)?e.sync:!0;let x=e.messages;if(Me(e.sharedMessages)){const L=e.sharedMessages;x=Object.keys(L).reduce((w,P)=>{const H=w[P]||(w[P]={});return yt(H,L[P]),w},x||{})}const{__i18n:k,__root:S,__injectWithOption:C}=e,m=e.datetimeFormats,g=e.numberFormats,d=e.flatJson,$=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:x,flatJson:d,datetimeFormats:m,numberFormats:g,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:_,translateExistCompatible:$,__i18n:k,__root:S,__injectWithOption:C}}function Cr(e={},t){{const o=Er(ny(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 De(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=De(s)?!s:s},get silentFallbackWarn(){return De(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=De(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,i,l]=s,c={};let u=null,p=null;if(!me(r))throw ht(gt.INVALID_ARGUMENT);const h=r;return me(i)?c.locale=i:ot(i)?u=i:Me(i)&&(p=i),ot(l)?u=l:Me(l)&&(p=l),Reflect.apply(o.t,o,[h,u||p||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,p=null;if(!me(r))throw ht(gt.INVALID_ARGUMENT);const h=r;return me(i)?c.locale=i:lt(i)?c.plural=i:ot(i)?u=i:Me(i)&&(p=i),me(l)?c.locale=l:ot(l)?u=l:Me(l)&&(p=l),Reflect.apply(o.t,o,[h,u||p||{},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 Tr={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function ay({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Oe?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Xe())}function mu(e){return Oe}const $u=zn({name:"i18n-t",props:yt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>lt(e)||!isNaN(e)}},Tr),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||Uo({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(p=>p!=="_"),r=Xe();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=me(e.plural)?+e.plural:e.plural);const i=ay(t,s),l=a[Sr](e.keypath,i,r),c=yt(Xe(),n),u=me(e.tag)||qe(e.tag)?e.tag:mu();return Ul(u,c,l)}}});function sy(e){return ot(e)&&!me(e[0])}function bu(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=Xe();e.locale&&(r.locale=e.locale),me(e.format)?r.key=e.format:qe(e.format)&&(me(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((h,_)=>o.includes(_)?yt(Xe(),h,{[_]:e.format[_]}):h,Xe()));const l=n(e.value,r,i);let c=[r.key];ot(l)?c=l.map((h,_)=>{const x=a[h.type],k=x?x({[h.type]:h.value,index:_,parts:l}):[h.value];return sy(k)&&(k[0].key=`${h.type}-${_}`),k}):me(l)&&(c=[l]);const u=yt(Xe(),s),p=me(e.tag)||qe(e.tag)?e.tag:mu();return Ul(p,u,c)}}const _u=zn({name:"i18n-n",props:yt({value:{type:Number,required:!0},format:{type:[String,Object]}},Tr),setup(e,t){const o=e.i18n||Uo({useScope:e.scope,__useComponent:!0});return bu(e,t,au,(...n)=>o[Ar](...n))}}),yu=zn({name:"i18n-d",props:yt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Tr),setup(e,t){const o=e.i18n||Uo({useScope:e.scope,__useComponent:!0});return bu(e,t,tu,(...n)=>o[Lr](...n))}});function ry(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 iy(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw ht(gt.UNEXPECTED_ERROR);const u=ry(e,i.$),p=vu(c);return[Reflect.apply(u.t,u,[...ku(p)]),u]};return{created:(r,i)=>{const[l,c]=t(i);Qa&&e.global===c&&(r.__i18nWatcher=ct(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{Qa&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const l=r.__composer,c=vu(i);r.textContent=Reflect.apply(l.t,l,[...ku(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function vu(e){if(me(e))return{path:e};if(Me(e)){if(!("path"in e))throw ht(gt.REQUIRED_VALUE,"path");return e}else throw ht(gt.INVALID_VALUE)}function ku(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return me(o)&&(r.locale=o),lt(a)&&(r.plural=a),lt(s)&&(r.plural=s),[t,i,r]}function ly(e,t,...o){const n=Me(o[0])?o[0]:{},a=!!n.useI18nComponentName;(De(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":$u.name,"I18nT"].forEach(r=>e.component(r,$u)),[_u.name,"I18nN"].forEach(r=>e.component(r,_u)),[yu.name,"I18nD"].forEach(r=>e.component(r,yu))),e.directive("t",iy(t))}function cy(e,t,o){return{beforeCreate(){const n=_o();if(!n)throw ht(gt.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=wu(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=Cr(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=wu(e,a);else{this.$i18n=Cr({__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&&uu(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=_o();if(!n)throw ht(gt.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 wu(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[iu](t.pluralizationRules||e.pluralizationRules);const o=is(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 uy=Mo("global-vue-i18n");function dy(e={},t){const o=__VUE_I18N_LEGACY_API__&&De(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=De(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=py(e,o),l=Mo("");function c(h){return s.get(h)||null}function u(h,_){s.set(h,_)}function p(h){s.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(_,...x){if(_.__VUE_I18N_SYMBOL__=l,_.provide(_.__VUE_I18N_SYMBOL__,h),Me(x[0])){const C=x[0];h.__composerExtend=C.__composerExtend,h.__vueI18nExtend=C.__vueI18nExtend}let k=null;!o&&n&&(k=vy(_,h.global)),__VUE_I18N_FULL_INSTALL__&&ly(_,h,...x),__VUE_I18N_LEGACY_API__&&o&&_.mixin(cy(i,i.__composer,h));const S=_.unmount;_.unmount=()=>{k&&k(),h.dispose(),S()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:p};return h}}function Uo(e={}){const t=_o();if(t==null)throw ht(gt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw ht(gt.NOT_INSTALLED);const o=gy(t),n=hy(o),a=cu(t),s=fy(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw ht(gt.NOT_AVAILABLE_IN_LEGACY_MODE);return _y(t,s,n,e)}if(s==="global")return uu(n,e,a),n;if(s==="parent"){let l=my(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=yt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=Er(l),r.__composerExtend&&(i[Pr]=r.__composerExtend(i)),by(r,t,i),r.__setInstance(t,i)}return i}function py(e,t,o){const n=xs();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Cr(e)):n.run(()=>Er(e));if(a==null)throw ht(gt.UNEXPECTED_ERROR);return[n,a]}}function gy(e){{const t=Ne(e.isCE?uy:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw ht(e.isCE?gt.NOT_INSTALLED_WITH_PROVIDE:gt.UNEXPECTED_ERROR);return t}}function fy(e,t){return es(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function hy(e){return e.mode==="composition"?e.global:e.global.__composer}function my(e,t,o=!1){let n=null;const a=t.root;let s=$y(t,o);for(;s!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(s);i!=null&&(n=i.__composer,o&&n&&!n[lu]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function $y(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function by(e,t,o){kt(()=>{},t),Ua(()=>{const n=o;e.__deleteInstance(t);const a=n[Pr];a&&(a(),delete n[Pr])},t)}function _y(e,t,o,n={}){const a=t==="local",s=In(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw ht(gt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=De(n.inheritLocale)?n.inheritLocale:!me(n.locale),i=ue(!a||r?o.locale.value:me(n.locale)?n.locale:vn),l=ue(!a||r?o.fallbackLocale.value:me(n.fallbackLocale)||ot(n.fallbackLocale)||Me(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=ue(is(i.value,n)),u=ue(Me(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=ue(Me(n.numberFormats)?n.numberFormats:{[i.value]:{}}),h=a?o.missingWarn:De(n.missingWarn)||Oo(n.missingWarn)?n.missingWarn:!0,_=a?o.fallbackWarn:De(n.fallbackWarn)||Oo(n.fallbackWarn)?n.fallbackWarn:!0,x=a?o.fallbackRoot:De(n.fallbackRoot)?n.fallbackRoot:!0,k=!!n.fallbackFormat,S=tt(n.missing)?n.missing:null,C=tt(n.postTranslation)?n.postTranslation:null,m=a?o.warnHtmlMessage:De(n.warnHtmlMessage)?n.warnHtmlMessage:!0,g=!!n.escapeParameter,d=a?o.modifiers:Me(n.modifiers)?n.modifiers:{},$=n.pluralRules||a&&o.pluralRules;function L(){return[i.value,l.value,c.value,u.value,p.value]}const v=re({get:()=>s.value?s.value.locale.value:i.value,set:A=>{s.value&&(s.value.locale.value=A),i.value=A}}),w=re({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:A=>{s.value&&(s.value.fallbackLocale.value=A),l.value=A}}),P=re(()=>s.value?s.value.messages.value:c.value),H=re(()=>u.value),M=re(()=>p.value);function j(){return s.value?s.value.getPostTranslationHandler():C}function ae(A){s.value&&s.value.setPostTranslationHandler(A)}function I(){return s.value?s.value.getMissingHandler():S}function q(A){s.value&&s.value.setMissingHandler(A)}function B(A){return L(),A()}function O(...A){return s.value?B(()=>Reflect.apply(s.value.t,null,[...A])):B(()=>"")}function te(...A){return s.value?Reflect.apply(s.value.rt,null,[...A]):""}function U(...A){return s.value?B(()=>Reflect.apply(s.value.d,null,[...A])):B(()=>"")}function R(...A){return s.value?B(()=>Reflect.apply(s.value.n,null,[...A])):B(()=>"")}function V(A){return s.value?s.value.tm(A):{}}function G(A,z){return s.value?s.value.te(A,z):!1}function oe(A){return s.value?s.value.getLocaleMessage(A):{}}function he(A,z){s.value&&(s.value.setLocaleMessage(A,z),c.value[A]=z)}function ke(A,z){s.value&&s.value.mergeLocaleMessage(A,z)}function Ae(A){return s.value?s.value.getDateTimeFormat(A):{}}function Le(A,z){s.value&&(s.value.setDateTimeFormat(A,z),u.value[A]=z)}function ve(A,z){s.value&&s.value.mergeDateTimeFormat(A,z)}function Q(A){return s.value?s.value.getNumberFormat(A):{}}function pe(A,z){s.value&&(s.value.setNumberFormat(A,z),p.value[A]=z)}function _e(A,z){s.value&&s.value.mergeNumberFormat(A,z)}const y={get id(){return s.value?s.value.id:-1},locale:v,fallbackLocale:w,messages:P,datetimeFormats:H,numberFormats:M,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(A){s.value&&(s.value.inheritLocale=A)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:d},get pluralRules(){return s.value?s.value.pluralRules:$},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:h},set missingWarn(A){s.value&&(s.value.missingWarn=A)},get fallbackWarn(){return s.value?s.value.fallbackWarn:_},set fallbackWarn(A){s.value&&(s.value.missingWarn=A)},get fallbackRoot(){return s.value?s.value.fallbackRoot:x},set fallbackRoot(A){s.value&&(s.value.fallbackRoot=A)},get fallbackFormat(){return s.value?s.value.fallbackFormat:k},set fallbackFormat(A){s.value&&(s.value.fallbackFormat=A)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:m},set warnHtmlMessage(A){s.value&&(s.value.warnHtmlMessage=A)},get escapeParameter(){return s.value?s.value.escapeParameter:g},set escapeParameter(A){s.value&&(s.value.escapeParameter=A)},t:O,getPostTranslationHandler:j,setPostTranslationHandler:ae,getMissingHandler:I,setMissingHandler:q,rt:te,d:U,n:R,tm:V,te:G,getLocaleMessage:oe,setLocaleMessage:he,mergeLocaleMessage:ke,getDateTimeFormat:Ae,setDateTimeFormat:Le,mergeDateTimeFormat:ve,getNumberFormat:Q,setNumberFormat:pe,mergeNumberFormat:_e};function E(A){A.locale.value=i.value,A.fallbackLocale.value=l.value,Object.keys(c.value).forEach(z=>{A.mergeLocaleMessage(z,c.value[z])}),Object.keys(u.value).forEach(z=>{A.mergeDateTimeFormat(z,u.value[z])}),Object.keys(p.value).forEach(z=>{A.mergeNumberFormat(z,p.value[z])}),A.escapeParameter=g,A.fallbackFormat=k,A.fallbackRoot=x,A.fallbackWarn=_,A.missingWarn=h,A.warnHtmlMessage=m}return ol(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw ht(gt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const A=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=A.locale.value,l.value=A.fallbackLocale.value,c.value=A.messages.value,u.value=A.datetimeFormats.value,p.value=A.numberFormats.value):a&&E(A)}),y}const yy=["locale","fallbackLocale","availableLocales"],xu=["t","rt","d","n","tm","te"];function vy(e,t){const o=Object.create(null);return yy.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw ht(gt.UNEXPECTED_ERROR);const r=at(s.value)?{get(){return s.value.value},set(i){s.value.value=i}}:{get(){return s.get&&s.get()}};Object.defineProperty(o,a,r)}),e.config.globalProperties.$i18n=o,xu.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw ht(gt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,xu.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Q_(),__INTLIFY_JIT_COMPILATION__?Gc(W_):Gc(H_),I_($_),D_(Oc),__INTLIFY_PROD_DEVTOOLS__){const e=vo();e.__INTLIFY__=!0,L_(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const ky=Object.assign({"./locales/ar/allPeopleGroups.json":xf,"./locales/ar/aria.json":Sf,"./locales/ar/buttons.json":Lf,"./locales/ar/connectivity.json":Af,"./locales/ar/controls.json":Pf,"./locales/ar/dashboard.json":Ef,"./locales/ar/detail.json":Cf,"./locales/ar/gospel.json":Tf,"./locales/ar/grid.json":Nf,"./locales/ar/legend.json":Rf,"./locales/ar/messages.json":Mf,"./locales/ar/options.json":Of,"./locales/ar/popup.json":Ff,"./locales/ar/prayerLaps.json":If,"./locales/ar/regions.json":Df,"./locales/ar/search.json":Uf,"./locales/ar/studio.json":Gf,"./locales/ar/tabs.json":jf,"./locales/ar/vision.json":zf,"./locales/de/allPeopleGroups.json":Bf,"./locales/de/aria.json":Vf,"./locales/de/buttons.json":qf,"./locales/de/connectivity.json":Hf,"./locales/de/controls.json":Wf,"./locales/de/dashboard.json":Kf,"./locales/de/detail.json":Yf,"./locales/de/gospel.json":Xf,"./locales/de/grid.json":Zf,"./locales/de/legend.json":Jf,"./locales/de/messages.json":Qf,"./locales/de/options.json":eh,"./locales/de/popup.json":th,"./locales/de/prayerLaps.json":oh,"./locales/de/regions.json":nh,"./locales/de/search.json":ah,"./locales/de/studio.json":sh,"./locales/de/tabs.json":rh,"./locales/de/vision.json":ih,"./locales/en/allPeopleGroups.json":lh,"./locales/en/aria.json":ch,"./locales/en/buttons.json":uh,"./locales/en/connectivity.json":dh,"./locales/en/controls.json":ph,"./locales/en/dashboard.json":gh,"./locales/en/detail.json":fh,"./locales/en/gospel.json":hh,"./locales/en/grid.json":mh,"./locales/en/legend.json":$h,"./locales/en/messages.json":bh,"./locales/en/options.json":_h,"./locales/en/popup.json":yh,"./locales/en/prayerLaps.json":vh,"./locales/en/regions.json":kh,"./locales/en/search.json":wh,"./locales/en/studio.json":xh,"./locales/en/tabs.json":Sh,"./locales/en/vision.json":Lh,"./locales/es/allPeopleGroups.json":Ah,"./locales/es/aria.json":Ph,"./locales/es/buttons.json":Eh,"./locales/es/connectivity.json":Ch,"./locales/es/controls.json":Th,"./locales/es/dashboard.json":Nh,"./locales/es/detail.json":Rh,"./locales/es/gospel.json":Mh,"./locales/es/grid.json":Oh,"./locales/es/legend.json":Fh,"./locales/es/messages.json":Ih,"./locales/es/options.json":Dh,"./locales/es/popup.json":Uh,"./locales/es/prayerLaps.json":Gh,"./locales/es/regions.json":jh,"./locales/es/search.json":zh,"./locales/es/studio.json":Bh,"./locales/es/tabs.json":Vh,"./locales/es/vision.json":qh,"./locales/fr/allPeopleGroups.json":Hh,"./locales/fr/aria.json":Wh,"./locales/fr/buttons.json":Kh,"./locales/fr/connectivity.json":Yh,"./locales/fr/controls.json":Xh,"./locales/fr/dashboard.json":Zh,"./locales/fr/detail.json":Jh,"./locales/fr/gospel.json":Qh,"./locales/fr/grid.json":em,"./locales/fr/legend.json":tm,"./locales/fr/messages.json":om,"./locales/fr/options.json":nm,"./locales/fr/popup.json":am,"./locales/fr/prayerLaps.json":sm,"./locales/fr/regions.json":rm,"./locales/fr/search.json":im,"./locales/fr/studio.json":lm,"./locales/fr/tabs.json":cm,"./locales/fr/vision.json":um,"./locales/hi/allPeopleGroups.json":dm,"./locales/hi/aria.json":pm,"./locales/hi/buttons.json":gm,"./locales/hi/connectivity.json":fm,"./locales/hi/controls.json":hm,"./locales/hi/dashboard.json":mm,"./locales/hi/detail.json":$m,"./locales/hi/gospel.json":bm,"./locales/hi/grid.json":_m,"./locales/hi/legend.json":ym,"./locales/hi/messages.json":vm,"./locales/hi/options.json":km,"./locales/hi/popup.json":wm,"./locales/hi/prayerLaps.json":xm,"./locales/hi/regions.json":Sm,"./locales/hi/search.json":Lm,"./locales/hi/studio.json":Am,"./locales/hi/tabs.json":Pm,"./locales/hi/vision.json":Em,"./locales/it/allPeopleGroups.json":Cm,"./locales/it/aria.json":Tm,"./locales/it/buttons.json":Nm,"./locales/it/connectivity.json":Rm,"./locales/it/controls.json":Mm,"./locales/it/dashboard.json":Om,"./locales/it/detail.json":Fm,"./locales/it/gospel.json":Im,"./locales/it/grid.json":Dm,"./locales/it/legend.json":Um,"./locales/it/messages.json":Gm,"./locales/it/options.json":jm,"./locales/it/popup.json":zm,"./locales/it/prayerLaps.json":Bm,"./locales/it/regions.json":Vm,"./locales/it/search.json":qm,"./locales/it/studio.json":Hm,"./locales/it/tabs.json":Wm,"./locales/it/vision.json":Km,"./locales/pt/allPeopleGroups.json":Ym,"./locales/pt/aria.json":Xm,"./locales/pt/buttons.json":Zm,"./locales/pt/connectivity.json":Jm,"./locales/pt/controls.json":Qm,"./locales/pt/dashboard.json":e$,"./locales/pt/detail.json":t$,"./locales/pt/gospel.json":o$,"./locales/pt/grid.json":n$,"./locales/pt/legend.json":a$,"./locales/pt/messages.json":s$,"./locales/pt/options.json":r$,"./locales/pt/popup.json":i$,"./locales/pt/prayerLaps.json":l$,"./locales/pt/regions.json":c$,"./locales/pt/search.json":u$,"./locales/pt/studio.json":d$,"./locales/pt/tabs.json":p$,"./locales/pt/vision.json":g$,"./locales/ro/allPeopleGroups.json":f$,"./locales/ro/aria.json":h$,"./locales/ro/buttons.json":m$,"./locales/ro/connectivity.json":$$,"./locales/ro/controls.json":b$,"./locales/ro/dashboard.json":_$,"./locales/ro/detail.json":y$,"./locales/ro/gospel.json":v$,"./locales/ro/grid.json":k$,"./locales/ro/legend.json":w$,"./locales/ro/messages.json":x$,"./locales/ro/options.json":S$,"./locales/ro/popup.json":L$,"./locales/ro/prayerLaps.json":A$,"./locales/ro/regions.json":P$,"./locales/ro/search.json":E$,"./locales/ro/studio.json":C$,"./locales/ro/tabs.json":T$,"./locales/ro/vision.json":N$,"./locales/ru/allPeopleGroups.json":R$,"./locales/ru/aria.json":M$,"./locales/ru/buttons.json":O$,"./locales/ru/connectivity.json":F$,"./locales/ru/controls.json":I$,"./locales/ru/dashboard.json":D$,"./locales/ru/detail.json":U$,"./locales/ru/gospel.json":G$,"./locales/ru/grid.json":j$,"./locales/ru/legend.json":z$,"./locales/ru/messages.json":B$,"./locales/ru/options.json":V$,"./locales/ru/popup.json":q$,"./locales/ru/prayerLaps.json":H$,"./locales/ru/regions.json":W$,"./locales/ru/search.json":K$,"./locales/ru/studio.json":Y$,"./locales/ru/tabs.json":X$,"./locales/ru/vision.json":Z$,"./locales/zh/allPeopleGroups.json":J$,"./locales/zh/aria.json":Q$,"./locales/zh/buttons.json":eb,"./locales/zh/connectivity.json":tb,"./locales/zh/controls.json":ob,"./locales/zh/dashboard.json":nb,"./locales/zh/detail.json":ab,"./locales/zh/gospel.json":sb,"./locales/zh/grid.json":rb,"./locales/zh/legend.json":ib,"./locales/zh/messages.json":lb,"./locales/zh/options.json":cb,"./locales/zh/popup.json":ub,"./locales/zh/prayerLaps.json":db,"./locales/zh/regions.json":pb,"./locales/zh/search.json":gb,"./locales/zh/studio.json":fb,"./locales/zh/tabs.json":hb,"./locales/zh/vision.json":mb}),Qo={};for(const[e,t]of Object.entries(ky)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;Qo[n]??(Qo[n]={}),Qo[n][a]=t}Qo.en;const ls=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Su=new Set(["ar"]);function wy(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function Lu(){var n;const e=wy();if(ls.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return ls.includes(o)?o:"en"}function xy(){const e=Lu();try{Su.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const t=dy({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Qo,missingWarn:!1,fallbackWarn:!1});ct(t.global.locale,n=>Pu(n),{immediate:!0});const o=t.install.bind(t);return t.install=(n,...a)=>{const s=o(n,...a);return n.provide("appI18n",t),s},t}const Au="__DOXA_PAGE_LOCALE";function Pu(e){const t=String(e||"").split("-")[0].toLowerCase();if(ls.includes(t))try{typeof window<"u"&&(window[Au]=t)}catch{}}function Sy(){try{return typeof window<"u"&&window[Au]||""}catch{return""}}function xe(e,t){const o=a=>{let s=Qo[a];for(const r of String(e).split(".")){if(!s||typeof s!="object")return;s=s[r]}return typeof s=="string"?s:void 0},n=Sy()||Lu();return o(n)??o("en")}function Dt(e,t){const o=t||Ly(e);kt(()=>{var i;const n=_o();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$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 Ly(e){let t=0;for(let o=0;ot[w]||w,n=()=>!1;try{const w=Uo();o=w.t,n=w.te}catch{}const a=Ne("uiStore",null),s=Ne("profileConfig",null),r=re(()=>(a==null?void 0:a.theme)==="dark"),i=re(()=>{var H;const w=(H=s==null?void 0:s.value)==null?void 0:H.pinHintLabel;if(w)return w;const P="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):P}catch{return P}}),l=ue(!1),c=ue(null);let u=null,p=null,h=null,_=null,x=null,k=null,S=[],C=null,m=null;function g(){l.value=!1}function d(w,P){var M;let H=w==null?void 0:w.parentElement;for(let j=0;H&&j<12;j++,H=H.parentElement){if(H===P||(M=H.classList)!=null&&M.contains("profile-loader"))return null;let ae="";try{ae=getComputedStyle(H).position}catch{}if(ae&&ae!=="static"){const I=H.getBoundingClientRect();if(I.height>=120&&I.width>=160)return H}}return null}function $(w){var H;const P=(H=_==null?void 0:_.querySelector)==null?void 0:H.call(_,".legend-mobile-sheet");if(!P)return 1/0;if(x&&k!==P){try{x.disconnect()}catch{}x=null}if(!x&&typeof ResizeObserver<"u")try{x=new ResizeObserver(()=>L()),x.observe(P),k=P}catch{x=null}try{const M=P.getBoundingClientRect();return!(M.height>16)||!(M.width>16)||w.right<=M.left||M.right<=w.left?1/0:M.top}catch{return 1/0}}function L(){const w=c.value;if(w)try{w.style.removeProperty("--pin-hint-lift");const P=w.getBoundingClientRect();if(!P.height)return;const H=Math.min(window.innerHeight,$(P)),M=Math.round(P.bottom-H);M>0&&w.style.setProperty("--pin-hint-lift",M+8+"px")}catch{}}function v(w){const P=c.value;if(!P||!(w!=null&&w.querySelector))return;let H=0;try{const j=w.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(j){const ae=j.getBoundingClientRect(),I=P.parentElement,q=I?I.getBoundingClientRect():null;if(H=q?Math.max(ae.height||0,q.bottom-ae.top):ae.height||0,m!==j&&typeof ResizeObserver<"u"){if(h)try{h.disconnect()}catch{}m=j,h=new ResizeObserver(()=>v(w)),h.observe(j)}}}catch{}const M=Math.min(Math.max(Math.ceil(H)||20,20),72);P.style.setProperty("--pin-hint-attrib-clear",M+"px"),L()}return kt(()=>{var M,j,ae;const w=_o(),P=(ae=(j=(M=w==null?void 0:w.proxy)==null?void 0:M.$el)==null?void 0:j.getRootNode)==null?void 0:ae.call(j);if(!P||typeof P.querySelector!="function")return;_=P;let H=0;u=setInterval(()=>{H++;const I=P.querySelector("canvas");I?(clearInterval(u),u=null,l.value=!0,Ho(()=>{const q=d(I,P),B=c.value;if(q&&B&&B.parentElement!==q)try{q.appendChild(B),p=q}catch{}v(P),L(),S.push(setTimeout(L,1200),setTimeout(L,3e3),setTimeout(L,6e3));try{const O=c.value&&c.value.offsetParent||null;if(O&&typeof ResizeObserver<"u"){if(C)try{C.disconnect()}catch{}C=new ResizeObserver(()=>L()),C.observe(O)}}catch{}})):H>40&&(clearInterval(u),u=null)},300)}),Ft(()=>{var w;if(u&&clearInterval(u),h){try{h.disconnect()}catch{}h=null}if(m=null,C){try{C.disconnect()}catch{}C=null}if(x){try{x.disconnect()}catch{}x=null}k=null;for(const P of S)clearTimeout(P);if(S=[],_=null,p&&((w=c.value)==null?void 0:w.parentElement)===p)try{p.removeChild(c.value)}catch{}p=null}),Dt(`
+ */const J_="9.14.5";function Q_(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(vo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(vo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(vo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(vo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(vo().__INTLIFY_PROD_DEVTOOLS__=!1)}const ey=R_.__EXTEND_POINT__,wo=ts(ey);wo(),wo(),wo(),wo(),wo(),wo(),wo(),wo(),wo();const ru=Yt.__EXTEND_POINT__,Et=ts(ru),gt={UNEXPECTED_RETURN_TYPE:ru,INVALID_ARGUMENT:Et(),MUST_BE_CALL_SETUP_TOP:Et(),NOT_INSTALLED:Et(),NOT_AVAILABLE_IN_LEGACY_MODE:Et(),REQUIRED_VALUE:Et(),INVALID_VALUE:Et(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Et(),NOT_INSTALLED_WITH_PROVIDE:Et(),UNEXPECTED_ERROR:Et(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Et(),BRIDGE_SUPPORT_VUE_2_ONLY:Et(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Et(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Et(),__EXTEND_POINT__:Et()};function ht(e,...t){return bn(e,null,void 0)}const Sr=Mo("__translateVNode"),Ar=Mo("__datetimeParts"),Lr=Mo("__numberParts"),lu=Mo("__setPluralRules"),iu=Mo("__injectWithOption"),Pr=Mo("__dispose");function aa(e){if(!qe(e)||lo(e))return e;for(const t in e)if(Wt(e,t))if(!t.includes("."))qe(e[t])&&aa(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,s=!1;for(let r=0;r{if("locale"in l&&"resource"in l){const{locale:i,resource:c}=l;i?(r[i]=r[i]||Xe(),ns(c,r[i])):ns(c,r)}else me(l)&&ns(JSON.parse(l),r)}),a==null&&s)for(const l in r)Wt(r,l)&&aa(r[l]);return r}function cu(e){return e.type}function uu(e,t,o){let n=qe(t.messages)?t.messages:Xe();"__i18nGlobal"in o&&(n=ls(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(qe(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(qe(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function pu(e){return je(Hn,null,e,0)}const du="__INTLIFY_META__",gu=()=>[],ty=()=>!1;let fu=0;function hu(e){return(t,o,n,a)=>e(o,n,_o()||void 0,a)}const oy=()=>{const e=_o();let t=null;return e&&(t=cu(e)[du])?{[du]:t}:null};function Er(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=Qa?ue:In,l=!!e.translateExistCompatible;let i=De(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&i?o.locale.value:me(e.locale)?e.locale:vn),u=r(o&&i?o.fallbackLocale.value:me(e.fallbackLocale)||ot(e.fallbackLocale)||Me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=r(ls(c.value,e)),h=r(Me(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),_=r(Me(e.numberFormats)?e.numberFormats:{[c.value]:{}});let S=o?o.missingWarn:De(e.missingWarn)||Fo(e.missingWarn)?e.missingWarn:!0,k=o?o.fallbackWarn:De(e.fallbackWarn)||Fo(e.fallbackWarn)?e.fallbackWarn:!0,A=o?o.fallbackRoot:De(e.fallbackRoot)?e.fallbackRoot:!0,C=!!e.fallbackFormat,m=tt(e.missing)?e.missing:null,d=tt(e.missing)?hu(e.missing):null,f=tt(e.postTranslation)?e.postTranslation:null,$=o?o.warnHtmlMessage:De(e.warnHtmlMessage)?e.warnHtmlMessage:!0,x=!!e.escapeParameter;const y=o?o.modifiers:Me(e.modifiers)?e.modifiers:{};let w=e.pluralRules||o&&o.pluralRules,P;P=(()=>{a&&qc(null);const D={version:J_,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:y,pluralRules:w,missing:d===null?void 0:d,missingWarn:S,fallbackWarn:k,fallbackFormat:C,unresolving:!0,postTranslation:f===null?void 0:f,warnHtmlMessage:$,escapeParameter:x,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};D.datetimeFormats=h.value,D.numberFormats=_.value,D.__datetimeFormatters=Me(P)?P.__datetimeFormatters:void 0,D.__numberFormatters=Me(P)?P.__numberFormatters:void 0;const K=j_(D);return a&&qc(K),K})(),na(P,c.value,u.value);function M(){return[c.value,u.value,p.value,h.value,_.value]}const z=re({get:()=>c.value,set:D=>{c.value=D,P.locale=c.value}}),ae=re({get:()=>u.value,set:D=>{u.value=D,P.fallbackLocale=u.value,na(P,c.value,D)}}),I=re(()=>p.value),H=re(()=>h.value),B=re(()=>_.value);function F(){return tt(f)?f:null}function te(D){f=D,P.postTranslation=D}function G(){return m}function N(D){D!==null&&(d=hu(D)),m=D,P.missing=d}const V=(D,K,ve,Ee,Be,Ze)=>{M();let We;try{__INTLIFY_PROD_DEVTOOLS__,a||(P.fallbackContext=o?z_():void 0),We=D(P)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(P.fallbackContext=void 0)}if(ve!=="translate exists"&&it(We)&&We===rs||ve==="translate exists"&&!We){const[Rt,Eo]=K();return o&&A?Ee(o):Be(Rt)}else{if(Ze(We))return We;throw ht(gt.UNEXPECTED_RETURN_TYPE)}};function U(...D){return V(K=>Reflect.apply(Zc,null,[K,...D]),()=>kr(...D),"translate",K=>Reflect.apply(K.t,K,[...D]),K=>K,K=>me(K))}function oe(...D){const[K,ve,Ee]=D;if(Ee&&!qe(Ee))throw ht(gt.INVALID_ARGUMENT);return U(K,ve,yt({resolvedMessage:!0},Ee||{}))}function he(...D){return V(K=>Reflect.apply(eu,null,[K,...D]),()=>wr(...D),"datetime format",K=>Reflect.apply(K.d,K,[...D]),()=>Ic,K=>me(K))}function ke(...D){return V(K=>Reflect.apply(nu,null,[K,...D]),()=>xr(...D),"number format",K=>Reflect.apply(K.n,K,[...D]),()=>Ic,K=>me(K))}function Le(D){return D.map(K=>me(K)||it(K)||De(K)?pu(String(K)):K)}const ye={normalize:Le,interpolate:D=>D,type:"vnode"};function Q(...D){return V(K=>{let ve;const Ee=K;try{Ee.processor=ye,ve=Reflect.apply(Zc,null,[Ee,...D])}finally{Ee.processor=null}return ve},()=>kr(...D),"translate",K=>K[Sr](...D),K=>[pu(K)],K=>ot(K))}function de(...D){return V(K=>Reflect.apply(nu,null,[K,...D]),()=>xr(...D),"number format",K=>K[Lr](...D),gu,K=>me(K)||ot(K))}function _e(...D){return V(K=>Reflect.apply(eu,null,[K,...D]),()=>wr(...D),"datetime format",K=>K[Ar](...D),gu,K=>me(K)||ot(K))}function v(D){w=D,P.pluralRules=w}function E(D,K){return V(()=>{if(!D)return!1;const ve=me(K)?K:c.value,Ee=Z(ve),Be=P.messageResolver(Ee,D);return l?Be!=null:lo(Be)||Ut(Be)||me(Be)},()=>[D],"translate exists",ve=>Reflect.apply(ve.te,ve,[D,K]),ty,ve=>De(ve))}function L(D){let K=null;const ve=Fc(P,u.value,c.value);for(let Ee=0;Ee{i&&(c.value=D,P.locale=D,na(P,c.value,u.value))}),ct(o.fallbackLocale,D=>{i&&(u.value=D,P.fallbackLocale=D,na(P,c.value,u.value))}));const ie={id:fu,locale:z,fallbackLocale:ae,get inheritLocale(){return i},set inheritLocale(D){i=D,D&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,na(P,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:I,get modifiers(){return y},get pluralRules(){return w||{}},get isGlobal(){return a},get missingWarn(){return S},set missingWarn(D){S=D,P.missingWarn=S},get fallbackWarn(){return k},set fallbackWarn(D){k=D,P.fallbackWarn=k},get fallbackRoot(){return A},set fallbackRoot(D){A=D},get fallbackFormat(){return C},set fallbackFormat(D){C=D,P.fallbackFormat=C},get warnHtmlMessage(){return $},set warnHtmlMessage(D){$=D,P.warnHtmlMessage=D},get escapeParameter(){return x},set escapeParameter(D){x=D,P.escapeParameter=D},t:U,getLocaleMessage:Z,setLocaleMessage:J,mergeLocaleMessage:le,getPostTranslationHandler:F,setPostTranslationHandler:te,getMissingHandler:G,setMissingHandler:N,[lu]:v};return ie.datetimeFormats=H,ie.numberFormats=B,ie.rt=oe,ie.te=E,ie.tm=j,ie.d=he,ie.n=ke,ie.getDateTimeFormat=ne,ie.setDateTimeFormat=g,ie.mergeDateTimeFormat=b,ie.getNumberFormat=O,ie.setNumberFormat=X,ie.mergeNumberFormat=fe,ie[iu]=n,ie[Sr]=Q,ie[Ar]=_e,ie[Lr]=de,ie}function ny(e){const t=me(e.locale)?e.locale:vn,o=me(e.fallbackLocale)||ot(e.fallbackLocale)||Me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=tt(e.missing)?e.missing:void 0,a=De(e.silentTranslationWarn)||Fo(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=De(e.silentFallbackWarn)||Fo(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=De(e.fallbackRoot)?e.fallbackRoot:!0,l=!!e.formatFallbackMessages,i=Me(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=tt(e.postTranslation)?e.postTranslation:void 0,p=me(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,_=De(e.sync)?e.sync:!0;let S=e.messages;if(Me(e.sharedMessages)){const x=e.sharedMessages;S=Object.keys(x).reduce((w,P)=>{const q=w[P]||(w[P]={});return yt(q,x[P]),w},S||{})}const{__i18n:k,__root:A,__injectWithOption:C}=e,m=e.datetimeFormats,d=e.numberFormats,f=e.flatJson,$=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:S,flatJson:f,datetimeFormats:m,numberFormats:d,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:l,modifiers:i,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:_,translateExistCompatible:$,__i18n:k,__root:A,__injectWithOption:C}}function Cr(e={},t){{const o=Er(ny(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 De(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=De(s)?!s:s},get silentFallbackWarn(){return De(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=De(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,p=null;if(!me(r))throw ht(gt.INVALID_ARGUMENT);const h=r;return me(l)?c.locale=l:ot(l)?u=l:Me(l)&&(p=l),ot(i)?u=i:Me(i)&&(p=i),Reflect.apply(o.t,o,[h,u||p||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,l,i]=s,c={plural:1};let u=null,p=null;if(!me(r))throw ht(gt.INVALID_ARGUMENT);const h=r;return me(l)?c.locale=l:it(l)?c.plural=l:ot(l)?u=l:Me(l)&&(p=l),me(i)?c.locale=i:ot(i)?u=i:Me(i)&&(p=i),Reflect.apply(o.t,o,[h,u||p||{},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 Rr={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function ay({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Fe?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Xe())}function mu(e){return Fe}const $u=jn({name:"i18n-t",props:yt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>it(e)||!isNaN(e)}},Rr),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||Go({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(p=>p!=="_"),r=Xe();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=me(e.plural)?+e.plural:e.plural);const l=ay(t,s),i=a[Sr](e.keypath,l,r),c=yt(Xe(),n),u=me(e.tag)||qe(e.tag)?e.tag:mu();return Gi(u,c,i)}}});function sy(e){return ot(e)&&!me(e[0])}function bu(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let l=Xe();e.locale&&(r.locale=e.locale),me(e.format)?r.key=e.format:qe(e.format)&&(me(e.format.key)&&(r.key=e.format.key),l=Object.keys(e.format).reduce((h,_)=>o.includes(_)?yt(Xe(),h,{[_]:e.format[_]}):h,Xe()));const i=n(e.value,r,l);let c=[r.key];ot(i)?c=i.map((h,_)=>{const S=a[h.type],k=S?S({[h.type]:h.value,index:_,parts:i}):[h.value];return sy(k)&&(k[0].key=`${h.type}-${_}`),k}):me(i)&&(c=[i]);const u=yt(Xe(),s),p=me(e.tag)||qe(e.tag)?e.tag:mu();return Gi(p,u,c)}}const _u=jn({name:"i18n-n",props:yt({value:{type:Number,required:!0},format:{type:[String,Object]}},Rr),setup(e,t){const o=e.i18n||Go({useScope:e.scope,__useComponent:!0});return bu(e,t,au,(...n)=>o[Lr](...n))}}),yu=jn({name:"i18n-d",props:yt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Rr),setup(e,t){const o=e.i18n||Go({useScope:e.scope,__useComponent:!0});return bu(e,t,tu,(...n)=>o[Ar](...n))}});function ry(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 ly(e){const t=r=>{const{instance:l,modifiers:i,value:c}=r;if(!l||!l.$)throw ht(gt.UNEXPECTED_ERROR);const u=ry(e,l.$),p=vu(c);return[Reflect.apply(u.t,u,[...ku(p)]),u]};return{created:(r,l)=>{const[i,c]=t(l);Qa&&e.global===c&&(r.__i18nWatcher=ct(c.locale,()=>{l.instance&&l.instance.$forceUpdate()})),r.__composer=c,r.textContent=i},unmounted:r=>{Qa&&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=vu(l);r.textContent=Reflect.apply(i.t,i,[...ku(c)])}},getSSRProps:r=>{const[l]=t(r);return{textContent:l}}}}function vu(e){if(me(e))return{path:e};if(Me(e)){if(!("path"in e))throw ht(gt.REQUIRED_VALUE,"path");return e}else throw ht(gt.INVALID_VALUE)}function ku(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},l=n||{};return me(o)&&(r.locale=o),it(a)&&(r.plural=a),it(s)&&(r.plural=s),[t,l,r]}function iy(e,t,...o){const n=Me(o[0])?o[0]:{},a=!!n.useI18nComponentName;(De(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":$u.name,"I18nT"].forEach(r=>e.component(r,$u)),[_u.name,"I18nN"].forEach(r=>e.component(r,_u)),[yu.name,"I18nD"].forEach(r=>e.component(r,yu))),e.directive("t",ly(t))}function cy(e,t,o){return{beforeCreate(){const n=_o();if(!n)throw ht(gt.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=wu(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=Cr(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=wu(e,a);else{this.$i18n=Cr({__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&&uu(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=_o();if(!n)throw ht(gt.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 wu(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[lu](t.pluralizationRules||e.pluralizationRules);const o=ls(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 uy=Mo("global-vue-i18n");function py(e={},t){const o=__VUE_I18N_LEGACY_API__&&De(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=De(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,l]=dy(e,o),i=Mo("");function c(h){return s.get(h)||null}function u(h,_){s.set(h,_)}function p(h){s.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(_,...S){if(_.__VUE_I18N_SYMBOL__=i,_.provide(_.__VUE_I18N_SYMBOL__,h),Me(S[0])){const C=S[0];h.__composerExtend=C.__composerExtend,h.__vueI18nExtend=C.__vueI18nExtend}let k=null;!o&&n&&(k=vy(_,h.global)),__VUE_I18N_FULL_INSTALL__&&iy(_,h,...S),__VUE_I18N_LEGACY_API__&&o&&_.mixin(cy(l,l.__composer,h));const A=_.unmount;_.unmount=()=>{k&&k(),h.dispose(),A()}},get global(){return l},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:p};return h}}function Go(e={}){const t=_o();if(t==null)throw ht(gt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw ht(gt.NOT_INSTALLED);const o=gy(t),n=hy(o),a=cu(t),s=fy(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw ht(gt.NOT_AVAILABLE_IN_LEGACY_MODE);return _y(t,s,n,e)}if(s==="global")return uu(n,e,a),n;if(s==="parent"){let i=my(o,t,e.__useComponent);return i==null&&(i=n),i}const r=o;let l=r.__getInstance(t);if(l==null){const i=yt({},e);"__i18n"in a&&(i.__i18n=a.__i18n),n&&(i.__root=n),l=Er(i),r.__composerExtend&&(l[Pr]=r.__composerExtend(l)),by(r,t,l),r.__setInstance(t,l)}return l}function dy(e,t,o){const n=xs();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Cr(e)):n.run(()=>Er(e));if(a==null)throw ht(gt.UNEXPECTED_ERROR);return[n,a]}}function gy(e){{const t=Te(e.isCE?uy:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw ht(e.isCE?gt.NOT_INSTALLED_WITH_PROVIDE:gt.UNEXPECTED_ERROR);return t}}function fy(e,t){return es(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function hy(e){return e.mode==="composition"?e.global:e.global.__composer}function my(e,t,o=!1){let n=null;const a=t.root;let s=$y(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[iu]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function $y(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function by(e,t,o){kt(()=>{},t),Ga(()=>{const n=o;e.__deleteInstance(t);const a=n[Pr];a&&(a(),delete n[Pr])},t)}function _y(e,t,o,n={}){const a=t==="local",s=In(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw ht(gt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=De(n.inheritLocale)?n.inheritLocale:!me(n.locale),l=ue(!a||r?o.locale.value:me(n.locale)?n.locale:vn),i=ue(!a||r?o.fallbackLocale.value:me(n.fallbackLocale)||ot(n.fallbackLocale)||Me(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:l.value),c=ue(ls(l.value,n)),u=ue(Me(n.datetimeFormats)?n.datetimeFormats:{[l.value]:{}}),p=ue(Me(n.numberFormats)?n.numberFormats:{[l.value]:{}}),h=a?o.missingWarn:De(n.missingWarn)||Fo(n.missingWarn)?n.missingWarn:!0,_=a?o.fallbackWarn:De(n.fallbackWarn)||Fo(n.fallbackWarn)?n.fallbackWarn:!0,S=a?o.fallbackRoot:De(n.fallbackRoot)?n.fallbackRoot:!0,k=!!n.fallbackFormat,A=tt(n.missing)?n.missing:null,C=tt(n.postTranslation)?n.postTranslation:null,m=a?o.warnHtmlMessage:De(n.warnHtmlMessage)?n.warnHtmlMessage:!0,d=!!n.escapeParameter,f=a?o.modifiers:Me(n.modifiers)?n.modifiers:{},$=n.pluralRules||a&&o.pluralRules;function x(){return[l.value,i.value,c.value,u.value,p.value]}const y=re({get:()=>s.value?s.value.locale.value:l.value,set:L=>{s.value&&(s.value.locale.value=L),l.value=L}}),w=re({get:()=>s.value?s.value.fallbackLocale.value:i.value,set:L=>{s.value&&(s.value.fallbackLocale.value=L),i.value=L}}),P=re(()=>s.value?s.value.messages.value:c.value),q=re(()=>u.value),M=re(()=>p.value);function z(){return s.value?s.value.getPostTranslationHandler():C}function ae(L){s.value&&s.value.setPostTranslationHandler(L)}function I(){return s.value?s.value.getMissingHandler():A}function H(L){s.value&&s.value.setMissingHandler(L)}function B(L){return x(),L()}function F(...L){return s.value?B(()=>Reflect.apply(s.value.t,null,[...L])):B(()=>"")}function te(...L){return s.value?Reflect.apply(s.value.rt,null,[...L]):""}function G(...L){return s.value?B(()=>Reflect.apply(s.value.d,null,[...L])):B(()=>"")}function N(...L){return s.value?B(()=>Reflect.apply(s.value.n,null,[...L])):B(()=>"")}function V(L){return s.value?s.value.tm(L):{}}function U(L,j){return s.value?s.value.te(L,j):!1}function oe(L){return s.value?s.value.getLocaleMessage(L):{}}function he(L,j){s.value&&(s.value.setLocaleMessage(L,j),c.value[L]=j)}function ke(L,j){s.value&&s.value.mergeLocaleMessage(L,j)}function Le(L){return s.value?s.value.getDateTimeFormat(L):{}}function Ae(L,j){s.value&&(s.value.setDateTimeFormat(L,j),u.value[L]=j)}function ye(L,j){s.value&&s.value.mergeDateTimeFormat(L,j)}function Q(L){return s.value?s.value.getNumberFormat(L):{}}function de(L,j){s.value&&(s.value.setNumberFormat(L,j),p.value[L]=j)}function _e(L,j){s.value&&s.value.mergeNumberFormat(L,j)}const v={get id(){return s.value?s.value.id:-1},locale:y,fallbackLocale:w,messages:P,datetimeFormats:q,numberFormats:M,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(L){s.value&&(s.value.inheritLocale=L)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:f},get pluralRules(){return s.value?s.value.pluralRules:$},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:h},set missingWarn(L){s.value&&(s.value.missingWarn=L)},get fallbackWarn(){return s.value?s.value.fallbackWarn:_},set fallbackWarn(L){s.value&&(s.value.missingWarn=L)},get fallbackRoot(){return s.value?s.value.fallbackRoot:S},set fallbackRoot(L){s.value&&(s.value.fallbackRoot=L)},get fallbackFormat(){return s.value?s.value.fallbackFormat:k},set fallbackFormat(L){s.value&&(s.value.fallbackFormat=L)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:m},set warnHtmlMessage(L){s.value&&(s.value.warnHtmlMessage=L)},get escapeParameter(){return s.value?s.value.escapeParameter:d},set escapeParameter(L){s.value&&(s.value.escapeParameter=L)},t:F,getPostTranslationHandler:z,setPostTranslationHandler:ae,getMissingHandler:I,setMissingHandler:H,rt:te,d:G,n:N,tm:V,te:U,getLocaleMessage:oe,setLocaleMessage:he,mergeLocaleMessage:ke,getDateTimeFormat:Le,setDateTimeFormat:Ae,mergeDateTimeFormat:ye,getNumberFormat:Q,setNumberFormat:de,mergeNumberFormat:_e};function E(L){L.locale.value=l.value,L.fallbackLocale.value=i.value,Object.keys(c.value).forEach(j=>{L.mergeLocaleMessage(j,c.value[j])}),Object.keys(u.value).forEach(j=>{L.mergeDateTimeFormat(j,u.value[j])}),Object.keys(p.value).forEach(j=>{L.mergeNumberFormat(j,p.value[j])}),L.escapeParameter=d,L.fallbackFormat=k,L.fallbackRoot=S,L.fallbackWarn=_,L.missingWarn=h,L.warnHtmlMessage=m}return oi(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw ht(gt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const L=s.value=e.proxy.$i18n.__composer;t==="global"?(l.value=L.locale.value,i.value=L.fallbackLocale.value,c.value=L.messages.value,u.value=L.datetimeFormats.value,p.value=L.numberFormats.value):a&&E(L)}),v}const yy=["locale","fallbackLocale","availableLocales"],xu=["t","rt","d","n","tm","te"];function vy(e,t){const o=Object.create(null);return yy.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw ht(gt.UNEXPECTED_ERROR);const r=at(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,xu.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw ht(gt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,xu.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Q_(),__INTLIFY_JIT_COMPILATION__?Uc(W_):Uc(H_),I_($_),D_(Fc),__INTLIFY_PROD_DEVTOOLS__){const e=vo();e.__INTLIFY__=!0,A_(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const ky=Object.assign({"./locales/ar/allPeopleGroups.json":xf,"./locales/ar/aria.json":Sf,"./locales/ar/buttons.json":Af,"./locales/ar/connectivity.json":Lf,"./locales/ar/controls.json":Pf,"./locales/ar/dashboard.json":Ef,"./locales/ar/detail.json":Cf,"./locales/ar/gospel.json":Rf,"./locales/ar/grid.json":Tf,"./locales/ar/legend.json":Nf,"./locales/ar/messages.json":Mf,"./locales/ar/options.json":Ff,"./locales/ar/popup.json":Of,"./locales/ar/prayerLaps.json":If,"./locales/ar/regions.json":Df,"./locales/ar/search.json":Gf,"./locales/ar/studio.json":Uf,"./locales/ar/tabs.json":zf,"./locales/ar/vision.json":jf,"./locales/de/allPeopleGroups.json":Bf,"./locales/de/aria.json":Vf,"./locales/de/buttons.json":qf,"./locales/de/connectivity.json":Hf,"./locales/de/controls.json":Wf,"./locales/de/dashboard.json":Kf,"./locales/de/detail.json":Yf,"./locales/de/gospel.json":Xf,"./locales/de/grid.json":Zf,"./locales/de/legend.json":Jf,"./locales/de/messages.json":Qf,"./locales/de/options.json":eh,"./locales/de/popup.json":th,"./locales/de/prayerLaps.json":oh,"./locales/de/regions.json":nh,"./locales/de/search.json":ah,"./locales/de/studio.json":sh,"./locales/de/tabs.json":rh,"./locales/de/vision.json":lh,"./locales/en/allPeopleGroups.json":ih,"./locales/en/aria.json":ch,"./locales/en/buttons.json":uh,"./locales/en/connectivity.json":ph,"./locales/en/controls.json":dh,"./locales/en/dashboard.json":gh,"./locales/en/detail.json":fh,"./locales/en/gospel.json":hh,"./locales/en/grid.json":mh,"./locales/en/legend.json":$h,"./locales/en/messages.json":bh,"./locales/en/options.json":_h,"./locales/en/popup.json":yh,"./locales/en/prayerLaps.json":vh,"./locales/en/regions.json":kh,"./locales/en/search.json":wh,"./locales/en/studio.json":xh,"./locales/en/tabs.json":Sh,"./locales/en/vision.json":Ah,"./locales/es/allPeopleGroups.json":Lh,"./locales/es/aria.json":Ph,"./locales/es/buttons.json":Eh,"./locales/es/connectivity.json":Ch,"./locales/es/controls.json":Rh,"./locales/es/dashboard.json":Th,"./locales/es/detail.json":Nh,"./locales/es/gospel.json":Mh,"./locales/es/grid.json":Fh,"./locales/es/legend.json":Oh,"./locales/es/messages.json":Ih,"./locales/es/options.json":Dh,"./locales/es/popup.json":Gh,"./locales/es/prayerLaps.json":Uh,"./locales/es/regions.json":zh,"./locales/es/search.json":jh,"./locales/es/studio.json":Bh,"./locales/es/tabs.json":Vh,"./locales/es/vision.json":qh,"./locales/fr/allPeopleGroups.json":Hh,"./locales/fr/aria.json":Wh,"./locales/fr/buttons.json":Kh,"./locales/fr/connectivity.json":Yh,"./locales/fr/controls.json":Xh,"./locales/fr/dashboard.json":Zh,"./locales/fr/detail.json":Jh,"./locales/fr/gospel.json":Qh,"./locales/fr/grid.json":em,"./locales/fr/legend.json":tm,"./locales/fr/messages.json":om,"./locales/fr/options.json":nm,"./locales/fr/popup.json":am,"./locales/fr/prayerLaps.json":sm,"./locales/fr/regions.json":rm,"./locales/fr/search.json":lm,"./locales/fr/studio.json":im,"./locales/fr/tabs.json":cm,"./locales/fr/vision.json":um,"./locales/hi/allPeopleGroups.json":pm,"./locales/hi/aria.json":dm,"./locales/hi/buttons.json":gm,"./locales/hi/connectivity.json":fm,"./locales/hi/controls.json":hm,"./locales/hi/dashboard.json":mm,"./locales/hi/detail.json":$m,"./locales/hi/gospel.json":bm,"./locales/hi/grid.json":_m,"./locales/hi/legend.json":ym,"./locales/hi/messages.json":vm,"./locales/hi/options.json":km,"./locales/hi/popup.json":wm,"./locales/hi/prayerLaps.json":xm,"./locales/hi/regions.json":Sm,"./locales/hi/search.json":Am,"./locales/hi/studio.json":Lm,"./locales/hi/tabs.json":Pm,"./locales/hi/vision.json":Em,"./locales/it/allPeopleGroups.json":Cm,"./locales/it/aria.json":Rm,"./locales/it/buttons.json":Tm,"./locales/it/connectivity.json":Nm,"./locales/it/controls.json":Mm,"./locales/it/dashboard.json":Fm,"./locales/it/detail.json":Om,"./locales/it/gospel.json":Im,"./locales/it/grid.json":Dm,"./locales/it/legend.json":Gm,"./locales/it/messages.json":Um,"./locales/it/options.json":zm,"./locales/it/popup.json":jm,"./locales/it/prayerLaps.json":Bm,"./locales/it/regions.json":Vm,"./locales/it/search.json":qm,"./locales/it/studio.json":Hm,"./locales/it/tabs.json":Wm,"./locales/it/vision.json":Km,"./locales/pt/allPeopleGroups.json":Ym,"./locales/pt/aria.json":Xm,"./locales/pt/buttons.json":Zm,"./locales/pt/connectivity.json":Jm,"./locales/pt/controls.json":Qm,"./locales/pt/dashboard.json":e$,"./locales/pt/detail.json":t$,"./locales/pt/gospel.json":o$,"./locales/pt/grid.json":n$,"./locales/pt/legend.json":a$,"./locales/pt/messages.json":s$,"./locales/pt/options.json":r$,"./locales/pt/popup.json":l$,"./locales/pt/prayerLaps.json":i$,"./locales/pt/regions.json":c$,"./locales/pt/search.json":u$,"./locales/pt/studio.json":p$,"./locales/pt/tabs.json":d$,"./locales/pt/vision.json":g$,"./locales/ro/allPeopleGroups.json":f$,"./locales/ro/aria.json":h$,"./locales/ro/buttons.json":m$,"./locales/ro/connectivity.json":$$,"./locales/ro/controls.json":b$,"./locales/ro/dashboard.json":_$,"./locales/ro/detail.json":y$,"./locales/ro/gospel.json":v$,"./locales/ro/grid.json":k$,"./locales/ro/legend.json":w$,"./locales/ro/messages.json":x$,"./locales/ro/options.json":S$,"./locales/ro/popup.json":A$,"./locales/ro/prayerLaps.json":L$,"./locales/ro/regions.json":P$,"./locales/ro/search.json":E$,"./locales/ro/studio.json":C$,"./locales/ro/tabs.json":R$,"./locales/ro/vision.json":T$,"./locales/ru/allPeopleGroups.json":N$,"./locales/ru/aria.json":M$,"./locales/ru/buttons.json":F$,"./locales/ru/connectivity.json":O$,"./locales/ru/controls.json":I$,"./locales/ru/dashboard.json":D$,"./locales/ru/detail.json":G$,"./locales/ru/gospel.json":U$,"./locales/ru/grid.json":z$,"./locales/ru/legend.json":j$,"./locales/ru/messages.json":B$,"./locales/ru/options.json":V$,"./locales/ru/popup.json":q$,"./locales/ru/prayerLaps.json":H$,"./locales/ru/regions.json":W$,"./locales/ru/search.json":K$,"./locales/ru/studio.json":Y$,"./locales/ru/tabs.json":X$,"./locales/ru/vision.json":Z$,"./locales/zh/allPeopleGroups.json":J$,"./locales/zh/aria.json":Q$,"./locales/zh/buttons.json":eb,"./locales/zh/connectivity.json":tb,"./locales/zh/controls.json":ob,"./locales/zh/dashboard.json":nb,"./locales/zh/detail.json":ab,"./locales/zh/gospel.json":sb,"./locales/zh/grid.json":rb,"./locales/zh/legend.json":lb,"./locales/zh/messages.json":ib,"./locales/zh/options.json":cb,"./locales/zh/popup.json":ub,"./locales/zh/prayerLaps.json":pb,"./locales/zh/regions.json":db,"./locales/zh/search.json":gb,"./locales/zh/studio.json":fb,"./locales/zh/tabs.json":hb,"./locales/zh/vision.json":mb}),Qo={};for(const[e,t]of Object.entries(ky)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;Qo[n]??(Qo[n]={}),Qo[n][a]=t}Qo.en;const is=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Su=new Set(["ar"]);function wy(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function Au(){var n;const e=wy();if(is.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return is.includes(o)?o:"en"}function xy(){const e=Au();try{Su.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const t=py({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Qo,missingWarn:!1,fallbackWarn:!1});ct(t.global.locale,n=>Pu(n),{immediate:!0});const o=t.install.bind(t);return t.install=(n,...a)=>{const s=o(n,...a);return n.provide("appI18n",t),s},t}const Lu="__DOXA_PAGE_LOCALE";function Pu(e){const t=String(e||"").split("-")[0].toLowerCase();if(is.includes(t))try{typeof window<"u"&&(window[Lu]=t)}catch{}}function Sy(){try{return typeof window<"u"&&window[Lu]||""}catch{return""}}function we(e,t){const o=a=>{let s=Qo[a];for(const r of String(e).split(".")){if(!s||typeof s!="object")return;s=s[r]}return typeof s=="string"?s:void 0},n=Sy()||Au();return o(n)??o("en")}function Dt(e,t){const o=t||Ay(e);kt(()=>{var l;const n=_o();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 Ay(e){let t=0;for(let o=0;ot[w]||w,n=()=>!1;try{const w=Go();o=w.t,n=w.te}catch{}const a=Te("uiStore",null),s=Te("profileConfig",null),r=re(()=>(a==null?void 0:a.theme)==="dark"),l=re(()=>{var q;const w=(q=s==null?void 0:s.value)==null?void 0:q.pinHintLabel;if(w)return w;const P="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):P}catch{return P}}),i=ue(!1),c=ue(null);let u=null,p=null,h=null,_=null,S=null,k=null,A=[],C=null,m=null;function d(){i.value=!1}function f(w,P){var M;let q=w==null?void 0:w.parentElement;for(let z=0;q&&z<12;z++,q=q.parentElement){if(q===P||(M=q.classList)!=null&&M.contains("profile-loader"))return null;let ae="";try{ae=getComputedStyle(q).position}catch{}if(ae&&ae!=="static"){const I=q.getBoundingClientRect();if(I.height>=120&&I.width>=160)return q}}return null}function $(w){var q;const P=(q=_==null?void 0:_.querySelector)==null?void 0:q.call(_,".legend-mobile-sheet");if(!P)return 1/0;if(S&&k!==P){try{S.disconnect()}catch{}S=null}if(!S&&typeof ResizeObserver<"u")try{S=new ResizeObserver(()=>x()),S.observe(P),k=P}catch{S=null}try{const M=P.getBoundingClientRect();return!(M.height>16)||!(M.width>16)||w.right<=M.left||M.right<=w.left?1/0:M.top}catch{return 1/0}}function x(){const w=c.value;if(w)try{w.style.removeProperty("--pin-hint-lift");const P=w.getBoundingClientRect();if(!P.height)return;const q=Math.min(window.innerHeight,$(P)),M=Math.round(P.bottom-q);M>0&&w.style.setProperty("--pin-hint-lift",M+8+"px")}catch{}}function y(w){const P=c.value;if(!P||!(w!=null&&w.querySelector))return;let q=0;try{const z=w.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(z){const ae=z.getBoundingClientRect(),I=P.parentElement,H=I?I.getBoundingClientRect():null;if(q=H?Math.max(ae.height||0,H.bottom-ae.top):ae.height||0,m!==z&&typeof ResizeObserver<"u"){if(h)try{h.disconnect()}catch{}m=z,h=new ResizeObserver(()=>y(w)),h.observe(z)}}}catch{}const M=Math.min(Math.max(Math.ceil(q)||20,20),72);P.style.setProperty("--pin-hint-attrib-clear",M+"px"),x()}return kt(()=>{var M,z,ae;const w=_o(),P=(ae=(z=(M=w==null?void 0:w.proxy)==null?void 0:M.$el)==null?void 0:z.getRootNode)==null?void 0:ae.call(z);if(!P||typeof P.querySelector!="function")return;_=P;let q=0;u=setInterval(()=>{q++;const I=P.querySelector("canvas");I?(clearInterval(u),u=null,i.value=!0,Ho(()=>{const H=f(I,P),B=c.value;if(H&&B&&B.parentElement!==H)try{H.appendChild(B),p=H}catch{}y(P),x(),A.push(setTimeout(x,1200),setTimeout(x,3e3),setTimeout(x,6e3));try{const F=c.value&&c.value.offsetParent||null;if(F&&typeof ResizeObserver<"u"){if(C)try{C.disconnect()}catch{}C=new ResizeObserver(()=>x()),C.observe(F)}}catch{}})):q>40&&(clearInterval(u),u=null)},300)}),Ot(()=>{var w;if(u&&clearInterval(u),h){try{h.disconnect()}catch{}h=null}if(m=null,C){try{C.disconnect()}catch{}C=null}if(S){try{S.disconnect()}catch{}S=null}k=null;for(const P of A)clearTimeout(P);if(A=[],_=null,p&&((w=c.value)==null?void 0:w.parentElement)===p)try{p.removeChild(c.value)}catch{}p=null}),Dt(`
.pin-hint { position: absolute; left: 50%;
bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%);
z-index: 2147482000; pointer-events: none;
@@ -71,11 +71,11 @@
@media (prefers-reduced-motion: reduce) {
.pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; }
}
-`,"pin-hint"),(w,P)=>l.value?(ee(),se("div",{key:0,ref_key:"hintEl",ref:c,class:je(["pin-hint",{dark:r.value}]),role:"status"},[N("span",Ay,[P[0]||(P[0]=N("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),it(" "+fe(i.value)+" ",1),N("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:g},"×")])],2)):Ye("",!0)}};let Ey=0;const Cy=ur("ui",{state:()=>({_storeInstanceId:++Ey,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)}))}}}),Ty=ur("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Ny=ur("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]=Fn({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]=Fn({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}}}),jt={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},Ry=".profile-loader[data-v-ccbcaedb]{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-ccbcaedb]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",cs=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},My=["dir"],Oy={key:0,class:"profile-error"},Fy={key:1,class:"profile-error"},Iy=cs({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var L;const o=e,n=Ne("profileConfig",null),a=re(()=>{var w;if(!o.profileConfig)return null;let v;try{v=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(v&&v.assetsBase===void 0){const P=(w=n==null?void 0:n.value)==null?void 0:w.assetsBase;typeof P=="string"&&P&&(v.assetsBase=P)}return v}),s=re(()=>{var v;return((v=a.value)==null?void 0:v.profile)||null}),r=kf(),i=re(()=>{var w;const v=(w=a.value)==null?void 0:w.tk;return typeof v=="string"&&v?v:r.value||""});ct(()=>{var v;return(v=a.value)==null?void 0:v.tk},v=>{typeof v=="string"&&v&&cc(v)},{immediate:!0});const l=re(()=>{var v;return((v=a.value)==null?void 0:v.dataSource)||jt.activeSource||"doxa-csv"}),c=re(()=>{var v;return((v=a.value)==null?void 0:v.colorSet)||"default"}),u=re(()=>!1),p=re(()=>{var v;return((v=a.value)==null?void 0:v.pinHint)!==!1}),h=re(()=>{var w,P;const v=(((w=a.value)==null?void 0:w.locale)||((P=a.value)==null?void 0:P.lang)||"").split("-")[0].toLowerCase();return ls.includes(v)?v:""}),_=Ne("appI18n",null);Cp(()=>{h.value&&(_&&(_.global.locale.value=h.value),Pu(h.value))});const x=re(()=>{var v,w;return h.value||((w=(v=_==null?void 0:_.global)==null?void 0:v.locale)==null?void 0:w.value)||"en"}),k=re(()=>Su.has(x.value)?"rtl":"ltr"),S=re(()=>{var v;return((v=a.value)==null?void 0:v.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),C=Ne("profileModules",null);if(!C)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const m=re(()=>{if(!s.value)return null;const v=`./${s.value}.vue`;return C[v]?wf(C[v]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(C)),null)});bt("mapboxToken",i),bt("dataSource",l),bt("colorSet",c),bt("profileConfig",a),bt("instanceId",S),bt("lang",x);const g=Cy(),d=Ty(),$=Ny();try{const v=typeof localStorage<"u"?localStorage.getItem("theme"):null;v&&((L=g.setTheme)==null||L.call(g,v))}catch{}return bt("uiStore",g),bt("mapStore",d),bt("dataStore",$),(v,w)=>(ee(),se("div",{class:"profile-loader",dir:k.value},[a.value?m.value?(ee(),ao(al(m.value),{key:2})):(ee(),se("div",Fy,[N("p",null,[w[1]||(w[1]=it("⚠️ Profile ",-1)),N("strong",null,'"'+fe(s.value)+'"',1),w[2]||(w[2]=it(" not found.",-1))])])):(ee(),se("div",Oy,[...w[0]||(w[0]=[N("p",null,[it("⚠️ "),N("strong",null,"doxa-map"),it(": missing or invalid "),N("code",null,"profile-config"),it(" prop.")],-1),N("p",null,[it("Example: "),N("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),m.value&&u.value?(ee(),ao(al(de(null)),{key:3})):Ye("",!0),m.value&&p.value?(ee(),ao(Py,{key:4})):Ye("",!0)],8,My))}},[["styles",[Ry]],["__scopeId","data-v-ccbcaedb"]]),Eu="adoptionStatus",xo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Dy=xo,Nr={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Uy=Nr;function Cu(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?xo.hasAdoption:xo.notAdopted}function Rr({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],xo.hasAdoption,["==",t,1],xo.hasAdoption,xo.notAdopted]}const Tu=Rr,Gy=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Dy,ADOPTION_LABELS:Uy,LABELS:Nr,PALETTE:xo,PROPERTY_KEY:Eu,applyColor:Rr,buildColorExpression:Tu,default:{name:"Adoption Progress",propertyKey:Eu,palette:xo,colors:xo,labels:Nr,getColor:Cu,applyColor:Rr,buildColorExpression:Tu},getColor:Cu},Symbol.toStringTag,{value:"Module"})),Nu="engagementStatus",So={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},jy=So,Mr={notEngaged:"Unengaged",hasEngagement:"Engaged"},zy=Mr;function Ru(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?So.hasEngagement:So.notEngaged}function Or({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],So.hasEngagement,["==",t,1],So.hasEngagement,So.notEngaged]}const Mu=Or,By=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:jy,ENGAGEMENT_LABELS:zy,LABELS:Mr,PALETTE:So,PROPERTY_KEY:Nu,applyColor:Or,buildColorExpression:Mu,default:{name:"Engagement Progress",propertyKey:Nu,palette:So,colors:So,labels:Mr,getColor:Ru,applyColor:Or,buildColorExpression:Mu},getColor:Ru},Symbol.toStringTag,{value:"Module"})),Fr="languageFamily",Vy="#000000",Lo={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},qy=Lo;function Ir(e){return Lo[e]||Vy}const Hy=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(Lo))t[e(o)]=o;return t})(),Wy={"tai-kadai":"Kra-Dai",none:"Unknown"};function us(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Wy[o]||Hy[o]||t}function Ou(e){var t;return Ir(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function Dr(){const e=["match",["get",Fr]];return Object.entries(Lo).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Fu=Dr,Ky=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:qy,PALETTE:Lo,PROPERTY_KEY:Fr,applyColor:Dr,buildColorExpression:Fu,canonicalFamilyName:us,default:{name:"Language Family",propertyKey:Fr,palette:Lo,colors:Lo,getColor:Ou,applyColor:Dr,buildColorExpression:Fu,getLanguageFamilyColor:Ir,canonicalFamilyName:us},defaultFamilyColor:"#95a5a6",getColor:Ou,getLanguageFamilyColor:Ir,languageFamilyColors:Lo},Symbol.toStringTag,{value:"Module"})),Iu="peoplePraying",ds=144,Go={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Yy=Go,sa={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},Xy=sa;function wn(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=ds?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Ur(e){return Go[wn(e)]}function Du(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Uu(e){return wn(e)==="fullPrayer"}function Gu(e){return Ur(e)}function ps({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,ds],Go.fullPrayer,[">",t,0],Go.hasPrayer,Go.noPrayer]}const ju=ps,Zy=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:ds,LABELS:sa,PALETTE:Go,PRAYER_COLORS:Yy,PRAYER_LABELS:Xy,PROPERTY_KEY:Iu,applyColor:ps,buildColorExpression:ju,checkHasFullPrayer:Uu,checkHasPrayer:Du,default:{name:"Prayer Progress",propertyKey:Iu,palette:Go,colors:Go,labels:sa,threshold:ds,getColor:Gu,applyColor:ps,buildColorExpression:ju,getPrayerLevel:wn,getPrayerColor:Ur,checkHasPrayer:Du,checkHasFullPrayer:Uu},getColor:Gu,getPrayerColor:Ur,getPrayerLevel:wn},Symbol.toStringTag,{value:"Module"})),zu="religion",Gr="#94a3b8",en={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Ct={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function jr(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return en[t]?t:"U"}function Bu(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return Ct[jr(t)]||Gr}function zr(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Ct.C,"M",Ct.M,"H",Ct.H,"B",Ct.B,"E",Ct.E,"J",Ct.J,"S",Ct.S,"N",Ct.N,"O",Ct.O,Gr]}const Vu=zr,Jy=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Ct,PROPERTY_KEY:zu,RELIGION_FAMILIES:en,applyColor:zr,buildColorExpression:Vu,default:{name:"Religion",propertyKey:zu,palette:Ct,families:en,getColor:Bu,applyColor:zr,buildColorExpression:Vu,fallback:Gr},getColor:Bu,getReligionFamily:jr},Symbol.toStringTag,{value:"Module"})),qu="region",Br="#6d766e",Hu={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},ra={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Vr=Object.keys(ra);function Wu(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return ra[t]||Br}function qr(){const e=["match",["coalesce",["get","region"],""]];for(const t of Vr)e.push(t,ra[t]);return e.push(Br),e}const Ku=qr,Qy=Object.assign({"./adoption.js":Gy,"./engagement.js":By,"./language-family.js":Ky,"./prayer-progress.js":Zy,"./religion.js":Jy,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:ra,PROPERTY_KEY:qu,REGION_ORDER:Vr,WAGF_REGIONS:Hu,applyColor:qr,buildColorExpression:Ku,default:{name:"WAGF Region",propertyKey:qu,palette:ra,regions:Hu,order:Vr,getColor:Wu,applyColor:qr,buildColorExpression:Ku,fallback:Br},getColor:Wu},Symbol.toStringTag,{value:"Module"}))}),ev=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),tv=e=>e.replace(/-/g,"_").toUpperCase(),Ao={...{STATUS:"status",CUSTOM:"custom"}},Hr={};function Yu(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith("."))continue;const n=e[t].default;if(!n)continue;const a=ev(o);Ao[tv(o)]=a,Hr[a]=n}}Yu(Qy);function ov(e){e&&Yu(e)}function gs(e){return Hr[e]||Hr[Ao.LANGUAGE_FAMILY]}const Xu={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 nv(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Zu(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(nv(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Xu.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Xu.mapbox,null,!0);o=!0}catch{}return o}const Ju="affinityBlock",xn="#95a5a6",Sn={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},Wr={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},Ln=Wr;Object.entries(Sn).reduce((e,[t,o])=>(e[o]=t,e),{});const av=Object.entries(Sn).reduce((e,[t,o])=>(e[o]=Ln[t],e),{}),sv=Sn;function Qu(e){return Sn[e]||"Unknown"}function ed(e){return Ln[e]||xn}function rv(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?Ln[e]||xn:av[e]||xn:xn}function iv(){return Object.entries(Sn).map(([e,t])=>({code:e,name:t,color:Ln[e]}))}function lv(e){return{code:e,name:Sn[e]||"Unknown",color:Ln[e]||xn}}function cv(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return ed(t)}function uv(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Qu(t)}function td(){const e=["match",["get",Ju]];return Object.entries(Ln).forEach(([t,o])=>{e.push(t,o)}),e.push(xn),e}const dv={name:"Affinity Block",propertyKey:Ju,palette:Wr,colors:Wr,names:sv,getColor:cv,applyColor:td,buildColorExpression:td,getName:uv,getAffinityBlockName:Qu,getAffinityBlockColor:rv,getAffinityBlockColorByCode:ed,getAffinityBlocksArray:iv,getAffinityBlockData:lv};function pv(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(Kr),e}const hv={name:"DOXA Region",propertyKey:od,palette:ad,colors:ad,slugColors:Yr,aliases:rd,fallback:Kr,getColor:fv,applyColor:id,buildColorExpression:id,getRegionColor:gv,getRegionColorBySlug:sd},mv=Object.assign({"./research-dashboard.vue":()=>Md(()=>Promise.resolve().then(()=>Zw),void 0)});ov({"./affinity-block.js":{default:dv},"./doxa-region.js":{default:hv}}),Zu();function $v(){return nf(Iy,{configureApp(e){e.use(hf());const t=xy();e.use(t),e.provide("appI18n",t),e.provide("profileModules",mv)}})}const bv=$v();typeof customElements<"u"&&(customElements.get("research-dashboard-map")||customElements.define("research-dashboard-map",bv));function _v(e,t,o){const n=e.toLowerCase(),a=t.toLowerCase(),s=a.length;if(!s||!n.length)return null;const r=Math.min(2,Math.floor(o*s));if(r<=0)return null;let i=new Array(n.length+1).fill(0),l=new Array(n.length+1);for(let h=1;h<=s;h++){l[0]=h;for(let _=1;_<=n.length;_++){const x=i[_-1]+(a[h-1]===n[_-1]?0:1);l[_]=Math.min(x,i[_]+1,l[_-1]+1)}[i,l]=[l,i]}let c=1/0,u=-1;for(let h=1;h<=n.length;h++)i[h]r?null:[[Math.max(0,u-s),u-1]]}function yv(e,t){const o=String(e??""),n=String(t??"").trim();return n?o?o.toLowerCase().includes(n.toLowerCase()):!1:!0}function vv(e,t,{threshold:o=.4}={}){const n=String(e??"").trim().toLowerCase();if(!n)return[];const a=Math.min(2,Math.floor(o*n.length)),s=[];for(const i of t){if(!i)continue;const l=String(i).toLowerCase();if(Math.abs(l.length-n.length)>a)continue;const c=kv(l,n,a);c<=a&&s.push({value:i,distance:c})}if(!s.length)return[];const r=Math.min(...s.map(i=>i.distance));return s.filter(i=>i.distance===r).map(i=>i.value)}function kv(e,t,o){if(e===t)return 0;let n=Array.from({length:t.length+1},(s,r)=>r);const a=new Array(t.length+1);for(let s=1;s<=e.length;s++){a[0]=s;let r=s;for(let i=1;i<=t.length;i++)a[i]=Math.min(n[i-1]+(e[s-1]===t[i-1]?0:1),n[i]+1,a[i-1]+1),a[i]o)return o+1;for(let i=0;i<=t.length;i++)n[i]=a[i]}return n[t.length]}function wv(e,t,{threshold:o=.4,minMatchCharLength:n=3}={}){const a=String(e??""),s=String(t??"").trim();return s?a?a.toLowerCase().includes(s.toLowerCase())?!0:o===0||s.length!t[n[a]].includes(r))):s}}return t}function Sv(){const e=Vo({}),t=new Set,o=ue(0),n=ue(""),a=new Map;function s(m,g){return a.has(m)||a.set(m,new Set),a.get(m).add(g),()=>{var d;return(d=a.get(m))==null?void 0:d.delete(g)}}function r(m,g){var d;(d=a.get(m))==null||d.forEach($=>{try{$(g)}catch{}})}let i={};function l(m){i=xv(m)}function c(m,g){if(g==null){delete e[m];for(const d of i[m]||[])delete e[d]}else e[m]=g;r("filter",e)}function u(){Object.keys(e).forEach(m=>delete e[m]),r("filter",e)}function p(m){n.value=m==null?"":String(m),r("search",n.value)}function h(){o.value++,r("select",t)}function _(m){t.has(m)?t.delete(m):t.add(m),h()}function x(){t.size&&(t.clear(),h())}function k(m,{additive:g=!0}={}){let d=!1;g||t.size&&(t.clear(),d=!0);for(const $ of m)t.has($)||(t.add($),d=!0);return d&&h(),d}function S(m){let g=!1;for(const d of m)t.delete(d)&&(g=!0);return g&&h(),g}function C(m){const g=m instanceof Set?m:new Set(m);if(g.size===t.size){let d=!0;for(const $ of g)if(!t.has($)){d=!1;break}if(d)return!1}t.clear();for(const d of g)t.add(d);return h(),!0}return{filterSet:e,selectionSet:t,selectionVersion:o,searchTerm:n,on:s,emit:r,setFilter:c,clearFilters:u,setSearch:p,configureHierarchy:l,toggleSelect:_,clearSelection:x,selectMany:k,deselectMany:S,setSelection:C}}const Xr={};function Zr(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:on&&on.tagName.toUpperCase()==="SCRIPT"&&on.src||new URL("research-dashboard.js",document.baseURI).href}<"u"&&(Xr==null?void 0:Xr.VITE_API_BASE_URL)||""}function Lv(e={}){const t=ue(!1),o=ue(null),n=In(new Map),a=In([]),s=ue(null),r=ue(0),i=e.source||jt.activeSource;async function l(){var c,u,p,h;t.value=!0,o.value=null;try{const _=((c=jt==null?void 0:jt.sources)==null?void 0:c[i])||{},x=Zr(),k=((u=_.endpoints)==null?void 0:u.bulk)||"/api/people-groups/list",S=(_.defaultFields||[]).join(","),C=((p=_.queryParams)==null?void 0:p.lang)||"en",m=`${x}${k}?${S?`fields=${S}&`:""}lang=${C}&_=${Date.now()}`,g=await fetch(m,{cache:"no-store"});if(!g.ok)throw new Error(`list HTTP ${g.status}`);const d=await g.json(),$=Array.isArray(d)?d:d.posts||d.data||d.results||[],L=new Map;for(const w of $){const P=w&&(w.slug||w.id);P&&L.set(P,w)}n.value=L,a.value=$,r.value=L.size;const v=((h=_.endpoints)==null?void 0:h.statistics)||"/api/people-groups/statistics";try{const w=await fetch(`${x}${v}?_=${Date.now()}`,{cache:"no-store"});w.ok&&(w.headers.get("content-type")||"").includes("json")&&(s.value=await w.json())}catch{}r.value===0&&(o.value="No records loaded from the live API.")}catch(_){o.value=_&&_.message?_.message:String(_)}finally{t.value=!1}}return{loading:t,error:o,rowStore:n,rows:a,stats:s,total:r,load:l,sourceId:i}}const fs=["slug","name","imb_alternate_name","doxa_wagf_uid","imb_uid","imb_peid","imb_pgid","joshua_project_id","imb_affinity_code","latitude","longitude","country_code","region","wagf_region","wagf_block","wagf_member","imb_subregion","location_description","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","primary_language","imb_language_family","imb_language_class","imb_language_speakers","work_in_local_language","imb_is_indigenous","religion","imb_reg_of_religion_3","imb_reg_of_religion_4","population","imb_population_class","believers_count","evangelical_pct","imb_evangelical_level","imb_congregation_existing","people_praying","people_committed","committed_duration","adopted_by_churches","adopted_by_count","adopted_by_names","engagement_status","status","reason_engaged","reason_unlisted","global_start_date","workers_long_term","imb_church_planting","disciple_and_church_multiplication","imb_bible_available","imb_bible_translation_level","imb_bible_year_published","imb_bible_stories_available","imb_audio_scripture_available","imb_gospel_recordings_available","imb_jesus_film_available","imb_radio_broadcast_available","imb_total_resources_available","imb_gsec","imb_lostness_priority_index","imb_strategic_priority_index","has_photo","image_url","picture_credit","imb_people_description"];function Jr({rowStore:e,rows:t,selectionSet:o,filterSet:n,FACET_ACC:a,dataOpts:s={},labelFor:r=null}){let i=null,l=null;function c(){return l||(l=(async()=>{var q,B,O;const $=s.source||jt.activeSource,L=((q=jt==null?void 0:jt.sources)==null?void 0:q[$])||{},v=Array.isArray(L.exportFields)&&L.exportFields.length?L.exportFields:fs,w=((B=L.endpoints)==null?void 0:B.bulk)||"/api/people-groups/list",P=((O=L.queryParams)==null?void 0:O.lang)||"en",H=`${Zr()}${w}?fields=${v.join(",")}&lang=${P}`,M=await fetch(H,{cache:"no-store"});if(!M.ok)throw new Error(`export list HTTP ${M.status}`);const j=await M.json(),ae=Array.isArray(j)?j:j.posts||j.data||j.results||[],I=new Map;for(const te of ae){const U=te&&(te.slug||te.id);U&&I.set(U,te)}return i=I,I})().catch($=>{throw l=null,$}),l)}function u($){if(!i)return $;const L=i.get($&&($.slug||$.id));return L?{...$,...L}:$}function p(){if(o&&o.size)return[...o].map(L=>e.value.get(L)).filter(Boolean);const $=Object.keys(n);return $.length?(t.value||[]).filter(L=>$.every(v=>{const w=a[v];return w?w(L)===n[v]:!0})):t.value||[]}function h(){return o&&o.size?`selection (${o.size})`:Object.keys(n).length?"filter result":"all"}function _($){return $==null?$:Array.isArray($)?$.map(L=>_(L)).filter(L=>L!==""&&L!==null&&L!==void 0).join(" | "):typeof $=="object"?$.label??$.value??$.text??$.name??$.link??JSON.stringify($):$}function x($){const L={};for(const v of Object.keys($))L[v]=_($[v]);return L}function k($){let L=$==null?"":String($);return/^[=+\-@]/.test(L)&&(L="'"+L),/[",\n\r]/.test(L)&&(L='"'+L.replace(/"/g,'""')+'"'),L}function S(){const $=p().map(u).map(x),L=$.reduce((M,j)=>(Object.keys(j).forEach(ae=>M.add(ae)),M),new Set),v=[...fs.filter(M=>L.has(M)),...[...L].filter(M=>!fs.includes(M))],w=Object.entries(n).map(([M,j])=>`${M}=${r?r(M,j):j}`).join(" | ")||"none",P=`# Research Dashboard export — scope: ${h()}; filters: ${w}; rows: ${$.length}`;return[v.map(k).join(","),...$.map(M=>v.map(j=>k(M[j])).join(",")),P].join(`\r
-`)}const C={rows:0,clipboard:!1,downloaded:!1,at:0,fields:0,wide:!1};function m(){const $=S(),L=p().length,v=($.split(`\r
-`)[0]||"").split(",").length;try{typeof window<"u"&&(window.__rdashLastCsv=$)}catch{}let w=!1,P=!1;try{typeof navigator<"u"&&navigator.clipboard&&navigator.clipboard.writeText&&(navigator.clipboard.writeText($).catch(()=>{}),w=!0)}catch{}try{const H=new Blob([$],{type:"text/csv;charset=utf-8"}),M=URL.createObjectURL(H),j=document.createElement("a");j.href=M,j.download="research-dashboard.csv",j.style.display="none",document.body.appendChild(j),j.click(),P=!0,setTimeout(()=>{try{URL.revokeObjectURL(M),j.remove()}catch{}},200)}catch{}Object.assign(C,{rows:L,clipboard:w,downloaded:P,fields:v,wide:!!i,at:typeof performance<"u"?performance.now():0});try{window.__rdashExportStatus={rows:L,clipboard:w,downloaded:P,fields:v,wide:!!i}}catch{}return{csv:$,rows:L,clipboard:w,downloaded:P,fields:v,wide:!!i}}async function g(){try{await c()}catch{}return m()}function d(){try{return c()}catch{return null}}return{exportCsv:m,exportCsvAsync:g,buildCsv:S,pickRows:p,scopeLabel:h,lastExport:C,prefetchExportFields:d,EXPORT_FIELDS:fs}}const Av="#6b7280";function Pv(){const e=gs(Ao.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function Ev(e,t){const o=Pv();return e&&o[e]?o[e]:Av}function Cv(e){return(e==null?void 0:e.properties)||e||{}}function Qr(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function Tv(e){var t;return String(e.affinityBlock||Qr((t=e._raw)==null?void 0:t.rop1)||"").trim()}function Nv(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function Rv(e){var t;return String(e.cluster||Qr((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function Mv(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function Ov(e){var t;return String(e.peopleGroup||Qr((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function Fv(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function Iv(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function Dv(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function Uv(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function Gv(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function jv(e){const t=re(()=>{const s=e&&e.value||[],r=new Map;for(const i of s){const l=Cv(i),c=Tv(l),u=Nv(l)||c||"— Unknown —",p=Rv(l),h=Mv(l)||p||"— Unknown —",_=Ov(l),x=Fv(l)||_||"— Unknown —",k=Iv(l),S=Dv(l)||k,C=Uv(l),m=Gv(l);if(!k)continue;let g=r.get(c||"__unknown__");g||(g={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},r.set(c||"__unknown__",g)),g.count+=1,g.pop+=C,g.memberIds.push(k);let d=g.clusters.get(p||"__unknown__");d||(d={code:p,label:h,count:0,pop:0,memberIds:[],peopleGroups:new Map},g.clusters.set(p||"__unknown__",d)),d.count+=1,d.pop+=C,d.memberIds.push(k);let $=d.peopleGroups.get(_||"__unknown__");$||($={code:_,label:x,count:0,pop:0,memberIds:[],instances:[]},d.peopleGroups.set(_||"__unknown__",$)),$.count+=1,$.pop+=C,$.memberIds.push(k),$.instances.push({id:k,name:S,country:m,pop:C})}return r}),o=s=>s&&s.length?["in",["get","uniqueId"],["literal",s]]:["==",["get","uniqueId"],"__none__"],n=re(()=>{const s=t.value,r=[];for(const i of s.values()){const l=Ev(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const p={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const h of u.peopleGroups.values()){const _={id:`pg:${i.code}__${u.code}__${h.code||h.label}`,label:`${h.label} (PG)`,color:l,count:h.count,pop:h.pop,filter:o(h.memberIds),children:[]};h.instances.sort((x,k)=>k.pop-x.pop||x.country.localeCompare(k.country));for(const x of h.instances)_.children.push({id:`pgic:${x.id}`,label:`${x.country?`${x.name}, ${x.country}`:x.name} (PGIC)`,color:l,count:1,pop:x.pop,filter:["==",["get","uniqueId"],x.id],children:[]});p.children.push(_)}p.children.sort((h,_)=>_.count-h.count||_.pop-h.pop),c.children.push(p)}c.children.sort((u,p)=>p.count-u.count||p.pop-u.pop),r.push(c)}return r.sort((i,l)=>l.count-i.count||l.pop-i.pop),r});function a(s){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!s){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(s.id||""),i={kind:null,label:s.label,filterExpr:s.filter};r.startsWith("bloc:")?i.kind="bloc":r.startsWith("cluster:")?i.kind="cluster":r.startsWith("pg:")?i.kind="people-group":r.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}function ia(e,t,o){const n=re(()=>{const l=t&&o&&t.sources&&t.sources[o];return l&&l.features||[]}),{aggregated:a}=jv(n),s=re(()=>{const l=(e&&e.facetRail||[]).find(c=>c.tree==="affinity");return l&&l.drill||[]}),r=re(()=>{const[l,c,u]=s.value,p=new Map,h=new Map,_=new Map;for(const k of a.value.values()){k.code&&p.set(k.code,k.label);for(const S of k.clusters.values()){S.code&&h.set(S.code,S.label);for(const C of S.peopleGroups.values())C.code&&_.set(C.code,C.label)}}const x={};return l&&(x[l]=p),c&&(x[c]=h),u&&(x[u]=_),x});function i(l,c){const u=r.value[l];return u&&u.get(c)||c}return{normalizedFeatures:n,affinityAgg:a,affinityLabelMaps:r,treeFacetKeys:s,labelFor:i}}class ld{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=jt,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",s=!1,r=[],i=!0;for(let l=0;li.value?(ee(),se("div",{key:0,ref_key:"hintEl",ref:c,class:ze(["pin-hint",{dark:r.value}]),role:"status"},[T("span",Ly,[P[0]||(P[0]=T("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),lt(" "+ge(l.value)+" ",1),T("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:d},"×")])],2)):Ye("",!0)}};let Ey=0;const Cy=ur("ui",{state:()=>({_storeInstanceId:++Ey,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)}))}}}),Ry=ur("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Ty=ur("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]=On({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]=On({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}}}),zt={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},Ny=".profile-loader[data-v-ccbcaedb]{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-ccbcaedb]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",cs=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},My=["dir"],Fy={key:0,class:"profile-error"},Oy={key:1,class:"profile-error"},Iy=cs({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var x;const o=e,n=Te("profileConfig",null),a=re(()=>{var w;if(!o.profileConfig)return null;let y;try{y=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(y&&y.assetsBase===void 0){const P=(w=n==null?void 0:n.value)==null?void 0:w.assetsBase;typeof P=="string"&&P&&(y.assetsBase=P)}return y}),s=re(()=>{var y;return((y=a.value)==null?void 0:y.profile)||null}),r=kf(),l=re(()=>{var w;const y=(w=a.value)==null?void 0:w.tk;return typeof y=="string"&&y?y:r.value||""});ct(()=>{var y;return(y=a.value)==null?void 0:y.tk},y=>{typeof y=="string"&&y&&cc(y)},{immediate:!0});const i=re(()=>{var y;return((y=a.value)==null?void 0:y.dataSource)||zt.activeSource||"doxa-csv"}),c=re(()=>{var y;return((y=a.value)==null?void 0:y.colorSet)||"default"}),u=re(()=>!1),p=re(()=>{var y;return((y=a.value)==null?void 0:y.pinHint)!==!1}),h=re(()=>{var w,P;const y=(((w=a.value)==null?void 0:w.locale)||((P=a.value)==null?void 0:P.lang)||"").split("-")[0].toLowerCase();return is.includes(y)?y:""}),_=Te("appI18n",null);Cd(()=>{h.value&&(_&&(_.global.locale.value=h.value),Pu(h.value))});const S=re(()=>{var y,w;return h.value||((w=(y=_==null?void 0:_.global)==null?void 0:y.locale)==null?void 0:w.value)||"en"}),k=re(()=>Su.has(S.value)?"rtl":"ltr"),A=re(()=>{var y;return((y=a.value)==null?void 0:y.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),C=Te("profileModules",null);if(!C)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const m=re(()=>{if(!s.value)return null;const y=`./${s.value}.vue`;return C[y]?wf(C[y]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(C)),null)});bt("mapboxToken",l),bt("dataSource",i),bt("colorSet",c),bt("profileConfig",a),bt("instanceId",A),bt("lang",S);const d=Cy(),f=Ry(),$=Ty();try{const y=typeof localStorage<"u"?localStorage.getItem("theme"):null;y&&((x=d.setTheme)==null||x.call(d,y))}catch{}return bt("uiStore",d),bt("mapStore",f),bt("dataStore",$),(y,w)=>(ee(),se("div",{class:"profile-loader",dir:k.value},[a.value?m.value?(ee(),ao(ai(m.value),{key:2})):(ee(),se("div",Oy,[T("p",null,[w[1]||(w[1]=lt("⚠️ Profile ",-1)),T("strong",null,'"'+ge(s.value)+'"',1),w[2]||(w[2]=lt(" not found.",-1))])])):(ee(),se("div",Fy,[...w[0]||(w[0]=[T("p",null,[lt("⚠️ "),T("strong",null,"doxa-map"),lt(": missing or invalid "),T("code",null,"profile-config"),lt(" prop.")],-1),T("p",null,[lt("Example: "),T("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),m.value&&u.value?(ee(),ao(ai(pe(null)),{key:3})):Ye("",!0),m.value&&p.value?(ee(),ao(Py,{key:4})):Ye("",!0)],8,My))}},[["styles",[Ny]],["__scopeId","data-v-ccbcaedb"]]),Eu="adoptionStatus",xo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Dy=xo,Tr={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Gy=Tr;function Cu(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?xo.hasAdoption:xo.notAdopted}function Nr({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],xo.hasAdoption,["==",t,1],xo.hasAdoption,xo.notAdopted]}const Ru=Nr,Uy=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Dy,ADOPTION_LABELS:Gy,LABELS:Tr,PALETTE:xo,PROPERTY_KEY:Eu,applyColor:Nr,buildColorExpression:Ru,default:{name:"Adoption Progress",propertyKey:Eu,palette:xo,colors:xo,labels:Tr,getColor:Cu,applyColor:Nr,buildColorExpression:Ru},getColor:Cu},Symbol.toStringTag,{value:"Module"})),Tu="engagementStatus",So={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},zy=So,Mr={notEngaged:"Unengaged",hasEngagement:"Engaged"},jy=Mr;function Nu(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?So.hasEngagement:So.notEngaged}function Fr({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],So.hasEngagement,["==",t,1],So.hasEngagement,So.notEngaged]}const Mu=Fr,By=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:zy,ENGAGEMENT_LABELS:jy,LABELS:Mr,PALETTE:So,PROPERTY_KEY:Tu,applyColor:Fr,buildColorExpression:Mu,default:{name:"Engagement Progress",propertyKey:Tu,palette:So,colors:So,labels:Mr,getColor:Nu,applyColor:Fr,buildColorExpression:Mu},getColor:Nu},Symbol.toStringTag,{value:"Module"})),Or="languageFamily",Vy="#000000",Ao={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},qy=Ao;function Ir(e){return Ao[e]||Vy}const Hy=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(Ao))t[e(o)]=o;return t})(),Wy={"tai-kadai":"Kra-Dai",none:"Unknown"};function us(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Wy[o]||Hy[o]||t}function Fu(e){var t;return Ir(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function Dr(){const e=["match",["get",Or]];return Object.entries(Ao).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Ou=Dr,Ky=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:qy,PALETTE:Ao,PROPERTY_KEY:Or,applyColor:Dr,buildColorExpression:Ou,canonicalFamilyName:us,default:{name:"Language Family",propertyKey:Or,palette:Ao,colors:Ao,getColor:Fu,applyColor:Dr,buildColorExpression:Ou,getLanguageFamilyColor:Ir,canonicalFamilyName:us},defaultFamilyColor:"#95a5a6",getColor:Fu,getLanguageFamilyColor:Ir,languageFamilyColors:Ao},Symbol.toStringTag,{value:"Module"})),Iu="peoplePraying",ps=144,Uo={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Yy=Uo,sa={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},Xy=sa;function wn(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=ps?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Gr(e){return Uo[wn(e)]}function Du(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Gu(e){return wn(e)==="fullPrayer"}function Uu(e){return Gr(e)}function ds({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,ps],Uo.fullPrayer,[">",t,0],Uo.hasPrayer,Uo.noPrayer]}const zu=ds,Zy=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:ps,LABELS:sa,PALETTE:Uo,PRAYER_COLORS:Yy,PRAYER_LABELS:Xy,PROPERTY_KEY:Iu,applyColor:ds,buildColorExpression:zu,checkHasFullPrayer:Gu,checkHasPrayer:Du,default:{name:"Prayer Progress",propertyKey:Iu,palette:Uo,colors:Uo,labels:sa,threshold:ps,getColor:Uu,applyColor:ds,buildColorExpression:zu,getPrayerLevel:wn,getPrayerColor:Gr,checkHasPrayer:Du,checkHasFullPrayer:Gu},getColor:Uu,getPrayerColor:Gr,getPrayerLevel:wn},Symbol.toStringTag,{value:"Module"})),ju="religion",Ur="#94a3b8",en={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Ct={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function zr(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return en[t]?t:"U"}function Bu(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return Ct[zr(t)]||Ur}function jr(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Ct.C,"M",Ct.M,"H",Ct.H,"B",Ct.B,"E",Ct.E,"J",Ct.J,"S",Ct.S,"N",Ct.N,"O",Ct.O,Ur]}const Vu=jr,Jy=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Ct,PROPERTY_KEY:ju,RELIGION_FAMILIES:en,applyColor:jr,buildColorExpression:Vu,default:{name:"Religion",propertyKey:ju,palette:Ct,families:en,getColor:Bu,applyColor:jr,buildColorExpression:Vu,fallback:Ur},getColor:Bu,getReligionFamily:zr},Symbol.toStringTag,{value:"Module"})),qu="region",Br="#6d766e",Hu={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},ra={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Vr=Object.keys(ra);function Wu(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return ra[t]||Br}function qr(){const e=["match",["coalesce",["get","region"],""]];for(const t of Vr)e.push(t,ra[t]);return e.push(Br),e}const Ku=qr,Qy=Object.assign({"./adoption.js":Uy,"./engagement.js":By,"./language-family.js":Ky,"./prayer-progress.js":Zy,"./religion.js":Jy,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:ra,PROPERTY_KEY:qu,REGION_ORDER:Vr,WAGF_REGIONS:Hu,applyColor:qr,buildColorExpression:Ku,default:{name:"WAGF Region",propertyKey:qu,palette:ra,regions:Hu,order:Vr,getColor:Wu,applyColor:qr,buildColorExpression:Ku,fallback:Br},getColor:Wu},Symbol.toStringTag,{value:"Module"}))}),ev=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),tv=e=>e.replace(/-/g,"_").toUpperCase(),Lo={...{STATUS:"status",CUSTOM:"custom"}},Hr={};function Yu(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith("."))continue;const n=e[t].default;if(!n)continue;const a=ev(o);Lo[tv(o)]=a,Hr[a]=n}}Yu(Qy);function ov(e){e&&Yu(e)}function gs(e){return Hr[e]||Hr[Lo.LANGUAGE_FAMILY]}const Xu={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 nv(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Zu(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(nv(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Xu.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Xu.mapbox,null,!0);o=!0}catch{}return o}const Ju="affinityBlock",xn="#95a5a6",Sn={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},Wr={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},An=Wr;Object.entries(Sn).reduce((e,[t,o])=>(e[o]=t,e),{});const av=Object.entries(Sn).reduce((e,[t,o])=>(e[o]=An[t],e),{}),sv=Sn;function Qu(e){return Sn[e]||"Unknown"}function ep(e){return An[e]||xn}function rv(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?An[e]||xn:av[e]||xn:xn}function lv(){return Object.entries(Sn).map(([e,t])=>({code:e,name:t,color:An[e]}))}function iv(e){return{code:e,name:Sn[e]||"Unknown",color:An[e]||xn}}function cv(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return ep(t)}function uv(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Qu(t)}function tp(){const e=["match",["get",Ju]];return Object.entries(An).forEach(([t,o])=>{e.push(t,o)}),e.push(xn),e}const pv={name:"Affinity Block",propertyKey:Ju,palette:Wr,colors:Wr,names:sv,getColor:cv,applyColor:tp,buildColorExpression:tp,getName:uv,getAffinityBlockName:Qu,getAffinityBlockColor:rv,getAffinityBlockColorByCode:ep,getAffinityBlocksArray:lv,getAffinityBlockData:iv};function dv(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(Kr),e}const hv={name:"DOXA Region",propertyKey:op,palette:ap,colors:ap,slugColors:Yr,aliases:rp,fallback:Kr,getColor:fv,applyColor:lp,buildColorExpression:lp,getRegionColor:gv,getRegionColorBySlug:sp},mv=Object.assign({"./research-dashboard.vue":()=>Mp(()=>Promise.resolve().then(()=>Zw),void 0)});ov({"./affinity-block.js":{default:pv},"./doxa-region.js":{default:hv}}),Zu();function $v(){return nf(Iy,{configureApp(e){e.use(hf());const t=xy();e.use(t),e.provide("appI18n",t),e.provide("profileModules",mv)}})}const bv=$v();typeof customElements<"u"&&(customElements.get("research-dashboard-map")||customElements.define("research-dashboard-map",bv));function _v(e,t,o){const n=e.toLowerCase(),a=t.toLowerCase(),s=a.length;if(!s||!n.length)return null;const r=Math.min(2,Math.floor(o*s));if(r<=0)return null;let l=new Array(n.length+1).fill(0),i=new Array(n.length+1);for(let h=1;h<=s;h++){i[0]=h;for(let _=1;_<=n.length;_++){const S=l[_-1]+(a[h-1]===n[_-1]?0:1);i[_]=Math.min(S,l[_]+1,i[_-1]+1)}[l,i]=[i,l]}let c=1/0,u=-1;for(let h=1;h<=n.length;h++)l[h]r?null:[[Math.max(0,u-s),u-1]]}function yv(e,t){const o=String(e??""),n=String(t??"").trim();return n?o?o.toLowerCase().includes(n.toLowerCase()):!1:!0}function vv(e,t,{threshold:o=.4}={}){const n=String(e??"").trim().toLowerCase();if(!n)return[];const a=Math.min(2,Math.floor(o*n.length)),s=[];for(const l of t){if(!l)continue;const i=String(l).toLowerCase();if(Math.abs(i.length-n.length)>a)continue;const c=kv(i,n,a);c<=a&&s.push({value:l,distance:c})}if(!s.length)return[];const r=Math.min(...s.map(l=>l.distance));return s.filter(l=>l.distance===r).map(l=>l.value)}function kv(e,t,o){if(e===t)return 0;let n=Array.from({length:t.length+1},(s,r)=>r);const a=new Array(t.length+1);for(let s=1;s<=e.length;s++){a[0]=s;let r=s;for(let l=1;l<=t.length;l++)a[l]=Math.min(n[l-1]+(e[s-1]===t[l-1]?0:1),n[l]+1,a[l-1]+1),a[l]o)return o+1;for(let l=0;l<=t.length;l++)n[l]=a[l]}return n[t.length]}function wv(e,t,{threshold:o=.4,minMatchCharLength:n=3}={}){const a=String(e??""),s=String(t??"").trim();return s?a?a.toLowerCase().includes(s.toLowerCase())?!0:o===0||s.length!t[n[a]].includes(r))):s}}return t}function Sv(){const e=Vo({}),t=new Set,o=ue(0),n=ue(""),a=new Map;function s(m,d){return a.has(m)||a.set(m,new Set),a.get(m).add(d),()=>{var f;return(f=a.get(m))==null?void 0:f.delete(d)}}function r(m,d){var f;(f=a.get(m))==null||f.forEach($=>{try{$(d)}catch{}})}let l={};function i(m){l=xv(m)}function c(m,d){if(d==null){delete e[m];for(const f of l[m]||[])delete e[f]}else e[m]=d;r("filter",e)}function u(){Object.keys(e).forEach(m=>delete e[m]),r("filter",e)}function p(m){n.value=m==null?"":String(m),r("search",n.value)}function h(){o.value++,r("select",t)}function _(m){t.has(m)?t.delete(m):t.add(m),h()}function S(){t.size&&(t.clear(),h())}function k(m,{additive:d=!0}={}){let f=!1;d||t.size&&(t.clear(),f=!0);for(const $ of m)t.has($)||(t.add($),f=!0);return f&&h(),f}function A(m){let d=!1;for(const f of m)t.delete(f)&&(d=!0);return d&&h(),d}function C(m){const d=m instanceof Set?m:new Set(m);if(d.size===t.size){let f=!0;for(const $ of d)if(!t.has($)){f=!1;break}if(f)return!1}t.clear();for(const f of d)t.add(f);return h(),!0}return{filterSet:e,selectionSet:t,selectionVersion:o,searchTerm:n,on:s,emit:r,setFilter:c,clearFilters:u,setSearch:p,configureHierarchy:i,toggleSelect:_,clearSelection:S,selectMany:k,deselectMany:A,setSelection:C}}const Xr={};function Zr(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:on&&on.tagName.toUpperCase()==="SCRIPT"&&on.src||new URL("research-dashboard.js",document.baseURI).href}<"u"&&(Xr==null?void 0:Xr.VITE_API_BASE_URL)||""}function Av(e={}){const t=ue(!1),o=ue(null),n=In(new Map),a=In([]),s=ue(null),r=ue(0),l=e.source||zt.activeSource;async function i(){var c,u,p,h;t.value=!0,o.value=null;try{const _=((c=zt==null?void 0:zt.sources)==null?void 0:c[l])||{},S=Zr(),k=((u=_.endpoints)==null?void 0:u.bulk)||"/api/people-groups/list",A=(_.defaultFields||[]).join(","),C=((p=_.queryParams)==null?void 0:p.lang)||"en",m=`${S}${k}?${A?`fields=${A}&`:""}lang=${C}&_=${Date.now()}`,d=await fetch(m,{cache:"no-store"});if(!d.ok)throw new Error(`list HTTP ${d.status}`);const f=await d.json(),$=Array.isArray(f)?f:f.posts||f.data||f.results||[],x=new Map;for(const w of $){const P=w&&(w.slug||w.id);P&&x.set(P,w)}n.value=x,a.value=$,r.value=x.size;const y=((h=_.endpoints)==null?void 0:h.statistics)||"/api/people-groups/statistics";try{const w=await fetch(`${S}${y}?_=${Date.now()}`,{cache:"no-store"});w.ok&&(w.headers.get("content-type")||"").includes("json")&&(s.value=await w.json())}catch{}r.value===0&&(o.value="No records loaded from the live API.")}catch(_){o.value=_&&_.message?_.message:String(_)}finally{t.value=!1}}return{loading:t,error:o,rowStore:n,rows:a,stats:s,total:r,load:i,sourceId:l}}const fs=["slug","name","imb_alternate_name","doxa_wagf_uid","imb_uid","imb_peid","imb_pgid","joshua_project_id","imb_affinity_code","latitude","longitude","country_code","region","wagf_region","wagf_block","wagf_member","imb_subregion","location_description","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","primary_language","imb_language_family","imb_language_class","imb_language_speakers","work_in_local_language","imb_is_indigenous","religion","imb_reg_of_religion_3","imb_reg_of_religion_4","population","imb_population_class","believers_count","evangelical_pct","imb_evangelical_level","imb_congregation_existing","people_praying","people_committed","committed_duration","adopted_by_churches","adopted_by_count","adopted_by_names","engagement_status","status","reason_engaged","reason_unlisted","global_start_date","workers_long_term","imb_church_planting","disciple_and_church_multiplication","imb_bible_available","imb_bible_translation_level","imb_bible_year_published","imb_bible_stories_available","imb_audio_scripture_available","imb_gospel_recordings_available","imb_jesus_film_available","imb_radio_broadcast_available","imb_total_resources_available","imb_gsec","imb_lostness_priority_index","imb_strategic_priority_index","has_photo","image_url","picture_credit","imb_people_description"];function Jr({rowStore:e,rows:t,selectionSet:o,filterSet:n,FACET_ACC:a,dataOpts:s={},labelFor:r=null}){let l=null,i=null;function c(){return i||(i=(async()=>{var H,B,F;const $=s.source||zt.activeSource,x=((H=zt==null?void 0:zt.sources)==null?void 0:H[$])||{},y=Array.isArray(x.exportFields)&&x.exportFields.length?x.exportFields:fs,w=((B=x.endpoints)==null?void 0:B.bulk)||"/api/people-groups/list",P=((F=x.queryParams)==null?void 0:F.lang)||"en",q=`${Zr()}${w}?fields=${y.join(",")}&lang=${P}`,M=await fetch(q,{cache:"no-store"});if(!M.ok)throw new Error(`export list HTTP ${M.status}`);const z=await M.json(),ae=Array.isArray(z)?z:z.posts||z.data||z.results||[],I=new Map;for(const te of ae){const G=te&&(te.slug||te.id);G&&I.set(G,te)}return l=I,I})().catch($=>{throw i=null,$}),i)}function u($){if(!l)return $;const x=l.get($&&($.slug||$.id));return x?{...$,...x}:$}function p(){if(o&&o.size)return[...o].map(x=>e.value.get(x)).filter(Boolean);const $=Object.keys(n);return $.length?(t.value||[]).filter(x=>$.every(y=>{const w=a[y];return w?w(x)===n[y]:!0})):t.value||[]}function h(){return o&&o.size?`selection (${o.size})`:Object.keys(n).length?"filter result":"all"}function _($){return $==null?$:Array.isArray($)?$.map(x=>_(x)).filter(x=>x!==""&&x!==null&&x!==void 0).join(" | "):typeof $=="object"?$.label??$.value??$.text??$.name??$.link??JSON.stringify($):$}function S($){const x={};for(const y of Object.keys($))x[y]=_($[y]);return x}function k($){let x=$==null?"":String($);return/^[=+\-@]/.test(x)&&(x="'"+x),/[",\n\r]/.test(x)&&(x='"'+x.replace(/"/g,'""')+'"'),x}function A(){const $=p().map(u).map(S),x=$.reduce((M,z)=>(Object.keys(z).forEach(ae=>M.add(ae)),M),new Set),y=[...fs.filter(M=>x.has(M)),...[...x].filter(M=>!fs.includes(M))],w=Object.entries(n).map(([M,z])=>`${M}=${r?r(M,z):z}`).join(" | ")||"none",P=`# Research Dashboard export — scope: ${h()}; filters: ${w}; rows: ${$.length}`;return[y.map(k).join(","),...$.map(M=>y.map(z=>k(M[z])).join(",")),P].join(`\r
+`)}const C={rows:0,clipboard:!1,downloaded:!1,at:0,fields:0,wide:!1};function m(){const $=A(),x=p().length,y=($.split(`\r
+`)[0]||"").split(",").length;try{typeof window<"u"&&(window.__rdashLastCsv=$)}catch{}let w=!1,P=!1;try{typeof navigator<"u"&&navigator.clipboard&&navigator.clipboard.writeText&&(navigator.clipboard.writeText($).catch(()=>{}),w=!0)}catch{}try{const q=new Blob([$],{type:"text/csv;charset=utf-8"}),M=URL.createObjectURL(q),z=document.createElement("a");z.href=M,z.download="research-dashboard.csv",z.style.display="none",document.body.appendChild(z),z.click(),P=!0,setTimeout(()=>{try{URL.revokeObjectURL(M),z.remove()}catch{}},200)}catch{}Object.assign(C,{rows:x,clipboard:w,downloaded:P,fields:y,wide:!!l,at:typeof performance<"u"?performance.now():0});try{window.__rdashExportStatus={rows:x,clipboard:w,downloaded:P,fields:y,wide:!!l}}catch{}return{csv:$,rows:x,clipboard:w,downloaded:P,fields:y,wide:!!l}}async function d(){try{await c()}catch{}return m()}function f(){try{return c()}catch{return null}}return{exportCsv:m,exportCsvAsync:d,buildCsv:A,pickRows:p,scopeLabel:h,lastExport:C,prefetchExportFields:f,EXPORT_FIELDS:fs}}const Lv="#6b7280";function Pv(){const e=gs(Lo.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function Ev(e,t){const o=Pv();return e&&o[e]?o[e]:Lv}function Cv(e){return(e==null?void 0:e.properties)||e||{}}function Qr(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function Rv(e){var t;return String(e.affinityBlock||Qr((t=e._raw)==null?void 0:t.rop1)||"").trim()}function Tv(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function Nv(e){var t;return String(e.cluster||Qr((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function Mv(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function Fv(e){var t;return String(e.peopleGroup||Qr((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function Ov(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function Iv(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function Dv(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function Gv(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function Uv(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function zv(e){const t=re(()=>{const s=e&&e.value||[],r=new Map;for(const l of s){const i=Cv(l),c=Rv(i),u=Tv(i)||c||"— Unknown —",p=Nv(i),h=Mv(i)||p||"— Unknown —",_=Fv(i),S=Ov(i)||_||"— Unknown —",k=Iv(i),A=Dv(i)||k,C=Gv(i),m=Uv(i);if(!k)continue;let d=r.get(c||"__unknown__");d||(d={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},r.set(c||"__unknown__",d)),d.count+=1,d.pop+=C,d.memberIds.push(k);let f=d.clusters.get(p||"__unknown__");f||(f={code:p,label:h,count:0,pop:0,memberIds:[],peopleGroups:new Map},d.clusters.set(p||"__unknown__",f)),f.count+=1,f.pop+=C,f.memberIds.push(k);let $=f.peopleGroups.get(_||"__unknown__");$||($={code:_,label:S,count:0,pop:0,memberIds:[],instances:[]},f.peopleGroups.set(_||"__unknown__",$)),$.count+=1,$.pop+=C,$.memberIds.push(k),$.instances.push({id:k,name:A,country:m,pop:C})}return r}),o=s=>s&&s.length?["in",["get","uniqueId"],["literal",s]]:["==",["get","uniqueId"],"__none__"],n=re(()=>{const s=t.value,r=[];for(const l of s.values()){const i=Ev(l.code,l.label),c={id:`bloc:${l.code||l.label}`,label:l.label,color:i,count:l.count,pop:l.pop,filter:o(l.memberIds),children:[]};for(const u of l.clusters.values()){const p={id:`cluster:${l.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:i,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const h of u.peopleGroups.values()){const _={id:`pg:${l.code}__${u.code}__${h.code||h.label}`,label:`${h.label} (PG)`,color:i,count:h.count,pop:h.pop,filter:o(h.memberIds),children:[]};h.instances.sort((S,k)=>k.pop-S.pop||S.country.localeCompare(k.country));for(const S of h.instances)_.children.push({id:`pgic:${S.id}`,label:`${S.country?`${S.name}, ${S.country}`:S.name} (PGIC)`,color:i,count:1,pop:S.pop,filter:["==",["get","uniqueId"],S.id],children:[]});p.children.push(_)}p.children.sort((h,_)=>_.count-h.count||_.pop-h.pop),c.children.push(p)}c.children.sort((u,p)=>p.count-u.count||p.pop-u.pop),r.push(c)}return r.sort((l,i)=>i.count-l.count||i.pop-l.pop),r});function a(s){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!s){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(s.id||""),l={kind:null,label:s.label,filterExpr:s.filter};r.startsWith("bloc:")?l.kind="bloc":r.startsWith("cluster:")?l.kind="cluster":r.startsWith("pg:")?l.kind="people-group":r.startsWith("pgic:")&&(l.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:l}))}return{aggregated:t,affinityTree:n,highlight:a}}function la(e,t,o){const n=re(()=>{const i=t&&o&&t.sources&&t.sources[o];return i&&i.features||[]}),{aggregated:a}=zv(n),s=re(()=>{const i=(e&&e.facetRail||[]).find(c=>c.tree==="affinity");return i&&i.drill||[]}),r=re(()=>{const[i,c,u]=s.value,p=new Map,h=new Map,_=new Map;for(const k of a.value.values()){k.code&&p.set(k.code,k.label);for(const A of k.clusters.values()){A.code&&h.set(A.code,A.label);for(const C of A.peopleGroups.values())C.code&&_.set(C.code,C.label)}}const S={};return i&&(S[i]=p),c&&(S[c]=h),u&&(S[u]=_),S});function l(i,c){const u=r.value[i];return u&&u.get(c)||c}return{normalizedFeatures:n,affinityAgg:a,affinityLabelMaps:r,treeFacetKeys:s,labelFor:l}}class ip{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=zt,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",s=!1,r=[],l=!0;for(let i=0;i0){if(r.push(a.trim()),a="",i)n.push(...r),i=!1;else if(r.length>1){const p={};n.forEach((h,_)=>{p[h]=r[_]||""}),o.push(p)}r=[]}}else a+=c}if((a||r.length>0)&&(r.push(a.trim()),!i&&r.length>1)){const l={};n.forEach((c,u)=>{l[c]=r[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:s}=this.parseCSV(n);return this.rawData=s,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(r=>r.trim())),s=[];for(const[r,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||s.push({systemField:r,sourceField:l,isComposite:!0});else i&&!a.has(i)&&s.push({systemField:r,sourceField:i,isComposite:!1});s.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,s)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=Zr(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",s=[];a&&s.push(`fields=${a}`);const r={...t.queryParams||{}};this.locale&&(r.lang=this.locale);for(const[u,p]of Object.entries(r))s.push(`${u}=${encodeURIComponent(p)}`);const i=`${o}${n}?${s.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const p=u.headers.get("content-type")||"";if(!p.includes("application/json"))throw new Error(`API returned "${p}" instead of JSON. Server at ${o} may be down or misconfigured.`);const h=await u.json();return this.rawData=Array.isArray(h)?h:h.posts||h.data||h.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(p=>this.getFieldValue(n,p));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const s=a.engagementStatus;s!=null&&(typeof s=="object"&&"value"in s?(a.engagementStatusLabel=s.label||s.value,a.engagementStatus=s.value==="engaged"):a.engagementStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const r=a.adoptionStatus;r!=null&&(a.adoptionStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="object"&&!!(r!=null&&r.value)||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new ld;const cd=(e,t)=>Object.fromEntries(Object.entries(e||{}).map(([o,n])=>[o,t(n,o)])),ud=e=>e==null?"—":Number(e).toLocaleString("en-US");function la(e){const t=cd(e.facets,a=>a.get),o=Object.fromEntries((e.columns||[]).map(a=>[a.key,a.get])),n=Array.isArray(e.searchKeys)?e.searchKeys:null;return n?n.map(a=>t[a]||o[a]).filter(a=>typeof a=="function"):(e.columns||[]).filter(a=>a.type!=="num"&&typeof a.get=="function").map(a=>a.get)}function ca(e,t){const o=(a,s)=>{var i;const r=(((i=e==null?void 0:e.searchTerm)==null?void 0:i.value)||"").trim();if(!r)return!0;for(const l of t){const c=l(a);if(c!=null&&s(String(c),r,{threshold:.4,minMatchCharLength:3}))return!0}return!1},n=a=>o(a,wv);return n.exact=a=>o(a,yv),n.active=()=>{var a;return!!(((a=e==null?void 0:e.searchTerm)==null?void 0:a.value)||"").trim()},n.term=()=>{var a;return(((a=e==null?void 0:e.searchTerm)==null?void 0:a.value)||"").trim()},n.accessors=t,n}function ua(e,t){if(!t.active())return e;const o=e.filter(t.exact);if(o.length)return o;const n=t.term(),a=new Set;for(const r of t.accessors)for(const i of e){const l=r(i);l!=null&&l!==""&&a.add(String(l))}const s=new Set(vv(n,[...a],{threshold:.4}));if(s.size){const r=e.filter(i=>t.accessors.some(l=>{const c=l(i);return c!=null&&s.has(String(c))}));if(r.length)return r}return e.filter(t)}function zv(e,t,o,n,a){return(e||[]).map(s=>{var l,c;let r,i;if(s.kind==="count")r=t.length,s.showDelta&&(i=Math.max(0,o.length-t.length));else if(s.kind==="sum")r=t.reduce((u,p)=>u+(Number(p[s.field])||0),0);else if(s.kind==="pct")r=t.length?Math.round(t.filter(s.test).length/t.length*100)+"%":"—";else if(s.kind==="distinct"){const u=s.via?(c=(l=a==null?void 0:a.facets)==null?void 0:l[s.field])==null?void 0:c[s.via]:n[s.field],p=new Set;t.forEach(h=>{const _=u?u(h):h[s.field];_&&p.add(_)}),r=p.size}return{id:s.id,label:s.label,kind:s.kind,value:r,delta:i}})}function Bv(e){const t=ue(null),o=ue(!1),n=ue(!1),a=ue(!1),s=ue("map"),r=[{k:"map",get l(){return xe("dashboard.map")||"Map"}},{k:"facets",get l(){return xe("dashboard.filters")||"Filters"}},{k:"table",get l(){return xe("dashboard.table")||"Table"}},{k:"charts",get l(){return xe("dashboard.charts")||"Charts"}}];let i=null;const l=ue(!1),c=ue(!1),u=ue(!1);kt(()=>{t.value&&(i=new ResizeObserver(()=>{const S=t.value.clientWidth;o.value=S<760,n.value=S>=760&&S<1180,a.value=S>=760&&S<980}),i.observe(t.value)),e&&e.on("toggleTable",S=>{l.value=!!S}),e&&e.on("toggleFacet",S=>{c.value=!!S}),e&&e.on("toggleRail",S=>{u.value=!!S})}),Ft(()=>i&&i.disconnect());function p(S){const C=S.target.closest("[data-view]");C&&(s.value=C.getAttribute("data-view"))}const h=re(()=>!o.value||s.value==="facets"),_=re(()=>!o.value||s.value==="map"),x=re(()=>!o.value||s.value==="table"),k=re(()=>!o.value||s.value==="charts");return{shell:t,isNarrow:o,slimRail:n,slimFacet:a,mobileView:s,SEG:r,tableCollapsed:l,facetCollapsed:c,railCollapsed:u,setView:p,showFacets:h,showMap:_,showTable:x,showCharts:k}}const Vv=e=>String(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40),qv=e=>String(e).replace(/[%;:*+]/g,t=>"%"+t.charCodeAt(0).toString(16).toUpperCase()).replace(/ /g,"+"),Hv=e=>{try{return decodeURIComponent(String(e).replace(/\+/g,"%20"))}catch{return String(e).replace(/\+/g," ")}};function Wv(e,t){function o(){try{const n=Object.entries(e.filterSet).map(([a,s])=>{const r=typeof t=="function"?t(a,s):null,i=r&&String(r)!==String(s)?Vv(r):"";return a+":"+qv(s)+(i?"*"+i:"")});typeof location<"u"&&history.replaceState(null,"","#f="+n.join(";"))}catch{}}ct(()=>({...e.filterSet}),o,{deep:!0}),kt(()=>{try{const n=typeof location<"u"&&/[#&]f=([^&]+)/.exec(location.hash);if(!n)return;const a=n[1];if(a.startsWith("{")||a.startsWith("%7B")||a.startsWith("%7b")){const s=JSON.parse(decodeURIComponent(a));Object.entries(s).forEach(([r,i])=>e.setFilter(r,i));return}for(const s of a.split(";")){const r=s.indexOf(":");if(r<1)continue;const i=s.slice(0,r),l=Hv(s.slice(r+1).split("*")[0]);i&&l&&e.setFilter(i,l)}}catch{}})}function Kv(e){var k;const t=Sv();t.configureHierarchy(e);const o=Lv(e.data),n=cd(e.facets,S=>S.get),a=ca(t,la(e)),s=re(()=>{var d;const S=o.rows.value||[],C=Object.keys(t.filterSet),m=!!(((d=t.searchTerm)==null?void 0:d.value)||"").trim();if(!C.length&&!m)return S;const g=C.length?S.filter($=>C.every(L=>{const v=n[L];return v?v($)===t.filterSet[L]:!0})):S;return ua(g,a)}),r=re(()=>zv(e.kpis,s.value,o.rows.value||[],n,e)),i=Bv(t),l=o.sourceId||jt.activeSource,c=((k=jt.sources)==null?void 0:k[l])||{},u=new ld,p=re(()=>{const S=o.rows.value||[];return S.length?(u.rawData=S.slice(),u.normalizeData(c),u.normalizedData):[]}),h={sources:{[l]:{get features(){return p.value}}}},{labelFor:_}=ia(e,h,l);Wv(t,_);const x=Jr({rowStore:o.rowStore,rows:o.rows,selectionSet:t.selectionSet,filterSet:t.filterSet,FACET_ACC:n,dataOpts:e.data,labelFor:_});return bt("selectionBus",t),bt("dashboardData",o),bt("dashboardConfig",e),bt("dataStore",h),bt("searchSourceId",l),kt(()=>o.load()),{bus:t,data:o,FACET_ACC:n,filteredRows:s,kpis:r,exporter:x,responsive:i}}const Yv={facetW:296,railW:296,tableH:"34%",mapH:340,shellH:562},Xv={facetW:[160,420],railW:[200,520],tableH:[12,70],mapH:[220,1400],shellH:[400,2600]},dd=32,pd=120,At=(e,[t,o])=>Math.min(o,Math.max(t,e)),hs=(e,t)=>{const o=parseFloat(String(e));return Number.isFinite(o)?o:t};function Zv(e={}){const{shellRef:t,bus:o=null,isNarrow:n=!1,pageScroll:a=!1,storageKey:s="rd-dashboard-layout-v6"}=e,r={...Yv,...e.defaults||{}},i={...Xv,...e.clamps||{}},l=ue(r.facetW),c=ue(r.railW),u=ue(r.tableH),p=ue(r.mapH),h=ue(r.shellH),_=ue(!1),x=ue(!1),k=ue(!1),S=()=>!!de(n),C=()=>!!de(a);function m(){const R=t&&t.value;if(!R)return h.value;const V=parseFloat(getComputedStyle(R).getPropertyValue("--rd-shell-h"));if(Number.isFinite(V)&&V>0)return Math.round(V);const G=R.querySelector('[data-region="map"]'),oe=R.querySelector('[data-region="table"]');if(!G||!oe)return h.value;const he=G.getBoundingClientRect().height+oe.getBoundingClientRect().height;return he>0?Math.round(he):h.value}function g(){const R=t&&t.value;R&&(_.value&&(R.style.setProperty("--facet-w",l.value+"px"),R.style.setProperty("--rail-w",c.value+"px"),R.style.setProperty("--table-h",u.value)),x.value&&R.style.setProperty("--rd-map-h",p.value+"px"),k.value&&R.style.setProperty("--rd-shell-h",h.value+"px"))}function d(){const R=t&&t.value;R&&(R.style.removeProperty("--facet-w"),R.style.removeProperty("--rail-w"),R.style.removeProperty("--table-h"),R.style.removeProperty("--rd-map-h"),R.style.removeProperty("--rd-shell-h"))}function $(){try{localStorage.setItem(s,JSON.stringify({facetW:l.value,railW:c.value,tableH:u.value,mapH:p.value,shellH:h.value}))}catch{}}function L(){try{const R=localStorage.getItem(s);if(!R)return!1;const V=JSON.parse(R);return Number.isFinite(V.facetW)&&(l.value=At(V.facetW,i.facetW)),Number.isFinite(V.railW)&&(c.value=At(V.railW,i.railW)),V.tableH!=null&&(u.value=At(hs(V.tableH,hs(r.tableH,34)),i.tableH)+"%"),_.value=!0,Number.isFinite(V.shellH)&&(h.value=At(V.shellH,i.shellH),k.value=!0),Number.isFinite(V.mapH)&&(p.value=At(V.mapH,i.mapH),x.value=!0),!0}catch{return!1}}function v(){try{localStorage.removeItem(s)}catch{}l.value=r.facetW,c.value=r.railW,u.value=r.tableH,p.value=r.mapH,h.value=r.shellH,_.value=!1,x.value=!1,k.value=!1,d()}const w=ue(!1);function P(){if(w.value)return;w.value=!0;const R=t&&t.value;if(R&&R.setAttribute("data-rd-resizing","1"),o&&typeof o.emit=="function")try{o.emit("layoutResizing",!0)}catch{}}function H(){if(!w.value)return;w.value=!1;const R=t&&t.value;if(R&&R.removeAttribute("data-rd-resizing"),o&&typeof o.emit=="function")try{o.emit("layoutResizing",!1)}catch{}}function M(R,V){if(S())return;const G=t&&t.value;if(!G)return;V.preventDefault();const oe=G.getBoundingClientRect(),he=V.clientX,ke=l.value,Ae=c.value,Le=V.currentTarget,ve=R==="table"&&C(),Q=R==="shell"&&C();let pe=0,_e=i.mapH[1];if(ve){const ne=G.querySelector('[data-region="map"]'),f=ne?ne.getBoundingClientRect():null;pe=f?f.top:V.clientY-p.value,_e=Math.max(i.mapH[0],h.value-(dd+pd))}const y=V.clientY,E=Q?m():h.value;try{Le&&Le.setPointerCapture&&Le.setPointerCapture(V.pointerId)}catch{}P();let A=0,z=null;function Z(){if(A=0,!z)return;const ne=z;if(z=null,R==="facet")l.value=Math.round(At(ke+(ne.clientX-he),i.facetW)),_.value=!0;else if(R==="rail")c.value=Math.round(At(Ae-(ne.clientX-he),i.railW)),_.value=!0;else if(ve)p.value=Math.round(At(ne.clientY-pe,[i.mapH[0],_e])),x.value=!0;else if(R==="table"){const f=(oe.bottom-ne.clientY)/oe.height*100;u.value=Math.round(At(f,i.tableH))+"%",_.value=!0}else Q&&(h.value=Math.round(At(E+(ne.clientY-y),i.shellH)),k.value=!0);g()}function J(ne){z={clientX:ne.clientX,clientY:ne.clientY},A||(A=requestAnimationFrame(Z))}function ie(ne){window.removeEventListener("pointermove",J),window.removeEventListener("pointerup",ie),window.removeEventListener("pointercancel",ie),A&&(cancelAnimationFrame(A),A=0),Z();try{Le&&Le.releasePointerCapture&&Le.releasePointerCapture(ne.pointerId)}catch{}$(),H()}window.addEventListener("pointermove",J),window.addEventListener("pointerup",ie),window.addEventListener("pointercancel",ie)}const j=R=>M("facet",R),ae=R=>M("rail",R),I=R=>M("table",R),q=R=>M("shell",R),B={facet:16,rail:16,table:24,mapH:24,shellH:24};function O(R,V,G){if(!S()){if(R==="facet")l.value=G?V<0?i.facetW[0]:i.facetW[1]:Math.round(At(l.value+V*B.facet,i.facetW)),_.value=!0;else if(R==="rail")c.value=G?V<0?i.railW[1]:i.railW[0]:Math.round(At(c.value-V*B.rail,i.railW)),_.value=!0;else if(R==="table"&&C()){const oe=Math.max(i.mapH[0],h.value-(dd+pd));p.value=G?V<0?i.mapH[0]:oe:Math.round(At(p.value+V*B.mapH,[i.mapH[0],oe])),x.value=!0}else if(R==="table"){const oe=G?V<0?i.tableH[0]:i.tableH[1]:At(hs(u.value,hs(r.tableH,34))-V*B.table/4,i.tableH);u.value=Math.round(oe)+"%",_.value=!0}else R==="shell"&&C()&&(h.value=G?V<0?i.shellH[0]:i.shellH[1]:Math.round(At(h.value+V*B.shellH,i.shellH)),k.value=!0);g(),$()}}function te(R,V){const G=V.key;let oe=0;if(R==="table"||R==="shell"?G==="ArrowUp"?oe=-1:G==="ArrowDown"&&(oe=1):G==="ArrowLeft"?oe=-1:G==="ArrowRight"&&(oe=1),oe){V.preventDefault(),O(R,oe);return}(G==="Home"||G==="End")&&(V.preventDefault(),O(R,G==="Home"?-1:1,!0))}let U=null;return kt(()=>{L()&&g(),o&&typeof o.on=="function"&&(U=o.on("resetLayout",v))}),Ft(()=>{try{U&&U()}catch{}try{H()}catch{}}),{facetW:l,railW:c,tableH:u,mapH:p,shellH:h,customized:_,resizing:w,startFacetResize:j,startRailResize:ae,startTableResize:I,startShellResize:q,startResize:M,reset:v,applyVars:g,stepResize:O,onResizeKeydown:te}}const Jv=".search-box{position:relative;display:flex;align-items:center;margin:0 auto;width:100%;color:var(--dx-muted, #6d766e)}.search-box .search-icon{position:absolute;left:12px;pointer-events:none}.search-box input{width:100%;padding:10px 12px 10px 38px;font-size:.95rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:10px;outline:none;box-sizing:border-box}.search-box input:focus{border-color:var(--dx-accent, #92b195);box-shadow:0 0 0 2px var(--dx-accent-weak, rgba(146, 177, 149, .18))}",Qv=["value","placeholder","aria-label"],gd=cs({__name:"SearchBar",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Search…"},ariaLabel:{type:String,default:"Search"},maxWidth:{type:String,default:""}},emits:["update:modelValue","search"],setup(e,{emit:t}){const o=e,n=t,a=re(()=>o.maxWidth?{maxWidth:o.maxWidth}:{});function s(r){const i=r.target.value??"";n("update:modelValue",i),n("search",{value:i})}return(r,i)=>(ee(),se("div",{class:"search-box",style:dt(a.value)},[i[0]||(i[0]=N("svg",{class:"search-icon",width:"18",height:"18",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[N("circle",{cx:"11",cy:"11",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),N("line",{x1:"16.5",y1:"16.5",x2:"21",y2:"21",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),N("input",{type:"search",value:e.modelValue,placeholder:e.placeholder,"aria-label":e.ariaLabel,onInput:s},null,40,Qv)],4))}},[["styles",[Jv]]]),e0=on&&on.tagName.toUpperCase()==="SCRIPT"&&on.src||new URL("research-dashboard.js",document.baseURI).href,jo=e=>String(e||"").trim().replace(/\/+$/,"");function fd(){try{const t=String(e0||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function t0(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return jo(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return jo(o)}return jo(fd()||"")}function o0(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=jo(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=jo((e==null?void 0:e.treeBase)||"")||jo(fd()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return jo(new URL(o+"/assets",n).href)}catch{return jo(o+"/assets")}return"./assets"}function n0({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return a?window.location.origin+r:r;const i=t0(n),l=r.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const a0=["title","aria-label","disabled"],ei={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Dt(`
+`&&i++,a||r.length>0){if(r.push(a.trim()),a="",l)n.push(...r),l=!1;else if(r.length>1){const p={};n.forEach((h,_)=>{p[h]=r[_]||""}),o.push(p)}r=[]}}else a+=c}if((a||r.length>0)&&(r.push(a.trim()),!l&&r.length>1)){const i={};n.forEach((c,u)=>{i[c]=r[u]||""}),o.push(i)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:s}=this.parseCSV(n);return this.rawData=s,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(r=>r.trim())),s=[];for(const[r,l]of Object.entries(t||{}))if(Array.isArray(l))for(const i of l)a.has(i)||s.push({systemField:r,sourceField:i,isComposite:!0});else l&&!a.has(l)&&s.push({systemField:r,sourceField:l,isComposite:!1});s.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,s)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var i,c;const o=Zr(),n=((i=t.endpoints)==null?void 0:i.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",s=[];a&&s.push(`fields=${a}`);const r={...t.queryParams||{}};this.locale&&(r.lang=this.locale);for(const[u,p]of Object.entries(r))s.push(`${u}=${encodeURIComponent(p)}`);const l=`${o}${n}?${s.join("&")}`;try{const u=await fetch(l);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const p=u.headers.get("content-type")||"";if(!p.includes("application/json"))throw new Error(`API returned "${p}" instead of JSON. Server at ${o} may be down or misconfigured.`);const h=await u.json();return this.rawData=Array.isArray(h)?h:h.posts||h.data||h.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[i,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(p=>this.getFieldValue(n,p));a[i]=u.join("_")}else a[i]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const s=a.engagementStatus;s!=null&&(typeof s=="object"&&"value"in s?(a.engagementStatusLabel=s.label||s.value,a.engagementStatus=s.value==="engaged"):a.engagementStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const r=a.adoptionStatus;r!=null&&(a.adoptionStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="object"&&!!(r!=null&&r.value)||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const l=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const i of l){const c=a[i];c!=null&&typeof c=="object"&&"value"in c?(a[i+"Label"]=c.label||c.value,a[i]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[i+"Label"]||(a[i+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new ip;const cp=(e,t)=>Object.fromEntries(Object.entries(e||{}).map(([o,n])=>[o,t(n,o)])),up=e=>e==null?"—":Number(e).toLocaleString("en-US");function ia(e){const t=cp(e.facets,a=>a.get),o=Object.fromEntries((e.columns||[]).map(a=>[a.key,a.get])),n=Array.isArray(e.searchKeys)?e.searchKeys:null;return n?n.map(a=>t[a]||o[a]).filter(a=>typeof a=="function"):(e.columns||[]).filter(a=>a.type!=="num"&&typeof a.get=="function").map(a=>a.get)}function ca(e,t){const o=(a,s)=>{var l;const r=(((l=e==null?void 0:e.searchTerm)==null?void 0:l.value)||"").trim();if(!r)return!0;for(const i of t){const c=i(a);if(c!=null&&s(String(c),r,{threshold:.4,minMatchCharLength:3}))return!0}return!1},n=a=>o(a,wv);return n.exact=a=>o(a,yv),n.active=()=>{var a;return!!(((a=e==null?void 0:e.searchTerm)==null?void 0:a.value)||"").trim()},n.term=()=>{var a;return(((a=e==null?void 0:e.searchTerm)==null?void 0:a.value)||"").trim()},n.accessors=t,n}function ua(e,t){if(!t.active())return e;const o=e.filter(t.exact);if(o.length)return o;const n=t.term(),a=new Set;for(const r of t.accessors)for(const l of e){const i=r(l);i!=null&&i!==""&&a.add(String(i))}const s=new Set(vv(n,[...a],{threshold:.4}));if(s.size){const r=e.filter(l=>t.accessors.some(i=>{const c=i(l);return c!=null&&s.has(String(c))}));if(r.length)return r}return e.filter(t)}function jv(e,t,o,n,a){return(e||[]).map(s=>{var i,c;let r,l;if(s.kind==="count")r=t.length,s.showDelta&&(l=Math.max(0,o.length-t.length));else if(s.kind==="sum")r=t.reduce((u,p)=>u+(Number(p[s.field])||0),0);else if(s.kind==="pct")r=t.length?Math.round(t.filter(s.test).length/t.length*100)+"%":"—";else if(s.kind==="distinct"){const u=s.via?(c=(i=a==null?void 0:a.facets)==null?void 0:i[s.field])==null?void 0:c[s.via]:n[s.field],p=new Set;t.forEach(h=>{const _=u?u(h):h[s.field];_&&p.add(_)}),r=p.size}return{id:s.id,label:s.label,kind:s.kind,value:r,delta:l}})}function Bv(e){const t=ue(null),o=ue(!1),n=ue(!1),a=ue(!1),s=ue("map"),r=[{k:"map",get l(){return we("dashboard.map")||"Map"}},{k:"facets",get l(){return we("dashboard.filters")||"Filters"}},{k:"table",get l(){return we("dashboard.table")||"Table"}},{k:"charts",get l(){return we("dashboard.charts")||"Charts"}}];let l=null;const i=ue(!1),c=ue(!1),u=ue(!1);kt(()=>{t.value&&(l=new ResizeObserver(()=>{const A=t.value.clientWidth;o.value=A<760,n.value=A>=760&&A<1180,a.value=A>=760&&A<980}),l.observe(t.value)),e&&e.on("toggleTable",A=>{i.value=!!A}),e&&e.on("toggleFacet",A=>{c.value=!!A}),e&&e.on("toggleRail",A=>{u.value=!!A})}),Ot(()=>l&&l.disconnect());function p(A){const C=A.target.closest("[data-view]");C&&(s.value=C.getAttribute("data-view"))}const h=re(()=>!o.value||s.value==="facets"),_=re(()=>!o.value||s.value==="map"),S=re(()=>!o.value||s.value==="table"),k=re(()=>!o.value||s.value==="charts");return{shell:t,isNarrow:o,slimRail:n,slimFacet:a,mobileView:s,SEG:r,tableCollapsed:i,facetCollapsed:c,railCollapsed:u,setView:p,showFacets:h,showMap:_,showTable:S,showCharts:k}}const Vv=e=>String(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40),qv=e=>String(e).replace(/[%;:*+]/g,t=>"%"+t.charCodeAt(0).toString(16).toUpperCase()).replace(/ /g,"+"),Hv=e=>{try{return decodeURIComponent(String(e).replace(/\+/g,"%20"))}catch{return String(e).replace(/\+/g," ")}};function Wv(e,t){function o(){try{const n=Object.entries(e.filterSet).map(([a,s])=>{const r=typeof t=="function"?t(a,s):null,l=r&&String(r)!==String(s)?Vv(r):"";return a+":"+qv(s)+(l?"*"+l:"")});typeof location<"u"&&history.replaceState(null,"","#f="+n.join(";"))}catch{}}ct(()=>({...e.filterSet}),o,{deep:!0}),kt(()=>{try{const n=typeof location<"u"&&/[#&]f=([^&]+)/.exec(location.hash);if(!n)return;const a=n[1];if(a.startsWith("{")||a.startsWith("%7B")||a.startsWith("%7b")){const s=JSON.parse(decodeURIComponent(a));Object.entries(s).forEach(([r,l])=>e.setFilter(r,l));return}for(const s of a.split(";")){const r=s.indexOf(":");if(r<1)continue;const l=s.slice(0,r),i=Hv(s.slice(r+1).split("*")[0]);l&&i&&e.setFilter(l,i)}}catch{}})}function Kv(e){var k;const t=Sv();t.configureHierarchy(e);const o=Av(e.data),n=cp(e.facets,A=>A.get),a=ca(t,ia(e)),s=re(()=>{var f;const A=o.rows.value||[],C=Object.keys(t.filterSet),m=!!(((f=t.searchTerm)==null?void 0:f.value)||"").trim();if(!C.length&&!m)return A;const d=C.length?A.filter($=>C.every(x=>{const y=n[x];return y?y($)===t.filterSet[x]:!0})):A;return ua(d,a)}),r=re(()=>jv(e.kpis,s.value,o.rows.value||[],n,e)),l=Bv(t),i=o.sourceId||zt.activeSource,c=((k=zt.sources)==null?void 0:k[i])||{},u=new ip,p=re(()=>{const A=o.rows.value||[];return A.length?(u.rawData=A.slice(),u.normalizeData(c),u.normalizedData):[]}),h={sources:{[i]:{get features(){return p.value}}}},{labelFor:_}=la(e,h,i);Wv(t,_);const S=Jr({rowStore:o.rowStore,rows:o.rows,selectionSet:t.selectionSet,filterSet:t.filterSet,FACET_ACC:n,dataOpts:e.data,labelFor:_});return bt("selectionBus",t),bt("dashboardData",o),bt("dashboardConfig",e),bt("dataStore",h),bt("searchSourceId",i),kt(()=>o.load()),{bus:t,data:o,FACET_ACC:n,filteredRows:s,kpis:r,exporter:S,responsive:l}}const Yv={facetW:296,railW:296,tableH:"34%",mapH:340,shellH:562},Xv={facetW:[160,420],railW:[200,520],tableH:[12,70],mapH:[220,1400],shellH:[400,2600]},pp=32,dp=120,Lt=(e,[t,o])=>Math.min(o,Math.max(t,e)),hs=(e,t)=>{const o=parseFloat(String(e));return Number.isFinite(o)?o:t};function Zv(e={}){const{shellRef:t,bus:o=null,isNarrow:n=!1,pageScroll:a=!1,storageKey:s="rd-dashboard-layout-v6"}=e,r={...Yv,...e.defaults||{}},l={...Xv,...e.clamps||{}},i=ue(r.facetW),c=ue(r.railW),u=ue(r.tableH),p=ue(r.mapH),h=ue(r.shellH),_=ue(!1),S=ue(!1),k=ue(!1),A=()=>!!pe(n),C=()=>!!pe(a);function m(){const N=t&&t.value;if(!N)return h.value;const V=parseFloat(getComputedStyle(N).getPropertyValue("--rd-shell-h"));if(Number.isFinite(V)&&V>0)return Math.round(V);const U=N.querySelector('[data-region="map"]'),oe=N.querySelector('[data-region="table"]');if(!U||!oe)return h.value;const he=U.getBoundingClientRect().height+oe.getBoundingClientRect().height;return he>0?Math.round(he):h.value}function d(){const N=t&&t.value;N&&(_.value&&(N.style.setProperty("--facet-w",i.value+"px"),N.style.setProperty("--rail-w",c.value+"px"),N.style.setProperty("--table-h",u.value)),S.value&&N.style.setProperty("--rd-map-h",p.value+"px"),k.value&&N.style.setProperty("--rd-shell-h",h.value+"px"))}function f(){const N=t&&t.value;N&&(N.style.removeProperty("--facet-w"),N.style.removeProperty("--rail-w"),N.style.removeProperty("--table-h"),N.style.removeProperty("--rd-map-h"),N.style.removeProperty("--rd-shell-h"))}function $(){try{localStorage.setItem(s,JSON.stringify({facetW:i.value,railW:c.value,tableH:u.value,mapH:p.value,shellH:h.value}))}catch{}}function x(){try{const N=localStorage.getItem(s);if(!N)return!1;const V=JSON.parse(N);return Number.isFinite(V.facetW)&&(i.value=Lt(V.facetW,l.facetW)),Number.isFinite(V.railW)&&(c.value=Lt(V.railW,l.railW)),V.tableH!=null&&(u.value=Lt(hs(V.tableH,hs(r.tableH,34)),l.tableH)+"%"),_.value=!0,Number.isFinite(V.shellH)&&(h.value=Lt(V.shellH,l.shellH),k.value=!0),Number.isFinite(V.mapH)&&(p.value=Lt(V.mapH,l.mapH),S.value=!0),!0}catch{return!1}}function y(){try{localStorage.removeItem(s)}catch{}i.value=r.facetW,c.value=r.railW,u.value=r.tableH,p.value=r.mapH,h.value=r.shellH,_.value=!1,S.value=!1,k.value=!1,f()}const w=ue(!1);function P(){if(w.value)return;w.value=!0;const N=t&&t.value;if(N&&N.setAttribute("data-rd-resizing","1"),o&&typeof o.emit=="function")try{o.emit("layoutResizing",!0)}catch{}}function q(){if(!w.value)return;w.value=!1;const N=t&&t.value;if(N&&N.removeAttribute("data-rd-resizing"),o&&typeof o.emit=="function")try{o.emit("layoutResizing",!1)}catch{}}function M(N,V){if(A())return;const U=t&&t.value;if(!U)return;V.preventDefault();const oe=U.getBoundingClientRect(),he=V.clientX,ke=i.value,Le=c.value,Ae=V.currentTarget,ye=N==="table"&&C(),Q=N==="shell"&&C();let de=0,_e=l.mapH[1];if(ye){const ne=U.querySelector('[data-region="map"]'),g=ne?ne.getBoundingClientRect():null;de=g?g.top:V.clientY-p.value,_e=Math.max(l.mapH[0],h.value-(pp+dp))}const v=V.clientY,E=Q?m():h.value;try{Ae&&Ae.setPointerCapture&&Ae.setPointerCapture(V.pointerId)}catch{}P();let L=0,j=null;function Z(){if(L=0,!j)return;const ne=j;if(j=null,N==="facet")i.value=Math.round(Lt(ke+(ne.clientX-he),l.facetW)),_.value=!0;else if(N==="rail")c.value=Math.round(Lt(Le-(ne.clientX-he),l.railW)),_.value=!0;else if(ye)p.value=Math.round(Lt(ne.clientY-de,[l.mapH[0],_e])),S.value=!0;else if(N==="table"){const g=(oe.bottom-ne.clientY)/oe.height*100;u.value=Math.round(Lt(g,l.tableH))+"%",_.value=!0}else Q&&(h.value=Math.round(Lt(E+(ne.clientY-v),l.shellH)),k.value=!0);d()}function J(ne){j={clientX:ne.clientX,clientY:ne.clientY},L||(L=requestAnimationFrame(Z))}function le(ne){window.removeEventListener("pointermove",J),window.removeEventListener("pointerup",le),window.removeEventListener("pointercancel",le),L&&(cancelAnimationFrame(L),L=0),Z();try{Ae&&Ae.releasePointerCapture&&Ae.releasePointerCapture(ne.pointerId)}catch{}$(),q()}window.addEventListener("pointermove",J),window.addEventListener("pointerup",le),window.addEventListener("pointercancel",le)}const z=N=>M("facet",N),ae=N=>M("rail",N),I=N=>M("table",N),H=N=>M("shell",N),B={facet:16,rail:16,table:24,mapH:24,shellH:24};function F(N,V,U){if(!A()){if(N==="facet")i.value=U?V<0?l.facetW[0]:l.facetW[1]:Math.round(Lt(i.value+V*B.facet,l.facetW)),_.value=!0;else if(N==="rail")c.value=U?V<0?l.railW[1]:l.railW[0]:Math.round(Lt(c.value-V*B.rail,l.railW)),_.value=!0;else if(N==="table"&&C()){const oe=Math.max(l.mapH[0],h.value-(pp+dp));p.value=U?V<0?l.mapH[0]:oe:Math.round(Lt(p.value+V*B.mapH,[l.mapH[0],oe])),S.value=!0}else if(N==="table"){const oe=U?V<0?l.tableH[0]:l.tableH[1]:Lt(hs(u.value,hs(r.tableH,34))-V*B.table/4,l.tableH);u.value=Math.round(oe)+"%",_.value=!0}else N==="shell"&&C()&&(h.value=U?V<0?l.shellH[0]:l.shellH[1]:Math.round(Lt(h.value+V*B.shellH,l.shellH)),k.value=!0);d(),$()}}function te(N,V){const U=V.key;let oe=0;if(N==="table"||N==="shell"?U==="ArrowUp"?oe=-1:U==="ArrowDown"&&(oe=1):U==="ArrowLeft"?oe=-1:U==="ArrowRight"&&(oe=1),oe){V.preventDefault(),F(N,oe);return}(U==="Home"||U==="End")&&(V.preventDefault(),F(N,U==="Home"?-1:1,!0))}let G=null;return kt(()=>{x()&&d(),o&&typeof o.on=="function"&&(G=o.on("resetLayout",y))}),Ot(()=>{try{G&&G()}catch{}try{q()}catch{}}),{facetW:i,railW:c,tableH:u,mapH:p,shellH:h,customized:_,resizing:w,startFacetResize:z,startRailResize:ae,startTableResize:I,startShellResize:H,startResize:M,reset:y,applyVars:d,stepResize:F,onResizeKeydown:te}}const Jv=".search-box{position:relative;display:flex;align-items:center;margin:0 auto;width:100%;color:var(--dx-muted, #6d766e)}.search-box .search-icon{position:absolute;left:12px;pointer-events:none}.search-box input{width:100%;padding:10px 12px 10px 38px;font-size:.95rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:10px;outline:none;box-sizing:border-box}.search-box input:focus{border-color:var(--dx-accent, #92b195);box-shadow:0 0 0 2px var(--dx-accent-weak, rgba(146, 177, 149, .18))}",Qv=["value","placeholder","aria-label"],gp=cs({__name:"SearchBar",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Search…"},ariaLabel:{type:String,default:"Search"},maxWidth:{type:String,default:""}},emits:["update:modelValue","search"],setup(e,{emit:t}){const o=e,n=t,a=re(()=>o.maxWidth?{maxWidth:o.maxWidth}:{});function s(r){const l=r.target.value??"";n("update:modelValue",l),n("search",{value:l})}return(r,l)=>(ee(),se("div",{class:"search-box",style:pt(a.value)},[l[0]||(l[0]=T("svg",{class:"search-icon",width:"18",height:"18",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[T("circle",{cx:"11",cy:"11",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),T("line",{x1:"16.5",y1:"16.5",x2:"21",y2:"21",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),T("input",{type:"search",value:e.modelValue,placeholder:e.placeholder,"aria-label":e.ariaLabel,onInput:s},null,40,Qv)],4))}},[["styles",[Jv]]]),e0=on&&on.tagName.toUpperCase()==="SCRIPT"&&on.src||new URL("research-dashboard.js",document.baseURI).href,zo=e=>String(e||"").trim().replace(/\/+$/,"");function fp(){try{const t=String(e0||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function t0(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return zo(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return zo(o)}return zo(fp()||"")}function o0(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=zo(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=zo((e==null?void 0:e.treeBase)||"")||zo(fp()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return zo(new URL(o+"/assets",n).href)}catch{return zo(o+"/assets")}return"./assets"}function n0({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return a?window.location.origin+r:r;const l=t0(n),i=r.replace(/^\.\//,"");if(l)return l+"/"+i;if(typeof document<"u")try{return new URL(i,document.baseURI).href}catch{}return i}return a?window.location.origin+window.location.pathname:""}const a0=["title","aria-label","disabled"],el={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Dt(`
.mcb{
width:var(--map-btn-size,40px);height:var(--map-btn-size,40px);
background:#fff;
@@ -101,7 +101,7 @@
.mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);}
.mcb.dark.active{background:#4e594f;color:#92b195;}
@media(max-width:767px){.mcb{width:36px;height:36px;}}
-`,"map-control-button"),(t,o)=>(ee(),se("button",{class:je(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[Vs(t.$slots,"default")],10,a0))}},s0=["aria-label"],r0={class:"mcm-header"},i0={class:"mcm-title"},l0={class:"mcm-body"},c0=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",ti="doxa-map-menu-open",u0={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Dt(`
+`,"map-control-button"),(t,o)=>(ee(),se("button",{class:ze(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[Vs(t.$slots,"default")],10,a0))}},s0=["aria-label"],r0={class:"mcm-header"},l0={class:"mcm-title"},i0={class:"mcm-body"},c0=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",tl="doxa-map-menu-open",u0={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Dt(`
.mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box;
background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45);
color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px;
@@ -117,7 +117,7 @@
.mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;}
.mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;}
.mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
-`,"map-control-menu");const o=e,n=t,a=Ne("mapToolbar",null),s=ue(null),r=ue(null),i=ue({});function l(){var P;const _=(P=a==null?void 0:a.el)==null?void 0:P.value,x=s.value;if(!_||!x){i.value={};return}const k=x.getBoundingClientRect(),S=_.getBoundingClientRect(),C=(S.left+S.right)/2>(k.left+k.right)/2,m=8,g=12,d=C?k.right-S.left+m:S.right-k.left+m,$=Math.max(200,Math.min(o.width,k.width-d-g)),L=Math.max(0,S.top-k.top);let w=x.getAttribute&&x.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-S.top-g):Math.max(120,k.height-L-g);o.matchToolbar&&(w=Math.max(120,Math.min(w,S.height))),o.maxHeight&&(w=Math.min(w,o.maxHeight)),i.value={top:`${Math.round(L)}px`,[C?"right":"left"]:`${Math.round(d)}px`,width:`${Math.round($)}px`,maxHeight:`${Math.round(w)}px`,...o.height?{height:`${Math.round(Math.min(o.height,w))}px`}:{}}}function c(_){o.open&&_.detail!==r.value&&n("close")}ct(()=>o.open,async _=>{var x;if(_){await Ho(),l();try{(x=s.value)==null||x.dispatchEvent(new CustomEvent(ti,{detail:r.value}))}catch{}}});function u(){o.open&&l()}function p(_){_.key==="Escape"&&o.open&&n("close")}function h(_){var k;if(!o.open)return;const x=_.composedPath?_.composedPath():[_.target];r.value&&x.includes(r.value)||(k=a==null?void 0:a.el)!=null&&k.value&&x.includes(a.el.value)||x.some(S=>{var C,m,g,d;return((m=(C=S==null?void 0:S.classList)==null?void 0:C.contains)==null?void 0:m.call(C,"mapboxgl-canvas"))||((d=(g=S==null?void 0:S.classList)==null?void 0:g.contains)==null?void 0:d.call(g,"maplibregl-canvas"))})&&n("close")}return kt(()=>{var _,x,k;s.value=((x=(_=a==null?void 0:a.el)==null?void 0:_.value)==null?void 0:x.closest(c0))||null,(k=s.value)==null||k.addEventListener(ti,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",p)}),Ft(()=>{var _;(_=s.value)==null||_.removeEventListener(ti,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",p)}),(_,x)=>(ee(),ao(Op,{to:s.value,disabled:!s.value},[e.open?(ee(),se("div",{key:0,ref_key:"el",ref:r,class:je(["mcm",{light:!e.isDark}]),style:dt(i.value),role:"dialog","aria-label":e.title},[N("div",r0,[N("span",i0,fe(e.title),1),N("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:x[0]||(x[0]=k=>n("close"))},[...x[1]||(x[1]=[N("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[N("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),N("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),N("div",l0,[Vs(_.$slots,"default")])],14,s0)):Ye("",!0)],8,["to","disabled"]))}},d0={class:"share-steps"},p0={class:"share-tabs"},g0={key:0,class:"share-body"},f0={class:"share-url-box"},h0={class:"share-url-text"},m0={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},$0={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},b0={key:1,class:"share-body"},_0={class:"share-size-pills"},y0=["onClick"],v0={class:"share-code-box"},k0={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},w0={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},x0={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Dt(`
+`,"map-control-menu");const o=e,n=t,a=Te("mapToolbar",null),s=ue(null),r=ue(null),l=ue({});function i(){var P;const _=(P=a==null?void 0:a.el)==null?void 0:P.value,S=s.value;if(!_||!S){l.value={};return}const k=S.getBoundingClientRect(),A=_.getBoundingClientRect(),C=(A.left+A.right)/2>(k.left+k.right)/2,m=8,d=12,f=C?k.right-A.left+m:A.right-k.left+m,$=Math.max(200,Math.min(o.width,k.width-f-d)),x=Math.max(0,A.top-k.top);let w=S.getAttribute&&S.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-A.top-d):Math.max(120,k.height-x-d);o.matchToolbar&&(w=Math.max(120,Math.min(w,A.height))),o.maxHeight&&(w=Math.min(w,o.maxHeight)),l.value={top:`${Math.round(x)}px`,[C?"right":"left"]:`${Math.round(f)}px`,width:`${Math.round($)}px`,maxHeight:`${Math.round(w)}px`,...o.height?{height:`${Math.round(Math.min(o.height,w))}px`}:{}}}function c(_){o.open&&_.detail!==r.value&&n("close")}ct(()=>o.open,async _=>{var S;if(_){await Ho(),i();try{(S=s.value)==null||S.dispatchEvent(new CustomEvent(tl,{detail:r.value}))}catch{}}});function u(){o.open&&i()}function p(_){_.key==="Escape"&&o.open&&n("close")}function h(_){var k;if(!o.open)return;const S=_.composedPath?_.composedPath():[_.target];r.value&&S.includes(r.value)||(k=a==null?void 0:a.el)!=null&&k.value&&S.includes(a.el.value)||S.some(A=>{var C,m,d,f;return((m=(C=A==null?void 0:A.classList)==null?void 0:C.contains)==null?void 0:m.call(C,"mapboxgl-canvas"))||((f=(d=A==null?void 0:A.classList)==null?void 0:d.contains)==null?void 0:f.call(d,"maplibregl-canvas"))})&&n("close")}return kt(()=>{var _,S,k;s.value=((S=(_=a==null?void 0:a.el)==null?void 0:_.value)==null?void 0:S.closest(c0))||null,(k=s.value)==null||k.addEventListener(tl,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",p)}),Ot(()=>{var _;(_=s.value)==null||_.removeEventListener(tl,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",p)}),(_,S)=>(ee(),ao(Fd,{to:s.value,disabled:!s.value},[e.open?(ee(),se("div",{key:0,ref_key:"el",ref:r,class:ze(["mcm",{light:!e.isDark}]),style:pt(l.value),role:"dialog","aria-label":e.title},[T("div",r0,[T("span",l0,ge(e.title),1),T("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:S[0]||(S[0]=k=>n("close"))},[...S[1]||(S[1]=[T("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[T("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),T("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),T("div",i0,[Vs(_.$slots,"default")])],14,s0)):Ye("",!0)],8,["to","disabled"]))}},p0={class:"share-steps"},d0={class:"share-tabs"},g0={key:0,class:"share-body"},f0={class:"share-url-box"},h0={class:"share-url-text"},m0={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},$0={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},b0={key:1,class:"share-body"},_0={class:"share-size-pills"},y0=["onClick"],v0={class:"share-code-box"},k0={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},w0={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},x0={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Dt(`
.share-wrap{position:relative;display:inline-block;border-radius:50%;}
.share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none;
background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b);
@@ -369,7 +369,7 @@
border-color:rgba(46,164,79,0.30);
color:#2ea44f;
}
-`,"share-button");const{t,tm:o,rt:n}=Uo(),a=e,s=ue(null),r=ue(!1),i=ue(null),l=ue(null),c=ue("link"),u=ue(!1),p=ue(!1),h=ue("medium"),_={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},x=Ne("profileConfig",null),k=re(()=>n0({embedPath:a.embedPath,profileConfig:de(x)||null})),S=re(()=>{const H=_[h.value].height;return''});function C(){r.value=!r.value,r.value&&(c.value="link",u.value=!1,p.value=!1)}function m(){r.value=!1}async function g(H){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(H),!0}catch{}try{const M=document.createElement("textarea");M.value=H,M.setAttribute("readonly",""),M.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(M),M.select();const j=document.execCommand("copy");return document.body.removeChild(M),j}catch{return!1}}async function d(){await g(k.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function $(){await g(S.value)&&(p.value=!0,setTimeout(()=>{p.value=!1},2e3))}const L=Ne("mapToolbar",null),v=ue(null);bt("mapToolbar",L||{el:v});const w=!L;function P(H){if(s.value=H||null,!w||!H){H||(v.value=null);return}const M=H.offsetParent||H.parentElement;M&&!M.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&M.setAttribute("data-map-area","share-fallback"),v.value=H}return(H,M)=>(ee(),se("div",{ref:P,class:"share-wrap","data-share-root":""},[ze(ei,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:r.value,title:de(t)("buttons.share"),onClick:C},{default:un(()=>[...M[2]||(M[2]=[N("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[N("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),N("polyline",{points:"16 6 12 2 8 6"}),N("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),ze(u0,{open:r.value,title:de(t)("buttons.share"),"is-dark":e.isDark,onClose:m},{default:un(()=>[N("div",{ref_key:"popoverEl",ref:i,class:je(["share-pop",{light:!e.isDark}])},[N("ul",d0,[(ee(!0),se(Oe,null,st(de(o)("buttons.shareSteps"),(j,ae)=>(ee(),se("li",{key:ae},fe(de(n)(j)),1))),128))]),N("div",p0,[N("button",{class:je(["share-tab",{active:c.value==="link"}]),onClick:M[0]||(M[0]=j=>c.value="link")},"Embed link",2),N("button",{class:je(["share-tab",{active:c.value==="embed"}]),onClick:M[1]||(M[1]=j=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(ee(),se("div",g0,[N("div",f0,[N("div",h0,fe(k.value),1)]),N("button",{class:je(["share-primary-btn",{copied:u.value}]),onClick:d},[u.value?(ee(),se("svg",$0,[...M[4]||(M[4]=[N("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(ee(),se("svg",m0,[...M[3]||(M[3]=[N("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),N("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),it(" "+fe(u.value?"Copied!":"Copy Link"),1)],2)])):Ye("",!0),c.value==="embed"?(ee(),se("div",b0,[M[7]||(M[7]=N("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),N("div",_0,[(ee(),se(Oe,null,st(_,(j,ae)=>N("button",{key:ae,class:je(["share-size-pill",{active:h.value===ae}]),onClick:I=>h.value=ae},fe(j.label),11,y0)),64))]),N("div",v0,fe(S.value),1),N("button",{class:je(["share-secondary-btn",{copied:p.value}]),onClick:$},[p.value?(ee(),se("svg",w0,[...M[6]||(M[6]=[N("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(ee(),se("svg",k0,[...M[5]||(M[5]=[N("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),N("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),it(" "+fe(p.value?"Copied!":"Copy Code"),1)],2)])):Ye("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Po="#c4c8c0",nt=e=>e==null?"":typeof e=="object"?e.label??e.value??"":e,S0=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_");function ms(e,t){const o=gs(e);return o&&o.propertyKey===t?o:null}function L0(e,t){const o=String(e||"").trim();if(!o)return"U";const n=Object.keys(t),a=n.find(i=>t[i]===o);if(a)return a;let s=null,r=0;for(const i of n){const l=t[i];l&&o.toLowerCase().startsWith(l.toLowerCase())&&l.length>r&&(s=i,r=l.length)}return s||(/^[A-Z]{1,3}$/.test(o)?jr(o):"U")}function oi(e,t,o){const n=new Map;for(const s of e){const r=t(s);r==null||r===""||n.set(r,(n.get(r)||0)+1)}let a=[...n.entries()].map(([s,r])=>({key:s,value:r})).sort((s,r)=>r.value-s.value);if(o&&a.length>o){const s=a.slice(0,o),r=a.slice(o).reduce((i,l)=>i+l.value,0);r>0&&s.push({key:"Other",value:r,other:!0}),a=s}return a}function A0(e,t,o){const n=new Map;for(const s of e||[]){const r=t&&t(s),i=o&&o(s);if(!r||!i)continue;n.has(r)||n.set(r,new Map);const l=n.get(r);l.set(i,(l.get(i)||0)+1)}const a=new Map;for(const[s,r]of n){let i=null,l=0,c=!1;for(const[u,p]of r)p>l?(i=u,l=p,c=!1):p===l&&(c=!0);a.set(s,i&&!c?md("wagf_region",i):Po)}return a}function P0(e,t=132,o=.58,n="",a=null){const s=t/2,r=t/2,i=t/2-3,l=(t/2-3)*o,c=e.reduce((p,h)=>p+h.value,0)||1;let u=-Math.PI/2;return e.map((p,h)=>{const _=u,x=u+p.value/c*Math.PI*2;u=x;const k=x-_>Math.PI?1:0,S=(m,g)=>`${(s+g*Math.cos(m)).toFixed(2)},${(r+g*Math.sin(m)).toFixed(2)}`,C=`M${S(_,i)} A${i},${i} 0 ${k} 1 ${S(x,i)} L${S(x,l)} A${l},${l} 0 ${k} 0 ${S(_,l)} Z`;return{...p,path:C,pct:Math.round(p.value/c*100),color:hd(n,p.key,a)}})}function E0(e,t="",o=null){const n=e.reduce((a,s)=>Math.max(a,s.value),0)||1;return e.map(a=>({...a,frac:a.value/n,color:hd(t,a.key,o)}))}function hd(e,t,o){if(o&&t!=="Other"){const n=o.get?o.get(t):o[t];if(n)return n}return md(e,t)}function md(e,t){if(t==null||t===""||t==="Other")return Po;if(e==="religion"||e==="religion_family"){const o=ms(Ao.RELIGION,"religion"),n=o&&o.palette||Ct,a=o&&o.families||en;return n[L0(t,a)]||Po}if(e==="wagf_region"){const o=ms(Ao.DOXA_REGION,"doxaRegion");if(!o)return Po;const n=o.slugColors&&o.slugColors[S0(t)];return n||o.aliases&&o.aliases[t]||Po}if(e==="affinity_bloc"){const o=ms(Ao.AFFINITY_BLOCK,"affinityBlock");return o&&o.palette&&o.palette[t]||Po}if(e==="language_family"){const o=ms(Ao.LANGUAGE_FAMILY,"languageFamily");return o&&o.palette&&o.palette[t]||Po}return Po}const C0={class:"rd-left"},T0={class:"rd-brand"},N0={class:"rd-ttl"},R0={class:"rd-filter-search","data-filter-search":""},M0={key:0,class:"rd-search","data-search":""},O0=["data-slug"],F0={class:"nm"},I0={class:"sub"},D0={key:1,class:"rd-empty"},U0=["title","onKeydown"],G0="research-dashboard/research-dashboard/index.html",j0={__name:"DashboardTopBar",setup(e){const t=(d,$)=>xe("dashboard."+d)||$,o=Ne("dashboardData",null),n=Ne("selectionBus",null),a=Ne("dashboardConfig",{}),s=re(()=>a.showTopBarSearch===!0);function r(){n&&n.emit("resetLayout")}const i=re(()=>{var d;return((d=n==null?void 0:n.searchTerm)==null?void 0:d.value)||""}),l=re(()=>{var d;return((d=a.researchFilters)==null?void 0:d.searchPlaceholder)||"Search people groups, place, language, religion…"});function c(d){n==null||n.setSearch((d==null?void 0:d.value)??"")}const u=ue(""),p=ue(!1),h=ue(0),_=re(()=>{var v;const d=u.value.trim().toLowerCase();if(d.length<2)return[];const $=((v=o==null?void 0:o.rows)==null?void 0:v.value)||[],L=[];for(const w of $)if((w.name||"").toLowerCase().includes(d)&&(L.push(w),L.length>=8))break;return L});function x(d){!d||!n||(d.slug&&(n.toggleSelect(d.slug),n.emit("focusRow",{slug:d.slug,name:d.name})),u.value="",p.value=!1,h.value=0)}function k(){p.value=!0,h.value=0}function S(d){if(!_.value.length){d.key==="Escape"&&(u.value="",p.value=!1);return}d.key==="ArrowDown"?(d.preventDefault(),h.value=(h.value+1)%_.value.length):d.key==="ArrowUp"?(d.preventDefault(),h.value=(h.value-1+_.value.length)%_.value.length):d.key==="Enter"?(d.preventDefault(),x(_.value[h.value])):d.key==="Escape"&&(u.value="",p.value=!1,h.value=0)}function C(d){var w;const $=d.target&&d.target.closest&&d.target.closest("[data-slug]");if(!$)return;const L=$.getAttribute("data-slug"),v=(((w=o==null?void 0:o.rows)==null?void 0:w.value)||[]).find(P=>P.slug===L);v&&x(v)}const m=ue(null);function g(d){m.value&&!m.value.contains(d.target)&&(p.value=!1)}return kt(()=>{var d,$;try{($=(d=m.value)==null?void 0:d.getRootNode())==null||$.addEventListener("click",g)}catch{}}),Ft(()=>{var d,$;try{($=(d=m.value)==null?void 0:d.getRootNode())==null||$.removeEventListener("click",g)}catch{}}),Dt(`
+`,"share-button");const{t,tm:o,rt:n}=Go(),a=e,s=ue(null),r=ue(!1),l=ue(null),i=ue(null),c=ue("link"),u=ue(!1),p=ue(!1),h=ue("medium"),_={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},S=Te("profileConfig",null),k=re(()=>n0({embedPath:a.embedPath,profileConfig:pe(S)||null})),A=re(()=>{const q=_[h.value].height;return''});function C(){r.value=!r.value,r.value&&(c.value="link",u.value=!1,p.value=!1)}function m(){r.value=!1}async function d(q){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(q),!0}catch{}try{const M=document.createElement("textarea");M.value=q,M.setAttribute("readonly",""),M.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(M),M.select();const z=document.execCommand("copy");return document.body.removeChild(M),z}catch{return!1}}async function f(){await d(k.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function $(){await d(A.value)&&(p.value=!0,setTimeout(()=>{p.value=!1},2e3))}const x=Te("mapToolbar",null),y=ue(null);bt("mapToolbar",x||{el:y});const w=!x;function P(q){if(s.value=q||null,!w||!q){q||(y.value=null);return}const M=q.offsetParent||q.parentElement;M&&!M.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&M.setAttribute("data-map-area","share-fallback"),y.value=q}return(q,M)=>(ee(),se("div",{ref:P,class:"share-wrap","data-share-root":""},[je(el,{ref_key:"btnEl",ref:i,"is-dark":e.isDark,active:r.value,title:pe(t)("buttons.share"),onClick:C},{default:un(()=>[...M[2]||(M[2]=[T("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[T("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),T("polyline",{points:"16 6 12 2 8 6"}),T("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),je(u0,{open:r.value,title:pe(t)("buttons.share"),"is-dark":e.isDark,onClose:m},{default:un(()=>[T("div",{ref_key:"popoverEl",ref:l,class:ze(["share-pop",{light:!e.isDark}])},[T("ul",p0,[(ee(!0),se(Fe,null,st(pe(o)("buttons.shareSteps"),(z,ae)=>(ee(),se("li",{key:ae},ge(pe(n)(z)),1))),128))]),T("div",d0,[T("button",{class:ze(["share-tab",{active:c.value==="link"}]),onClick:M[0]||(M[0]=z=>c.value="link")},"Embed link",2),T("button",{class:ze(["share-tab",{active:c.value==="embed"}]),onClick:M[1]||(M[1]=z=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(ee(),se("div",g0,[T("div",f0,[T("div",h0,ge(k.value),1)]),T("button",{class:ze(["share-primary-btn",{copied:u.value}]),onClick:f},[u.value?(ee(),se("svg",$0,[...M[4]||(M[4]=[T("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(ee(),se("svg",m0,[...M[3]||(M[3]=[T("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),T("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),lt(" "+ge(u.value?"Copied!":"Copy Link"),1)],2)])):Ye("",!0),c.value==="embed"?(ee(),se("div",b0,[M[7]||(M[7]=T("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),T("div",_0,[(ee(),se(Fe,null,st(_,(z,ae)=>T("button",{key:ae,class:ze(["share-size-pill",{active:h.value===ae}]),onClick:I=>h.value=ae},ge(z.label),11,y0)),64))]),T("div",v0,ge(A.value),1),T("button",{class:ze(["share-secondary-btn",{copied:p.value}]),onClick:$},[p.value?(ee(),se("svg",w0,[...M[6]||(M[6]=[T("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(ee(),se("svg",k0,[...M[5]||(M[5]=[T("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),T("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),lt(" "+ge(p.value?"Copied!":"Copy Code"),1)],2)])):Ye("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Po="#c4c8c0",nt=e=>e==null?"":typeof e=="object"?e.label??e.value??"":e,S0=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_");function ms(e,t){const o=gs(e);return o&&o.propertyKey===t?o:null}function A0(e,t){const o=String(e||"").trim();if(!o)return"U";const n=Object.keys(t),a=n.find(l=>t[l]===o);if(a)return a;let s=null,r=0;for(const l of n){const i=t[l];i&&o.toLowerCase().startsWith(i.toLowerCase())&&i.length>r&&(s=l,r=i.length)}return s||(/^[A-Z]{1,3}$/.test(o)?zr(o):"U")}function ol(e,t,o){const n=new Map;for(const s of e){const r=t(s);r==null||r===""||n.set(r,(n.get(r)||0)+1)}let a=[...n.entries()].map(([s,r])=>({key:s,value:r})).sort((s,r)=>r.value-s.value);if(o&&a.length>o){const s=a.slice(0,o),r=a.slice(o).reduce((l,i)=>l+i.value,0);r>0&&s.push({key:"Other",value:r,other:!0}),a=s}return a}function L0(e,t,o){const n=new Map;for(const s of e||[]){const r=t&&t(s),l=o&&o(s);if(!r||!l)continue;n.has(r)||n.set(r,new Map);const i=n.get(r);i.set(l,(i.get(l)||0)+1)}const a=new Map;for(const[s,r]of n){let l=null,i=0,c=!1;for(const[u,p]of r)p>i?(l=u,i=p,c=!1):p===i&&(c=!0);a.set(s,l&&!c?mp("wagf_region",l):Po)}return a}function P0(e,t=132,o=.58,n="",a=null){const s=t/2,r=t/2,l=t/2-3,i=(t/2-3)*o,c=e.reduce((p,h)=>p+h.value,0)||1;let u=-Math.PI/2;return e.map((p,h)=>{const _=u,S=u+p.value/c*Math.PI*2;u=S;const k=S-_>Math.PI?1:0,A=(m,d)=>`${(s+d*Math.cos(m)).toFixed(2)},${(r+d*Math.sin(m)).toFixed(2)}`,C=`M${A(_,l)} A${l},${l} 0 ${k} 1 ${A(S,l)} L${A(S,i)} A${i},${i} 0 ${k} 0 ${A(_,i)} Z`;return{...p,path:C,pct:Math.round(p.value/c*100),color:hp(n,p.key,a)}})}function E0(e,t="",o=null){const n=e.reduce((a,s)=>Math.max(a,s.value),0)||1;return e.map(a=>({...a,frac:a.value/n,color:hp(t,a.key,o)}))}function hp(e,t,o){if(o&&t!=="Other"){const n=o.get?o.get(t):o[t];if(n)return n}return mp(e,t)}function mp(e,t){if(t==null||t===""||t==="Other")return Po;if(e==="religion"||e==="religion_family"){const o=ms(Lo.RELIGION,"religion"),n=o&&o.palette||Ct,a=o&&o.families||en;return n[A0(t,a)]||Po}if(e==="wagf_region"){const o=ms(Lo.DOXA_REGION,"doxaRegion");if(!o)return Po;const n=o.slugColors&&o.slugColors[S0(t)];return n||o.aliases&&o.aliases[t]||Po}if(e==="affinity_bloc"){const o=ms(Lo.AFFINITY_BLOCK,"affinityBlock");return o&&o.palette&&o.palette[t]||Po}if(e==="language_family"){const o=ms(Lo.LANGUAGE_FAMILY,"languageFamily");return o&&o.palette&&o.palette[t]||Po}return Po}const C0={class:"rd-left"},R0={class:"rd-brand"},T0={class:"rd-ttl"},N0={class:"rd-filter-search","data-filter-search":""},M0={key:0,class:"rd-search","data-search":""},F0=["data-slug"],O0={class:"nm"},I0={class:"sub"},D0={key:1,class:"rd-empty"},G0=["title","onKeydown"],U0="research-dashboard/research-dashboard/index.html",z0={__name:"DashboardTopBar",setup(e){const t=(f,$)=>we("dashboard."+f)||$,o=Te("dashboardData",null),n=Te("selectionBus",null),a=Te("dashboardConfig",{}),s=re(()=>a.showTopBarSearch===!0);function r(){n&&n.emit("resetLayout")}const l=re(()=>{var f;return((f=n==null?void 0:n.searchTerm)==null?void 0:f.value)||""}),i=re(()=>{var f;return((f=a.researchFilters)==null?void 0:f.searchPlaceholder)||"Search people groups, place, language, religion…"});function c(f){n==null||n.setSearch((f==null?void 0:f.value)??"")}const u=ue(""),p=ue(!1),h=ue(0),_=re(()=>{var y;const f=u.value.trim().toLowerCase();if(f.length<2)return[];const $=((y=o==null?void 0:o.rows)==null?void 0:y.value)||[],x=[];for(const w of $)if((w.name||"").toLowerCase().includes(f)&&(x.push(w),x.length>=8))break;return x});function S(f){!f||!n||(f.slug&&(n.toggleSelect(f.slug),n.emit("focusRow",{slug:f.slug,name:f.name})),u.value="",p.value=!1,h.value=0)}function k(){p.value=!0,h.value=0}function A(f){if(!_.value.length){f.key==="Escape"&&(u.value="",p.value=!1);return}f.key==="ArrowDown"?(f.preventDefault(),h.value=(h.value+1)%_.value.length):f.key==="ArrowUp"?(f.preventDefault(),h.value=(h.value-1+_.value.length)%_.value.length):f.key==="Enter"?(f.preventDefault(),S(_.value[h.value])):f.key==="Escape"&&(u.value="",p.value=!1,h.value=0)}function C(f){var w;const $=f.target&&f.target.closest&&f.target.closest("[data-slug]");if(!$)return;const x=$.getAttribute("data-slug"),y=(((w=o==null?void 0:o.rows)==null?void 0:w.value)||[]).find(P=>P.slug===x);y&&S(y)}const m=ue(null);function d(f){m.value&&!m.value.contains(f.target)&&(p.value=!1)}return kt(()=>{var f,$;try{($=(f=m.value)==null?void 0:f.getRootNode())==null||$.addEventListener("click",d)}catch{}}),Ot(()=>{var f,$;try{($=(f=m.value)==null?void 0:f.getRootNode())==null||$.removeEventListener("click",d)}catch{}}),Dt(`
.rd-topbar{ position:relative; display:flex; align-items:center; gap:12px; height:100%; padding:0 var(--rd-edge,14px);
--rd-search-w:min(360px,34%);
background:var(--rd-header,#4e594f); color:var(--rd-header-ink,#f3f3f1); border-bottom:1px solid var(--rd-header-line,#3c453d);
@@ -411,7 +411,7 @@
background:#ffffff1f; border:1px solid #ffffff3d; border-radius:var(--r-md,6px); padding:5px 11px; }
.rd-topbar .rd-align:hover{ background:#ffffff33; border-color:var(--rd-accent,#e67e22); color:#fff; }
.rd-shell.rd-narrow .rd-topbar .rd-align{ display:none; }
-`,"rd-topbar"),(d,$)=>(ee(),se("header",{ref_key:"rootEl",ref:m,class:"rd-topbar","data-region":"topbar"},[N("div",C0,[N("span",T0,[N("span",N0,[it(fe(de(a).title||"Research Dashboard"),1),$[1]||($[1]=N("span",{class:"dot"},".",-1))])])]),N("div",R0,[ze(gd,{"model-value":i.value,placeholder:l.value,"aria-label":l.value,"max-width":"360px",onSearch:c},null,8,["model-value","placeholder","aria-label"])]),$[3]||($[3]=N("span",{class:"rd-spacer"},null,-1)),s.value?(ee(),se("div",M0,[$[2]||($[2]=N("span",{class:"ic"},"⌕",-1)),Ut(N("input",{type:"text","onUpdate:modelValue":$[0]||($[0]=L=>u.value=L),placeholder:"Search people groups…","data-search-input":"","aria-label":"Search people groups",onInput:k,onFocus:k,onKeydown:S},null,544),[[rf,u.value]]),p.value&&u.value.trim().length>=2?(ee(),se("div",{key:0,class:"rd-results","data-search-results":"",onClick:C},[_.value.length?(ee(!0),se(Oe,{key:0},st(_.value,(L,v)=>(ee(),se("div",{key:L.slug,class:je(["rd-res",{on:v===h.value}]),"data-slug":L.slug},[N("span",F0,fe(L.name),1),N("span",I0,fe(de(nt)(L.country_code))+" · "+fe(de(nt)(L.religion)),1)],10,O0))),128)):(ee(),se("div",D0,"No people groups match “"+fe(u.value.trim())+"”.",1))])):Ye("",!0)])):Ye("",!0),N("span",{class:"rd-align",role:"button",tabindex:"0","data-align-btn":"",title:t("align_dashboard_tip","Reset the dashboard layout to its default alignment"),onClick:r,onKeydown:[Za(hn(r,["prevent"]),["enter"]),Za(hn(r,["prevent"]),["space"])]}," ⤢ "+fe(t("align_dashboard","Align Dashboard")),41,U0),ze(x0,{"embed-path":G0})],512))}},zo="#c4c8c0";function z0(e,t){const o=gs(e);return o&&o.propertyKey===t&&o.palette?o.palette:null}const B0=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_");function V0(){const e=re(()=>{const o=gs(Ao.DOXA_REGION),n=o&&o.propertyKey==="doxaRegion";return{slug:n&&o.slugColors||null,alias:n&&o.aliases||null}});function t(o,n,a,s){if(a==null||a==="")return zo;if(o==="people"){const r=z0(Ao.AFFINITY_BLOCK,"affinityBlock");return r&&r[s||a]||zo}if(o==="place"){const{slug:r,alias:i}=e.value,l=s||a;if(r){const c=r[B0(l)];if(c)return c}if(i){const c=i[l];if(c)return c}return zo}return o==="language"?Lo[s||a]||zo:o==="religion"&&Ct[s]||zo}return{colorFor:t,NEUTRAL:zo}}const q0={class:"rd-facets","data-region":"facets"},H0={class:"fr-head"},W0={class:"fr-title"},K0={class:"fr-scope","data-scope-count":""},Y0=["data-facet-section"],X0=["onClick"],Z0={class:"fr-rows"},J0=["data-facet","data-value","tabindex","role","aria-pressed","aria-label","title"],Q0=["data-expand","data-expand-value","aria-expanded","aria-label"],e1={key:1,class:"fr-caret fr-caret-leaf","aria-hidden":"true"},t1={class:"fr-lbl"},o1={class:"fr-bar"},n1={class:"fr-cnt"},a1={key:3,class:"fr-donly","aria-hidden":"true"},s1={__name:"DashboardFacetRail",setup(e){const t=(U,R)=>xe("dashboard."+U)||R,o=Ne("dashboardData",null),n=Ne("selectionBus",null),a=Ne("dashboardConfig",{}),s=Ne("dataStore",null),r=Ne("searchSourceId",null),i=(n==null?void 0:n.filterSet)||{},l=Object.fromEntries(Object.entries(a.facets||{}).map(([U,R])=>[U,R.get])),c=new Set(Object.entries(a.facets||{}).filter(([,U])=>U&&U.dashboardOnly).map(([U])=>U)),u=ca(n,la(a));function p(U){var he,ke;const R=((he=o==null?void 0:o.rows)==null?void 0:he.value)||[],V=Object.keys(i).filter(Ae=>!U.includes(Ae)),G=!!(((ke=n==null?void 0:n.searchTerm)==null?void 0:ke.value)||"").trim();if(!V.length&&!G)return R;const oe=R.filter(Ae=>V.every(Le=>{const ve=l[Le];return ve?ve(Ae)===i[Le]:!0}));return ua(oe,u)}const h=new Set(["people","place","language","religion"]),_=Vo(Object.fromEntries((a.facetRail||[]).map(U=>[U.id,h.has(U.id)])));function x(U){_[U]=!_[U]}const k=Vo({}),S=(U,R)=>U+":"+R;function C(U,R){const V=S(U,R);k[V]=!m(U,R)}function m(U,R){const V=S(U,R);return V in k?k[V]:i[U]===R}function g(U,R,V){const G=U.reduce((oe,he)=>Math.max(oe,he.value),0)||1;return U.map(oe=>({facet:R,value:oe.key,label:oe.key,count:oe.value,frac:oe.value/G,level:V,other:!!oe.other,active:!oe.other&&i[R]===oe.key,dashboardOnly:c.has(R)}))}const d=new Map;function $(U,R,V){if(V)return d.set(U,R.map(Q=>({...Q,count:0,frac:0,active:!1,expanded:!1}))),R;const G=d.get(U);if(!G)return R;const oe=Q=>Q.facet+":"+Q.value,he=new Set(R.map(oe));if(!G.filter(Q=>!he.has(oe(Q))).length)return R;const Ae=new Map;let Le="";for(const Q of G){const pe=oe(Q);if(he.has(pe)){Le=pe;continue}Ae.has(Le)||Ae.set(Le,[]),Ae.get(Le).push({...Q,zero:!0})}const ve=[];for(const Q of Ae.get("")||[])ve.push(Q);for(let Q=0;Qpe.level;)ve.push(R[++Q]);for(const y of _e)ve.push(y)}}return ve}function L(U,R){return g(oi(p([U]),l[U],R??24),U,0)}function v(U,R){const V=[],G=(oe,he)=>{const ke=U[oe],Ae=(R&&R[oe])??(oe===U.length-1?40:30);let Le=p(U.slice(oe));he.length&&(Le=Le.filter(Q=>he.every(([pe,_e])=>{const y=l[pe];return y?y(Q)===_e:!0})));const ve=g(oi(Le,l[ke],Ae),ke,oe);for(const Q of ve)Q.hasChildren=!Q.other&&oe{var V;const U=new Map,R=a.facets&&a.facets.religion_family;if(!R||!R.famKey)return U;for(const G of((V=o==null?void 0:o.rows)==null?void 0:V.value)||[]){const oe=R.get(G);oe&&!U.has(oe)&&U.set(oe,R.famKey(G))}return U}),ae=re(()=>{var U;return!Object.keys(i).length&&!(((U=n==null?void 0:n.searchTerm)==null?void 0:U.value)||"").trim()}),I=re(()=>(a.facetRail||[]).map(U=>{let R=U.drill?v(U.drill,U.topN):L(U.facet,U.topN);if(R=$(U.id,R,ae.value),U.tree==="affinity"){const V=P.value;R=R.map(G=>G.other?G:{...G,label:V[G.facet]&&V[G.facet].get(G.value)||G.label})}return R=M(R,U.axis,j.value),{id:U.id,title:U.title,axis:U.axis,rows:w(R)}})),q=re(()=>{var V;const U=((V=o==null?void 0:o.rows)==null?void 0:V.value)||[],R=Object.keys(i);return R.length?U.filter(G=>R.every(oe=>{const he=l[oe];return he?he(G)===i[oe]:!0})).length:U.length});function B(U){const R=U.target;if(!R||!R.closest)return;const V=R.closest("[data-expand]");if(V){const ke=V.getAttribute("data-expand"),Ae=V.getAttribute("data-expand-value");ke&&Ae!=null&&(U.stopPropagation(),C(ke,Ae));return}const G=R.closest("[data-facet]");if(!G||!n)return;const oe=G.getAttribute("data-facet"),he=G.getAttribute("data-value");!oe||!he||n.setFilter(oe,i[oe]===he?null:he)}function O(U){if(U.key!=="Enter"&&U.key!==" "&&U.key!=="Spacebar")return;const R=U.target&&U.target.closest?U.target.closest("[data-facet]"):null;if(!R||!n)return;U.preventDefault();const V=R.getAttribute("data-facet"),G=R.getAttribute("data-value");!V||!G||n.setFilter(V,i[V]===G?null:G)}const te=ue(null);return kt(()=>{n&&n.on("mapFocus",({value:U}={})=>{if(!U||!te.value)return;const V=[...te.value.querySelectorAll(".fr-row")].find(G=>G.textContent&&G.textContent.includes(U));V&&(te.value.scrollTop=Math.max(0,V.offsetTop-8))})}),Dt(`
+`,"rd-topbar"),(f,$)=>(ee(),se("header",{ref_key:"rootEl",ref:m,class:"rd-topbar","data-region":"topbar"},[T("div",C0,[T("span",R0,[T("span",T0,[lt(ge(pe(a).title||"Research Dashboard"),1),$[1]||($[1]=T("span",{class:"dot"},".",-1))])])]),T("div",N0,[je(gp,{"model-value":l.value,placeholder:i.value,"aria-label":i.value,"max-width":"360px",onSearch:c},null,8,["model-value","placeholder","aria-label"])]),$[3]||($[3]=T("span",{class:"rd-spacer"},null,-1)),s.value?(ee(),se("div",M0,[$[2]||($[2]=T("span",{class:"ic"},"⌕",-1)),Gt(T("input",{type:"text","onUpdate:modelValue":$[0]||($[0]=x=>u.value=x),placeholder:"Search people groups…","data-search-input":"","aria-label":"Search people groups",onInput:k,onFocus:k,onKeydown:A},null,544),[[rf,u.value]]),p.value&&u.value.trim().length>=2?(ee(),se("div",{key:0,class:"rd-results","data-search-results":"",onClick:C},[_.value.length?(ee(!0),se(Fe,{key:0},st(_.value,(x,y)=>(ee(),se("div",{key:x.slug,class:ze(["rd-res",{on:y===h.value}]),"data-slug":x.slug},[T("span",O0,ge(x.name),1),T("span",I0,ge(pe(nt)(x.country_code))+" · "+ge(pe(nt)(x.religion)),1)],10,F0))),128)):(ee(),se("div",D0,"No people groups match “"+ge(u.value.trim())+"”.",1))])):Ye("",!0)])):Ye("",!0),T("span",{class:"rd-align",role:"button",tabindex:"0","data-align-btn":"",title:t("align_dashboard_tip","Reset the dashboard layout to its default alignment"),onClick:r,onKeydown:[Za(hn(r,["prevent"]),["enter"]),Za(hn(r,["prevent"]),["space"])]}," ⤢ "+ge(t("align_dashboard","Align Dashboard")),41,G0),je(x0,{"embed-path":U0})],512))}},jo="#c4c8c0";function j0(e,t){const o=gs(e);return o&&o.propertyKey===t&&o.palette?o.palette:null}const B0=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_");function V0(){const e=re(()=>{const o=gs(Lo.DOXA_REGION),n=o&&o.propertyKey==="doxaRegion";return{slug:n&&o.slugColors||null,alias:n&&o.aliases||null}});function t(o,n,a,s){if(a==null||a==="")return jo;if(o==="people"){const r=j0(Lo.AFFINITY_BLOCK,"affinityBlock");return r&&r[s||a]||jo}if(o==="place"){const{slug:r,alias:l}=e.value,i=s||a;if(r){const c=r[B0(i)];if(c)return c}if(l){const c=l[i];if(c)return c}return jo}return o==="language"?Ao[s||a]||jo:o==="religion"&&Ct[s]||jo}return{colorFor:t,NEUTRAL:jo}}const q0={class:"rd-facets","data-region":"facets"},H0={class:"fr-head"},W0={class:"fr-title"},K0={class:"fr-scope","data-scope-count":""},Y0=["data-facet-section"],X0=["onClick"],Z0={class:"fr-rows"},J0=["data-facet","data-value","tabindex","role","aria-pressed","aria-label","title"],Q0=["data-expand","data-expand-value","aria-expanded","aria-label"],e1={key:1,class:"fr-caret fr-caret-leaf","aria-hidden":"true"},t1={class:"fr-lbl"},o1={class:"fr-bar"},n1={class:"fr-cnt"},a1={key:3,class:"fr-donly","aria-hidden":"true"},s1={__name:"DashboardFacetRail",setup(e){const t=(G,N)=>we("dashboard."+G)||N,o=Te("dashboardData",null),n=Te("selectionBus",null),a=Te("dashboardConfig",{}),s=Te("dataStore",null),r=Te("searchSourceId",null),l=(n==null?void 0:n.filterSet)||{},i=Object.fromEntries(Object.entries(a.facets||{}).map(([G,N])=>[G,N.get])),c=new Set(Object.entries(a.facets||{}).filter(([,G])=>G&&G.dashboardOnly).map(([G])=>G)),u=ca(n,ia(a));function p(G){var he,ke;const N=((he=o==null?void 0:o.rows)==null?void 0:he.value)||[],V=Object.keys(l).filter(Le=>!G.includes(Le)),U=!!(((ke=n==null?void 0:n.searchTerm)==null?void 0:ke.value)||"").trim();if(!V.length&&!U)return N;const oe=N.filter(Le=>V.every(Ae=>{const ye=i[Ae];return ye?ye(Le)===l[Ae]:!0}));return ua(oe,u)}const h=new Set(["people","place","language","religion"]),_=Vo(Object.fromEntries((a.facetRail||[]).map(G=>[G.id,h.has(G.id)])));function S(G){_[G]=!_[G]}const k=Vo({}),A=(G,N)=>G+":"+N;function C(G,N){const V=A(G,N);k[V]=!m(G,N)}function m(G,N){const V=A(G,N);return V in k?k[V]:l[G]===N}function d(G,N,V){const U=G.reduce((oe,he)=>Math.max(oe,he.value),0)||1;return G.map(oe=>({facet:N,value:oe.key,label:oe.key,count:oe.value,frac:oe.value/U,level:V,other:!!oe.other,active:!oe.other&&l[N]===oe.key,dashboardOnly:c.has(N)}))}const f=new Map;function $(G,N,V){if(V)return f.set(G,N.map(Q=>({...Q,count:0,frac:0,active:!1,expanded:!1}))),N;const U=f.get(G);if(!U)return N;const oe=Q=>Q.facet+":"+Q.value,he=new Set(N.map(oe));if(!U.filter(Q=>!he.has(oe(Q))).length)return N;const Le=new Map;let Ae="";for(const Q of U){const de=oe(Q);if(he.has(de)){Ae=de;continue}Le.has(Ae)||Le.set(Ae,[]),Le.get(Ae).push({...Q,zero:!0})}const ye=[];for(const Q of Le.get("")||[])ye.push(Q);for(let Q=0;Qde.level;)ye.push(N[++Q]);for(const v of _e)ye.push(v)}}return ye}function x(G,N){return d(ol(p([G]),i[G],N??24),G,0)}function y(G,N){const V=[],U=(oe,he)=>{const ke=G[oe],Le=(N&&N[oe])??(oe===G.length-1?40:30);let Ae=p(G.slice(oe));he.length&&(Ae=Ae.filter(Q=>he.every(([de,_e])=>{const v=i[de];return v?v(Q)===_e:!0})));const ye=d(ol(Ae,i[ke],Le),ke,oe);for(const Q of ye)Q.hasChildren=!Q.other&&oe{var V;const G=new Map,N=a.facets&&a.facets.religion_family;if(!N||!N.famKey)return G;for(const U of((V=o==null?void 0:o.rows)==null?void 0:V.value)||[]){const oe=N.get(U);oe&&!G.has(oe)&&G.set(oe,N.famKey(U))}return G}),ae=re(()=>{var G;return!Object.keys(l).length&&!(((G=n==null?void 0:n.searchTerm)==null?void 0:G.value)||"").trim()}),I=re(()=>(a.facetRail||[]).map(G=>{let N=G.drill?y(G.drill,G.topN):x(G.facet,G.topN);if(N=$(G.id,N,ae.value),G.tree==="affinity"){const V=P.value;N=N.map(U=>U.other?U:{...U,label:V[U.facet]&&V[U.facet].get(U.value)||U.label})}return N=M(N,G.axis,z.value),{id:G.id,title:G.title,axis:G.axis,rows:w(N)}})),H=re(()=>{var V;const G=((V=o==null?void 0:o.rows)==null?void 0:V.value)||[],N=Object.keys(l);return N.length?G.filter(U=>N.every(oe=>{const he=i[oe];return he?he(U)===l[oe]:!0})).length:G.length});function B(G){const N=G.target;if(!N||!N.closest)return;const V=N.closest("[data-expand]");if(V){const ke=V.getAttribute("data-expand"),Le=V.getAttribute("data-expand-value");ke&&Le!=null&&(G.stopPropagation(),C(ke,Le));return}const U=N.closest("[data-facet]");if(!U||!n)return;const oe=U.getAttribute("data-facet"),he=U.getAttribute("data-value");!oe||!he||n.setFilter(oe,l[oe]===he?null:he)}function F(G){if(G.key!=="Enter"&&G.key!==" "&&G.key!=="Spacebar")return;const N=G.target&&G.target.closest?G.target.closest("[data-facet]"):null;if(!N||!n)return;G.preventDefault();const V=N.getAttribute("data-facet"),U=N.getAttribute("data-value");!V||!U||n.setFilter(V,l[V]===U?null:U)}const te=ue(null);return kt(()=>{n&&n.on("mapFocus",({value:G}={})=>{if(!G||!te.value)return;const V=[...te.value.querySelectorAll(".fr-row")].find(U=>U.textContent&&U.textContent.includes(G));V&&(te.value.scrollTop=Math.max(0,V.offsetTop-8))})}),Dt(`
.rd-facets{ display:flex; flex-direction:column; height:100%; min-height:0; box-sizing:border-box;
background:var(--rd-panel,#fff); }
.rd-facets .fr-head{ flex:0 0 auto; padding:var(--s3,12px) var(--s3,12px) var(--s2,8px); border-bottom:1px solid var(--rd-line, #d1d4cd); }
@@ -487,7 +487,7 @@
.fr-cnt{ flex:0 0 auto; font-variant-numeric:tabular-nums; color:var(--dx-muted, #6d766e); min-width:30px; text-align:right; font-size:11px; margin-left:8px; }
.fr-row.dash-only .fr-donly{ flex:0 0 auto; margin-left:6px; font-size:10px; line-height:1;
color:var(--dx-muted, #6d766e); opacity:.75; }
-`,"rd-facetrail"),(U,R)=>(ee(),se("aside",q0,[N("div",H0,[N("div",W0,fe(t("vertical_legend","Vertical Legend")),1),N("div",K0,[N("b",null,fe(q.value.toLocaleString("en-US")),1),it(" "+fe(t("groups_in_scope","groups in scope")),1)])]),N("div",{class:"fr-body",ref_key:"railEl",ref:te,onClick:B,onKeydown:O},[(ee(!0),se(Oe,null,st(I.value,V=>(ee(),se("div",{key:V.id,class:"fr-sec","data-facet-section":V.id},[N("div",{class:je(["fr-sech",{closed:!_[V.id]}]),onClick:hn(G=>x(V.id),["stop"])},[N("span",null,fe(V.title),1),R[0]||(R[0]=N("span",{class:"chev"},"▾",-1))],10,X0),Ut(N("div",Z0,[(ee(!0),se(Oe,null,st(V.rows,G=>(ee(),se("div",{key:G.facet+":"+G.value,class:je(["fr-row",["l"+G.level,{on:G.active,other:G.other,zero:G.zero,inert:G.other||G.zero,"dash-only":G.dashboardOnly}]]),"data-facet":G.other||G.zero?null:G.facet,"data-value":G.other||G.zero?null:G.value,tabindex:G.other||G.zero?null:0,role:G.other||G.zero?null:"button","aria-pressed":G.other||G.zero?null:G.active?"true":"false","aria-label":G.other||G.zero?null:(G.active?t("remove_filter","Remove filter"):t("filter_by","Filter by"))+" "+G.label+", "+G.count.toLocaleString("en-US")+" "+t("groups","groups")+(G.dashboardOnly?". Updates the charts on this dashboard only; it does not filter the list below.":""),title:G.dashboardOnly?"Updates this dashboard only — the list below does not filter on "+G.label:null},[(ee(!0),se(Oe,null,st(G.trunks,(oe,he)=>(ee(),se("span",{key:"tr"+he,class:je(["fr-trunk","fr-trunk-"+oe])},null,2))),128)),G.hasChildren?(ee(),se("button",{key:0,type:"button",class:je(["fr-caret-btn",{open:G.expanded}]),"data-expand":G.facet,"data-expand-value":G.value,"aria-expanded":G.expanded?"true":"false","aria-label":(G.expanded?t("collapse","Collapse"):t("expand","Expand"))+" "+G.label},[...R[1]||(R[1]=[N("span",{class:"fr-caret-gl","aria-hidden":"true"},"▸",-1)])],10,Q0)):(ee(),se("span",e1)),G.swatch?(ee(),se("span",{key:2,class:"fr-sw",style:dt({background:G.swatch}),"aria-hidden":"true"},null,4)):Ye("",!0),N("span",t1,fe(G.label),1),N("span",o1,[N("i",{style:dt({width:Math.max(4,G.frac*100)+"%"})},null,4)]),N("span",n1,fe(G.count.toLocaleString("en-US")),1),G.dashboardOnly?(ee(),se("span",a1,"◐")):Ye("",!0)],10,J0))),128))],512),[[Ht,_[V.id]]])],8,Y0))),128))],544)]))}},r1=["data-sel-count","data-fullscreen"],i1=["data-collapsed"],l1=["title","aria-expanded"],c1={class:"ttl"},u1={class:"ct","data-table-count":""},d1={key:0,class:"rd-pill","data-sel-pill":"",role:"status"},p1=["aria-pressed"],g1=["aria-pressed"],f1={key:2,class:"rd-toast","data-export-toast":""},h1=["aria-pressed","title","aria-label"],m1=["aria-busy","title","onKeydown"],$1={key:0,class:"rd-csv-n"},b1=["data-sort-by","aria-rowcount"],_1=["title"],y1=["checked","aria-label"],v1=["title","aria-sort","data-col","onClick"],k1={class:"ind"},w1=["data-slug","aria-selected","aria-rowindex"],x1={class:"rd-td chk",role:"gridcell"},S1=["checked","aria-label"],L1={class:"rd-foot",role:"row"},A1=90,P1=9.9,E1=12,da=26,C1={__name:"DashboardDataTable",setup(e){const t=(Y,$e)=>xe(Y)||$e,o=Ne("dashboardData",null),n=Ne("selectionBus",null),a=Ne("dashboardConfig",{}),s=Y=>{if(typeof Y=="number")return Y;const $e=parseFloat(String(Y??"").replace(/[^0-9.\-]/g,""));return isNaN($e)?null:$e},r=Y=>Y==null?"":Number(Y).toLocaleString("en-US"),i=re(()=>a.columns||[]);function l(Y){const $e=Number(Y&&Y.minW);if(Number.isFinite($e)&&$e>0)return $e;const be=String(Y&&Y.label||"");return be?Math.ceil(be.length*P1)+E1:A1}function c(Y){const $e=Number(Y&&Y.w);return{flex:`${Number.isFinite($e)&&$e>0?$e:1} 1 0`,minWidth:l(Y)+"px"}}const u=re(()=>i.value.reduce((Y,$e)=>Y+l($e),30)),p=re(()=>({minWidth:u.value+"px"})),h=Object.fromEntries(Object.entries(a.facets||{}).map(([Y,$e])=>[Y,$e.get])),_=re(()=>{var Y;return((Y=o==null?void 0:o.rows)==null?void 0:Y.value)||[]}),x=(n==null?void 0:n.filterSet)||{},k=n==null?void 0:n.selectionSet;function S(Y,$e,be){const Ge=h[$e];if(!Ge)return!0;const Ue=Ge(Y);return Array.isArray(be)?be.includes(Ue):Ue===be}const C=ca(n,la(a)),m=re(()=>{var Ge;const Y=Object.keys(x),$e=!!(((Ge=n==null?void 0:n.searchTerm)==null?void 0:Ge.value)||"").trim();if(!Y.length&&!$e)return _.value;const be=_.value.filter(Ue=>Y.every(Nt=>S(Ue,Nt,x[Nt])));return ua(be,C)}),g=ue([]);function d(Y,$e){const be=!!($e&&$e.shiftKey),Ge=g.value.findIndex(Ue=>Ue.key===Y.key);if(Ge<0)g.value=(be?[...g.value]:[]).concat({key:Y.key,dir:"asc"});else if(g.value[Ge].dir==="asc"){const Ue=[...g.value];Ue[Ge]={key:Y.key,dir:"desc"},g.value=Ue}else g.value=be?g.value.filter(Ue=>Ue.key!==Y.key):[]}function $(Y){const $e=g.value.find(be=>be.key===Y.key);return $e?$e.dir==="asc"?"ascending":"descending":"none"}const L=re(()=>{const Y=g.value;if(!Y.length)return m.value;const $e=Y.map(be=>({col:i.value.find(Ge=>Ge.key===be.key),dir:be.dir==="asc"?1:-1}));return m.value.slice().sort((be,Ge)=>{for(const{col:Ue,dir:Nt}of $e){let Pt=Ue.get(be),zt=Ue.get(Ge);if((Pt==null||Pt==="")&&(Pt=Ue.type==="num"?-1/0:""),(zt==null||zt==="")&&(zt=Ue.type==="num"?-1/0:""),Ptzt)return 1*Nt}return 0})}),v=ue(!1),w=ue(!1);function P(){v.value=!v.value}function H(){w.value=!w.value}const M=()=>n&&n.selectionVersion?n.selectionVersion.value:0,j=re(()=>{let Y=L.value;if(v.value&&(M(),Y=Y.filter($e=>k&&k.has($e.slug))),w.value){M();const $e=[],be=[];for(const Ge of Y)(k&&k.has(Ge.slug)?$e:be).push(Ge);Y=$e.concat(be)}return Y}),ae=ue(0),I=ue(360),q=ue(null);let B=null;const O=ue(0);function te(Y){ae.value=Y.target.scrollTop,O.value=Y.target.scrollLeft}const U=re(()=>Math.max(0,Math.floor(ae.value/da)-6)),R=re(()=>Math.ceil(I.value/da)+12),V=re(()=>j.value.slice(U.value,U.value+R.value)),G=re(()=>U.value*da),oe=re(()=>Math.max(0,(j.value.length-(U.value+V.value.length))*da));kt(()=>{q.value&&(I.value=q.value.clientHeight||360,B=new ResizeObserver(()=>{I.value=q.value.clientHeight||I.value}),B.observe(q.value)),n&&n.on("toggleTable",Y=>{f.value=!!Y}),n&&n.on("focusRow",({slug:Y}={})=>{if(!Y||!q.value)return;const $e=j.value.findIndex(be=>be.slug===Y);$e>=0&&(q.value.scrollTop=Math.max(0,$e*da-I.value/2))})}),kt(()=>{typeof document<"u"&&document.addEventListener("keydown",D)}),Ft(()=>{B&&B.disconnect(),clearTimeout(Tt),typeof document<"u"&&document.removeEventListener("keydown",D)});const he=re(()=>(M(),k?k.size:0)),ke=Y=>!!(k&&k.has(Y.slug)),Ae=re(()=>M()),Le=ue(null),ve=ue("select");let Q=new Set;function pe(Y,$e){Le.value=Y,ve.value=$e,Q=new Set(k)}function _e(Y,$e){const be=j.value,Ge=be.findIndex(co=>co.slug===Y),Ue=be.findIndex(co=>co.slug===$e);if(Ge<0||Ue<0)return[];const[Nt,Pt]=Ge<=Ue?[Ge,Ue]:[Ue,Ge],zt=[];for(let co=Nt;co<=Pt;co++)zt.push(be[co].slug);return zt}function y(Y,$e){if(!n||!Y)return;const be=!!($e&&($e.ctrlKey||$e.metaKey));if(!!($e&&$e.shiftKey)&&Le.value){const Ue=_e(Le.value,Y);if(!Ue.length)return;if(be){const Nt=new Set(Q);if(ve.value==="deselect")for(const Pt of Ue)Nt.delete(Pt);else for(const Pt of Ue)Nt.add(Pt);n.setSelection(Nt)}else n.setSelection(Ue);return}if(be){const Ue=!k.has(Y);pe(Y,Ue?"select":"deselect"),n.toggleSelect(Y),Q=new Set(k);return}pe(Y,"select"),n.setSelection([Y]),Q=new Set(k)}function E(Y){const $e=Y.target;if(!$e||!$e.closest)return;const be=$e.closest(".rd-row");if(!be||!n)return;const Ge=be.getAttribute("data-slug");if(Ge){if($e.closest(".rd-td.chk")){if(Y.shiftKey||Y.ctrlKey||Y.metaKey){y(Ge,Y);return}pe(Ge,k.has(Ge)?"deselect":"select"),n.toggleSelect(Ge),Q=new Set(k);return}y(Ge,Y)}}function A(Y){Y.shiftKey&&Y.target&&Y.target.closest&&Y.target.closest(".rd-row")&&Y.preventDefault()}const z=re(()=>{M();const Y=m.value;if(!Y.length)return!1;for(const $e of Y)if(!k.has($e.slug))return!1;return!0}),Z=re(()=>{if(M(),z.value)return!1;for(const Y of m.value)if(k.has(Y.slug))return!0;return!1});function J(){if(!n)return;const Y=m.value.map($e=>$e.slug);z.value?n.deselectMany(Y):n.selectMany(Y),Le.value=null,Q=new Set(k)}const ie=ue(null);function ne(Y){ie.value=Y||null}ct([Z,ie],()=>{ie.value&&(ie.value.indeterminate=Z.value)},{immediate:!0}),ct([g,()=>m.value.length,v,w],()=>{Le.value=null}),ct(he,Y=>{Y||(v.value=!1)});const f=ue(!1);function b(){f.value=!f.value,n&&n.emit("toggleTable",f.value)}const F=ue(!1),X=ue(null);function ge(){const Y=X.value,$e=Y&&Y.getRootNode?Y.getRootNode():document,be=$e&&$e.fullscreenElement||document.fullscreenElement;F.value=!!(be&&Y&&(be===Y||be.contains&&be.contains(Y)))}typeof document<"u"&&document.addEventListener("fullscreenchange",ge),Ft(()=>{typeof document<"u"&&document.removeEventListener("fullscreenchange",ge)});function le(){const Y=X.value;if(Y&&Y.requestFullscreen){document.fullscreenElement?document.exitFullscreen().catch(()=>{}):Y.requestFullscreen().then(ge).catch(()=>{F.value=!0}),!F.value&&f.value&&(f.value=!1,n&&n.emit("toggleTable",!1));return}F.value=!F.value,F.value&&f.value&&(f.value=!1,n&&n.emit("toggleTable",!1))}function D(Y){if(Y.key==="Escape"){if(document.fullscreenElement){document.exitFullscreen().catch(()=>{});return}F.value&&(F.value=!1)}}const K=re(()=>m.value.reduce((Y,$e)=>Y+(s($e.population)||0),0)),ye=re(()=>m.value.length),{labelFor:Ee}=ia(a,Ne("dataStore",null),Ne("searchSourceId",null)),Be=o&&n?Jr({rowStore:o.rowStore,rows:o.rows,selectionSet:n.selectionSet,filterSet:n.filterSet,FACET_ACC:h,dataOpts:a.data,labelFor:Ee}):null,Ze=ue(""),We=ue(!1);let Tt=null;async function Eo(){if(!(!Be||We.value)){We.value=!0;try{const Y=await Be.exportCsvAsync(),$e=Y.downloaded?"exported":Y.clipboard?"copied to clipboard":"ready";Ze.value=`✓ ${r(Y.rows)} rows × ${Y.fields} fields ${$e}`}catch{Ze.value="✕ Export failed"}finally{We.value=!1,clearTimeout(Tt),Tt=setTimeout(()=>{Ze.value=""},3200)}}}function mt(){Be&&Be.prefetchExportFields()}return Dt(`
+`,"rd-facetrail"),(G,N)=>(ee(),se("aside",q0,[T("div",H0,[T("div",W0,ge(t("vertical_legend","Vertical Legend")),1),T("div",K0,[T("b",null,ge(H.value.toLocaleString("en-US")),1),lt(" "+ge(t("groups_in_scope","groups in scope")),1)])]),T("div",{class:"fr-body",ref_key:"railEl",ref:te,onClick:B,onKeydown:F},[(ee(!0),se(Fe,null,st(I.value,V=>(ee(),se("div",{key:V.id,class:"fr-sec","data-facet-section":V.id},[T("div",{class:ze(["fr-sech",{closed:!_[V.id]}]),onClick:hn(U=>S(V.id),["stop"])},[T("span",null,ge(V.title),1),N[0]||(N[0]=T("span",{class:"chev"},"▾",-1))],10,X0),Gt(T("div",Z0,[(ee(!0),se(Fe,null,st(V.rows,U=>(ee(),se("div",{key:U.facet+":"+U.value,class:ze(["fr-row",["l"+U.level,{on:U.active,other:U.other,zero:U.zero,inert:U.other||U.zero,"dash-only":U.dashboardOnly}]]),"data-facet":U.other||U.zero?null:U.facet,"data-value":U.other||U.zero?null:U.value,tabindex:U.other||U.zero?null:0,role:U.other||U.zero?null:"button","aria-pressed":U.other||U.zero?null:U.active?"true":"false","aria-label":U.other||U.zero?null:(U.active?t("remove_filter","Remove filter"):t("filter_by","Filter by"))+" "+U.label+", "+U.count.toLocaleString("en-US")+" "+t("groups","groups")+(U.dashboardOnly?". Updates the charts on this dashboard only; it does not filter the list below.":""),title:U.dashboardOnly?"Updates this dashboard only — the list below does not filter on "+U.label:null},[(ee(!0),se(Fe,null,st(U.trunks,(oe,he)=>(ee(),se("span",{key:"tr"+he,class:ze(["fr-trunk","fr-trunk-"+oe])},null,2))),128)),U.hasChildren?(ee(),se("button",{key:0,type:"button",class:ze(["fr-caret-btn",{open:U.expanded}]),"data-expand":U.facet,"data-expand-value":U.value,"aria-expanded":U.expanded?"true":"false","aria-label":(U.expanded?t("collapse","Collapse"):t("expand","Expand"))+" "+U.label},[...N[1]||(N[1]=[T("span",{class:"fr-caret-gl","aria-hidden":"true"},"▸",-1)])],10,Q0)):(ee(),se("span",e1)),U.swatch?(ee(),se("span",{key:2,class:"fr-sw",style:pt({background:U.swatch}),"aria-hidden":"true"},null,4)):Ye("",!0),T("span",t1,ge(U.label),1),T("span",o1,[T("i",{style:pt({width:Math.max(4,U.frac*100)+"%"})},null,4)]),T("span",n1,ge(U.count.toLocaleString("en-US")),1),U.dashboardOnly?(ee(),se("span",a1,"◐")):Ye("",!0)],10,J0))),128))],512),[[Ht,_[V.id]]])],8,Y0))),128))],544)]))}},r1=["data-sel-count","data-fullscreen"],l1=["data-collapsed"],i1=["title","aria-expanded"],c1={class:"ttl"},u1={class:"ct","data-table-count":""},p1={key:0,class:"rd-pill","data-sel-pill":"",role:"status"},d1=["aria-pressed"],g1=["aria-pressed"],f1={key:2,class:"rd-toast","data-export-toast":""},h1=["aria-pressed","title","aria-label"],m1=["aria-busy","title","onKeydown"],$1={key:0,class:"rd-csv-n"},b1=["data-sort-by","aria-rowcount"],_1=["title"],y1=["checked","aria-label"],v1=["title","aria-sort","data-col","onClick"],k1={class:"ind"},w1=["data-slug","aria-selected","aria-rowindex"],x1={class:"rd-td chk",role:"gridcell"},S1=["checked","aria-label"],A1={class:"rd-foot",role:"row"},L1=90,P1=9.9,E1=12,pa=26,C1={__name:"DashboardDataTable",setup(e){const t=(Y,$e)=>we(Y)||$e,o=Te("dashboardData",null),n=Te("selectionBus",null),a=Te("dashboardConfig",{}),s=Y=>{if(typeof Y=="number")return Y;const $e=parseFloat(String(Y??"").replace(/[^0-9.\-]/g,""));return isNaN($e)?null:$e},r=Y=>Y==null?"":Number(Y).toLocaleString("en-US"),l=re(()=>a.columns||[]);function i(Y){const $e=Number(Y&&Y.minW);if(Number.isFinite($e)&&$e>0)return $e;const be=String(Y&&Y.label||"");return be?Math.ceil(be.length*P1)+E1:L1}function c(Y){const $e=Number(Y&&Y.w);return{flex:`${Number.isFinite($e)&&$e>0?$e:1} 1 0`,minWidth:i(Y)+"px"}}const u=re(()=>l.value.reduce((Y,$e)=>Y+i($e),30)),p=re(()=>({minWidth:u.value+"px"})),h=Object.fromEntries(Object.entries(a.facets||{}).map(([Y,$e])=>[Y,$e.get])),_=re(()=>{var Y;return((Y=o==null?void 0:o.rows)==null?void 0:Y.value)||[]}),S=(n==null?void 0:n.filterSet)||{},k=n==null?void 0:n.selectionSet;function A(Y,$e,be){const Ue=h[$e];if(!Ue)return!0;const Ge=Ue(Y);return Array.isArray(be)?be.includes(Ge):Ge===be}const C=ca(n,ia(a)),m=re(()=>{var Ue;const Y=Object.keys(S),$e=!!(((Ue=n==null?void 0:n.searchTerm)==null?void 0:Ue.value)||"").trim();if(!Y.length&&!$e)return _.value;const be=_.value.filter(Ge=>Y.every(Tt=>A(Ge,Tt,S[Tt])));return ua(be,C)}),d=ue([]);function f(Y,$e){const be=!!($e&&$e.shiftKey),Ue=d.value.findIndex(Ge=>Ge.key===Y.key);if(Ue<0)d.value=(be?[...d.value]:[]).concat({key:Y.key,dir:"asc"});else if(d.value[Ue].dir==="asc"){const Ge=[...d.value];Ge[Ue]={key:Y.key,dir:"desc"},d.value=Ge}else d.value=be?d.value.filter(Ge=>Ge.key!==Y.key):[]}function $(Y){const $e=d.value.find(be=>be.key===Y.key);return $e?$e.dir==="asc"?"ascending":"descending":"none"}const x=re(()=>{const Y=d.value;if(!Y.length)return m.value;const $e=Y.map(be=>({col:l.value.find(Ue=>Ue.key===be.key),dir:be.dir==="asc"?1:-1}));return m.value.slice().sort((be,Ue)=>{for(const{col:Ge,dir:Tt}of $e){let Pt=Ge.get(be),jt=Ge.get(Ue);if((Pt==null||Pt==="")&&(Pt=Ge.type==="num"?-1/0:""),(jt==null||jt==="")&&(jt=Ge.type==="num"?-1/0:""),Ptjt)return 1*Tt}return 0})}),y=ue(!1),w=ue(!1);function P(){y.value=!y.value}function q(){w.value=!w.value}const M=()=>n&&n.selectionVersion?n.selectionVersion.value:0,z=re(()=>{let Y=x.value;if(y.value&&(M(),Y=Y.filter($e=>k&&k.has($e.slug))),w.value){M();const $e=[],be=[];for(const Ue of Y)(k&&k.has(Ue.slug)?$e:be).push(Ue);Y=$e.concat(be)}return Y}),ae=ue(0),I=ue(360),H=ue(null);let B=null;const F=ue(0);function te(Y){ae.value=Y.target.scrollTop,F.value=Y.target.scrollLeft}const G=re(()=>Math.max(0,Math.floor(ae.value/pa)-6)),N=re(()=>Math.ceil(I.value/pa)+12),V=re(()=>z.value.slice(G.value,G.value+N.value)),U=re(()=>G.value*pa),oe=re(()=>Math.max(0,(z.value.length-(G.value+V.value.length))*pa));kt(()=>{H.value&&(I.value=H.value.clientHeight||360,B=new ResizeObserver(()=>{I.value=H.value.clientHeight||I.value}),B.observe(H.value)),n&&n.on("toggleTable",Y=>{g.value=!!Y}),n&&n.on("focusRow",({slug:Y}={})=>{if(!Y||!H.value)return;const $e=z.value.findIndex(be=>be.slug===Y);$e>=0&&(H.value.scrollTop=Math.max(0,$e*pa-I.value/2))})}),kt(()=>{typeof document<"u"&&document.addEventListener("keydown",D)}),Ot(()=>{B&&B.disconnect(),clearTimeout(Rt),typeof document<"u"&&document.removeEventListener("keydown",D)});const he=re(()=>(M(),k?k.size:0)),ke=Y=>!!(k&&k.has(Y.slug)),Le=re(()=>M()),Ae=ue(null),ye=ue("select");let Q=new Set;function de(Y,$e){Ae.value=Y,ye.value=$e,Q=new Set(k)}function _e(Y,$e){const be=z.value,Ue=be.findIndex(co=>co.slug===Y),Ge=be.findIndex(co=>co.slug===$e);if(Ue<0||Ge<0)return[];const[Tt,Pt]=Ue<=Ge?[Ue,Ge]:[Ge,Ue],jt=[];for(let co=Tt;co<=Pt;co++)jt.push(be[co].slug);return jt}function v(Y,$e){if(!n||!Y)return;const be=!!($e&&($e.ctrlKey||$e.metaKey));if(!!($e&&$e.shiftKey)&&Ae.value){const Ge=_e(Ae.value,Y);if(!Ge.length)return;if(be){const Tt=new Set(Q);if(ye.value==="deselect")for(const Pt of Ge)Tt.delete(Pt);else for(const Pt of Ge)Tt.add(Pt);n.setSelection(Tt)}else n.setSelection(Ge);return}if(be){const Ge=!k.has(Y);de(Y,Ge?"select":"deselect"),n.toggleSelect(Y),Q=new Set(k);return}de(Y,"select"),n.setSelection([Y]),Q=new Set(k)}function E(Y){const $e=Y.target;if(!$e||!$e.closest)return;const be=$e.closest(".rd-row");if(!be||!n)return;const Ue=be.getAttribute("data-slug");if(Ue){if($e.closest(".rd-td.chk")){if(Y.shiftKey||Y.ctrlKey||Y.metaKey){v(Ue,Y);return}de(Ue,k.has(Ue)?"deselect":"select"),n.toggleSelect(Ue),Q=new Set(k);return}v(Ue,Y)}}function L(Y){Y.shiftKey&&Y.target&&Y.target.closest&&Y.target.closest(".rd-row")&&Y.preventDefault()}const j=re(()=>{M();const Y=m.value;if(!Y.length)return!1;for(const $e of Y)if(!k.has($e.slug))return!1;return!0}),Z=re(()=>{if(M(),j.value)return!1;for(const Y of m.value)if(k.has(Y.slug))return!0;return!1});function J(){if(!n)return;const Y=m.value.map($e=>$e.slug);j.value?n.deselectMany(Y):n.selectMany(Y),Ae.value=null,Q=new Set(k)}const le=ue(null);function ne(Y){le.value=Y||null}ct([Z,le],()=>{le.value&&(le.value.indeterminate=Z.value)},{immediate:!0}),ct([d,()=>m.value.length,y,w],()=>{Ae.value=null}),ct(he,Y=>{Y||(y.value=!1)});const g=ue(!1);function b(){g.value=!g.value,n&&n.emit("toggleTable",g.value)}const O=ue(!1),X=ue(null);function fe(){const Y=X.value,$e=Y&&Y.getRootNode?Y.getRootNode():document,be=$e&&$e.fullscreenElement||document.fullscreenElement;O.value=!!(be&&Y&&(be===Y||be.contains&&be.contains(Y)))}typeof document<"u"&&document.addEventListener("fullscreenchange",fe),Ot(()=>{typeof document<"u"&&document.removeEventListener("fullscreenchange",fe)});function ie(){const Y=X.value;if(Y&&Y.requestFullscreen){document.fullscreenElement?document.exitFullscreen().catch(()=>{}):Y.requestFullscreen().then(fe).catch(()=>{O.value=!0}),!O.value&&g.value&&(g.value=!1,n&&n.emit("toggleTable",!1));return}O.value=!O.value,O.value&&g.value&&(g.value=!1,n&&n.emit("toggleTable",!1))}function D(Y){if(Y.key==="Escape"){if(document.fullscreenElement){document.exitFullscreen().catch(()=>{});return}O.value&&(O.value=!1)}}const K=re(()=>m.value.reduce((Y,$e)=>Y+(s($e.population)||0),0)),ve=re(()=>m.value.length),{labelFor:Ee}=la(a,Te("dataStore",null),Te("searchSourceId",null)),Be=o&&n?Jr({rowStore:o.rowStore,rows:o.rows,selectionSet:n.selectionSet,filterSet:n.filterSet,FACET_ACC:h,dataOpts:a.data,labelFor:Ee}):null,Ze=ue(""),We=ue(!1);let Rt=null;async function Eo(){if(!(!Be||We.value)){We.value=!0;try{const Y=await Be.exportCsvAsync(),$e=Y.downloaded?"exported":Y.clipboard?"copied to clipboard":"ready";Ze.value=`✓ ${r(Y.rows)} rows × ${Y.fields} fields ${$e}`}catch{Ze.value="✕ Export failed"}finally{We.value=!1,clearTimeout(Rt),Rt=setTimeout(()=>{Ze.value=""},3200)}}}function mt(){Be&&Be.prefetchExportFields()}return Dt(`
.rd-table-wrap{ display:flex; flex-direction:column; height:100%; min-height:0; background:#fff; font-size:12px; }
.rd-table-bar{ position:relative; display:flex; align-items:center; gap:10px; padding:4px 10px; border-bottom:1px solid var(--dx-line, #d1d4cd); flex:0 0 auto; }
.rd-table-bar .ttl{ font-weight:700; color:var(--rd-ink, #3b463d); } .rd-table-bar .ct{ color:var(--dx-muted, #6d766e); }
@@ -552,7 +552,7 @@
.rd-table-bar .rd-fs:hover{ color:var(--dx-text,#3b463d); border-color:#b9bdb4; }
.rd-table-bar .rd-fs.on{ color:#2b352c; background:var(--rd-primary,#92b195); border-color:#84a487; }
.rd-table-bar .rd-fs:focus-visible{ outline:2px solid #6d8a70; outline-offset:2px; }
-`,"rd-datatable"),(Y,$e)=>(ee(),se("div",{ref_key:"wrapEl",ref:X,class:je(["rd-table-wrap",{"is-full":F.value}]),"data-sel-count":he.value,"data-fullscreen":F.value?"1":"0"},[N("div",{class:"rd-table-bar","data-collapsed":f.value?"1":"0"},[N("button",{class:"rd-dock",title:f.value?"Expand table":"Collapse table — grow the map","data-table-dock":"","aria-expanded":f.value?"false":"true",onClick:b},fe(f.value?"▴":"▾"),9,l1),N("span",c1,fe(t("legend.titleBar.peopleGroups","People Groups")),1),N("span",u1,fe(r(ye.value))+" "+fe(ye.value===1?"group":t("dashboard.groups","groups")),1),he.value?(ee(),se("span",d1,[N("span",null,fe(r(he.value))+" selected",1)])):Ye("",!0),he.value?(ee(),se(Oe,{key:1},[N("button",{class:je(["rd-vtog",{on:v.value}]),"data-only-selected":"","aria-pressed":v.value?"true":"false",title:"Show only the selected people groups",onClick:P},"Only selected",10,p1),N("button",{class:je(["rd-vtog",{on:w.value}]),"data-selected-first":"","aria-pressed":w.value?"true":"false",title:"Float the selected people groups to the top, keeping your column sort",onClick:H},"Selected first",10,g1)],64)):Ye("",!0),$e[0]||($e[0]=N("span",{class:"rd-bar-sp"},null,-1)),Ze.value?(ee(),se("span",f1,fe(Ze.value),1)):Ye("",!0),N("button",{class:je(["rd-fs",{on:F.value}]),"data-table-fullscreen":"","aria-pressed":F.value?"true":"false",title:F.value?"Exit full screen (Esc) — back to seven rows":"Open this table full screen","aria-label":F.value?"Exit full screen":"Open table full screen",onClick:le},fe(F.value?"⤡ Exit full screen":"⤢ Full screen"),11,h1),N("span",{class:je(["rd-csv",{busy:We.value}]),role:"button",tabindex:"0","data-csv-btn":"","aria-busy":We.value?"true":"false",title:he.value?`Export the ${he.value} selected people groups — all fields`:`Export these ${r(ye.value)} people groups — all fields`,onClick:Eo,onMouseenter:mt,onFocus:mt,onKeydown:[Za(hn(Eo,["prevent"]),["enter"]),Za(hn(Eo,["prevent"]),["space"])]},[it(fe(We.value?"…":"↓")+" Export CSV",1),he.value?(ee(),se("span",$1,fe(he.value),1)):Ye("",!0)],42,m1)],8,i1),Ut(N("div",{ref_key:"scroller",ref:q,class:"rd-grid",role:"grid","aria-multiselectable":"true","data-sort-scope":"view-local","data-sort-by":g.value.map(be=>be.key+":"+be.dir).join(","),"aria-rowcount":j.value.length+1,onScroll:te,onClick:E,onMousedown:A},[N("div",{class:"rd-thead",role:"row",style:dt(p.value)},[N("div",{class:"rd-th chk",style:{cursor:"pointer"},title:z.value?"Deselect all "+r(ye.value):"Select all "+r(ye.value),onClick:J},[N("input",{type:"checkbox",checked:z.value,ref:ne,"aria-label":z.value?"Deselect all rows":"Select all rows",tabindex:"-1",style:{"pointer-events":"none"}},null,8,y1)],8,_1),(ee(!0),se(Oe,null,st(i.value,be=>(ee(),se("div",{key:be.key,class:je(["rd-th",{num:be.type==="num"}]),style:dt(c(be)),title:`Sort this table by ${be.label} — shift-click to add a second column. Sorting orders the table only; the cards keep their own order.`,role:"columnheader","aria-sort":$(be),"data-col":be.key,onClick:Ge=>d(be,Ge)},[it(fe(be.label),1),N("span",k1,fe($(be)==="ascending"?"▲":$(be)==="descending"?"▼":""),1)],14,v1))),128))],4),N("div",{style:dt({height:G.value+"px"})},null,4),(ee(!0),se(Oe,null,st(V.value,(be,Ge)=>(ee(),se("div",{key:be.slug,class:je(["rd-row",{sel:Ae.value>=0&&ke(be)}]),role:"row","data-slug":be.slug,"aria-selected":ke(be)?"true":"false",style:dt(p.value),"aria-rowindex":U.value+Ge+2},[N("div",x1,[N("input",{type:"checkbox",class:"rd-rowchk",checked:ke(be),"aria-label":"Select "+be.name,tabindex:"-1",style:{"pointer-events":"none"}},null,8,S1)]),(ee(!0),se(Oe,null,st(i.value,Ue=>(ee(),se("div",{key:Ue.key,class:je(["rd-td",{num:Ue.type==="num"}]),style:dt(c(Ue)),role:"gridcell"},fe(Ue.type==="num"?r(Ue.get(be)):Ue.get(be)),7))),128))],14,w1))),128)),N("div",{style:dt({height:oe.value+"px"})},null,4)],40,b1),[[Ht,!f.value]]),Ut(N("div",L1,[N("div",{class:"rd-foot-inner",style:dt([p.value,{transform:"translateX("+-O.value+"px)"}])},[$e[1]||($e[1]=N("div",{class:"rd-td chk"},null,-1)),(ee(!0),se(Oe,null,st(i.value,(be,Ge)=>(ee(),se("div",{key:"f-"+be.key,class:je(["rd-td",{num:be.type==="num"}]),style:dt(c(be))},[Ge===0?(ee(),se(Oe,{key:0},[it("Σ "+fe(r(ye.value))+" groups",1)],64)):be.key==="population"?(ee(),se(Oe,{key:1},[it(fe(r(K.value)),1)],64)):Ye("",!0)],6))),128))],4)],512),[[Ht,!f.value]])],10,r1))}},T1={class:"rd-tabs",role:"tablist","aria-label":"Rail views"},N1=["aria-selected","disabled","title","data-tab","onClick"],R1=["data-chart"],M1={class:"rd-ct"},O1={class:"rd-donutwrap"},F1=["aria-label"],I1=["d","fill","data-facet","data-key"],D1={class:"rd-legend"},U1=["data-facet","data-key","title"],G1={class:"rd-lt"},j1=["data-chart"],z1={class:"rd-ct"},B1={class:"rd-bars"},V1=["data-facet","data-key"],q1={class:"rd-bl"},H1={class:"rd-bt"},W1={class:"rd-bv"},K1={__name:"DashboardChartsRail",setup(e){const t=[{id:"charts",get label(){return xe("dashboard.charts")||"Charts"}},{id:"gospel",get label(){return xe("dashboard.gospel_resources")||"Gospel Resources"},disabled:!0,why:"Waiting on three decisions: the official lostness number, key-less vs a registered Joshua Project key, and the UI shape. See IDEA-GOSPEL-RESOURCES-INTEGRATION-STRATEGY."}],o=ue("charts"),n=Ne("dashboardData",null),a=Ne("selectionBus",null),s=Ne("dashboardConfig",{}),r=(a==null?void 0:a.filterSet)||{},i=Object.fromEntries(Object.entries(s.facets||{}).map(([S,C])=>[S,C.get])),l=ca(a,la(s));function c(S){var $,L;const C=(($=n==null?void 0:n.rows)==null?void 0:$.value)||[],m=Object.keys(r).filter(v=>!S.includes(v)),g=!!(((L=a==null?void 0:a.searchTerm)==null?void 0:L.value)||"").trim();if(!m.length&&!g)return C;const d=C.filter(v=>m.every(w=>{const P=i[w];return P?P(v)===r[w]:!0}));return ua(d,l)}const u=re(()=>{var m,g,d,$,L;const S=(g=(m=s.facets)==null?void 0:m.country_code)==null?void 0:g.get,C=($=(d=s.facets)==null?void 0:d.wagf_region)==null?void 0:$.get;return!S||!C?null:A0(((L=n==null?void 0:n.rows)==null?void 0:L.value)||[],S,C)}),p=re(()=>(s.charts||[]).map(S=>{var d,$;const C=(($=(d=s.facets)==null?void 0:d[S.facet])==null?void 0:$.get)||(L=>nt(L[S.facet])),m=oi(c([S.facet]),C,S.topN),g=S.facet==="country_code"?u.value:null;return{id:S.id,type:S.type,facet:S.facet,title:S.title,geometry:S.type==="bar"?E0(m,S.facet,g):P0(m,132,.58,S.facet,g)}})),h=(S,C)=>r[S]===C,_=S=>r[S]!=null;function x(S,C){!C||C==="Other"||!a||a.setFilter(S,r[S]===C?null:C)}function k(S){const C=S.target&&S.target.closest&&S.target.closest("[data-facet]");C&&x(C.getAttribute("data-facet"),C.getAttribute("data-key"))}return Dt(`
+`,"rd-datatable"),(Y,$e)=>(ee(),se("div",{ref_key:"wrapEl",ref:X,class:ze(["rd-table-wrap",{"is-full":O.value}]),"data-sel-count":he.value,"data-fullscreen":O.value?"1":"0"},[T("div",{class:"rd-table-bar","data-collapsed":g.value?"1":"0"},[T("button",{class:"rd-dock",title:g.value?t("dashboard.expand_table","Expand table"):t("dashboard.collapse_table","Collapse table — grow the map"),"data-table-dock":"","aria-expanded":g.value?"false":"true",onClick:b},ge(g.value?"▴":"▾"),9,i1),T("span",c1,ge(t("legend.titleBar.peopleGroups","People Groups")),1),T("span",u1,ge(r(ve.value))+" "+ge(ve.value===1?t("dashboard.group","group"):t("dashboard.groups","groups")),1),he.value?(ee(),se("span",p1,[T("span",null,ge(r(he.value))+" selected",1)])):Ye("",!0),he.value?(ee(),se(Fe,{key:1},[T("button",{class:ze(["rd-vtog",{on:y.value}]),"data-only-selected":"","aria-pressed":y.value?"true":"false",title:"Show only the selected people groups",onClick:P},"Only selected",10,d1),T("button",{class:ze(["rd-vtog",{on:w.value}]),"data-selected-first":"","aria-pressed":w.value?"true":"false",title:"Float the selected people groups to the top, keeping your column sort",onClick:q},"Selected first",10,g1)],64)):Ye("",!0),$e[0]||($e[0]=T("span",{class:"rd-bar-sp"},null,-1)),Ze.value?(ee(),se("span",f1,ge(Ze.value),1)):Ye("",!0),T("button",{class:ze(["rd-fs",{on:O.value}]),"data-table-fullscreen":"","aria-pressed":O.value?"true":"false",title:O.value?"Exit full screen (Esc) — back to seven rows":"Open this table full screen","aria-label":O.value?"Exit full screen":"Open table full screen",onClick:ie},ge((O.value?"⤡ ":"⤢ ")+t("buttons.toggleFullscreen","Full screen")),11,h1),T("span",{class:ze(["rd-csv",{busy:We.value}]),role:"button",tabindex:"0","data-csv-btn":"","aria-busy":We.value?"true":"false",title:he.value?`Export the ${he.value} selected people groups — all fields`:`Export these ${r(ve.value)} people groups — all fields`,onClick:Eo,onMouseenter:mt,onFocus:mt,onKeydown:[Za(hn(Eo,["prevent"]),["enter"]),Za(hn(Eo,["prevent"]),["space"])]},[lt(ge(We.value?"…":"↓")+" "+ge(t("dashboard.export_csv","Export CSV")),1),he.value?(ee(),se("span",$1,ge(he.value),1)):Ye("",!0)],42,m1)],8,l1),Gt(T("div",{ref_key:"scroller",ref:H,class:"rd-grid",role:"grid","aria-multiselectable":"true","data-sort-scope":"view-local","data-sort-by":d.value.map(be=>be.key+":"+be.dir).join(","),"aria-rowcount":z.value.length+1,onScroll:te,onClick:E,onMousedown:L},[T("div",{class:"rd-thead",role:"row",style:pt(p.value)},[T("div",{class:"rd-th chk",style:{cursor:"pointer"},title:(j.value?t("dashboard.deselect_all","Deselect all"):t("dashboard.select_all","Select all"))+" "+r(ve.value),onClick:J},[T("input",{type:"checkbox",checked:j.value,ref:ne,"aria-label":j.value?t("aria.deselectAllRows","Deselect all rows"):t("aria.selectAllRows","Select all rows"),tabindex:"-1",style:{"pointer-events":"none"}},null,8,y1)],8,_1),(ee(!0),se(Fe,null,st(l.value,be=>(ee(),se("div",{key:be.key,class:ze(["rd-th",{num:be.type==="num"}]),style:pt(c(be)),title:`Sort this table by ${be.label} — shift-click to add a second column. Sorting orders the table only; the cards keep their own order.`,role:"columnheader","aria-sort":$(be),"data-col":be.key,onClick:Ue=>f(be,Ue)},[lt(ge(be.label),1),T("span",k1,ge($(be)==="ascending"?"▲":$(be)==="descending"?"▼":""),1)],14,v1))),128))],4),T("div",{style:pt({height:U.value+"px"})},null,4),(ee(!0),se(Fe,null,st(V.value,(be,Ue)=>(ee(),se("div",{key:be.slug,class:ze(["rd-row",{sel:Le.value>=0&&ke(be)}]),role:"row","data-slug":be.slug,"aria-selected":ke(be)?"true":"false",style:pt(p.value),"aria-rowindex":G.value+Ue+2},[T("div",x1,[T("input",{type:"checkbox",class:"rd-rowchk",checked:ke(be),"aria-label":"Select "+be.name,tabindex:"-1",style:{"pointer-events":"none"}},null,8,S1)]),(ee(!0),se(Fe,null,st(l.value,Ge=>(ee(),se("div",{key:Ge.key,class:ze(["rd-td",{num:Ge.type==="num"}]),style:pt(c(Ge)),role:"gridcell"},ge(Ge.type==="num"?r(Ge.get(be)):Ge.get(be)),7))),128))],14,w1))),128)),T("div",{style:pt({height:oe.value+"px"})},null,4)],40,b1),[[Ht,!g.value]]),Gt(T("div",A1,[T("div",{class:"rd-foot-inner",style:pt([p.value,{transform:"translateX("+-F.value+"px)"}])},[$e[1]||($e[1]=T("div",{class:"rd-td chk"},null,-1)),(ee(!0),se(Fe,null,st(l.value,(be,Ue)=>(ee(),se("div",{key:"f-"+be.key,class:ze(["rd-td",{num:be.type==="num"}]),style:pt(c(be))},[Ue===0?(ee(),se(Fe,{key:0},[lt("Σ "+ge(r(ve.value))+" groups",1)],64)):be.key==="population"?(ee(),se(Fe,{key:1},[lt(ge(r(K.value)),1)],64)):Ye("",!0)],6))),128))],4)],512),[[Ht,!g.value]])],10,r1))}},R1={class:"rd-tabs",role:"tablist","aria-label":"Rail views"},T1=["aria-selected","disabled","title","data-tab","onClick"],N1=["data-chart"],M1={class:"rd-ct"},F1={class:"rd-donutwrap"},O1=["aria-label"],I1=["d","fill","data-facet","data-key"],D1={class:"rd-legend"},G1=["data-facet","data-key","title"],U1={class:"rd-lt"},z1=["data-chart"],j1={class:"rd-ct"},B1={class:"rd-bars"},V1=["data-facet","data-key"],q1={class:"rd-bl"},H1={class:"rd-bt"},W1={class:"rd-bv"},K1={__name:"DashboardChartsRail",setup(e){const t=[{id:"charts",get label(){return we("dashboard.charts")||"Charts"}},{id:"gospel",get label(){return we("dashboard.gospel_resources")||"Gospel Resources"},disabled:!0,why:"Waiting on three decisions: the official lostness number, key-less vs a registered Joshua Project key, and the UI shape. See IDEA-GOSPEL-RESOURCES-INTEGRATION-STRATEGY."}],o=ue("charts"),n=Te("dashboardData",null),a=Te("selectionBus",null),s=Te("dashboardConfig",{}),r=(a==null?void 0:a.filterSet)||{},l=Object.fromEntries(Object.entries(s.facets||{}).map(([A,C])=>[A,C.get])),i=ca(a,ia(s));function c(A){var $,x;const C=(($=n==null?void 0:n.rows)==null?void 0:$.value)||[],m=Object.keys(r).filter(y=>!A.includes(y)),d=!!(((x=a==null?void 0:a.searchTerm)==null?void 0:x.value)||"").trim();if(!m.length&&!d)return C;const f=C.filter(y=>m.every(w=>{const P=l[w];return P?P(y)===r[w]:!0}));return ua(f,i)}const u=re(()=>{var m,d,f,$,x;const A=(d=(m=s.facets)==null?void 0:m.country_code)==null?void 0:d.get,C=($=(f=s.facets)==null?void 0:f.wagf_region)==null?void 0:$.get;return!A||!C?null:L0(((x=n==null?void 0:n.rows)==null?void 0:x.value)||[],A,C)}),p=re(()=>(s.charts||[]).map(A=>{var f,$;const C=(($=(f=s.facets)==null?void 0:f[A.facet])==null?void 0:$.get)||(x=>nt(x[A.facet])),m=ol(c([A.facet]),C,A.topN),d=A.facet==="country_code"?u.value:null;return{id:A.id,type:A.type,facet:A.facet,title:A.title,geometry:A.type==="bar"?E0(m,A.facet,d):P0(m,132,.58,A.facet,d)}})),h=(A,C)=>r[A]===C,_=A=>r[A]!=null;function S(A,C){!C||C==="Other"||!a||a.setFilter(A,r[A]===C?null:C)}function k(A){const C=A.target&&A.target.closest&&A.target.closest("[data-facet]");C&&S(C.getAttribute("data-facet"),C.getAttribute("data-key"))}return Dt(`
.rd-charts{ display:flex; flex-direction:column; gap:var(--s2,8px); height:100%; min-height:0;
padding:6px 2px 6px 6px;
background:var(--rd-panel,#fff); overflow-y:auto; overflow-x:hidden; box-sizing:border-box;
@@ -604,7 +604,7 @@
.rd-bt{ flex:1 1 auto; height:11px; background:var(--dx-surface, #f3f3f1); border-radius:3px; overflow:hidden; }
.rd-bf{ display:block; height:100%; border-radius:3px; transition:width .35s cubic-bezier(.4,0,.2,1); }
.rd-bv{ flex:0 0 auto; color:var(--rd-muted, #6d766e); font-variant-numeric:tabular-nums; min-width:30px; text-align:right; }
-`,"rd-charts"),(S,C)=>(ee(),se("aside",{class:"rd-charts","data-region":"charts-rail",onClick:k},[N("div",T1,[(ee(),se(Oe,null,st(t,m=>N("button",{key:m.id,class:je(["rd-tab",{on:o.value===m.id,off:m.disabled}]),role:"tab",type:"button","aria-selected":o.value===m.id?"true":"false",disabled:m.disabled,title:m.disabled?m.why:m.label,"data-tab":m.id,onClick:hn(g=>!m.disabled&&(o.value=m.id),["stop"])},fe(m.label),11,N1)),64))]),(ee(!0),se(Oe,null,st(p.value,m=>(ee(),se(Oe,{key:m.id},[m.type==="donut"?(ee(),se("div",{key:0,class:"rd-chart","data-chart":m.facet},[N("div",M1,fe(m.title),1),N("div",O1,[(ee(),se("svg",{class:je(["rd-donut",{"has-sel":_(m.facet)}]),viewBox:"0 0 132 132",role:"img","aria-label":m.title+" donut"},[(ee(!0),se(Oe,null,st(m.geometry,g=>(ee(),se("path",{key:g.key,d:g.path,fill:g.color,class:je(["rd-slice",{on:h(m.facet,g.key)}]),"data-facet":m.facet,"data-key":g.key},[N("title",null,fe(g.key)+": "+fe(g.value)+" ("+fe(g.pct)+"%)",1)],10,I1))),128))],10,F1)),N("div",D1,[(ee(!0),se(Oe,null,st(m.geometry,g=>(ee(),se("span",{key:g.key,class:je(["rd-li",{on:h(m.facet,g.key)}]),"data-facet":m.facet,"data-key":g.key,title:g.key+": "+g.value},[N("i",{style:dt({background:g.color})},null,4),N("span",G1,fe(g.key),1),N("b",null,fe(g.value),1)],10,U1))),128))])])],8,R1)):(ee(),se("div",{key:1,class:"rd-chart","data-chart":m.facet},[N("div",z1,fe(m.title),1),N("div",B1,[(ee(!0),se(Oe,null,st(m.geometry,g=>(ee(),se("div",{key:g.key,class:je(["rd-bar",{on:h(m.facet,g.key)}]),"data-facet":m.facet,"data-key":g.key},[N("span",q1,fe(g.key),1),N("span",H1,[N("span",{class:"rd-bf",style:dt({width:g.frac*100+"%",background:g.color})},null,4)]),N("span",W1,fe(g.value),1)],10,V1))),128))])],8,j1))],64))),128))]))}},Y1={class:"rd-detail","data-region":"detail-drawer"},X1={class:"rd-dh"},Z1={key:0,class:"rd-empty","data-detail-empty":""},J1={class:"rd-top"},Q1=["src","alt"],ek={key:1,class:"rd-ph","data-detail-thumb":""},tk={class:"rd-name","data-detail-name":""},ok={class:"rd-meta"},nk={class:"rd-actions"},ak=["href","title"],sk=["href","title"],rk={class:"rd-rows"},ik={class:"rd-row"},lk={class:"v"},ck={key:0,class:"fam"},uk={class:"rd-row"},dk={class:"v"},pk={class:"rd-row"},gk={class:"v"},fk={class:"rd-row"},hk={class:"v"},mk={class:"rd-row"},$k={class:"v"},bk={class:"rd-row"},_k={class:"v"},yk={__name:"DashboardDetailDrawer",setup(e){const t=Ne("dashboardData",null),o=Ne("selectionBus",null),n=Ne("dashboardConfig",{}),a=Object.fromEntries(Object.entries(n.facets||{}).map(([d,$])=>[d,$.get])),{labelFor:s}=ia(n,Ne("dataStore",null),Ne("searchSourceId",null)),r=t&&o?Jr({rowStore:t.rowStore,rows:t.rows,selectionSet:o.selectionSet,filterSet:o.filterSet,FACET_ACC:a,labelFor:s}):null,i=ue(null),l=[];kt(()=>{o&&(l.push(o.on("focusRow",d=>{d&&d.slug&&(i.value=d.slug)})),l.push(o.on("select",d=>{const $=d?[...d]:[];$.length&&(i.value=$[$.length-1])})))}),Ft(()=>{l.forEach(d=>{try{d()}catch{}}),l.length=0});const c=re(()=>{const d=i.value;return!d||!t||!t.rowStore||!t.rowStore.value?null:t.rowStore.value.get(d)||null}),u=d=>d==null||d===""?"—":Number(d).toLocaleString("en-US"),p=re(()=>{const d=c.value;return d?n.detail&&typeof n.detail.photo=="function"?!!n.detail.photo(d):!!(d.has_photo&&d.image_url):!1}),h=re(()=>n.detail||{});function _(d,$,L){if(typeof d=="function")try{return d($)||L}catch{return L}return typeof d=="string"&&d?d.replace("{slug}",encodeURIComponent($.slug||"")):L}const x=re(()=>{const d=c.value;if(!d)return null;const $=(()=>{try{return new URLSearchParams(window.location.search).get("utm_source")||""}catch{return""}})(),L=encodeURIComponent(String($||h.value.utmSource||n.utmSource||"agwm")),v=`https://pray.doxa.life/${encodeURIComponent(d.slug||"")}?source=doxalife&utm_source=${L}`;return _(h.value.prayUrl,d,v)}),k=re(()=>{var P;const d=c.value;if(!d)return null;const $=typeof window<"u"&&((P=window.location)==null?void 0:P.origin)||"https://doxa.life",L=(()=>{try{return new URLSearchParams(window.location.search).get("utm_source")||""}catch{return""}})(),v=encodeURIComponent(String(L||h.value.utmSource||n.utmSource||"agwm")),w=`${$}/research/${encodeURIComponent(d.slug||"")}/?utm_source=${v}`;return _(h.value.moreInfoUrl,d,w)}),S=re(()=>h.value.prayLabel||"Pray for this people group"),C=re(()=>h.value.moreInfoLabel||"More information");function m(){!r||!o||(!o.selectionSet.size&&i.value&&o.toggleSelect(i.value),r.exportCsv())}function g(){i.value=null,o&&typeof o.clearSelection=="function"&&o.clearSelection()}return Dt(`
+`,"rd-charts"),(A,C)=>(ee(),se("aside",{class:"rd-charts","data-region":"charts-rail",onClick:k},[T("div",R1,[(ee(),se(Fe,null,st(t,m=>T("button",{key:m.id,class:ze(["rd-tab",{on:o.value===m.id,off:m.disabled}]),role:"tab",type:"button","aria-selected":o.value===m.id?"true":"false",disabled:m.disabled,title:m.disabled?m.why:m.label,"data-tab":m.id,onClick:hn(d=>!m.disabled&&(o.value=m.id),["stop"])},ge(m.label),11,T1)),64))]),(ee(!0),se(Fe,null,st(p.value,m=>(ee(),se(Fe,{key:m.id},[m.type==="donut"?(ee(),se("div",{key:0,class:"rd-chart","data-chart":m.facet},[T("div",M1,ge(m.title),1),T("div",F1,[(ee(),se("svg",{class:ze(["rd-donut",{"has-sel":_(m.facet)}]),viewBox:"0 0 132 132",role:"img","aria-label":m.title+" donut"},[(ee(!0),se(Fe,null,st(m.geometry,d=>(ee(),se("path",{key:d.key,d:d.path,fill:d.color,class:ze(["rd-slice",{on:h(m.facet,d.key)}]),"data-facet":m.facet,"data-key":d.key},[T("title",null,ge(d.key)+": "+ge(d.value)+" ("+ge(d.pct)+"%)",1)],10,I1))),128))],10,O1)),T("div",D1,[(ee(!0),se(Fe,null,st(m.geometry,d=>(ee(),se("span",{key:d.key,class:ze(["rd-li",{on:h(m.facet,d.key)}]),"data-facet":m.facet,"data-key":d.key,title:d.key+": "+d.value},[T("i",{style:pt({background:d.color})},null,4),T("span",U1,ge(d.key),1),T("b",null,ge(d.value),1)],10,G1))),128))])])],8,N1)):(ee(),se("div",{key:1,class:"rd-chart","data-chart":m.facet},[T("div",j1,ge(m.title),1),T("div",B1,[(ee(!0),se(Fe,null,st(m.geometry,d=>(ee(),se("div",{key:d.key,class:ze(["rd-bar",{on:h(m.facet,d.key)}]),"data-facet":m.facet,"data-key":d.key},[T("span",q1,ge(d.key),1),T("span",H1,[T("span",{class:"rd-bf",style:pt({width:d.frac*100+"%",background:d.color})},null,4)]),T("span",W1,ge(d.value),1)],10,V1))),128))])],8,z1))],64))),128))]))}},Y1={class:"rd-detail","data-region":"detail-drawer"},X1={class:"rd-dh"},Z1={key:0,class:"rd-empty","data-detail-empty":""},J1={class:"rd-top"},Q1=["src","alt"],ek={key:1,class:"rd-ph","data-detail-thumb":""},tk={class:"rd-name","data-detail-name":""},ok={class:"rd-meta"},nk={class:"rd-actions"},ak=["href","title"],sk=["href","title"],rk={class:"rd-rows"},lk={class:"rd-row"},ik={class:"v"},ck={key:0,class:"fam"},uk={class:"rd-row"},pk={class:"v"},dk={class:"rd-row"},gk={class:"v"},fk={class:"rd-row"},hk={class:"v"},mk={class:"rd-row"},$k={class:"v"},bk={class:"rd-row"},_k={class:"v"},yk={__name:"DashboardDetailDrawer",setup(e){const t=($,x)=>we($)||x,o=Te("dashboardData",null),n=Te("selectionBus",null),a=Te("dashboardConfig",{}),s=Object.fromEntries(Object.entries(a.facets||{}).map(([$,x])=>[$,x.get])),{labelFor:r}=la(a,Te("dataStore",null),Te("searchSourceId",null)),l=o&&n?Jr({rowStore:o.rowStore,rows:o.rows,selectionSet:n.selectionSet,filterSet:n.filterSet,FACET_ACC:s,labelFor:r}):null,i=ue(null),c=[];kt(()=>{n&&(c.push(n.on("focusRow",$=>{$&&$.slug&&(i.value=$.slug)})),c.push(n.on("select",$=>{const x=$?[...$]:[];x.length&&(i.value=x[x.length-1])})))}),Ot(()=>{c.forEach($=>{try{$()}catch{}}),c.length=0});const u=re(()=>{const $=i.value;return!$||!o||!o.rowStore||!o.rowStore.value?null:o.rowStore.value.get($)||null}),p=$=>$==null||$===""?"—":Number($).toLocaleString("en-US"),h=re(()=>{const $=u.value;return $?a.detail&&typeof a.detail.photo=="function"?!!a.detail.photo($):!!($.has_photo&&$.image_url):!1}),_=re(()=>a.detail||{});function S($,x,y){if(typeof $=="function")try{return $(x)||y}catch{return y}return typeof $=="string"&&$?$.replace("{slug}",encodeURIComponent(x.slug||"")):y}const k=re(()=>{const $=u.value;if(!$)return null;const x=(()=>{try{return new URLSearchParams(window.location.search).get("utm_source")||""}catch{return""}})(),y=encodeURIComponent(String(x||_.value.utmSource||a.utmSource||"agwm")),w=`https://pray.doxa.life/${encodeURIComponent($.slug||"")}?source=doxalife&utm_source=${y}`;return S(_.value.prayUrl,$,w)}),A=re(()=>{var q;const $=u.value;if(!$)return null;const x=typeof window<"u"&&((q=window.location)==null?void 0:q.origin)||"https://doxa.life",y=(()=>{try{return new URLSearchParams(window.location.search).get("utm_source")||""}catch{return""}})(),w=encodeURIComponent(String(y||_.value.utmSource||a.utmSource||"agwm")),P=`${x}/research/${encodeURIComponent($.slug||"")}/?utm_source=${w}`;return S(_.value.moreInfoUrl,$,P)}),C=re(()=>_.value.prayLabel||"Pray for this people group"),m=re(()=>_.value.moreInfoLabel||"More information");function d(){!l||!n||(!n.selectionSet.size&&i.value&&n.toggleSelect(i.value),l.exportCsv())}function f(){i.value=null,n&&typeof n.clearSelection=="function"&&n.clearSelection()}return Dt(`
.rd-detail{ box-sizing:border-box; background:var(--rd-panel,#fff); border-left:1px solid var(--rd-line, #d1d4cd);
border-bottom:1px solid var(--rd-line, #d1d4cd); padding:var(--s3,12px);
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; color:var(--rd-ink, #3b463d); flex:0 0 auto; }
@@ -643,7 +643,7 @@
.rd-detail .rd-act-info{ flex:0 1 auto; background:var(--rd-bg, #f3f3f1); color:var(--rd-ink, #3b463d);
border:1px solid var(--rd-line, #d1d4cd); }
.rd-detail .rd-act-info:hover{ background:var(--rd-panel,#fff); border-color:var(--rd-muted, #6d766e); }
-`,"rd-detaildrawer"),(d,$)=>(ee(),se("section",Y1,[N("div",X1,[$[0]||($[0]=N("span",null,"Detail",-1)),c.value?(ee(),se("button",{key:0,class:"rd-detail-close",type:"button","aria-label":"Close detail","data-detail-close":"",onClick:g},"✕")):Ye("",!0)]),c.value?(ee(),se(Oe,{key:1},[N("div",J1,[p.value?(ee(),se("img",{key:0,class:"rd-thumb",src:c.value.image_url,alt:c.value.name,"data-detail-thumb":""},null,8,Q1)):(ee(),se("div",ek,"No photo")),N("div",null,[N("div",tk,fe(c.value.name||"—"),1),N("div",ok,fe(de(nt)(c.value.country_code)||"—")+" · "+fe(de(nt)(c.value.religion)||"—"),1)])]),N("div",nk,[x.value?(ee(),se("a",{key:0,class:"rd-act rd-act-pray",href:x.value,target:"_blank",rel:"noopener",title:S.value,"data-detail-pray":""},[$[1]||($[1]=N("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true"},[N("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),N("span",null,fe(S.value),1)],8,ak)):Ye("",!0),k.value?(ee(),se("a",{key:1,class:"rd-act rd-act-info",href:k.value,target:"_blank",rel:"noopener",title:C.value,"data-detail-moreinfo":""},[$[2]||($[2]=N("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true"},[N("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),N("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),N("span",null,fe(C.value),1)],8,sk)):Ye("",!0)]),N("div",rk,[N("div",ik,[$[3]||($[3]=N("span",{class:"k"},"Language",-1)),N("span",lk,[it(fe(de(nt)(c.value.primary_language)||"—"),1),c.value.imb_language_family?(ee(),se("span",ck," ("+fe(c.value.imb_language_family)+")",1)):Ye("",!0)])]),N("div",uk,[$[4]||($[4]=N("span",{class:"k"},"Population",-1)),N("span",dk,fe(u(c.value.population)),1)]),N("div",pk,[$[5]||($[5]=N("span",{class:"k"},"People praying",-1)),N("span",gk,fe(u(c.value.people_praying)),1)]),N("div",fk,[$[6]||($[6]=N("span",{class:"k"},"People committed",-1)),N("span",hk,fe(u(c.value.people_committed)),1)]),N("div",mk,[$[7]||($[7]=N("span",{class:"k"},"Adopted by churches",-1)),N("span",$k,fe(u(c.value.adopted_by_churches)),1)]),N("div",bk,[$[8]||($[8]=N("span",{class:"k"},"Engagement",-1)),N("span",_k,fe(de(nt)(c.value.engagement_status)||"—"),1)])]),N("button",{class:"rd-exp",type:"button","data-detail-export":"",onClick:m},"Export this selection ↓")],64)):(ee(),se("div",Z1,"Select a people group to see detail"))]))}},vk="rgba(120, 128, 134, 0.28)",$d="36px",bd=()=>{};function kk(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return bd;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return bd;const a=m=>m.classList.contains("map-scroll-edge--left");for(const m of n)m.style.background=`linear-gradient(${a(m)?"to right":"to left"}, ${vk} ${$d}, transparent ${$d})`,m.style.opacity="0",m.style.transition="opacity 0.16s ease",m.style.userSelect="none",m.style.webkitUserSelect="none";const s=m=>{m.style.opacity="1"},r=m=>{m.style.opacity="0"},i=()=>n.find(m=>!a(m))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const m of n)l.has(m)||r(m)},h=()=>{const m=i();m&&(s(m),u&&clearTimeout(u),u=setTimeout(p,250))},_=()=>h(),x=m=>{if(!(m.touches&&m.touches.length===1))return;const g=m.target;g&&g.classList&&g.classList.contains("map-scroll-edge")||h()},k=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",_,{passive:!0}),e.addEventListener("touchmove",x,{passive:!0}),e.addEventListener("touchend",k,{passive:!0}),e.addEventListener("touchcancel",k,{passive:!0});const S=()=>{c||h()};typeof window<"u"&&window.addEventListener("scroll",S,{passive:!0});const C=[];for(const m of n){const g=()=>{l.add(m),s(m)},d=()=>{l.delete(m),r(m)},$=()=>{c=!0,s(m)},L=()=>{c=!1,r(m)};m.addEventListener("mouseenter",g),m.addEventListener("mouseleave",d),m.addEventListener("touchstart",$,{passive:!0}),m.addEventListener("touchend",L,{passive:!0}),C.push(()=>{m.removeEventListener("mouseenter",g),m.removeEventListener("mouseleave",d),m.removeEventListener("touchstart",$),m.removeEventListener("touchend",L)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",_),e.removeEventListener("touchmove",x),e.removeEventListener("touchend",k),e.removeEventListener("touchcancel",k),typeof window<"u"&&window.removeEventListener("scroll",S);for(const g of C)g();for(const g of n)r(g)}}const wk=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 xk(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=wk[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 Sk(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 Lk=["mapbox","maplibre"],_d="mapbox";function Ak(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function yd(e){const t=Ak(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||_d).toLowerCase().trim();return Lk.includes(s)?s:_d}const Pk=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,vd=new WeakMap;function Ek(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function kd(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!Ek(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=vd.get(e);a||(a=new Map,vd.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 i=r.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(r.id))continue}else{if(!Pk.test(l))continue;a.set(r.id,i)}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 An={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 wd(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 Ck=An.mapbox.css,Tk="https://tiles.openfreemap.org/styles/liberty",Nk="https://tiles.openfreemap.org/styles/fiord";function ni(e){var o;const t=((o=An[e])==null?void 0:o.global)||An.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Rk(e){const t=An[e]||An.mapbox;if(ni(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(ni(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 Mk(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=r=>new Promise(i=>setTimeout(i,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 Ok(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Nk:Tk}const Fk=85.0511,ai=-2,Ik=0,Dk=-60;function xd(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Uk(e,t,o,n){if(!e||e<=0||!t||t<=0)return Ik;const a=Math.log2(e/512),s=xd(n)-xd(Fk),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(ai,Math.min(i,(o??18)-1))}function Gk({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:s=[20,10],zoom:r=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:p=18,pitch:h=0,bearing:_=0,renderWorldCopies:x=!0,showEdgeBorders:k=!0,southCutoff:S=Dk,maxBounds:C=void 0}){const m=In(null),g=ue(!1);let d=null,$=null,L=null,v=null;try{v=Ne("profileConfig",null)}catch{}a=a||yd(v);const w=a==="maplibre";let P=null;try{P=Ne("lang",null)}catch{}const H=()=>{const ae=P&&typeof P=="object"&&"value"in P?P.value:P;if(typeof ae=="string"&&ae)return ae;const I=v&&typeof v=="object"&&"value"in v?v.value:v;if(I&&(I.locale||I.lang))return String(I.locale||I.lang);try{const q=new URLSearchParams(location.search);return q.get("lang")||q.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function M(){var Le;const ae=xk(o,a),I=ae.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const q=()=>!e.value;if(await Rk(a),q())return;const B=ni(a);if(!B){console.error(`[useMapInstance] ${w?"maplibregl":"mapboxgl"} is not available. Add the ${w?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Zu(B),!w){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 Mk(e.value,w?An.maplibre.css:Ck),q()||(await new Promise(ve=>requestAnimationFrame(ve)),q()))return;const O=e.value,te=O.clientWidth,U=O.clientHeight;if(te===0||U===0){console.error(`[useMapInstance] Container has ZERO dimensions (${te}×${U}). Map will be invisible. Check that parent elements have CSS sizing.`);let ve=O.parentElement,Q=0;for(;ve&&Q<5;)ve=ve.parentElement,Q++}const R=t;w||(B.accessToken=R);const V=()=>typeof window<"u"&&window.innerWidth>=1024,G=(ve,Q)=>{if(u)return typeof c=="number"?c:ai;if(!V())return ai;const pe=Uk(ve,Q,p,S);return typeof c=="number"?Math.max(c,pe):pe},oe=G(O.clientWidth,O.clientHeight),he=ae.lightPreset||(()=>{var ve;try{const Q=typeof n=="function"?n():n;return(ve=Q==null?void 0:Q.basemap)==null?void 0:ve.lightPreset}catch{return}})();if(w){m.value=new B.Map({container:e.value,style:Ok(I,he),center:s,zoom:r,minZoom:oe,maxZoom:p,pitch:h,bearing:_,dragRotate:!1,renderWorldCopies:x,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...C?{maxBounds:C}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),wd(m.value);try{e.value.__doxaMap=m.value}catch{}}else{const ve=typeof n=="function"?n():n;m.value=new B.Map({accessToken:R,container:e.value,style:I,...ve?{config:ve}:{},center:s,zoom:r,minZoom:oe,maxZoom:p,pitch:h,bearing:_,dragRotate:!1,touchPitch:!1,renderWorldCopies:x,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...C?{maxBounds:C}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),wd(m.value);try{e.value.__doxaMap=m.value}catch{}}try{let ve=!1;m.value.on("error",Q=>{var y,E;const pe=((y=Q==null?void 0:Q.error)==null?void 0:y.status)??(Q==null?void 0:Q.status),_e=String(((E=Q==null?void 0:Q.error)==null?void 0:E.url)||(Q==null?void 0:Q.sourceId)||"");pe!==401&&pe!==403||ve||(ve=!0,console.error(`[doxa-maps] Mapbox returned ${pe} 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.`+(_e?` First failing request: ${_e.slice(0,120)}`:"")))})}catch{}try{m.value.touchZoomRotate.disableRotation()}catch{}L=kk(((Le=e.value)==null?void 0:Le.parentElement)||null,{enabled:k});let ke=oe,Ae=null;d=()=>{const ve=m.value;if(!ve)return;const Q=G(O.clientWidth,O.clientHeight);Q!==ke&&(ke=Q,ve.setMinZoom(Q)),ve.getZoom(){Ae=null;const pe=m.value;if(!pe)return;const _e=G(O.clientWidth,O.clientHeight);if(pe.getZoom()<_e)try{pe.jumpTo({zoom:_e})}catch{pe.setZoom(_e)}},150)):Ae&&(clearTimeout(Ae),Ae=null)},$=()=>{Ae&&(clearTimeout(Ae),Ae=null)},m.value.on("resize",d),typeof window<"u"&&(window.addEventListener("resize",d),window.addEventListener("orientationchange",d)),m.value.on("style.load",()=>{if(m.value&&kd(m.value,H()),ae.paint&&m.value){const ve=Sk(m.value,ae.paint);console.info("[useMapInstance] style paint applied ("+a+"):",ve.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ve;(ve=m.value)==null||ve.resize(),m.value&&m.value.setMinZoom(G(O.clientWidth,O.clientHeight)),g.value=!0})})}function j(){if(m.value){if(d&&(m.value.off("resize",d),typeof window<"u"&&(window.removeEventListener("resize",d),window.removeEventListener("orientationchange",d)),d=null),$){try{$()}catch{}$=null}L&&(L(),L=null),m.value.remove(),m.value=null,g.value=!1}}if(P&&typeof P=="object"&&"value"in P)try{ct(P,()=>{m.value&&g.value&&kd(m.value,H())})}catch{}return{map:m,isMapReady:g,initializeMap:M,destroy:j}}const jk={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}};function zk(e){return jk[e]||null}const Pn={center:[20,10],zoom:1.8};function Bk(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(Pn==null?void 0:Pn.center)||[20,10],defaultZoom:r=Pn==null?void 0:Pn.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(I,q,B={x:150,y:0}){const O=t();if(!O)return I;try{const te=O.getCanvas(),U=te.width,R=te.height,V=O.project(I),G=window.devicePixelRatio||1,oe=(B.x||0)*G,he=(B.y||0)*G,ke={x:V.x-oe,y:V.y-he},Ae=O.unproject(ke);return[Ae.lng,Ae.lat]}catch{return I}}function c(I,q=[]){const B=t();if(!B)return;let O=null,te=5;const U=q.filter(V=>V.languageFamily===I);if(U.length>0){let V=1/0,G=-1/0,oe=1/0,he=-1/0;if(U.forEach(ke=>{ke.longitude&&ke.latitude&&(V=Math.min(V,ke.longitude),G=Math.max(G,ke.longitude),oe=Math.min(oe,ke.latitude),he=Math.max(he,ke.latitude))}),V!==1/0){O=[(V+G)/2,(oe+he)/2];const ke=G-V,Ae=he-oe,Le=Math.max(ke,Ae);Le>50?te=2:Le>20?te=3:Le>10?te=4:Le>5?te=5:te=6}}if(!O)return;const R=l(O);B.flyTo({center:R,zoom:te,...i})}function u(I){const q=t();if(!q)return;let B=null,O=4;const te=zk(I);if(te)B=te.center,O=te.zoom||4;else if(a!=null&&a.features){const R=a.features.find(V=>{var G,oe;return((G=V.properties)==null?void 0:G.region)===I||((oe=V.properties)==null?void 0:oe.name)===I});R&&(B=p(R))}if(!B)return;const U=l(B);q.flyTo({center:U,zoom:O,...i})}function p(I){if(!I||!I.geometry)return null;const{type:q,coordinates:B}=I.geometry;let O=[];if(q==="Polygon"?O=B[0]||[]:q==="MultiPolygon"&&B.forEach(R=>{O=O.concat(R[0]||[])}),O.length===0)return null;let te=0,U=0;return O.forEach(R=>{te+=R[0],U+=R[1]}),[te/O.length,U/O.length]}function h(I,q={}){const B=t();if(!B)return;const O={center:I,...i,...q};B.flyTo(O)}function _(I,q){const B=t();if(!B||(I==null?void 0:I.longitude)==null||(I==null?void 0:I.latitude)==null)return;const O=q??Math.min(B.getZoom()+2,8);h([I.longitude,I.latitude],{zoom:O})}function x(I,q={top:40,right:40,bottom:40,left:40},B={}){const O=t();if(!O||!I)return;const te=B.maxZoom??4,U=B.duration??900;O.fitBounds(I,{padding:q,maxZoom:te,duration:U,...i,...B})}function k(){const I=t();I&&I.flyTo({center:s,zoom:r,...i})}const S=80,C=800,m=5,g=5,d=110,$=1.2;function L(I){const q=I.filter(Number.isFinite).slice().sort((y,E)=>y-E),B=q.length;if(!B)return null;let O=-1,te=0;for(let y=0;yO&&(O=A,te=y)}const U=(te+1)%B,R=new Array(B);for(let y=0;y0&&E((y+180)%360+360)%360-180,Ae=ke(oe),Le=24,ve=360/Le,Q=new Array(Le).fill(0);for(const y of q){let E=Math.floor(((y+180)%360+360)%360/ve);E>=Le&&(E=Le-1),Q[E]++}let pe=0;for(let y=1;yQ[pe]&&(pe=y);return{center:ke(-180+(pe+.5)*ve),minLng:Ae,maxLng:Ae+(he-oe),span:he-oe}}function v(I){try{const q=I.getContainer&&I.getContainer().clientWidth||0,B=q>0?Math.log2(q/512):$,O=typeof I.getMinZoom=="function"?I.getMinZoom():B;return Math.max(O,B)}catch{return $}}function w(I,q,B,O){I.easeTo({center:[q,(B+O)/2],zoom:v(I),duration:C,essential:!0})}function P(I,q,B){if(B>d)return!0;try{const O=typeof I.cameraForBounds=="function"?I.cameraForBounds(q,{padding:S,maxZoom:m}):null;return O==null?!0:typeof O.zoom=="number"&&O.zoom<=v(I)+.05}catch{return!1}}function H(I,q){if(!Array.isArray(I))return I;switch(I[0]){case"get":return q==null?void 0:q[I[1]];case"literal":return I[1];case"has":return q!=null&&I[1]in q;case"!has":return q==null||!(I[1]in q);case"!":return!H(I[1],q);case"coalesce":{for(let O=1;O2){const U=Number(H(I[2],q));return Number.isFinite(U)?U:0}return NaN}case"to-string":{const O=H(I[1],q);return O==null?"":String(O)}case"to-boolean":return!!H(I[1],q);case"slice":{const O=H(I[1],q),te=H(I[2],q),U=I.length>3?H(I[3],q):void 0;return typeof O!="string"?"":U!=null?O.slice(te,U):O.slice(te)}default:return I}}function M(I,q){if(I===!0)return!0;if(I===!1)return!1;if(!Array.isArray(I))return!!I;const B=I[0];if(B==="all"){for(let O=1;O"||B===">="||B==="<"||B==="<="){const O=typeof I[1]=="string"?q==null?void 0:q[I[1]]:H(I[1],q),te=H(I[2],q);switch(B){case"==":return O===te||O==null&&te==null;case"!=":return!(O===te||O==null&&te==null);case">":return O>te;case">=":return O>=te;case"<":return O{const z=(A==null?void 0:A.properties)||{};return z.region===y||z.name===y||z.id===y});if(E){const A=[];let z=1/0,Z=-1/0;const J=ne=>{for(const f of ne)Array.isArray(f[0])?J(f):Number.isFinite(f[0])&&Number.isFinite(f[1])&&(A.push(f[0]),f[1]Z&&(Z=f[1]))};(Q=E.geometry)!=null&&Q.coordinates&&J(E.geometry.coordinates);const ie=L(A);if(ie&&Number.isFinite(z)){const ne=[[ie.minLng,z],[ie.maxLng,Z]];P(B,ne,ie.span)?w(B,ie.center,z,Z):B.fitBounds(ne,{padding:S,maxZoom:m,duration:C,essential:!0});return}}}const O=q.sourceId??"language-families";if(!B.getSource(O))return;const te=q.matchExpr??I.filter;if(!te)return;const U=j(B,O);if(!U.length)return;const R=[];let V=1/0,G=-1/0,oe=0,he=0,ke=0;const Ae=new Set;for(const _e of U){const y=_e==null?void 0:_e.properties;if(!M(te,y))continue;const E=y==null?void 0:y.uniqueId;if(E!=null){if(Ae.has(E))continue;Ae.add(E)}const A=(pe=_e.geometry)==null?void 0:pe.coordinates;if(!Array.isArray(A)||A.length<2)continue;const z=A[0],Z=A[1];!Number.isFinite(z)||!Number.isFinite(Z)||(oe===0&&(he=z,ke=Z),R.push(z),ZG&&(G=Z),oe++)}if(oe===0)return;if(oe===1){B.flyTo({center:[he,ke],zoom:g,duration:C,essential:!0});return}const Le=L(R)||{center:0,minLng:0,maxLng:0,span:0},ve=[[Le.minLng,V],[Le.maxLng,G]];if(P(B,ve,Le.span)){w(B,Le.center,V,G);return}try{B.fitBounds(ve,{padding:S,maxZoom:m,duration:C,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:h,flyToCoords:_,fitBounds:x,resetView:k,zoomToLegendRow:ae,calculateRegionCenterFromPolygon:p}}const Vk=150,qk=1200,Hk=70,Wk=5.5,Kk=6,Sd=.01,Yk=110,Xk=1.45;function Zk(){try{return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}function Jk(e){if(!e)return null;const t=Number(e.longitude),o=Number(e.latitude);return!Number.isFinite(t)||!Number.isFinite(o)||t===0&&o===0||o<-90||o>90||t<-180||t>180?null:[t,o]}function Qk(e){let t=1/0,o=-1/0,n=1/0,a=-1/0;for(const i of e){io&&(o=i);const l=i<0?i+360:i;la&&(a=l)}if(!Number.isFinite(t))return null;const s=o-t,r=a-n;if(r180?n-360:n;return{minLng:i,maxLng:i+r,span:r}}return{minLng:t,maxLng:o,span:s}}function ew(e,t){if(!e||!e.size||!t)return null;const o=[];let n=1/0,a=-1/0,s=null,r=0;for(const l of e){const c=Jk(t.get(l));c&&(r===0&&(s=c),o.push(c[0]),c[1]a&&(a=c[1]),r++)}if(r===0)return null;if(r===1)return{kind:"point",center:s};const i=Qk(o);return i?i.span!0}){if(!e||!e.selectionVersion)return()=>{};let s=null;function r(){if(s=null,!(t&&t())||!a())return;const c=ew(e.selectionSet,o&&o());if(!c)return;const u=Zk()?0:qk;try{if(c.kind==="point"){n.flyTo(c.center,{zoom:Kk,duration:u,essential:!0});return}if(c.span>Yk){n.flyTo([(c.bounds[0][0]+c.bounds[1][0])/2,(c.bounds[0][1]+c.bounds[1][1])/2],{zoom:Xk,duration:u,essential:!0});return}n.fitBounds(c.bounds,Hk,{maxZoom:Wk,duration:u,essential:!0})}catch{}}const i=ct(()=>e.selectionVersion.value,()=>{s&&clearTimeout(s),s=setTimeout(r,Vk)});return function(){s&&(clearTimeout(s),s=null);try{i()}catch{}}}const ow={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=ue(null);return bt("mapToolbar",{el:t}),Dt(`
+`,"rd-detaildrawer"),($,x)=>(ee(),se("section",Y1,[T("div",X1,[T("span",null,ge(t("dashboard.detail","Detail")),1),u.value?(ee(),se("button",{key:0,class:"rd-detail-close",type:"button","aria-label":"Close detail","data-detail-close":"",onClick:f},"✕")):Ye("",!0)]),u.value?(ee(),se(Fe,{key:1},[T("div",J1,[h.value?(ee(),se("img",{key:0,class:"rd-thumb",src:u.value.image_url,alt:u.value.name,"data-detail-thumb":""},null,8,Q1)):(ee(),se("div",ek,"No photo")),T("div",null,[T("div",tk,ge(u.value.name||"—"),1),T("div",ok,ge(pe(nt)(u.value.country_code)||"—")+" · "+ge(pe(nt)(u.value.religion)||"—"),1)])]),T("div",nk,[k.value?(ee(),se("a",{key:0,class:"rd-act rd-act-pray",href:k.value,target:"_blank",rel:"noopener",title:C.value,"data-detail-pray":""},[x[0]||(x[0]=T("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true"},[T("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),T("span",null,ge(C.value),1)],8,ak)):Ye("",!0),A.value?(ee(),se("a",{key:1,class:"rd-act rd-act-info",href:A.value,target:"_blank",rel:"noopener",title:m.value,"data-detail-moreinfo":""},[x[1]||(x[1]=T("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true"},[T("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),T("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),T("span",null,ge(m.value),1)],8,sk)):Ye("",!0)]),T("div",rk,[T("div",lk,[x[2]||(x[2]=T("span",{class:"k"},"Language",-1)),T("span",ik,[lt(ge(pe(nt)(u.value.primary_language)||"—"),1),u.value.imb_language_family?(ee(),se("span",ck," ("+ge(u.value.imb_language_family)+")",1)):Ye("",!0)])]),T("div",uk,[x[3]||(x[3]=T("span",{class:"k"},"Population",-1)),T("span",pk,ge(p(u.value.population)),1)]),T("div",dk,[x[4]||(x[4]=T("span",{class:"k"},"People praying",-1)),T("span",gk,ge(p(u.value.people_praying)),1)]),T("div",fk,[x[5]||(x[5]=T("span",{class:"k"},"People committed",-1)),T("span",hk,ge(p(u.value.people_committed)),1)]),T("div",mk,[x[6]||(x[6]=T("span",{class:"k"},"Adopted by churches",-1)),T("span",$k,ge(p(u.value.adopted_by_churches)),1)]),T("div",bk,[x[7]||(x[7]=T("span",{class:"k"},"Engagement",-1)),T("span",_k,ge(pe(nt)(u.value.engagement_status)||"—"),1)])]),T("button",{class:"rd-exp",type:"button","data-detail-export":"",onClick:d},"Export this selection ↓")],64)):(ee(),se("div",Z1,ge(t("dashboard.detail_empty","Select a people group to see detail")),1))]))}},vk="rgba(120, 128, 134, 0.28)",$p="36px",bp=()=>{};function kk(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return bp;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return bp;const a=m=>m.classList.contains("map-scroll-edge--left");for(const m of n)m.style.background=`linear-gradient(${a(m)?"to right":"to left"}, ${vk} ${$p}, transparent ${$p})`,m.style.opacity="0",m.style.transition="opacity 0.16s ease",m.style.userSelect="none",m.style.webkitUserSelect="none";const s=m=>{m.style.opacity="1"},r=m=>{m.style.opacity="0"},l=()=>n.find(m=>!a(m))||null,i=new Set;let c=!1,u=null;const p=()=>{for(const m of n)i.has(m)||r(m)},h=()=>{const m=l();m&&(s(m),u&&clearTimeout(u),u=setTimeout(p,250))},_=()=>h(),S=m=>{if(!(m.touches&&m.touches.length===1))return;const d=m.target;d&&d.classList&&d.classList.contains("map-scroll-edge")||h()},k=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",_,{passive:!0}),e.addEventListener("touchmove",S,{passive:!0}),e.addEventListener("touchend",k,{passive:!0}),e.addEventListener("touchcancel",k,{passive:!0});const A=()=>{c||h()};typeof window<"u"&&window.addEventListener("scroll",A,{passive:!0});const C=[];for(const m of n){const d=()=>{i.add(m),s(m)},f=()=>{i.delete(m),r(m)},$=()=>{c=!0,s(m)},x=()=>{c=!1,r(m)};m.addEventListener("mouseenter",d),m.addEventListener("mouseleave",f),m.addEventListener("touchstart",$,{passive:!0}),m.addEventListener("touchend",x,{passive:!0}),C.push(()=>{m.removeEventListener("mouseenter",d),m.removeEventListener("mouseleave",f),m.removeEventListener("touchstart",$),m.removeEventListener("touchend",x)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",_),e.removeEventListener("touchmove",S),e.removeEventListener("touchend",k),e.removeEventListener("touchcancel",k),typeof window<"u"&&window.removeEventListener("scroll",A);for(const d of C)d();for(const d of n)r(d)}}const wk=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 xk(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=wk[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 Sk(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 Ak=["mapbox","maplibre"],_p="mapbox";function Lk(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function yp(e){const t=Lk(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||_p).toLowerCase().trim();return Ak.includes(s)?s:_p}const Pk=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,vp=new WeakMap;function Ek(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function kp(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!Ek(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=vp.get(e);a||(a=new Map,vp.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(!Pk.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 Ln={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 wp(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 Ck=Ln.mapbox.css,Rk="https://tiles.openfreemap.org/styles/liberty",Tk="https://tiles.openfreemap.org/styles/fiord";function nl(e){var o;const t=((o=Ln[e])==null?void 0:o.global)||Ln.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Nk(e){const t=Ln[e]||Ln.mapbox;if(nl(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(nl(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 Mk(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 Fk(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Tk:Rk}const Ok=85.0511,al=-2,Ik=0,Dk=-60;function xp(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Gk(e,t,o,n){if(!e||e<=0||!t||t<=0)return Ik;const a=Math.log2(e/512),s=xp(n)-xp(Ok),r=Math.log2(t/(512*s)),l=Math.max(a,r);return Math.max(al,Math.min(l,(o??18)-1))}function Uk({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:p=18,pitch:h=0,bearing:_=0,renderWorldCopies:S=!0,showEdgeBorders:k=!0,southCutoff:A=Dk,maxBounds:C=void 0}){const m=In(null),d=ue(!1);let f=null,$=null,x=null,y=null;try{y=Te("profileConfig",null)}catch{}a=a||yp(y);const w=a==="maplibre";let P=null;try{P=Te("lang",null)}catch{}const q=()=>{const ae=P&&typeof P=="object"&&"value"in P?P.value:P;if(typeof ae=="string"&&ae)return ae;const I=y&&typeof y=="object"&&"value"in y?y.value:y;if(I&&(I.locale||I.lang))return String(I.locale||I.lang);try{const H=new URLSearchParams(location.search);return H.get("lang")||H.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function M(){var Ae;const ae=xk(o,a),I=ae.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const H=()=>!e.value;if(await Nk(a),H())return;const B=nl(a);if(!B){console.error(`[useMapInstance] ${w?"maplibregl":"mapboxgl"} is not available. Add the ${w?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Zu(B),!w){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 Mk(e.value,w?Ln.maplibre.css:Ck),H()||(await new Promise(ye=>requestAnimationFrame(ye)),H()))return;const F=e.value,te=F.clientWidth,G=F.clientHeight;if(te===0||G===0){console.error(`[useMapInstance] Container has ZERO dimensions (${te}×${G}). Map will be invisible. Check that parent elements have CSS sizing.`);let ye=F.parentElement,Q=0;for(;ye&&Q<5;)ye=ye.parentElement,Q++}const N=t;w||(B.accessToken=N);const V=()=>typeof window<"u"&&window.innerWidth>=1024,U=(ye,Q)=>{if(u)return typeof c=="number"?c:al;if(!V())return al;const de=Gk(ye,Q,p,A);return typeof c=="number"?Math.max(c,de):de},oe=U(F.clientWidth,F.clientHeight),he=ae.lightPreset||(()=>{var ye;try{const Q=typeof n=="function"?n():n;return(ye=Q==null?void 0:Q.basemap)==null?void 0:ye.lightPreset}catch{return}})();if(w){m.value=new B.Map({container:e.value,style:Fk(I,he),center:s,zoom:r,minZoom:oe,maxZoom:p,pitch:h,bearing:_,dragRotate:!1,renderWorldCopies:S,...l?{bounds:l,...i?{fitBoundsOptions:i}:{}}:{},...C?{maxBounds:C}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),wp(m.value);try{e.value.__doxaMap=m.value}catch{}}else{const ye=typeof n=="function"?n():n;m.value=new B.Map({accessToken:N,container:e.value,style:I,...ye?{config:ye}:{},center:s,zoom:r,minZoom:oe,maxZoom:p,pitch:h,bearing:_,dragRotate:!1,touchPitch:!1,renderWorldCopies:S,...l?{bounds:l,...i?{fitBoundsOptions:i}:{}}:{},...C?{maxBounds:C}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),wp(m.value);try{e.value.__doxaMap=m.value}catch{}}try{let ye=!1;m.value.on("error",Q=>{var v,E;const de=((v=Q==null?void 0:Q.error)==null?void 0:v.status)??(Q==null?void 0:Q.status),_e=String(((E=Q==null?void 0:Q.error)==null?void 0:E.url)||(Q==null?void 0:Q.sourceId)||"");de!==401&&de!==403||ye||(ye=!0,console.error(`[doxa-maps] Mapbox returned ${de} 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.`+(_e?` First failing request: ${_e.slice(0,120)}`:"")))})}catch{}try{m.value.touchZoomRotate.disableRotation()}catch{}x=kk(((Ae=e.value)==null?void 0:Ae.parentElement)||null,{enabled:k});let ke=oe,Le=null;f=()=>{const ye=m.value;if(!ye)return;const Q=U(F.clientWidth,F.clientHeight);Q!==ke&&(ke=Q,ye.setMinZoom(Q)),ye.getZoom(){Le=null;const de=m.value;if(!de)return;const _e=U(F.clientWidth,F.clientHeight);if(de.getZoom()<_e)try{de.jumpTo({zoom:_e})}catch{de.setZoom(_e)}},150)):Le&&(clearTimeout(Le),Le=null)},$=()=>{Le&&(clearTimeout(Le),Le=null)},m.value.on("resize",f),typeof window<"u"&&(window.addEventListener("resize",f),window.addEventListener("orientationchange",f)),m.value.on("style.load",()=>{if(m.value&&kp(m.value,q()),ae.paint&&m.value){const ye=Sk(m.value,ae.paint);console.info("[useMapInstance] style paint applied ("+a+"):",ye.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ye;(ye=m.value)==null||ye.resize(),m.value&&m.value.setMinZoom(U(F.clientWidth,F.clientHeight)),d.value=!0})})}function z(){if(m.value){if(f&&(m.value.off("resize",f),typeof window<"u"&&(window.removeEventListener("resize",f),window.removeEventListener("orientationchange",f)),f=null),$){try{$()}catch{}$=null}x&&(x(),x=null),m.value.remove(),m.value=null,d.value=!1}}if(P&&typeof P=="object"&&"value"in P)try{ct(P,()=>{m.value&&d.value&&kp(m.value,q())})}catch{}return{map:m,isMapReady:d,initializeMap:M,destroy:z}}const zk={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}};function jk(e){return zk[e]||null}const Pn={center:[20,10],zoom:1.8};function Bk(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(Pn==null?void 0:Pn.center)||[20,10],defaultZoom:r=Pn==null?void 0:Pn.zoom}=e,l={speed:.5,essential:!0,curve:1.2};function i(I,H,B={x:150,y:0}){const F=t();if(!F)return I;try{const te=F.getCanvas(),G=te.width,N=te.height,V=F.project(I),U=window.devicePixelRatio||1,oe=(B.x||0)*U,he=(B.y||0)*U,ke={x:V.x-oe,y:V.y-he},Le=F.unproject(ke);return[Le.lng,Le.lat]}catch{return I}}function c(I,H=[]){const B=t();if(!B)return;let F=null,te=5;const G=H.filter(V=>V.languageFamily===I);if(G.length>0){let V=1/0,U=-1/0,oe=1/0,he=-1/0;if(G.forEach(ke=>{ke.longitude&&ke.latitude&&(V=Math.min(V,ke.longitude),U=Math.max(U,ke.longitude),oe=Math.min(oe,ke.latitude),he=Math.max(he,ke.latitude))}),V!==1/0){F=[(V+U)/2,(oe+he)/2];const ke=U-V,Le=he-oe,Ae=Math.max(ke,Le);Ae>50?te=2:Ae>20?te=3:Ae>10?te=4:Ae>5?te=5:te=6}}if(!F)return;const N=i(F);B.flyTo({center:N,zoom:te,...l})}function u(I){const H=t();if(!H)return;let B=null,F=4;const te=jk(I);if(te)B=te.center,F=te.zoom||4;else if(a!=null&&a.features){const N=a.features.find(V=>{var U,oe;return((U=V.properties)==null?void 0:U.region)===I||((oe=V.properties)==null?void 0:oe.name)===I});N&&(B=p(N))}if(!B)return;const G=i(B);H.flyTo({center:G,zoom:F,...l})}function p(I){if(!I||!I.geometry)return null;const{type:H,coordinates:B}=I.geometry;let F=[];if(H==="Polygon"?F=B[0]||[]:H==="MultiPolygon"&&B.forEach(N=>{F=F.concat(N[0]||[])}),F.length===0)return null;let te=0,G=0;return F.forEach(N=>{te+=N[0],G+=N[1]}),[te/F.length,G/F.length]}function h(I,H={}){const B=t();if(!B)return;const F={center:I,...l,...H};B.flyTo(F)}function _(I,H){const B=t();if(!B||(I==null?void 0:I.longitude)==null||(I==null?void 0:I.latitude)==null)return;const F=H??Math.min(B.getZoom()+2,8);h([I.longitude,I.latitude],{zoom:F})}function S(I,H={top:40,right:40,bottom:40,left:40},B={}){const F=t();if(!F||!I)return;const te=B.maxZoom??4,G=B.duration??900;F.fitBounds(I,{padding:H,maxZoom:te,duration:G,...l,...B})}function k(){const I=t();I&&I.flyTo({center:s,zoom:r,...l})}const A=80,C=800,m=5,d=5,f=110,$=1.2;function x(I){const H=I.filter(Number.isFinite).slice().sort((v,E)=>v-E),B=H.length;if(!B)return null;let F=-1,te=0;for(let v=0;vF&&(F=L,te=v)}const G=(te+1)%B,N=new Array(B);for(let v=0;v0&&E((v+180)%360+360)%360-180,Le=ke(oe),Ae=24,ye=360/Ae,Q=new Array(Ae).fill(0);for(const v of H){let E=Math.floor(((v+180)%360+360)%360/ye);E>=Ae&&(E=Ae-1),Q[E]++}let de=0;for(let v=1;vQ[de]&&(de=v);return{center:ke(-180+(de+.5)*ye),minLng:Le,maxLng:Le+(he-oe),span:he-oe}}function y(I){try{const H=I.getContainer&&I.getContainer().clientWidth||0,B=H>0?Math.log2(H/512):$,F=typeof I.getMinZoom=="function"?I.getMinZoom():B;return Math.max(F,B)}catch{return $}}function w(I,H,B,F){I.easeTo({center:[H,(B+F)/2],zoom:y(I),duration:C,essential:!0})}function P(I,H,B){if(B>f)return!0;try{const F=typeof I.cameraForBounds=="function"?I.cameraForBounds(H,{padding:A,maxZoom:m}):null;return F==null?!0:typeof F.zoom=="number"&&F.zoom<=y(I)+.05}catch{return!1}}function q(I,H){if(!Array.isArray(I))return I;switch(I[0]){case"get":return H==null?void 0:H[I[1]];case"literal":return I[1];case"has":return H!=null&&I[1]in H;case"!has":return H==null||!(I[1]in H);case"!":return!q(I[1],H);case"coalesce":{for(let F=1;F2){const G=Number(q(I[2],H));return Number.isFinite(G)?G:0}return NaN}case"to-string":{const F=q(I[1],H);return F==null?"":String(F)}case"to-boolean":return!!q(I[1],H);case"slice":{const F=q(I[1],H),te=q(I[2],H),G=I.length>3?q(I[3],H):void 0;return typeof F!="string"?"":G!=null?F.slice(te,G):F.slice(te)}default:return I}}function M(I,H){if(I===!0)return!0;if(I===!1)return!1;if(!Array.isArray(I))return!!I;const B=I[0];if(B==="all"){for(let F=1;F"||B===">="||B==="<"||B==="<="){const F=typeof I[1]=="string"?H==null?void 0:H[I[1]]:q(I[1],H),te=q(I[2],H);switch(B){case"==":return F===te||F==null&&te==null;case"!=":return!(F===te||F==null&&te==null);case">":return F>te;case">=":return F>=te;case"<":return F{const j=(L==null?void 0:L.properties)||{};return j.region===v||j.name===v||j.id===v});if(E){const L=[];let j=1/0,Z=-1/0;const J=ne=>{for(const g of ne)Array.isArray(g[0])?J(g):Number.isFinite(g[0])&&Number.isFinite(g[1])&&(L.push(g[0]),g[1]Z&&(Z=g[1]))};(Q=E.geometry)!=null&&Q.coordinates&&J(E.geometry.coordinates);const le=x(L);if(le&&Number.isFinite(j)){const ne=[[le.minLng,j],[le.maxLng,Z]];P(B,ne,le.span)?w(B,le.center,j,Z):B.fitBounds(ne,{padding:A,maxZoom:m,duration:C,essential:!0});return}}}const F=H.sourceId??"language-families";if(!B.getSource(F))return;const te=H.matchExpr??I.filter;if(!te)return;const G=z(B,F);if(!G.length)return;const N=[];let V=1/0,U=-1/0,oe=0,he=0,ke=0;const Le=new Set;for(const _e of G){const v=_e==null?void 0:_e.properties;if(!M(te,v))continue;const E=v==null?void 0:v.uniqueId;if(E!=null){if(Le.has(E))continue;Le.add(E)}const L=(de=_e.geometry)==null?void 0:de.coordinates;if(!Array.isArray(L)||L.length<2)continue;const j=L[0],Z=L[1];!Number.isFinite(j)||!Number.isFinite(Z)||(oe===0&&(he=j,ke=Z),N.push(j),ZU&&(U=Z),oe++)}if(oe===0)return;if(oe===1){B.flyTo({center:[he,ke],zoom:d,duration:C,essential:!0});return}const Ae=x(N)||{center:0,minLng:0,maxLng:0,span:0},ye=[[Ae.minLng,V],[Ae.maxLng,U]];if(P(B,ye,Ae.span)){w(B,Ae.center,V,U);return}try{B.fitBounds(ye,{padding:A,maxZoom:m,duration:C,essential:!0})}catch{}}return{getOffsetCenter:i,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:h,flyToCoords:_,fitBounds:S,resetView:k,zoomToLegendRow:ae,calculateRegionCenterFromPolygon:p}}const Vk=150,qk=1200,Hk=70,Wk=5.5,Kk=6,Sp=.01,Yk=110,Xk=1.45;function Zk(){try{return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}function Jk(e){if(!e)return null;const t=Number(e.longitude),o=Number(e.latitude);return!Number.isFinite(t)||!Number.isFinite(o)||t===0&&o===0||o<-90||o>90||t<-180||t>180?null:[t,o]}function Qk(e){let t=1/0,o=-1/0,n=1/0,a=-1/0;for(const l of e){lo&&(o=l);const i=l<0?l+360:l;ia&&(a=i)}if(!Number.isFinite(t))return null;const s=o-t,r=a-n;if(r180?n-360:n;return{minLng:l,maxLng:l+r,span:r}}return{minLng:t,maxLng:o,span:s}}function ew(e,t){if(!e||!e.size||!t)return null;const o=[];let n=1/0,a=-1/0,s=null,r=0;for(const i of e){const c=Jk(t.get(i));c&&(r===0&&(s=c),o.push(c[0]),c[1]a&&(a=c[1]),r++)}if(r===0)return null;if(r===1)return{kind:"point",center:s};const l=Qk(o);return l?l.span!0}){if(!e||!e.selectionVersion)return()=>{};let s=null;function r(){if(s=null,!(t&&t())||!a())return;const c=ew(e.selectionSet,o&&o());if(!c)return;const u=Zk()?0:qk;try{if(c.kind==="point"){n.flyTo(c.center,{zoom:Kk,duration:u,essential:!0});return}if(c.span>Yk){n.flyTo([(c.bounds[0][0]+c.bounds[1][0])/2,(c.bounds[0][1]+c.bounds[1][1])/2],{zoom:Xk,duration:u,essential:!0});return}n.fitBounds(c.bounds,Hk,{maxZoom:Wk,duration:u,essential:!0})}catch{}}const l=ct(()=>e.selectionVersion.value,()=>{s&&clearTimeout(s),s=setTimeout(r,Vk)});return function(){s&&(clearTimeout(s),s=null);try{l()}catch{}}}const ow={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=ue(null);return bt("mapToolbar",{el:t}),Dt(`
.map-toolbar {
position: absolute;
top: 6px;
@@ -660,7 +660,7 @@
.map-toolbar { top: 72px; gap: 6px; }
.map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; }
}
-`,"map-toolbar"),(o,n)=>(ee(),se("div",{ref_key:"toolbarEl",ref:t,class:je(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Vs(o.$slots,"default")],2))}},nw={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=Uo(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomIn()}return(a,s)=>(ee(),ao(ei,{"is-dark":e.isDark,disabled:e.disabled,title:de(t)("buttons.zoomIn"),onClick:n},{default:un(()=>[...s[0]||(s[0]=[N("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},aw={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=Uo(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomOut()}return(a,s)=>(ee(),ao(ei,{"is-dark":e.isDark,disabled:e.disabled,title:de(t)("buttons.zoomOut"),onClick:n},{default:un(()=>[...s[0]||(s[0]=[N("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},sw=["data-projection"],rw={class:"rd-legend-map","data-map-legend":"","aria-label":"UPG count legend"},iw={class:"lg-h"},Ld=2,lw="#f2f3f0",Ad=.78,cw="prayer_level",uw=.1,dw=12,pw={__name:"DashboardMapPanel",setup(e){var Nt,Pt,zt,co,Ed,Cd,Td,Nd,Rd;const t=(T,W)=>xe(T)||W,o=Ne("dashboardData",null),n=Ne("selectionBus",null),a=Ne("mapboxToken",ue("")),s=Ne("dashboardConfig",{}),r=Ne("profileConfig",ue(null)),i=(n==null?void 0:n.filterSet)||{},l=Object.fromEntries(Object.entries(s.facets||{}).map(([T,W])=>[T,W.get])),c=ca(n,la(s)),u=re(()=>{var Pe,Fe;const T=((Pe=o==null?void 0:o.rows)==null?void 0:Pe.value)||[],W=Object.keys(i),ce=!!(((Fe=n==null?void 0:n.searchTerm)==null?void 0:Fe.value)||"").trim();if(!W.length&&!ce)return T;const we=T.filter(Ie=>W.every(Se=>{const ut=l[Se];return ut?ut(Ie)===i[Se]:!0}));return ua(we,c)}),p=((Nt=s.map)==null?void 0:Nt.geoFacet)||"country_code",h=((zt=(Pt=s.facets)==null?void 0:Pt[p])==null?void 0:zt.geoIso)||(T=>{const W=T[p];return W&&W.value?W.value:null}),_=l[p]||(T=>nt(T[p])),x=re(()=>{var W;const T=new Map;for(const ce of((W=o==null?void 0:o.rows)==null?void 0:W.value)||[]){const we=h(ce);we&&T.set(we,_(ce)||we)}return T}),k=re(()=>{const T=new Map;for(const W of u.value){const ce=h(W);ce&&T.set(ce,(T.get(ce)||0)+1)}return T}),S=ue(null),C=re(()=>{var ce,we;const T=(ce=r==null?void 0:r.value)==null?void 0:ce.provider;return T==="maplibre"||T==="mapbox"?T:yd(null)==="maplibre"||(((we=s.map)==null?void 0:we.provider)||s.provider)==="maplibre"?"maplibre":"mapbox"}),m=re(()=>C.value==="maplibre"),{map:g,isMapReady:d,initializeMap:$,destroy:L}=Gk({containerRef:S,accessToken:de(a)||a&&a.value||"",center:[28,18],zoom:1.1,minZoom:.5,skipWorldFloor:!0,provider:C.value,...(co=s.map)!=null&&co.mapStyle||s.mapStyle?{style:((Ed=s.map)==null?void 0:Ed.mapStyle)||s.mapStyle}:{}}),v=Bk({getMap:()=>g.value,mapId:"rdash-map",defaultCenter:[28,18],defaultZoom:1.45});let w=null;w=tw({bus:n,mapFly:v,getMap:()=>g.value,getRowStore:()=>{var T;return(T=o==null?void 0:o.rowStore)==null?void 0:T.value},isEnabled:()=>d.value});let P=!1,H=null,M=null,j=null,ae=0,I=!1;function q(){I||ae||(ae=requestAnimationFrame(()=>{ae=0;const T=g.value;if(T&&typeof T.resize=="function")try{T.resize()}catch{}}))}function B(T){const W=!!T;if(W!==I){if(I=W,I){ae&&(cancelAnimationFrame(ae),ae=0);return}q(),setTimeout(q,180)}}const O=(()=>{var W;const T={"heartbeat-red":["#f4cec4","#ecaea1","#e08678","#ce544b","#b10010"],greyscale:["#c9c9c9","#a9a9a9","#6f6f6f","#3a3a3a","#060606"]};return T[(W=s.map)==null?void 0:W.colorRamp]||T["heartbeat-red"]})(),te={heartbeatThreshold:150,binThresholds:[5,20,60],quantile:.1};function U(T,W){return Number.isFinite(W)?W-1<=T?`${T}`:`${T}–${W-1}`:`${T}+ · heartbeat zone`}function R(T){const ce=te.binThresholds.map(we=>we/te.heartbeatThreshold).map(we=>Math.max(Ld,Math.round(we*T)));return V(ce,T)}function V(T,W){const ce=[];for(const we of T){const Pe=Math.max(we,ce.length?ce[ce.length-1]+1:Ld);PeIe>0).sort((Ie,Se)=>Ie-Se);if(ce.length<8)return null;const we=Ie=>ce[Math.min(ce.length-1,Math.max(0,Math.floor(Ie*ce.length)))],Pe=we(1-W)+1,Fe=[.25,.5,.75].map(Ie=>we(Ie));return{threshold:Pe,edges:V(Fe,Pe)}}function oe(T){var Ie;if(Array.isArray((Ie=s.map)==null?void 0:Ie.bins)&&s.map.bins.length)return s.map.bins;const W=s.map||{};let ce=Number(W.heartbeatThreshold)>0?Number(W.heartbeatThreshold):te.heartbeatThreshold,we=null;if(W.heartbeatMode==="quantile"){const Se=G(T||[],Number(W.heartbeatQuantile)>0?Number(W.heartbeatQuantile):te.quantile);Se&&(ce=Se.threshold,we=Se.edges)}we||(we=Array.isArray(W.binThresholds)&&W.binThresholds.length?[...new Set(W.binThresholds.map(Number).filter(Se=>Number.isFinite(Se)&&Se>0&&SeSe-ut):Number(W.heartbeatThreshold)>0?R(ce):te.binThresholds);const Pe=[...we,ce,1/0].slice(0,O.length);for(;Pe.length{const Xt={upTo:Se,c:O[ut],l:U(Fe,Se)};return Fe=Se,Xt})}const he=re(()=>oe([...k.value.values()])),ke=((Cd=s.map)==null?void 0:Cd.noDataColor)||"#f3f3f1";function Ae(T){if(!T)return ke;const W=he.value;for(const ce of W)if(T{const Ie=parseInt(ce.slice(Fe*2,Fe*2+2),16),Se=parseInt(we.slice(Fe*2,Fe*2+2),16);return Math.round(Ad*Ie+(1-Ad)*Se)};return"#"+[0,1,2].map(Fe=>Pe(Fe).toString(16).padStart(2,"0")).join("")}const ve=re(()=>he.value.map(T=>({c:Le(T.c),l:T.l}))),Q=((Td=s.map)==null?void 0:Td.selectedColor)||"#1a237e";function pe(){const T=k.value,W=[],ce=[];T.forEach((Ie,Se)=>{W.push(Se,Ae(Ie)),ce.push(Se)});const we=W.length?["match",["get","iso_3166_1_alpha_3"],...W,ke]:ke,Fe=Object.keys(i).length>0&&ce.length?["match",["get","iso_3166_1_alpha_3"],...ce.flatMap(Ie=>[Ie,.92]),.12]:.78;return{fillColor:we,fillOpacity:Fe}}function _e(){return Object.prototype.hasOwnProperty.call(i,cw)}const y=((Nd=s.map)==null?void 0:Nd.pinColor)||"#ef6c00",E=((Rd=s.map)==null?void 0:Rd.pinStrokeColor)||"#ffffff";function A(){return _e()?ps({colorSource:"properties"}):y}function z(){const T=g.value;if(!T||!T.getLayer("rd-choropleth"))return;const{fillColor:W,fillOpacity:ce}=pe();T.setPaintProperty("rd-choropleth","fill-color",W),T.setPaintProperty("rd-choropleth","fill-opacity",ce);const we=T.getSource("rd-bubbles");we&&we.setData(J()),T.getLayer("rd-bubble-layer")&&T.setPaintProperty("rd-bubble-layer","circle-color",A())}function Z(T){const W=T==null?void 0:T.people_praying,ce=W&&typeof W=="object"?W.value:W;return Number(ce)||0}function J(){return{type:"FeatureCollection",features:u.value.filter(T=>Number(T.latitude)&&Number(T.longitude)).map(T=>({type:"Feature",geometry:{type:"Point",coordinates:[Number(T.longitude),Number(T.latitude)]},properties:{pop:Number(T.population)||0,slug:T.slug||"",name:T.name||"",peoplePraying:Z(T)}}))}}function ie(){var ce;const T=n==null?void 0:n.selectionSet,W=((ce=o==null?void 0:o.rows)==null?void 0:ce.value)||[];return!T||!T.size?{type:"FeatureCollection",features:[]}:{type:"FeatureCollection",features:W.filter(we=>T.has(we.slug)&&Number(we.latitude)&&Number(we.longitude)).map(we=>({type:"Feature",geometry:{type:"Point",coordinates:[Number(we.longitude),Number(we.latitude)]},properties:{slug:we.slug||"",name:we.name||""}}))}}function ne(){const T=g.value;if(!T)return;const W=T.getSource("rd-bubble-selected");W&&W.setData(ie())}function f(){var we;const T=g.value;if(!T||P)return;P=!0,T.getSource("rd-countries")||(m.value?(T.addSource("rd-countries",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${o0(r.value)}/boundaries/world-adm0.geojson`).then(Pe=>Pe.json()).then(Pe=>{for(const Ie of Pe.features||[])Ie.properties&&Ie.properties.iso3&&(Ie.properties.iso_3166_1_alpha_3=Ie.properties.iso3);const Fe=g.value&&g.value.getSource("rd-countries");Fe&&Fe.setData(Pe)}).catch(Pe=>console.warn("[rdash] country boundaries failed to load",Pe))):T.addSource("rd-countries",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}));const{fillColor:W,fillOpacity:ce}=pe();T.addLayer({id:"rd-choropleth",type:"fill",source:"rd-countries",...m.value?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":W,"fill-opacity":ce,"fill-outline-color":((we=s.map)==null?void 0:we.outlineColor)||"#6d766e"}}),T.addSource("rd-bubbles",{type:"geojson",data:J()}),T.addLayer({id:"rd-bubble-layer",type:"circle",source:"rd-bubbles",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,2.2,6,5.5],"circle-color":A(),"circle-opacity":1,"circle-stroke-color":E,"circle-stroke-width":["interpolate",["linear"],["zoom"],1,1.2,6,2],"circle-stroke-opacity":1}}),T.addSource("rd-bubble-selected",{type:"geojson",data:ie()}),T.addLayer({id:"rd-bubble-selected",type:"circle",source:"rd-bubble-selected",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,5,6,11],"circle-color":Q,"circle-opacity":.18,"circle-stroke-width":3,"circle-stroke-color":Q,"circle-stroke-opacity":.95}}),T.on("click","rd-choropleth",b),T.on("click","rd-bubble-layer",F),T.on("mouseenter","rd-choropleth",()=>{T.getCanvas().style.cursor="pointer"}),T.on("mouseleave","rd-choropleth",()=>{T.getCanvas().style.cursor=""}),T.on("mouseenter","rd-bubble-layer",()=>{T.getCanvas().style.cursor="pointer"}),T.on("mouseleave","rd-bubble-layer",()=>{T.getCanvas().style.cursor=""});try{window.__rdashMap=T,window.__rdashClickAt=(Pe,Fe)=>{const Ie=T.project([Pe,Fe]),Se=T.queryRenderedFeatures(Ie,{layers:["rd-choropleth"]});return Se&&Se[0]?(b({features:Se}),Se[0].properties&&Se[0].properties.iso_3166_1_alpha_3):null},window.__rdashPinAt=(Pe,Fe)=>{const Ie=T.project([Pe,Fe]),Se=T.queryRenderedFeatures([[Ie.x-7,Ie.y-7],[Ie.x+7,Ie.y+7]],{layers:["rd-bubble-layer"]});return Se&&Se[0]?(F({features:[Se[0]]}),Se[0].properties&&Se[0].properties.slug):null}}catch{}Tt();try{typeof T.setFog=="function"&&T.setFog({color:"rgb(186, 210, 235)","high-color":"rgb(36, 92, 223)","horizon-blend":.02,"space-color":"#000000","star-intensity":.6})}catch{}n&&n.on("select",ne),ne(),n&&n.on("focusRow",({slug:Pe}={})=>{var Se;if(!Pe)return;const Fe=(((Se=o==null?void 0:o.rows)==null?void 0:Se.value)||[]).find(ut=>ut.slug===Pe),Ie=g.value;if(Ie&&Fe&&Number(Fe.latitude)&&Number(Fe.longitude))try{Ie.flyTo({center:[Number(Fe.longitude),Number(Fe.latitude)],zoom:5.5,duration:1200})}catch{}})}function b(T){const W=g.value;if(W&&T.point){const Fe=W.queryRenderedFeatures([[T.point.x-5,T.point.y-5],[T.point.x+5,T.point.y+5]],{layers:["rd-bubble-layer"]});if(Fe&&Fe.length)return}const ce=T.features&&T.features[0];if(!ce||!n)return;const we=ce.properties&&ce.properties.iso_3166_1_alpha_3,Pe=x.value.get(we);Pe&&(n.setFilter(p,i[p]===Pe?null:Pe),n.emit("mapFocus",{facet:p,value:Pe}))}function F(T){const W=T.features&&T.features[0];if(!W||!n)return;const ce=W.properties&&W.properties.slug;ce&&(n.toggleSelect(ce),n.emit("focusRow",{slug:ce,name:W.properties&&W.properties.name}))}function X(T){var ce;let W=T&&T.parentNode;for(;W;){if(W.nodeType===1){const we=getComputedStyle(W);if(/auto|scroll/.test(we.overflowY)&&W.scrollHeight>W.clientHeight+4)return W}if(W=W.parentElement||((ce=W.parentNode)==null?void 0:ce.host)||(W.parentNode!==W?W.parentNode:null),W&&W.nodeType===9)break}return null}function ge(T){if(!(!T||!T.scrollZoom))try{T.scrollZoom.enable()}catch{}}kt(async()=>{await $();const T=g.value;if(!T)return;T.isStyleLoaded()?f():T.on("load",f),ge(T);const W=()=>ge(T);let ce=null;try{ce=new ResizeObserver(W);const we=T.getContainer&&T.getContainer()||null;we&&ce.observe(we);const Pe=we?X(we):null;Pe&&ce.observe(Pe),document.body&&ce.observe(document.body)}catch{}window.addEventListener("resize",W),Ft(()=>{try{ce&&ce.disconnect()}catch{}window.removeEventListener("resize",W)}),T.on("zoom",K),T.on("zoomend",K),T.on("resize",K),K(),T.on("idle",()=>{!P&&T.isStyleLoaded()&&f()}),typeof ResizeObserver<"u"&&S.value&&(H=new ResizeObserver(q),H.observe(S.value)),Ze(),T.on("idle",Ze),T.on("resize",Ze),n&&typeof n.on=="function"&&(M=n.on("toggleTable",()=>{q(),setTimeout(q,280)}),j=n.on("layoutResizing",B))}),Ft(()=>{try{w&&w()}catch{}w=null;try{M&&M()}catch{}M=null;try{j&&j()}catch{}if(j=null,H){try{H.disconnect()}catch{}H=null}if(Ee){try{Ee.disconnect()}catch{}Ee=null}Be=null,ae&&(cancelAnimationFrame(ae),ae=0);try{const T=g.value;T&&(T.off("zoom",K),T.off("zoomend",K),T.off("resize",K),T.off("idle",Ze),T.off("resize",Ze))}catch{}try{L&&L()}catch{}}),ct([u,d],z);const le=ue(!0),D=ue(!0);function K(){const T=g.value;if(!T)return;const W=T.getZoom();le.value=WT.getMinZoom()+.01}const ye=ue(null);let Ee=null,Be=null;function Ze(){var we;const T=ye.value;if(!T)return;let W=0;try{const Pe=(we=T.getRootNode)==null?void 0:we.call(T),Fe=Pe&&Pe.querySelector?Pe.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib"):null;if(Fe){const Ie=Fe.getBoundingClientRect(),Se=T.getBoundingClientRect();if(W=Math.max(Ie.height||0,Se.bottom-Ie.top),Be!==Fe&&typeof ResizeObserver<"u"){if(Ee)try{Ee.disconnect()}catch{}Be=Fe,Ee=new ResizeObserver(Ze),Ee.observe(Fe)}}}catch{}const ce=Math.min(Math.max(Math.ceil(W)||20,20),72);T.style.setProperty("--rd-attrib-clear",ce+"px")}const We=ue("globe");function Tt(){const T=g.value;if(!(!T||typeof T.setProjection!="function")){try{T.setProjection({type:We.value});return}catch{}try{T.setProjection(We.value)}catch{}}}function Eo(){We.value=We.value==="globe"?"mercator":"globe",Tt()}function mt(T){const W=Number(T.longitude),ce=Number(T.latitude);return!Number.isFinite(W)||!Number.isFinite(ce)||W===0&&ce===0||ce<-90||ce>90||W<-180||W>180?null:[W,ce]}function Y(T,W){if(!T.length)return NaN;const ce=Math.min(T.length-1,Math.max(0,Math.round(W*(T.length-1))));return T[ce]}function $e(T){const W=T.slice().sort((Se,ut)=>Se-ut),ce=W.length;if(ce<2)return W;let we=-1,Pe=0;for(let Se=0;Sewe&&(we=Xt,Pe=Se)}const Fe=(Pe+1)%ce,Ie=new Array(ce);for(let Se=0;Se0&&uttn[1]).sort((tn,bs)=>tn-bs),we=$e(W.map(tn=>tn[0])),Pe=W.length>=dw?uw:0,Fe=Y(ce,Pe),Ie=Y(ce,1-Pe),Se=Y(we,Pe),ut=Y(we,1-Pe),Xt=[Y(we,.5),Y(ce,.5)];return!(ut>Se)||!(Ie>Fe)?{bounds:[[Xt[0],Xt[1]],[Xt[0],Xt[1]]],center:Xt}:{bounds:[[Se,Fe],[ut,Ie]],center:Xt}}function Ge(){const T=g.value;if(!T)return;if(!Object.keys(i).length){try{T.flyTo({center:[28,18],zoom:1.45,duration:1e3})}catch{}return}const W=be(u.value);if(W)try{T.fitBounds(W.bounds,{padding:70,duration:1200,maxZoom:5.5}),T.setCenter(W.center)}catch{}}let Ue=null;return ct(()=>JSON.stringify(i),()=>{clearTimeout(Ue),Ue=setTimeout(Ge,260)}),Dt(`
+`,"map-toolbar"),(o,n)=>(ee(),se("div",{ref_key:"toolbarEl",ref:t,class:ze(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Vs(o.$slots,"default")],2))}},nw={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=Go(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomIn()}return(a,s)=>(ee(),ao(el,{"is-dark":e.isDark,disabled:e.disabled,title:pe(t)("buttons.zoomIn"),onClick:n},{default:un(()=>[...s[0]||(s[0]=[T("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},aw={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=Go(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomOut()}return(a,s)=>(ee(),ao(el,{"is-dark":e.isDark,disabled:e.disabled,title:pe(t)("buttons.zoomOut"),onClick:n},{default:un(()=>[...s[0]||(s[0]=[T("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},sw=["data-projection"],rw={class:"rd-legend-map","data-map-legend":"","aria-label":"UPG count legend"},lw={class:"lg-h"},Ap=2,iw="#f2f3f0",Lp=.78,cw="prayer_level",uw=.1,pw=12,dw={__name:"DashboardMapPanel",setup(e){var Tt,Pt,jt,co,Ep,Cp,Rp,Tp,Np;const t=(R,W)=>we(R)||W,o=Te("dashboardData",null),n=Te("selectionBus",null),a=Te("mapboxToken",ue("")),s=Te("dashboardConfig",{}),r=Te("profileConfig",ue(null)),l=(n==null?void 0:n.filterSet)||{},i=Object.fromEntries(Object.entries(s.facets||{}).map(([R,W])=>[R,W.get])),c=ca(n,ia(s)),u=re(()=>{var Pe,Oe;const R=((Pe=o==null?void 0:o.rows)==null?void 0:Pe.value)||[],W=Object.keys(l),ce=!!(((Oe=n==null?void 0:n.searchTerm)==null?void 0:Oe.value)||"").trim();if(!W.length&&!ce)return R;const xe=R.filter(Ie=>W.every(Se=>{const ut=i[Se];return ut?ut(Ie)===l[Se]:!0}));return ua(xe,c)}),p=((Tt=s.map)==null?void 0:Tt.geoFacet)||"country_code",h=((jt=(Pt=s.facets)==null?void 0:Pt[p])==null?void 0:jt.geoIso)||(R=>{const W=R[p];return W&&W.value?W.value:null}),_=i[p]||(R=>nt(R[p])),S=re(()=>{var W;const R=new Map;for(const ce of((W=o==null?void 0:o.rows)==null?void 0:W.value)||[]){const xe=h(ce);xe&&R.set(xe,_(ce)||xe)}return R}),k=re(()=>{const R=new Map;for(const W of u.value){const ce=h(W);ce&&R.set(ce,(R.get(ce)||0)+1)}return R}),A=ue(null),C=re(()=>{var ce,xe;const R=(ce=r==null?void 0:r.value)==null?void 0:ce.provider;return R==="maplibre"||R==="mapbox"?R:yp(null)==="maplibre"||(((xe=s.map)==null?void 0:xe.provider)||s.provider)==="maplibre"?"maplibre":"mapbox"}),m=re(()=>C.value==="maplibre"),{map:d,isMapReady:f,initializeMap:$,destroy:x}=Uk({containerRef:A,accessToken:pe(a)||a&&a.value||"",center:[28,18],zoom:1.1,minZoom:.5,skipWorldFloor:!0,provider:C.value,...(co=s.map)!=null&&co.mapStyle||s.mapStyle?{style:((Ep=s.map)==null?void 0:Ep.mapStyle)||s.mapStyle}:{}}),y=Bk({getMap:()=>d.value,mapId:"rdash-map",defaultCenter:[28,18],defaultZoom:1.45});let w=null;w=tw({bus:n,mapFly:y,getMap:()=>d.value,getRowStore:()=>{var R;return(R=o==null?void 0:o.rowStore)==null?void 0:R.value},isEnabled:()=>f.value});let P=!1,q=null,M=null,z=null,ae=0,I=!1;function H(){I||ae||(ae=requestAnimationFrame(()=>{ae=0;const R=d.value;if(R&&typeof R.resize=="function")try{R.resize()}catch{}}))}function B(R){const W=!!R;if(W!==I){if(I=W,I){ae&&(cancelAnimationFrame(ae),ae=0);return}H(),setTimeout(H,180)}}const F=(()=>{var W;const R={"heartbeat-red":["#f4cec4","#ecaea1","#e08678","#ce544b","#b10010"],greyscale:["#c9c9c9","#a9a9a9","#6f6f6f","#3a3a3a","#060606"]};return R[(W=s.map)==null?void 0:W.colorRamp]||R["heartbeat-red"]})(),te={heartbeatThreshold:150,binThresholds:[5,20,60],quantile:.1};function G(R,W){return Number.isFinite(W)?W-1<=R?`${R}`:`${R}–${W-1}`:`${R}+ · ${t("dashboard.heartbeat_zone","heartbeat zone")}`}function N(R){const ce=te.binThresholds.map(xe=>xe/te.heartbeatThreshold).map(xe=>Math.max(Ap,Math.round(xe*R)));return V(ce,R)}function V(R,W){const ce=[];for(const xe of R){const Pe=Math.max(xe,ce.length?ce[ce.length-1]+1:Ap);PeIe>0).sort((Ie,Se)=>Ie-Se);if(ce.length<8)return null;const xe=Ie=>ce[Math.min(ce.length-1,Math.max(0,Math.floor(Ie*ce.length)))],Pe=xe(1-W)+1,Oe=[.25,.5,.75].map(Ie=>xe(Ie));return{threshold:Pe,edges:V(Oe,Pe)}}function oe(R){var Ie;if(Array.isArray((Ie=s.map)==null?void 0:Ie.bins)&&s.map.bins.length)return s.map.bins;const W=s.map||{};let ce=Number(W.heartbeatThreshold)>0?Number(W.heartbeatThreshold):te.heartbeatThreshold,xe=null;if(W.heartbeatMode==="quantile"){const Se=U(R||[],Number(W.heartbeatQuantile)>0?Number(W.heartbeatQuantile):te.quantile);Se&&(ce=Se.threshold,xe=Se.edges)}xe||(xe=Array.isArray(W.binThresholds)&&W.binThresholds.length?[...new Set(W.binThresholds.map(Number).filter(Se=>Number.isFinite(Se)&&Se>0&&SeSe-ut):Number(W.heartbeatThreshold)>0?N(ce):te.binThresholds);const Pe=[...xe,ce,1/0].slice(0,F.length);for(;Pe.length{const Xt={upTo:Se,c:F[ut],l:G(Oe,Se)};return Oe=Se,Xt})}const he=re(()=>oe([...k.value.values()])),ke=((Cp=s.map)==null?void 0:Cp.noDataColor)||"#f3f3f1";function Le(R){if(!R)return ke;const W=he.value;for(const ce of W)if(R{const Ie=parseInt(ce.slice(Oe*2,Oe*2+2),16),Se=parseInt(xe.slice(Oe*2,Oe*2+2),16);return Math.round(Lp*Ie+(1-Lp)*Se)};return"#"+[0,1,2].map(Oe=>Pe(Oe).toString(16).padStart(2,"0")).join("")}const ye=re(()=>he.value.map(R=>({c:Ae(R.c),l:R.l}))),Q=((Rp=s.map)==null?void 0:Rp.selectedColor)||"#1a237e";function de(){const R=k.value,W=[],ce=[];R.forEach((Ie,Se)=>{W.push(Se,Le(Ie)),ce.push(Se)});const xe=W.length?["match",["get","iso_3166_1_alpha_3"],...W,ke]:ke,Oe=Object.keys(l).length>0&&ce.length?["match",["get","iso_3166_1_alpha_3"],...ce.flatMap(Ie=>[Ie,.92]),.12]:.78;return{fillColor:xe,fillOpacity:Oe}}function _e(){return Object.prototype.hasOwnProperty.call(l,cw)}const v=((Tp=s.map)==null?void 0:Tp.pinColor)||"#ef6c00",E=((Np=s.map)==null?void 0:Np.pinStrokeColor)||"#ffffff";function L(){return _e()?ds({colorSource:"properties"}):v}function j(){const R=d.value;if(!R||!R.getLayer("rd-choropleth"))return;const{fillColor:W,fillOpacity:ce}=de();R.setPaintProperty("rd-choropleth","fill-color",W),R.setPaintProperty("rd-choropleth","fill-opacity",ce);const xe=R.getSource("rd-bubbles");xe&&xe.setData(J()),R.getLayer("rd-bubble-layer")&&R.setPaintProperty("rd-bubble-layer","circle-color",L())}function Z(R){const W=R==null?void 0:R.people_praying,ce=W&&typeof W=="object"?W.value:W;return Number(ce)||0}function J(){return{type:"FeatureCollection",features:u.value.filter(R=>Number(R.latitude)&&Number(R.longitude)).map(R=>({type:"Feature",geometry:{type:"Point",coordinates:[Number(R.longitude),Number(R.latitude)]},properties:{pop:Number(R.population)||0,slug:R.slug||"",name:R.name||"",peoplePraying:Z(R)}}))}}function le(){var ce;const R=n==null?void 0:n.selectionSet,W=((ce=o==null?void 0:o.rows)==null?void 0:ce.value)||[];return!R||!R.size?{type:"FeatureCollection",features:[]}:{type:"FeatureCollection",features:W.filter(xe=>R.has(xe.slug)&&Number(xe.latitude)&&Number(xe.longitude)).map(xe=>({type:"Feature",geometry:{type:"Point",coordinates:[Number(xe.longitude),Number(xe.latitude)]},properties:{slug:xe.slug||"",name:xe.name||""}}))}}function ne(){const R=d.value;if(!R)return;const W=R.getSource("rd-bubble-selected");W&&W.setData(le())}function g(){var xe;const R=d.value;if(!R||P)return;P=!0,R.getSource("rd-countries")||(m.value?(R.addSource("rd-countries",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${o0(r.value)}/boundaries/world-adm0.geojson`).then(Pe=>Pe.json()).then(Pe=>{for(const Ie of Pe.features||[])Ie.properties&&Ie.properties.iso3&&(Ie.properties.iso_3166_1_alpha_3=Ie.properties.iso3);const Oe=d.value&&d.value.getSource("rd-countries");Oe&&Oe.setData(Pe)}).catch(Pe=>console.warn("[rdash] country boundaries failed to load",Pe))):R.addSource("rd-countries",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}));const{fillColor:W,fillOpacity:ce}=de();R.addLayer({id:"rd-choropleth",type:"fill",source:"rd-countries",...m.value?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":W,"fill-opacity":ce,"fill-outline-color":((xe=s.map)==null?void 0:xe.outlineColor)||"#6d766e"}}),R.addSource("rd-bubbles",{type:"geojson",data:J()}),R.addLayer({id:"rd-bubble-layer",type:"circle",source:"rd-bubbles",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,2.2,6,5.5],"circle-color":L(),"circle-opacity":1,"circle-stroke-color":E,"circle-stroke-width":["interpolate",["linear"],["zoom"],1,1.2,6,2],"circle-stroke-opacity":1}}),R.addSource("rd-bubble-selected",{type:"geojson",data:le()}),R.addLayer({id:"rd-bubble-selected",type:"circle",source:"rd-bubble-selected",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,5,6,11],"circle-color":Q,"circle-opacity":.18,"circle-stroke-width":3,"circle-stroke-color":Q,"circle-stroke-opacity":.95}}),R.on("click","rd-choropleth",b),R.on("click","rd-bubble-layer",O),R.on("mouseenter","rd-choropleth",()=>{R.getCanvas().style.cursor="pointer"}),R.on("mouseleave","rd-choropleth",()=>{R.getCanvas().style.cursor=""}),R.on("mouseenter","rd-bubble-layer",()=>{R.getCanvas().style.cursor="pointer"}),R.on("mouseleave","rd-bubble-layer",()=>{R.getCanvas().style.cursor=""});try{window.__rdashMap=R,window.__rdashClickAt=(Pe,Oe)=>{const Ie=R.project([Pe,Oe]),Se=R.queryRenderedFeatures(Ie,{layers:["rd-choropleth"]});return Se&&Se[0]?(b({features:Se}),Se[0].properties&&Se[0].properties.iso_3166_1_alpha_3):null},window.__rdashPinAt=(Pe,Oe)=>{const Ie=R.project([Pe,Oe]),Se=R.queryRenderedFeatures([[Ie.x-7,Ie.y-7],[Ie.x+7,Ie.y+7]],{layers:["rd-bubble-layer"]});return Se&&Se[0]?(O({features:[Se[0]]}),Se[0].properties&&Se[0].properties.slug):null}}catch{}Rt();try{typeof R.setFog=="function"&&R.setFog({color:"rgb(186, 210, 235)","high-color":"rgb(36, 92, 223)","horizon-blend":.02,"space-color":"#000000","star-intensity":.6})}catch{}n&&n.on("select",ne),ne(),n&&n.on("focusRow",({slug:Pe}={})=>{var Se;if(!Pe)return;const Oe=(((Se=o==null?void 0:o.rows)==null?void 0:Se.value)||[]).find(ut=>ut.slug===Pe),Ie=d.value;if(Ie&&Oe&&Number(Oe.latitude)&&Number(Oe.longitude))try{Ie.flyTo({center:[Number(Oe.longitude),Number(Oe.latitude)],zoom:5.5,duration:1200})}catch{}})}function b(R){const W=d.value;if(W&&R.point){const Oe=W.queryRenderedFeatures([[R.point.x-5,R.point.y-5],[R.point.x+5,R.point.y+5]],{layers:["rd-bubble-layer"]});if(Oe&&Oe.length)return}const ce=R.features&&R.features[0];if(!ce||!n)return;const xe=ce.properties&&ce.properties.iso_3166_1_alpha_3,Pe=S.value.get(xe);Pe&&(n.setFilter(p,l[p]===Pe?null:Pe),n.emit("mapFocus",{facet:p,value:Pe}))}function O(R){const W=R.features&&R.features[0];if(!W||!n)return;const ce=W.properties&&W.properties.slug;ce&&(n.toggleSelect(ce),n.emit("focusRow",{slug:ce,name:W.properties&&W.properties.name}))}function X(R){var ce;let W=R&&R.parentNode;for(;W;){if(W.nodeType===1){const xe=getComputedStyle(W);if(/auto|scroll/.test(xe.overflowY)&&W.scrollHeight>W.clientHeight+4)return W}if(W=W.parentElement||((ce=W.parentNode)==null?void 0:ce.host)||(W.parentNode!==W?W.parentNode:null),W&&W.nodeType===9)break}return null}function fe(R){if(!(!R||!R.scrollZoom))try{R.scrollZoom.enable()}catch{}}kt(async()=>{await $();const R=d.value;if(!R)return;R.isStyleLoaded()?g():R.on("load",g),fe(R);const W=()=>fe(R);let ce=null;try{ce=new ResizeObserver(W);const xe=R.getContainer&&R.getContainer()||null;xe&&ce.observe(xe);const Pe=xe?X(xe):null;Pe&&ce.observe(Pe),document.body&&ce.observe(document.body)}catch{}window.addEventListener("resize",W),Ot(()=>{try{ce&&ce.disconnect()}catch{}window.removeEventListener("resize",W)}),R.on("zoom",K),R.on("zoomend",K),R.on("resize",K),K(),R.on("idle",()=>{!P&&R.isStyleLoaded()&&g()}),typeof ResizeObserver<"u"&&A.value&&(q=new ResizeObserver(H),q.observe(A.value)),Ze(),R.on("idle",Ze),R.on("resize",Ze),n&&typeof n.on=="function"&&(M=n.on("toggleTable",()=>{H(),setTimeout(H,280)}),z=n.on("layoutResizing",B))}),Ot(()=>{try{w&&w()}catch{}w=null;try{M&&M()}catch{}M=null;try{z&&z()}catch{}if(z=null,q){try{q.disconnect()}catch{}q=null}if(Ee){try{Ee.disconnect()}catch{}Ee=null}Be=null,ae&&(cancelAnimationFrame(ae),ae=0);try{const R=d.value;R&&(R.off("zoom",K),R.off("zoomend",K),R.off("resize",K),R.off("idle",Ze),R.off("resize",Ze))}catch{}try{x&&x()}catch{}}),ct([u,f],j);const ie=ue(!0),D=ue(!0);function K(){const R=d.value;if(!R)return;const W=R.getZoom();ie.value=WR.getMinZoom()+.01}const ve=ue(null);let Ee=null,Be=null;function Ze(){var xe;const R=ve.value;if(!R)return;let W=0;try{const Pe=(xe=R.getRootNode)==null?void 0:xe.call(R),Oe=Pe&&Pe.querySelector?Pe.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib"):null;if(Oe){const Ie=Oe.getBoundingClientRect(),Se=R.getBoundingClientRect();if(W=Math.max(Ie.height||0,Se.bottom-Ie.top),Be!==Oe&&typeof ResizeObserver<"u"){if(Ee)try{Ee.disconnect()}catch{}Be=Oe,Ee=new ResizeObserver(Ze),Ee.observe(Oe)}}}catch{}const ce=Math.min(Math.max(Math.ceil(W)||20,20),72);R.style.setProperty("--rd-attrib-clear",ce+"px")}const We=ue("globe");function Rt(){const R=d.value;if(!(!R||typeof R.setProjection!="function")){try{R.setProjection({type:We.value});return}catch{}try{R.setProjection(We.value)}catch{}}}function Eo(){We.value=We.value==="globe"?"mercator":"globe",Rt()}function mt(R){const W=Number(R.longitude),ce=Number(R.latitude);return!Number.isFinite(W)||!Number.isFinite(ce)||W===0&&ce===0||ce<-90||ce>90||W<-180||W>180?null:[W,ce]}function Y(R,W){if(!R.length)return NaN;const ce=Math.min(R.length-1,Math.max(0,Math.round(W*(R.length-1))));return R[ce]}function $e(R){const W=R.slice().sort((Se,ut)=>Se-ut),ce=W.length;if(ce<2)return W;let xe=-1,Pe=0;for(let Se=0;Sexe&&(xe=Xt,Pe=Se)}const Oe=(Pe+1)%ce,Ie=new Array(ce);for(let Se=0;Se0&&uttn[1]).sort((tn,bs)=>tn-bs),xe=$e(W.map(tn=>tn[0])),Pe=W.length>=pw?uw:0,Oe=Y(ce,Pe),Ie=Y(ce,1-Pe),Se=Y(xe,Pe),ut=Y(xe,1-Pe),Xt=[Y(xe,.5),Y(ce,.5)];return!(ut>Se)||!(Ie>Oe)?{bounds:[[Xt[0],Xt[1]],[Xt[0],Xt[1]]],center:Xt}:{bounds:[[Se,Oe],[ut,Ie]],center:Xt}}function Ue(){const R=d.value;if(!R)return;if(!Object.keys(l).length){try{R.flyTo({center:[28,18],zoom:1.45,duration:1e3})}catch{}return}const W=be(u.value);if(W)try{R.fitBounds(W.bounds,{padding:70,duration:1200,maxZoom:5.5}),R.setCenter(W.center)}catch{}}let Ge=null;return ct(()=>JSON.stringify(l),()=>{clearTimeout(Ge),Ge=setTimeout(Ue,260)}),Dt(`
.rd-mapwrap{ position:relative; width:100%; height:100%; min-height:0; background:var(--dx-line, #d1d4cd); }
.rd-mapwrap[data-projection="globe"]{ background:#000; }
.rd-mapwrap .rd-mapc{ position:absolute; inset:0; }
@@ -692,11 +692,11 @@
z-index:2; touch-action:pan-y; pointer-events:auto; background:transparent; }
.map-scroll-edge--left{ left:0; }
.map-scroll-edge--right{ right:0; }
-`,"rd-mappanel"),(T,W)=>(ee(),se("div",{ref_key:"mapWrap",ref:ye,class:"rd-mapwrap","data-sub":"map","data-projection":We.value},[N("div",{ref_key:"mapContainer",ref:S,class:"rd-mapc","data-map-canvas":""},null,512),W[0]||(W[0]=N("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),W[1]||(W[1]=N("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),ze(ow,{class:"rd-zoomtools","has-geocoder":!1,"data-map-zoom-controls":""},{default:un(()=>[ze(nw,{map:de(g),disabled:!le.value},null,8,["map","disabled"]),ze(aw,{map:de(g),disabled:!D.value},null,8,["map","disabled"])]),_:1}),N("span",{class:"rd-proj",role:"button",tabindex:"0","data-proj-toggle":"",onClick:Eo},fe(We.value==="globe"?"🌐 Globe":"▭ Flat"),1),N("div",rw,[N("div",iw,fe(t("legend.columns.upgs","UUPGs"))+" / "+fe(t("dashboard.country","Country")),1),(ee(!0),se(Oe,null,st(ve.value,ce=>(ee(),se("div",{key:ce.l,class:"lg-row"},[N("span",{class:"lg-sw",style:dt({background:ce.c})},null,4),N("span",null,fe(ce.l),1)]))),128))])],8,sw))}},gw=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 128px);min-width:var(--dx-filter-w, 128px);max-width:var(--dx-filter-w, 128px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 108px);min-width:var(--dx-filter-w-sm, 108px);max-width:var(--dx-filter-w-sm, 108px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) var(--dx-filter-pad-x, 8px);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",fw=["data-active","aria-expanded"],hw={class:"filter-dropdown__label"},mw=["value","placeholder"],$w={class:"filter-dropdown__options"},bw={key:0,class:"filter-dropdown__no-options"},_w=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],yw={class:"filter-dropdown__count"},vw=cs({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:t}){const o=e,n={"buttons.clearSelection":"Clear selection","buttons.noOptions":"No options found"};let a=M=>n[M]||M;try{a=Uo().t}catch{}const s=t,r=ue(!1),i=ue(""),l=ue(-1),c=ue(null),u=ue(null),p=ue(null),h=ue({});function _(M){const j=M.ownerDocument,ae=j.createElement("div");ae.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(M.parentElement||M.getRootNode().body||j.body).appendChild(ae);const q=ae.getBoundingClientRect();return ae.remove(),{x:q.left,y:q.top}}function x(){const M=p.value;if(!M)return;const j=M.getBoundingClientRect(),ae=window.innerWidth,I=window.innerHeight,q=320,B=4,O=8,U=Math.round(Math.min(Math.max(j.width,240),ae-O*2)),R=j.right>O&&j.leftae-O?V=Math.round(Math.max(j.right-U,O)):V=Math.round(Math.max(j.left,O)):V=Math.round(Math.min(Math.max(j.left,O),ae-U-O));const G=I-j.bottom,oe=G<180&&j.top>G,he=_(M),ke=Math.round(V-he.x);h.value=oe?{top:"auto",bottom:`${Math.round(I-j.top+B+he.y)}px`,left:`${ke}px`,width:`${U}px`,maxHeight:`${Math.round(Math.min(q,j.top-B-O))}px`}:{top:`${Math.round(j.bottom+B-he.y)}px`,bottom:"auto",left:`${ke}px`,width:`${U}px`,maxHeight:`${Math.round(Math.min(q,G-B-O))}px`}}function k(){r.value&&x()}const S=re(()=>{if(!i.value)return o.options;const M=i.value.toLowerCase();return o.options.filter(j=>j.label.toLowerCase().includes(M))}),C=re(()=>o.options.find(M=>M.value===o.value));function m(M){var ae;const j=((ae=M.composedPath)==null?void 0:ae.call(M))??[];c.value&&!j.includes(c.value)&&$()}function g(){r.value?$():d()}function d(){r.value=!0,i.value="",l.value=-1,x(),document.addEventListener("click",m),window.addEventListener("scroll",k,!0),window.addEventListener("resize",k),Ho(()=>{var M;x(),(M=u.value)==null||M.focus()})}function $(){r.value=!1,i.value="",l.value=-1,document.removeEventListener("click",m),window.removeEventListener("scroll",k,!0),window.removeEventListener("resize",k)}function L(M){i.value=M.target.value,l.value=-1}function v(M){const j=S.value;switch(M.key){case"ArrowDown":M.preventDefault(),l.value=Math.min(l.value+1,j.length-1),w();break;case"ArrowUp":M.preventDefault(),l.value=Math.max(l.value-1,0),w();break;case"Enter":{M.preventDefault();const ae=j[l.value];ae&&P(ae);break}case"Escape":M.preventDefault(),$();break}}function w(){Ho(()=>{var j;const M=(j=c.value)==null?void 0:j.querySelector(".filter-dropdown__option[data-highlighted]");M==null||M.scrollIntoView({block:"nearest"})})}function P(M){s("filter-change",{name:o.name,value:M.value,label:M.label,type:M.type}),$()}function H(){s("filter-clear",{name:o.name}),$()}return Ft(()=>{document.removeEventListener("click",m),window.removeEventListener("scroll",k,!0),window.removeEventListener("resize",k)}),(M,j)=>(ee(),se("div",{ref_key:"rootRef",ref:c,class:je(["filter-dropdown",{"is-open":r.value}])},[N("button",{ref_key:"triggerRef",ref:p,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:g},[N("span",hw,[C.value?(ee(),se(Oe,{key:0},[it(fe(e.label)+": ",1),N("strong",null,fe(C.value.label),1)],64)):(ee(),se(Oe,{key:1},[it(fe(e.label),1)],64))]),j[0]||(j[0]=N("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[N("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,fw),r.value?(ee(),se("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:dt(h.value)},[N("input",{ref_key:"searchInputRef",ref:u,class:"filter-dropdown__search",type:"text",value:i.value,placeholder:e.placeholder,onInput:L,onKeydown:v},null,40,mw),e.value?(ee(),se("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:H},fe(de(a)("buttons.clearSelection")),1)):Ye("",!0),N("div",$w,[S.value.length===0?(ee(),se("div",bw,fe(de(a)("buttons.noOptions")),1)):(ee(!0),se(Oe,{key:1},st(S.value,(ae,I)=>(ee(),se("div",{key:ae.value,class:"filter-dropdown__option",role:"option","data-highlighted":I===l.value?"":void 0,"data-selected":ae.value===e.value?"":void 0,"aria-selected":ae.value===e.value,onClick:q=>P(ae),onMouseenter:q=>l.value=I},[N("span",null,fe(ae.label),1),N("span",yw,fe(ae.count),1)],40,_w))),128))])],4)):Ye("",!0)],2))}},[["styles",[gw]]]),kw=".sfh{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);display:flex;flex-direction:column;gap:var(--dx-sfh-gap, 4px);width:100%;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink)}.sfh__search-row{display:flex;align-items:center;gap:12px;justify-content:center}.sfh__search-row>:first-child{flex:0 1 auto}.sfh__toggle{flex:0 0 auto;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:4px 2px;text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.sfh__toggle-chev{transition:transform .2s ease}.sfh__toggle[aria-expanded=true] .sfh__toggle-chev{transform:rotate(180deg)}.sfh__filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dx-filter-gap, 10px);justify-content:flex-start;overflow-x:clip;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__dd{flex:0 0 auto}.sfh__filters-row::-webkit-scrollbar{height:8px}.sfh__filters-row::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__filters-row::-webkit-scrollbar-track{background:transparent}.sfh__pill{flex:0 0 auto;padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;white-space:nowrap;transition:border-color .15s ease,background .15s ease}.sfh__pill:hover{border-color:var(--brand)}.sfh__pill[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.sfh__chips{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;min-height:var(--dx-sel-row-h, 16px)}.sfh__chip-strip{flex:0 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;justify-content:safe center;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__chip-strip::-webkit-scrollbar{height:6px}.sfh__chip-strip::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__chip-strip::-webkit-scrollbar-track{background:transparent}.sfh__sel-label{flex:0 0 auto;font-size:.6875rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mut, #6d766e);opacity:.75}.sfh__sel-world{flex:0 0 auto;font-size:.75rem;color:var(--mut, #6d766e)}.sfh__chip{flex:0 0 auto;display:inline-flex;gap:4px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:0 8px;font-size:.75rem;line-height:1;white-space:nowrap;height:var(--dx-sel-row-h, 16px);box-sizing:border-box}.sfh__chip-x{background:none;border:none;cursor:pointer;font-size:1.05em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.sfh__chip-x:hover{opacity:.7}.sfh__clear{flex:0 0 auto;white-space:nowrap;background:none;border:none;cursor:pointer;font-size:.75rem;line-height:1;color:var(--mut, #6d766e);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:3px;padding:0 4px;margin-inline-start:2px}.sfh__clear:hover{color:var(--ink)}",ww={class:"sfh"},xw={key:0,class:"sfh__search-row"},Sw=["aria-expanded"],Lw=["aria-label"],Aw=["data-active","onClick"],Pw={class:"sfh__chip-strip"},Ew={class:"sfh__sel-label"},Cw=["aria-label","onClick"],Tw={key:1,class:"sfh__sel-world"},Nw=cs({__name:"SearchFilterHeader",props:{search:{type:String,default:""},filters:{type:Array,default:()=>[]},toggles:{type:Array,default:()=>[]},activeChips:{type:Array,default:null},searchPlaceholder:{type:String,default:"Search…"},searchMaxWidth:{type:String,default:"520px"},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},startExpanded:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},labels:{type:Object,default:()=>({})}},emits:["update:search","search","filter-change","filter-clear","toggle","remove-filter","clear-all"],setup(e,{emit:t}){const o=e,n=t,a=m=>!(m===!1||m==="false"||m==="0"||m===0),s=re(()=>a(o.showSearch)),r=re(()=>a(o.showFilters)),i=re(()=>({show_filters:xe("grid.show_filters")||"Show Filters",hide_filters:xe("grid.hide_filters")||"Hide Filters",clear_all:xe("grid.clear_all")||"Clear All",type_to_search:xe("grid.type_to_search")||"Type to search...",filters:xe("dashboard.filters")||"Filters",selected:xe("dashboard.selected")||"Selected",world:xe("dashboard.world")||"World",remove:xe("dashboard.remove_filter")||"Remove",...o.labels})),l=ue(o.startExpanded||!o.collapsible);function c(){l.value=!l.value}const u=re(()=>!o.collapsible||!s.value||l.value),p=re(()=>{if(Array.isArray(o.activeChips))return o.activeChips;const m=[];for(const g of o.filters){if(!g.value)continue;const d=(g.options||[]).find($=>$.value===g.value);m.push({name:g.name,label:d?d.label:g.value})}for(const g of o.toggles)g.active&&m.push({name:g.name,label:g.label});return m});function h(m){const g=(m==null?void 0:m.value)??"";n("update:search",g),n("search",{value:g})}function _(m){n("filter-change",m)}function x(m){n("filter-clear",m)}function k(m){n("toggle",{name:m.name,active:!m.active})}function S(m){n("remove-filter",{name:m})}function C(){n("clear-all")}return(m,g)=>(ee(),se("div",ww,[s.value?(ee(),se("div",xw,[ze(gd,{"model-value":e.search,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,"max-width":e.searchMaxWidth,onSearch:h},null,8,["model-value","placeholder","aria-label","max-width"]),r.value&&e.collapsible?(ee(),se("button",{key:0,class:"sfh__toggle",type:"button","aria-expanded":u.value,onClick:c},[it(fe(u.value?i.value.hide_filters:i.value.show_filters)+" ",1),g[0]||(g[0]=N("svg",{class:"sfh__toggle-chev",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[N("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Sw)):Ye("",!0)])):Ye("",!0),r.value&&u.value?(ee(),se("div",{key:1,class:"sfh__filters-row",role:"group","aria-label":i.value.filters},[(ee(!0),se(Oe,null,st(e.filters,d=>(ee(),ao(vw,{key:d.name,class:"sfh__dd",label:d.label,name:d.name,options:d.options||[],value:d.value||"",placeholder:d.placeholder||i.value.type_to_search,onFilterChange:_,onFilterClear:x},null,8,["label","name","options","value","placeholder"]))),128)),(ee(!0),se(Oe,null,st(e.toggles,d=>(ee(),se("button",{key:d.name,class:"sfh__pill",type:"button","data-active":d.active?"":void 0,onClick:$=>k(d)},fe(d.label),9,Aw))),128))],8,Lw)):Ye("",!0),r.value?(ee(),se("div",{key:2,class:je(["sfh__chips",{"is-empty":!p.value.length}])},[N("div",Pw,[N("span",Ew,fe(i.value.selected||"Selected"),1),p.value.length?(ee(),se(Oe,{key:0},[(ee(!0),se(Oe,null,st(p.value,d=>(ee(),se("span",{key:d.name,class:"sfh__chip"},[it(fe(d.label)+" ",1),N("button",{class:"sfh__chip-x",type:"button","aria-label":`${i.value.remove} ${d.label}`,onClick:$=>S(d.name)},"×",8,Cw)]))),128)),N("button",{class:"sfh__clear",type:"button",onClick:C},fe(i.value.clear_all),1)],64)):(ee(),se("span",Tw,fe(i.value.world||"World"),1))])],2)):Ye("",!0)]))}},[["styles",[kw]]]),Rw={class:"rd-research-filters","data-region":"filters","data-sub":"research-filters"},$s="prayer_level",Mw={__name:"DashboardResearchFilters",setup(e){const t=Ne("selectionBus",null),o=Ne("dashboardData",null),n=Ne("dashboardConfig",{}),a=re(()=>{var v;return((v=o==null?void 0:o.rows)==null?void 0:v.value)||[]}),s=(t==null?void 0:t.filterSet)||{},r={get label(){return xe("dashboard.prayer")||"Prayer"},get:v=>{const w=v==null?void 0:v.people_praying,P=w&&typeof w=="object"?w.value:w;return sa[wn({peoplePraying:P??null})]}},i=re(()=>({[$s]:r,...n.facets||{}})),l=re(()=>Object.fromEntries(Object.entries(i.value).map(([v,w])=>[v,w.get]))),c=re(()=>n.researchFilters||{}),u=re(()=>{const v=c.value.dropdowns||["wagf_region","wagf_block","country_code","people_group","religion"];return[$s,...v.filter(w=>w!==$s)]}),p=re(()=>c.value.searchPlaceholder||"Search people groups, place, language, religion…");function h(v,w){const P=Object.keys(v);return P.length?w.filter(H=>P.every(M=>{const j=l.value[M];return j?j(H)===v[M]:!0})):w}function _(v){var ae;const w=l.value[v];if(!w)return[];const P=(ae=i.value[v])==null?void 0:ae.optionLabel,H={};for(const[I,q]of Object.entries(s))I!==v&&(H[I]=q);const M=h(H,a.value),j=new Map;for(const I of M){const q=w(I);if(q==null||q==="")continue;const B=j.get(q);B?B.count+=1:j.set(q,{label:P&&P(I)||q,count:1})}return Array.from(j.entries()).map(([I,{label:q,count:B}])=>({value:I,label:q,count:B})).sort((I,q)=>String(I.label).localeCompare(String(q.label)))}const x=re(()=>u.value.map(v=>{var w;return{name:v,label:((w=i.value[v])==null?void 0:w.label)||v,options:_(v),value:s[v]||""}})),{labelFor:k}=ia(n,Ne("dataStore",null),Ne("searchSourceId",null)),S=re(()=>{var P;const v=Object.keys(s).map(H=>{var j;const M=s[H];return{name:H,label:`${((j=i.value[H])==null?void 0:j.label)||H}: ${H===$s?M:k(H,M)}`}}),w=(((P=t==null?void 0:t.searchTerm)==null?void 0:P.value)||"").trim();return w&&v.push({name:"__search__",label:`Search: ${w}`}),v}),C=re(()=>{var v;return((v=t==null?void 0:t.searchTerm)==null?void 0:v.value)||""});function m(v){t==null||t.setSearch((v==null?void 0:v.value)??"")}function g(v){t==null||t.setFilter(v.name,v.value)}function d(v){t==null||t.setFilter(v.name,null)}function $(v){if(v.name==="__search__"){t==null||t.setSearch("");return}t==null||t.setFilter(v.name,null)}function L(){t==null||t.clearFilters(),t==null||t.setSearch("")}return Dt(`
+`,"rd-mappanel"),(R,W)=>(ee(),se("div",{ref_key:"mapWrap",ref:ve,class:"rd-mapwrap","data-sub":"map","data-projection":We.value},[T("div",{ref_key:"mapContainer",ref:A,class:"rd-mapc","data-map-canvas":""},null,512),W[0]||(W[0]=T("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),W[1]||(W[1]=T("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),je(ow,{class:"rd-zoomtools","has-geocoder":!1,"data-map-zoom-controls":""},{default:un(()=>[je(nw,{map:pe(d),disabled:!ie.value},null,8,["map","disabled"]),je(aw,{map:pe(d),disabled:!D.value},null,8,["map","disabled"])]),_:1}),T("span",{class:"rd-proj",role:"button",tabindex:"0","data-proj-toggle":"",onClick:Eo},ge(We.value==="globe"?"🌐 Globe":"▭ Flat"),1),T("div",rw,[T("div",lw,ge(t("legend.columns.upgs","UUPGs"))+" / "+ge(t("dashboard.country","Country")),1),(ee(!0),se(Fe,null,st(ye.value,ce=>(ee(),se("div",{key:ce.l,class:"lg-row"},[T("span",{class:"lg-sw",style:pt({background:ce.c})},null,4),T("span",null,ge(ce.l),1)]))),128))])],8,sw))}},gw=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 128px);min-width:var(--dx-filter-w, 128px);max-width:var(--dx-filter-w, 128px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 108px);min-width:var(--dx-filter-w-sm, 108px);max-width:var(--dx-filter-w-sm, 108px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) var(--dx-filter-pad-x, 8px);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",fw=["data-active","aria-expanded"],hw={class:"filter-dropdown__label"},mw=["value","placeholder"],$w={class:"filter-dropdown__options"},bw={key:0,class:"filter-dropdown__no-options"},_w=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],yw={class:"filter-dropdown__count"},vw=cs({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:t}){const o=e,n={"buttons.clearSelection":"Clear selection","buttons.noOptions":"No options found"};let a=M=>n[M]||M;try{a=Go().t}catch{}const s=t,r=ue(!1),l=ue(""),i=ue(-1),c=ue(null),u=ue(null),p=ue(null),h=ue({});function _(M){const z=M.ownerDocument,ae=z.createElement("div");ae.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(M.parentElement||M.getRootNode().body||z.body).appendChild(ae);const H=ae.getBoundingClientRect();return ae.remove(),{x:H.left,y:H.top}}function S(){const M=p.value;if(!M)return;const z=M.getBoundingClientRect(),ae=window.innerWidth,I=window.innerHeight,H=320,B=4,F=8,G=Math.round(Math.min(Math.max(z.width,240),ae-F*2)),N=z.right>F&&z.leftae-F?V=Math.round(Math.max(z.right-G,F)):V=Math.round(Math.max(z.left,F)):V=Math.round(Math.min(Math.max(z.left,F),ae-G-F));const U=I-z.bottom,oe=U<180&&z.top>U,he=_(M),ke=Math.round(V-he.x);h.value=oe?{top:"auto",bottom:`${Math.round(I-z.top+B+he.y)}px`,left:`${ke}px`,width:`${G}px`,maxHeight:`${Math.round(Math.min(H,z.top-B-F))}px`}:{top:`${Math.round(z.bottom+B-he.y)}px`,bottom:"auto",left:`${ke}px`,width:`${G}px`,maxHeight:`${Math.round(Math.min(H,U-B-F))}px`}}function k(){r.value&&S()}const A=re(()=>{if(!l.value)return o.options;const M=l.value.toLowerCase();return o.options.filter(z=>z.label.toLowerCase().includes(M))}),C=re(()=>o.options.find(M=>M.value===o.value));function m(M){var ae;const z=((ae=M.composedPath)==null?void 0:ae.call(M))??[];c.value&&!z.includes(c.value)&&$()}function d(){r.value?$():f()}function f(){r.value=!0,l.value="",i.value=-1,S(),document.addEventListener("click",m),window.addEventListener("scroll",k,!0),window.addEventListener("resize",k),Ho(()=>{var M;S(),(M=u.value)==null||M.focus()})}function $(){r.value=!1,l.value="",i.value=-1,document.removeEventListener("click",m),window.removeEventListener("scroll",k,!0),window.removeEventListener("resize",k)}function x(M){l.value=M.target.value,i.value=-1}function y(M){const z=A.value;switch(M.key){case"ArrowDown":M.preventDefault(),i.value=Math.min(i.value+1,z.length-1),w();break;case"ArrowUp":M.preventDefault(),i.value=Math.max(i.value-1,0),w();break;case"Enter":{M.preventDefault();const ae=z[i.value];ae&&P(ae);break}case"Escape":M.preventDefault(),$();break}}function w(){Ho(()=>{var z;const M=(z=c.value)==null?void 0:z.querySelector(".filter-dropdown__option[data-highlighted]");M==null||M.scrollIntoView({block:"nearest"})})}function P(M){s("filter-change",{name:o.name,value:M.value,label:M.label,type:M.type}),$()}function q(){s("filter-clear",{name:o.name}),$()}return Ot(()=>{document.removeEventListener("click",m),window.removeEventListener("scroll",k,!0),window.removeEventListener("resize",k)}),(M,z)=>(ee(),se("div",{ref_key:"rootRef",ref:c,class:ze(["filter-dropdown",{"is-open":r.value}])},[T("button",{ref_key:"triggerRef",ref:p,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:d},[T("span",hw,[C.value?(ee(),se(Fe,{key:0},[lt(ge(e.label)+": ",1),T("strong",null,ge(C.value.label),1)],64)):(ee(),se(Fe,{key:1},[lt(ge(e.label),1)],64))]),z[0]||(z[0]=T("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[T("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,fw),r.value?(ee(),se("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:pt(h.value)},[T("input",{ref_key:"searchInputRef",ref:u,class:"filter-dropdown__search",type:"text",value:l.value,placeholder:e.placeholder,onInput:x,onKeydown:y},null,40,mw),e.value?(ee(),se("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:q},ge(pe(a)("buttons.clearSelection")),1)):Ye("",!0),T("div",$w,[A.value.length===0?(ee(),se("div",bw,ge(pe(a)("buttons.noOptions")),1)):(ee(!0),se(Fe,{key:1},st(A.value,(ae,I)=>(ee(),se("div",{key:ae.value,class:"filter-dropdown__option",role:"option","data-highlighted":I===i.value?"":void 0,"data-selected":ae.value===e.value?"":void 0,"aria-selected":ae.value===e.value,onClick:H=>P(ae),onMouseenter:H=>i.value=I},[T("span",null,ge(ae.label),1),T("span",yw,ge(ae.count),1)],40,_w))),128))])],4)):Ye("",!0)],2))}},[["styles",[gw]]]),kw=".sfh{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);display:flex;flex-direction:column;gap:var(--dx-sfh-gap, 4px);width:100%;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink)}.sfh__search-row{display:flex;align-items:center;gap:12px;justify-content:center}.sfh__search-row>:first-child{flex:0 1 auto}.sfh__toggle{flex:0 0 auto;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:4px 2px;text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.sfh__toggle-chev{transition:transform .2s ease}.sfh__toggle[aria-expanded=true] .sfh__toggle-chev{transform:rotate(180deg)}.sfh__filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dx-filter-gap, 10px);justify-content:flex-start;overflow-x:clip;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__dd{flex:0 0 auto}.sfh__filters-row::-webkit-scrollbar{height:8px}.sfh__filters-row::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__filters-row::-webkit-scrollbar-track{background:transparent}.sfh__pill{flex:0 0 auto;padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;white-space:nowrap;transition:border-color .15s ease,background .15s ease}.sfh__pill:hover{border-color:var(--brand)}.sfh__pill[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.sfh__chips{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;min-height:var(--dx-sel-row-h, 16px)}.sfh__chip-strip{flex:0 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;justify-content:safe center;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__chip-strip::-webkit-scrollbar{height:6px}.sfh__chip-strip::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__chip-strip::-webkit-scrollbar-track{background:transparent}.sfh__sel-label{flex:0 0 auto;font-size:.6875rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mut, #6d766e);opacity:.75}.sfh__sel-world{flex:0 0 auto;font-size:.75rem;color:var(--mut, #6d766e)}.sfh__chip{flex:0 0 auto;display:inline-flex;gap:4px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:0 8px;font-size:.75rem;line-height:1;white-space:nowrap;height:var(--dx-sel-row-h, 16px);box-sizing:border-box}.sfh__chip-x{background:none;border:none;cursor:pointer;font-size:1.05em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.sfh__chip-x:hover{opacity:.7}.sfh__clear{flex:0 0 auto;white-space:nowrap;background:none;border:none;cursor:pointer;font-size:.75rem;line-height:1;color:var(--mut, #6d766e);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:3px;padding:0 4px;margin-inline-start:2px}.sfh__clear:hover{color:var(--ink)}",ww={class:"sfh"},xw={key:0,class:"sfh__search-row"},Sw=["aria-expanded"],Aw=["aria-label"],Lw=["data-active","onClick"],Pw={class:"sfh__chip-strip"},Ew={class:"sfh__sel-label"},Cw=["aria-label","onClick"],Rw={key:1,class:"sfh__sel-world"},Tw=cs({__name:"SearchFilterHeader",props:{search:{type:String,default:""},filters:{type:Array,default:()=>[]},toggles:{type:Array,default:()=>[]},activeChips:{type:Array,default:null},searchPlaceholder:{type:String,default:"Search…"},searchMaxWidth:{type:String,default:"520px"},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},startExpanded:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},labels:{type:Object,default:()=>({})}},emits:["update:search","search","filter-change","filter-clear","toggle","remove-filter","clear-all"],setup(e,{emit:t}){const o=e,n=t,a=m=>!(m===!1||m==="false"||m==="0"||m===0),s=re(()=>a(o.showSearch)),r=re(()=>a(o.showFilters)),l=re(()=>({show_filters:we("grid.show_filters")||"Show Filters",hide_filters:we("grid.hide_filters")||"Hide Filters",clear_all:we("grid.clear_all")||"Clear All",type_to_search:we("grid.type_to_search")||"Type to search...",filters:we("dashboard.filters")||"Filters",selected:we("dashboard.selected")||"Selected",world:we("dashboard.world")||"World",remove:we("dashboard.remove_filter")||"Remove",...o.labels})),i=ue(o.startExpanded||!o.collapsible);function c(){i.value=!i.value}const u=re(()=>!o.collapsible||!s.value||i.value),p=re(()=>{if(Array.isArray(o.activeChips))return o.activeChips;const m=[];for(const d of o.filters){if(!d.value)continue;const f=(d.options||[]).find($=>$.value===d.value);m.push({name:d.name,label:f?f.label:d.value})}for(const d of o.toggles)d.active&&m.push({name:d.name,label:d.label});return m});function h(m){const d=(m==null?void 0:m.value)??"";n("update:search",d),n("search",{value:d})}function _(m){n("filter-change",m)}function S(m){n("filter-clear",m)}function k(m){n("toggle",{name:m.name,active:!m.active})}function A(m){n("remove-filter",{name:m})}function C(){n("clear-all")}return(m,d)=>(ee(),se("div",ww,[s.value?(ee(),se("div",xw,[je(gp,{"model-value":e.search,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,"max-width":e.searchMaxWidth,onSearch:h},null,8,["model-value","placeholder","aria-label","max-width"]),r.value&&e.collapsible?(ee(),se("button",{key:0,class:"sfh__toggle",type:"button","aria-expanded":u.value,onClick:c},[lt(ge(u.value?l.value.hide_filters:l.value.show_filters)+" ",1),d[0]||(d[0]=T("svg",{class:"sfh__toggle-chev",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[T("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Sw)):Ye("",!0)])):Ye("",!0),r.value&&u.value?(ee(),se("div",{key:1,class:"sfh__filters-row",role:"group","aria-label":l.value.filters},[(ee(!0),se(Fe,null,st(e.filters,f=>(ee(),ao(vw,{key:f.name,class:"sfh__dd",label:f.label,name:f.name,options:f.options||[],value:f.value||"",placeholder:f.placeholder||l.value.type_to_search,onFilterChange:_,onFilterClear:S},null,8,["label","name","options","value","placeholder"]))),128)),(ee(!0),se(Fe,null,st(e.toggles,f=>(ee(),se("button",{key:f.name,class:"sfh__pill",type:"button","data-active":f.active?"":void 0,onClick:$=>k(f)},ge(f.label),9,Lw))),128))],8,Aw)):Ye("",!0),r.value?(ee(),se("div",{key:2,class:ze(["sfh__chips",{"is-empty":!p.value.length}])},[T("div",Pw,[T("span",Ew,ge(l.value.selected||"Selected"),1),p.value.length?(ee(),se(Fe,{key:0},[(ee(!0),se(Fe,null,st(p.value,f=>(ee(),se("span",{key:f.name,class:"sfh__chip"},[lt(ge(f.label)+" ",1),T("button",{class:"sfh__chip-x",type:"button","aria-label":`${l.value.remove} ${f.label}`,onClick:$=>A(f.name)},"×",8,Cw)]))),128)),T("button",{class:"sfh__clear",type:"button",onClick:C},ge(l.value.clear_all),1)],64)):(ee(),se("span",Rw,ge(l.value.world||"World"),1))])],2)):Ye("",!0)]))}},[["styles",[kw]]]),Nw={class:"rd-research-filters","data-region":"filters","data-sub":"research-filters"},$s="prayer_level",Mw={__name:"DashboardResearchFilters",setup(e){const t=Te("selectionBus",null),o=Te("dashboardData",null),n=Te("dashboardConfig",{}),a=re(()=>{var y;return((y=o==null?void 0:o.rows)==null?void 0:y.value)||[]}),s=(t==null?void 0:t.filterSet)||{},r={get label(){return we("dashboard.prayer")||"Prayer"},get:y=>{const w=y==null?void 0:y.people_praying,P=w&&typeof w=="object"?w.value:w;return sa[wn({peoplePraying:P??null})]}},l=re(()=>({[$s]:r,...n.facets||{}})),i=re(()=>Object.fromEntries(Object.entries(l.value).map(([y,w])=>[y,w.get]))),c=re(()=>n.researchFilters||{}),u=re(()=>{const y=c.value.dropdowns||["wagf_region","wagf_block","country_code","people_group","religion"];return[$s,...y.filter(w=>w!==$s)]}),p=re(()=>c.value.searchPlaceholder||"Search people groups, place, language, religion…");function h(y,w){const P=Object.keys(y);return P.length?w.filter(q=>P.every(M=>{const z=i.value[M];return z?z(q)===y[M]:!0})):w}function _(y){var ae;const w=i.value[y];if(!w)return[];const P=(ae=l.value[y])==null?void 0:ae.optionLabel,q={};for(const[I,H]of Object.entries(s))I!==y&&(q[I]=H);const M=h(q,a.value),z=new Map;for(const I of M){const H=w(I);if(H==null||H==="")continue;const B=z.get(H);B?B.count+=1:z.set(H,{label:P&&P(I)||H,count:1})}return Array.from(z.entries()).map(([I,{label:H,count:B}])=>({value:I,label:H,count:B})).sort((I,H)=>String(I.label).localeCompare(String(H.label)))}const S=re(()=>u.value.map(y=>{var w;return{name:y,label:((w=l.value[y])==null?void 0:w.label)||y,options:_(y),value:s[y]||""}})),{labelFor:k}=la(n,Te("dataStore",null),Te("searchSourceId",null)),A=re(()=>{var P;const y=Object.keys(s).map(q=>{var z;const M=s[q];return{name:q,label:`${((z=l.value[q])==null?void 0:z.label)||q}: ${q===$s?M:k(q,M)}`}}),w=(((P=t==null?void 0:t.searchTerm)==null?void 0:P.value)||"").trim();return w&&y.push({name:"__search__",label:`Search: ${w}`}),y}),C=re(()=>{var y;return((y=t==null?void 0:t.searchTerm)==null?void 0:y.value)||""});function m(y){t==null||t.setSearch((y==null?void 0:y.value)??"")}function d(y){t==null||t.setFilter(y.name,y.value)}function f(y){t==null||t.setFilter(y.name,null)}function $(y){if(y.name==="__search__"){t==null||t.setSearch("");return}t==null||t.setFilter(y.name,null)}function x(){t==null||t.clearFilters(),t==null||t.setSearch("")}return Dt(`
.rd-research-filters{ position:relative; z-index:55; height:100%; box-sizing:border-box;
padding:3px var(--rd-edge,14px); background:var(--rd-panel,#fff); border-bottom:1px solid var(--rd-line, #d1d4cd);
overflow:visible; }
-`,"rd-research-filters"),(v,w)=>(ee(),se("div",Rw,[ze(Nw,{search:C.value,filters:x.value,"active-chips":S.value,"search-placeholder":p.value,"show-search":!1,"start-expanded":"",onSearch:m,onFilterChange:g,onFilterClear:d,onRemoveFilter:$,onClearAll:L},null,8,["search","filters","active-chips","search-placeholder"])]))}},Ow={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"},Pd=e=>{if(typeof e=="number")return e;const t=parseFloat(String(e??"").replace(/[^0-9.\-]/g,""));return isNaN(t)?null:t},si=e=>e&&typeof e=="object"?e.value??e.label??"":e??"",ri={id:"doxa-research-dashboard",get title(){return xe("dashboard.dashboard_title")||"Big Picture Research Dashboard"},element:"doxa-research-dashboard",data:{source:"pray-tools",primaryKey:"slug"},facets:{prayer_level:{get label(){return xe("dashboard.prayer")||"Prayer"},get:e=>{const t=e==null?void 0:e.people_praying,o=t&&typeof t=="object"?t.value:t;return sa[wn({peoplePraying:o??null})]}},religion:{get label(){return xe("dashboard.religion")||"Religion"},get:e=>nt(e.religion)},religion_family:{get label(){return xe("dashboard.religion_family")||"Religion Family"},get:e=>{const t=e.religion&&typeof e.religion=="object"?e.religion.value:e.religion,o=String(t||"").charAt(0).toUpperCase();return o&&en[o]?en[o]:""},famKey:e=>{const t=e.religion&&typeof e.religion=="object"?e.religion.value:e.religion,o=String(t||"").charAt(0).toUpperCase();return en[o]?o:""}},wagf_region:{get label(){return xe("dashboard.region")||"Region"},get:e=>nt(e.wagf_region)},wagf_block:{get label(){return xe("dashboard.bloc")||"Bloc"},get:e=>nt(e.wagf_block)},country_code:{get label(){return xe("dashboard.country")||"Country"},get:e=>nt(e.country_code),geoIso:e=>e.country_code&&e.country_code.value},engagement_status:{get label(){return xe("dashboard.status")||"Status"},get:e=>nt(e.engagement_status)},gospel_access:{get label(){return xe("dashboard.gospel_access")||"Gospel Access"},get:e=>nt(e.imb_gsec)},language_family:{get label(){return xe("dashboard.language_family")||"Language Family"},get:e=>{const t=nt(e.imb_language_family);if(t)return us(t);const o=e.primary_language&&typeof e.primary_language=="object"?e.primary_language.value:null,n=o&&Ow[o];return n?us(n):""}},primary_language:{get label(){return xe("dashboard.language")||"Language"},get:e=>nt(e.primary_language)},affinity_bloc:{get label(){return xe("dashboard.people")||"People"},get:e=>si(e.rop1),optionLabel:e=>nt(e.rop1)},cluster:{get label(){return xe("dashboard.cluster")||"Cluster"},get:e=>si(e.imb_reg_of_people_2)},people_group:{get label(){return xe("dashboard.people_group")||"People Group"},get:e=>si(e.imb_reg_of_people_25)},rop1_name:{get label(){return xe("dashboard.people_name")||"People (name)"},get:e=>nt(e.rop1)}},facetRail:[{id:"people",get title(){return xe("dashboard.people")||"People"},axis:"people",drill:["affinity_bloc","cluster","people_group"],tree:"affinity",topN:[30,40,60]},{id:"place",get title(){return xe("dashboard.place")||"Place"},axis:"place",drill:["wagf_region","wagf_block","country_code"]},{id:"language",get title(){return xe("dashboard.language")||"Language"},axis:"language",drill:["language_family","primary_language"]},{id:"religion",get title(){return xe("dashboard.religion")||"Religion"},axis:"religion",drill:["religion_family","religion"],topN:[12,24]},{id:"gospel-access",get title(){return xe("dashboard.gospel_access")||"Gospel Access"},axis:null,facet:"gospel_access",topN:8}],kpis:[{id:"total",get label(){return xe("dashboard.upgs_in_scope")||"UPGs in scope"},kind:"count",showDelta:!0},{id:"pop",get label(){return xe("dashboard.sum_population")||"Σ population"},kind:"sum",field:"population"},{id:"unreached",get label(){return xe("dashboard.unreached")||"unreached"},kind:"pct",test:e=>!/engaged/i.test(nt(e.engagement_status))||/unengaged/i.test(nt(e.engagement_status))},{id:"countries",get label(){return xe("dashboard.countries_touched")||"countries touched"},kind:"distinct",field:"country_code",via:"geoIso"},{id:"praying",get label(){return xe("dashboard.sum_praying")||"Σ praying"},kind:"sum",field:"people_praying"},{id:"adopted",get label(){return xe("dashboard.adopted")||"adopted"},kind:"pct",test:e=>Number(e.adopted_by_churches)>0}],columns:[{key:"name",get label(){return xe("dashboard.people_group")||"People Group"},get:e=>e.name||"",type:"str",w:1.34},{key:"country",get label(){return xe("dashboard.country")||"Country"},get:e=>nt(e.country_code),type:"str",w:1.04},{key:"region",get label(){return xe("dashboard.region")||"Region"},get:e=>nt(e.wagf_region),type:"str",w:1.04},{key:"language",get label(){return xe("dashboard.language")||"Language"},get:e=>nt(e.primary_language),type:"str",w:1.04},{key:"religion",get label(){return xe("dashboard.religion")||"Religion"},get:e=>nt(e.religion),type:"str",w:1.04},{key:"population",get label(){return xe("dashboard.population")||"Population"},get:e=>Pd(e.population),type:"num",w:.86},{key:"people_praying",get label(){return xe("dashboard.praying")||"Praying"},get:e=>Pd(e.people_praying),type:"num",w:.66},{key:"engagement",get label(){return xe("dashboard.engagement")||"Engagement"},get:e=>nt(e.engagement_status),type:"str",w:.97}],map:{provider:"mapbox",mapStyle:"galaxy",heartbeatThreshold:150,binThresholds:[5,20,60],heartbeatMode:"fixed",heartbeatQuantile:.1,colorRamp:"greyscale"},charts:[{id:"religion",type:"donut",facet:"religion_family",get title(){return xe("dashboard.religion")||"Religion"},topN:8},{id:"region",type:"donut",facet:"wagf_region",get title(){return xe("dashboard.region")||"Region"},topN:9},{id:"country",type:"bar",facet:"country_code",title:"Top countries",topN:12}],detail:{photo:e=>e.has_photo&&e.image_url,fields:["religion","primary_language","people_praying","adopted_by_churches","engagement_status"]},researchFilters:{dropdowns:["prayer_level","affinity_bloc","wagf_region","wagf_block","country_code","primary_language","religion"],get searchPlaceholder(){return xe("dashboard.search_placeholder")||"Search people groups, place, language, religion…"}},searchKeys:["name","rop1_name","wagf_region","wagf_block","country_code","primary_language","religion","engagement_status"],search:[{id:"people",get label(){return xe("dashboard.search_people")||"Search people"},context:"people-groups",kinds:["affinity-bloc","cluster","people-group"]},{id:"place",get label(){return xe("dashboard.search_place")||"Search place"},context:"regions",kinds:["region","country"]},{id:"language",get label(){return xe("dashboard.search_language")||"Search language"},context:"language",kinds:["language-family","language","dialect"]},{id:"religion",get label(){return xe("dashboard.search_religion")||"Search religion"},context:"religion",kinds:["religion"]}]},Fw=["data-row-count","data-loading","data-error","data-narrow"],Iw={class:"rd-stats","data-region":"stats","data-sub":"stat-strip"},Dw=["data-kpi"],Uw={class:"l"},Gw={key:0,class:"d","data-kpi-delta":""},jw={class:"rd-cell-map","data-region":"map"},zw=["title"],Bw=["title"],Vw={class:"rd-cell-table","data-region":"table"},qw={class:"rd-rail","data-region":"rail"},Hw=["aria-valuenow"],Ww=["aria-valuenow"],Kw=["title","aria-label","aria-valuenow","aria-valuemin","aria-valuemax"],Yw=["aria-valuenow"],Xw=["data-view"],Zw=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"research-dashboard",emits:["dashboard-filter"],setup(e,{emit:t}){const o=Ne("profileConfig",ue(null)),n=re(()=>{const Q=de(o);if(!Q||typeof Q!="object")return ri;const pe={...ri,...Q};return Q.map&&typeof Q.map=="object"&&(pe.map={...ri.map,...Q.map}),pe}),a=re(()=>{var Q;return((Q=de(o))==null?void 0:Q.layout)==="page-scroll"}),{bus:s,data:r,kpis:i,exporter:l,responsive:c}=Kv(n.value),u=t;ct(()=>{var Q;return{filters:{...s.filterSet},q:((Q=s.searchTerm)==null?void 0:Q.value)||""}},({filters:Q,q:pe})=>u("dashboard-filter",{filterSet:Q,searchTerm:pe}),{deep:!0});const p=r.total,h=r.loading,_=r.error,{shell:x,isNarrow:k,slimRail:S,slimFacet:C,mobileView:m,SEG:g,tableCollapsed:d,facetCollapsed:$,railCollapsed:L,setView:v,showFacets:w,showMap:P,showTable:H,showCharts:M}=c,{startFacetResize:j,startRailResize:ae,startTableResize:I,startShellResize:q,onResizeKeydown:B,facetW:O,railW:te,tableH:U,mapH:R,shellH:V}=Zv({shellRef:x,bus:s,isNarrow:k,pageScroll:a,storageKey:"rd-dashboard-layout"});function G(Q){return Q.kind==="pct"?Q.value:Q.kind==="distinct"?Q.value||"—":ud(Q.value)}const oe=re(()=>{var Q;return(Q=s.selectionVersion)==null||Q.value,s.selectionSet?s.selectionSet.size:0});function he(){l.exportCsvAsync()}function ke(){s.clearSelection()}function Ae(){s.emit("toggleFacet",!$.value)}function Le(){s.emit("toggleRail",!L.value)}function ve(Q){const pe=Q.target&&Q.target.closest&&Q.target.closest("[data-bar-export],[data-bar-clear]");pe&&(pe.hasAttribute("data-bar-export")?he():ke())}return Dt(`
+`,"rd-research-filters"),(y,w)=>(ee(),se("div",Nw,[je(Tw,{search:C.value,filters:S.value,"active-chips":A.value,"search-placeholder":p.value,"show-search":!1,"start-expanded":"",onSearch:m,onFilterChange:d,onFilterClear:f,onRemoveFilter:$,onClearAll:x},null,8,["search","filters","active-chips","search-placeholder"])]))}},Fw={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"},Pp=e=>{if(typeof e=="number")return e;const t=parseFloat(String(e??"").replace(/[^0-9.\-]/g,""));return isNaN(t)?null:t},sl=e=>e&&typeof e=="object"?e.value??e.label??"":e??"",rl={id:"doxa-research-dashboard",get title(){return we("dashboard.dashboard_title")||"Big Picture Research Dashboard"},element:"doxa-research-dashboard",data:{source:"pray-tools",primaryKey:"slug"},facets:{prayer_level:{get label(){return we("dashboard.prayer")||"Prayer"},get:e=>{const t=e==null?void 0:e.people_praying,o=t&&typeof t=="object"?t.value:t;return sa[wn({peoplePraying:o??null})]}},religion:{get label(){return we("dashboard.religion")||"Religion"},get:e=>nt(e.religion)},religion_family:{get label(){return we("dashboard.religion_family")||"Religion Family"},get:e=>{const t=e.religion&&typeof e.religion=="object"?e.religion.value:e.religion,o=String(t||"").charAt(0).toUpperCase();return o&&en[o]?en[o]:""},famKey:e=>{const t=e.religion&&typeof e.religion=="object"?e.religion.value:e.religion,o=String(t||"").charAt(0).toUpperCase();return en[o]?o:""}},wagf_region:{get label(){return we("dashboard.region")||"Region"},get:e=>nt(e.wagf_region)},wagf_block:{get label(){return we("dashboard.bloc")||"Bloc"},get:e=>nt(e.wagf_block)},country_code:{get label(){return we("dashboard.country")||"Country"},get:e=>nt(e.country_code),geoIso:e=>e.country_code&&e.country_code.value},engagement_status:{get label(){return we("dashboard.status")||"Status"},get:e=>nt(e.engagement_status)},gospel_access:{get label(){return we("dashboard.gospel_access")||"Gospel Access"},get:e=>nt(e.imb_gsec)},language_family:{get label(){return we("dashboard.language_family")||"Language Family"},get:e=>{const t=nt(e.imb_language_family);if(t)return us(t);const o=e.primary_language&&typeof e.primary_language=="object"?e.primary_language.value:null,n=o&&Fw[o];return n?us(n):""}},primary_language:{get label(){return we("dashboard.language")||"Language"},get:e=>nt(e.primary_language)},affinity_bloc:{get label(){return we("dashboard.people")||"People"},get:e=>sl(e.rop1),optionLabel:e=>nt(e.rop1)},cluster:{get label(){return we("dashboard.cluster")||"Cluster"},get:e=>sl(e.imb_reg_of_people_2)},people_group:{get label(){return we("dashboard.people_group")||"People Group"},get:e=>sl(e.imb_reg_of_people_25)},rop1_name:{get label(){return we("dashboard.people_name")||"People (name)"},get:e=>nt(e.rop1)}},facetRail:[{id:"people",get title(){return we("dashboard.people")||"People"},axis:"people",drill:["affinity_bloc","cluster","people_group"],tree:"affinity",topN:[30,40,60]},{id:"place",get title(){return we("dashboard.place")||"Place"},axis:"place",drill:["wagf_region","wagf_block","country_code"]},{id:"language",get title(){return we("dashboard.language")||"Language"},axis:"language",drill:["language_family","primary_language"]},{id:"religion",get title(){return we("dashboard.religion")||"Religion"},axis:"religion",drill:["religion_family","religion"],topN:[12,24]},{id:"gospel-access",get title(){return we("dashboard.gospel_access")||"Gospel Access"},axis:null,facet:"gospel_access",topN:8}],kpis:[{id:"total",get label(){return we("dashboard.upgs_in_scope")||"UPGs in scope"},kind:"count",showDelta:!0},{id:"pop",get label(){return we("dashboard.sum_population")||"Σ population"},kind:"sum",field:"population"},{id:"unreached",get label(){return we("dashboard.unreached")||"unreached"},kind:"pct",test:e=>!/engaged/i.test(nt(e.engagement_status))||/unengaged/i.test(nt(e.engagement_status))},{id:"countries",get label(){return we("dashboard.countries_touched")||"countries touched"},kind:"distinct",field:"country_code",via:"geoIso"},{id:"praying",get label(){return we("dashboard.sum_praying")||"Σ praying"},kind:"sum",field:"people_praying"},{id:"adopted",get label(){return we("dashboard.adopted")||"adopted"},kind:"pct",test:e=>Number(e.adopted_by_churches)>0}],columns:[{key:"name",get label(){return we("dashboard.people_group")||"People Group"},get:e=>e.name||"",type:"str",w:1.34},{key:"country",get label(){return we("dashboard.country")||"Country"},get:e=>nt(e.country_code),type:"str",w:1.04},{key:"region",get label(){return we("dashboard.region")||"Region"},get:e=>nt(e.wagf_region),type:"str",w:1.04},{key:"language",get label(){return we("dashboard.language")||"Language"},get:e=>nt(e.primary_language),type:"str",w:1.04},{key:"religion",get label(){return we("dashboard.religion")||"Religion"},get:e=>nt(e.religion),type:"str",w:1.04},{key:"population",get label(){return we("dashboard.population")||"Population"},get:e=>Pp(e.population),type:"num",w:.86},{key:"people_praying",get label(){return we("dashboard.praying")||"Praying"},get:e=>Pp(e.people_praying),type:"num",w:.66},{key:"engagement",get label(){return we("dashboard.engagement")||"Engagement"},get:e=>nt(e.engagement_status),type:"str",w:.97}],map:{provider:"mapbox",mapStyle:"galaxy",heartbeatThreshold:150,binThresholds:[5,20,60],heartbeatMode:"fixed",heartbeatQuantile:.1,colorRamp:"greyscale"},charts:[{id:"religion",type:"donut",facet:"religion_family",get title(){return we("dashboard.religion")||"Religion"},topN:8},{id:"region",type:"donut",facet:"wagf_region",get title(){return we("dashboard.region")||"Region"},topN:9},{id:"country",type:"bar",facet:"country_code",get title(){return we("dashboard.top_countries")||"Top countries"},topN:12}],detail:{photo:e=>e.has_photo&&e.image_url,fields:["religion","primary_language","people_praying","adopted_by_churches","engagement_status"]},researchFilters:{dropdowns:["prayer_level","affinity_bloc","wagf_region","wagf_block","country_code","primary_language","religion"],get searchPlaceholder(){return we("dashboard.search_placeholder")||"Search people groups, place, language, religion…"}},searchKeys:["name","rop1_name","wagf_region","wagf_block","country_code","primary_language","religion","engagement_status"],search:[{id:"people",get label(){return we("dashboard.search_people")||"Search people"},context:"people-groups",kinds:["affinity-bloc","cluster","people-group"]},{id:"place",get label(){return we("dashboard.search_place")||"Search place"},context:"regions",kinds:["region","country"]},{id:"language",get label(){return we("dashboard.search_language")||"Search language"},context:"language",kinds:["language-family","language","dialect"]},{id:"religion",get label(){return we("dashboard.search_religion")||"Search religion"},context:"religion",kinds:["religion"]}]},Ow=["data-row-count","data-loading","data-error","data-narrow"],Iw={class:"rd-stats","data-region":"stats","data-sub":"stat-strip"},Dw=["data-kpi"],Gw={class:"l"},Uw={key:0,class:"d","data-kpi-delta":""},zw={class:"rd-cell-map","data-region":"map"},jw=["title"],Bw=["title"],Vw={class:"rd-cell-table","data-region":"table"},qw={class:"rd-rail","data-region":"rail"},Hw=["aria-valuenow"],Ww=["aria-valuenow"],Kw=["title","aria-label","aria-valuenow","aria-valuemin","aria-valuemax"],Yw=["aria-valuenow"],Xw=["data-view"],Zw=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"research-dashboard",emits:["dashboard-filter"],setup(e,{emit:t}){const o=Te("profileConfig",ue(null)),n=re(()=>{const Q=pe(o);if(!Q||typeof Q!="object")return rl;const de={...rl,...Q};return Q.map&&typeof Q.map=="object"&&(de.map={...rl.map,...Q.map}),de}),a=re(()=>{var Q;return((Q=pe(o))==null?void 0:Q.layout)==="page-scroll"}),{bus:s,data:r,kpis:l,exporter:i,responsive:c}=Kv(n.value),u=t;ct(()=>{var Q;return{filters:{...s.filterSet},q:((Q=s.searchTerm)==null?void 0:Q.value)||""}},({filters:Q,q:de})=>u("dashboard-filter",{filterSet:Q,searchTerm:de}),{deep:!0});const p=r.total,h=r.loading,_=r.error,{shell:S,isNarrow:k,slimRail:A,slimFacet:C,mobileView:m,SEG:d,tableCollapsed:f,facetCollapsed:$,railCollapsed:x,setView:y,showFacets:w,showMap:P,showTable:q,showCharts:M}=c,{startFacetResize:z,startRailResize:ae,startTableResize:I,startShellResize:H,onResizeKeydown:B,facetW:F,railW:te,tableH:G,mapH:N,shellH:V}=Zv({shellRef:S,bus:s,isNarrow:k,pageScroll:a,storageKey:"rd-dashboard-layout"});function U(Q){return Q.kind==="pct"?Q.value:Q.kind==="distinct"?Q.value||"—":up(Q.value)}const oe=re(()=>{var Q;return(Q=s.selectionVersion)==null||Q.value,s.selectionSet?s.selectionSet.size:0});function he(){i.exportCsvAsync()}function ke(){s.clearSelection()}function Le(){s.emit("toggleFacet",!$.value)}function Ae(){s.emit("toggleRail",!x.value)}function ye(Q){const de=Q.target&&Q.target.closest&&Q.target.closest("[data-bar-export],[data-bar-clear]");de&&(de.hasAttribute("data-bar-export")?he():ke())}return Dt(`
:host{ display:block; width:100%; height:100%; min-height:560px; box-sizing:border-box;
--s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px;
--dx-surface:#f3f3f1; --dx-elevated:#ffffff; --dx-text:#3b463d; --dx-muted:#6d766e;
@@ -804,4 +804,4 @@
.rd-shell ::-webkit-scrollbar-thumb{ background:var(--dx-scroll-thumb, #c4c8c0); border-radius:8px; }
.rd-shell ::-webkit-scrollbar-thumb:hover{ background:#9aa197; }
.rd-shell ::-webkit-scrollbar-corner{ background:transparent; }
-`,"rd-shell-layout"),kt(()=>{const Q=x.value&&x.value.getRootNode&&x.value.getRootNode().host;if(!Q)return;const pe=_e=>Q.setAttribute("data-page-scroll",_e?"true":"false");pe(de(a)),ct(()=>de(a),pe)}),(Q,pe)=>(ee(),se("div",{ref_key:"shell",ref:x,class:je(["rd-shell",{"rd-narrow":de(k),"rd-slim-rail":de(S),"rd-slim-facet":de(C),"rd-table-collapsed":de(d),"rd-facet-collapsed":de($),"rd-rail-collapsed":de(L),"rd-page-scroll":a.value}]),"data-row-count":de(p),"data-loading":de(h)?"1":"0","data-error":de(_)||"","data-narrow":de(k)?"1":"0"},[ze(de(j0)),ze(de(Mw)),N("div",Iw,[(ee(!0),se(Oe,null,st(de(i),_e=>(ee(),se("div",{class:"kpi",key:_e.id},[N("span",{class:"n","data-kpi":_e.id},fe(_e.kind==="count"&&de(h)?"…":G(_e)),9,Dw),N("span",Uw,fe(_e.label),1),_e.delta?(ee(),se("span",Gw,"↓"+fe(de(ud)(_e.delta)),1)):Ye("",!0)]))),128))]),Ut(ze(de(s1),null,null,512),[[Ht,de(w)]]),Ut(N("div",jw,[ze(de(pw)),de(k)?Ye("",!0):(ee(),se("button",{key:0,class:"rd-edge-caret rd-edge-facet",type:"button","data-toggle-facet":"",title:de($)?"Show filters":"Hide filters — grow the map",onClick:Ae},fe(de($)?"▸":"◂"),9,zw)),de(k)?Ye("",!0):(ee(),se("button",{key:1,class:"rd-edge-caret rd-edge-rail",type:"button","data-toggle-rail":"",title:de(L)?"Show charts":"Hide charts — grow the map",onClick:Le},fe(de(L)?"◂":"▸"),9,Bw))],512),[[Ht,de(P)]]),Ut(N("div",Vw,[ze(de(C1))],512),[[Ht,de(H)]]),Ut(N("aside",qw,[ze(de(yk)),ze(de(K1))],512),[[Ht,de(M)]]),Ut(N("div",{class:"rd-rz rd-rz-facet","data-resize":"facet",role:"separator","aria-orientation":"vertical",tabindex:"0",title:"Drag or use arrow keys to resize the filters rail","aria-label":"Resize filters rail","aria-valuenow":de(O),"aria-valuemin":"160","aria-valuemax":"420",onPointerdown:pe[0]||(pe[0]=(..._e)=>de(j)&&de(j)(..._e)),onKeydown:pe[1]||(pe[1]=_e=>de(B)("facet",_e))},null,40,Hw),[[Ht,!de(k)&&!de($)]]),Ut(N("div",{class:"rd-rz rd-rz-rail","data-resize":"rail",role:"separator","aria-orientation":"vertical",tabindex:"0",title:"Drag or use arrow keys to resize the charts rail","aria-label":"Resize charts rail","aria-valuenow":de(te),"aria-valuemin":"200","aria-valuemax":"520",onPointerdown:pe[2]||(pe[2]=(..._e)=>de(ae)&&de(ae)(..._e)),onKeydown:pe[3]||(pe[3]=_e=>de(B)("rail",_e))},null,40,Ww),[[Ht,!de(k)&&!de(L)]]),Ut(N("div",{class:"rd-rz rd-rz-table","data-resize":"table",role:"separator","aria-orientation":"horizontal",tabindex:"0",title:a.value?"Drag or use arrow keys to resize the map/table split":"Drag or use arrow keys to resize the table","aria-label":a.value?"Resize map/table split":"Resize table height","aria-valuenow":a.value?de(R):parseFloat(de(U))||34,"aria-valuemin":a.value?220:12,"aria-valuemax":a.value?1400:70,onPointerdown:pe[4]||(pe[4]=(..._e)=>de(I)&&de(I)(..._e)),onKeydown:pe[5]||(pe[5]=_e=>de(B)("table",_e))},null,40,Kw),[[Ht,!de(k)&&!de(d)]]),Ut(N("div",{class:"rd-rz rd-rz-shell","data-resize":"shell",role:"separator","aria-orientation":"horizontal",tabindex:"0",title:"Drag or use arrow keys to resize the dashboard's height","aria-label":"Resize dashboard height","aria-valuenow":de(V),"aria-valuemin":"400","aria-valuemax":"2600",onPointerdown:pe[6]||(pe[6]=(..._e)=>de(q)&&de(q)(..._e)),onKeydown:pe[7]||(pe[7]=_e=>de(B)("shell",_e))},null,40,Yw),[[Ht,!de(k)&&a.value]]),N("div",{class:"rd-seg","data-segmented":"",onClick:pe[8]||(pe[8]=(..._e)=>de(v)&&de(v)(..._e))},[(ee(!0),se(Oe,null,st(de(g),_e=>(ee(),se("button",{key:_e.k,class:je({on:de(m)===_e.k}),"data-view-btn":"","data-view":_e.k},fe(_e.l),11,Xw))),128))]),oe.value?(ee(),se("div",{key:0,class:"rd-exportbar","data-export-bar":"",onClick:ve},[N("b",null,fe(oe.value)+" selected",1),pe[9]||(pe[9]=N("span",{class:"sp"},null,-1)),pe[10]||(pe[10]=N("button",{class:"x-clr","data-bar-clear":""},"Clear",-1)),pe[11]||(pe[11]=N("button",{class:"x-go","data-bar-export":""},"Export CSV ↓",-1))])):Ye("",!0)],10,Fw))}}},Symbol.toStringTag,{value:"Module"}))})();
+`,"rd-shell-layout"),kt(()=>{const Q=S.value&&S.value.getRootNode&&S.value.getRootNode().host;if(!Q)return;const de=_e=>Q.setAttribute("data-page-scroll",_e?"true":"false");de(pe(a)),ct(()=>pe(a),de)}),(Q,de)=>(ee(),se("div",{ref_key:"shell",ref:S,class:ze(["rd-shell",{"rd-narrow":pe(k),"rd-slim-rail":pe(A),"rd-slim-facet":pe(C),"rd-table-collapsed":pe(f),"rd-facet-collapsed":pe($),"rd-rail-collapsed":pe(x),"rd-page-scroll":a.value}]),"data-row-count":pe(p),"data-loading":pe(h)?"1":"0","data-error":pe(_)||"","data-narrow":pe(k)?"1":"0"},[je(pe(z0)),je(pe(Mw)),T("div",Iw,[(ee(!0),se(Fe,null,st(pe(l),_e=>(ee(),se("div",{class:"kpi",key:_e.id},[T("span",{class:"n","data-kpi":_e.id},ge(_e.kind==="count"&&pe(h)?"…":U(_e)),9,Dw),T("span",Gw,ge(_e.label),1),_e.delta?(ee(),se("span",Uw,"↓"+ge(pe(up)(_e.delta)),1)):Ye("",!0)]))),128))]),Gt(je(pe(s1),null,null,512),[[Ht,pe(w)]]),Gt(T("div",zw,[je(pe(dw)),pe(k)?Ye("",!0):(ee(),se("button",{key:0,class:"rd-edge-caret rd-edge-facet",type:"button","data-toggle-facet":"",title:pe($)?"Show filters":"Hide filters — grow the map",onClick:Le},ge(pe($)?"▸":"◂"),9,jw)),pe(k)?Ye("",!0):(ee(),se("button",{key:1,class:"rd-edge-caret rd-edge-rail",type:"button","data-toggle-rail":"",title:pe(x)?"Show charts":"Hide charts — grow the map",onClick:Ae},ge(pe(x)?"◂":"▸"),9,Bw))],512),[[Ht,pe(P)]]),Gt(T("div",Vw,[je(pe(C1))],512),[[Ht,pe(q)]]),Gt(T("aside",qw,[je(pe(yk)),je(pe(K1))],512),[[Ht,pe(M)]]),Gt(T("div",{class:"rd-rz rd-rz-facet","data-resize":"facet",role:"separator","aria-orientation":"vertical",tabindex:"0",title:"Drag or use arrow keys to resize the filters rail","aria-label":"Resize filters rail","aria-valuenow":pe(F),"aria-valuemin":"160","aria-valuemax":"420",onPointerdown:de[0]||(de[0]=(..._e)=>pe(z)&&pe(z)(..._e)),onKeydown:de[1]||(de[1]=_e=>pe(B)("facet",_e))},null,40,Hw),[[Ht,!pe(k)&&!pe($)]]),Gt(T("div",{class:"rd-rz rd-rz-rail","data-resize":"rail",role:"separator","aria-orientation":"vertical",tabindex:"0",title:"Drag or use arrow keys to resize the charts rail","aria-label":"Resize charts rail","aria-valuenow":pe(te),"aria-valuemin":"200","aria-valuemax":"520",onPointerdown:de[2]||(de[2]=(..._e)=>pe(ae)&&pe(ae)(..._e)),onKeydown:de[3]||(de[3]=_e=>pe(B)("rail",_e))},null,40,Ww),[[Ht,!pe(k)&&!pe(x)]]),Gt(T("div",{class:"rd-rz rd-rz-table","data-resize":"table",role:"separator","aria-orientation":"horizontal",tabindex:"0",title:a.value?"Drag or use arrow keys to resize the map/table split":"Drag or use arrow keys to resize the table","aria-label":a.value?"Resize map/table split":"Resize table height","aria-valuenow":a.value?pe(N):parseFloat(pe(G))||34,"aria-valuemin":a.value?220:12,"aria-valuemax":a.value?1400:70,onPointerdown:de[4]||(de[4]=(..._e)=>pe(I)&&pe(I)(..._e)),onKeydown:de[5]||(de[5]=_e=>pe(B)("table",_e))},null,40,Kw),[[Ht,!pe(k)&&!pe(f)]]),Gt(T("div",{class:"rd-rz rd-rz-shell","data-resize":"shell",role:"separator","aria-orientation":"horizontal",tabindex:"0",title:"Drag or use arrow keys to resize the dashboard's height","aria-label":"Resize dashboard height","aria-valuenow":pe(V),"aria-valuemin":"400","aria-valuemax":"2600",onPointerdown:de[6]||(de[6]=(..._e)=>pe(H)&&pe(H)(..._e)),onKeydown:de[7]||(de[7]=_e=>pe(B)("shell",_e))},null,40,Yw),[[Ht,!pe(k)&&a.value]]),T("div",{class:"rd-seg","data-segmented":"",onClick:de[8]||(de[8]=(..._e)=>pe(y)&&pe(y)(..._e))},[(ee(!0),se(Fe,null,st(pe(d),_e=>(ee(),se("button",{key:_e.k,class:ze({on:pe(m)===_e.k}),"data-view-btn":"","data-view":_e.k},ge(_e.l),11,Xw))),128))]),oe.value?(ee(),se("div",{key:0,class:"rd-exportbar","data-export-bar":"",onClick:ye},[T("b",null,ge(oe.value)+" selected",1),de[9]||(de[9]=T("span",{class:"sp"},null,-1)),de[10]||(de[10]=T("button",{class:"x-clr","data-bar-clear":""},"Clear",-1)),de[11]||(de[11]=T("button",{class:"x-go","data-bar-export":""},"Export CSV ↓",-1))])):Ye("",!0)],10,Ow))}}},Symbol.toStringTag,{value:"Module"}))})();