1344 lines
672 KiB
JavaScript
1344 lines
672 KiB
JavaScript
(function(){"use strict";var Fp;var qo=typeof document<"u"?document.currentScript:null;const ck="modulepreload",uk=function(e){return"/"+e},pk={},ls=function(t,o,n){let a=Promise.resolve();function s(r){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=r,window.dispatchEvent(i),!i.defaultPrevented)throw r}return a.then(r=>{for(const i of r||[])i.status==="rejected"&&s(i.reason);return t().catch(s)})};/**
|
||
* @vue/shared v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function cs(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Ve={},Yo=[],zt=()=>{},ui=()=>!1,ea=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ta=e=>e.startsWith("onUpdate:"),it=Object.assign,us=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Ip=Object.prototype.hasOwnProperty,Ue=(e,t)=>Ip.call(e,t),Pe=Array.isArray,_o=e=>$n(e)==="[object Map]",oa=e=>$n(e)==="[object Set]",pi=e=>$n(e)==="[object Date]",Te=e=>typeof e=="function",qe=e=>typeof e=="string",Pt=e=>typeof e=="symbol",He=e=>e!==null&&typeof e=="object",di=e=>(He(e)||Te(e))&&Te(e.then)&&Te(e.catch),gi=Object.prototype.toString,$n=e=>gi.call(e),Op=e=>$n(e).slice(8,-1),na=e=>$n(e)==="[object Object]",aa=e=>qe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,vn=cs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),sa=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Dp=/-\w/g,gt=sa(e=>e.replace(Dp,t=>t.slice(1).toUpperCase())),Gp=/\B([A-Z])/g,Nt=sa(e=>e.replace(Gp,"-$1").toLowerCase()),ra=sa(e=>e.charAt(0).toUpperCase()+e.slice(1)),ps=sa(e=>e?`on${ra(e)}`:""),Ut=(e,t)=>!Object.is(e,t),ds=(e,...t)=>{for(let o=0;o<e.length;o++)e[o](...t)},fi=(e,t,o,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},Bp=e=>{const t=parseFloat(e);return isNaN(t)?e:t},hi=e=>{const t=qe(e)?Number(e):NaN;return isNaN(t)?e:t};let mi;const ia=()=>mi||(mi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function st(e){if(Pe(e)){const t={};for(let o=0;o<e.length;o++){const n=e[o],a=qe(n)?Hp(n):st(n);if(a)for(const s in a)t[s]=a[s]}return t}else if(qe(e)||He(e))return e}const jp=/;(?![^(]*\))/g,zp=/:([^]+)/,Up=/\/\*[^]*?\*\//g;function Hp(e){const t={};return e.replace(Up,"").split(jp).forEach(o=>{if(o){const n=o.split(zp);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Fe(e){let t="";if(qe(e))t=e;else if(Pe(e))for(let o=0;o<e.length;o++){const n=Fe(e[o]);n&&(t+=n+" ")}else if(He(e))for(const o in e)e[o]&&(t+=o+" ");return t.trim()}const Kp=cs("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function bi(e){return!!e||e===""}function Vp(e,t){if(e.length!==t.length)return!1;let o=!0;for(let n=0;o&&n<e.length;n++)o=la(e[n],t[n]);return o}function yi(e,t){if(e.size!==t.size)return!1;const o=Array.from(t),n=new Uint8Array(o.length);for(const a of e){let s=-1;for(let r=0;r<o.length;r++)if(!n[r]&&la(a,o[r])){s=r;break}if(s<0)return!1;n[s]=1}return!0}function la(e,t){if(e===t)return!0;let o=pi(e),n=pi(t);if(o||n)return o&&n?e.getTime()===t.getTime():!1;if(o=Pt(e),n=Pt(t),o||n)return e===t;if(o=Pe(e),n=Pe(t),o||n)return o&&n?Vp(e,t):!1;if(o=He(e),n=He(t),o||n){if(!o||!n)return!1;if(o=_o(e),n=_o(t),o||n||(o=oa(e),n=oa(t),o||n))return o&&n?yi(e,t):!1;const a=Object.keys(e).length,s=Object.keys(t).length;if(a!==s)return!1;for(const r in e){const i=e.hasOwnProperty(r),l=t.hasOwnProperty(r);if(i&&!l||!i&&l||!la(e[r],t[r]))return!1}}return String(e)===String(t)}const _i=e=>!!(e&&e.__v_isRef===!0),be=e=>qe(e)?e:e==null?"":Pe(e)||He(e)&&(e.toString===gi||!Te(e.toString))?_i(e)?be(e.value):JSON.stringify(e,$i,2):String(e),$i=(e,t)=>_i(t)?$i(e,t.value):_o(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[gs(n,s)+" =>"]=a,o),{})}:oa(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>gs(o))}:Pt(t)?gs(t):He(t)&&!Pe(t)&&!na(t)?String(t):t,gs=(e,t="")=>{var o;return Pt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/**
|
||
* @vue/reactivity v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let pt;class vi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&pt&&(pt.active?(this.parent=pt,this.index=(pt.scopes||(pt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t<o;t++)n[t].pause()}for(t=0,o=this.effects.length;t<o;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,o;if(this.scopes){const a=this.scopes.slice();for(t=0,o=a.length;t<o;t++)a[t].resume()}const n=this.effects.slice();for(t=0,o=n.length;t<o;t++)n[t].resume()}}run(t){if(this._active){const o=pt;try{return pt=this,t()}finally{pt=o}}}on(){++this._on===1&&(this.prevScope=pt,pt=this)}off(){if(this._on>0&&--this._on===0){if(pt===this)pt=this.prevScope;else{let t=pt;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o<n;o++)this.effects[o].stop();for(this.effects.length=0,o=0,n=this.cleanups.length;o<n;o++)this.cleanups[o]();if(this.cleanups.length=0,this.scopes){const a=this.scopes.slice();for(o=0,n=a.length;o<n;o++)a[o].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const a=this.parent.scopes.pop();a&&a!==this&&(this.parent.scopes[this.index]=a,a.index=this.index)}this.parent=void 0}}}function fs(e){return new vi(e)}function wi(){return pt}function Wp(e,t=!1){pt&&pt.cleanups.push(e)}let Ye;const hs=new WeakSet;class ki{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,pt&&(pt.active?pt.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,hs.has(this)&&(hs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Ai(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Ci(this),Si(this);const t=Ye,o=Ot;Ye=this,Ot=!0;try{return this.fn()}finally{Pi(this),Ye=t,Ot=o,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)_s(t);this.deps=this.depsTail=void 0,Ci(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?hs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ys(this)&&this.run()}get dirty(){return ys(this)}}let xi=0,wn,kn;function Ai(e,t=!1){if(e.flags|=8,t){e.next=kn,kn=e;return}e.next=wn,wn=e}function ms(){xi++}function bs(){if(--xi>0)return;if(kn){let t=kn;for(kn=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function Si(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Pi(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),_s(n),qp(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function ys(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Li(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Li(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===xn)||(e.globalVersion=xn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ys(e))))return;e.flags|=2;const t=e.dep,o=Ye,n=Ot;Ye=e,Ot=!0;try{Si(e);const a=e.fn(e._value);(t.version===0||Ut(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{Ye=o,Ot=n,Pi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let s=o.computed.deps;s;s=s.nextDep)_s(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function qp(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let Ot=!0;const Ti=[];function Ht(){Ti.push(Ot),Ot=!1}function Kt(){const e=Ti.pop();Ot=e===void 0?!0:e}function Ci(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=Ye;Ye=void 0;try{t()}finally{Ye=o}}}let xn=0;class Yp{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class $s{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Ye||!Ot||Ye===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==Ye)o=this.activeLink=new Yp(Ye,this),Ye.deps?(o.prevDep=Ye.depsTail,Ye.depsTail.nextDep=o,Ye.depsTail=o):Ye.deps=Ye.depsTail=o,Ei(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=Ye.depsTail,o.nextDep=void 0,Ye.depsTail.nextDep=o,Ye.depsTail=o,Ye.deps===o&&(Ye.deps=n)}return o}trigger(t){this.version++,xn++,this.notify(t)}notify(t){ms();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{bs()}}}function Ei(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)Ei(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const ca=new WeakMap,Io=Symbol(""),vs=Symbol(""),An=Symbol("");function vt(e,t,o){if(Ot&&Ye){let n=ca.get(e);n||ca.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new $s),a.map=n,a.key=o),a.track()}}function oo(e,t,o,n,a,s){const r=ca.get(e);if(!r){xn++;return}const i=l=>{l&&l.trigger()};if(ms(),t==="clear")r.forEach(i);else{const l=Pe(e),c=l&&aa(o);if(l&&o==="length"){const u=Number(n);r.forEach((g,f)=>{(f==="length"||f===An||!Pt(f)&&f>=u)&&i(g)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(An)),t){case"add":l?c&&i(r.get("length")):(i(r.get(Io)),_o(e)&&i(r.get(vs)));break;case"delete":l||(i(r.get(Io)),_o(e)&&i(r.get(vs)));break;case"set":_o(e)&&i(r.get(Io));break}}bs()}function Zp(e,t){const o=ca.get(e);return o&&o.get(t)}function Zo(e){const t=Oe(e);return t===e?t:(vt(t,"iterate",An),Lt(e)?t:t.map(Dt))}function ua(e){return vt(e=Oe(e),"iterate",An),e}function Vt(e,t){return so(e)?Qo(ao(e)?Dt(t):t):Dt(t)}const Xp={__proto__:null,[Symbol.iterator](){return ws(this,Symbol.iterator,e=>Vt(this,e))},concat(...e){return Zo(this).concat(...e.map(t=>Pe(t)?Zo(t):t))},entries(){return ws(this,"entries",e=>(e[1]=Vt(this,e[1]),e))},every(e,t){return no(this,"every",e,t,void 0,arguments)},filter(e,t){return no(this,"filter",e,t,o=>o.map(n=>Vt(this,n)),arguments)},find(e,t){return no(this,"find",e,t,o=>Vt(this,o),arguments)},findIndex(e,t){return no(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return no(this,"findLast",e,t,o=>Vt(this,o),arguments)},findLastIndex(e,t){return no(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return no(this,"forEach",e,t,void 0,arguments)},includes(...e){return ks(this,"includes",e)},indexOf(...e){return ks(this,"indexOf",e)},join(e){return Zo(this).join(e)},lastIndexOf(...e){return ks(this,"lastIndexOf",e)},map(e,t){return no(this,"map",e,t,void 0,arguments)},pop(){return Sn(this,"pop")},push(...e){return Sn(this,"push",e)},reduce(e,...t){return Ri(this,"reduce",e,t)},reduceRight(e,...t){return Ri(this,"reduceRight",e,t)},shift(){return Sn(this,"shift")},some(e,t){return no(this,"some",e,t,void 0,arguments)},splice(...e){return Sn(this,"splice",e)},toReversed(){return Zo(this).toReversed()},toSorted(e){return Zo(this).toSorted(e)},toSpliced(...e){return Zo(this).toSpliced(...e)},unshift(...e){return Sn(this,"unshift",e)},values(){return ws(this,"values",e=>Vt(this,e))}};function ws(e,t,o){const n=ua(e),a=n[t]();return n!==e&&!Lt(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const Jp=Array.prototype;function no(e,t,o,n,a,s){const r=ua(e),i=r!==e&&!Lt(e),l=r[t];if(l!==Jp[t]){const g=l.apply(e,s);return i?Dt(g):g}let c=o;r!==e&&(i?c=function(g,f){return o.call(this,Vt(e,g),f,e)}:o.length>2&&(c=function(g,f){return o.call(this,g,f,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function Ri(e,t,o,n){const a=ua(e),s=a!==e&&!Lt(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,g){return i&&(i=!1,c=Vt(e,c)),o.call(this,c,Vt(e,u),g,e)}):o.length>3&&(r=function(c,u,g){return o.call(this,c,u,g,e)}));const l=a[t](r,...n);return i?Vt(e,l):l}function ks(e,t,o){const n=Oe(e);vt(n,"iterate",An);const a=n[t](...o);return(a===-1||a===!1)&&ha(o[0])?(o[0]=Oe(o[0]),n[t](...o)):a}function Sn(e,t,o=[]){Ht(),ms();const n=Oe(e)[t].apply(e,o);return bs(),Kt(),n}const Qp=cs("__proto__,__v_isRef,__isVue"),Ni=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Pt));function ed(e){Pt(e)||(e=String(e));const t=Oe(this);return vt(t,"has",e),t.hasOwnProperty(e)}class Mi{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,s=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return s;if(o==="__v_raw")return n===(a?s?Bi:Gi:s?Di:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Pe(t);if(!a){let l;if(r&&(l=Xp[o]))return l;if(o==="hasOwnProperty")return ed}const i=Reflect.get(t,o,Qe(t)?t:n);if((Pt(o)?Ni.has(o):Qp(o))||(a||vt(t,"get",o),s))return i;if(Qe(i)){const l=r&&aa(o)?i:i.value;return a&&He(l)?As(l):l}return He(i)?a?As(i):Xo(i):i}}class Fi extends Mi{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Pe(t)&&aa(o);if(!this._isShallow){const c=so(s);if(!Lt(n)&&!so(n)&&(s=Oe(s),n=Oe(n)),!r&&Qe(s)&&!Qe(n))return c||(s.value=n),!0}const i=r?Number(o)<t.length:Ue(t,o),l=Reflect.set(t,o,n,Qe(t)?t:a);return t===Oe(a)&&l&&(i?Ut(n,s)&&oo(t,"set",o,n):oo(t,"add",o,n)),l}deleteProperty(t,o){const n=Ue(t,o);t[o];const a=Reflect.deleteProperty(t,o);return a&&n&&oo(t,"delete",o,void 0),a}has(t,o){const n=Reflect.has(t,o);return(!Pt(o)||!Ni.has(o))&&vt(t,"has",o),n}ownKeys(t){return vt(t,"iterate",Pe(t)?"length":Io),Reflect.ownKeys(t)}}class Ii extends Mi{constructor(t=!1){super(!0,t)}set(t,o){return!0}deleteProperty(t,o){return!0}}const td=new Fi,od=new Ii,nd=new Fi(!0),ad=new Ii(!0),xs=e=>e,pa=e=>Reflect.getPrototypeOf(e);function sd(e,t,o){return function(...n){const a=this.__v_raw,s=Oe(a),r=_o(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?xs:t?Qo:Dt;return!t&&vt(s,"iterate",l?vs:Io),it(Object.create(c),{next(){const{value:g,done:f}=c.next();return f?{value:g,done:f}:{value:i?[u(g[0]),u(g[1])]:u(g),done:f}}})}}function da(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function rd(e,t){const o={get(a){const s=this.__v_raw,r=Oe(s),i=Oe(a);e||(Ut(a,i)&&vt(r,"get",a),vt(r,"get",i));const{has:l}=pa(r),c=t?xs:e?Qo:Dt;if(l.call(r,a))return c(s.get(a));if(l.call(r,i))return c(s.get(i));s!==r&&s.get(a)},get size(){const a=this.__v_raw;return!e&&vt(Oe(a),"iterate",Io),a.size},has(a){const s=this.__v_raw,r=Oe(s),i=Oe(a);return e||(Ut(a,i)&&vt(r,"has",a),vt(r,"has",i)),a===i?s.has(a):s.has(a)||s.has(i)},forEach(a,s){const r=this,i=r.__v_raw,l=Oe(i),c=t?xs:e?Qo:Dt;return!e&&vt(l,"iterate",Io),i.forEach((u,g)=>a.call(s,c(u),c(g),r))}};return it(o,e?{add:da("add"),set:da("set"),delete:da("delete"),clear:da("clear")}:{add(a){const s=Oe(this),r=pa(s),i=Oe(a),l=!t&&!Lt(a)&&!so(a)?i:a;return r.has.call(s,l)||Ut(a,l)&&r.has.call(s,a)||Ut(i,l)&&r.has.call(s,i)||(s.add(l),oo(s,"add",l,l)),this},set(a,s){!t&&!Lt(s)&&!so(s)&&(s=Oe(s));const r=Oe(this),{has:i,get:l}=pa(r);let c=i.call(r,a);c||(a=Oe(a),c=i.call(r,a));const u=l.call(r,a);return r.set(a,s),c?Ut(s,u)&&oo(r,"set",a,s):oo(r,"add",a,s),this},delete(a){const s=Oe(this),{has:r,get:i}=pa(s);let l=r.call(s,a);l||(a=Oe(a),l=r.call(s,a)),i&&i.call(s,a);const c=s.delete(a);return l&&oo(s,"delete",a,void 0),c},clear(){const a=Oe(this),s=a.size!==0,r=a.clear();return s&&oo(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=sd(a,e,t)}),o}function ga(e,t){const o=rd(e,t);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Ue(o,a)&&a in n?o:n,a,s)}const id={get:ga(!1,!1)},ld={get:ga(!1,!0)},cd={get:ga(!0,!1)},ud={get:ga(!0,!0)},Oi=new WeakMap,Di=new WeakMap,Gi=new WeakMap,Bi=new WeakMap;function pd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xo(e){return so(e)?e:fa(e,!1,td,id,Oi)}function dd(e){return fa(e,!1,nd,ld,Di)}function As(e){return fa(e,!0,od,cd,Gi)}function gk(e){return fa(e,!0,ad,ud,Bi)}function fa(e,t,o,n,a){if(!He(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const r=pd(Op(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function ao(e){return so(e)?ao(e.__v_raw):!!(e&&e.__v_isReactive)}function so(e){return!!(e&&e.__v_isReadonly)}function Lt(e){return!!(e&&e.__v_isShallow)}function ha(e){return e?!!e.__v_raw:!1}function Oe(e){const t=e&&e.__v_raw;return t?Oe(t):e}function Jo(e){return!Ue(e,"__v_skip")&&Object.isExtensible(e)&&fi(e,"__v_skip",!0),e}const Dt=e=>He(e)?Xo(e):e,Qo=e=>He(e)?As(e):e;function Qe(e){return e?e.__v_isRef===!0:!1}function ge(e){return ji(e,!1)}function ma(e){return ji(e,!0)}function ji(e,t){return Qe(e)?e:new gd(e,t)}class gd{constructor(t,o){this.dep=new $s,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Oe(t),this._value=o?t:Dt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Lt(t)||so(t);t=n?t:Oe(t),Ut(t,o)&&(this._rawValue=t,this._value=n?t:Dt(t),this.dep.trigger())}}function ce(e){return Qe(e)?e.value:e}const fd={get:(e,t,o)=>t==="__v_raw"?e:ce(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return Qe(a)&&!Qe(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function zi(e){return ao(e)?e:new Proxy(e,fd)}function hd(e){const t=Pe(e)?new Array(e.length):{};for(const o in e)t[o]=Ui(e,o);return t}class md{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Pt(o)?o:String(o),this._raw=Oe(t);let a=!0,s=t;if(!Pe(t)||Pt(this._key)||!aa(this._key))do a=!ha(s)||Lt(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=ce(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Qe(this._raw[this._key])){const o=this._object[this._key];if(Qe(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return Zp(this._raw,this._key)}}class bd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ss(e,t,o){return Qe(e)?e:Te(e)?new bd(e):He(e)&&arguments.length>1?Ui(e,t,o):ge(e)}function Ui(e,t,o){return new md(e,t,o)}class yd{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new $s(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=xn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Ye!==this)return Ai(this,!0),!0}get value(){const t=this.dep.track();return Li(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function _d(e,t,o=!1){let n,a;return Te(e)?n=e:(n=e.get,a=e.set),new yd(n,a,o)}const ba={},ya=new WeakMap;let Oo;function $d(e,t=!1,o=Oo){if(o){let n=ya.get(o);n||ya.set(o,n=[]),n.push(e)}}function vd(e,t,o=Ve){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=v=>a?v:Lt(v)||a===!1||a===0?ro(v,1):ro(v);let u,g,f,k,P=!1,y=!1;if(Qe(e)?(g=()=>e.value,P=Lt(e)):ao(e)?(g=()=>c(e),P=!0):Pe(e)?(y=!0,P=e.some(v=>ao(v)||Lt(v)),g=()=>e.map(v=>{if(Qe(v))return v.value;if(ao(v))return c(v);if(Te(v))return l?l(v,2):v()})):Te(e)?t?g=l?()=>l(e,2):e:g=()=>{if(f){Ht();try{f()}finally{Kt()}}const v=Oo;Oo=u;try{return l?l(e,3,[k]):e(k)}finally{Oo=v}}:g=zt,t&&a){const v=g,A=a===!0?1/0:a;g=()=>ro(v(),A)}const x=wi(),$=()=>{u.stop(),x&&x.active&&us(x.effects,u)};if(s&&t){const v=t;t=(...A)=>{const T=v(...A);return $(),T}}let m=y?new Array(e.length).fill(ba):ba;const b=v=>{if(!(!(u.flags&1)||!u.dirty&&!v))if(t){const A=u.run();if(v||a||P||(y?A.some((T,w)=>Ut(T,m[w])):Ut(A,m))){f&&f();const T=Oo;Oo=u;try{const w=[A,m===ba?void 0:y&&m[0]===ba?[]:m,k];m=A,l?l(t,3,w):t(...w)}finally{Oo=T}}}else u.run()};return i&&i(b),u=new ki(g),u.scheduler=r?()=>r(b,!1):b,k=v=>$d(v,!1,u),f=u.onStop=()=>{const v=ya.get(u);if(v){if(l)l(v,4);else for(const A of v)A();ya.delete(u)}},t?n?b(!0):m=u.run():r?r(b.bind(null,!0),!0):u.run(),$.pause=u.pause.bind(u),$.resume=u.resume.bind(u),$.stop=$,$}function ro(e,t=1/0,o){if(t<=0||!He(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,Qe(e))ro(e.value,t,o);else if(Pe(e))for(let n=0;n<e.length;n++)ro(e[n],t,o);else if(oa(e)||_o(e))e.forEach(n=>{ro(n,t,o)});else if(na(e)){for(const n in e)ro(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&ro(e[n],t,o)}return e}/**
|
||
* @vue/runtime-core v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/const Pn=[];let Ps=!1;function fk(e,...t){if(Ps)return;Ps=!0,Ht();const o=Pn.length?Pn[Pn.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=wd();if(n)en(n,o,11,[e+t.map(s=>{var r,i;return(i=(r=s.toString)==null?void 0:r.call(s))!=null?i:JSON.stringify(s)}).join(""),o&&o.proxy,a.map(({vnode:s})=>`at <${zl(o,s.type)}>`).join(`
|
||
`),a]);else{const s=[`[Vue warn]: ${e}`,...t];a.length&&s.push(`
|
||
`,...kd(a)),console.warn(...s)}Kt(),Ps=!1}function wd(){let e=Pn[Pn.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 kd(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[`
|
||
`],...xd(o))}),t}function xd({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${zl(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...Ad(e.props),s]:[a+s]}function Ad(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Hi(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Hi(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}`]:Qe(t)?(t=Hi(e,Oe(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Te(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Oe(t),o?t:[`${e}=`,t])}function en(e,t,o,n){try{return n?e(...n):e()}catch(a){Ln(a,t,o)}}function Gt(e,t,o,n){if(Te(e)){const a=en(e,t,o,n);return a&&di(a)&&a.catch(s=>{Ln(s,t,o)}),a}if(Pe(e)){const a=[];for(let s=0;s<e.length;s++)a.push(Gt(e[s],t,o,n));return a}}function Ln(e,t,o,n=!0){const a=t?t.vnode:null,{errorHandler:s,throwUnhandledErrorInProduction:r}=t&&t.appContext.config||Ve;if(t){let i=t.parent;const l=t.proxy,c=`https://vuejs.org/error-reference/#runtime-${o}`;for(;i;){const u=i.ec;if(u){for(let g=0;g<u.length;g++)if(u[g](e,l,c)===!1)return}i=i.parent}if(s){Ht(),en(s,null,10,[e,l,c]),Kt();return}}Sd(e,o,a,n,r)}function Sd(e,t,o,n=!0,a=!1){if(a)throw e;console.error(e)}const wt=[];let Wt=-1;const tn=[];let $o=null,on=0;const Ki=Promise.resolve();let _a=null;function vo(e){const t=_a||Ki;return e?t.then(this?e.bind(this):e):t}function Pd(e){let t=Wt+1,o=wt.length;for(;t<o;){const n=t+o>>>1,a=wt[n],s=Tn(a);s<e||s===e&&a.flags&2?t=n+1:o=n}return t}function Ls(e){if(!(e.flags&1)){const t=Tn(e),o=wt[wt.length-1];!o||!(e.flags&2)&&t>=Tn(o)?wt.push(e):wt.splice(Pd(t),0,e),e.flags|=1,Vi()}}function Vi(){_a||(_a=Ki.then(Yi))}function Ld(e){if(!Pe(e))$o&&e.id===-1?$o.splice(on+1,0,e):e.flags&1||(tn.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)tn.push(e[t]);Vi()}function Wi(e,t,o=Wt+1){for(;o<wt.length;o++){const n=wt[o];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;wt.splice(o,1),o--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function qi(e){if(tn.length){const t=[...new Set(tn)].sort((o,n)=>Tn(o)-Tn(n));if(tn.length=0,$o){for(let o=0;o<t.length;o++)$o.push(t[o]);return}for($o=t,on=0;on<$o.length;on++){const o=$o[on];o.flags&4&&(o.flags&=-2),o.flags&8||o(),o.flags&=-2}$o=null,on=0}}const Tn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Yi(e){try{for(Wt=0;Wt<wt.length;Wt++){const t=wt[Wt];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),en(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Wt<wt.length;Wt++){const t=wt[Wt];t&&(t.flags&=-2)}Wt=-1,wt.length=0,qi(),_a=null,(wt.length||tn.length)&&Yi()}}let bt=null,Zi=null;function $a(e){const t=bt;return bt=e,Zi=e&&e.type.__scopeId||null,t}function Tt(e,t=bt,o){if(!t||e._n)return e;const n=(...a)=>{n._d&&Ca(-1);const s=$a(t),r=lo.length;let i;try{i=e(...a)}finally{for(let l=lo.length;l>r;l--)Ks();$a(s),n._d&&Ca(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Td(e,t){if(bt===null)return e;const o=Ma(bt),n=e.dirs||(e.dirs=[]);for(let a=0;a<t.length;a++){let[s,r,i,l=Ve]=t[a];s&&(Te(s)&&(s={mounted:s,updated:s}),s.deep&&ro(r),n.push({dir:s,instance:o,value:r,oldValue:void 0,arg:i,modifiers:l}))}return e}function Do(e,t,o,n){const a=e.dirs,s=t&&t.dirs;for(let r=0;r<a.length;r++){const i=a[r];s&&(i.oldValue=s[r].value);let l=i.dir[n];l&&(Ht(),Gt(l,o,8,[e.el,i,e,t]),Kt())}}function yt(e,t){if(_t){let o=_t.provides;const n=_t.parent&&_t.parent.provides;n===o&&(o=_t.provides=Object.create(n)),o[e]=t}}function Ee(e,t,o=!1){const n=uo();if(n||Bo){let a=Bo?Bo._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(a&&e in a)return a[e];if(arguments.length>1)return o&&Te(t)?t.call(n&&n.proxy):t}}function Cd(){return!!(uo()||Bo)}const Ed=Symbol.for("v-scx"),Rd=()=>Ee(Ed);function Nd(e,t){return Ts(e,null,t)}function je(e,t,o){return Ts(e,t,o)}function Ts(e,t,o=Ve){const{immediate:n,deep:a,flush:s,once:r}=o,i=it({},o),l=t&&n||!t&&s!=="post";let c;if(sn){if(s==="sync"){const k=Rd();c=k.__watcherHandles||(k.__watcherHandles=[])}else if(!l){const k=()=>{};return k.stop=zt,k.resume=zt,k.pause=zt,k}}const u=_t;i.call=(k,P,y)=>Gt(k,u,P,y);let g=!1;s==="post"?i.scheduler=k=>{xt(k,u&&u.suspense)}:s!=="sync"&&(g=!0,i.scheduler=(k,P)=>{P?k():Ls(k)}),i.augmentJob=k=>{t&&(k.flags|=4),g&&(k.flags|=2,u&&(k.id=u.uid,k.i=u))};const f=vd(e,t,i);return sn&&(c?c.push(f):l&&f()),f}function Md(e,t,o){const n=this.proxy,a=qe(e)?e.includes(".")?Xi(n,e):()=>n[e]:e.bind(n,n);let s;Te(t)?s=t:(s=t.handler,o=t);const r=jn(this),i=Ts(a,s.bind(n),o);return r(),i}function Xi(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;a<o.length&&n;a++)n=n[o[a]];return n}}const wo=new WeakMap,Ji=Symbol("_vte"),va=e=>e.__isTeleport,Go=e=>e&&(e.disabled||e.disabled===""),Fd=e=>e&&(e.defer||e.defer===""),Qi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,el=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Cs=(e,t)=>{const o=e&&e.to;return qe(o)?t?t(o):null:o},Id={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:g,pbc:f,o:{insert:k,querySelector:P,createText:y,createComment:x,parentNode:$}}=c,m=Go(t.props);let{dynamicChildren:b}=t;const v=(w,S,h)=>{w.shapeFlag&16&&u(w.children,S,h,a,s,r,i,l)},A=(w=t)=>{const S=Go(w.props),h=w.target=Cs(w.props,P),M=Es(h,w,y,k);h&&(r!=="svg"&&Qi(h)?r="svg":r!=="mathml"&&el(h)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(h),S||(v(w,h,M),Cn(w,!1)))},T=w=>{const S=()=>{if(wo.get(w)===S){if(wo.delete(w),Go(w.props)){const h=$(w.el)||o;v(w,h,w.anchor),Cn(w,!0)}A(w)}};wo.set(w,S),xt(S,s)};if(e==null){const w=t.el=y(""),S=t.anchor=y("");if(k(w,o,n),k(S,o,n),Fd(t.props)||s&&s.pendingBranch){T(t);return}m&&(v(t,o,S),Cn(t,!0)),A()}else{t.el=e.el;const w=t.anchor=e.anchor,S=wo.get(e);if(S){S.flags|=8,wo.delete(e),T(t);return}t.targetStart=e.targetStart;const h=t.target=e.target,M=t.targetAnchor=e.targetAnchor,G=Go(e.props),W=G?o:h,ne=G?w:M;if(r==="svg"||Qi(h)?r="svg":(r==="mathml"||el(h))&&(r="mathml"),b?(f(e.dynamicChildren,b,W,a,s,r,i),Us(e,t,!0)):l||g(e,t,W,ne,a,s,r,i,!1),m)G?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):wa(t,o,w,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const he=Cs(t.props,P);he&&(t.target=he,wa(t,he,null,c,0))}else G&&wa(t,h,M,c,1);Cn(t,m)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:g,props:f}=e,k=Go(f),P=s||!k,y=wo.get(e);if(y&&(y.flags|=8,wo.delete(e)),g&&(a(c),a(u)),s&&a(l),!y&&(k||g)&&r&16)for(let x=0;x<i.length;x++){const $=i[x];n($,t,o,P,!!$.dynamicChildren)}},move:wa,hydrate:Od};function wa(e,t,o,{o:{insert:n},m:a},s=2){s===0&&n(e.targetAnchor,t,o);const{el:r,anchor:i,shapeFlag:l,children:c,props:u}=e,g=s===2;if(g&&n(r,t,o),!wo.has(e)&&(!g||Go(u))&&l&16)for(let f=0;f<c.length;f++)a(c[f],t,o,2);g&&n(i,t,o)}function Od(e,t,o,n,a,s,{o:{nextSibling:r,parentNode:i,querySelector:l,insert:c,createText:u}},g){function f(x,$){let m=$;for(;m;){if(m&&m.nodeType===8){if(m.data==="teleport start anchor")t.targetStart=m;else if(m.data==="teleport anchor"){t.targetAnchor=m,x._lpa=t.targetAnchor&&r(t.targetAnchor);break}}m=r(m)}}function k(x,$){$.anchor=g(r(x),$,i(x),o,n,a,s)}const P=t.target=Cs(t.props,l),y=Go(t.props);if(P){const x=P._lpa||P.firstChild;t.shapeFlag&16&&(y?(k(e,t),f(P,x),t.targetAnchor||Es(P,t,u,c,i(e)===P?e:null)):(t.anchor=r(e),f(P,x),t.targetAnchor||Es(P,t,u,c),g(x&&r(x),t,P,o,n,a,s))),Cn(t,y)}else y&&t.shapeFlag&16&&(k(e,t),t.targetStart=e,t.targetAnchor=r(e));return t.anchor&&r(t.anchor)}const Dd=Id;function Cn(e,t){const o=e.ctx;if(o&&o.ut){let n,a;for(t?(n=e.el,a=e.anchor):(n=e.targetStart,a=e.targetAnchor);n&&n!==a;)n.nodeType===1&&n.setAttribute("data-v-owner",o.uid),n=n.nextSibling;o.ut()}}function Es(e,t,o,n,a=null){const s=t.targetStart=o(""),r=t.targetAnchor=o("");return s[Ji]=r,e&&(n(s,e,a),n(r,e,a)),r}const Rs=Symbol("_leaveCb");function Gd(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Zt){t=o;break}}return t}function tl(e){if(!Aa(e))return va(e.type)&&e.children?Gd(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&&Te(o.default))return o.default()}}function Ns(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Ns(va(o.type)&&tl(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 En(e,t){return Te(e)?it({name:e.name},t,{setup:e}):e}function Ms(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ol(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const ka=new WeakMap;function Rn(e,t,o,n,a=!1){if(Pe(e)){e.forEach((y,x)=>Rn(y,t&&(Pe(t)?t[x]:t),o,n,a));return}if(nn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Rn(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?Ma(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===Ve?i.refs={}:i.refs,g=i.setupState,f=Oe(g),k=g===Ve?ui:y=>ol(u,y)?!1:Ue(f,y),P=(y,x)=>!(x&&ol(u,x));if(c!=null&&c!==l){if(nl(t),qe(c))u[c]=null,k(c)&&(g[c]=null);else if(Qe(c)){const y=t;P(c,y.k)&&(c.value=null),y.k&&(u[y.k]=null)}}if(Te(l))en(l,i,12,[r,u]);else{const y=qe(l),x=Qe(l);if(y||x){const $=()=>{if(e.f){const m=y?k(l)?g[l]:u[l]:P()||!e.k?l.value:u[e.k];if(a)Pe(m)&&us(m,s);else if(Pe(m))m.includes(s)||m.push(s);else if(y)u[l]=[s],k(l)&&(g[l]=u[l]);else{const b=[s];P(l,e.k)&&(l.value=b),e.k&&(u[e.k]=b)}}else y?(u[l]=r,k(l)&&(g[l]=r)):x&&(P(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const m=()=>{$(),ka.delete(e)};m.id=-1,ka.set(e,m),xt(m,o)}else nl(e),$()}}}function nl(e){const t=ka.get(e);t&&(t.flags|=8,ka.delete(e))}const al=e=>e.nodeType===8;ia().requestIdleCallback,ia().cancelIdleCallback;function Bd(e,t){if(al(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(al(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const nn=e=>!!e.type.__asyncLoader;function jd(e){Te(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,g=0;const f=()=>(g++,c=null,k()),k=()=>{let P;return c||(P=c=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),l)return new Promise((x,$)=>{l(y,()=>x(f()),()=>$(y),g+1)});throw y}).then(y=>P!==c&&c?c:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),u=y,y)))};return En({name:"AsyncComponentWrapper",__asyncLoader:k,__asyncHydrate(P,y,x){const $=P.isConnected;let m=!1;(y.bu||(y.bu=[])).push(()=>m=!0);const b=()=>{m||!P.parentNode||$&&!P.isConnected||x()},v=s?()=>{const A=s(b,T=>Bd(P,T));A&&(y.bum||(y.bum=[])).push(A)}:b;u?v():k().then(()=>!y.isUnmounted&&v())},get __asyncResolved(){return u},setup(){const P=_t;if(Ms(P),u)return()=>xa(u,P);const y=A=>{c=null,Ln(A,P,13,!n)};if(i&&P.suspense||sn)return k().then(A=>()=>xa(A,P)).catch(A=>(y(A),()=>n?We(n,{error:A}):null));const x=ge(!1),$=ge(),m=ge(!!a);let b,v;return Pa(()=>{b!=null&&clearTimeout(b),v!=null&&clearTimeout(v)}),a&&(v=setTimeout(()=>{P.isUnmounted||(m.value=!1)},a)),r!=null&&(b=setTimeout(()=>{if(!P.isUnmounted&&!x.value&&!$.value){const A=new Error(`Async component timed out after ${r}ms.`);y(A),$.value=A}},r)),k().then(()=>{P.isUnmounted||(x.value=!0,P.parent&&Aa(P.parent.vnode)&&P.parent.update())}).catch(A=>{if(P.isUnmounted){c=null;return}y(A),$.value=A}),()=>{if(x.value&&u)return xa(u,P);if($.value&&n)return We(n,{error:$.value});if(o&&!m.value)return xa(o,P)}}})}function xa(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=We(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Aa=e=>e.type.__isKeepAlive;function zd(e,t){sl(e,"a",t)}function Ud(e,t){sl(e,"da",t)}function sl(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(Sa(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Aa(a.parent.vnode)&&Hd(n,t,o,a),a=a.parent}}function Hd(e,t,o,n){const a=Sa(t,e,n,!0);Pa(()=>{us(n[t],a)},o)}function Sa(e,t,o=_t,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{Ht();const i=jn(o),l=Gt(t,o,e,r);return i(),Kt(),l});return n?a.unshift(s):a.push(s),s}}const io=e=>(t,o=_t)=>{(!sn||e==="sp")&&Sa(e,(...n)=>t(...n),o)},rl=io("bm"),qt=io("m"),Kd=io("bu"),Vd=io("u"),Yt=io("bum"),Pa=io("um"),Wd=io("sp"),qd=io("rtg"),Yd=io("rtc");function Zd(e,t=_t){Sa("ec",e,t)}const Xd="components",il=Symbol.for("v-ndc");function ll(e){return qe(e)?Jd(Xd,e,!1)||e:e||il}function Jd(e,t,o=!0,n=!1){const a=bt||_t;if(a){const s=a.type;{const i=jl(s,!1);if(i&&(i===t||i===gt(t)||i===ra(gt(t))))return s}const r=cl(a[e]||s[e],t)||cl(a.appContext[e],t);return!r&&n?s:r}}function cl(e,t){return e&&(e[t]||e[gt(t)]||e[ra(gt(t))])}function Ct(e,t,o,n){let a;const s=o,r=Pe(e);if(r||qe(e)){const i=r&&ao(e);let l=!1,c=!1;i&&(l=!Lt(e),c=so(e),e=ua(e)),a=new Array(e.length);for(let u=0,g=e.length;u<g;u++)a[u]=t(l?c?Qo(Dt(e[u])):Dt(e[u]):e[u],u,void 0,s)}else if(typeof e=="number"){a=new Array(e);for(let i=0;i<e;i++)a[i]=t(i+1,i,void 0,s)}else if(He(e))if(e[Symbol.iterator])a=Array.from(e,(i,l)=>t(i,l,void 0,s));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l<c;l++){const u=i[l];a[l]=t(e[u],u,l,s)}}else a=[];return a}function Nn(e,t,o,n,a,s){if(o==null&&(o={}),bt.ce||bt.parent&&nn(bt.parent)&&bt.parent.ce){const c=o,u=Object.keys(c).length>0;return t!=="default"&&(c.name=t),Q(),Ze(Ge,null,[We("slot",c,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=lo.length;Q();let l;try{const c=r&&ul(r(o)),u=o.key||s||c&&c.key;l=Ze(Ge,{key:(u&&!Pt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=lo.length;u>i;u--)Ks();throw c}finally{r&&r._c&&(r._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function ul(e){return e.some(t=>Dn(t)?!(t.type===Zt||t.type===Ge&&!ul(t.children)):!0)?e:null}const Fs=e=>e?Dl(e)?Ma(e):Fs(e.parent):null,Mn=it(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=>Fs(e.parent),$root:e=>Fs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>fl(e),$forceUpdate:e=>e.f||(e.f=()=>{Ls(e.update)}),$nextTick:e=>e.n||(e.n=vo.bind(e.proxy)),$watch:e=>Md.bind(e)}),Is=(e,t)=>e!==Ve&&!e.__isScriptSetup&&Ue(e,t),Qd={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 f=r[t];if(f!==void 0)switch(f){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(Is(n,t))return r[t]=1,n[t];if(a!==Ve&&Ue(a,t))return r[t]=2,a[t];if(Ue(s,t))return r[t]=3,s[t];if(o!==Ve&&Ue(o,t))return r[t]=4,o[t];Os&&(r[t]=0)}}const c=Mn[t];let u,g;if(c)return t==="$attrs"&&vt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==Ve&&Ue(o,t))return r[t]=4,o[t];if(g=l.config.globalProperties,Ue(g,t))return g[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return Is(a,t)?(a[t]=o,!0):n!==Ve&&Ue(n,t)?(n[t]=o,!0):Ue(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!==Ve&&i[0]!=="$"&&Ue(e,i)||Is(t,i)||Ue(s,i)||Ue(n,i)||Ue(Mn,i)||Ue(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Ue(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function pl(e){return Pe(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let Os=!0;function eg(e){const t=fl(e),o=e.proxy,n=e.ctx;Os=!1,t.beforeCreate&&dl(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:g,mounted:f,beforeUpdate:k,updated:P,activated:y,deactivated:x,beforeDestroy:$,beforeUnmount:m,destroyed:b,unmounted:v,render:A,renderTracked:T,renderTriggered:w,errorCaptured:S,serverPrefetch:h,expose:M,inheritAttrs:G,components:W,directives:ne,filters:he}=t;if(c&&tg(c,n,null),r)for(const D in r){const z=r[D];Te(z)&&(n[D]=z.bind(o))}if(a){const D=a.call(o,o);He(D)&&(e.data=Xo(D))}if(Os=!0,s)for(const D in s){const z=s[D],O=Te(z)?z.bind(o,o):Te(z.get)?z.get.bind(o,o):zt,U=!Te(z)&&Te(z.set)?z.set.bind(o):zt,se=te({get:O,set:U});Object.defineProperty(n,D,{enumerable:!0,configurable:!0,get:()=>se.value,set:pe=>se.value=pe})}if(i)for(const D in i)gl(i[D],n,o,D);if(l){const D=Te(l)?l.call(o):l;Reflect.ownKeys(D).forEach(z=>{yt(z,D[z])})}u&&dl(u,e,"c");function C(D,z){Pe(z)?z.forEach(O=>D(O.bind(o))):z&&D(z.bind(o))}if(C(rl,g),C(qt,f),C(Kd,k),C(Vd,P),C(zd,y),C(Ud,x),C(Zd,S),C(Yd,T),C(qd,w),C(Yt,m),C(Pa,v),C(Wd,h),Pe(M))if(M.length){const D=e.exposed||(e.exposed={});M.forEach(z=>{Object.defineProperty(D,z,{get:()=>o[z],set:O=>o[z]=O,enumerable:!0})})}else e.exposed||(e.exposed={});A&&e.render===zt&&(e.render=A),G!=null&&(e.inheritAttrs=G),W&&(e.components=W),ne&&(e.directives=ne),h&&Ms(e)}function tg(e,t,o=zt){Pe(e)&&(e=Ds(e));for(const n in e){const a=e[n];let s;He(a)?"default"in a?s=Ee(a.from||n,a.default,!0):s=Ee(a.from||n):s=Ee(a),Qe(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function dl(e,t,o){Gt(Pe(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function gl(e,t,o,n){let a=n.includes(".")?Xi(o,n):()=>o[n];if(qe(e)){const s=t[e];Te(s)&&je(a,s)}else if(Te(e))je(a,e.bind(o));else if(He(e))if(Pe(e))e.forEach(s=>gl(s,t,o,n));else{const s=Te(e.handler)?e.handler.bind(o):t[e.handler];Te(s)&&je(a,s,e)}}function fl(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=>La(l,c,r,!0)),La(l,t,r)),He(t)&&s.set(t,l),l}function La(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&La(e,s,o,!0),a&&a.forEach(r=>La(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=og[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const og={data:hl,props:ml,emits:ml,methods:Fn,computed:Fn,beforeCreate:kt,created:kt,beforeMount:kt,mounted:kt,beforeUpdate:kt,updated:kt,beforeDestroy:kt,beforeUnmount:kt,destroyed:kt,unmounted:kt,activated:kt,deactivated:kt,errorCaptured:kt,serverPrefetch:kt,components:Fn,directives:Fn,watch:ag,provide:hl,inject:ng};function hl(e,t){return t?e?function(){return it(Te(e)?e.call(this,this):e,Te(t)?t.call(this,this):t)}:t:e}function ng(e,t){return Fn(Ds(e),Ds(t))}function Ds(e){if(Pe(e)){const t={};for(let o=0;o<e.length;o++)t[e[o]]=e[o];return t}return e}function kt(e,t){return e?[...new Set([].concat(e,t))]:t}function Fn(e,t){return e?it(Object.create(null),e,t):t}function ml(e,t){return e?Pe(e)&&Pe(t)?[...new Set([...e,...t])]:it(Object.create(null),pl(e),pl(t??{})):t}function ag(e,t){if(!e)return t;if(!t)return e;const o=it(Object.create(null),e);for(const n in t)o[n]=kt(e[n],t[n]);return o}function bl(){return{app:null,config:{isNativeTag:ui,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let sg=0;function rg(e,t){return function(n,a=null){Te(n)||(n=it({},n)),a!=null&&!He(a)&&(a=null);const s=bl(),r=new WeakSet,i=[];let l=!1;const c=s.app={_uid:sg++,_component:n,_props:a,_container:null,_context:s,_instance:null,version:Dg,get config(){return s.config},set config(u){},use(u,...g){return r.has(u)||(u&&Te(u.install)?(r.add(u),u.install(c,...g)):Te(u)&&(r.add(u),u(c,...g))),c},mixin(u){return s.mixins.includes(u)||s.mixins.push(u),c},component(u,g){return g?(s.components[u]=g,c):s.components[u]},directive(u,g){return g?(s.directives[u]=g,c):s.directives[u]},mount(u,g,f){if(!l){const k=c._ceVNode||We(n,a);return k.appContext=s,f===!0?f="svg":f===!1&&(f=void 0),e(k,u,f),l=!0,c._container=u,u.__vue_app__=c,Ma(k.component)}},onUnmount(u){i.push(u)},unmount(){l&&(Gt(i,c._instance,16),e(null,c._container),delete c._container.__vue_app__)},provide(u,g){return s.provides[u]=g,c},runWithContext(u){const g=Bo;Bo=c;try{return u()}finally{Bo=g}}};return c}}let Bo=null;const ig=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${gt(t)}Modifiers`]||e[`${Nt(t)}Modifiers`];function lg(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Ve;let a=o;const s=t.startsWith("update:"),r=s&&ig(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>qe(u)?u.trim():u)),r.number&&(a=a.map(Bp)));let i,l=n[i=ps(t)]||n[i=ps(gt(t))];!l&&s&&(l=n[i=ps(Nt(t))]),l&&Gt(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,Gt(c,e,6,a)}}const cg=new WeakMap;function yl(e,t,o=!1){const n=o?cg:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!Te(e)){const l=c=>{const u=yl(c,t,!0);u&&(i=!0,it(r,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(He(e)&&n.set(e,null),null):(Pe(s)?s.forEach(l=>r[l]=null):it(r,s),He(e)&&n.set(e,r),r)}function Ta(e,t){return!e||!ea(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ue(e,t[0].toLowerCase()+t.slice(1))||Ue(e,Nt(t))||Ue(e,t))}function hk(){}function _l(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:g,data:f,setupState:k,ctx:P,inheritAttrs:y}=e,x=$a(e);let $,m;try{if(o.shapeFlag&4){const v=a||n,A=v;$=Xt(c.call(A,v,u,g,k,f,P)),m=i}else{const v=t;$=Xt(v.length>1?v(g,{attrs:i,slots:r,emit:l}):v(g,null)),m=t.props?i:ug(i)}}catch(v){lo.length=0,Ln(v,e,1),$=We(Zt)}let b=$;if(m&&y!==!1){const v=Object.keys(m),{shapeFlag:A}=b;v.length&&A&7&&(s&&v.some(ta)&&(m=pg(m,s)),b=an(b,m,!1,!0))}if(o.dirs&&(b=an(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(o.dirs):o.dirs),o.transition){const v=va(b.type)&&tl(b)||b;Ns(v,o.transition)}return $=b,$a(x),$}const ug=e=>{let t;for(const o in e)(o==="class"||o==="style"||ea(o))&&((t||(t={}))[o]=e[o]);return t},pg=(e,t)=>{const o={};for(const n in e)(!ta(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function dg(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?$l(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let g=0;g<u.length;g++){const f=u[g];if(vl(r,n,f)&&!Ta(c,f))return!0}}}else return(a||i)&&(!i||!i.$stable)?!0:n===r?!1:n?r?$l(n,r,c):!0:!!r;return!1}function $l(e,t,o){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let a=0;a<n.length;a++){const s=n[a];if(vl(t,e,s)&&!Ta(o,s))return!0}return!1}function vl(e,t,o){const n=e[o],a=t[o];return o==="style"&&He(n)&&He(a)?!la(n,a):n!==a}function gg({vnode:e,parent:t,suspense:o},n){for(;t;){const a=t.subTree;if(a.suspense&&a.suspense.activeBranch===e&&(a.suspense.vnode.el=a.el=n,e=a),a===e)(e=t.vnode).el=n,t=t.parent;else break}o&&o.activeBranch===e&&(o.vnode.el=n)}const wl={},kl=()=>Object.create(wl),xl=e=>Object.getPrototypeOf(e)===wl;function fg(e,t,o,n=!1){const a={},s=kl();e.propsDefaults=Object.create(null),Al(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:dd(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function hg(e,t,o,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,i=Oe(a),[l]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let g=0;g<u.length;g++){let f=u[g];if(Ta(e.emitsOptions,f))continue;const k=t[f];if(l)if(Ue(s,f))k!==s[f]&&(s[f]=k,c=!0);else{const P=gt(f);a[P]=Gs(l,i,P,k,e,!1)}else k!==s[f]&&(s[f]=k,c=!0)}}}else{Al(e,t,a,s)&&(c=!0);let u;for(const g in i)(!t||!Ue(t,g)&&((u=Nt(g))===g||!Ue(t,u)))&&(l?o&&(o[g]!==void 0||o[u]!==void 0)&&(a[g]=Gs(l,i,g,void 0,e,!0)):delete a[g]);if(s!==i)for(const g in s)(!t||!Ue(t,g))&&(delete s[g],c=!0)}c&&oo(e.attrs,"set","")}function Al(e,t,o,n){const[a,s]=e.propsOptions;let r=!1,i;if(t)for(let l in t){if(vn(l))continue;const c=t[l];let u;a&&Ue(a,u=gt(l))?!s||!s.includes(u)?o[u]=c:(i||(i={}))[u]=c:Ta(e.emitsOptions,l)||(!(l in n)||c!==n[l])&&(n[l]=c,r=!0)}if(s){const l=Oe(o),c=i||Ve;for(let u=0;u<s.length;u++){const g=s[u];o[g]=Gs(a,l,g,c[g],e,!Ue(c,g))}}return r}function Gs(e,t,o,n,a,s){const r=e[o];if(r!=null){const i=Ue(r,"default");if(i&&n===void 0){const l=r.default;if(r.type!==Function&&!r.skipFactory&&Te(l)){const{propsDefaults:c}=a;if(o in c)n=c[o];else{const u=jn(a);n=c[o]=l.call(null,t),u()}}else n=l;a.ce&&a.ce._setProp(o,n)}r[0]&&(s&&!i?n=!1:r[1]&&(n===""||n===Nt(o))&&(n=!0))}return n}const mg=new WeakMap;function Sl(e,t,o=!1){const n=o?mg:t.propsCache,a=n.get(e);if(a)return a;const s=e.props,r={},i=[];let l=!1;if(!Te(e)){const u=g=>{l=!0;const[f,k]=Sl(g,t,!0);it(r,f),k&&i.push(...k)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return He(e)&&n.set(e,Yo),Yo;if(Pe(s))for(let u=0;u<s.length;u++){const g=gt(s[u]);Pl(g)&&(r[g]=Ve)}else if(s)for(const u in s){const g=gt(u);if(Pl(g)){const f=s[u],k=r[g]=Pe(f)||Te(f)?{type:f}:it({},f),P=k.type;let y=!1,x=!0;if(Pe(P))for(let $=0;$<P.length;++$){const m=P[$],b=Te(m)&&m.name;if(b==="Boolean"){y=!0;break}else b==="String"&&(x=!1)}else y=Te(P)&&P.name==="Boolean";k[0]=y,k[1]=x,(y||Ue(k,"default"))&&i.push(g)}}const c=[r,i];return He(e)&&n.set(e,c),c}function Pl(e){return e[0]!=="$"&&!vn(e)}const Bs=e=>e==="_"||e==="_ctx"||e==="$stable",js=e=>Pe(e)?e.map(Xt):[Xt(e)],bg=(e,t,o)=>{if(t._n)return t;const n=Tt((...a)=>js(t(...a)),o);return n._c=!1,n},Ll=(e,t,o)=>{const n=e._ctx;for(const a in e){if(Bs(a))continue;const s=e[a];if(Te(s))t[a]=bg(a,s,n);else if(s!=null){const r=js(s);t[a]=()=>r}}},Tl=(e,t)=>{const o=js(t);e.slots.default=()=>o},Cl=(e,t,o)=>{for(const n in t)(o||!Bs(n))&&(e[n]=t[n])},yg=(e,t,o)=>{const n=e.slots=kl();if(e.vnode.shapeFlag&32){const a=t._;a?(Cl(n,t,o),o&&fi(n,"_",a,!0)):Ll(t,n)}else t&&Tl(e,t)},_g=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=Ve;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:Cl(a,t,o):(s=!t.$stable,Ll(t,a)),r=t}else t&&(Tl(e,t),r={default:1});if(s)for(const i in a)!Bs(i)&&r[i]==null&&delete a[i]},xt=xg;function $g(e){return vg(e)}function vg(e,t){const o=ia();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:g,nextSibling:f,setScopeId:k=zt,insertStaticContent:P}=e,y=(_,R,L,B=null,H=null,E=null,ee=void 0,Y=null,d=!!R.dynamicChildren)=>{if(_===R)return;_&&!Gn(_,R)&&(B=we(_),pe(_,H,E,!0),_=null),R.patchFlag===-2&&(d=!1,R.dynamicChildren=null);const{type:p,ref:N,shapeFlag:V}=R;switch(p){case In:x(_,R,L,B);break;case Zt:$(_,R,L,B);break;case Hs:_==null&&m(R,L,B,ee);break;case Ge:W(_,R,L,B,H,E,ee,Y,d);break;default:V&1?A(_,R,L,B,H,E,ee,Y,d):V&6?ne(_,R,L,B,H,E,ee,Y,d):(V&64||V&128)&&p.process(_,R,L,B,H,E,ee,Y,d,oe)}N!=null&&H?Rn(N,_&&_.ref,E,R||_,!R):N==null&&_&&_.ref!=null&&Rn(_.ref,null,E,_,!0)},x=(_,R,L,B)=>{if(_==null)n(R.el=i(R.children),L,B);else{const H=R.el=_.el;R.children!==_.children&&c(H,R.children)}},$=(_,R,L,B)=>{_==null?n(R.el=l(R.children||""),L,B):R.el=_.el},m=(_,R,L,B)=>{[_.el,_.anchor]=P(_.children,R,L,B,_.el,_.anchor)},b=({el:_,anchor:R},L,B)=>{let H;for(;_&&_!==R;)H=f(_),n(_,L,B),_=H;n(R,L,B)},v=({el:_,anchor:R})=>{let L;for(;_&&_!==R;)L=f(_),a(_),_=L;a(R)},A=(_,R,L,B,H,E,ee,Y,d)=>{if(R.type==="svg"?ee="svg":R.type==="math"&&(ee="mathml"),_==null)T(R,L,B,H,E,ee,Y,d);else{const p=_.el&&_.el._isVueCE?_.el:null;try{p&&p._beginPatch(),h(_,R,H,E,ee,Y,d)}finally{p&&p._endPatch()}}},T=(_,R,L,B,H,E,ee,Y)=>{let d,p;const{props:N,shapeFlag:V,transition:ue,dirs:ie}=_;if(d=_.el=r(_.type,E,N&&N.is,N),V&8?u(d,_.children):V&16&&S(_.children,d,null,B,H,zs(_,E),ee,Y),ie&&Do(_,null,B,"created"),w(d,_,_.scopeId,ee,B),N){for(const X in N)X!=="value"&&!vn(X)&&s(d,X,null,N[X],E,B);"value"in N&&s(d,"value",null,N.value,E),(p=N.onVnodeBeforeMount)&&Jt(p,B,_)}ie&&Do(_,null,B,"beforeMount");const j=wg(H,ue);j&&ue.beforeEnter(d),n(d,R,L),((p=N&&N.onVnodeMounted)||j||ie)&&xt(()=>{try{p&&Jt(p,B,_),j&&ue.enter(d),ie&&Do(_,null,B,"mounted")}finally{}},H)},w=(_,R,L,B,H)=>{if(L&&k(_,L),B)for(let E=0;E<B.length;E++)k(_,B[E]);if(H){let E=H.subTree;if(R===E||Ml(E.type)&&(E.ssContent===R||E.ssFallback===R)){const ee=H.vnode;w(_,ee,ee.scopeId,ee.slotScopeIds,H.parent)}}},S=(_,R,L,B,H,E,ee,Y,d=0)=>{for(let p=d;p<_.length;p++){const N=_[p]=Y?co(_[p]):Xt(_[p]);y(null,N,R,L,B,H,E,ee,Y)}},h=(_,R,L,B,H,E,ee)=>{const Y=R.el=_.el;let{patchFlag:d,dynamicChildren:p,dirs:N}=R;d|=_.patchFlag&16;const V=_.props||Ve,ue=R.props||Ve;let ie;if(L&&jo(L,!1),(ie=ue.onVnodeBeforeUpdate)&&Jt(ie,L,R,_),N&&Do(R,_,L,"beforeUpdate"),L&&jo(L,!0),p&&(!_.dynamicChildren||_.dynamicChildren.length!==p.length)&&(d=0,ee=!1,p=null),(V.innerHTML&&ue.innerHTML==null||V.textContent&&ue.textContent==null)&&u(Y,""),p?M(_.dynamicChildren,p,Y,L,B,zs(R,H),E):ee||z(_,R,Y,null,L,B,zs(R,H),E,!1),d>0){if(d&16)G(Y,V,ue,L,H);else if(d&2&&V.class!==ue.class&&s(Y,"class",null,ue.class,H),d&4&&s(Y,"style",V.style,ue.style,H),d&8){const j=R.dynamicProps;for(let X=0;X<j.length;X++){const ye=j[X],Se=V[ye],Be=ue[ye];(Be!==Se||ye==="value")&&s(Y,ye,Se,Be,H,L)}}d&1&&_.children!==R.children&&u(Y,R.children)}else!ee&&p==null&&G(Y,V,ue,L,H);((ie=ue.onVnodeUpdated)||N)&&xt(()=>{ie&&Jt(ie,L,R,_),N&&Do(R,_,L,"updated")},B)},M=(_,R,L,B,H,E,ee)=>{for(let Y=0;Y<R.length;Y++){const d=_[Y],p=R[Y],N=d.el&&(d.type===Ge||!Gn(d,p)||d.shapeFlag&198)?g(d.el):L;y(d,p,N,null,B,H,E,ee,!0)}},G=(_,R,L,B,H)=>{if(R!==L){if(R!==Ve)for(const E in R)!vn(E)&&!(E in L)&&s(_,E,R[E],null,H,B);for(const E in L){if(vn(E))continue;const ee=L[E],Y=R[E];ee!==Y&&E!=="value"&&s(_,E,Y,ee,H,B)}"value"in L&&s(_,"value",R.value,L.value,H)}},W=(_,R,L,B,H,E,ee,Y,d)=>{const p=R.el=_?_.el:i(""),N=R.anchor=_?_.anchor:i("");let{patchFlag:V,dynamicChildren:ue,slotScopeIds:ie}=R;ie&&(Y=Y?Y.concat(ie):ie),_==null?(n(p,L,B),n(N,L,B),S(R.children||[],L,N,H,E,ee,Y,d)):V>0&&V&64&&ue&&_.dynamicChildren&&_.dynamicChildren.length===ue.length?(M(_.dynamicChildren,ue,L,H,E,ee,Y),(R.key!=null||H&&R===H.subTree)&&Us(_,R,!0)):z(_,R,L,N,H,E,ee,Y,d)},ne=(_,R,L,B,H,E,ee,Y,d)=>{R.slotScopeIds=Y,_==null?R.shapeFlag&512?H.ctx.activate(R,L,B,ee,d):he(R,L,B,H,E,ee,d):K(_,R,d)},he=(_,R,L,B,H,E,ee)=>{const Y=_.component=Cg(_,B,H);if(Aa(_)&&(Y.ctx.renderer=oe),Eg(Y,!1,ee),Y.asyncDep){if(H&&H.registerDep(Y,C,ee),!_.el){const d=Y.subTree=We(Zt);$(null,d,R,L),_.placeholder=d.el}}else C(Y,_,R,L,H,E,ee)},K=(_,R,L)=>{const B=R.component=_.component;if(dg(_,R,L))if(B.asyncDep&&!B.asyncResolved){D(B,R,L);return}else B.next=R,B.update();else R.el=_.el,B.vnode=R},C=(_,R,L,B,H,E,ee)=>{const Y=()=>{if(_.isMounted){let{next:V,bu:ue,u:ie,parent:j,vnode:X}=_;{const at=El(_);if(at){V&&(V.el=X.el,D(_,V,ee)),at.asyncDep.then(()=>{xt(()=>{_.isUnmounted||p()},H)});return}}let ye=V,Se;jo(_,!1),V?(V.el=X.el,D(_,V,ee)):V=X,ue&&ds(ue),(Se=V.props&&V.props.onVnodeBeforeUpdate)&&Jt(Se,j,V,X),jo(_,!0);const Be=_l(_),nt=_.subTree;_.subTree=Be,y(nt,Be,g(nt.el),we(nt),_,H,E),V.el=Be.el,ye===null&&gg(_,Be.el),ie&&xt(ie,H),(Se=V.props&&V.props.onVnodeUpdated)&&xt(()=>Jt(Se,j,V,X),H)}else{let V;const{el:ue,props:ie}=R,{bm:j,m:X,parent:ye,root:Se,type:Be}=_,nt=nn(R);jo(_,!1),j&&ds(j),!nt&&(V=ie&&ie.onVnodeBeforeMount)&&Jt(V,ye,R),jo(_,!0);{Se.ce&&Se.ce._hasShadowRoot()&&Se.ce._injectChildStyle(Be,_.parent?_.parent.type:void 0);const at=_.subTree=_l(_);y(null,at,L,B,_,H,E),R.el=at.el}if(X&&xt(X,H),!nt&&(V=ie&&ie.onVnodeMounted)){const at=R;xt(()=>Jt(V,ye,at),H)}(R.shapeFlag&256||ye&&nn(ye.vnode)&&ye.vnode.shapeFlag&256)&&_.a&&xt(_.a,H),_.isMounted=!0,R=L=B=null}};_.scope.on();const d=_.effect=new ki(Y);_.scope.off();const p=_.update=d.run.bind(d),N=_.job=d.runIfDirty.bind(d);N.i=_,N.id=_.uid,d.scheduler=()=>Ls(N),jo(_,!0),p()},D=(_,R,L)=>{R.component=_;const B=_.vnode.props;_.vnode=R,_.next=null,hg(_,R.props,B,L),_g(_,R.children,L),Ht(),Wi(_),Kt()},z=(_,R,L,B,H,E,ee,Y,d=!1)=>{const p=_&&_.children,N=_?_.shapeFlag:0,V=R.children,{patchFlag:ue,shapeFlag:ie}=R;if(ue>0){if(ue&128){U(p,V,L,B,H,E,ee,Y,d);return}else if(ue&256){O(p,V,L,B,H,E,ee,Y,d);return}}ie&8?(N&16&&Ae(p,H,E),V!==p&&u(L,V)):N&16?ie&16?U(p,V,L,B,H,E,ee,Y,d):Ae(p,H,E,!0):(N&8&&u(L,""),ie&16&&S(V,L,B,H,E,ee,Y,d))},O=(_,R,L,B,H,E,ee,Y,d)=>{_=_||Yo,R=R||Yo;const p=_.length,N=R.length,V=Math.min(p,N);let ue;for(ue=0;ue<V;ue++){const ie=R[ue]=d?co(R[ue]):Xt(R[ue]);y(_[ue],ie,L,null,H,E,ee,Y,d)}p>N?Ae(_,H,E,!0,!1,V):S(R,L,B,H,E,ee,Y,d,V)},U=(_,R,L,B,H,E,ee,Y,d)=>{let p=0;const N=R.length;let V=_.length-1,ue=N-1;for(;p<=V&&p<=ue;){const ie=_[p],j=R[p]=d?co(R[p]):Xt(R[p]);if(Gn(ie,j))y(ie,j,L,null,H,E,ee,Y,d);else break;p++}for(;p<=V&&p<=ue;){const ie=_[V],j=R[ue]=d?co(R[ue]):Xt(R[ue]);if(Gn(ie,j))y(ie,j,L,null,H,E,ee,Y,d);else break;V--,ue--}if(p>V){if(p<=ue){const ie=ue+1,j=ie<N?R[ie].el:B;for(;p<=ue;)y(null,R[p]=d?co(R[p]):Xt(R[p]),L,j,H,E,ee,Y,d),p++}}else if(p>ue)for(;p<=V;)pe(_[p],H,E,!0),p++;else{const ie=p,j=p,X=new Map;for(p=j;p<=ue;p++){const fe=R[p]=d?co(R[p]):Xt(R[p]);fe.key!=null&&X.set(fe.key,p)}let ye,Se=0;const Be=ue-j+1;let nt=!1,at=0;const I=new Array(Be);for(p=0;p<Be;p++)I[p]=0;for(p=ie;p<=V;p++){const fe=_[p];if(Se>=Be){pe(fe,H,E,!0);continue}let _e;if(fe.key!=null)_e=X.get(fe.key);else for(ye=j;ye<=ue;ye++)if(I[ye-j]===0&&Gn(fe,R[ye])){_e=ye;break}_e===void 0?pe(fe,H,E,!0):(I[_e-j]=p+1,_e>=at?at=_e:nt=!0,y(fe,R[_e],L,null,H,E,ee,Y,d),Se++)}const q=nt?kg(I):Yo;for(ye=q.length-1,p=Be-1;p>=0;p--){const fe=j+p,_e=R[fe],xe=R[fe+1],Je=fe+1<N?xe.el||Nl(xe):B;I[p]===0?y(null,_e,L,Je,H,E,ee,Y,d):nt&&(ye<0||p!==q[ye]?se(_e,L,Je,2):ye--)}}},se=(_,R,L,B,H=null)=>{const{el:E,type:ee,transition:Y,children:d,shapeFlag:p}=_;if(p&6){se(_.component.subTree,R,L,B);return}if(p&128){_.suspense.move(R,L,B);return}if(p&64){ee.move(_,R,L,oe);return}if(ee===Ge){n(E,R,L);for(let V=0;V<d.length;V++)se(d[V],R,L,B);n(_.anchor,R,L);return}if(ee===Hs){b(_,R,L);return}if(B!==2&&p&1&&Y)if(B===0)Y.persisted&&!E[Rs]?n(E,R,L):(Y.beforeEnter(E),n(E,R,L),xt(()=>Y.enter(E),H));else{const{leave:V,delayLeave:ue,afterLeave:ie}=Y,j=()=>{_.ctx.isUnmounted?a(E):n(E,R,L)},X=()=>{const ye=E._isLeaving||!!E[Rs];E._isLeaving&&E[Rs](!0),Y.persisted&&!ye?j():V(E,()=>{j(),ie&&ie()})};ue?ue(E,j,X):X()}else n(E,R,L)},pe=(_,R,L,B=!1,H=!1)=>{const{type:E,props:ee,ref:Y,children:d,dynamicChildren:p,shapeFlag:N,patchFlag:V,dirs:ue,cacheIndex:ie,memo:j}=_;if(V===-2&&(H=!1),Y!=null&&(Ht(),Rn(Y,null,L,_,!0),Kt()),ie!=null&&(R.renderCache[ie]=void 0),N&256){R.ctx.deactivate(_);return}const X=N&1&&ue,ye=!nn(_);let Se;if(ye&&(Se=ee&&ee.onVnodeBeforeUnmount)&&Jt(Se,R,_),N&6)Me(_.component,L,B);else{if(N&128){_.suspense.unmount(L,B);return}X&&Do(_,null,R,"beforeUnmount"),N&64?_.type.remove(_,R,L,oe,B):p&&!p.hasOnce&&(E!==Ge||V>0&&V&64)?Ae(p,R,L,!1,!0):(E===Ge&&V&384||!H&&N&16)&&Ae(d,R,L),B&&ke(_)}const Be=j!=null&&ie==null;(ye&&(Se=ee&&ee.onVnodeUnmounted)||X||Be)&&xt(()=>{Se&&Jt(Se,R,_),X&&Do(_,null,R,"unmounted"),Be&&(_.el=null)},L)},ke=_=>{const{type:R,el:L,anchor:B,transition:H}=_;if(R===Ge){Ce(L,B);return}if(R===Hs){v(_);return}const E=()=>{a(L),H&&!H.persisted&&H.afterLeave&&H.afterLeave()};if(_.shapeFlag&1&&H&&!H.persisted){const{leave:ee,delayLeave:Y}=H,d=()=>ee(L,E);Y?Y(_.el,E,d):d()}else E()},Ce=(_,R)=>{let L;for(;_!==R;)L=f(_),a(_),_=L;a(R)},Me=(_,R,L)=>{const{bum:B,scope:H,job:E,subTree:ee,um:Y,m:d,a:p}=_;Rl(d),Rl(p),B&&ds(B),H.stop(),E&&(E.flags|=8,pe(ee,_,R,L)),Y&&xt(Y,R),xt(()=>{_.isUnmounted=!0},R)},Ae=(_,R,L,B=!1,H=!1,E=0)=>{for(let ee=E;ee<_.length;ee++)pe(_[ee],R,L,B,H)},we=_=>{if(_.shapeFlag&6)return we(_.component.subTree);if(_.shapeFlag&128)return _.suspense.next();const R=f(_.anchor||_.el),L=R&&R[Ji];return L?f(L):R};let J=!1;const re=(_,R,L)=>{let B;_==null?R._vnode&&(pe(R._vnode,null,null,!0),B=R._vnode.component):y(R._vnode||null,_,R,null,null,null,L),R._vnode=_,J||(J=!0,Wi(B),qi(),J=!1)},oe={p:y,um:pe,m:se,r:ke,mt:he,mc:S,pc:z,pbc:M,n:we,o:e};return{render:re,hydrate:void 0,createApp:rg(re)}}function zs({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 jo({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function wg(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Us(e,t,o=!1){const n=e.children,a=t.children;if(Pe(n)&&Pe(a))for(let s=0;s<n.length;s++){const r=n[s];let i=a[s];i.shapeFlag&1&&!i.dynamicChildren&&((i.patchFlag<=0||i.patchFlag===32)&&(i=a[s]=co(a[s]),i.el=r.el),!o&&i.patchFlag!==-2&&Us(r,i)),i.type===In&&(i.patchFlag===-1&&(i=a[s]=co(i)),i.el=r.el),i.type===Zt&&!i.el&&(i.el=r.el)}}function kg(e){const t=e.slice(),o=[0];let n,a,s,r,i;const l=e.length;for(n=0;n<l;n++){const c=e[n];if(c!==0){if(a=o[o.length-1],e[a]<c){t[n]=a,o.push(n);continue}for(s=0,r=o.length-1;s<r;)i=s+r>>1,e[o[i]]<c?s=i+1:r=i;c<e[o[s]]&&(s>0&&(t[n]=o[s-1]),o[s]=n)}}for(s=o.length,r=o[s-1];s-- >0;)o[s]=r,r=t[r];return o}function El(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:El(t)}function Rl(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Nl(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Nl(t.subTree):null}const Ml=e=>e.__isSuspense;function xg(e,t){t&&t.pendingBranch?Pe(e)?t.effects.push(...e):t.effects.push(e):Ld(e)}const Ge=Symbol.for("v-fgt"),In=Symbol.for("v-txt"),Zt=Symbol.for("v-cmt"),Hs=Symbol.for("v-stc"),lo=[];let Et=null;function Q(e=!1){lo.push(Et=e?null:[])}function Ks(){lo.pop(),Et=lo[lo.length-1]||null}let On=1;function Ca(e,t=!1){On+=e,e<0&&Et&&t&&(Et.hasOnce=!0)}function Fl(e){return e.dynamicChildren=On>0?Et||Yo:null,Ks(),On>0&&Et&&Et.push(e),e}function ae(e,t,o,n,a,s){return Fl(F(e,t,o,n,a,s,!0))}function Ze(e,t,o,n,a){return Fl(We(e,t,o,n,a,!0))}function Dn(e){return e?e.__v_isVNode===!0:!1}function Gn(e,t){return e.type===t.type&&e.key===t.key}const Il=({key:e})=>e??null,Ea=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?qe(e)||Qe(e)||Te(e)?{i:bt,r:e,k:t,f:!!o}:e:null);function F(e,t=null,o=null,n=0,a=null,s=e===Ge?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Il(t),ref:t&&Ea(t),scopeId:Zi,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:bt};return i?(Ra(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=qe(o)?8:16),On>0&&!r&&Et&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Et.push(l),l}const We=Ag;function Ag(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===il)&&(e=Zt),Dn(e)){const i=an(e,t,!0);return o&&Ra(i,o),On>0&&!s&&Et&&(i.shapeFlag&6?Et[Et.indexOf(e)]=i:Et.push(i)),i.patchFlag=-2,i}if(Og(e)&&(e=e.__vccOpts),t){t=Sg(t);let{class:i,style:l}=t;i&&!qe(i)&&(t.class=Fe(i)),He(l)&&(ha(l)&&!Pe(l)&&(l=it({},l)),t.style=st(l))}const r=qe(e)?1:Ml(e)?128:va(e)?64:He(e)?4:Te(e)?2:0;return F(e,t,o,n,a,r,s,!0)}function Sg(e){return e?ha(e)||xl(e)?it({},e):e:null}function an(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?Pg(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Il(c),ref:t&&t.ref?o&&s?Pe(s)?s.concat(Ea(t)):[s,Ea(t)]:Ea(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!==Ge?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&&an(e.ssContent),ssFallback:e.ssFallback&&an(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Ns(u,l.clone(u)),u}function ft(e=" ",t=0){return We(In,null,e,t)}function $e(e="",t=!1){return t?(Q(),Ze(Zt,null,e)):We(Zt,null,e)}function Xt(e){return e==null||typeof e=="boolean"?We(Zt):Pe(e)?We(Ge,null,e.slice()):Dn(e)?co(e):We(In,null,String(e))}function co(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:an(e)}function Ra(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Pe(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Ra(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!xl(t)?t._ctx=bt:a===3&&bt&&(bt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Te(t)){if(n&65){Ra(e,{default:t});return}t={default:t,_ctx:bt},o=32}else t=String(t),n&64?(o=16,t=[ft(t)]):o=8;e.children=t,e.shapeFlag|=o}function Pg(...e){const t={};for(let o=0;o<e.length;o++){const n=e[o];for(const a in n)if(a==="class")t.class!==n.class&&(t.class=Fe([t.class,n.class]));else if(a==="style")t.style=st([t.style,n.style]);else if(ea(a)){const s=t[a],r=n[a];r&&s!==r&&!(Pe(s)&&s.includes(r))?t[a]=s?[].concat(s,r):r:r==null&&s==null&&!ta(a)&&(t[a]=r)}else a!==""&&(t[a]=n[a])}return t}function Jt(e,t,o,n=null){Gt(e,t,7,[o,n])}const Lg=bl();let Tg=0;function Cg(e,t,o){const n=e.type,a=(t?t.appContext:e.appContext)||Lg,s={uid:Tg++,vnode:e,type:n,parent:t,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new vi(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(a.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Sl(n,a),emitsOptions:yl(n,a),emit:null,emitted:null,propsDefaults:Ve,inheritAttrs:n.inheritAttrs,ctx:Ve,data:Ve,props:Ve,attrs:Ve,slots:Ve,refs:Ve,setupState:Ve,setupContext:null,suspense:o,suspenseId:o?o.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=lg.bind(null,s),e.ce&&e.ce(s),s}let _t=null;const uo=()=>_t||bt;let Na,Bn;{const e=ia(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),s=>{a.length>1?a.forEach(r=>r(s)):a[0](s)}};Na=t("__VUE_INSTANCE_SETTERS__",o=>_t=o),Bn=t("__VUE_SSR_SETTERS__",o=>sn=o)}const jn=e=>{const t=_t;return Na(e),e.scope.on(),()=>{e.scope.off(),Na(t)}},Ol=()=>{_t&&_t.scope.off(),Na(null)};function Dl(e){return e.vnode.shapeFlag&4}let sn=!1;function Eg(e,t=!1,o=!1){t&&Bn(t);const{props:n,children:a}=e.vnode,s=Dl(e);fg(e,n,s,t),yg(e,a,o||t);const r=s?Rg(e,t):void 0;return t&&Bn(!1),r}function Rg(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Qd);const{setup:n}=o;if(n){Ht();const a=e.setupContext=n.length>1?Mg(e):null,s=jn(e),r=en(n,e,0,[e.props,a]),i=di(r);if(Kt(),s(),(i||e.sp)&&!nn(e)&&Ms(e),i){if(r.then(Ol,Ol),t)return r.then(l=>{Bn(!0);try{Gl(e,l,t)}finally{Bn(!1)}}).catch(l=>{Ln(l,e,0)});e.asyncDep=r}else Gl(e,r)}else Bl(e)}function Gl(e,t,o){Te(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:He(t)&&(e.setupState=zi(t)),Bl(e)}function Bl(e,t,o){const n=e.type;e.render||(e.render=n.render||zt);{const a=jn(e);Ht();try{eg(e)}finally{Kt(),a()}}}const Ng={get(e,t){return vt(e,"get",""),e[t]}};function Mg(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Ng),slots:e.slots,emit:e.emit,expose:t}}function Ma(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(zi(Jo(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Mn)return Mn[o](e)},has(t,o){return o in t||o in Mn}})):e.proxy}const Fg=/(?:^|[-_])\w/g,Ig=e=>e.replace(Fg,t=>t.toUpperCase()).replace(/[-_]/g,"");function jl(e,t=!0){return Te(e)?e.displayName||e.name:e.name||t&&e.__name}function zl(e,t,o=!1){let n=jl(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?Ig(n):o?"App":"Anonymous"}function Og(e){return Te(e)&&"__vccOpts"in e}const te=(e,t)=>_d(e,t,sn);function Ul(e,t,o){try{Ca(-1);const n=arguments.length;return n===2?He(t)&&!Pe(t)?Dn(t)?We(e,null,[t]):We(e,t):We(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Dn(o)&&(o=[o]),We(e,t,o))}finally{Ca(1)}}const Dg="3.5.42";/**
|
||
* @vue/runtime-dom v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let Vs;const Hl=typeof window<"u"&&window.trustedTypes;if(Hl)try{Vs=Hl.createPolicy("vue",{createHTML:e=>e})}catch{}const Kl=Vs?e=>Vs.createHTML(e):e=>e,Gg="http://www.w3.org/2000/svg",Bg="http://www.w3.org/1998/Math/MathML",po=typeof document<"u"?document:null,Vl=po&&po.createElement("template"),jg={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"?po.createElementNS(Gg,e):t==="mathml"?po.createElementNS(Bg,e):o?po.createElement(e,{is:o}):po.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>po.createTextNode(e),createComment:e=>po.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>po.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{Vl.innerHTML=Kl(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const i=Vl.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]}},zg=Symbol("_vtc");function Ug(e,t,o){const n=e[zg];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Fa=Symbol("_vod"),Wl=Symbol("_vsh"),Hg={name:"show",beforeMount(e,{value:t},{transition:o}){e[Fa]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):zn(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),zn(e,!0),n.enter(e)):n.leave(e,()=>{zn(e,!1)}):zn(e,t))},beforeUnmount(e,{value:t}){zn(e,t)}};function zn(e,t){e.style.display=t?e[Fa]:"none",e[Wl]=!t}const Kg=Symbol(""),Vg=/(?:^|;)\s*display\s*:/;function Wg(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&&Un(n,i,"")}else for(const r in t)o[r]==null&&Un(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?Yg(e,r,!qe(t)&&t?t[r]:void 0,i)||Un(n,r,i):Un(n,r,"")}}else if(a){if(t!==o){const r=n[Kg];r&&(o+=";"+r),n.cssText=o,s=Vg.test(o)}}else t&&e.removeAttribute("style");Fa in e&&(e[Fa]=s?n.display:"",e[Wl]&&(n.display="none"))}const Ia=/\s*!important$/;function Un(e,t,o){if(Pe(o))o.forEach(n=>Un(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Ia.test(o)?e.setProperty(t,o.replace(Ia,""),"important"):e.setProperty(t,o);else{const n=qg(e,t);Ia.test(o)?e.setProperty(Nt(n),o.replace(Ia,""),"important"):e[n]=o}}const ql=["Webkit","Moz","ms"],Ws={};function qg(e,t){const o=Ws[t];if(o)return o;let n=gt(t);if(n!=="filter"&&n in e)return Ws[t]=n;n=ra(n);for(let a=0;a<ql.length;a++){const s=ql[a]+n;if(s in e)return Ws[t]=s}return t}function Yg(e,t,o,n){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&qe(n)&&o===n}const Yl="http://www.w3.org/1999/xlink";function Zl(e,t,o,n,a,s=Kp(t)){n&&t.startsWith("xlink:")?o==null?e.removeAttributeNS(Yl,t.slice(6,t.length)):e.setAttributeNS(Yl,t,o):o==null||s&&!bi(o)?e.removeAttribute(t):e.setAttribute(t,s?"":Pt(o)?String(o):o)}function Xl(e,t,o,n,a){if(t==="innerHTML"||t==="textContent"){o!=null&&(e[t]=t==="innerHTML"?Kl(o):o);return}const s=e.tagName;if(t==="value"&&s!=="PROGRESS"&&!s.includes("-")){const i=s==="OPTION"?e.getAttribute("value")||"":e.value,l=o==null?e.type==="checkbox"?"on":"":String(o);(i!==l||!("_value"in e))&&(e.value=l),o==null&&e.removeAttribute(t),e._value=o;return}let r=!1;if(o===""||o==null){const i=typeof e[t];i==="boolean"?o=bi(o):o==null&&i==="string"?(o="",r=!0):i==="number"&&(o=0,r=!0)}try{e[t]=o}catch{}r&&e.removeAttribute(a||t)}function Zg(e,t,o,n){e.addEventListener(t,o,n)}function Xg(e,t,o,n){e.removeEventListener(t,o,n)}const Jl=Symbol("_vei");function Jg(e,t,o,n,a=null){const s=e[Jl]||(e[Jl]={}),r=s[t];if(n&&r)r.value=n;else{const[i,l]=tf(t);if(n){const c=s[t]=af(n,a);Zg(e,i,c,l)}else r&&(Xg(e,i,r,l),s[t]=void 0)}}const Qg=/(Once|Passive|Capture)$/,ef=/^on:?(?:Once|Passive|Capture)$/;function tf(e){let t,o;for(;(o=e.match(Qg))&&!ef.test(e);)t||(t={}),e=e.slice(0,e.length-o[1].length),t[o[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):Nt(e.slice(2)),t]}let qs=0;const of=Promise.resolve(),nf=()=>qs||(of.then(()=>qs=0),qs=Date.now());function af(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Pe(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),i=[n];for(let l=0;l<r.length&&!n._stopped;l++){const c=r[l];c&&Gt(c,t,5,i)}}else Gt(a,t,5,[n])};return o.value=e,o.attached=nf(),o}const Ql=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,sf=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?Ug(e,n,r):t==="style"?Wg(e,o,n):ea(t)?ta(t)||Jg(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):rf(e,t,n,r))?(Xl(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Zl(e,t,n,r,s,t!=="value")):e._isVueCE&&(lf(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!qe(n)))?Xl(e,gt(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Zl(e,t,n,r))};function rf(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ql(t)&&Te(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 Ql(t)&&qe(o)?!1:t in e}function lf(e,t){const o=e._def.props;if(!o)return!1;const n=gt(t);return Array.isArray(o)?o.some(a=>gt(a)===n):Object.keys(o).some(a=>gt(a)===n)}const ec={};function cf(e,t,o){let n=En(e,t);na(n)&&(n=it({},n,t));class a extends Ys{constructor(r){super(n,r,o)}}return a.def=n,a}const uf=typeof HTMLElement<"u"?HTMLElement:class{};class Ys extends uf{constructor(t,o={},n=nc){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!==nc?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(it({},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 Ys){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,vo(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n<this.attributes.length;n++)this._setAttr(this.attributes[n].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});const t=(n,a=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:s,styles:r}=n;let i;if(s&&!Pe(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=hi(this._props[l])),(i||(i=Object.create(null)))[gt(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)Ue(this,n)||Object.defineProperty(this,n,{get:()=>ce(o[n])})}_resolveProps(t){const{props:o}=t,n=Pe(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(gt))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):ec;const a=gt(t);o&&this._numberProps&&this._numberProps[a]&&(n=hi(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===ec?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(Nt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Nt(t),o+""):o||this.removeAttribute(Nt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),ff(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=We(this._def,it(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,na(r[0])?it({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Nt(s)!==s&&a(Nt(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<t.childNodes.length;o++){const n=t.childNodes[o];if(!(n instanceof HTMLStyleElement))return n}return null}_parseSlots(){const t=this._slots={};let o;for(;o=this.firstChild;){const n=o.nodeType===1&&o.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(o),this.removeChild(o)}}_renderSlots(){const t=this._getSlots(),o=this._instance.type.__scopeId;for(let n=0;n<t.length;n++){const a=t[n],s=a.getAttribute("name")||"default",r=this._slots[s],i=a.parentNode;if(r)for(const l of r){if(o&&l.nodeType===1){const c=o+"-s",u=document.createTreeWalker(l,1);l.setAttribute(c,"");let g;for(;g=u.nextNode();)g.setAttribute(c,"")}i.insertBefore(l,a)}else for(;a.firstChild;)i.insertBefore(a.firstChild,a);i.removeChild(a)}}_getSlots(){const t=[this];this._teleportTargets&&t.push(...this._teleportTargets);const o=new Set;for(const n of t){const a=n.querySelectorAll("slot");for(let s=0;s<a.length;s++)o.add(a[s])}return Array.from(o)}_injectChildStyle(t,o){this._applyStyles(t.styles,t,o)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return this._def.shadowRoot!==!1}_removeChildStyle(t){}}const pf=["ctrl","shift","alt","meta"],df={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)=>pf.some(o=>e[`${o}Key`]&&!t.includes(o))},ht=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...s)=>{for(let r=0;r<t.length;r++){const i=df[t[r]];if(i&&i(a,t))return}return e(a,...s)})},gf=it({patchProp:sf},jg);let tc;function oc(){return tc||(tc=$g(gf))}const ff=(...e)=>{oc().render(...e)},nc=(...e)=>{const t=oc().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=mf(n);if(!a)return;const s=t._component;!Te(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,hf(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function hf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function mf(e){return qe(e)?document.querySelector(e):e}/*!
|
||
* pinia v2.3.1
|
||
* (c) 2025 Eduardo San Martin Morote
|
||
* @license MIT
|
||
*/let ac;const Oa=e=>ac=e,sc=Symbol();function Zs(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Hn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Hn||(Hn={}));function bf(){const e=fs(!0),t=e.run(()=>ge({}));let o=[],n=[];const a=Jo({install(s){Oa(a),a._a=s,s.provide(sc,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 rc=()=>{};function ic(e,t,o,n=rc){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&wi()&&Wp(a),a}function rn(e,...t){e.slice().forEach(o=>{o(...t)})}const yf=e=>e(),lc=Symbol(),Xs=Symbol();function Js(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];Zs(a)&&Zs(n)&&e.hasOwnProperty(o)&&!Qe(n)&&!ao(n)?e[o]=Js(a,n):e[o]=n}return e}const _f=Symbol();function $f(e){return!Zs(e)||!e.hasOwnProperty(_f)}const{assign:ko}=Object;function vf(e){return!!(Qe(e)&&e.effect)}function wf(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=hd(o.state.value[e]);return ko(u,s,Object.keys(r||{}).reduce((g,f)=>(g[f]=Jo(te(()=>{Oa(o);const k=o._s.get(e);return r[f].call(k,k)})),g),{}))}return l=cc(e,c,t,o,n,!0),l}function cc(e,t,o={},n,a,s){let r;const i=ko({actions:{}},o),l={deep:!0};let c,u,g=[],f=[],k;const P=n.state.value[e];!s&&!P&&(n.state.value[e]={});let y;function x(S){let h;c=u=!1,typeof S=="function"?(S(n.state.value[e]),h={type:Hn.patchFunction,storeId:e,events:k}):(Js(n.state.value[e],S),h={type:Hn.patchObject,payload:S,storeId:e,events:k});const M=y=Symbol();vo().then(()=>{y===M&&(c=!0)}),u=!0,rn(g,h,n.state.value[e])}const $=s?function(){const{state:h}=o,M=h?h():{};this.$patch(G=>{ko(G,M)})}:rc;function m(){r.stop(),g=[],f=[],n._s.delete(e)}const b=(S,h="")=>{if(lc in S)return S[Xs]=h,S;const M=function(){Oa(n);const G=Array.from(arguments),W=[],ne=[];function he(D){W.push(D)}function K(D){ne.push(D)}rn(f,{args:G,name:M[Xs],store:A,after:he,onError:K});let C;try{C=S.apply(this&&this.$id===e?this:A,G)}catch(D){throw rn(ne,D),D}return C instanceof Promise?C.then(D=>(rn(W,D),D)).catch(D=>(rn(ne,D),Promise.reject(D))):(rn(W,C),C)};return M[lc]=!0,M[Xs]=h,M},v={_p:n,$id:e,$onAction:ic.bind(null,f),$patch:x,$reset:$,$subscribe(S,h={}){const M=ic(g,S,h.detached,()=>G()),G=r.run(()=>je(()=>n.state.value[e],W=>{(h.flush==="sync"?u:c)&&S({storeId:e,type:Hn.direct,events:k},W)},ko({},l,h)));return M},$dispose:m},A=Xo(v);n._s.set(e,A);const w=(n._a&&n._a.runWithContext||yf)(()=>n._e.run(()=>(r=fs()).run(()=>t({action:b}))));for(const S in w){const h=w[S];if(Qe(h)&&!vf(h)||ao(h))s||(P&&$f(h)&&(Qe(h)?h.value=P[S]:Js(h,P[S])),n.state.value[e][S]=h);else if(typeof h=="function"){const M=b(h,S);w[S]=M,i.actions[S]=h}}return ko(A,w),ko(Oe(A),w),Object.defineProperty(A,"$state",{get:()=>n.state.value[e],set:S=>{x(h=>{ko(h,S)})}}),n._p.forEach(S=>{ko(A,r.run(()=>S({store:A,app:n._a,pinia:n,options:i})))}),P&&s&&o.hydrate&&o.hydrate(A.$state,P),c=!0,u=!0,A}/*! #__NO_SIDE_EFFECTS__ */function Qs(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=Cd();return i=i||(c?Ee(sc,null):null),i&&Oa(i),i=ac,i._s.has(n)||(s?cc(n,t,a,i):wf(n,a,i)),i._s.get(n)}return r.$id=n,r}const er="__doxaMapToken",tr="doxa:map-token",uc="__doxaMapTokenBridge",ln=()=>{if(typeof window>"u")return"";const e=window[er];return typeof e=="string"?e:""};function or(e){if(typeof window>"u")return"";pc();const t=typeof e=="string"?e.trim():"";if(!t||t===ln())return ln();window[er]=t;try{window.dispatchEvent(new CustomEvent(tr,{detail:t}))}catch{}return t}function pc(){var t;if(typeof window>"u"||window[uc]&&((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!ln()&&(window[er]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return ln()},set(o){or(o)}}),window[uc]=!0}catch{}}function kf(){pc();const e=ge(ln());if(typeof window<"u"){const t=()=>{e.value=ln()};window.addEventListener(tr,t);try{Yt(()=>window.removeEventListener(tr,t))}catch{}}return e}function xf(e){if(typeof window>"u"||!/^https?:\/\//i.test(String(e||"")))return Promise.resolve("");const t=window.__doxaMapTokenFetches=window.__doxaMapTokenFetches||{};if(t[e])return t[e];const o=fetch(e).then(n=>{if(!n.ok)throw new Error("HTTP "+n.status);return(n.headers.get("content-type")||"").includes("json")?n.json():n.text()}).then(n=>{const a=String((typeof n=="string"?n:n&&(n.token||n.tk||n.accessToken))||"").trim();return a.startsWith("pk.")?(or(a),a):""}).catch(n=>(console.warn(`[map token] ${e}: ${n&&n.message?n.message:n}`),"")).finally(()=>{window.__doxaMapTokenPending===o&&(window.__doxaMapTokenPending=null)});return window.__doxaMapTokenPending=o,t[e]=o,o}function nr(e){return jd({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const Af={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},Sf={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها",searchPeopleGroups:"ابحث عن الشعوب",resetAllFilters:"إعادة تعيين كل عوامل التصفية والبحث",selectAllRows:"تحديد كل الصفوف",deselectAllRows:"إلغاء تحديد كل الصفوف"},Pf={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={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_province:"الوصول إلى الإنجيل حسب المقاطعة — الهند والصين",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:"لغات موجودة في البلد (اللغة العابرة للحدود تُحتسب في كل بلد)"}},Cf={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:"ابحث عن الشعوب أو الدول…"},Ef={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:"إلغاء التحديد"},export:{poster:"ملصق",packet:"كُتيّب"},noDataAtThisLevel:"لا توجد بيانات في هذا المستوى",exportButton:"تصدير",exportSelection:"تصدير التحديد"},Rf={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم <strong>باسم شعبهم</strong>."},Nf={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Mf={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Ff={"%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.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},If={placeholder:"شعب، مكان، لغة، ديانة",placeholderNoPlaces:"شعب، لغة، ديانة (البحث عن الأماكن يتطلب رمز Mapbox)",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},Of={loading:"جارٍ تحميل الخريطة…",initFailed:"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال.",help:{what:"تعرض هذه الخريطة الشعوب غير المُبشَّرة في العالم: مجتمعات لا تصل إلى الإنجيل وصولًا حقيقيًا.",how:"استخدم الألسنة (إن ظهرت) للتبديل بين العروض. انقر أي نقطة لمعرفة المزيد عن شعب.",source:"البيانات من"}},Df={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:"الخريطة",countryPosters:"ملصقات الدول"},Gf={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}"},Bf={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"},jf={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"},zf={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Uf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"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_province:"Zugang zum Evangelium nach Provinz — Indien und China",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)"}},Hf={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…"},Kf={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"},export:{poster:"Plakat",packet:"Heft"},noDataAtThisLevel:"Keine Daten auf dieser Ebene",exportButton:"Exportieren",exportSelection:"Auswahl exportieren"},Vf={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie <strong>mit dem Namen ihrer Volksgruppe</strong> beten."},Wf={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},qf={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},Yf={"%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."},Zf={placeholder:"Volk, Ort, Sprache, Religion",placeholderNoPlaces:"Volk, Sprache, Religion (Ortssuche braucht ein Mapbox-Token)",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…"},Xf={loading:"Karte wird geladen…",initFailed:"Die Karte konnte nicht starten. Das ist ein Problem mit dem Kartenschlüssel oder der Verbindung.",help:{what:"Diese Karte zeigt die unerreichten Volksgruppen der Welt: Gemeinschaften ohne echten Zugang zum Evangelium.",how:"Mit den Reitern (falls sichtbar) wechseln Sie die Ansicht. Klicken Sie auf einen Punkt, um mehr über eine Volksgruppe zu erfahren.",source:"Daten von"}},Jf={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",countryPosters:"Länderposter"},Qf={title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},eh={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend",searchPeopleGroups:"Search people groups",resetAllFilters:"Reset all filters and search",selectAllRows:"Select all rows",deselectAllRows:"Deselect all rows"},th={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},oh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},nh={_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_province:"Gospel access by province — India and China",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)"}},ah={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…"},sh={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"},export:{poster:"Poster",packet:"Packet"},noDataAtThisLevel:"No data at this level",exportButton:"Export",exportSelection:"Export selection"},rh={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them <strong>by their people group name</strong>."},ih={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},lh={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},ch={"%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."},uh={placeholder:"People, place, language, religion",placeholderNoPlaces:"People, language, religion (place search needs a Mapbox token)",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…"},ph={loading:"Loading map…",initFailed:"The map could not start. This is a map-token or connection problem.",help:{what:"This map shows the unreached people groups of the world: communities without meaningful access to the Gospel.",how:"Use the tabs (if shown) to switch between views. Click any dot to learn more about a people group.",source:"Data from"}},dh={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",countryPosters:"Country Posters"},gh={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}"},fh={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"},hh={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"},mh={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."}},bh={_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_province:"Acceso al Evangelio por provincia — India y China",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)"}},yh={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…"},_h={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"},export:{poster:"Cartel",packet:"Cuadernillo"},noDataAtThisLevel:"No hay datos en este nivel",exportButton:"Exportar",exportSelection:"Exportar la selección"},$h={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos <strong>por el nombre de su pueblo</strong>."},vh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},wh={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},kh={"%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."},xh={placeholder:"Pueblo, lugar, idioma, religión",placeholderNoPlaces:"Pueblo, idioma, religión (buscar lugares requiere un token de Mapbox)",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…"},Ah={loading:"Cargando mapa…",initFailed:"El mapa no pudo iniciarse. Es un problema de la clave del mapa o de la conexión.",help:{what:"Este mapa muestra los pueblos no alcanzados del mundo: comunidades sin acceso real al Evangelio.",how:"Usa las pestañas (si aparecen) para cambiar de vista. Haz clic en cualquier punto para saber más de un pueblo.",source:"Datos de"}},Sh={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",countryPosters:"Carteles por país"},Ph={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}"},Lh={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"},Th={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"},Ch={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Eh={_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_province:"Accès à l'Évangile par province — Inde et Chine",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)"}},Rh={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…"},Nh={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"},export:{poster:"Affiche",packet:"Livret"},noDataAtThisLevel:"Aucune donnée à ce niveau",exportButton:"Exporter",exportSelection:"Exporter la sélection"},Mh={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux <strong>par le nom de leur peuple</strong>."},Fh={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Ih={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Oh={"%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."},Dh={placeholder:"Peuple, lieu, langue, religion",placeholderNoPlaces:"Peuple, langue, religion (la recherche de lieux requiert un jeton Mapbox)",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…"},Gh={loading:"Chargement de la carte…",initFailed:"La carte n’a pas pu démarrer. C’est un problème de clé de carte ou de connexion.",help:{what:"Cette carte montre les peuples non atteints du monde : des communautés sans véritable accès à l’Évangile.",how:"Utilisez les onglets (s’ils s’affichent) pour changer de vue. Cliquez sur un point pour en savoir plus sur un peuple.",source:"Données :"}},Bh={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",countryPosters:"Affiches par pays"},jh={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},zh={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ",searchPeopleGroups:"जनसमूह खोजें",resetAllFilters:"सभी फ़िल्टर और खोज रीसेट करें",selectAllRows:"सभी पंक्तियाँ चुनें",deselectAllRows:"सभी पंक्तियाँ अचयनित करें"},Uh={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:"प्रति पंक्ति पोस्टर"},Hh={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Kh={_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_province:"प्रांत के अनुसार सुसमाचार तक पहुँच — भारत और चीन",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:"देश में मौजूद भाषाएँ (सीमा-पार भाषा हर देश में गिनी जाती है)"}},Vh={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:"जनसमूह या देश खोजें…"},Wh={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:"चयन हटाएँ"},export:{poster:"पोस्टर",packet:"पुस्तिका"},noDataAtThisLevel:"इस स्तर पर कोई डेटा नहीं",exportButton:"निर्यात",exportSelection:"चयन निर्यात करें"},qh={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए <strong>उनके जनसमूह के नाम से</strong> प्रार्थना करते हुए।"},Yh={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Zh={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Xh={"%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.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Jh={placeholder:"लोग, स्थान, भाषा, धर्म",placeholderNoPlaces:"लोग, भाषा, धर्म (स्थान खोज के लिए Mapbox टोकन चाहिए)",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},Qh={loading:"नक्शा लोड हो रहा है…",initFailed:"नक्शा शुरू नहीं हो सका। यह नक्शे की कुंजी या कनेक्शन की समस्या है।",help:{what:"यह नक्शा दुनिया के अपहुँचे जनसमूह दिखाता है: ऐसे समुदाय जिनकी सुसमाचार तक वास्तविक पहुँच नहीं है।",how:"दृश्य बदलने के लिए टैब (यदि दिखें) का उपयोग करें। किसी जनसमूह के बारे में जानने के लिए किसी भी बिंदु पर क्लिक करें।",source:"डेटा स्रोत"}},em={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:"मानचित्र",countryPosters:"देश पोस्टर"},tm={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}"},om={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"},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"},am={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},sm={_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_province:"Accesso al Vangelo per provincia — India e Cina",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)"}},rm={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…"},im={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"},export:{poster:"Manifesto",packet:"Libretto"},noDataAtThisLevel:"Nessun dato a questo livello",exportButton:"Esporta",exportSelection:"Esporta la selezione"},lm={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro <strong>con il nome del loro popolo</strong>."},cm={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},um={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},pm={"%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."},dm={placeholder:"Popolo, luogo, lingua, religione",placeholderNoPlaces:"Popolo, lingua, religione (la ricerca di luoghi richiede un token Mapbox)",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…"},gm={loading:"Caricamento della mappa…",initFailed:"La mappa non è partita. È un problema della chiave della mappa o della connessione.",help:{what:"Questa mappa mostra i popoli non raggiunti del mondo: comunità senza un vero accesso al Vangelo.",how:"Usa le schede (se presenti) per cambiare vista. Clicca su un punto per saperne di più su un popolo.",source:"Dati da"}},fm={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",countryPosters:"Poster per paese"},hm={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}"},mm={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"},bm={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"},ym={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."}},_m={_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_province:"Acesso ao Evangelho por província — Índia e China",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)"}},$m={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…"},vm={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"},export:{poster:"Cartaz",packet:"Caderno"},noDataAtThisLevel:"Sem dados neste nível",exportButton:"Exportar",exportSelection:"Exportar a seleção"},wm={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles <strong>pelo nome do seu povo</strong>."},km={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},xm={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},Am={"%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."},Sm={placeholder:"Povo, local, língua, religião",placeholderNoPlaces:"Povo, língua, religião (a busca de locais requer um token do Mapbox)",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…"},Pm={loading:"A carregar o mapa…",initFailed:"O mapa não pôde iniciar. É um problema da chave do mapa ou da ligação.",help:{what:"Este mapa mostra os povos não alcançados do mundo: comunidades sem acesso real ao Evangelho.",how:"Use os separadores (se visíveis) para mudar de vista. Clique em qualquer ponto para saber mais sobre um povo.",source:"Dados de"}},Lm={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",countryPosters:"Cartazes por país"},Tm={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}"},Cm={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"},Em={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"},Rm={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ă."}},Nm={_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_province:"Accesul la Evanghelie pe provincii — India și China",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)"}},Mm={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…"},Fm={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"},export:{poster:"Afiș",packet:"Broșură"},noDataAtThisLevel:"Nu există date la acest nivel",exportButton:"Exportă",exportSelection:"Exportă selecția"},Im={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei <strong>pe numele poporului lor</strong>."},Om={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Dm={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},Gm={"%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."},Bm={placeholder:"Popor, loc, limbă, religie",placeholderNoPlaces:"Popor, limbă, religie (căutarea locurilor necesită un token Mapbox)",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…"},jm={loading:"Se încarcă harta…",initFailed:"Harta nu a putut porni. Este o problemă de cheie a hărții sau de conexiune.",help:{what:"Această hartă arată popoarele neatinse ale lumii: comunități fără acces real la Evanghelie.",how:"Folosiți filele (dacă apar) pentru a schimba vederea. Dați clic pe un punct pentru a afla mai multe despre un popor.",source:"Date de la"}},zm={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ă",countryPosters:"Afișe pe țări"},Um={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},Hm={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду",searchPeopleGroups:"Поиск народов",resetAllFilters:"Сбросить все фильтры и поиск",selectAllRows:"Выбрать все строки",deselectAllRows:"Снять выделение со всех строк"},Km={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:"Плакатов в ряду"},Vm={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Wm={_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_province:"Доступ к Евангелию по провинциям — Индия и Китай",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:"языки, присутствующие в стране (трансграничный язык считается в каждой)"}},qm={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:"{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:"Снять выделение"},export:{poster:"Плакат",packet:"Буклет"},noDataAtThisLevel:"На этом уровне нет данных",exportButton:"Экспорт",exportSelection:"Экспортировать выбранное"},Zm={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них <strong>по имени их народа</strong>."},Xm={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Jm={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},Qm={"%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.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},eb={placeholder:"Народ, место, язык, религия",placeholderNoPlaces:"Народ, язык, религия (для поиска мест нужен токен Mapbox)",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},tb={loading:"Загрузка карты…",initFailed:"Карта не запустилась. Это проблема ключа карты или соединения.",help:{what:"Эта карта показывает неохваченные народы мира: общины без настоящего доступа к Евангелию.",how:"Переключайте виды вкладками (если они показаны). Нажмите на любую точку, чтобы узнать больше о народе.",source:"Данные:"}},ob={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:"Карта",countryPosters:"Плакаты по странам"},nb={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},ab={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例",searchPeopleGroups:"搜索民族",resetAllFilters:"重置所有筛选和搜索",selectAllRows:"选择所有行",deselectAllRows:"取消选择所有行"},sb={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:"每行海报数"},rb={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},ib={_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_province:"按省份划分的福音可及性 — 印度和中国",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:"该国存在的语言(跨境语言在每个国家各计一次)"}},lb={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:"搜索民族或国家…"},cb={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:"清除选择"},export:{poster:"海报",packet:"祷告册"},noDataAtThisLevel:"此层级没有数据",exportButton:"导出",exportSelection:"导出所选内容"},ub={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — <strong>按著他們族群的名字</strong>為他們禱告。"},pb={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},db={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},gb={"%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.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},fb={placeholder:"民族、地点、语言、宗教",placeholderNoPlaces:"民族、语言、宗教(地点搜索需要 Mapbox 令牌)",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"},hb={loading:"正在加载地图…",initFailed:"地图无法启动。这是地图密钥或网络连接的问题。",help:{what:"这张地图显示世界上的未得之民:尚未真正接触福音的群体。",how:"使用标签页(如有显示)切换视图。点击任意圆点了解该族群。",source:"数据来源"}},mb={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:"地圖",countryPosters:"国家海报"};/*!
|
||
* shared v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function bb(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Da=typeof window<"u",xo=(e,t=!1)=>t?Symbol.for(e):Symbol(e),yb=(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),$b=e=>mc(e)==="[object Date]",Ao=e=>mc(e)==="[object RegExp]",Ga=e=>Re(e)&&Object.keys(e).length===0,$t=Object.assign,vb=Object.create,Ke=(e=null)=>vb(e);let dc;const Kn=()=>dc||(dc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ke());function gc(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function fc(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function wb(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${fc(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${fc(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 kb=Object.prototype.hasOwnProperty;function Bt(e,t){return kb.call(e,t)}const et=Array.isArray,Xe=e=>typeof e=="function",me=e=>typeof e=="string",Ie=e=>typeof e=="boolean",ze=e=>e!==null&&typeof e=="object",xb=e=>ze(e)&&Xe(e.then)&&Xe(e.catch),hc=Object.prototype.toString,mc=e=>hc.call(e),Re=e=>{if(!ze(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Ab=e=>e==null?"":et(e)||Re(e)&&e.toString===hc?JSON.stringify(e,null,2):String(e);function Sb(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Ba(e){let t=e;return()=>++t}const ja=e=>!ze(e)||et(e);function za(e,t){if(ja(e)||ja(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__"&&(ze(n[s])&&!ze(a[s])&&(a[s]=Array.isArray(n[s])?[]:Ke()),ja(a[s])||ja(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 Pb(e,t,o){return{line:e,column:t,offset:o}}function Ua(e,t,o){return{start:e,end:t}}const Lb=/\{([0-9a-zA-Z]+)\}/g;function bc(e,...t){return t.length===1&&Tb(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Lb,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const yc=Object.assign,_c=e=>typeof e=="string",Tb=e=>e!==null&&typeof e=="object";function $c(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const ar={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Cb={[ar.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Eb(e,t,...o){const n=bc(Cb[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Le={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},Rb={[Le.EXPECTED_TOKEN]:"Expected token: '{0}'",[Le.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Le.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Le.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Le.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Le.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Le.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Le.EMPTY_PLACEHOLDER]:"Empty placeholder",[Le.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Le.INVALID_LINKED_FORMAT]:"Invalid linked format",[Le.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Le.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Le.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Le.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Le.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Le.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function cn(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=bc((a||Rb)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function Nb(e){throw e}const go=" ",Mb="\r",At=`
|
||
`,Fb="\u2028",Ib="\u2029";function Ob(e){const t=e;let o=0,n=1,a=1,s=0;const r=w=>t[w]===Mb&&t[w+1]===At,i=w=>t[w]===At,l=w=>t[w]===Ib,c=w=>t[w]===Fb,u=w=>r(w)||i(w)||l(w)||c(w),g=()=>o,f=()=>n,k=()=>a,P=()=>s,y=w=>r(w)||l(w)||c(w)?At:t[w],x=()=>y(o),$=()=>y(o+s);function m(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function b(){return r(o+s)&&s++,s++,t[o+s]}function v(){o=0,n=1,a=1,s=0}function A(w=0){s=w}function T(){const w=o+s;for(;w!==o;)m();s=0}return{index:g,line:f,column:k,peekOffset:P,charAt:y,currentChar:x,currentPeek:$,next:m,peek:b,reset:v,resetPeek:A,skipToPeek:T}}const So=void 0,Db=".",vc="'",Gb="tokenizer";function Bb(e,t={}){const o=t.location!==!1,n=Ob(e),a=()=>n.index(),s=()=>Pb(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 g(d,p,N,...V){const ue=c();if(p.column+=N,p.offset+=N,u){const ie=o?Ua(ue.startLoc,p):null,j=cn(d,ie,{domain:Gb,args:V});u(j)}}function f(d,p,N){d.endLoc=s(),d.currentType=p;const V={type:p};return o&&(V.loc=Ua(d.startLoc,d.endLoc)),N!=null&&(V.value=N),V}const k=d=>f(d,14);function P(d,p){return d.currentChar()===p?(d.next(),p):(g(Le.EXPECTED_TOKEN,s(),0,p),"")}function y(d){let p="";for(;d.currentPeek()===go||d.currentPeek()===At;)p+=d.currentPeek(),d.peek();return p}function x(d){const p=y(d);return d.skipToPeek(),p}function $(d){if(d===So)return!1;const p=d.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p===95}function m(d){if(d===So)return!1;const p=d.charCodeAt(0);return p>=48&&p<=57}function b(d,p){const{currentType:N}=p;if(N!==2)return!1;y(d);const V=$(d.currentPeek());return d.resetPeek(),V}function v(d,p){const{currentType:N}=p;if(N!==2)return!1;y(d);const V=d.currentPeek()==="-"?d.peek():d.currentPeek(),ue=m(V);return d.resetPeek(),ue}function A(d,p){const{currentType:N}=p;if(N!==2)return!1;y(d);const V=d.currentPeek()===vc;return d.resetPeek(),V}function T(d,p){const{currentType:N}=p;if(N!==8)return!1;y(d);const V=d.currentPeek()===".";return d.resetPeek(),V}function w(d,p){const{currentType:N}=p;if(N!==9)return!1;y(d);const V=$(d.currentPeek());return d.resetPeek(),V}function S(d,p){const{currentType:N}=p;if(!(N===8||N===12))return!1;y(d);const V=d.currentPeek()===":";return d.resetPeek(),V}function h(d,p){const{currentType:N}=p;if(N!==10)return!1;const V=()=>{const ie=d.currentPeek();return ie==="{"?$(d.peek()):ie==="@"||ie==="%"||ie==="|"||ie===":"||ie==="."||ie===go||!ie?!1:ie===At?(d.peek(),V()):W(d,!1)},ue=V();return d.resetPeek(),ue}function M(d){y(d);const p=d.currentPeek()==="|";return d.resetPeek(),p}function G(d){const p=y(d),N=d.currentPeek()==="%"&&d.peek()==="{";return d.resetPeek(),{isModulo:N,hasSpace:p.length>0}}function W(d,p=!0){const N=(ue=!1,ie="",j=!1)=>{const X=d.currentPeek();return X==="{"?ie==="%"?!1:ue:X==="@"||!X?ie==="%"?!0:ue:X==="%"?(d.peek(),N(ue,"%",!0)):X==="|"?ie==="%"||j?!0:!(ie===go||ie===At):X===go?(d.peek(),N(!0,go,j)):X===At?(d.peek(),N(!0,At,j)):!0},V=N();return p&&d.resetPeek(),V}function ne(d,p){const N=d.currentChar();return N===So?So:p(N)?(d.next(),N):null}function he(d){const p=d.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36}function K(d){return ne(d,he)}function C(d){const p=d.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36||p===45}function D(d){return ne(d,C)}function z(d){const p=d.charCodeAt(0);return p>=48&&p<=57}function O(d){return ne(d,z)}function U(d){const p=d.charCodeAt(0);return p>=48&&p<=57||p>=65&&p<=70||p>=97&&p<=102}function se(d){return ne(d,U)}function pe(d){let p="",N="";for(;p=O(d);)N+=p;return N}function ke(d){x(d);const p=d.currentChar();return p!=="%"&&g(Le.EXPECTED_TOKEN,s(),0,p),d.next(),"%"}function Ce(d){let p="";for(;;){const N=d.currentChar();if(N==="{"||N==="}"||N==="@"||N==="|"||!N)break;if(N==="%")if(W(d))p+=N,d.next();else break;else if(N===go||N===At)if(W(d))p+=N,d.next();else{if(M(d))break;p+=N,d.next()}else p+=N,d.next()}return p}function Me(d){x(d);let p="",N="";for(;p=D(d);)N+=p;return d.currentChar()===So&&g(Le.UNTERMINATED_CLOSING_BRACE,s(),0),N}function Ae(d){x(d);let p="";return d.currentChar()==="-"?(d.next(),p+=`-${pe(d)}`):p+=pe(d),d.currentChar()===So&&g(Le.UNTERMINATED_CLOSING_BRACE,s(),0),p}function we(d){return d!==vc&&d!==At}function J(d){x(d),P(d,"'");let p="",N="";for(;p=ne(d,we);)p==="\\"?N+=re(d):N+=p;const V=d.currentChar();return V===At||V===So?(g(Le.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),V===At&&(d.next(),P(d,"'")),N):(P(d,"'"),N)}function re(d){const p=d.currentChar();switch(p){case"\\":case"'":return d.next(),`\\${p}`;case"u":return oe(d,p,4);case"U":return oe(d,p,6);default:return g(Le.UNKNOWN_ESCAPE_SEQUENCE,s(),0,p),""}}function oe(d,p,N){P(d,p);let V="";for(let ue=0;ue<N;ue++){const ie=se(d);if(!ie){g(Le.INVALID_UNICODE_ESCAPE_SEQUENCE,s(),0,`\\${p}${V}${d.currentChar()}`);break}V+=ie}return`\\${p}${V}`}function ve(d){return d!=="{"&&d!=="}"&&d!==go&&d!==At}function _(d){x(d);let p="",N="";for(;p=ne(d,ve);)N+=p;return N}function R(d){let p="",N="";for(;p=K(d);)N+=p;return N}function L(d){const p=N=>{const V=d.currentChar();return V==="{"||V==="%"||V==="@"||V==="|"||V==="("||V===")"||!V||V===go?N:(N+=V,d.next(),p(N))};return p("")}function B(d){x(d);const p=P(d,"|");return x(d),p}function H(d,p){let N=null;switch(d.currentChar()){case"{":return p.braceNest>=1&&g(Le.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),d.next(),N=f(p,2,"{"),x(d),p.braceNest++,N;case"}":return p.braceNest>0&&p.currentType===2&&g(Le.EMPTY_PLACEHOLDER,s(),0),d.next(),N=f(p,3,"}"),p.braceNest--,p.braceNest>0&&x(d),p.inLinked&&p.braceNest===0&&(p.inLinked=!1),N;case"@":return p.braceNest>0&&g(Le.UNTERMINATED_CLOSING_BRACE,s(),0),N=E(d,p)||k(p),p.braceNest=0,N;default:{let ue=!0,ie=!0,j=!0;if(M(d))return p.braceNest>0&&g(Le.UNTERMINATED_CLOSING_BRACE,s(),0),N=f(p,1,B(d)),p.braceNest=0,p.inLinked=!1,N;if(p.braceNest>0&&(p.currentType===5||p.currentType===6||p.currentType===7))return g(Le.UNTERMINATED_CLOSING_BRACE,s(),0),p.braceNest=0,ee(d,p);if(ue=b(d,p))return N=f(p,5,Me(d)),x(d),N;if(ie=v(d,p))return N=f(p,6,Ae(d)),x(d),N;if(j=A(d,p))return N=f(p,7,J(d)),x(d),N;if(!ue&&!ie&&!j)return N=f(p,13,_(d)),g(Le.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,N.value),x(d),N;break}}return N}function E(d,p){const{currentType:N}=p;let V=null;const ue=d.currentChar();switch((N===8||N===9||N===12||N===10)&&(ue===At||ue===go)&&g(Le.INVALID_LINKED_FORMAT,s(),0),ue){case"@":return d.next(),V=f(p,8,"@"),p.inLinked=!0,V;case".":return x(d),d.next(),f(p,9,".");case":":return x(d),d.next(),f(p,10,":");default:return M(d)?(V=f(p,1,B(d)),p.braceNest=0,p.inLinked=!1,V):T(d,p)||S(d,p)?(x(d),E(d,p)):w(d,p)?(x(d),f(p,12,R(d))):h(d,p)?(x(d),ue==="{"?H(d,p)||V:f(p,11,L(d))):(N===8&&g(Le.INVALID_LINKED_FORMAT,s(),0),p.braceNest=0,p.inLinked=!1,ee(d,p))}}function ee(d,p){let N={type:14};if(p.braceNest>0)return H(d,p)||k(p);if(p.inLinked)return E(d,p)||k(p);switch(d.currentChar()){case"{":return H(d,p)||k(p);case"}":return g(Le.UNBALANCED_CLOSING_BRACE,s(),0),d.next(),f(p,3,"}");case"@":return E(d,p)||k(p);default:{if(M(d))return N=f(p,1,B(d)),p.braceNest=0,p.inLinked=!1,N;const{isModulo:ue,hasSpace:ie}=G(d);if(ue)return ie?f(p,0,Ce(d)):f(p,4,ke(d));if(W(d))return f(p,0,Ce(d));break}}return N}function Y(){const{currentType:d,offset:p,startLoc:N,endLoc:V}=l;return l.lastType=d,l.lastOffset=p,l.lastStartLoc=N,l.lastEndLoc=V,l.offset=a(),l.startLoc=s(),n.currentChar()===So?f(l,14):ee(n,l)}return{nextToken:Y,currentOffset:a,currentPosition:s,context:c}}const jb="parser",zb=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Ub(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"<22>"}}}function Hb(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(b,v,A,T,...w){const S=b.currentPosition();if(S.offset+=T,S.column+=T,o){const h=t?Ua(A,S):null,M=cn(v,h,{domain:jb,args:w});o(M)}}function s(b,v,A,T,...w){const S=b.currentPosition();if(S.offset+=T,S.column+=T,n){const h=t?Ua(A,S):null;n(Eb(v,h,w))}}function r(b,v,A){const T={type:b};return t&&(T.start=v,T.end=v,T.loc={start:A,end:A}),T}function i(b,v,A,T){t&&(b.end=v,b.loc&&(b.loc.end=A))}function l(b,v){const A=b.context(),T=r(3,A.offset,A.startLoc);return T.value=v,i(T,b.currentOffset(),b.currentPosition()),T}function c(b,v){const A=b.context(),{lastOffset:T,lastStartLoc:w}=A,S=r(5,T,w);return S.index=parseInt(v,10),b.nextToken(),i(S,b.currentOffset(),b.currentPosition()),S}function u(b,v,A){const T=b.context(),{lastOffset:w,lastStartLoc:S}=T,h=r(4,w,S);return h.key=v,A===!0&&(h.modulo=!0),b.nextToken(),i(h,b.currentOffset(),b.currentPosition()),h}function g(b,v){const A=b.context(),{lastOffset:T,lastStartLoc:w}=A,S=r(9,T,w);return S.value=v.replace(zb,Ub),b.nextToken(),i(S,b.currentOffset(),b.currentPosition()),S}function f(b){const v=b.nextToken(),A=b.context(),{lastOffset:T,lastStartLoc:w}=A,S=r(8,T,w);return v.type!==12?(a(b,Le.UNEXPECTED_EMPTY_LINKED_MODIFIER,A.lastStartLoc,0),S.value="",i(S,T,w),{nextConsumeToken:v,node:S}):(v.value==null&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,jt(v)),S.value=v.value||"",i(S,b.currentOffset(),b.currentPosition()),{node:S})}function k(b,v){const A=b.context(),T=r(7,A.offset,A.startLoc);return T.value=v,i(T,b.currentOffset(),b.currentPosition()),T}function P(b){const v=b.context(),A=r(6,v.offset,v.startLoc);let T=b.nextToken();if(T.type===9){const w=f(b);A.modifier=w.node,T=w.nextConsumeToken||b.nextToken()}switch(T.type!==10&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,jt(T)),T=b.nextToken(),T.type===2&&(T=b.nextToken()),T.type){case 11:T.value==null&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,jt(T)),A.key=k(b,T.value||"");break;case 5:T.value==null&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,jt(T)),A.key=u(b,T.value||"");break;case 6:T.value==null&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,jt(T)),A.key=c(b,T.value||"");break;case 7:T.value==null&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,jt(T)),A.key=g(b,T.value||"");break;default:{a(b,Le.UNEXPECTED_EMPTY_LINKED_KEY,v.lastStartLoc,0);const w=b.context(),S=r(7,w.offset,w.startLoc);return S.value="",i(S,w.offset,w.startLoc),A.key=S,i(A,w.offset,w.startLoc),{nextConsumeToken:T,node:A}}}return i(A,b.currentOffset(),b.currentPosition()),{node:A}}function y(b){const v=b.context(),A=v.currentType===1?b.currentOffset():v.offset,T=v.currentType===1?v.endLoc:v.startLoc,w=r(2,A,T);w.items=[];let S=null,h=null;do{const W=S||b.nextToken();switch(S=null,W.type){case 0:W.value==null&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,jt(W)),w.items.push(l(b,W.value||""));break;case 6:W.value==null&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,jt(W)),w.items.push(c(b,W.value||""));break;case 4:h=!0;break;case 5:W.value==null&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,jt(W)),w.items.push(u(b,W.value||"",!!h)),h&&(s(b,ar.USE_MODULO_SYNTAX,v.lastStartLoc,0,jt(W)),h=null);break;case 7:W.value==null&&a(b,Le.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,jt(W)),w.items.push(g(b,W.value||""));break;case 8:{const ne=P(b);w.items.push(ne.node),S=ne.nextConsumeToken||null;break}}}while(v.currentType!==14&&v.currentType!==1);const M=v.currentType===1?v.lastOffset:b.currentOffset(),G=v.currentType===1?v.lastEndLoc:b.currentPosition();return i(w,M,G),w}function x(b,v,A,T){const w=b.context();let S=T.items.length===0;const h=r(1,v,A);h.cases=[],h.cases.push(T);do{const M=y(b);S||(S=M.items.length===0),h.cases.push(M)}while(w.currentType!==14);return S&&a(b,Le.MUST_HAVE_MESSAGES_IN_PLURAL,A,0),i(h,b.currentOffset(),b.currentPosition()),h}function $(b){const v=b.context(),{offset:A,startLoc:T}=v,w=y(b);return v.currentType===14?w:x(b,A,T,w)}function m(b){const v=Bb(b,yc({},e)),A=v.context(),T=r(0,A.offset,A.startLoc);return t&&T.loc&&(T.loc.source=b),T.body=$(v),e.onCacheKey&&(T.cacheKey=e.onCacheKey(b)),A.currentType!==14&&a(v,Le.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,b[A.offset]||""),i(T,v.currentOffset(),v.currentPosition()),T}return{parse:m}}function jt(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 Kb(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function wc(e,t){for(let o=0;o<e.length;o++)sr(e[o],t)}function sr(e,t){switch(e.type){case 1:wc(e.cases,t),t.helper("plural");break;case 2:wc(e.items,t);break;case 6:{sr(e.key,t),t.helper("linked"),t.helper("type");break}case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named");break}}function Vb(e,t={}){const o=Kb(e);o.helper("normalize"),e.body&&sr(e.body,o);const n=o.context();e.helpers=Array.from(n.helpers)}function Wb(e){const t=e.body;return t.type===2?kc(t):t.cases.forEach(o=>kc(o)),e}function kc(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;o<e.items.length;o++){const n=e.items[o];if(!(n.type===3||n.type===9)||n.value==null)break;t.push(n.value)}if(t.length===e.items.length){e.static=$c(t);for(let o=0;o<e.items.length;o++){const n=e.items[o];(n.type===3||n.type===9)&&delete n.value}}}}const qb="minifier";function un(e){switch(e.t=e.type,e.type){case 0:{const t=e;un(t.body),t.b=t.body,delete t.body;break}case 1:{const t=e,o=t.cases;for(let n=0;n<o.length;n++)un(o[n]);t.c=o,delete t.cases;break}case 2:{const t=e,o=t.items;for(let n=0;n<o.length;n++)un(o[n]);t.i=o,delete t.items,t.static&&(t.s=t.static,delete t.static);break}case 3:case 9:case 8:case 7:{const t=e;t.value&&(t.v=t.value,delete t.value);break}case 6:{const t=e;un(t.key),t.k=t.key,delete t.key,t.modifier&&(un(t.modifier),t.m=t.modifier,delete t.modifier);break}case 5:{const t=e;t.i=t.index,delete t.index;break}case 4:{const t=e;t.k=t.key,delete t.key;break}default:throw cn(Le.UNHANDLED_MINIFIER_NODE_TYPE,null,{domain:qb,args:[e.type]})}delete e.type}const Yb="parser";function Zb(e,t){const{filename:o,breakLineCode:n,needIndent:a}=t,s=t.location!==!1,r={filename:o,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:n,needIndent:a,indentLevel:0};s&&e.loc&&(r.source=e.loc.source);const i=()=>r;function l(y,x){r.code+=y}function c(y,x=!0){const $=x?n:"";l(a?$+" ".repeat(y):$)}function u(y=!0){const x=++r.indentLevel;y&&c(x)}function g(y=!0){const x=--r.indentLevel;y&&c(x)}function f(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:g,newline:f,helper:y=>`_${y}`,needIndent:()=>r.needIndent}}function Xb(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),pn(e,t.key),t.modifier?(e.push(", "),pn(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;s<a&&(pn(e,t.items[s]),s!==a-1);s++)e.push(", ");e.deindent(n()),e.push("])")}function Qb(e,t){const{helper:o,needIndent:n}=e;if(t.cases.length>1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let s=0;s<a&&(pn(e,t.cases[s]),s!==a-1);s++)e.push(", ");e.deindent(n()),e.push("])")}}function ey(e,t){t.body?pn(e,t.body):e.push("null")}function pn(e,t){const{helper:o}=e;switch(t.type){case 0:ey(e,t);break;case 1:Qb(e,t);break;case 2:Jb(e,t);break;case 6:Xb(e,t);break;case 8:e.push(JSON.stringify(t.value),t);break;case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${o("interpolate")}(${o("list")}(${t.index}))`,t);break;case 4:e.push(`${o("interpolate")}(${o("named")}(${JSON.stringify(t.key)}))`,t);break;case 9:e.push(JSON.stringify(t.value),t);break;case 3:e.push(JSON.stringify(t.value),t);break;default:throw cn(Le.UNHANDLED_CODEGEN_NODE_TYPE,null,{domain:Yb,args:[t.type]})}}const ty=(e,t={})=>{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=Zb(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${$c(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),pn(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 oy(e,t={}){const o=yc({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=Hb(o).parse(e);return n?(s&&Wb(i),a&&un(i),{ast:i,code:""}):(Vb(i,o),ty(i,o))}/*!
|
||
* core-base v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function ny(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Kn().__INTLIFY_PROD_DEVTOOLS__=!1)}function Qt(e){return ze(e)&&rr(e)===0&&(Bt(e,"b")||Bt(e,"body"))}const xc=["b","body"];function ay(e){return Po(e,xc)}const Ac=["c","cases"];function sy(e){return Po(e,Ac,[])}const Sc=["s","static"];function ry(e){return Po(e,Sc)}const Pc=["i","items"];function iy(e){return Po(e,Pc,[])}const Lc=["t","type"];function rr(e){return Po(e,Lc)}const Tc=["v","value"];function Ha(e,t){const o=Po(e,Tc);if(o!=null)return o;throw Vn(t)}const Cc=["m","modifier"];function ly(e){return Po(e,Cc)}const Ec=["k","key"];function cy(e){const t=Po(e,Ec);if(t)return t;throw Vn(6)}function Po(e,t,o){for(let n=0;n<t.length;n++){const a=t[n];if(Bt(e,a)&&e[a]!=null)return e[a]}return o}const Rc=[...xc,...Ac,...Sc,...Pc,...Ec,...Cc,...Tc,...Lc];function Vn(e){return new Error(`unhandled node type: ${e}`)}const Lo=[];Lo[0]={w:[0],i:[3,0],"[":[4],o:[7]},Lo[1]={w:[1],".":[2],"[":[4],o:[7]},Lo[2]={w:[2],i:[3,0],0:[3,0]},Lo[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},Lo[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},Lo[5]={"'":[4,0],o:8,l:[5,0]},Lo[6]={'"':[4,0],o:8,l:[6,0]};const uy=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function py(e){return uy.test(e)}function dy(e){const t=e.charCodeAt(0),o=e.charCodeAt(e.length-1);return t===o&&(t===34||t===39)?e.slice(1,-1):e}function gy(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function fy(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:py(t)?dy(t):"*"+t}function hy(e){const t=[];let o=-1,n=0,a=0,s,r,i,l,c,u,g;const f=[];f[0]=()=>{r===void 0?r=i:r+=i},f[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},f[2]=()=>{f[0](),a++},f[3]=()=>{if(a>0)a--,n=4,f[0]();else{if(a=0,r===void 0||(r=fy(r),r===!1))return!1;f[1]()}};function k(){const P=e[o+1];if(n===5&&P==="'"||n===6&&P==='"')return o++,i="\\"+P,f[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&k())){if(l=gy(s),g=Lo[n],c=g[l]||g.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const Nc=new Map;function my(e,t){return ze(e)?e[t]:null}function by(e,t){if(!ze(e))return null;let o=Nc.get(t);if(o||(o=hy(t),o&&Nc.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;s<n;){const r=o[s];if(Rc.includes(r)&&Qt(a))return null;const i=a[r];if(i===void 0||Xe(a))return null;a=i,s++}return a}const yy=e=>e,_y=e=>"",$y="text",vy=e=>e.length===0?"":Sb(e),wy=Ab;function Mc(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function ky(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 xy(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Ay(e={}){const t=e.locale,o=ky(e),n=ze(e.pluralRules)&&me(t)&&Xe(e.pluralRules[t])?e.pluralRules[t]:Mc,a=ze(e.pluralRules)&&me(t)&&Xe(e.pluralRules[t])?Mc:void 0,s=$=>$[n(o,$.length,a)],r=e.list||[],i=$=>r[$],l=e.named||Ke();lt(e.pluralIndex)&&xy(o,l);const c=$=>l[$];function u($){const m=Xe(e.messages)?e.messages($):ze(e.messages)?e.messages[$]:!1;return m||(e.parent?e.parent.message($):_y)}const g=$=>e.modifiers?e.modifiers[$]:yy,f=Re(e.processor)&&Xe(e.processor.normalize)?e.processor.normalize:vy,k=Re(e.processor)&&Xe(e.processor.interpolate)?e.processor.interpolate:wy,P=Re(e.processor)&&me(e.processor.type)?e.processor.type:$y,x={list:i,named:c,plural:s,linked:($,...m)=>{const[b,v]=m;let A="text",T="";m.length===1?ze(b)?(T=b.modifier||T,A=b.type||A):me(b)&&(T=b||T):m.length===2&&(me(b)&&(T=b||T),me(v)&&(A=v||A));const w=u($)(x),S=A==="vnode"&&et(w)&&T?w[0]:w;return T?g(T)(S,A):S},message:u,type:P,interpolate:k,normalize:f,values:$t(Ke(),r,l)};return x}let Wn=null;function Sy(e){Wn=e}function Py(e,t,o){Wn&&Wn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const Ly=Ty("function:translate");function Ty(e){return t=>Wn&&Wn.emit(e,t)}const Cy=ar.__EXTEND_POINT__,zo=Ba(Cy),Ey={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()},Fc=Le.__EXTEND_POINT__,Uo=Ba(Fc),eo={INVALID_ARGUMENT:Fc,INVALID_DATE_ARGUMENT:Uo(),INVALID_ISO_DATE_ARGUMENT:Uo(),NOT_SUPPORT_NON_STRING_MESSAGE:Uo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Uo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Uo(),NOT_SUPPORT_LOCALE_TYPE:Uo(),__EXTEND_POINT__:Uo()};function fo(e){return cn(e,null,void 0)}function ir(e,t){return t.locale!=null?Ic(t.locale):Ic(e.locale)}let lr;function Ic(e){if(me(e))return e;if(Xe(e)){if(e.resolvedOnce&&lr!=null)return lr;if(e.constructor.name==="Function"){const t=e();if(xb(t))throw fo(eo.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return lr=t}else throw fo(eo.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw fo(eo.NOT_SUPPORT_LOCALE_TYPE)}function Ry(e,t,o){return[...new Set([o,...et(t)?t:ze(t)?Object.keys(t):me(t)?[t]:[o]])]}function Oc(e,t,o){const n=me(o)?o:dn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;et(r);)r=Dc(s,r,t);const i=et(t)||!Re(t)?t:t.default?t.default:null;r=me(i)?[i]:i,et(r)&&Dc(s,r,!1),a.__localeChainCache.set(n,s)}return s}function Dc(e,t,o){let n=!0;for(let a=0;a<t.length&&Ie(n);a++){const s=t[a];me(s)&&(n=Ny(e,t[a],o))}return n}function Ny(e,t,o){let n;const a=t.split("-");do{const s=a.join("-");n=My(e,s,o),a.splice(-1,1)}while(a.length&&n===!0);return n}function My(e,t,o){let n=!1;if(!e.includes(t)&&(n=!0,t)){n=t[t.length-1]!=="!";const a=t.replace(/!/g,"");e.push(a),(et(o)||Re(o))&&o[a]&&(n=o[a])}return n}const Fy="9.14.5",Ka=-1,dn="en-US",Gc="",Bc=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Iy(){return{upper:(e,t)=>t==="text"&&me(e)?e.toUpperCase():t==="vnode"&&ze(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&me(e)?e.toLowerCase():t==="vnode"&&ze(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&me(e)?Bc(e):t==="vnode"&&ze(e)&&"__v_isVNode"in e?Bc(e.children):e}}let jc;function Oy(e){jc=e}let zc;function Dy(e){zc=e}let Uc;function Gy(e){Uc=e}let Hc=null;const By=e=>{Hc=e},jy=()=>Hc;let Kc=null;const Vc=e=>{Kc=e},zy=()=>Kc;let Wc=0;function Uy(e={}){const t=Xe(e.onWarn)?e.onWarn:bb,o=me(e.version)?e.version:Fy,n=me(e.locale)||Xe(e.locale)?e.locale:dn,a=Xe(n)?dn:n,s=et(e.fallbackLocale)||Re(e.fallbackLocale)||me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=Re(e.messages)?e.messages:cr(a),i=Re(e.datetimeFormats)?e.datetimeFormats:cr(a),l=Re(e.numberFormats)?e.numberFormats:cr(a),c=$t(Ke(),e.modifiers,Iy()),u=e.pluralRules||Ke(),g=Xe(e.missing)?e.missing:null,f=Ie(e.missingWarn)||Ao(e.missingWarn)?e.missingWarn:!0,k=Ie(e.fallbackWarn)||Ao(e.fallbackWarn)?e.fallbackWarn:!0,P=!!e.fallbackFormat,y=!!e.unresolving,x=Xe(e.postTranslation)?e.postTranslation:null,$=Re(e.processor)?e.processor:null,m=Ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,v=Xe(e.messageCompiler)?e.messageCompiler:jc,A=Xe(e.messageResolver)?e.messageResolver:zc||my,T=Xe(e.localeFallbacker)?e.localeFallbacker:Uc||Ry,w=ze(e.fallbackContext)?e.fallbackContext:void 0,S=e,h=ze(S.__datetimeFormatters)?S.__datetimeFormatters:new Map,M=ze(S.__numberFormatters)?S.__numberFormatters:new Map,G=ze(S.__meta)?S.__meta:{};Wc++;const W={version:o,cid:Wc,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:g,missingWarn:f,fallbackWarn:k,fallbackFormat:P,unresolving:y,postTranslation:x,processor:$,warnHtmlMessage:m,escapeParameter:b,messageCompiler:v,messageResolver:A,localeFallbacker:T,fallbackContext:w,onWarn:t,__meta:G};return W.datetimeFormats=i,W.numberFormats=l,W.__datetimeFormatters=h,W.__numberFormatters=M,__INTLIFY_PROD_DEVTOOLS__&&Py(W,o,G),W}const cr=e=>({[e]:Ke()});function ur(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 qn(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function Hy(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Ky(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;n<t.length;n++)if(Hy(e,t[n]))return!0;return!1}function pr(e){return o=>Vy(o,e)}function Vy(e,t){const o=ay(t);if(o==null)throw Vn(0);if(rr(o)===1){const s=sy(o);return e.plural(s.reduce((r,i)=>[...r,qc(e,i)],[]))}else return qc(e,o)}function qc(e,t){const o=ry(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=iy(t).reduce((a,s)=>[...a,dr(e,s)],[]);return e.normalize(n)}}function dr(e,t){const o=rr(t);switch(o){case 3:return Ha(t,o);case 9:return Ha(t,o);case 4:{const n=t;if(Bt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Bt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Vn(o)}case 5:{const n=t;if(Bt(n,"i")&<(n.i))return e.interpolate(e.list(n.i));if(Bt(n,"index")&<(n.index))return e.interpolate(e.list(n.index));throw Vn(o)}case 6:{const n=t,a=ly(n),s=cy(n);return e.linked(dr(e,s),a?dr(e,a):void 0,e.type)}case 7:return Ha(t,o);case 8:return Ha(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Wy=e=>e;let Va=Ke();function qy(e,t={}){let o=!1;const n=t.onError||Nb;return t.onError=a=>{o=!0,n(a)},{...oy(e,t),detectError:o}}function Yy(e,t){if(me(e)){Ie(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Wy)(e),a=Va[n];if(a)return a;const{ast:s,detectError:r}=qy(e,{...t,location:!1,jit:!0}),i=pr(s);return r?i:Va[n]=i}else{const o=e.cacheKey;if(o){const n=Va[o];return n||(Va[o]=pr(e))}else return pr(e)}}const Yc=()=>"",Mt=e=>Xe(e);function Zc(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=gr(...t),u=Ie(c.missingWarn)?c.missingWarn:e.missingWarn,g=Ie(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,f=Ie(c.escapeParameter)?c.escapeParameter:e.escapeParameter,k=!!c.resolvedMessage,P=me(c.default)||Ie(c.default)?Ie(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",y=o||P!=="",x=ir(e,c);f&&Zy(c);let[$,m,b]=k?[l,x,i[x]||Ke()]:Xc(e,l,x,r,g,u),v=$,A=l;if(!k&&!(me(v)||Qt(v)||Mt(v))&&y&&(v=P,A=v),!k&&(!(me(v)||Qt(v)||Mt(v))||!me(m)))return a?Ka:l;let T=!1;const w=()=>{T=!0},S=Mt(v)?v:Jc(e,l,m,v,A,w);if(T)return v;const h=Qy(e,m,b,c),M=Ay(h),G=Xy(e,S,M);let W=n?n(G,l):G;if(f&&me(W)&&(W=wb(W)),__INTLIFY_PROD_DEVTOOLS__){const ne={timestamp:Date.now(),key:me(l)?l:Mt(v)?v.key:"",locale:m||(Mt(v)?v.locale:""),format:me(v)?v:Mt(v)?v.source:"",message:W};ne.meta=$t({},e.__meta,jy()||{}),Ly(ne)}return W}function Zy(e){et(e.list)?e.list=e.list.map(t=>me(t)?gc(t):t):ze(e.named)&&Object.keys(e.named).forEach(t=>{me(e.named[t])&&(e.named[t]=gc(e.named[t]))})}function Xc(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let g=Ke(),f,k=null;const P="translate";for(let y=0;y<u.length&&(f=u[y],g=r[f]||Ke(),(k=l(g,t))===null&&(k=g[t]),!(me(k)||Qt(k)||Mt(k)));y++)if(!Ky(f,u)){const x=ur(e,t,f,s,P);x!==t&&(k=x)}return[k,f,g]}function Jc(e,t,o,n,a,s){const{messageCompiler:r,warnHtmlMessage:i}=e;if(Mt(n)){const c=n;return c.locale=c.locale||o,c.key=c.key||t,c}if(r==null){const c=()=>n;return c.locale=o,c.key=t,c}const l=r(n,Jy(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function Xy(e,t,o){return t(o)}function gr(...e){const[t,o,n]=e,a=Ke();if(!me(t)&&!lt(t)&&!Mt(t)&&!Qt(t))throw fo(eo.INVALID_ARGUMENT);const s=lt(t)?String(t):(Mt(t),t);return lt(o)?a.plural=o:me(o)?a.default=o:Re(o)&&!Ga(o)?a.named=o:et(o)&&(a.list=o),lt(n)?a.plural=n:me(n)?a.default=n:Re(n)&&$t(a,n),[s,a]}function Jy(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>yb(t,o,r)}}function Qy(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:a,pluralRules:s,messages:k=>{let P=r(o,k);if(P==null&&u){const[,,y]=Xc(u,k,t,i,l,c);P=r(y,k)}if(me(P)||Qt(P)){let y=!1;const $=Jc(e,k,t,P,k,()=>{y=!0});return y?Yc:$}else return Mt(P)?P:Yc}};return e.processor&&(f.processor=e.processor),n.list&&(f.list=n.list),n.named&&(f.named=n.named),lt(n.plural)&&(f.pluralIndex=n.plural),f}function Qc(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,g]=fr(...t),f=Ie(u.missingWarn)?u.missingWarn:e.missingWarn;Ie(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const k=!!u.part,P=ir(e,u),y=r(e,a,P);if(!me(l)||l==="")return new Intl.DateTimeFormat(P,g).format(c);let x={},$,m=null;const b="datetime format";for(let T=0;T<y.length&&($=y[T],x=o[$]||{},m=x[l],!Re(m));T++)ur(e,l,$,f,b);if(!Re(m)||!me($))return n?Ka:l;let v=`${$}__${l}`;Ga(g)||(v=`${v}__${JSON.stringify(g)}`);let A=i.get(v);return A||(A=new Intl.DateTimeFormat($,$t({},m,g)),i.set(v,A)),k?A.formatToParts(c):A.format(c)}const eu=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function fr(...e){const[t,o,n,a]=e,s=Ke();let r=Ke(),i;if(me(t)){const l=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!l)throw fo(eo.INVALID_ISO_DATE_ARGUMENT);const c=l[3]?l[3].trim().startsWith("T")?`${l[1].trim()}${l[3].trim()}`:`${l[1].trim()}T${l[3].trim()}`:l[1].trim();i=new Date(c);try{i.toISOString()}catch{throw fo(eo.INVALID_ISO_DATE_ARGUMENT)}}else if($b(t)){if(isNaN(t.getTime()))throw fo(eo.INVALID_DATE_ARGUMENT);i=t}else if(lt(t))i=t;else throw fo(eo.INVALID_ARGUMENT);return me(o)?s.key=o:Re(o)&&Object.keys(o).forEach(l=>{eu.includes(l)?r[l]=o[l]:s[l]=o[l]}),me(n)?s.locale=n:Re(n)&&(r=n),Re(a)&&(r=a),[s.key||"",i,s,r]}function tu(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function ou(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,g]=hr(...t),f=Ie(u.missingWarn)?u.missingWarn:e.missingWarn;Ie(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const k=!!u.part,P=ir(e,u),y=r(e,a,P);if(!me(l)||l==="")return new Intl.NumberFormat(P,g).format(c);let x={},$,m=null;const b="number format";for(let T=0;T<y.length&&($=y[T],x=o[$]||{},m=x[l],!Re(m));T++)ur(e,l,$,f,b);if(!Re(m)||!me($))return n?Ka:l;let v=`${$}__${l}`;Ga(g)||(v=`${v}__${JSON.stringify(g)}`);let A=i.get(v);return A||(A=new Intl.NumberFormat($,$t({},m,g)),i.set(v,A)),k?A.formatToParts(c):A.format(c)}const nu=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function hr(...e){const[t,o,n,a]=e,s=Ke();let r=Ke();if(!lt(t))throw fo(eo.INVALID_ARGUMENT);const i=t;return me(o)?s.key=o:Re(o)&&Object.keys(o).forEach(l=>{nu.includes(l)?r[l]=o[l]:s[l]=o[l]}),me(n)?s.locale=n:Re(n)&&(r=n),Re(a)&&(r=a),[s.key||"",i,s,r]}function au(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}ny();/*!
|
||
* vue-i18n v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/const e0="9.14.5";function t0(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Kn().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Kn().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Kn().__INTLIFY_PROD_DEVTOOLS__=!1)}const o0=Ey.__EXTEND_POINT__,ho=Ba(o0);ho(),ho(),ho(),ho(),ho(),ho(),ho(),ho(),ho();const su=eo.__EXTEND_POINT__,St=Ba(su),dt={UNEXPECTED_RETURN_TYPE:su,INVALID_ARGUMENT:St(),MUST_BE_CALL_SETUP_TOP:St(),NOT_INSTALLED:St(),NOT_AVAILABLE_IN_LEGACY_MODE:St(),REQUIRED_VALUE:St(),INVALID_VALUE:St(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:St(),NOT_INSTALLED_WITH_PROVIDE:St(),UNEXPECTED_ERROR:St(),NOT_COMPATIBLE_LEGACY_VUE_I18N:St(),BRIDGE_SUPPORT_VUE_2_ONLY:St(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:St(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:St(),__EXTEND_POINT__:St()};function mt(e,...t){return cn(e,null,void 0)}const mr=xo("__translateVNode"),br=xo("__datetimeParts"),yr=xo("__numberParts"),ru=xo("__setPluralRules"),iu=xo("__injectWithOption"),_r=xo("__dispose");function Yn(e){if(!ze(e)||Qt(e))return e;for(const t in e)if(Bt(e,t))if(!t.includes("."))ze(e[t])&&Yn(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,s=!1;for(let r=0;r<n;r++){if(o[r]==="__proto__")throw new Error(`unsafe key: ${o[r]}`);if(o[r]in a||(a[o[r]]=Ke()),!ze(a[o[r]])){s=!0;break}a=a[o[r]]}if(s||(Qt(a)?Rc.includes(o[n])||delete e[t]:(a[o[n]]=e[t],delete e[t])),!Qt(a)){const r=a[o[n]];ze(r)&&Yn(r)}}return e}function Wa(e,t){const{messages:o,__i18n:n,messageResolver:a,flatJson:s}=t,r=Re(o)?o:et(n)?Ke():{[e]:Ke()};if(et(n)&&n.forEach(i=>{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(r[l]=r[l]||Ke(),za(c,r[l])):za(c,r)}else me(i)&&za(JSON.parse(i),r)}),a==null&&s)for(const i in r)Bt(r,i)&&Yn(r[i]);return r}function lu(e){return e.type}function cu(e,t,o){let n=ze(t.messages)?t.messages:Ke();"__i18nGlobal"in o&&(n=Wa(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(ze(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(ze(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function uu(e){return We(In,null,e,0)}const pu="__INTLIFY_META__",du=()=>[],n0=()=>!1;let gu=0;function fu(e){return(t,o,n,a)=>e(o,n,uo()||void 0,a)}const a0=()=>{const e=uo();let t=null;return e&&(t=lu(e)[pu])?{[pu]:t}:null};function $r(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=Da?ge:ma,i=!!e.translateExistCompatible;let l=Ie(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:me(e.locale)?e.locale:dn),u=r(o&&l?o.fallbackLocale.value:me(e.fallbackLocale)||et(e.fallbackLocale)||Re(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),g=r(Wa(c.value,e)),f=r(Re(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),k=r(Re(e.numberFormats)?e.numberFormats:{[c.value]:{}});let P=o?o.missingWarn:Ie(e.missingWarn)||Ao(e.missingWarn)?e.missingWarn:!0,y=o?o.fallbackWarn:Ie(e.fallbackWarn)||Ao(e.fallbackWarn)?e.fallbackWarn:!0,x=o?o.fallbackRoot:Ie(e.fallbackRoot)?e.fallbackRoot:!0,$=!!e.fallbackFormat,m=Xe(e.missing)?e.missing:null,b=Xe(e.missing)?fu(e.missing):null,v=Xe(e.postTranslation)?e.postTranslation:null,A=o?o.warnHtmlMessage:Ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,T=!!e.escapeParameter;const w=o?o.modifiers:Re(e.modifiers)?e.modifiers:{};let S=e.pluralRules||o&&o.pluralRules,h;h=(()=>{a&&Vc(null);const j={version:e0,locale:c.value,fallbackLocale:u.value,messages:g.value,modifiers:w,pluralRules:S,missing:b===null?void 0:b,missingWarn:P,fallbackWarn:y,fallbackFormat:$,unresolving:!0,postTranslation:v===null?void 0:v,warnHtmlMessage:A,escapeParameter:T,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};j.datetimeFormats=f.value,j.numberFormats=k.value,j.__datetimeFormatters=Re(h)?h.__datetimeFormatters:void 0,j.__numberFormatters=Re(h)?h.__numberFormatters:void 0;const X=Uy(j);return a&&Vc(X),X})(),qn(h,c.value,u.value);function G(){return[c.value,u.value,g.value,f.value,k.value]}const W=te({get:()=>c.value,set:j=>{c.value=j,h.locale=c.value}}),ne=te({get:()=>u.value,set:j=>{u.value=j,h.fallbackLocale=u.value,qn(h,c.value,j)}}),he=te(()=>g.value),K=te(()=>f.value),C=te(()=>k.value);function D(){return Xe(v)?v:null}function z(j){v=j,h.postTranslation=j}function O(){return m}function U(j){j!==null&&(b=fu(j)),m=j,h.missing=b}const se=(j,X,ye,Se,Be,nt)=>{G();let at;try{__INTLIFY_PROD_DEVTOOLS__,a||(h.fallbackContext=o?zy():void 0),at=j(h)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(h.fallbackContext=void 0)}if(ye!=="translate exists"&<(at)&&at===Ka||ye==="translate exists"&&!at){const[I,q]=X();return o&&x?Se(o):Be(I)}else{if(nt(at))return at;throw mt(dt.UNEXPECTED_RETURN_TYPE)}};function pe(...j){return se(X=>Reflect.apply(Zc,null,[X,...j]),()=>gr(...j),"translate",X=>Reflect.apply(X.t,X,[...j]),X=>X,X=>me(X))}function ke(...j){const[X,ye,Se]=j;if(Se&&!ze(Se))throw mt(dt.INVALID_ARGUMENT);return pe(X,ye,$t({resolvedMessage:!0},Se||{}))}function Ce(...j){return se(X=>Reflect.apply(Qc,null,[X,...j]),()=>fr(...j),"datetime format",X=>Reflect.apply(X.d,X,[...j]),()=>Gc,X=>me(X))}function Me(...j){return se(X=>Reflect.apply(ou,null,[X,...j]),()=>hr(...j),"number format",X=>Reflect.apply(X.n,X,[...j]),()=>Gc,X=>me(X))}function Ae(j){return j.map(X=>me(X)||lt(X)||Ie(X)?uu(String(X)):X)}const J={normalize:Ae,interpolate:j=>j,type:"vnode"};function re(...j){return se(X=>{let ye;const Se=X;try{Se.processor=J,ye=Reflect.apply(Zc,null,[Se,...j])}finally{Se.processor=null}return ye},()=>gr(...j),"translate",X=>X[mr](...j),X=>[uu(X)],X=>et(X))}function oe(...j){return se(X=>Reflect.apply(ou,null,[X,...j]),()=>hr(...j),"number format",X=>X[yr](...j),du,X=>me(X)||et(X))}function ve(...j){return se(X=>Reflect.apply(Qc,null,[X,...j]),()=>fr(...j),"datetime format",X=>X[br](...j),du,X=>me(X)||et(X))}function _(j){S=j,h.pluralRules=S}function R(j,X){return se(()=>{if(!j)return!1;const ye=me(X)?X:c.value,Se=H(ye),Be=h.messageResolver(Se,j);return i?Be!=null:Qt(Be)||Mt(Be)||me(Be)},()=>[j],"translate exists",ye=>Reflect.apply(ye.te,ye,[j,X]),n0,ye=>Ie(ye))}function L(j){let X=null;const ye=Oc(h,u.value,c.value);for(let Se=0;Se<ye.length;Se++){const Be=g.value[ye[Se]]||{},nt=h.messageResolver(Be,j);if(nt!=null){X=nt;break}}return X}function B(j){const X=L(j);return X??(o?o.tm(j)||{}:{})}function H(j){return g.value[j]||{}}function E(j,X){if(s){const ye={[j]:X};for(const Se in ye)Bt(ye,Se)&&Yn(ye[Se]);X=ye[j]}g.value[j]=X,h.messages=g.value}function ee(j,X){g.value[j]=g.value[j]||{};const ye={[j]:X};if(s)for(const Se in ye)Bt(ye,Se)&&Yn(ye[Se]);X=ye[j],za(X,g.value[j]),h.messages=g.value}function Y(j){return f.value[j]||{}}function d(j,X){f.value[j]=X,h.datetimeFormats=f.value,tu(h,j,X)}function p(j,X){f.value[j]=$t(f.value[j]||{},X),h.datetimeFormats=f.value,tu(h,j,X)}function N(j){return k.value[j]||{}}function V(j,X){k.value[j]=X,h.numberFormats=k.value,au(h,j,X)}function ue(j,X){k.value[j]=$t(k.value[j]||{},X),h.numberFormats=k.value,au(h,j,X)}gu++,o&&Da&&(je(o.locale,j=>{l&&(c.value=j,h.locale=j,qn(h,c.value,u.value))}),je(o.fallbackLocale,j=>{l&&(u.value=j,h.fallbackLocale=j,qn(h,c.value,u.value))}));const ie={id:gu,locale:W,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(j){l=j,j&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,qn(h,c.value,u.value))},get availableLocales(){return Object.keys(g.value).sort()},messages:he,get modifiers(){return w},get pluralRules(){return S||{}},get isGlobal(){return a},get missingWarn(){return P},set missingWarn(j){P=j,h.missingWarn=P},get fallbackWarn(){return y},set fallbackWarn(j){y=j,h.fallbackWarn=y},get fallbackRoot(){return x},set fallbackRoot(j){x=j},get fallbackFormat(){return $},set fallbackFormat(j){$=j,h.fallbackFormat=$},get warnHtmlMessage(){return A},set warnHtmlMessage(j){A=j,h.warnHtmlMessage=j},get escapeParameter(){return T},set escapeParameter(j){T=j,h.escapeParameter=j},t:pe,getLocaleMessage:H,setLocaleMessage:E,mergeLocaleMessage:ee,getPostTranslationHandler:D,setPostTranslationHandler:z,getMissingHandler:O,setMissingHandler:U,[ru]:_};return ie.datetimeFormats=K,ie.numberFormats=C,ie.rt=ke,ie.te=R,ie.tm=B,ie.d=Ce,ie.n=Me,ie.getDateTimeFormat=Y,ie.setDateTimeFormat=d,ie.mergeDateTimeFormat=p,ie.getNumberFormat=N,ie.setNumberFormat=V,ie.mergeNumberFormat=ue,ie[iu]=n,ie[mr]=re,ie[br]=ve,ie[yr]=oe,ie}function s0(e){const t=me(e.locale)?e.locale:dn,o=me(e.fallbackLocale)||et(e.fallbackLocale)||Re(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=Xe(e.missing)?e.missing:void 0,a=Ie(e.silentTranslationWarn)||Ao(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=Ie(e.silentFallbackWarn)||Ao(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Ie(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Re(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Xe(e.postTranslation)?e.postTranslation:void 0,g=me(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,f=!!e.escapeParameterHtml,k=Ie(e.sync)?e.sync:!0;let P=e.messages;if(Re(e.sharedMessages)){const T=e.sharedMessages;P=Object.keys(T).reduce((S,h)=>{const M=S[h]||(S[h]={});return $t(M,T[h]),S},P||{})}const{__i18n:y,__root:x,__injectWithOption:$}=e,m=e.datetimeFormats,b=e.numberFormats,v=e.flatJson,A=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:P,flatJson:v,datetimeFormats:m,numberFormats:b,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:g,escapeParameter:f,messageResolver:e.messageResolver,inheritLocale:k,translateExistCompatible:A,__i18n:y,__root:x,__injectWithOption:$}}function vr(e={},t){{const o=$r(s0(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 Ie(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=Ie(s)?!s:s},get silentFallbackWarn(){return Ie(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=Ie(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,g=null;if(!me(r))throw mt(dt.INVALID_ARGUMENT);const f=r;return me(i)?c.locale=i:et(i)?u=i:Re(i)&&(g=i),et(l)?u=l:Re(l)&&(g=l),Reflect.apply(o.t,o,[f,u||g||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,g=null;if(!me(r))throw mt(dt.INVALID_ARGUMENT);const f=r;return me(i)?c.locale=i:lt(i)?c.plural=i:et(i)?u=i:Re(i)&&(g=i),me(l)?c.locale=l:et(l)?u=l:Re(l)&&(g=l),Reflect.apply(o.t,o,[f,u||g||{},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 wr={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function r0({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Ge?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Ke())}function hu(e){return Ge}const mu=En({name:"i18n-t",props:$t({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>lt(e)||!isNaN(e)}},wr),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||ut({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(g=>g!=="_"),r=Ke();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=me(e.plural)?+e.plural:e.plural);const i=r0(t,s),l=a[mr](e.keypath,i,r),c=$t(Ke(),n),u=me(e.tag)||ze(e.tag)?e.tag:hu();return Ul(u,c,l)}}});function i0(e){return et(e)&&!me(e[0])}function bu(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=Ke();e.locale&&(r.locale=e.locale),me(e.format)?r.key=e.format:ze(e.format)&&(me(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((f,k)=>o.includes(k)?$t(Ke(),f,{[k]:e.format[k]}):f,Ke()));const l=n(e.value,r,i);let c=[r.key];et(l)?c=l.map((f,k)=>{const P=a[f.type],y=P?P({[f.type]:f.value,index:k,parts:l}):[f.value];return i0(y)&&(y[0].key=`${f.type}-${k}`),y}):me(l)&&(c=[l]);const u=$t(Ke(),s),g=me(e.tag)||ze(e.tag)?e.tag:hu();return Ul(g,u,c)}}const yu=En({name:"i18n-n",props:$t({value:{type:Number,required:!0},format:{type:[String,Object]}},wr),setup(e,t){const o=e.i18n||ut({useScope:e.scope,__useComponent:!0});return bu(e,t,nu,(...n)=>o[yr](...n))}}),_u=En({name:"i18n-d",props:$t({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},wr),setup(e,t){const o=e.i18n||ut({useScope:e.scope,__useComponent:!0});return bu(e,t,eu,(...n)=>o[br](...n))}});function l0(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 c0(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw mt(dt.UNEXPECTED_ERROR);const u=l0(e,i.$),g=$u(c);return[Reflect.apply(u.t,u,[...vu(g)]),u]};return{created:(r,i)=>{const[l,c]=t(i);Da&&e.global===c&&(r.__i18nWatcher=je(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{Da&&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=$u(i);r.textContent=Reflect.apply(l.t,l,[...vu(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function $u(e){if(me(e))return{path:e};if(Re(e)){if(!("path"in e))throw mt(dt.REQUIRED_VALUE,"path");return e}else throw mt(dt.INVALID_VALUE)}function vu(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 u0(e,t,...o){const n=Re(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Ie(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":mu.name,"I18nT"].forEach(r=>e.component(r,mu)),[yu.name,"I18nN"].forEach(r=>e.component(r,yu)),[_u.name,"I18nD"].forEach(r=>e.component(r,_u))),e.directive("t",c0(t))}function p0(e,t,o){return{beforeCreate(){const n=uo();if(!n)throw mt(dt.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=vr(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=vr({__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&&cu(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=uo();if(!n)throw mt(dt.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[ru](t.pluralizationRules||e.pluralizationRules);const o=Wa(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 d0=xo("global-vue-i18n");function g0(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ie(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ie(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=f0(e,o),l=xo("");function c(f){return s.get(f)||null}function u(f,k){s.set(f,k)}function g(f){s.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(k,...P){if(k.__VUE_I18N_SYMBOL__=l,k.provide(k.__VUE_I18N_SYMBOL__,f),Re(P[0])){const $=P[0];f.__composerExtend=$.__composerExtend,f.__vueI18nExtend=$.__vueI18nExtend}let y=null;!o&&n&&(y=k0(k,f.global)),__VUE_I18N_FULL_INSTALL__&&u0(k,f,...P),__VUE_I18N_LEGACY_API__&&o&&k.mixin(p0(i,i.__composer,f));const x=k.unmount;k.unmount=()=>{y&&y(),f.dispose(),x()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:g};return f}}function ut(e={}){const t=uo();if(t==null)throw mt(dt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw mt(dt.NOT_INSTALLED);const o=h0(t),n=b0(o),a=lu(t),s=m0(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw mt(dt.NOT_AVAILABLE_IN_LEGACY_MODE);return v0(t,s,n,e)}if(s==="global")return cu(n,e,a),n;if(s==="parent"){let l=y0(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=$t({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=$r(l),r.__composerExtend&&(i[_r]=r.__composerExtend(i)),$0(r,t,i),r.__setInstance(t,i)}return i}function f0(e,t,o){const n=fs();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>vr(e)):n.run(()=>$r(e));if(a==null)throw mt(dt.UNEXPECTED_ERROR);return[n,a]}}function h0(e){{const t=Ee(e.isCE?d0:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw mt(e.isCE?dt.NOT_INSTALLED_WITH_PROVIDE:dt.UNEXPECTED_ERROR);return t}}function m0(e,t){return Ga(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function b0(e){return e.mode==="composition"?e.global:e.global.__composer}function y0(e,t,o=!1){let n=null;const a=t.root;let s=_0(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[iu]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function _0(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function $0(e,t,o){qt(()=>{},t),Pa(()=>{const n=o;e.__deleteInstance(t);const a=n[_r];a&&(a(),delete n[_r])},t)}function v0(e,t,o,n={}){const a=t==="local",s=ma(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw mt(dt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Ie(n.inheritLocale)?n.inheritLocale:!me(n.locale),i=ge(!a||r?o.locale.value:me(n.locale)?n.locale:dn),l=ge(!a||r?o.fallbackLocale.value:me(n.fallbackLocale)||et(n.fallbackLocale)||Re(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=ge(Wa(i.value,n)),u=ge(Re(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),g=ge(Re(n.numberFormats)?n.numberFormats:{[i.value]:{}}),f=a?o.missingWarn:Ie(n.missingWarn)||Ao(n.missingWarn)?n.missingWarn:!0,k=a?o.fallbackWarn:Ie(n.fallbackWarn)||Ao(n.fallbackWarn)?n.fallbackWarn:!0,P=a?o.fallbackRoot:Ie(n.fallbackRoot)?n.fallbackRoot:!0,y=!!n.fallbackFormat,x=Xe(n.missing)?n.missing:null,$=Xe(n.postTranslation)?n.postTranslation:null,m=a?o.warnHtmlMessage:Ie(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,v=a?o.modifiers:Re(n.modifiers)?n.modifiers:{},A=n.pluralRules||a&&o.pluralRules;function T(){return[i.value,l.value,c.value,u.value,g.value]}const w=te({get:()=>s.value?s.value.locale.value:i.value,set:L=>{s.value&&(s.value.locale.value=L),i.value=L}}),S=te({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:L=>{s.value&&(s.value.fallbackLocale.value=L),l.value=L}}),h=te(()=>s.value?s.value.messages.value:c.value),M=te(()=>u.value),G=te(()=>g.value);function W(){return s.value?s.value.getPostTranslationHandler():$}function ne(L){s.value&&s.value.setPostTranslationHandler(L)}function he(){return s.value?s.value.getMissingHandler():x}function K(L){s.value&&s.value.setMissingHandler(L)}function C(L){return T(),L()}function D(...L){return s.value?C(()=>Reflect.apply(s.value.t,null,[...L])):C(()=>"")}function z(...L){return s.value?Reflect.apply(s.value.rt,null,[...L]):""}function O(...L){return s.value?C(()=>Reflect.apply(s.value.d,null,[...L])):C(()=>"")}function U(...L){return s.value?C(()=>Reflect.apply(s.value.n,null,[...L])):C(()=>"")}function se(L){return s.value?s.value.tm(L):{}}function pe(L,B){return s.value?s.value.te(L,B):!1}function ke(L){return s.value?s.value.getLocaleMessage(L):{}}function Ce(L,B){s.value&&(s.value.setLocaleMessage(L,B),c.value[L]=B)}function Me(L,B){s.value&&s.value.mergeLocaleMessage(L,B)}function Ae(L){return s.value?s.value.getDateTimeFormat(L):{}}function we(L,B){s.value&&(s.value.setDateTimeFormat(L,B),u.value[L]=B)}function J(L,B){s.value&&s.value.mergeDateTimeFormat(L,B)}function re(L){return s.value?s.value.getNumberFormat(L):{}}function oe(L,B){s.value&&(s.value.setNumberFormat(L,B),g.value[L]=B)}function ve(L,B){s.value&&s.value.mergeNumberFormat(L,B)}const _={get id(){return s.value?s.value.id:-1},locale:w,fallbackLocale:S,messages:h,datetimeFormats:M,numberFormats:G,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:v},get pluralRules(){return s.value?s.value.pluralRules:A},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:f},set missingWarn(L){s.value&&(s.value.missingWarn=L)},get fallbackWarn(){return s.value?s.value.fallbackWarn:k},set fallbackWarn(L){s.value&&(s.value.missingWarn=L)},get fallbackRoot(){return s.value?s.value.fallbackRoot:P},set fallbackRoot(L){s.value&&(s.value.fallbackRoot=L)},get fallbackFormat(){return s.value?s.value.fallbackFormat:y},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:b},set escapeParameter(L){s.value&&(s.value.escapeParameter=L)},t:D,getPostTranslationHandler:W,setPostTranslationHandler:ne,getMissingHandler:he,setMissingHandler:K,rt:z,d:O,n:U,tm:se,te:pe,getLocaleMessage:ke,setLocaleMessage:Ce,mergeLocaleMessage:Me,getDateTimeFormat:Ae,setDateTimeFormat:we,mergeDateTimeFormat:J,getNumberFormat:re,setNumberFormat:oe,mergeNumberFormat:ve};function R(L){L.locale.value=i.value,L.fallbackLocale.value=l.value,Object.keys(c.value).forEach(B=>{L.mergeLocaleMessage(B,c.value[B])}),Object.keys(u.value).forEach(B=>{L.mergeDateTimeFormat(B,u.value[B])}),Object.keys(g.value).forEach(B=>{L.mergeNumberFormat(B,g.value[B])}),L.escapeParameter=b,L.fallbackFormat=y,L.fallbackRoot=P,L.fallbackWarn=k,L.missingWarn=f,L.warnHtmlMessage=m}return rl(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw mt(dt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const L=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=L.locale.value,l.value=L.fallbackLocale.value,c.value=L.messages.value,u.value=L.datetimeFormats.value,g.value=L.numberFormats.value):a&&R(L)}),_}const w0=["locale","fallbackLocale","availableLocales"],ku=["t","rt","d","n","tm","te"];function k0(e,t){const o=Object.create(null);return w0.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw mt(dt.UNEXPECTED_ERROR);const r=Qe(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,ku.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw mt(dt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,ku.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(t0(),Oy(Yy),Dy(by),Gy(Oc),__INTLIFY_PROD_DEVTOOLS__){const e=Kn();e.__INTLIFY__=!0,Sy(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const x0=Object.assign({"./locales/ar/allPeopleGroups.json":Af,"./locales/ar/aria.json":Sf,"./locales/ar/buttons.json":Pf,"./locales/ar/detail.json":Lf,"./locales/ar/gospel.json":Tf,"./locales/ar/grid.json":Cf,"./locales/ar/legend.json":Ef,"./locales/ar/messages.json":Rf,"./locales/ar/options.json":Nf,"./locales/ar/popup.json":Mf,"./locales/ar/regions.json":Ff,"./locales/ar/search.json":If,"./locales/ar/simpleMap.json":Of,"./locales/ar/tabs.json":Df,"./locales/de/allPeopleGroups.json":Gf,"./locales/de/aria.json":Bf,"./locales/de/buttons.json":jf,"./locales/de/detail.json":zf,"./locales/de/gospel.json":Uf,"./locales/de/grid.json":Hf,"./locales/de/legend.json":Kf,"./locales/de/messages.json":Vf,"./locales/de/options.json":Wf,"./locales/de/popup.json":qf,"./locales/de/regions.json":Yf,"./locales/de/search.json":Zf,"./locales/de/simpleMap.json":Xf,"./locales/de/tabs.json":Jf,"./locales/en/allPeopleGroups.json":Qf,"./locales/en/aria.json":eh,"./locales/en/buttons.json":th,"./locales/en/detail.json":oh,"./locales/en/gospel.json":nh,"./locales/en/grid.json":ah,"./locales/en/legend.json":sh,"./locales/en/messages.json":rh,"./locales/en/options.json":ih,"./locales/en/popup.json":lh,"./locales/en/regions.json":ch,"./locales/en/search.json":uh,"./locales/en/simpleMap.json":ph,"./locales/en/tabs.json":dh,"./locales/es/allPeopleGroups.json":gh,"./locales/es/aria.json":fh,"./locales/es/buttons.json":hh,"./locales/es/detail.json":mh,"./locales/es/gospel.json":bh,"./locales/es/grid.json":yh,"./locales/es/legend.json":_h,"./locales/es/messages.json":$h,"./locales/es/options.json":vh,"./locales/es/popup.json":wh,"./locales/es/regions.json":kh,"./locales/es/search.json":xh,"./locales/es/simpleMap.json":Ah,"./locales/es/tabs.json":Sh,"./locales/fr/allPeopleGroups.json":Ph,"./locales/fr/aria.json":Lh,"./locales/fr/buttons.json":Th,"./locales/fr/detail.json":Ch,"./locales/fr/gospel.json":Eh,"./locales/fr/grid.json":Rh,"./locales/fr/legend.json":Nh,"./locales/fr/messages.json":Mh,"./locales/fr/options.json":Fh,"./locales/fr/popup.json":Ih,"./locales/fr/regions.json":Oh,"./locales/fr/search.json":Dh,"./locales/fr/simpleMap.json":Gh,"./locales/fr/tabs.json":Bh,"./locales/hi/allPeopleGroups.json":jh,"./locales/hi/aria.json":zh,"./locales/hi/buttons.json":Uh,"./locales/hi/detail.json":Hh,"./locales/hi/gospel.json":Kh,"./locales/hi/grid.json":Vh,"./locales/hi/legend.json":Wh,"./locales/hi/messages.json":qh,"./locales/hi/options.json":Yh,"./locales/hi/popup.json":Zh,"./locales/hi/regions.json":Xh,"./locales/hi/search.json":Jh,"./locales/hi/simpleMap.json":Qh,"./locales/hi/tabs.json":em,"./locales/it/allPeopleGroups.json":tm,"./locales/it/aria.json":om,"./locales/it/buttons.json":nm,"./locales/it/detail.json":am,"./locales/it/gospel.json":sm,"./locales/it/grid.json":rm,"./locales/it/legend.json":im,"./locales/it/messages.json":lm,"./locales/it/options.json":cm,"./locales/it/popup.json":um,"./locales/it/regions.json":pm,"./locales/it/search.json":dm,"./locales/it/simpleMap.json":gm,"./locales/it/tabs.json":fm,"./locales/pt/allPeopleGroups.json":hm,"./locales/pt/aria.json":mm,"./locales/pt/buttons.json":bm,"./locales/pt/detail.json":ym,"./locales/pt/gospel.json":_m,"./locales/pt/grid.json":$m,"./locales/pt/legend.json":vm,"./locales/pt/messages.json":wm,"./locales/pt/options.json":km,"./locales/pt/popup.json":xm,"./locales/pt/regions.json":Am,"./locales/pt/search.json":Sm,"./locales/pt/simpleMap.json":Pm,"./locales/pt/tabs.json":Lm,"./locales/ro/allPeopleGroups.json":Tm,"./locales/ro/aria.json":Cm,"./locales/ro/buttons.json":Em,"./locales/ro/detail.json":Rm,"./locales/ro/gospel.json":Nm,"./locales/ro/grid.json":Mm,"./locales/ro/legend.json":Fm,"./locales/ro/messages.json":Im,"./locales/ro/options.json":Om,"./locales/ro/popup.json":Dm,"./locales/ro/regions.json":Gm,"./locales/ro/search.json":Bm,"./locales/ro/simpleMap.json":jm,"./locales/ro/tabs.json":zm,"./locales/ru/allPeopleGroups.json":Um,"./locales/ru/aria.json":Hm,"./locales/ru/buttons.json":Km,"./locales/ru/detail.json":Vm,"./locales/ru/gospel.json":Wm,"./locales/ru/grid.json":qm,"./locales/ru/legend.json":Ym,"./locales/ru/messages.json":Zm,"./locales/ru/options.json":Xm,"./locales/ru/popup.json":Jm,"./locales/ru/regions.json":Qm,"./locales/ru/search.json":eb,"./locales/ru/simpleMap.json":tb,"./locales/ru/tabs.json":ob,"./locales/zh/allPeopleGroups.json":nb,"./locales/zh/aria.json":ab,"./locales/zh/buttons.json":sb,"./locales/zh/detail.json":rb,"./locales/zh/gospel.json":ib,"./locales/zh/grid.json":lb,"./locales/zh/legend.json":cb,"./locales/zh/messages.json":ub,"./locales/zh/options.json":pb,"./locales/zh/popup.json":db,"./locales/zh/regions.json":gb,"./locales/zh/search.json":fb,"./locales/zh/simpleMap.json":hb,"./locales/zh/tabs.json":mb}),gn={};for(const[e,t]of Object.entries(x0)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;gn[n]??(gn[n]={}),gn[n][a]=t}gn.en;const qa=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],kr=new Set(["ar"]);function A0(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function S0(){var n;const e=A0();if(qa.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return qa.includes(o)?o:"en"}function P0(){const e=S0();try{typeof window<"u"&&window.MAP_OWNS_PAGE===!0&&kr.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const t=g0({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:gn,missingWarn:!1,fallbackWarn:!1});je(t.global.locale,n=>xu(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 L0="__DOXA_PAGE_LOCALE";function xu(e){const t=String(e||"").split("-")[0].toLowerCase();if(qa.includes(t))try{typeof window<"u"&&(window[L0]=t)}catch{}}function Ft(e,t){const o=uo(),n=t||(o&&o.type&&o.type.__hmrId?"hmr-"+o.type.__hmrId:T0(e));qt(()=>{var l;if(!o)return;const a=(l=o.proxy)==null?void 0:l.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot))return;const r=s.querySelector(`style[data-shadow-styles="${n}"]`);if(r){r.textContent!==e&&(r.textContent=e);return}const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,s.appendChild(i)})}function T0(e){let t=0;for(let o=0;o<e.length;o++)t=(t<<5)-t+e.charCodeAt(o),t|=0;return"s"+Math.abs(t).toString(36)}const C0={class:"pin-hint-pill"},E0={__name:"PinHint",setup(e){const t={"messages.pinHint.tapDot":"Tap a dot to see who still needs prayer"};let o=S=>t[S]||S,n=()=>!1;try{const S=ut();o=S.t,n=S.te}catch{}const a=Ee("uiStore",null),s=Ee("profileConfig",null),r=te(()=>(a==null?void 0:a.theme)==="dark"),i=te(()=>{var M;const S=(M=s==null?void 0:s.value)==null?void 0:M.pinHintLabel;if(S)return S;const h="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):h}catch{return h}}),l=ge(!1),c=ge(null);let u=null,g=null,f=null,k=null,P=null,y=null,x=[],$=null,m=null;function b(){l.value=!1}function v(S,h){var G;let M=S==null?void 0:S.parentElement;for(let W=0;M&&W<12;W++,M=M.parentElement){if(M===h||(G=M.classList)!=null&&G.contains("profile-loader"))return null;let ne="";try{ne=getComputedStyle(M).position}catch{}if(ne&&ne!=="static"){const he=M.getBoundingClientRect();if(he.height>=120&&he.width>=160)return M}}return null}function A(S){var M;const h=(M=k==null?void 0:k.querySelector)==null?void 0:M.call(k,".legend-mobile-sheet");if(!h)return 1/0;if(P&&y!==h){try{P.disconnect()}catch{}P=null}if(!P&&typeof ResizeObserver<"u")try{P=new ResizeObserver(()=>T()),P.observe(h),y=h}catch{P=null}try{const G=h.getBoundingClientRect();return!(G.height>16)||!(G.width>16)||S.right<=G.left||G.right<=S.left?1/0:G.top}catch{return 1/0}}function T(){const S=c.value;if(S)try{S.style.removeProperty("--pin-hint-lift");const h=S.getBoundingClientRect();if(!h.height)return;const M=Math.min(window.innerHeight,A(h)),G=Math.round(h.bottom-M);G>0&&S.style.setProperty("--pin-hint-lift",G+8+"px")}catch{}}function w(S){const h=c.value;if(!h||!(S!=null&&S.querySelector))return;let M=0;try{const W=S.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(W){const ne=W.getBoundingClientRect(),he=h.parentElement,K=he?he.getBoundingClientRect():null;if(M=K?Math.max(ne.height||0,K.bottom-ne.top):ne.height||0,m!==W&&typeof ResizeObserver<"u"){if(f)try{f.disconnect()}catch{}m=W,f=new ResizeObserver(()=>w(S)),f.observe(W)}}}catch{}const G=Math.min(Math.max(Math.ceil(M)||20,20),72);h.style.setProperty("--pin-hint-attrib-clear",G+"px"),T()}return qt(()=>{var G,W,ne;const S=uo(),h=(ne=(W=(G=S==null?void 0:S.proxy)==null?void 0:G.$el)==null?void 0:W.getRootNode)==null?void 0:ne.call(W);if(!h||typeof h.querySelector!="function")return;k=h;let M=0;u=setInterval(()=>{M++;const he=h.querySelector("canvas");he?(clearInterval(u),u=null,l.value=!0,vo(()=>{const K=v(he,h),C=c.value;if(K&&C&&C.parentElement!==K)try{K.appendChild(C),g=K}catch{}w(h),T(),x.push(setTimeout(T,1200),setTimeout(T,3e3),setTimeout(T,6e3));try{const D=c.value&&c.value.offsetParent||null;if(D&&typeof ResizeObserver<"u"){if($)try{$.disconnect()}catch{}$=new ResizeObserver(()=>T()),$.observe(D)}}catch{}})):M>40&&(clearInterval(u),u=null)},300)}),Yt(()=>{var S;if(u&&clearInterval(u),f){try{f.disconnect()}catch{}f=null}if(m=null,$){try{$.disconnect()}catch{}$=null}if(P){try{P.disconnect()}catch{}P=null}y=null;for(const h of x)clearTimeout(h);if(x=[],k=null,g&&((S=c.value)==null?void 0:S.parentElement)===g)try{g.removeChild(c.value)}catch{}g=null}),Ft(`
|
||
.pin-hint { position: absolute; left: 50%;
|
||
bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%);
|
||
z-index: 2147482000; pointer-events: none;
|
||
max-width: calc(100% - 24px); box-sizing: border-box;
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||
animation: pinhint-in .5s ease both; }
|
||
.pin-hint-pill { pointer-events: auto; display: inline-flex; align-items: center; gap: 9px;
|
||
padding: 9px 14px 9px 11px; border-radius: 999px;
|
||
background: rgba(23, 29, 38, .92); color: #fff; font-size: 13.5px; font-weight: 600;
|
||
letter-spacing: .01em; box-shadow: 0 4px 18px rgba(0,0,0,.30);
|
||
animation: pinhint-bob 2.6s ease-in-out 1s infinite; }
|
||
.pin-hint-dot { position: relative; width: 12px; height: 12px; flex: none; }
|
||
.pin-hint-dot::before { content: ''; position: absolute; inset: 0; border-radius: 50%;
|
||
background: #e05252; box-shadow: 0 0 0 2px rgba(224,82,82,.35); }
|
||
.pin-hint-dot::after { content: ''; position: absolute; inset: -5px; border-radius: 50%;
|
||
border: 2px solid rgba(224,82,82,.55); animation: pinhint-pulse 1.8s ease-out infinite; }
|
||
.pin-hint-x { pointer-events: auto; border: none; background: none; color: #aeb7c2;
|
||
font-size: 16px; line-height: 1; cursor: pointer; padding: 0 0 0 2px; }
|
||
.pin-hint-x:hover { color: #fff; }
|
||
@media (pointer:coarse) { .pin-hint-x { min-width: 24px; min-height: 24px;
|
||
display: inline-flex; align-items: center; justify-content: center; padding: 0; } }
|
||
.pin-hint.dark .pin-hint-pill { background: rgba(240, 243, 247, .95); color: #1b212b; }
|
||
.pin-hint.dark .pin-hint-x { color: #5a6470; }
|
||
.pin-hint.dark .pin-hint-x:hover { color: #1b212b; }
|
||
@keyframes pinhint-pulse { 0% { transform: scale(.6); opacity: .9 } 70% { transform: scale(1.5); opacity: 0 } 100% { opacity: 0 } }
|
||
@keyframes pinhint-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
|
||
@keyframes pinhint-in { from { opacity: 0; transform: translateX(-50%) translateY(10px) } to { opacity: 1; transform: translateX(-50%) translateY(0) } }
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; }
|
||
}
|
||
`,"pin-hint"),(S,h)=>l.value?(Q(),ae("div",{key:0,ref_key:"hintEl",ref:c,class:Fe(["pin-hint",{dark:r.value}]),role:"status"},[F("span",C0,[h[0]||(h[0]=F("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),ft(" "+be(i.value)+" ",1),F("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:b},"×")])],2)):$e("",!0)}},Ya="mapbox://styles/mapbox/standard",R0=Ya,N0=Ya,M0=!1,Au={lightPreset:"night",theme:"default"},F0={lightPreset:"day",theme:"monochrome"};function I0(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function O0(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let s="dark";function r($){return I0($)}function i($,m){$!=="light"&&$!=="dark"||(s=$,m&&y(m))}function l(){return{...s==="light"?F0:Au}}function c(){return Ya}function u(){return{basemap:l()}}function g($,m){try{return typeof $.getConfigProperty=="function"?$.getConfigProperty("basemap",m):void 0}catch{return}}function f($){return!!$&&typeof $.setConfigProperty=="function"&&typeof $.getConfigProperty=="function"}function k($,m=!1){if(!f($))return!1;const b=l();let v=!1;try{for(const[A,T]of Object.entries(b))!m&&g($,A)===T||($.setConfigProperty("basemap",A,T),v=!0)}catch(A){console.warn("[useMapTheme] setConfigProperty failed:",A)}return v}function P($){if(!o.has($)&&(o.add($),!!f($)))try{$.on("style.load",()=>k($)),$.on("styledata",()=>k($))}catch{}}function y($){if(!$)return;if(P($),k($)&&!t){t=!0;try{$.once("idle",()=>{t=!1,k($,!0)})}catch{t=!1}}}function x($){e.toggleTheme(),y($)}return{setLook:i,lookFor:r,STANDARD_STYLE:Ya,LIGHT_STYLE:R0,DARK_STYLE:N0,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:y,swapTheme:x}}let D0=0;const G0=Qs("ui",{state:()=>({_storeInstanceId:++D0,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)}))}}}),B0=Qs("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()}}}),j0=Qs("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Jo({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Jo({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),fn={_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}}},z0=".profile-loader[data-v-975471d4]{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-975471d4]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",To=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},U0=["dir"],H0={key:0,class:"profile-error"},K0={key:1,class:"profile-error"},V0=To({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var T;const o=e,n=Ee("profileConfig",null),a=te(()=>{var S;if(!o.profileConfig)return null;let w;try{w=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(w&&w.assetsBase===void 0){const h=(S=n==null?void 0:n.value)==null?void 0:S.assetsBase;typeof h=="string"&&h&&(w.assetsBase=h)}return w}),s=te(()=>{var w;return((w=a.value)==null?void 0:w.profile)||null}),r=kf(),i=te(()=>{var S;const w=(S=a.value)==null?void 0:S.tk;return typeof w=="string"&&w?w:r.value||""});je(()=>{var w;return(w=a.value)==null?void 0:w.tk},w=>{typeof w=="string"&&w&&or(w)},{immediate:!0}),je(()=>{var w;return(w=a.value)==null?void 0:w.tokenUrl},w=>{var S;w&&!((S=a.value)!=null&&S.tk)&&!r.value&&xf(w)},{immediate:!0});const l=te(()=>{var w;return((w=a.value)==null?void 0:w.dataSource)||fn.activeSource||"doxa-csv"}),c=te(()=>{var w;return((w=a.value)==null?void 0:w.colorSet)||"default"}),u=te(()=>!1),g=te(()=>{var w;return((w=a.value)==null?void 0:w.pinHint)!==!1}),f=te(()=>{var S,h;const w=(((S=a.value)==null?void 0:S.locale)||((h=a.value)==null?void 0:h.lang)||"").split("-")[0].toLowerCase();return qa.includes(w)?w:""}),k=Ee("appI18n",null);Nd(()=>{f.value&&(k&&(k.global.locale.value=f.value),xu(f.value))});const P=te(()=>{var w,S;return f.value||((S=(w=k==null?void 0:k.global)==null?void 0:w.locale)==null?void 0:S.value)||"en"}),y=te(()=>kr.has(P.value)?"rtl":"ltr"),x=te(()=>{var w;return((w=a.value)==null?void 0:w.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),$=Ee("profileModules",null);if(!$)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const m=te(()=>{if(!s.value)return null;const w=`./${s.value}.vue`;return $[w]?nr($[w]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys($)),null)});yt("mapboxToken",i),yt("dataSource",l),yt("colorSet",c),yt("profileConfig",a),yt("instanceId",x),yt("lang",P);const b=G0(),v=B0(),A=j0();try{const w=typeof localStorage<"u"?localStorage.getItem("theme"):null;w&&((T=b.setTheme)==null||T.call(b,w))}catch{}return yt("uiStore",b),yt("mapStore",v),yt("dataStore",A),(w,S)=>(Q(),ae("div",{class:"profile-loader",dir:y.value},[a.value?m.value?(Q(),Ze(ll(m.value),{key:2})):(Q(),ae("div",K0,[F("p",null,[S[1]||(S[1]=ft("⚠️ Profile ",-1)),F("strong",null,'"'+be(s.value)+'"',1),S[2]||(S[2]=ft(" not found.",-1))])])):(Q(),ae("div",H0,[...S[0]||(S[0]=[F("p",null,[ft("⚠️ "),F("strong",null,"doxa-map"),ft(": missing or invalid "),F("code",null,"profile-config"),ft(" prop.")],-1),F("p",null,[ft("Example: "),F("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),m.value&&u.value?(Q(),Ze(ll(ce(null)),{key:3})):$e("",!0),m.value&&g.value?(Q(),Ze(E0,{key:4})):$e("",!0)],8,U0))}},[["styles",[z0]],["__scopeId","data-v-975471d4"]]),Su="adoptionStatus",mo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},xr=mo,Ar={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},W0=Ar;function Pu(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)?mo.hasAdoption:mo.notAdopted}function Sr({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],mo.hasAdoption,["==",t,1],mo.hasAdoption,mo.notAdopted]}const Lu=Sr,q0=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:xr,ADOPTION_LABELS:W0,LABELS:Ar,PALETTE:mo,PROPERTY_KEY:Su,applyColor:Sr,buildColorExpression:Lu,default:{name:"Adoption Progress",propertyKey:Su,palette:mo,colors:mo,labels:Ar,getColor:Pu,applyColor:Sr,buildColorExpression:Lu},getColor:Pu},Symbol.toStringTag,{value:"Module"})),Tu="engagementStatus",bo={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Pr=bo,Lr={notEngaged:"Unengaged",hasEngagement:"Engaged"},Y0=Lr;function Cu(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)?bo.hasEngagement:bo.notEngaged}function Tr({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],bo.hasEngagement,["==",t,1],bo.hasEngagement,bo.notEngaged]}const Eu=Tr,Z0=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Pr,ENGAGEMENT_LABELS:Y0,LABELS:Lr,PALETTE:bo,PROPERTY_KEY:Tu,applyColor:Tr,buildColorExpression:Eu,default:{name:"Engagement Progress",propertyKey:Tu,palette:bo,colors:bo,labels:Lr,getColor:Cu,applyColor:Tr,buildColorExpression:Eu},getColor:Cu},Symbol.toStringTag,{value:"Module"})),Cr="languageFamily",X0="#000000",Co={"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"},Ru=Co;function It(e){return Co[e]||X0}const J0=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(Co))t[e(o)]=o;return t})(),Q0={"tai-kadai":"Kra-Dai",none:"Unknown"};function Za(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Q0[o]||J0[o]||t}function Nu(e){var t;return It(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function Er(){const e=["match",["get",Cr]];return Object.entries(Co).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Mu=Er,e_=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Ru,PALETTE:Co,PROPERTY_KEY:Cr,applyColor:Er,buildColorExpression:Mu,canonicalFamilyName:Za,default:{name:"Language Family",propertyKey:Cr,palette:Co,colors:Co,getColor:Nu,applyColor:Er,buildColorExpression:Mu,getLanguageFamilyColor:It,canonicalFamilyName:Za},defaultFamilyColor:"#95a5a6",getColor:Nu,getLanguageFamilyColor:It,languageFamilyColors:Co},Symbol.toStringTag,{value:"Module"})),Fu="peoplePraying",Eo=144,Ro={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Ho=Ro,Rr={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},t_=Rr;function Xa(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>=Eo?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Nr(e){return Ro[Xa(e)]}function Iu(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Ou(e){return Xa(e)==="fullPrayer"}function Du(e){return Nr(e)}function Mr({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Eo],Ro.fullPrayer,[">",t,0],Ro.hasPrayer,Ro.noPrayer]}const Gu=Mr,o_=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Eo,LABELS:Rr,PALETTE:Ro,PRAYER_COLORS:Ho,PRAYER_LABELS:t_,PROPERTY_KEY:Fu,applyColor:Mr,buildColorExpression:Gu,checkHasFullPrayer:Ou,checkHasPrayer:Iu,default:{name:"Prayer Progress",propertyKey:Fu,palette:Ro,colors:Ro,labels:Rr,threshold:Eo,getColor:Du,applyColor:Mr,buildColorExpression:Gu,getPrayerLevel:Xa,getPrayerColor:Nr,checkHasPrayer:Iu,checkHasFullPrayer:Ou},getColor:Du,getPrayerColor:Nr,getPrayerLevel:Xa},Symbol.toStringTag,{value:"Module"})),Bu="religion",Fr="#94a3b8",Ja={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Rt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Ir(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Ja[t]?t:"U"}function ju(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 Rt[Ir(t)]||Fr}function Or(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Rt.C,"M",Rt.M,"H",Rt.H,"B",Rt.B,"E",Rt.E,"J",Rt.J,"S",Rt.S,"N",Rt.N,"O",Rt.O,Fr]}const zu=Or,n_=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Rt,PROPERTY_KEY:Bu,RELIGION_FAMILIES:Ja,applyColor:Or,buildColorExpression:zu,default:{name:"Religion",propertyKey:Bu,palette:Rt,families:Ja,getColor:ju,applyColor:Or,buildColorExpression:zu,fallback:Fr},getColor:ju,getReligionFamily:Ir},Symbol.toStringTag,{value:"Module"})),Uu="region",Dr="#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"},Zn={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Gr=Object.keys(Zn);function Ku(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 Zn[t]||Dr}function Br(){const e=["match",["coalesce",["get","region"],""]];for(const t of Gr)e.push(t,Zn[t]);return e.push(Dr),e}const Vu=Br,a_=Object.assign({"./adoption.js":q0,"./engagement.js":Z0,"./language-family.js":e_,"./prayer-progress.js":o_,"./religion.js":n_,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Zn,PROPERTY_KEY:Uu,REGION_ORDER:Gr,WAGF_REGIONS:Hu,applyColor:Br,buildColorExpression:Vu,default:{name:"WAGF Region",propertyKey:Uu,palette:Zn,regions:Hu,order:Gr,getColor:Ku,applyColor:Br,buildColorExpression:Vu,fallback:Dr},getColor:Ku},Symbol.toStringTag,{value:"Module"}))}),s_=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),r_=e=>e.replace(/-/g,"_").toUpperCase(),rt={...{STATUS:"status",CUSTOM:"custom"}},jr={};function Wu(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=s_(o);rt[r_(o)]=a,jr[a]=n}}Wu(a_);function i_(e){e&&Wu(e)}function Ko(e){return jr[e]||jr[rt.LANGUAGE_FAMILY]}function zr(e,t={}){return Ko(e).applyColor(t)}const l_=Object.assign({"./doxa-simple-map.vue":()=>ls(()=>Promise.resolve().then(()=>vw),void 0)});if(i_(Object.assign({})),typeof window<"u"&&((Fp=window.mapboxgl)!=null&&Fp.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}function qu(){return cf(V0,{configureApp(e){e.use(bf());const t=P0();e.use(t),e.provide("appI18n",t),e.provide("profileModules",l_)}})}const c_=qu(),u_=qu();typeof customElements<"u"&&(customElements.get("doxa-map")||customElements.define("doxa-map",c_),customElements.get("doxa-simple-map")||customElements.define("doxa-simple-map",u_));const p_="rgba(120, 128, 134, 0.28)",Yu="36px",Zu=()=>{};function d_(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Zu;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Zu;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"}, ${p_} ${Yu}, transparent ${Yu})`,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 g=()=>{for(const m of n)l.has(m)||r(m)},f=()=>{const m=i();m&&(s(m),u&&clearTimeout(u),u=setTimeout(g,250))},k=()=>f(),P=m=>{if(!(m.touches&&m.touches.length===1))return;const b=m.target;b&&b.classList&&b.classList.contains("map-scroll-edge")||f()},y=()=>{u&&clearTimeout(u),g()};e.addEventListener("wheel",k,{passive:!0}),e.addEventListener("touchmove",P,{passive:!0}),e.addEventListener("touchend",y,{passive:!0}),e.addEventListener("touchcancel",y,{passive:!0});const x=()=>{c||f()};typeof window<"u"&&window.addEventListener("scroll",x,{passive:!0});const $=[];for(const m of n){const b=()=>{l.add(m),s(m)},v=()=>{l.delete(m),r(m)},A=()=>{c=!0,s(m)},T=()=>{c=!1,r(m)};m.addEventListener("mouseenter",b),m.addEventListener("mouseleave",v),m.addEventListener("touchstart",A,{passive:!0}),m.addEventListener("touchend",T,{passive:!0}),$.push(()=>{m.removeEventListener("mouseenter",b),m.removeEventListener("mouseleave",v),m.removeEventListener("touchstart",A),m.removeEventListener("touchend",T)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",k),e.removeEventListener("touchmove",P),e.removeEventListener("touchend",y),e.removeEventListener("touchcancel",y),typeof window<"u"&&window.removeEventListener("scroll",x);for(const b of $)b();for(const b of n)r(b)}}const g_=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 f_(e,t="mapbox"){const o=g_[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 h_(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 m_=["mapbox","maplibre"],b_="auto";function Xu(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function Ju(e){const t=o=>typeof o=="string"&&!!o.trim()&&!/^YOUR_/.test(o.trim());return t(e==null?void 0:e.tk)||/^https?:\/\//i.test(String((e==null?void 0:e.tokenUrl)||""))?!0:typeof window>"u"?!1:t(window.MAP_TOKEN)||t(window.__doxaMapToken)||!!window.__doxaMapTokenPending}function y_(e,{token:t}={}){const o=Xu(e);return Qu(o)||(Ju(o)||Ju({tk:t})?"mapbox":"maplibre")}function Qu(e){const t=Xu(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||b_).toLowerCase().trim();return m_.includes(s)?s:""}function ep(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function Ur(e){if(typeof window>"u")return;const t=window.maplibregl,o=window.mapboxgl;return t&&t.Map&&e instanceof t.Map?t:o&&o.Map&&e instanceof o.Map?o:o||t}function No(e,t="circle"){return ep(e)?{[`${t}-emissive-strength`]:1}:{}}const Xn={mapboxGlJs:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",integrity:"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ"},mapboxGlCss:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css",integrity:"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV"},maplibreGlJs:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js",integrity:"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp"},maplibreGlCss:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css",integrity:"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK"},mapboxGeocoderJs:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",integrity:"sha384-Lx9WK8XhZk57czwxt6B6nyaDHB5Ayrcrsu4Fw4bCp/Ot/QLOsUZ0xYqLOpOOSXZw"},mapboxGeocoderCss:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",integrity:"sha384-1KNhwJNCQTr0DCi/5/OnQcFytgycxTahxNZaqKbAtqmY8bUhu26qxXqvDGXXwplS"},maplibreGeocoderJs:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.min.js",integrity:"sha384-RGV5vfoJd7alk8HE+71IyVfu19ciH1FKA15+AuXs6OeBM2npXrmTPFqG23yMiHXi"},maplibreGeocoderCss:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.css",integrity:"sha384-UkDpPApjTpHJHpcJiSNAmbobh30W0/dmt0DoKm4V8CWYRYvQ/Jhd/ijFz0tFdVnH"},d3:{url:"https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",integrity:"sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i"}};function Hr(e,t){const o=Object.values(Xn).find(n=>n.url===t);return o&&(e.integrity=o.integrity,e.crossOrigin="anonymous"),e}const tp={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 __(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function $_(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(__(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(tp.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(tp.mapbox,null,!0);o=!0}catch{}return o}const v_=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,op=new WeakMap;function w_(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function np(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!w_(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=op.get(e);a||(a=new Map,op.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(!v_.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 hn={mapbox:{global:"mapboxgl",js:Xn.mapboxGlJs.url,css:Xn.mapboxGlCss.url},maplibre:{global:"maplibregl",js:Xn.maplibreGlJs.url,css:Xn.maplibreGlCss.url}};function ap(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 k_=hn.mapbox.css,x_="https://tiles.openfreemap.org/styles/liberty",A_="https://tiles.openfreemap.org/styles/fiord";function Kr(e){var o;const t=((o=hn[e])==null?void 0:o.global)||hn.mapbox.global;return typeof window<"u"?window[t]:void 0}async function S_(e){const t=hn[e]||hn.mapbox;if(Kr(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,Hr(n,t.css),document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(Kr(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,Hr(s,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 P_(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,Hr(s,t),await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function L_(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?A_:x_}const T_=85.0511,Vr=-2,C_=0,E_=-60;function sp(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function R_(e,t,o,n){if(!e||e<=0||!t||t<=0)return C_;const a=Math.log2(e/512),s=sp(n)-sp(T_),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(Vr,Math.min(i,(o??18)-1))}function N_({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:g=18,pitch:f=0,bearing:k=0,renderWorldCopies:P=!0,showEdgeBorders:y=!0,southCutoff:x=E_,maxBounds:$=void 0}){const m=ma(null),b=ge(!1);let v=null,A=null,T=null,w=null;try{w=Ee("profileConfig",null)}catch{}const S=!a&&!Qu(w);a=a||y_(w,{token:t});let h=a==="maplibre",M=null;try{M=Ee("lang",null)}catch{}const G=()=>{const he=M&&typeof M=="object"&&"value"in M?M.value:M;if(typeof he=="string"&&he)return he;const K=w&&typeof w=="object"&&"value"in w?w.value:w;if(K&&(K.locale||K.lang))return String(K.locale||K.lang);try{const C=new URLSearchParams(location.search);return C.get("lang")||C.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function W(){var J;if(S&&!h&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",h=!0)}const he=f_(o,a),K=he.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const C=()=>!e.value;if(await S_(a),C())return;const D=Kr(a);if(!D){console.error(`[useMapInstance] ${h?"maplibregl":"mapboxgl"} is not available. Add the ${h?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if($_(D),!h){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,C()))return;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 P_(e.value,h?hn.maplibre.css:k_),C()||(await new Promise(re=>requestAnimationFrame(re)),C()))return;const z=e.value,O=z.clientWidth,U=z.clientHeight;if(O===0||U===0){console.error(`[useMapInstance] Container has ZERO dimensions (${O}×${U}). Map will be invisible. Check that parent elements have CSS sizing.`);let re=z.parentElement,oe=0;for(;re&&oe<5;)re=re.parentElement,oe++}const se=t;h||(D.accessToken=se);const pe=()=>typeof window<"u"&&window.innerWidth>=1024,ke=(re,oe)=>{if(u)return typeof c=="number"?c:Vr;if(!pe())return Vr;const ve=R_(re,oe,g,x);return typeof c=="number"?Math.max(c,ve):ve},Ce=ke(z.clientWidth,z.clientHeight),Me=he.lightPreset||(()=>{var re;try{const oe=typeof n=="function"?n():n;return(re=oe==null?void 0:oe.basemap)==null?void 0:re.lightPreset}catch{return}})();if(h){m.value=new D.Map({container:e.value,style:L_(K,Me),center:s,zoom:r,minZoom:Ce,maxZoom:g,pitch:f,bearing:k,dragRotate:!1,renderWorldCopies:P,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),ap(m.value);try{e.value.__doxaMap=m.value}catch{}}else{const re=typeof n=="function"?n():n;m.value=new D.Map({accessToken:se,container:e.value,style:K,...re?{config:re}:{},center:s,zoom:r,minZoom:Ce,maxZoom:g,pitch:f,bearing:k,dragRotate:!1,touchPitch:!1,renderWorldCopies:P,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),ap(m.value);try{e.value.__doxaMap=m.value}catch{}}try{let re=!1;m.value.on("error",oe=>{var R,L;const ve=((R=oe==null?void 0:oe.error)==null?void 0:R.status)??(oe==null?void 0:oe.status),_=String(((L=oe==null?void 0:oe.error)==null?void 0:L.url)||(oe==null?void 0:oe.sourceId)||"");ve!==401&&ve!==403||re||(re=!0,console.error(`[doxa-maps] Mapbox returned ${ve} 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.`+(_?` First failing request: ${_.slice(0,120)}`:"")))})}catch{}try{m.value.touchZoomRotate.disableRotation()}catch{}T=d_(((J=e.value)==null?void 0:J.parentElement)||null,{enabled:y});let Ae=Ce,we=null;v=()=>{const re=m.value;if(!re)return;const oe=ke(z.clientWidth,z.clientHeight);oe!==Ae&&(Ae=oe,re.setMinZoom(oe)),re.getZoom()<oe?(we&&clearTimeout(we),we=setTimeout(()=>{we=null;const ve=m.value;if(!ve)return;const _=ke(z.clientWidth,z.clientHeight);if(ve.getZoom()<_)try{ve.jumpTo({zoom:_})}catch{ve.setZoom(_)}},150)):we&&(clearTimeout(we),we=null)},A=()=>{we&&(clearTimeout(we),we=null)},m.value.on("resize",v),typeof window<"u"&&(window.addEventListener("resize",v),window.addEventListener("orientationchange",v)),m.value.on("style.load",()=>{if(m.value&&np(m.value,G()),he.paint&&m.value){const re=h_(m.value,he.paint);console.info("[useMapInstance] style paint applied ("+a+"):",re.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var re;(re=m.value)==null||re.resize(),m.value&&m.value.setMinZoom(ke(z.clientWidth,z.clientHeight)),b.value=!0})})}function ne(){if(m.value){if(v&&(m.value.off("resize",v),typeof window<"u"&&(window.removeEventListener("resize",v),window.removeEventListener("orientationchange",v)),v=null),A){try{A()}catch{}A=null}T&&(T(),T=null),m.value.remove(),m.value=null,b.value=!1}}if(M&&typeof M=="object"&&"value"in M)try{je(M,()=>{m.value&&b.value&&np(m.value,G())})}catch{}return{map:m,isMapReady:b,initializeMap:W,destroy:ne}}const rp="doxa-prayed-local",M_=7*24*60*60*1e3;function ip(){try{const e=localStorage.getItem(rp);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function lp(e){try{localStorage.setItem(rp,JSON.stringify(e))}catch{}}function F_(){const e=Date.now(),t=ip();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>M_)&&(delete t[n],o=!0);return o&&lp(t),new Set(Object.keys(t))}function I_(e){if(!e)return;const t=ip();t[e]=Date.now(),lp(t);try{window.dispatchEvent(new CustomEvent("doxa:prayed-locally",{detail:{slug:e}}))}catch{}}function O_(e){const t=F_();return!t.size||!Array.isArray(e)?e:e.map(o=>(Number(o&&o.peoplePraying)||0)>0||!o||!t.has(o.slug)?o:{...o,peoplePraying:1})}const tt={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},cp={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"};function Wr(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const D_=[[/ sign language$/i,"Sign Language"]];function G_(e){var i,l;const t=Wr(e.languageFamily);if(t)return t;const o=String(((l=(i=e._raw)==null?void 0:i.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(o&&cp[o])return cp[o];const n=Wr(e.language||e.primary_language);if(!n||typeof n!="string")return"";const a=n.trim(),s=a.split(",").map(c=>c.trim()).filter(Boolean);if(s.length>=2){const c=[...s].reverse().join(" ");if(tt[c])return tt[c];if(s.length>=3){const u=[s[1],s[0]].join(" ");if(tt[u])return tt[u]}}if(tt[a])return tt[a];const r=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(r!==a&&tt[r])return tt[r];for(const[c,u]of D_)if(c.test(a))return u;return""}function B_(e){const{mapId:t="unknown",dataSourceId:o="doxa-csv",dataSourceManager:n=null,dataStore:a=null,markRaw:s=w=>w}=e;n||console.error("useMapData: dataSourceManager is required!");const r=ge(!1),i=ge(null),l=ge(!1),c=ge([]),u=ge([]),g=ge(null),f=ge([]),k=ge([]),P=ge([]),y=ge(null);async function x(){if(!n)throw new Error("dataSourceManager is required for useMapData");r.value=!0,i.value=null;try{if(await n.init(),a&&a.hasSourceData&&a.hasSourceData(o)){const K=a.getSourceData(o);u.value=s(K.normalizedData||[])}else{const K=await n.setActiveSource(o);for(const C of K){const D=Wr(C.language||C.primary_language);D&&(C.language=D);const z=G_(C);C.languageFamily=Za(z)}u.value=s(K),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:K,timestamp:Date.now()})}c.value=s(O_(u.value.map(K=>({id:K.uniqueId,slug:K.slug||"",rop3:K.peopleGroupId,peopleId3:K.peopleId3,name:K.name,language:K.language,languageFamily:K.languageFamily,country:K.country,population:K.population,status:K.engagementStatus||K.status,latitude:K.latitude,longitude:K.longitude,lng:K.longitude,lat:K.latitude,description:K.description,imageUrl:K.imageUrl,doxaRegion:K.doxaRegion||K.wagfRegion||"",peoplePraying:K.peoplePraying??null,_normalized:K}))));const w=n.getDataByLanguageFamily();f.value=Object.entries(w).map(([K,C])=>{const D=C.reduce((z,O)=>{const U=parseInt(O.population)||0;return z+U},0);return{name:K,count:C.length,peopleGroupCount:C.length,population:D,groups:C}}).sort((K,C)=>C.count-K.count);const S=n.getDataByRegion();k.value=Object.entries(S).map(([K,C])=>{const D=C.reduce((z,O)=>{const U=parseInt(O.population)||0;return z+U},0);return{name:K,count:C.length,peopleGroupCount:C.length,population:D,groups:C}}).sort((K,C)=>K.name.localeCompare(C.name));const h={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach(K=>{const C=parseInt(K.population)||0;let D=!1;K.bible==="Available"&&(h.bible.count++,h.bible.population+=C,h.bible.groups.push(K),D=!0),K.jesusFilm==="Available"&&(h.jesusFilm.count++,h.jesusFilm.population+=C,h.jesusFilm.groups.push(K),D=!0),K.radio==="Available"&&(h.radio.count++,h.radio.population+=C,h.radio.groups.push(K),D=!0),K.gospel==="Available"&&(h.gospel.count++,h.gospel.population+=C,h.gospel.groups.push(K),D=!0),K.audio==="Available"&&(h.audio.count++,h.audio.population+=C,h.audio.groups.push(K),D=!0),K.stories==="Available"&&(h.stories.count++,h.stories.population+=C,h.stories.groups.push(K),D=!0),D?(h.hasResources.count++,h.hasResources.population+=C,h.hasResources.groups.push(K)):(h.noResources.count++,h.noResources.population+=C,h.noResources.groups.push(K))});const M=u.value.length,G=u.value.reduce((K,C)=>K+(parseInt(C.population)||0),0),W={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},ne={bible:{count:M-h.bible.count,population:G-h.bible.population},jesusFilm:{count:M-h.jesusFilm.count,population:G-h.jesusFilm.population},radio:{count:M-h.radio.count,population:G-h.radio.population},gospel:{count:M-h.gospel.count,population:G-h.gospel.population},audio:{count:M-h.audio.count,population:G-h.audio.population},stories:{count:M-h.stories.count,population:G-h.stories.population}},he="#2c3e50";return P.value=[{name:W.bible,key:"bible",count:h.bible.count,population:h.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:ne.bible.count,population:ne.bible.population,color:he}]},{name:W.jesusFilm,key:"jesusFilm",count:h.jesusFilm.count,population:h.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:ne.jesusFilm.count,population:ne.jesusFilm.population,color:he}]},{name:W.radio,key:"radio",count:h.radio.count,population:h.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:ne.radio.count,population:ne.radio.population,color:he}]},{name:W.gospel,key:"gospel",count:h.gospel.count,population:h.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:ne.gospel.count,population:ne.gospel.population,color:he}]},{name:W.audio,key:"audio",count:h.audio.count,population:h.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:ne.audio.count,population:ne.audio.population,color:he}]},{name:W.stories,key:"stories",count:h.stories.count,population:h.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:ne.stories.count,population:ne.stories.population,color:he}]},{name:W.hasResources,key:"hasResources",count:h.hasResources.count,population:h.hasResources.population,isParent:!0,children:[{name:W.noResources,key:"noResources",count:h.noResources.count,population:h.noResources.population,color:he}]}],y.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:f.value,doxaRegionsData:k.value,resourcesData:P.value,stats:y.value}}catch(w){throw console.error(`Failed to load data for map "${t}":`,w),i.value=w.message||"Failed to load data",w}finally{r.value=!1}}async function $(){var w,S,h;try{const M={},G=u.value||[];for(const W of G){const ne=W.countryIso||((S=(w=W._raw)==null?void 0:w.country_code)==null?void 0:S.value)||"",he=(h=W._raw)==null?void 0:h.wagf_region,K=W.doxaRegion||W.wagfRegion||(he&&typeof he=="object"?he.value:"")||"";ne&&K&&!M[ne]&&(M[ne]=K)}return g.value={isoToRegion:M},g.value}catch(M){throw console.error(`Error building regions data for map "${t}":`,M),i.value=M.message||"Failed to build regions",M}}function m(){return n?n.getDataByLanguageFamily():{}}function b(){return n?n.getDataByRegion():{}}function v(w){return m()[w]||[]}function A(w){return b()[w]||[]}function T(){c.value=[],u.value=[],g.value=null,f.value=[],k.value=[],P.value=[],y.value=null,l.value=!1,i.value=null}return{isLoading:r,isInitialized:l,error:i,peopleGroups:c,normalizedPeopleGroups:u,regionsData:g,languageFamiliesData:f,doxaRegionsData:k,resourcesData:P,stats:y,loadData:x,loadRegionsData:$,getDataByLanguageFamily:m,getDataByRegion:b,getPeopleGroupsByFamily:v,getPeopleGroupsByRegion:A,clearData:T}}const j_=qo&&qo.tagName.toUpperCase()==="SCRIPT"&&qo.src||new URL("doxa-simple-map.js",document.baseURI).href,Mo=e=>String(e||"").trim().replace(/\/+$/,"");function up(){try{const t=String(j_||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function z_(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Mo(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Mo(o)}return Mo(up()||"")}function qr(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=Mo(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=Mo((e==null?void 0:e.treeBase)||"")||Mo(up()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return Mo(new URL(o+"/assets",n).href)}catch{return Mo(o+"/assets")}return"./assets"}function U_({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=z_(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 H_={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]}},pp={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function K_(e){return H_[e]||null}function Yr(e="standard"){return pp.circleRadius[e]||pp.circleRadius.standard}const V_={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};function ot(e){return e==null?"":String(e).replace(/[&<>"'`]/g,t=>V_[t])}function W_(e,t=""){try{const o=new URL(String(e),typeof location<"u"?location.href:"https://example.invalid/");if(o.protocol==="http:"||o.protocol==="https:")return ot(o.href)}catch{}return ot(t)}function q_(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=Ee("uiStore"),{t:r,locale:i}=ut(),l=ge([]);function c(b){const v=n(b.languageFamily),A="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let T=b.imageUrl;(!T||T.includes("NoImageAvailable"))&&(T=A);const w=(b.name||"U")[0].toUpperCase(),S=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],h=w.charCodeAt(0)%S.length,M=S[h];return`
|
||
<div style="
|
||
width: 300px;
|
||
background: white;
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||
">
|
||
<!-- Header with Avatar and Name -->
|
||
<div style="
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 12px;
|
||
border-bottom: 1px solid #efefef;
|
||
">
|
||
<!-- Avatar -->
|
||
<div style="
|
||
width: 32px;
|
||
height: 32px;
|
||
border-radius: 4px;
|
||
background-color: ${ot(M)};
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color: white;
|
||
font-weight: 700;
|
||
font-size: 16px;
|
||
margin-right: 10px;
|
||
flex-shrink: 0;
|
||
">
|
||
${ot(w)}
|
||
</div>
|
||
|
||
<!-- Name and Status -->
|
||
<div style="flex: 1; min-width: 0;">
|
||
<h3 style="
|
||
margin: 0;
|
||
font-size: 14px;
|
||
font-weight: 600;
|
||
color: #262626;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
">${ot(b.name)}</h3>
|
||
<p style="
|
||
margin: 2px 0 0 0;
|
||
font-size: 12px;
|
||
color: #8e8e8e;
|
||
">${ot(b.country||"Unknown")} • ${ot(b.status||"Unknown Status")}</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Image -->
|
||
<div style="
|
||
width: 100%;
|
||
height: 200px;
|
||
background-color: #fafafa;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
overflow: hidden;
|
||
">
|
||
<img
|
||
src="${W_(T,A)}"
|
||
alt="${ot(b.name)}"
|
||
style="
|
||
width: 100%;
|
||
height: 100%;
|
||
object-fit: cover;
|
||
"
|
||
onerror="this.onerror=null; this.src='${ot(A)}'"
|
||
/>
|
||
</div>
|
||
|
||
<!-- Info Section -->
|
||
<div style="padding: 12px;">
|
||
<p style="margin: 0 0 6px 0; font-size: 13px;">
|
||
<strong>Language:</strong> ${ot(b.language||"Unknown")}
|
||
</p>
|
||
<p style="margin: 0 0 6px 0; font-size: 13px;">
|
||
<strong>Family:</strong>
|
||
<span style="background: ${ot(v)}; color: white; padding: 2px 8px; border-radius: 4px; font-size: 12px;">
|
||
${ot(b.languageFamily||"Unknown")}
|
||
</span>
|
||
</p>
|
||
${b.population?`<p style="margin: 0 0 6px 0; font-size: 13px;"><strong>Population:</strong> ${ot(b.population)}</p>`:""}
|
||
${b.description?`<p style="margin: 8px 0; font-size: 13px; color: #262626; line-height: 1.4;">${ot(b.description)}</p>`:""}
|
||
</div>
|
||
</div>
|
||
`}function u(b){const v=b.iso_3166_1_alpha_3||"",T=b["name_"+((i==null?void 0:i.value)||"en")]||b.name_en||b.name||v,w=a(),S=v.toUpperCase(),h=w.filter(he=>{const K=(he.countryIso||he.country||"").toUpperCase();return K&&K===S}),M=h.length,G=h[0],W=(G==null?void 0:G.wagfRegionLabel)||(G==null?void 0:G.doxaRegionLabel)||(G==null?void 0:G.doxaRegion)||(G==null?void 0:G.wagfRegion)||"—",ne=(G==null?void 0:G.wagfBlockLabel)||(G==null?void 0:G.wagfBlock)||"—";return`
|
||
<div style="padding: 8px; min-width: 220px;">
|
||
<h3 style="margin: 0 0 8px 0; font-size: 16px; font-weight: 600; color: #333;">
|
||
${ot(T)}
|
||
</h3>
|
||
<p style="margin: 4px 0; font-size: 14px;">
|
||
<strong>${ot(r("popup.country.wagfRegion"))}:</strong> ${ot(W)}
|
||
</p>
|
||
<p style="margin: 4px 0; font-size: 14px;">
|
||
<strong>${ot(r("popup.country.wagfBlock"))}:</strong> ${ot(ne)}
|
||
</p>
|
||
<p style="margin: 4px 0; font-size: 14px;">
|
||
<strong>${ot(r("popup.country.country"))}:</strong> ${ot(T)} (${ot(v)})
|
||
</p>
|
||
<p style="margin: 4px 0; font-size: 14px;">
|
||
<strong>${ot(r("popup.country.uupgCount"))}:</strong> ${ot(M)}
|
||
</p>
|
||
</div>
|
||
`}function g(b){const v=t();if(!v)return;const A=b||"language-family-pins";if(!v.getLayer(A))return;const T=w=>{try{const S=w.features[0],h=S.properties,M=S.geometry.coordinates.slice();for(;Math.abs(w.lngLat.lng-M[0])>180;)M[0]+=w.lngLat.lng>M[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(S),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new(Ur(v)).Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(M).setHTML(c(h)).addTo(v)}catch(S){console.error(` [${o}] Pin click handler error:`,S)}};v.on("click",A,T),l.value.push({event:"click",layer:A,handler:T})}function f(){const b=t();if(!b)return;const v="regions-fill";if(!b.getLayer(v))return;const A=T=>{const w=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const S of w)if(b.getLayer(S)){const h=b.queryRenderedFeatures(T.point,{layers:[S]});if(h&&h.length>0)return}if(T.features&&T.features.length>0){const S=T.features[0].properties;new(Ur(b)).Popup().setLngLat(T.lngLat).setHTML(u(S)).addTo(b)}};b.on("click",v,A),l.value.push({event:"click",layer:v,handler:A})}function k(){const b=t();if(!b)return;const v="clusters";if(!b.getLayer(v))return;const A=T=>{const w=b.queryRenderedFeatures(T.point,{layers:[v]});if(!w.length)return;const S=w[0].properties.cluster_id,h=w[0].source;b.getSource(h).getClusterExpansionZoom(S,(M,G)=>{M||b.easeTo({center:w[0].geometry.coordinates,zoom:G})})};b.on("click",v,A),l.value.push({event:"click",layer:v,handler:A})}function P(b){const v=t();if(!v||!v.getLayer(b))return;const A=()=>{v.getCanvas().style.cursor="pointer"},T=()=>{v.getCanvas().style.cursor=""};v.on("mouseenter",b,A),v.on("mouseleave",b,T),l.value.push({event:"mouseenter",layer:b,handler:A}),l.value.push({event:"mouseleave",layer:b,handler:T})}function y(){g(),P("language-family-pins"),g("language-family-pins-hitbox"),P("language-family-pins-hitbox"),k(),P("clusters")}function x(){f(),P("regions-fill")}function $(){const b=t();b&&(b.getLayer("language-family-pins")&&y(),b.getLayer("regions-fill")&&x(),b.getLayer("people-groups-pins")&&(g(),P("people-groups-pins")))}function m(){const b=t();if(b){for(const{event:v,layer:A,handler:T}of l.value)try{b.off(v,A,T)}catch{}l.value=[]}}return{attachAllEventHandlers:$,attachLanguageFamilyEvents:y,attachRegionEvents:x,attachPinClickHandler:g,attachRegionClickHandler:f,attachClusterClickHandler:k,attachCursorHandlers:P,detachAllEventHandlers:m,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Zr=[">",["to-number",["get","peoplePraying"],0],0],Xr={0:.25,8:.4,14:.5},mn={0:.1,8:.18,14:.22},bn={0:1.2,8:1.6,14:2},dp=["interpolate",["linear"],["zoom"],0,["case",Zr,Xr[0],mn[0]],8,["case",Zr,Xr[8],mn[8]],14,["case",Zr,Xr[14],mn[14]]],Y_=["interpolate",["linear"],["zoom"],0,bn[0],8,bn[8],14,bn[14]],gp=["==",["to-number",["get","peoplePraying"],0],0],Z_={prayer:[gp],prayerProgress:[gp],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function X_(e){const t=Z_[e]||[];if(!t.length)return Y_;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,mn[0],bn[0]],8,["case",o,mn[8],bn[8]],14,["case",o,mn[14],bn[14]]]}const J_=[[/ sign language$/i,"Sign Language"]];function Q_(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(tt[a])return tt[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(tt[s])return tt[s]}}if(tt[t])return tt[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&tt[n])return tt[n];for(const[a,s]of J_)if(a.test(t))return s;return null}function e$(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const J=t();return J?Oe(J):null},r=q_({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=ge({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=ge({});function c(J,re="languageFamily"){const oe=s();if(!oe||!(J!=null&&J.length))return;const ve=zr(re),_=J.map(E=>{var ee,Y,d,p,N,V,ue,ie,j,X,ye,Se,Be,nt,at,I,q,fe,_e;return{type:"Feature",properties:{uniqueId:E.id||E.uniqueId,slug:E.slug||((ee=E._normalized)==null?void 0:ee.slug)||"",rop3:E.rop3||E.peopleGroupId,peopleId3:E.peopleId3||"",name:E.name,language:E.language,languageFamily:E.languageFamily||((Y=E._normalized)==null?void 0:Y.languageFamily)||Q_(E.language)||"Unknown",affinityBlock:E.affinityBlock||E.affbloc||E.Affbloc||((d=E._normalized)==null?void 0:d.affinityBlock)||"Unknown",affinityBlockLabel:E.affinityBlockLabel||((p=E._normalized)==null?void 0:p.affinityBlockLabel)||"",cluster:E.cluster||((N=E._normalized)==null?void 0:N.cluster)||"",clusterLabel:E.clusterLabel||((V=E._normalized)==null?void 0:V.clusterLabel)||"",peopleGroup:E.peopleGroup||((ue=E._normalized)==null?void 0:ue.peopleGroup)||"",peopleGroupLabel:E.peopleGroupLabel||((ie=E._normalized)==null?void 0:ie.peopleGroupLabel)||"",doxaRegion:E.doxaRegion||((j=E._normalized)==null?void 0:j.doxaRegion)||"Unknown",wagfBlock:E.wagfBlock||((X=E._normalized)==null?void 0:X.wagfBlock)||"",wagfBlockLabel:E.wagfBlockLabel||((ye=E._normalized)==null?void 0:ye.wagfBlockLabel)||"",wagfRegionLabel:E.wagfRegionLabel||((Se=E._normalized)==null?void 0:Se.wagfRegionLabel)||"",country:E.country,countryIso:E.countryIso,countryIsoLabel:E.countryIsoLabel,countryName:E.countryName,religion:E.religion,religionCode:E.religionCode,religionLabel:E.religionLabel,religionName:E.religionName,population:E.population,status:E.status,description:E.description||"",imageUrl:E.imageUrl||"",peoplePraying:Number(E.peoplePraying??((Be=E._normalized)==null?void 0:Be.peoplePraying)??0),engagementStatus:E.engagementStatus===!0||E.engagementStatus===1||!1,adoptionStatus:E.adoptionStatus===!0||E.adoptionStatus===1||!1,bible:E.bible||((nt=E._normalized)==null?void 0:nt.bible)||"Not Available",jesusFilm:E.jesusFilm||((at=E._normalized)==null?void 0:at.jesusFilm)||"Not Available",radio:E.radio||((I=E._normalized)==null?void 0:I.radio)||"Not Available",gospel:E.gospel||((q=E._normalized)==null?void 0:q.gospel)||"Not Available",audio:E.audio||((fe=E._normalized)==null?void 0:fe.audio)||"Not Available",stories:E.stories||((_e=E._normalized)==null?void 0:_e.stories)||"Not Available",lng:parseFloat(E.longitude||E.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(E.longitude||E.lng),parseFloat(E.latitude||E.lat)]}}}).filter(E=>!isNaN(E.geometry.coordinates[0])&&!isNaN(E.geometry.coordinates[1])),R=.04,L=E=>`${E.geometry.coordinates[0]},${E.geometry.coordinates[1]}`,B=new Map;for(const E of _){const ee=L(E);B.has(ee)||B.set(ee,[]),B.get(ee).push(E)}for(const E of B.values()){if(E.length<2)continue;const[ee,Y]=E[0].geometry.coordinates,d=E.length;for(let p=0;p<d;p++){const N=2*Math.PI*p/d;E[p].geometry.coordinates=[ee+R*Math.cos(N),Y+R*Math.sin(N)]}}const H={type:"FeatureCollection",features:_};oe.addSource("language-families",{type:"geojson",data:H,promoteId:"uniqueId"}),oe.addLayer({id:"language-family-pins-shadow",type:"circle",source:"language-families",paint:{"circle-radius":Yr("standard"),"circle-color":"rgba(0,0,0,0.12)","circle-blur":.8,"circle-translate":[0,1],"circle-stroke-width":0,"circle-opacity":1}}),oe.addLayer({id:"language-family-pins",type:"circle",source:"language-families",paint:{"circle-radius":Yr("standard"),"circle-color":ve,...No(oe),"circle-stroke-width":dp,"circle-stroke-color":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),oe.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":Yr("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(J,re="doxa-regions"){const oe=s();if(!oe)return;oe.getLayer("regions-fill")&&oe.removeLayer("regions-fill"),oe.getLayer("regions-border")&&oe.removeLayer("regions-border"),oe.getSource("regions")&&oe.removeSource("regions");const ve={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},_="#cccccc",R=J&&J.isoToRegion?J.isoToRegion:{},L=[],B={};for(const[Y,d]of Object.entries(R)){const p=ve[String(d).toLowerCase()];p&&L.push(Y,p),B[d]||(B[d]=[]),B[d].push(Y)}l.value=B;const H=L.length?["match",["get","iso_3166_1_alpha_3"],...L,_]:_,E=oe.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":oe.getLayer("language-family-pins")?"language-family-pins":void 0,ee=(()=>{var Y,d,p;try{return!!((p=(d=(Y=oe.getContainer)==null?void 0:Y.call(oe))==null?void 0:d.classList)!=null&&p.contains("maplibregl-map"))}catch{return!1}})();ee?(oe.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${qr(null)}/boundaries/world-adm0.geojson`).then(Y=>Y.json()).then(Y=>{for(const p of Y.features||[])p.properties&&p.properties.iso3&&(p.properties.iso_3166_1_alpha_3=p.properties.iso3);const d=oe.getSource("regions");d&&d.setData(Y)}).catch(Y=>console.warn("[map-layers] region boundaries failed to load",Y))):oe.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),oe.addLayer({id:"regions-fill",type:"fill",source:"regions",...ee?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":H,"fill-opacity":re==="none"?.1:.7,"fill-antialias":!0,...No(oe,"fill"),"fill-opacity-transition":{duration:300}}},E),oe.addLayer({id:"regions-border",type:"line",source:"regions",...ee?{}:{"source-layer":"country_boundaries"},paint:{"line-color":H,"line-width":1,"line-opacity":.9,...No(oe,"line")}},E),i.value.regions=!0,r.attachRegionEvents()}function g(J,re){const oe=s();if(!oe||!J||!(re!=null&&re.length))return;f();const ve=re.filter(H=>{var ee;return(H.languageFamily||((ee=H._normalized)==null?void 0:ee.languageFamily)||"Unknown")===J});if(ve.length<2)return;const _=n(J),R=[],L=15,B=[...ve].sort((H,E)=>(H.longitude||H.lng)-(E.longitude||E.lng));for(let H=0;H<B.length;H++){const E=B[H],ee=E.longitude||E.lng,Y=E.latitude||E.lat;for(let d=H+1;d<Math.min(H+15,B.length);d++){const p=B[d],N=p.longitude||p.lng,V=p.latitude||p.lat;Math.sqrt(Math.pow(ee-N,2)+Math.pow(Y-V,2))<L&&R.push({type:"Feature",properties:{family:J},geometry:{type:"LineString",coordinates:[[ee,Y],[N,V]]}})}}oe.addSource("family-connections",{type:"geojson",data:{type:"FeatureCollection",features:R}}),oe.addLayer({id:"family-connection-lines",type:"line",source:"family-connections",paint:{"line-color":_,"line-width":.75,"line-opacity":.5,...No(oe,"line")}},"language-family-pins"),i.value.familyConnections=!0}function f(){const J=s();J&&(J.getLayer("family-connection-lines")&&J.removeLayer("family-connection-lines"),J.getSource("family-connections")&&J.removeSource("family-connections"),i.value.familyConnections=!1)}function k(J,re){const oe=s();if(!oe)return;const ve=oe.getSource(J);ve&&ve.setData(re)}function P(J,re=null){const oe=s();oe&&(oe.getLayer(J)&&oe.removeLayer(J),oe.getSource(re||J)&&oe.removeSource(re||J))}function y(J){const re=s();return re?!!re.getLayer(J):!1}function x(J,re,oe){const ve=s();!ve||!ve.getLayer(J)||ve.setPaintProperty(J,re,oe)}function $(){r.detachAllEventHandlers(),Ae()}let m=null,b=!1,v=0;const A="prayer-glow-base",T=4,w=[];for(let J=0;J<T;J++)w.push("prayer-glow-ring-"+J);const S=[A,...w],h=6,M=.3,G=2.5,ne=1e3/12,he={duration:0,delay:0};let K=!0,C=null;function D(){return["case",[">=",["get","peoplePraying"],Eo],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const z=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function O(J,re){const oe=["interpolate",["linear"],["zoom"]];for(let ve=0;ve<J.length;ve+=2)oe.push(J[ve],J[ve+1]*re);return oe}function U(){const J=s();if(!J||!J.getSource("language-families"))return;const re=[">",["get","peoplePraying"],0],oe=D();if(!S.every(_=>J.getLayer(_))){for(const _ of S)if(J.getLayer(_))try{J.removeLayer(_)}catch{}J.addLayer({id:A,type:"circle",source:"language-families",filter:re,paint:{"circle-radius":O(z,1),"circle-color":oe,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...No(J)}},"language-family-pins");for(const _ of w)J.addLayer({id:_,type:"circle",source:"language-families",filter:re,paint:{"circle-radius":O(z,1),"circle-radius-transition":he,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":oe,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":he,...No(J)}},"language-family-pins")}}function se(){const J=s();if(J)for(const re of S)J.getLayer(re)&&J.removeLayer(re)}function pe(J){const re=s();if(!re)return;const oe=[">",["get","peoplePraying"],0],ve=J?["all",oe,J]:oe;for(const _ of S)if(re.getLayer(_))try{re.setFilter(_,ve)}catch{}}function ke(){const J=s();if(J){if(U(),m&&(cancelAnimationFrame(m),m=null),b=!0,J.getLayer("language-family-pins"))try{J.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Eo],1,[">",["get","peoplePraying"],0],1,3])}catch{}Me(J),Ce()}}function Ce(){m&&(cancelAnimationFrame(m),m=null);const J=++v;let re=performance.now(),oe=-1/0;function ve(_){if(!b||J!==v)return;const R=s();if(!R||!S.some(B=>R.getLayer(B))){m=null;return}if(_-oe<ne||!K){m=requestAnimationFrame(ve);return}oe=_;const L=(_-re)/1e3;for(let B=0;B<T;B++){const H=w[B];if(!R.getLayer(H))continue;const E=B*(h/T),Y=((L-E)%h+h)%h/h,d=M+Y*(G-M),p=.5*(1-Y);try{R.setPaintProperty(H,"circle-radius",O(z,d)),R.setPaintProperty(H,"circle-stroke-opacity",p)}catch{}}m=requestAnimationFrame(ve)}m=requestAnimationFrame(ve)}function Me(J){if(C||typeof IntersectionObserver>"u")return;const re=typeof J.getContainer=="function"?J.getContainer():null;if(re)try{C=new IntersectionObserver(oe=>{for(const ve of oe)K=ve.isIntersecting},{threshold:0}),C.observe(re)}catch{C=null,K=!0}}function Ae(){if(C){try{C.disconnect()}catch{}C=null}K=!0}function we(){b=!1,m&&(cancelAnimationFrame(m),m=null),Ae();try{se();const J=s();J&&J.getLayer("language-family-pins")&&J.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:g,removeFamilyConnectionLines:f,updateLayerSource:k,removeLayer:P,hasLayer:y,setPaintProperty:x,mapEvents:r,startPrayerGlow:ke,stopPrayerGlow:we,syncGlowFilter:pe,cleanup:$}}const Qa="#1a1a1a",yo="selected-pin-highlight";function t$(e=Qa){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=`
|
||
<style>
|
||
/* Angled, brush-style pin: a slight tilt, a diagonal gradient and a stronger
|
||
drop-shadow give it a hand-drawn, "set down on the map" look without raster art. */
|
||
.map-go-pin-wrapper {
|
||
position: relative;
|
||
width: 32px;
|
||
height: 40px;
|
||
pointer-events: none;
|
||
overflow: visible;
|
||
}
|
||
.map-go-pin__svg {
|
||
position: relative;
|
||
width: 32px;
|
||
height: 40px;
|
||
filter: drop-shadow(2px 4px 3px rgba(0,0,0,0.4));
|
||
}
|
||
</style>
|
||
|
||
<svg
|
||
class="map-go-pin__svg"
|
||
viewBox="-2 -2 32 40"
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
aria-label="Selected people group"
|
||
>
|
||
<defs>
|
||
<linearGradient id="${o}" x1="0%" y1="0%" x2="100%" y2="100%">
|
||
<stop offset="0%" stop-color="${e}" stop-opacity="0.92"/>
|
||
<stop offset="55%" stop-color="${e}" stop-opacity="1"/>
|
||
<stop offset="100%" stop-color="#000" stop-opacity="0.85"/>
|
||
</linearGradient>
|
||
</defs>
|
||
<path
|
||
d="M14 1 C6.8 1 1 6.8 1 14 C1 24 14 35 14 35 C14 35 27 24 27 14 C27 6.8 21.2 1 14 1 Z"
|
||
fill="none" stroke="white" stroke-width="2" stroke-linejoin="round"
|
||
/>
|
||
<path
|
||
d="M14 1 C6.8 1 1 6.8 1 14 C1 24 14 35 14 35 C14 35 27 24 27 14 C27 6.8 21.2 1 14 1 Z"
|
||
fill="url(#${o})"
|
||
/>
|
||
</svg>
|
||
`,t}function o$(e={}){const{getMap:t=()=>null,getActivePinColor:o=null}=e,n=Ee("uiStore");let a=null,s=null;const r=o??Ee("getActivePinColor",null);let i=Qa;function l(){const y=t();y&&(y.getLayer(yo)||y.getSource("language-families")&&y.addLayer({id:yo,type:"circle",source:"language-families",paint:{"circle-radius":["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],"circle-color":i,...No(y),"circle-opacity":1,"circle-stroke-width":2,"circle-stroke-color":"#FFFFFF","circle-stroke-opacity":1},filter:["==",["get","uniqueId"],"__none__"]}))}function c(){a||(a=t$(Qa))}function u(y,x){const $=t();$&&(c(),s&&s.remove(),s=new(Ur($)).Marker({element:a,anchor:"bottom",offset:[0,0]}).setLngLat([y,x]).addTo($))}function g(){s&&(s.remove(),s=null)}function f(y){var A,T;const x=t();if(!x)return;if(y&&(i=(r==null?void 0:r(y.properties))??Qa),l(),x.getLayer(yo)&&(x.setPaintProperty(yo,"circle-color",i),ep(x)&&x.setPaintProperty(yo,"circle-emissive-strength",1)),!y){x.getLayer(yo)&&x.setFilter(yo,["==",["get","uniqueId"],"__none__"]),g();return}const $=((A=y.properties)==null?void 0:A.uniqueId)||"__none__",m=(T=y.geometry)==null?void 0:T.coordinates;if(!m)return;x.getLayer(yo)&&x.setFilter(yo,["==",["get","uniqueId"],$]);const[b,v]=m;u(b,v)}je(()=>n.selectedPeopleGroup,y=>{f(y)});function k(){l()}function P(){g(),a=null}return{initialize:k,cleanup:P,updateSelectedPin:f}}const Jr={};function Qr(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:qo&&qo.tagName.toUpperCase()==="SCRIPT"&&qo.src||new URL("doxa-simple-map.js",document.baseURI).href}<"u"&&(Jr==null?void 0:Jr.VITE_API_BASE_URL)||""}const ei={default:"doxa",lists:[{id:"doxa",aliases:["2000","project-2000"],label:"Project 2000: DOXA's people groups",source:"doxa",filter:null},{id:"unreached",aliases:["7000","project-7000"],label:"Project 7000: unreached people groups",definition:"IMB Lostness Priority 0-2 (Frontier, Pioneer or Expanding Unreached: under 2% evangelical)",source:"imb",filter:{lostness:[0,1,2]}},{id:"frontier",aliases:["4700","project-4700"],label:"Project 4700: frontier people groups",definition:"IMB Lostness Priority 0 (Frontier Unreached: 0.1% evangelical or less)",source:"imb",filter:{lostness:[0]}},{id:"frontier-500k",aliases:["700","project-700"],label:"Project 700: frontier people groups of 500,000 or more",definition:"IMB Lostness Priority 0 and Population of at least 500,000",source:"imb",filter:{lostness:[0],minPopulation:5e5}},{id:"unengaged",aliases:[],label:"Unengaged unreached people groups",definition:"IMB Lostness Priority 0-2 and Engagement Status Unengaged",source:"imb",filter:{lostness:[0,1,2],engagement:["Unengaged"]}}]},es=ei.default,ti=new Map;for(const e of ei.lists){ti.set(e.id,e);for(const t of e.aliases||[])ti.set(String(t).toLowerCase(),e)}function n$(e){return ti.get(String(e??"").toLowerCase().trim())||null}function fp(e){let t=e;if(t&&typeof t=="object"&&"value"in t&&!("list"in t)&&!("profile"in t)&&(t=t.value),typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return t&&typeof t=="object"?t:null}const hp=new Set;function a$(e){const t=fp(e),o=t==null?void 0:t.list,n=typeof location<"u"?new URLSearchParams(location.search).get("list"):null,a=typeof window<"u"?window.MAP_LIST:void 0,s=o||n||a||es,r=n$(s);return r?r.id:(hp.has(s)||(hp.add(s),console.warn(`[list] unknown people-group list "${s}", showing "${es}". Known: ${ei.lists.map(i=>i.id).join(", ")}`)),es)}const ts=new Map;function s$(e,t){const o=`${qr(fp(t))}/people-groups/lists/${e}.json`;return ts.has(o)||ts.set(o,fetch(o).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.json()}).then(n=>new Set(Array.isArray(n==null?void 0:n.slugs)?n.slugs:[])).catch(n=>{throw ts.delete(o),new Error(`list "${e}" membership ${o}: ${n.message}`)})),ts.get(o)}async function mp(e,t,{key:o=n=>n==null?void 0:n.slug}={}){const n=a$(t);if(n===es||!Array.isArray(e))return e;try{const a=await s$(n,t);return e.filter(s=>a.has(o(s)))}catch(a){return console.error(`[list] ${a.message}. Showing no people groups rather than the wrong list.`),[]}}class bp{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.profileConfig=t.profileConfig||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=fn,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;l<t.length;l++){const c=t[l],u=t[l+1];if(c==='"')s&&u==='"'?(a+='"',l++):s=!s;else if(c===","&&!s)r.push(a.trim()),a="";else if((c===`
|
||
`||c==="\r")&&!s){if(c==="\r"&&u===`
|
||
`&&l++,a||r.length>0){if(r.push(a.trim()),a="",i)n.push(...r),i=!1;else if(r.length>1){const g={};n.forEach((f,k)=>{g[f]=r[k]||""}),o.push(g)}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=await mp(Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.profileConfig),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=Qr(),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,g]of Object.entries(r))s.push(`${u}=${encodeURIComponent(g)}`);const i=`${o}${n}?${s.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const g=u.headers.get("content-type")||"";if(!g.includes("application/json"))throw new Error(`API returned "${g}" instead of JSON. Server at ${o} may be down or misconfigured.`);const f=await u.json();return this.rawData=await mp(Array.isArray(f)?f:f.posts||f.data||f.results||[],this.profileConfig),this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(g=>this.getFieldValue(n,g));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const 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)<n&&Math.abs(a.longitude-o)<n)}getByPeopleGroupId(t){return this.normalizedData.filter(o=>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 bp;const to={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0},oi=ge(0),os=ge(0),ns=ge(0),ni=ge(!1),ai=ge(!1),si=ge(null);let Jn=null;async function r$(){if(!ni.value)return Jn||(ai.value=!0,si.value=null,Jn=(async()=>{var e,t;try{const o=((e=fn==null?void 0:fn.sources)==null?void 0:e[fn.activeSource])||{},n=Qr(),a=((t=o.endpoints)==null?void 0:t.statistics)||"/api/people-groups/statistics",s=await fetch(`${n}${a}`,{cache:"no-store"});if(!s.ok)throw new Error(`statistics HTTP ${s.status}`);const r=await s.json();oi.value=Number(r.total||0),os.value=Number(r.total_with_prayer_committed??r.total_with_prayer??0),ns.value=Number(r.total_with_100_committed??r.total_with_full_prayer??0),ni.value=!0}catch(o){si.value=o&&o.message?o.message:String(o)}finally{ai.value=!1,Jn=null}})(),Jn)}function i$(){return{total:oi,withPrayer:os,withFullPrayer:ns,loaded:ni,loading:ai,error:si,load:r$,noPrayerCount:()=>Math.max(0,oi.value-os.value),hasPrayerCount:()=>Math.max(0,os.value-ns.value),fullPrayerCount:()=>ns.value}}function l$(e){return(e==null?void 0:e.properties)||e||{}}function as(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function c$(e){if(!e||typeof e!="string")return null;const t=e.split(",").map(n=>n.trim()).filter(Boolean);if(t.length>=2){const n=[...t].reverse().join(" ");if(tt[n])return tt[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(tt[a])return tt[a]}}if(tt[e])return tt[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&tt[o]?tt[o]:null}const u$=[[/ sign language$/i,"Sign Language"]];function p$(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function d$(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function g$(e){var r,i,l,c;const t=e.language_family??e.languageFamily??((r=e._raw)==null?void 0:r.LanguageFamily)??((i=e._raw)==null?void 0:i.language_family),o=as(t),n=Za(o);if(n&&n!=="Unknown")return n;const a=e.primary_language??e.primaryLanguage??((l=e._raw)==null?void 0:l.PrimaryLanguage)??((c=e._raw)==null?void 0:c.primary_language),s=as(a);if(s){const u=String(s).trim(),g=c$(u);if(g)return g;for(const[f,k]of u$)if(f.test(u))return k}return"Unknown"}function f$(e){var a,s;const t=((a=e._raw)==null?void 0:a.primary_language)??((s=e._raw)==null?void 0:s.PrimaryLanguage);if(t){const r=as(t);if(r)return String(r).trim()}const o=e.primary_language??e.primaryLanguage??e.language,n=as(o);return n&&String(n).trim()||"— Unknown —"}function h$(e){var o,n;const t=e.population??((o=e._raw)==null?void 0:o.Population)??((n=e._raw)==null?void 0:n.population)??0;return parseInt(t,10)||0}function m$(e,t){var o,n;return(e==null?void 0:e.id)??t.id??t.peopleGroupId??((o=t._raw)==null?void 0:o.PeopleID3)??((n=t._raw)==null?void 0:n.PeopleID)??null}function b$(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function y$(e,t){var a,s,r,i;const o=parseFloat(t.latitude??t.lat??((a=t._raw)==null?void 0:a.Latitude)??((s=t._raw)==null?void 0:s.latitude)),n=parseFloat(t.longitude??t.lng??((r=t._raw)==null?void 0:r.Longitude)??((i=t._raw)==null?void 0:i.longitude));return!isFinite(o)||!isFinite(n)?null:[n,o]}function _$(e,t){return t.peopleGroupCount!==e.peopleGroupCount?t.peopleGroupCount-e.peopleGroupCount:(t.population||0)-(e.population||0)}function ss(e,t){return(t.population||0)!==(e.population||0)?(t.population||0)-(e.population||0):t.peopleGroupCount-e.peopleGroupCount}function yp(e,t={}){t.aggregator;const o=Xo({});function n(y){return!!o[y]}function a(y){o[y]=!o[y]}function s(y){const x=new Set(Array.isArray(y)?y:[]);for(const $ of Object.keys(o))x.has($)||(o[$]=!1);for(const $ of x)o[$]=!0}const r=te(()=>{const y=(e==null?void 0:e.value)||[],x=new Map;for(const $ of y){const m=l$($),b=g$(m),v=f$(m),A=p$(v),T=d$(v),w=h$(m),S=m$($,m),h=b$($,m),M=y$($,m);let G=x.get(b);G||(G={key:b,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},x.set(b,G)),G.peopleGroupCount+=1,G.population+=w,S!=null&&G.pinIds.push(S),M&&G.coords.push(M),h&&!G.clusterId&&(G.clusterId=h);let W=G.languages.get(A);if(W||(W={key:A,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},G.languages.set(A,W)),W.peopleGroupCount+=1,W.population+=w,S!=null&&W.pinIds.push(S),M&&W.coords.push(M),h&&!W.clusterId&&(W.clusterId=h),T){let ne=W.dialects.get(T);ne?ne.originalLabels.add(v):(ne={key:T,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([v])},W.dialects.set(T,ne)),ne.peopleGroupCount+=1,ne.population+=w,S!=null&&ne.pinIds.push(S),M&&ne.coords.push(M)}}return x}),i=t.showAllKnown!==!1,l=te(()=>{const y=r.value,x=[],$=new Set;for(const m of y.values())x.push({key:m.key,label:m.key,color:It(m.key),peopleGroupCount:m.peopleGroupCount,population:m.population,kind:m.clusterId?"cluster":"family",clusterId:m.clusterId||void 0,pinIds:m.pinIds,coords:m.coords}),$.add(m.key);if(i)for(const m of Object.keys(Ru))$.has(m)||x.push({key:m,label:m,color:It(m),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return x.sort(_$),x});function c(y){const x=r.value.get(y);if(!x)return[];const $=[];for(const m of x.languages.values())$.push({key:`${y}__${m.key}`,label:m.key,color:It(y),peopleGroupCount:m.peopleGroupCount,population:m.population,kind:m.clusterId?"cluster":"language",familyKey:y,clusterId:m.clusterId||void 0,pinIds:m.pinIds,coords:m.coords,hasDialects:m.dialects.size>0});return $.sort(ss),$}function u(y){const x=y.indexOf("__");if(x<0)return[];const $=y.slice(0,x),m=y.slice(x+2),b=r.value.get($);if(!b)return[];const v=b.languages.get(m);if(!v)return[];const A=[];for(const T of v.dialects.values())A.push({key:`${y}__${T.key}`,label:`${m}, ${T.key}`,dialectOnly:T.key,color:It($),peopleGroupCount:T.peopleGroupCount,population:T.population,kind:"dialect",languageKey:m,familyKey:$,pinIds:T.pinIds,coords:T.coords,originalLabels:Array.from(T.originalLabels)});return A.sort(ss),A}const g=te(()=>{const y=r.value,x=[];for(const $ of y.values())for(const m of $.languages.values())x.push({key:`${$.key}__${m.key}`,label:m.key,color:It($.key),peopleGroupCount:m.peopleGroupCount,population:m.population,kind:m.clusterId?"cluster":"language",familyKey:$.key,clusterId:m.clusterId||void 0,pinIds:m.pinIds,coords:m.coords,hasDialects:m.dialects.size>0});return x.sort(ss),x}),f=te(()=>{const y=r.value,x=[];for(const $ of y.values())for(const m of $.languages.values())for(const b of m.dialects.values())x.push({key:`${$.key}__${m.key}__${b.key}`,label:`${m.key}, ${b.key}`,dialectOnly:b.key,color:It($.key),peopleGroupCount:b.peopleGroupCount,population:b.population,kind:"dialect",languageKey:m.key,familyKey:$.key,pinIds:b.pinIds,coords:b.coords,originalLabels:Array.from(b.originalLabels)});return x.sort(ss),x});function k(y){let x=y;if(typeof y=="string"&&(x=l.value.find(m=>m.key===y),!x))return;const $={kind:x.kind,pinIds:x.pinIds||[],coords:x.coords||[]};x.kind==="family"&&($.familyKey=x.label),x.kind==="language"&&($.languageKey=x.label,$.familyKey=x.familyKey),x.kind==="dialect"&&($.dialectKey=x.key,$.dialectOnly=x.dialectOnly||x.label,$.languageKey=x.languageKey,$.familyKey=x.familyKey,$.originalLabels=x.originalLabels||[]),x.kind==="cluster"&&($.clusterId=x.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:$}))}const P=te(()=>{const y=r.value,x=[];for(const $ of y.values()){const m=It($.key),b=[];for(const A of $.languages.values()){A.key&&A.key!=="— Unknown —"&&b.push(A.key);for(const T of A.dialects.values())for(const w of T.originalLabels)w&&b.push(w)}const v={id:`fam:${$.key}`,label:$.key,color:m,count:$.peopleGroupCount,pop:$.population,filter:b.length>0?["any",["==",["get","languageFamily"],$.key],["in",["get","language"],["literal",Array.from(new Set(b))]]]:["==",["get","languageFamily"],$.key],children:[]};for(const A of $.languages.values()){const T=A.key,w={id:`lang:${$.key}__${T}`,label:T,color:m,count:A.peopleGroupCount,pop:A.population,filter:["any",["==",["get","language"],T],["==",["slice",["get","language"],0,T.length+1],T+","],["in"," "+T,["get","language"]]],children:[]};for(const S of A.dialects.values()){const h=Array.from(S.originalLabels);w.children.push({id:`dial:${$.key}__${T}__${S.key}`,label:`${T}, ${S.key}`,color:m,count:S.peopleGroupCount,pop:S.population,filter:h.length===1?["==",["get","language"],h[0]]:["in",["get","language"],["literal",h]],originalLabels:h,children:[]})}v.children.push(w)}x.push(v)}return x.sort(($,m)=>m.pop-$.pop||m.count-$.count),x});return{rows:l,languageRows:g,dialectRows:f,langTree:P,toggle:a,isExpanded:n,setExpansionToOnly:s,childRowsFor:c,dialectRowsFor:u,highlight:k}}const $$=[];function v$(){const e=Ko(rt.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function w$(){const e=Ko(rt.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function k$(){const e=Ko(rt.AFFINITY_BLOCK);if(!e||e.propertyKey!=="affinityBlock")return{};const t=e.names||{},o=e.palette||{},n={};for(const a of Object.keys(t))n[t[a]]=o[a]||"#999";return n}function Vo(e,t){const a=Object.values(e.sources||{}).flatMap(s=>(s==null?void 0:s.features)||[]).filter(s=>t(s.properties||s));return{count:a.length,population:a.reduce((s,r)=>{var l;const i=r.properties||r;return s+(parseInt(i.population||((l=i._raw)==null?void 0:l.Population)||0)||0)},0)}}const _p=100;function x$(e){var o;let t=(e==null?void 0:e.peopleCommitted)??((o=e==null?void 0:e._raw)==null?void 0:o.people_committed)??(e==null?void 0:e.people_committed)??null;return t&&typeof t=="object"&&(t=t.value??t.label??0),Number(t)||0}function ri(e){return t=>{const o=x$(t);return e==="fullPrayer"?o>=_p:e==="hasPrayer"?o>0&&o<_p:o<=0}}function $p(e){var o;const t=e.engagementStatus??((o=e._raw)==null?void 0:o.people_committed);return t===!0||t===1||t==="1"||t==="true"||typeof t=="number"&&t>0||typeof t=="string"&&parseInt(t,10)>0}function vp(e){var o;const t=e.adoptionStatus??((o=e._raw)==null?void 0:o.adopted_by_churches);return t===!0||t===1||t==="1"||t==="true"||typeof t=="number"&&t>0||typeof t=="string"&&parseInt(t,10)>0}const A$={prayer:"legend.title.prayer",engagement:"legend.title.engagement",adoption:"legend.title.adoption","language-families":"legend.title.languageFamilies","language-family":"legend.title.languageFamilies","doxa-regions":"legend.title.doxaRegions","doxa-region":"legend.title.doxaRegions","affinity-blocs":"legend.title.affinityBlocs",countries:"legend.title.countries",country:"legend.title.countries","gospel-resources":"legend.title.gospelResources",religion:"legend.title.religion"};function yn(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function S$(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function P$(e){return(Number(e)||0).toLocaleString()}function ii(e,t={}){const o=Ee("dataStore"),n=Ee("uiStore"),a=Ee("mapStore"),{t:s}=ut(),r=i$();r.load();const i=te(()=>{if(yn(e.value)==="religion")return"Religion";const $=A$[e.value];return $?s($):""}),l=te(()=>yn(e.value)==="affinity-blocs"?$$:[{key:"count",label:s("legend.columns.upgs"),width:48},{key:"population",label:s("legend.columns.population"),width:48}]),c=te(()=>{const x=yn(e.value);return x==="prayer"?n.prayerFilter:x==="engagement"?n.engagementFilter:x==="adoption"?n.adoptionFilter:x==="language-families"?a.selectedFamily:x==="doxa-regions"?a.selectedRegion:x==="gospel-resources"?a.selectedResource:x==="religion"?n.religionFilter:null});function u(x){const $=yn(e.value);$==="prayer"?n.setPrayerFilter(n.prayerFilter===x?null:x):$==="engagement"?n.setEngagementFilter(n.engagementFilter===x?null:x):$==="adoption"?n.setAdoptionFilter(n.adoptionFilter===x?null:x):$==="language-families"?a.selectFamily(a.selectedFamily===x?null:x):$==="doxa-regions"?a.selectRegion(a.selectedRegion===x?null:x):$==="gospel-resources"?a.selectResource(a.selectedResource===x?null:x):$==="religion"&&n.setReligionFilter(n.religionFilter===x?null:x)}const g=te(()=>{var $,m,b,v;const x=yn(e.value);if(x==="prayer"){const A=Vo(o,ri("noPrayer")),T=Vo(o,ri("hasPrayer")),w=Vo(o,ri("fullPrayer")),S=r.loaded.value,h=S?r.noPrayerCount():A.count,M=S?r.hasPrayerCount():T.count,G=S?r.fullPrayerCount():w.count;return[{key:"noPrayer",label:s("legend.prayer.needsPrayer"),color:Ho.noPrayer,count:h,population:A.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:s("legend.prayer.hasPrayer"),color:Ho.hasPrayer,count:M,population:T.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:s("legend.prayer.fullPrayerCoverage"),color:Ho.fullPrayer,count:G,population:w.population,filterKey:"fullPrayer"}]}]}if(x==="engagement"){const A=Vo(o,w=>!$p(w)),T=Vo(o,w=>$p(w));return[{key:"notEngaged",label:s("legend.engagement.needsEngagement"),color:Pr.notEngaged,count:A.count,population:A.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:s("legend.engagement.hasEngagement"),color:Pr.hasEngagement,count:T.count,population:T.population,filterKey:"hasEngagement"}]}]}if(x==="adoption"){const A=Vo(o,w=>!vp(w)),T=Vo(o,w=>vp(w));return[{key:"notAdopted",label:s("legend.adoption.needsAdoption"),color:xr.notAdopted,count:A.count,population:A.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:s("legend.adoption.hasAdoption"),color:xr.hasAdoption,count:T.count,population:T.population,filterKey:"hasAdoption"}]}]}if(x==="religion"){const A={},w=Object.values(o.sources||{}).flatMap(M=>(M==null?void 0:M.features)||[]);for(const M of w){const G=M.properties||M,W=G.religion||((m=($=G._raw)==null?void 0:$.religion)==null?void 0:m.value)||((b=G._raw)==null?void 0:b.religion)||"",ne=Ir(W);A[ne]||(A[ne]={count:0,population:0}),A[ne].count+=1,A[ne].population+=parseInt(G.population||((v=G._raw)==null?void 0:v.Population)||0)||0}const S=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const M of S)delete A[M];return Object.keys(A).sort((M,G)=>M==="C"?-1:G==="C"?1:A[G].population-A[M].population).map(M=>({key:M,label:Ja[M]||"Unknown",color:Rt[M]||"#94a3b8",count:A[M].count,population:A[M].population,filterKey:M,children:[]}))}if(x==="language-families")return(o.languageFamiliesData||[]).map(A=>({key:A.name,label:A.name,color:It(A.name),count:A.count,population:A.population,filterKey:A.name,children:[]}));if(x==="language-family"){const T={value:Object.values(o.sources||{}).flatMap(S=>(S==null?void 0:S.features)||[])},{rows:w}=yp(T);return w.value.map(S=>({key:S.key,label:S.label,color:S.color,count:S.peopleGroupCount,population:S.population,filterKey:S.key,children:[]}))}if(x==="doxa-regions"){const A=w$();return(o.doxaRegionsData||[]).map(T=>({key:T.name,label:T.name,color:A[T.name]||"#999",count:T.count,population:T.population,filterKey:T.name,children:[]}))}if(x==="gospel-resources"){const A=v$(),T=(A==null?void 0:A.palette)??{},w=(A==null?void 0:A.names)??{},S=o.resourcesData||[];return Object.keys(T).map(h=>{const M=S.find(G=>G.key===h);return{key:h,label:w[h]||h,color:T[h],count:(M==null?void 0:M.count)||0,population:(M==null?void 0:M.population)||0,filterKey:h,children:((M==null?void 0:M.children)||[]).map(G=>({key:G.key,label:G.name||G.key,color:G.color||T[h],count:G.count||0,population:G.population||0,filterKey:G.key}))}})}if(x==="affinity-blocs"){const A=k$();return Object.keys(A).sort().map(T=>({key:T,label:T,color:A[T],filterKey:T,children:[]}))}return[]});function f(x,$){return x.reduce((m,b)=>{var A;let v=b[$]||0;return(A=b.children)!=null&&A.length&&(v+=f(b.children,$)),m+v},0)}const k=te(()=>f(g.value,"count")),P=te(()=>f(g.value,"population")),y=te(()=>{if(yn(e.value)!=="prayer")return null;const x=g.value[0];if(!x)return null;const $=(x.children||[]).find(w=>w.key==="hasPrayer"),m=(x.children||[]).find(w=>w.key==="fullPrayer"),b=Number(x.count)||0,v=Number($==null?void 0:$.count)||0,A=Number(m==null?void 0:m.count)||0,T=(Number($==null?void 0:$.population)||0)+(Number(m==null?void 0:m.population)||0);return{covered:v+A,total:k.value,coveredPopulation:T,totalPopulation:P.value,segments:[{key:"fullPrayer",label:(m==null?void 0:m.label)??s("legend.prayer.fullPrayerCoverage"),count:A,color:Ho.fullPrayer},{key:"hasPrayer",label:($==null?void 0:$.label)??s("legend.prayer.hasPrayer"),count:v,color:Ho.hasPrayer},{key:"noPrayer",label:x.label,count:b,color:Ho.noPrayer}]}});return{items:g,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:k,totalPopulation:P,progress:y,fmtPop:S$,fmtCount:P$}}const L$="",T$=["data-covered","data-total","data-pct"],C$={class:"lpb-track"},E$=["data-span-pct"],R$=["data-seg","data-count","aria-label","onMouseenter","onFocus","onClick"],N$=["data-seg","data-count","aria-label"],M$=["aria-valuenow","aria-valuemax","aria-valuetext","aria-label","title"],wp=To({__name:"LegendProgressBar",props:{covered:{type:Number,default:0},total:{type:Number,default:0},segments:{type:Array,default:()=>[]},isDark:{type:Boolean,default:!1},label:{type:String,default:""},fmtCount:{type:Function,default:e=>(Number(e)||0).toLocaleString()},compact:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},showText:{type:Boolean,default:!0}},emits:["select-segment"],setup(e,{emit:t}){const{t:o}=ut();Ft(`
|
||
.lpb{position:relative;display:flex;align-items:center;gap:8px;min-width:0;width:100%;box-sizing:border-box;}
|
||
.lpb-track{position:relative;flex:1 1 auto;min-width:60px;display:flex;height:10px;border-radius:5px;overflow:hidden;background:rgba(110,118,129,0.25);}
|
||
.lpb-span{display:flex;height:100%;min-width:0;flex:0 0 auto;}
|
||
.lpb-seg{appearance:none;-webkit-appearance:none;border:none;margin:0;padding:0;height:100%;display:block;flex:0 0 auto;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;transition:filter 0.12s,box-shadow 0.12s;}
|
||
.lpb-seg-rest{flex:1 1 auto;}
|
||
.lpb-seg:focus{outline:none;}
|
||
.lpb-seg:hover,.lpb-seg:focus-visible,.lpb-seg.active{filter:brightness(1.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,0.65);}
|
||
.lpb-light .lpb-seg:hover,.lpb-light .lpb-seg:focus-visible,.lpb-light .lpb-seg.active{box-shadow:inset 0 0 0 1px rgba(0,0,0,0.35);}
|
||
.lpb-text{flex:0 0 auto;font:600 10px ui-monospace,monospace;letter-spacing:0.02em;color:#8b949e;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1;}
|
||
.lpb-light .lpb-text{color:#57606a;}
|
||
.lpb-stacked{flex-direction:column;align-items:stretch;gap:6px;}
|
||
.lpb-stacked .lpb-text{order:1;text-align:center;font-size:12px;letter-spacing:0.03em;}
|
||
.lpb-stacked .lpb-track{order:2;width:100%;}
|
||
.lpb-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:10;padding:7px 10px;background:#0d1117;border:1px solid #30363d;border-radius:6px;font:11px system-ui;color:#c9d1d9;line-height:1.45;white-space:nowrap;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,0.5);}
|
||
.lpb-light .lpb-pop{background:#f6f8fa;border-color:#d0d7de;color:#1f2328;box-shadow:0 8px 24px rgba(31,35,40,0.18);}
|
||
.lpb-pop-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-shadow:0 0 0 1px rgba(0,0,0,0.4);}
|
||
.legend-mobile-sheet.collapsed .lpb{display:none!important;}
|
||
`,"legend-progress-bar");const n=e,a=t,s=te(()=>n.total>0?Math.round(n.covered/n.total*100):0),r=te(()=>n.total>0?Math.min(100,Math.max(0,n.covered/n.total*100)):0),i=te(()=>n.segments.slice(0,-1)),l=te(()=>n.segments.length?n.segments[n.segments.length-1]:null);function c(w){return n.covered>0?Math.min(100,Math.max(0,(w.count||0)/n.covered*100)):0}function u(w){return n.total>0?Math.round((w.count||0)/n.total*100):0}const g=te(()=>n.label||o("legend.progress.covered",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:s.value})),f=te(()=>o("legend.progress.short",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:s.value}));function k(w){return o("legend.progress.segment",{label:w.label,count:n.fmtCount(w.count||0),pct:u(w)})}const P=ge(null),y=ge(null),x={},$=ge(null),m=ge(0),b=te(()=>n.segments.find(w=>w.key===$.value)||null);function v(w,S){S?x[w]=S:delete x[w]}async function A(w){$.value=w,await vo();const S=P.value,h=x[w],M=y.value;if(!S||!h||!M)return;const G=S.getBoundingClientRect(),W=h.getBoundingClientRect(),ne=Math.max(0,G.width-M.offsetWidth);m.value=Math.min(Math.max(0,W.left-G.left),ne)}function T(){$.value=null}return(w,S)=>(Q(),ae("div",{ref_key:"rootEl",ref:P,class:Fe(["lpb",[e.isDark?"lpb-dark":"lpb-light",{"lpb-stacked":e.stacked}]]),"data-covered":e.covered,"data-total":e.total,"data-pct":s.value,onMouseleave:T},[F("div",C$,[F("span",{class:"lpb-span",style:st({width:r.value+"%"}),"data-span-pct":r.value.toFixed(2)},[(Q(!0),ae(Ge,null,Ct(i.value,h=>(Q(),ae("button",{key:h.key,type:"button",class:Fe(["lpb-seg",{active:$.value===h.key}]),style:st({width:c(h)+"%",background:h.color}),"data-seg":h.key,"data-count":h.count||0,"aria-label":k(h),ref_for:!0,ref:M=>v(h.key,M),onMouseenter:M=>A(h.key),onFocus:M=>A(h.key),onBlur:T,onClick:ht(M=>a("select-segment",h.key),["stop"])},null,46,R$))),128))],12,E$),l.value?(Q(),ae("button",{key:0,type:"button",class:Fe(["lpb-seg lpb-seg-rest",{active:$.value===l.value.key}]),style:st({background:l.value.color}),"data-seg":l.value.key,"data-count":l.value.count||0,"aria-label":k(l.value),ref:h=>v(l.value.key,h),onMouseenter:S[0]||(S[0]=h=>A(l.value.key)),onFocus:S[1]||(S[1]=h=>A(l.value.key)),onBlur:T,onClick:S[2]||(S[2]=ht(h=>a("select-segment",l.value.key),["stop"]))},null,46,N$)):$e("",!0)]),e.showText?(Q(),ae("span",{key:0,class:"lpb-text",role:"progressbar","aria-valuenow":e.covered,"aria-valuemin":"0","aria-valuemax":e.total,"aria-valuetext":f.value,"aria-label":g.value,title:g.value},be(e.compact?s.value+"%":f.value),9,M$)):$e("",!0),b.value?(Q(),ae("div",{key:1,ref_key:"popEl",ref:y,class:"lpb-pop",role:"tooltip",style:st({left:m.value+"px"})},[F("span",{class:"lpb-pop-dot",style:st({background:b.value.color})},null,4),ft(be(k(b.value)),1)],4)):$e("",!0)],42,T$))}},[["styles",[L$]],["__scopeId","data-v-d3d146ef"]]),F$="",I$={key:0,class:"lrg-title-row"},O$={class:"lrg-title-caret-slot"},D$={class:"lrg-title"},G$=["data-lrg-filter-key"],B$=["onClick"],j$={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},z$=["onClick"],U$={class:"lrg-name"},H$={class:"lrg-badge-inner"},K$=["data-lrg-filter-key"],V$=["onClick"],W$={class:"lrg-name"},q$={class:"lrg-badge-inner"},Y$={key:1,class:"lrg-footer"},Z$={class:"lrg-footer-label"},kp=To({__name:"LegendRows",props:{title:{type:String,default:""},items:{type:Array,required:!0},columns:{type:Array,default:()=>[]},activeFilter:{type:String,default:null},isDark:{type:Boolean,default:!1},hideColumnHeader:{type:Boolean,default:!1},showFooter:{type:Boolean,default:!1},totalCount:{type:Number,default:0},totalPopulation:{type:Number,default:0},fmtPop:{type:Function,default:e=>String(e||0)},fmtCount:{type:Function,default:e=>String(e||0)},disableCollapse:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["filter-click"],setup(e){const{t}=ut();Ft(`
|
||
.legend-row-group{--lrg-caret-col:30px;display:flex;flex-direction:column;height:100%;min-height:0;}
|
||
.lrg-items{display:grid;grid-template-columns:var(--lrg-grid-cols, var(--lrg-caret-col) minmax(80px,1fr) auto auto var(--lrg-caret-col));grid-auto-rows:auto;align-content:start;column-gap:6px;row-gap:6px;padding:0 0 12px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none;}
|
||
.lrg-items::-webkit-scrollbar{display:none;width:0;height:0;}
|
||
.lrg-title-row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:center;padding:12px 0 6px;position:sticky;top:0;z-index:5;background:#fff;}
|
||
.lrg-dark .lrg-title-row{background:#3b463d;}
|
||
.lrg-title-caret-slot{grid-column:1;align-self:center;display:flex;align-items:center;justify-content:center;line-height:1;}
|
||
.lrg-title{grid-column:2;align-self:center;font-weight:600;font-size:13px;line-height:1.2;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
||
.lrg-header-col{align-self:center;text-align:center;white-space:nowrap;font-size:10px;line-height:1.3;color:#888;text-transform:uppercase;letter-spacing:0.3px;font-weight:700;}
|
||
.lrg-progress{grid-column:2 / -2;margin-top:6px;}
|
||
.lrg-row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:center;}
|
||
.lrg-row-child{margin-left:0;}
|
||
.lrg-item{display:contents;cursor:pointer;}
|
||
.lrg-item-inner{display:grid;grid-template-columns:subgrid;grid-column:2 / -2;align-items:center;border-radius:6px;min-height:36px;padding:6px 0;transition:opacity 0.15s ease;}
|
||
.lrg-item-inner:hover{opacity:0.92;}
|
||
.lrg-item.selected .lrg-item-inner{outline:2px solid rgba(0,0,0,0.25);outline-offset:-2px;}
|
||
.lrg-caret{grid-column:1;justify-self:center;align-self:center;width:10px;height:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;background:none;border:none;padding:0;transition:transform 0.2s ease;outline:none;-webkit-tap-highlight-color:transparent;opacity:0.85;}
|
||
.lrg-caret:focus{outline:none;}
|
||
.lrg-caret.expanded{transform:rotate(90deg);}
|
||
.lrg-caret-placeholder{grid-column:1;display:block;}
|
||
.lrg-name{grid-column:1;padding:0 0 0 8px;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
||
.lrg-badge{display:flex;align-items:center;justify-content:center;}
|
||
.lrg-badge-inner{display:inline-block;background:color-mix(in srgb, var(--lrg-item-color, #888), #000 28%);border-radius:8px;padding:2px 10px;font-size:11px;font-weight:600;font-family:'Courier New',monospace;white-space:nowrap;min-width:32px;text-align:center;}
|
||
.lrg-footer{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:center;padding:5px 0;border-top:1px solid rgba(0,0,0,0.07);font-size:11px;font-weight:600;color:#555;background:#fff;position:sticky;bottom:0;}
|
||
.lrg-footer-caret-slot{grid-column:1;}
|
||
.lrg-footer-label{grid-column:2;color:#777;}
|
||
.lrg-footer-value{text-align:center;font-family:'Courier New',monospace;}
|
||
.lrg-light .lrg-name{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,0.35);}
|
||
.lrg-light .lrg-badge-inner{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,0.4);}
|
||
.lrg-light .lrg-caret{color:#666;}
|
||
.lrg-dark .lrg-name{color:#F3F3F1;text-shadow:0 1px 2px rgba(0,0,0,0.4);}
|
||
.lrg-dark .lrg-badge-inner{color:#F3F3F1;text-shadow:0 1px 2px rgba(0,0,0,0.4);}
|
||
.lrg-dark .lrg-caret{color:rgba(243,243,241,0.75);}
|
||
.lrg-dark .lrg-title{color:#F3F3F1;}
|
||
.lrg-dark .lrg-header-col{color:rgba(243,243,241,0.65);}
|
||
.lrg-dark .lrg-footer{background:#2a332a;border-top-color:rgba(255,255,255,0.1);color:rgba(243,243,241,0.75);}
|
||
.lrg-dark .lrg-footer-label{color:rgba(243,243,241,0.65);}
|
||
`,"legend-row-group");const o=e,n=Ee("legendProgress",null),a=te(()=>o.progress??ce(n)??null),s=te(()=>a.value?t("legend.progress.title"):o.title),r=ge(null);function i(f){let k=f.parentElement;for(;k;){const P=getComputedStyle(k).overflowY;if((P==="auto"||P==="scroll")&&k.scrollHeight>k.clientHeight+1){const y=f.getBoundingClientRect(),x=k.getBoundingClientRect();k.scrollTop+=y.top-x.top-8}k=k.parentElement}}let l=0;je(()=>o.activeFilter,async f=>{if(!f)return;const k=++l,P=r.value;if(!P)return;await vo();const y=(x=0)=>{if(k!==l)return;const $=P.querySelector(`[data-lrg-filter-key="${CSS.escape(String(f))}"]`);$&&i($),x<6&&setTimeout(()=>y(x+1),70)};y(0)});const c=Xo({});function u(f){c[f]=!c[f]}const g=te(()=>`var(--lrg-caret-col) minmax(80px, 1fr) ${o.columns.map(()=>"auto").join(" ")} var(--lrg-caret-col)`);return(f,k)=>(Q(),ae("div",{class:Fe(["legend-row-group",e.isDark?"lrg-dark":"lrg-light"])},[F("div",{class:"lrg-items",style:st({"--lrg-grid-cols":g.value}),ref_key:"itemsContainer",ref:r},[!e.hideColumnHeader&&(e.title||e.columns.length)?(Q(),ae("div",I$,[F("span",O$,[Nn(f.$slots,"title-caret",{},void 0,!0)]),F("span",D$,be(s.value),1),(Q(!0),ae(Ge,null,Ct(e.columns,P=>(Q(),ae("span",{key:P.key,class:"lrg-header-col"},be(P.label),1))),128)),a.value?(Q(),Ze(wp,{key:0,class:"lrg-progress",covered:a.value.covered,total:a.value.total,segments:a.value.segments,"is-dark":e.isDark,"fmt-count":e.fmtCount,onSelectSegment:k[0]||(k[0]=P=>f.$emit("filter-click",P))},null,8,["covered","total","segments","is-dark","fmt-count"])):$e("",!0)])):$e("",!0),(Q(!0),ae(Ge,null,Ct(e.items,P=>(Q(),ae(Ge,{key:P.key},[F("div",{class:"lrg-row","data-lrg-filter-key":P.filterKey},[P.children&&P.children.length&&!e.disableCollapse?(Q(),ae("button",{key:0,class:Fe(["lrg-caret",{expanded:!c[P.key]}]),onClick:ht(y=>u(P.key),["stop"]),"aria-label":"Toggle children"},[...k[1]||(k[1]=[F("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,B$)):(Q(),ae("span",j$)),F("div",{class:Fe(["lrg-item",{selected:e.activeFilter===P.filterKey}]),onClick:y=>f.$emit("filter-click",P.filterKey)},[F("div",{class:"lrg-item-inner",style:st({backgroundColor:P.color,"--lrg-item-color":P.color})},[F("span",U$,be(P.label),1),(Q(!0),ae(Ge,null,Ct(e.columns,y=>(Q(),ae("span",{key:y.key,class:"lrg-badge"},[F("span",H$,be(y.key==="population"?e.fmtPop(P.population):e.fmtCount(P.count)),1)]))),128))],4)],10,z$)],8,G$),P.children&&P.children.length&&!c[P.key]?(Q(!0),ae(Ge,{key:0},Ct(P.children,y=>(Q(),ae("div",{key:y.key,class:"lrg-row lrg-row-child","data-lrg-filter-key":y.filterKey},[k[2]||(k[2]=F("span",{class:"lrg-caret-placeholder","aria-hidden":"true"},null,-1)),F("div",{class:Fe(["lrg-item",{selected:e.activeFilter===y.filterKey}]),onClick:x=>f.$emit("filter-click",y.filterKey)},[F("div",{class:"lrg-item-inner",style:st({backgroundColor:y.color,"--lrg-item-color":y.color})},[F("span",W$,be(y.label),1),(Q(!0),ae(Ge,null,Ct(e.columns,x=>(Q(),ae("span",{key:x.key,class:"lrg-badge"},[F("span",q$,be(x.key==="population"?e.fmtPop(y.population):e.fmtCount(y.count)),1)]))),128))],4)],10,V$)],8,K$))),128)):$e("",!0)],64))),128)),e.columns.length&&e.showFooter?(Q(),ae("div",Y$,[k[3]||(k[3]=F("span",{class:"lrg-footer-caret-slot","aria-hidden":"true"},null,-1)),F("span",Z$,be(ce(t)("legend.footer.total")),1),(Q(!0),ae(Ge,null,Ct(e.columns,P=>(Q(),ae("span",{key:P.key,class:"lrg-footer-value"},be(P.key==="population"?e.fmtPop(e.totalPopulation):e.fmtCount(e.totalCount)),1))),128))])):$e("",!0)],4)],2))}},[["styles",[F$]],["__scopeId","data-v-312ae807"]]),xp=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"];function Ap(e){const t=(e||"U")[0].toUpperCase(),o=t.charCodeAt(0)%xp.length,n=xp[o];return{letter:t,color:"#ffffff",backgroundColor:n}}function X$(e,t={}){const{size:o=32,borderRadius:n=4}=t,a=Ap(e);return{width:`${o}px`,height:`${o}px`,borderRadius:`${n}px`,backgroundColor:a.backgroundColor,color:a.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"600",fontSize:`${Math.floor(o*.5)}px`,flexShrink:"0"}}const J$=".people-group-detail[data-v-06241c48]{display:flex;flex-direction:column;height:100%;overflow-y:auto}.detail-header[data-v-06241c48]{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:#fff;position:sticky;top:0;z-index:10}.header-left[data-v-06241c48]{display:flex;gap:12px;align-items:center;flex:1;min-width:0}.header-text[data-v-06241c48]{flex:1;min-width:0}.people-group-name[data-v-06241c48]{margin:0;font-size:18px;font-weight:700;color:#333;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text}.people-group-subtitle[data-v-06241c48]{margin:4px 0 0;font-size:13px;color:#666;line-height:1.2}.close-button[data-v-06241c48]{background:none;border:none;padding:4px;cursor:pointer;color:#666;transition:color .2s ease;flex-shrink:0}.close-button[data-v-06241c48]:hover{color:#333}.detail-content[data-v-06241c48]{padding:6px 12px 12px;flex:1;overflow-y:auto}.quick-stats[data-v-06241c48]{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.stat-item[data-v-06241c48]{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.stat-label[data-v-06241c48]{color:#666;font-weight:500}.stat-value[data-v-06241c48]{color:#333;font-weight:600;text-align:right}.action-buttons[data-v-06241c48]{display:flex;gap:8px;padding-top:4px;margin-bottom:10px;overflow-x:auto;padding-bottom:2px}.action-btn[data-v-06241c48]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.action-btn.primary[data-v-06241c48]{background:#92b195;color:#fff}.action-btn.primary[data-v-06241c48]:hover{background:#73a17f;box-shadow:0 2px 4px #92b1954d}.action-btn.secondary[data-v-06241c48]{background:#ecf0f1;color:#333}.action-btn.secondary[data-v-06241c48]:hover{background:#d5dbdb}.btn-icon[data-v-06241c48]{flex-shrink:0}.image-container[data-v-06241c48]{margin-bottom:16px;border-radius:8px;overflow:hidden;background:#f5f5f5}.image-container.position-above[data-v-06241c48]{width:120px;height:150px;margin:0 auto 16px}.image-container.position-inside[data-v-06241c48]{width:200px;height:250px;margin:0 auto 16px}.people-group-image[data-v-06241c48]{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease}.people-group-image.loaded[data-v-06241c48]{opacity:1}.image-placeholder-svg[data-v-06241c48]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f0f0f0;transition:opacity .3s ease}.image-placeholder-svg.hidden[data-v-06241c48]{opacity:0;pointer-events:none}.image-container[data-v-06241c48]{position:relative}.description-section[data-v-06241c48]{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0}.description-text[data-v-06241c48]{margin:0;font-size:14px;line-height:1.6;color:#555}.description-text.empty[data-v-06241c48]{color:#999;font-style:italic}.action-buttons[data-v-06241c48]::-webkit-scrollbar{height:4px}.action-buttons[data-v-06241c48]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.action-buttons[data-v-06241c48]::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.action-buttons[data-v-06241c48]::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width: 480px){.people-group-name[data-v-06241c48]{font-size:16px}.stat-item[data-v-06241c48]{font-size:13px}.action-btn[data-v-06241c48]{padding:8px 14px;font-size:13px}}",Q$={key:0,class:"detail-header"},ev={class:"header-left"},tv={class:"header-text"},ov={class:"people-group-name"},nv={class:"people-group-subtitle"},av=["aria-label"],sv={class:"detail-content"},rv={key:0,class:"pg-name-lead"},iv={class:"action-buttons"},lv={class:"quick-stats"},cv={class:"stat-item"},uv={class:"stat-label"},pv={class:"stat-value"},dv={class:"stat-item"},gv={class:"stat-label"},fv={class:"stat-value"},hv={class:"stat-item"},mv={class:"stat-label"},bv={class:"stat-value"},yv={class:"stat-item"},_v={class:"stat-label"},$v={class:"stat-value"},vv={class:"stat-item stat-committed"},wv={class:"stat-label"},kv={class:"stat-value"},xv={key:1,class:"image-container position-inside"},Av=["src","alt"],Sv={key:2,class:"description-section"},Pv={key:0,class:"description-text"},Lv={key:1,class:"description-text empty"},Sp="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",Pp=To({__name:"PeopleGroupDetail",props:{peopleGroup:{type:Object,required:!0},hideHeader:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},action:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)}},setup(e){const{t,locale:o}=ut();Ft(`
|
||
.people-group-detail{display:flex;flex-direction:column;height:100%;overflow-y:auto;}
|
||
.people-group-detail.dark-mode{background:#1a1a2e;color:#eee;}
|
||
.detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:white;position:sticky;top:0;z-index:10;}
|
||
.dark-mode .detail-header{background:#16213e;border-bottom-color:#2d2d4e;}
|
||
.header-left{display:flex;gap:12px;align-items:center;flex:1;min-width:0;}
|
||
.header-text{flex:1;min-width:0;}
|
||
.people-group-name{margin:0;font-size:18px;font-weight:700;color:#333;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text;}
|
||
.dark-mode .people-group-name{color:#fff;}
|
||
.people-group-subtitle{margin:4px 0 0 0;font-size:13px;color:#666;line-height:1.2;}
|
||
.dark-mode .people-group-subtitle{color:#aaa;}
|
||
.close-button{background:none;border:none;padding:4px;cursor:pointer;color:#666;transition:color 0.2s ease;flex-shrink:0;}
|
||
.dark-mode .close-button{color:#aaa;}
|
||
.close-button:hover{color:#333;}
|
||
.dark-mode .close-button:hover{color:#fff;}
|
||
.detail-content{padding:6px 12px 12px;flex:1;overflow-y:auto;}
|
||
.dark-mode .detail-content{background:#1a1a2e;}
|
||
.quick-stats{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;}
|
||
.stat-item{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;}
|
||
.stat-label{color:#666;font-weight:500;}
|
||
.dark-mode .stat-label{color:#9ca3af;}
|
||
.stat-value{color:#333;font-weight:600;text-align:right;}
|
||
.dark-mode .stat-value{color:#e5e7eb;}
|
||
.stat-committed .stat-value{color:#73A17F;}
|
||
.dark-mode .stat-committed .stat-value{color:#92b195;}
|
||
.pg-name-lead{margin:0 0 8px 0;font-size:16px;font-weight:700;color:#333;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text;}
|
||
.dark-mode .pg-name-lead{color:#F3F3F1;}
|
||
.action-buttons{display:flex;gap:8px;padding-top:4px;margin-bottom:10px;overflow-x:auto;padding-bottom:2px;}
|
||
.action-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;flex-shrink:0;}
|
||
.action-btn.primary{background:#92b195;color:white;}
|
||
.action-btn.primary:hover{background:#73A17F;box-shadow:0 2px 4px rgba(146,177,149,0.3);}
|
||
.action-btn.secondary{background:#ecf0f1;color:#333;}
|
||
.dark-mode .action-btn.secondary{background:#2d2d4e;color:#e5e7eb;}
|
||
.action-btn.secondary:hover{background:#d5dbdb;}
|
||
.dark-mode .action-btn.secondary:hover{background:#3d3d5e;}
|
||
.btn-icon{flex-shrink:0;}
|
||
.image-container{margin-bottom:16px;border-radius:8px;overflow:hidden;background:#f5f5f5;position:relative;}
|
||
.dark-mode .image-container{background:#2d2d4e;}
|
||
.image-container.position-above{width:120px;height:150px;margin:0 auto 16px auto;}
|
||
.image-container.position-inside{width:200px;height:250px;margin:0 auto 16px auto;}
|
||
.people-group-image{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 0.3s ease;}
|
||
.people-group-image.loaded{opacity:1;}
|
||
.image-placeholder-svg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#f0f0f0;transition:opacity 0.3s ease;}
|
||
.dark-mode .image-placeholder-svg{background:#2d2d4e;}
|
||
.image-placeholder-svg.hidden{opacity:0;pointer-events:none;}
|
||
.description-section{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0;}
|
||
.dark-mode .description-section{border-top-color:#2d2d4e;}
|
||
.description-text{margin:0;font-size:14px;line-height:1.6;color:#555;}
|
||
.dark-mode .description-text{color:#d1d5db;}
|
||
.description-text.empty{color:#999;font-style:italic;}
|
||
.dark-mode .description-text.empty{color:#6b7280;}
|
||
`,"legend-people-group-detail");const n=e,a=Ee("uiStore"),s=Ee("profileConfig",null),r=te(()=>a.legendState),i=te(()=>a.isMobile),l=te(()=>!i.value||r.value==="fullyOpen"),c=te(()=>Ap(n.peopleGroup.properties.name)),u=te(()=>c.value.letter),g=te(()=>X$(n.peopleGroup.properties.name,{size:32,borderRadius:4})),f=te(()=>n.peopleGroup.properties),k=ge(null),P=ge(!1),y=te(()=>f.value.slug||"");async function x(U){if(!U)return;const se=Qr();if(se)try{const pe=await fetch(`${se}/api/people-groups/detail/${encodeURIComponent(U)}?lang=${encodeURIComponent(o.value)}`);if(!pe.ok)throw new Error(`HTTP ${pe.status}`);k.value=await pe.json()}catch{k.value=null}}je(y,U=>{P.value=!1,k.value=null,x(U)},{immediate:!0});const $=te(()=>{var U;return f.value.countryName||f.value.countryIsoLabel||f.value.country||f.value.countryIso||((U=f.value._raw)==null?void 0:U.Country)||""}),m=te(()=>{var pe;const U=f.value.status||((pe=f.value._raw)==null?void 0:pe.Status),se=$.value||"Unknown";return U?`${se} • ${U}`:se}),b=te(()=>{var se;const U=f.value.language||((se=f.value._raw)==null?void 0:se.Language);if(!U)return"Unknown";if(typeof U=="object"&&U.label)return U.label;if(typeof U=="string"&&U.startsWith("{"))try{const pe=JSON.parse(U);if(pe!=null&&pe.label)return pe.label}catch{}return U}),v=te(()=>{var U;return f.value.population||((U=f.value._raw)==null?void 0:U.Population)||0}),A=te(()=>{var se,pe;const U=[(se=k.value)==null?void 0:se.people_praying,f.value.peoplePraying,(pe=f.value._raw)==null?void 0:pe.people_praying];for(const ke of U)if(ke!=null&&ke!=="")return Number(ke);return null}),T=te(()=>A.value===null?"—":A.value.toLocaleString()),w=te(()=>{var U;return f.value.religionName||f.value.religionLabel||f.value.religion||((U=f.value._raw)==null?void 0:U.Religion)||""}),S=te(()=>{var U,se,pe;return((U=k.value)==null?void 0:U.imb_people_description)||((se=k.value)==null?void 0:se.description)||f.value.description||((pe=f.value._raw)==null?void 0:pe.Description)||""}),h=te(()=>{var U,se,pe;return((U=k.value)==null?void 0:U.image_url)||((se=k.value)==null?void 0:se.imageUrl)||f.value.imageUrl||((pe=f.value._raw)==null?void 0:pe.ImageURL)||Sp}),M=te(()=>{const U=parseInt(v.value);return U>=1e6?`${(U/1e6).toFixed(1)}M`:U>=1e3?`${(U/1e3).toFixed(1)}K`:U.toLocaleString()});function G(){a.selectPeopleGroup(null)}function W(){var ke;let U="";try{U=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const se=(ke=s==null?void 0:s.value)==null?void 0:ke.utmSource,pe=typeof window<"u"&&window.DOXA_UTM_SOURCE||"";return encodeURIComponent(String(U||se||pe||"agwm"))}function ne(U){return`https://pray.doxa.life/${encodeURIComponent(U)}?source=doxalife&utm_source=${W()}`}function he(U){return`${K()}/adopt/${encodeURIComponent(U)}/?source=doxalife&utm_source=${W()}`}function K(){const U=typeof window<"u"&&window.DOXA_SITE_URL||"";return String(U||"https://doxa.life").replace(/\/+$/,"")}function C(U){return`${K()}/research/${encodeURIComponent(U)}/?utm_source=${W()}`}function D(){const U=y.value;if(!U)return;n.action!=="adopt"&&I_(U);const se=n.action==="adopt"?he(U):ne(U);window.open(se,"_blank","noopener")}function z(){const U=y.value;U&&window.open(C(U),"_blank","noopener")}function O(U){U.target.dataset.usedFallback||(U.target.dataset.usedFallback="true",U.target.src=Sp)}return(U,se)=>(Q(),ae("div",{class:Fe(["people-group-detail",{"dark-mode":e.dark}])},[e.hideHeader?$e("",!0):(Q(),ae("div",Q$,[F("div",ev,[F("div",{class:"avatar",style:st(g.value)},be(u.value),5),F("div",tv,[F("h3",ov,be(e.peopleGroup.properties.name),1),F("p",nv,be(m.value),1)])]),F("button",{class:"close-button",onClick:G,"aria-label":ce(t)("aria.closeDetailView")},[...se[1]||(se[1]=[F("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},[F("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,av)])),F("div",sv,[e.hideHeader?(Q(),ae("h3",rv,be(e.peopleGroup.properties.name||ce(t)("legend.header.peopleGroupFallback")),1)):$e("",!0),F("div",iv,[e.action==="pray"||e.action==="adopt"?(Q(),ae("button",{key:0,class:"action-btn primary",onClick:D},[se[2]||(se[2]=F("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[F("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),F("span",null,be(e.action==="adopt"?ce(t)("buttons.adoptThem"):ce(t)("buttons.prayForThem")),1)])):$e("",!0),F("button",{class:"action-btn secondary",onClick:z},[se[3]||(se[3]=F("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[F("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),F("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),F("span",null,be(ce(t)("buttons.moreInfo")),1)])]),F("div",lv,[F("div",cv,[F("span",uv,be(ce(t)("detail.labels.country")),1),F("span",pv,be($.value||"—"),1)]),F("div",dv,[F("span",gv,be(ce(t)("detail.labels.population")),1),F("span",fv,be(M.value||"—"),1)]),F("div",hv,[F("span",mv,be(ce(t)("detail.labels.language")),1),F("span",bv,be(b.value||"—"),1)]),F("div",yv,[F("span",_v,be(ce(t)("detail.labels.religion")),1),F("span",$v,be(w.value||"—"),1)]),F("div",vv,[F("span",wv,be(ce(t)("detail.labels.peopleCommitted")),1),F("span",kv,be(T.value),1)])]),l.value?(Q(),ae("div",xv,[F("div",{class:Fe(["image-placeholder-svg",{hidden:P.value}])},[...se[4]||(se[4]=[F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 120",width:"80",height:"96","aria-hidden":"true"},[F("circle",{cx:"50",cy:"36",r:"22",fill:"#ccc"}),F("ellipse",{cx:"50",cy:"95",rx:"36",ry:"28",fill:"#ccc"})],-1)])],2),h.value?(Q(),ae("img",{key:0,src:h.value,alt:`${e.peopleGroup.properties.name} people group`,class:Fe(["people-group-image",{loaded:P.value}]),onLoad:se[0]||(se[0]=pe=>P.value=!0),onError:O},null,42,Av)):$e("",!0)])):$e("",!0),l.value?(Q(),ae("div",Sv,[S.value?(Q(),ae("p",Pv,be(S.value),1)):(Q(),ae("p",Lv,be(ce(t)("detail.messages.noDescription")),1))])):$e("",!0)])],2))}},[["styles",[J$]],["__scopeId","data-v-06241c48"]]),Lp={excludeReligionFamilies:["C"]},Tv="",Cv={class:"legend-reopen-label"},Ev=["aria-label"],Rv=["aria-label"],Nv=["aria-label"],Mv=To({__name:"LegendDesktop",props:{legendType:{type:String,required:!0},initiallyCollapsed:{type:Boolean,default:!1},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const t=nr(()=>ls(()=>Promise.resolve().then(()=>Mp),void 0)),{t:o}=ut();Ft(`
|
||
.legend-container{position:absolute;top:60px;left:8px;width:var(--map-legend-width,380px);max-height:calc(100vh - 80px);background:#fff;border-radius:var(--map-radius,16px);box-shadow:0 2px 8px rgba(0,0,0,0.12),0 1px 3px rgba(0,0,0,0.08);z-index:1000;overflow:hidden;display:flex;flex-direction:column;transition:width 200ms cubic-bezier(0.2,0,0,1),max-height 200ms cubic-bezier(0.2,0,0,1),min-width 200ms cubic-bezier(0.2,0,0,1),border-radius 200ms linear,box-shadow 200ms linear;will-change:width,max-height;}
|
||
.legend-container .lrg-title{font-size:15px;}
|
||
.legend-container .lrg-header-col{font-size:11px;}
|
||
.legend-container .lrg-name{font-size:15px;}
|
||
.legend-container .lrg-badge-inner{font-size:12px;}
|
||
.legend-reopen{position:absolute;left:8px;top:60px;z-index:1000;display:inline-flex;align-items:center;gap:8px;background:#0d1117;border:1px solid #30363d;border-radius:999px;color:#c9d1d9;cursor:pointer;height:36px;padding:0 14px 0 12px;box-shadow:0 4px 14px rgba(0,0,0,0.25);font:600 11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:0.06em;max-width:320px;transition:color 0.12s,background 0.12s,border-color 0.12s,transform 0.12s,box-shadow 0.12s;}
|
||
.legend-reopen:hover{color:#fff;background:#1c2333;border-color:#73A17F;box-shadow:0 6px 20px rgba(59,70,61,0.25);transform:translateY(-1px);}
|
||
.legend-reopen-icon{color:#73A17F;flex-shrink:0;}
|
||
.legend-reopen-label{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none;letter-spacing:0;font:600 12px system-ui,sans-serif;}
|
||
.legend-reopen-caret{color:#6e7681;flex-shrink:0;}
|
||
.legend-reopen:hover .legend-reopen-caret{color:#c9d1d9;}
|
||
.legend-reopen-light{background:#ffffff;border-color:#d0d7de;color:#1f2328;box-shadow:0 4px 16px rgba(31,35,40,0.18);}
|
||
.legend-reopen-light:hover{background:#f6f8fa;border-color:#3b463d;color:#3b463d;box-shadow:0 6px 20px rgba(59,70,61,0.2);}
|
||
.legend-reopen-light .legend-reopen-icon{color:#3b463d;}
|
||
.legend-reopen-light .legend-reopen-caret{color:#57606a;}
|
||
.legend-collapse-caret{background:rgba(110,118,129,0.15);border:1px solid #30363d;border-radius:5px;color:#8b949e;cursor:pointer;width:22px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color 0.1s,background 0.1s,transform 0.18s;outline:none;-webkit-tap-highlight-color:transparent;padding:0;}
|
||
.legend-collapse-caret:focus{outline:none;}
|
||
.legend-collapse-caret:hover{color:#c9d1d9;background:rgba(59,70,61,0.18);border-color:#73A17F;}
|
||
.legend-collapse-caret svg{transition:transform 0.18s;transform:rotate(180deg);}
|
||
.legend-collapse-caret.rotated svg{transform:rotate(0deg);}
|
||
.legend-container:not(.legend-dark) .legend-collapse-caret{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;}
|
||
.legend-container:not(.legend-dark) .legend-collapse-caret:hover{background:rgba(59,70,61,0.12);border-color:#3b463d;color:#3b463d;}
|
||
.detail-close-btn{position:absolute;top:10px;right:10px;background:none;border:none;padding:4px;cursor:pointer;color:#888;display:flex;align-items:center;justify-content:center;z-index:20;transition:color 0.2s ease;}
|
||
.detail-close-btn:hover{color:#333;}
|
||
.detail-collapse-btn{position:absolute;top:10px;left:10px;z-index:20;background:transparent;border:none;color:transparent;cursor:pointer;width:28px;height:28px;padding:0;outline:none;-webkit-tap-highlight-color:transparent;}
|
||
.detail-collapse-btn:focus{outline:none;}
|
||
.legend-container .people-group-detail .pg-name-lead{padding-left:28px;padding-right:32px;}
|
||
.legend-content{padding:0;overflow-y:auto;overflow-x:hidden;flex:1;max-height:650px;display:flex;flex-direction:column;min-height:0;}
|
||
.legend-content.no-padding{padding:0;}
|
||
.legend-section-label{padding:8px 12px 4px;font-size:11px;font-weight:700;color:#9ca3af;letter-spacing:0.5px;text-transform:uppercase;}
|
||
.legend-dark .legend-section-label{color:rgba(243,243,241,0.55);}
|
||
.legend-container .lrg-row,
|
||
.legend-container .lft-row{min-height:24px;}
|
||
.legend-container .lrg-item-inner,
|
||
.legend-container .lft-item-inner{min-height:24px;padding:2px 0;}
|
||
.legend-items-container{display:flex;flex-direction:column;gap:4px;}
|
||
.legend-item{padding:6px 10px;border-radius:4px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--map-font-md,13px);transition:all 0.2s;}
|
||
.legend-item-clickable{cursor:pointer;}
|
||
.legend-item-clickable:hover{transform:translateX(4px);box-shadow:0 2px 4px rgba(0,0,0,0.1);}
|
||
.legend-item-selected{outline:2px solid #333;outline-offset:2px;}
|
||
.legend-item-text{flex:1;font-weight:500;color:#333;}
|
||
.legend-item-count{font-size:var(--map-font-sm,11px);color:#555;background:rgba(0,0,0,0.08);padding:2px 7px;border-radius:10px;min-width:40px;text-align:right;margin-right:4px;}
|
||
.legend-item-population{font-size:var(--map-font-sm,11px);color:#555;background:rgba(0,0,0,0.08);padding:2px 7px;border-radius:10px;min-width:52px;text-align:right;margin-right:4px;}
|
||
.legend-export-btn{background:none;border:none;cursor:pointer;font-size:15px;padding:0 4px;}
|
||
.legend-tree-item{display:flex;flex-direction:column;gap:4px;}
|
||
.legend-tree-parent{display:flex;align-items:center;gap:6px;}
|
||
.legend-tree-caret{width:16px;height:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform 0.2s;font-size:12px;color:#666;}
|
||
.legend-tree-caret.expanded{transform:rotate(90deg);}
|
||
.legend-tree-child{margin-left:20px;display:flex;gap:6px;}
|
||
.legend-tree-caret-placeholder{width:16px;}
|
||
.legend-item-child{font-size:12px;}
|
||
.legend-stats-header{display:flex;align-items:center;padding:4px 0;background:#fff;border-bottom:1px solid rgba(0,0,0,0.07);font-weight:600;font-size:10px;color:#777;text-transform:uppercase;letter-spacing:0.4px;position:sticky;top:0;z-index:10;}
|
||
.legend-stats-label{flex:1;min-width:0;padding:0 10px;}
|
||
.legend-stats-value{width:58px;text-align:right;flex-shrink:0;font-family:'Courier New',monospace;padding-right:10px;white-space:pre;}
|
||
.legend-footer{display:flex;align-items:center;padding:5px 0;border-top:1px solid rgba(0,0,0,0.07);font-size:11px;font-weight:600;color:#555;background:#fff;}
|
||
.legend-footer-label{flex:1;padding-left:10px;color:#777;}
|
||
.legend-footer-value{width:56px;text-align:right;padding-right:10px;font-family:'Courier New',monospace;}
|
||
.legend-content::-webkit-scrollbar{width:4px;}
|
||
.legend-content::-webkit-scrollbar-track{background:transparent;}
|
||
.legend-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.18);border-radius:4px;}
|
||
.legend-content::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.3);}
|
||
.legend-dark{background:#3b463d!important;border:1px solid rgba(255,255,255,0.10)!important;box-shadow:0 4px 16px rgba(0,0,0,0.5)!important;}
|
||
.legend-dark .legend-content{background:#3b463d;}
|
||
.legend-dark .legend-collapse-caret{background:rgba(110,118,129,0.15);border-color:#30363d;color:#8b949e;}
|
||
.legend-dark .legend-collapse-caret:hover{color:#c9d1d9;background:rgba(59,70,61,0.18);border-color:#73A17F;}
|
||
.legend-dark .detail-close-btn{color:rgba(243,243,241,0.75)!important;}
|
||
.legend-dark .detail-close-btn:hover{color:#F3F3F1!important;}
|
||
.legend-dark .legend-stats-header{background:#2a332a!important;color:rgba(243,243,241,0.65)!important;border-bottom-color:rgba(255,255,255,0.1)!important;}
|
||
.legend-dark .legend-footer{background:#2a332a!important;border-top-color:rgba(255,255,255,0.1)!important;color:rgba(243,243,241,0.75)!important;}
|
||
.legend-dark .legend-footer-label{color:rgba(243,243,241,0.65)!important;}
|
||
.legend-dark .legend-item-text{color:#F3F3F1!important;}
|
||
.legend-dark .legend-item-count{background:rgba(255,255,255,0.12)!important;color:rgba(243,243,241,0.9)!important;}
|
||
.legend-dark .legend-item-population{background:rgba(255,255,255,0.12)!important;color:rgba(243,243,241,0.9)!important;}
|
||
.legend-dark .legend-item-selected{outline-color:rgba(255,255,255,0.5)!important;}
|
||
.legend-dark .legend-tree-caret{color:rgba(243,243,241,0.7)!important;}
|
||
.legend-dark .legend-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.18);}
|
||
`,"legend-component");const n=e;Ee("mapStore"),Ee("dataStore");const a=Ee("uiStore"),s=Ss(n,"legendType"),{items:r,columns:i,title:l,activeFilter:c,setFilter:u,totalCount:g,totalPopulation:f,progress:k,fmtPop:P,fmtCount:y}=ii(s,Lp);Ee("normalizedPeopleGroups",null);const x=Ee("mapId",null),$=te(()=>a.isMobile),m=te(()=>a.legendMode),b=te(()=>a.selectedPeopleGroup),v=ge(n.initiallyCollapsed);let A=null;const T=te(()=>{var h;return m.value==="detail"&&b.value?((h=b.value.properties)==null?void 0:h.name)||o("legend.header.peopleGroupFallback"):v.value?o("legend.header.collapsed"):l.value});function w(){v.value=!v.value}je(m,(h,M)=>{h==="detail"&&M!=="detail"&&v.value&&(v.value=!1)});function S(h){u(h)}return qt(()=>{window.innerWidth<768&&(v.value=!0),A=h=>{var M;x&&((M=h.detail)!=null&&M.mapId)&&h.detail.mapId!==x||(v.value=!1)},window.addEventListener("dxm:openDesktopLegend",A)}),Yt(()=>{A&&window.removeEventListener("dxm:openDesktopLegend",A)}),(h,M)=>$.value?(Q(),Ze(ce(t),{key:0,legendType:e.legendType,popupAction:e.popupAction,isDark:e.isDark,disableCollapse:e.disableCollapse},null,8,["legendType","popupAction","isDark","disableCollapse"])):v.value?(Q(),ae("button",{key:1,class:Fe(["legend-reopen",{"legend-reopen-light":!e.isDark}]),title:"Expand legend",onClick:M[0]||(M[0]=G=>v.value=!1)},[M[2]||(M[2]=F("svg",{class:"legend-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),F("span",Cv,be(ce(l)),1),M[3]||(M[3]=F("svg",{class:"legend-reopen-caret",width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],2)):(Q(),ae("div",{key:2,class:Fe(["legend-container",{"legend-dark":e.isDark}])},[m.value==="detail"?(Q(),ae("button",{key:0,class:"detail-collapse-btn",onClick:ht(w,["stop"]),"aria-label":ce(o)("aria.toggleLegend")},null,8,Ev)):$e("",!0),m.value==="detail"?(Q(),ae("button",{key:1,class:"detail-close-btn",onClick:M[1]||(M[1]=ht(G=>ce(a).selectPeopleGroup(null),["stop"])),"aria-label":ce(o)("aria.backToLegend")},[...M[4]||(M[4]=[F("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[F("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,Rv)):$e("",!0),F("div",{class:Fe(["legend-content",{"no-padding":ce(i).length>0}])},[m.value==="detail"&&b.value?(Q(),Ze(Pp,{key:0,peopleGroup:b.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):e.legendType==="language-family"?(Q(),ae(Ge,{key:1},[],64)):(Q(),Ze(kp,{key:2,title:T.value,items:ce(r),columns:ce(i),activeFilter:ce(c),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:ce(g),totalPopulation:ce(f),fmtPop:ce(P),fmtCount:ce(y),progress:ce(k),onFilterClick:S},{"title-caret":Tt(()=>[F("button",{class:"legend-collapse-caret",onClick:ht(w,["stop"]),"aria-label":ce(o)("aria.toggleLegend")},[...M[5]||(M[5]=[F("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:"rotate(180deg)","transform-origin":"center"}})],-1)])],8,Nv)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount","progress"]))],2)],2))}},[["styles",[Tv]],["__scopeId","data-v-9250730f"]]),Tp="pplrInstance";function Fv(e){return{instanceId:e,selection:ge(null),activeTab:ge(0),activeTabTouched:ge(!1),isSearching:ge(!1),geocoderText:ge(""),pinDetail:ge(null),theme:ge("dark")}}function Iv(e){yt(Tp,e)}function Ov(){return Ee(Tp,null)}function Dv(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const o=t.ownerDocument.createElement("div");o.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(o);const n=o.getBoundingClientRect();return o.remove(),{x:n.left,y:n.top}}function Gv(e){const t=ge(null),o=ma({position:"fixed",inset:"0"}),n=()=>{var u,g;const s=t.value;if(!s)return;const r=Dv(s),i=s.ownerDocument||(typeof document<"u"?document:null),l=((u=i==null?void 0:i.documentElement)==null?void 0:u.clientWidth)||0,c=((g=i==null?void 0:i.documentElement)==null?void 0:g.clientHeight)||0;o.value={position:"fixed",top:`${-r.y}px`,left:`${-r.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};je(e,s=>{s&&requestAnimationFrame(()=>{n(),requestAnimationFrame(n)})},{flush:"post"});const a=()=>{e.value&&n()};return typeof window<"u"&&window.addEventListener("resize",a),Yt(()=>{typeof window<"u"&&window.removeEventListener("resize",a)}),{scrimRef:t,scrimStyle:o}}const Bv="",jv=["data-theme"],zv={class:"stl-inner"},Uv={class:"stl-tb-caret-slot"},Hv=["title","aria-label","aria-expanded"],Kv={class:"stl-tb-eyebrow"},Vv=["title","aria-label"],Wv=["title"],qv={key:2,class:"stl-tb-title"},Yv={key:3,class:"stl-export"},Zv=["aria-expanded","title","aria-label"],Xv={class:"stl-export-label"},Jv={class:"stl-export-menu",role:"menu"},Qv={class:"stl-export-item-label"},e1={class:"stl-export-item-label"},t1={key:0,class:"stl-tabs-wrap"},o1={class:"stl-tabs"},n1=["onClick"],a1=["title","onClick"],s1={key:0,class:"stl-info-pop"},r1={class:"stl-col-hdr"},i1={class:"stl-hdr-name"},l1=["title"],c1={key:0,class:"stl-sort-arrow"},u1=["title"],p1={key:0,class:"stl-sort-arrow"},d1=["data-stl-node-id","onClick"],g1=["aria-expanded","aria-label","onClick"],f1={key:1,class:"stl-caret-sp"},h1={key:3,class:"stl-dot-sp"},m1={class:"stl-name"},b1={key:4,class:"stl-num"},y1={key:5,class:"stl-num"},_1={class:"stl-x-slot"},$1=["title","aria-label"],v1={key:0,class:"stl-empty stl-loading"},w1={key:1,class:"stl-empty"},k1={key:2,class:"stl-empty"},x1={key:3,class:"stl-overflow"},A1=["data-theme","title","aria-label"],S1={class:"stl-reopen-label"},Cp=To({__name:"SemanticTreeLegend",props:{nodes:{type:Array,default:()=>[]},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columns:{type:Array,default:()=>["count","pop"]},title:{type:String,default:"Legend"},hideTabs:{type:Boolean,default:!1},columnLabel:{type:String,default:""},open:{type:Boolean,default:null},exportEnabled:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["select","update:open","export"],setup(e,{emit:t}){const o=I=>String(I).split(".").pop().replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^./,q=>q.toUpperCase());let n=I=>o(I),a=()=>!1;try{const I=ut();n=I.t,a=I.te}catch{}function s(I){const q="tabs."+((I==null?void 0:I.i18nKey)||(I==null?void 0:I.id));return I&&a(q)?n(q):(I==null?void 0:I.label)??""}function r(I){const q="legend.tabInfo."+((I==null?void 0:I.i18nKey)||(I==null?void 0:I.id));return I&&a(q)?n(q):(I==null?void 0:I.info)??""}const i=e,l=t,c=Ov(),u=Ee("legendProgress",null),g=te(()=>i.progress??ce(u)??null),f=te(()=>g.value?n("legend.progress.title"):i.title),k=te(()=>((c==null?void 0:c.theme.value)||"dark")==="dark");function P(I,q){var fe;for(const _e of I||[]){if((_e==null?void 0:_e.id)===q)return _e;const xe=(fe=_e==null?void 0:_e.children)!=null&&fe.length?P(_e.children,q):null;if(xe)return xe}return null}function y(I){const q=P(A.value,I);q&&d(q)}function x(I,q=0){return I!=null&&I.length?Math.max(...I.map(fe=>x(fe.children??[],q+1))):q}function $(I,q,fe=0){return fe===q?I.slice():I.flatMap(_e=>$(_e.children??[],q,fe+1))}function m(I,q,fe=[]){var _e;for(const xe of I){if(xe.id===q)return fe;if((_e=xe.children)!=null&&_e.length){const Je=m(xe.children,q,[...fe,xe]);if(Je)return Je}}return null}function b(I,q=new Set){var fe;if(!((fe=I==null?void 0:I.children)!=null&&fe.length))return q;for(const _e of I.children)q.add(_e.id),b(_e,q);return q}function v(I,q="root"){var _e;if(!Array.isArray(I))return[];const fe=[];for(const xe of I){if(!xe||typeof xe!="object"){try{console.warn("[SemanticTreeLegend] dropped null node under",q)}catch{}continue}fe.push((_e=xe.children)!=null&&_e.length?{...xe,children:v(xe.children,xe.label||xe.id||q)}:xe)}return fe}const A=te(()=>v(i.nodes)),T=te(()=>x(A.value)),w=te(()=>{const I=i.tabs??[],q=I.length||T.value+1;return Array.from({length:q},(fe,_e)=>I[_e]??{id:`gen${_e+1}`,label:`Generation ${_e+1}`})}),S=ge(Math.max(0,i.defaultTab|0)),h=ge(new Set),M=ge(null),G=ge(i.open!==null?i.open:!0),W=ge(null),ne=ge(!1),{scrimRef:he,scrimStyle:K}=Gv(ne),C=ge(null),D=ge("desc"),z=te({get:()=>{var I;return i.hideTabs?0:c&&!((I=c.activeTabTouched)!=null&&I.value)?Math.min(Math.max(0,i.defaultTab|0),Math.max(0,w.value.length-1)):c?c.activeTab.value:S.value},set:I=>{i.hideTabs||(c?(c.activeTab.value=I,c.activeTabTouched&&(c.activeTabTouched.value=!0)):S.value=I)}}),O=te({get:()=>c?c.selection.value:M.value,set:I=>{c?c.selection.value=I:M.value=I}}),U=te(()=>{var I;return((I=O.value)==null?void 0:I.id)||null}),se=ge(null);je(()=>i.open,I=>{I!==null&&(G.value=I)}),je(()=>A.value,()=>{var xe;const I=c?(xe=c.activeTabTouched)==null?void 0:xe.value:!1,q=I?c==null?void 0:c.activeTab.value:void 0,fe=Math.min(Math.max(0,i.defaultTab|0),Math.max(0,w.value.length-1)),_e=typeof q=="number"&&q>=0?q:fe;c?(c.activeTab.value=_e,!I&&c.activeTabTouched&&(c.activeTabTouched.value=!1)):S.value=_e,h.value=new Set,O.value=null,l("select",null)},{deep:!1});let pe=null;c&&je(()=>c.selection.value,I=>{if((I==null?void 0:I.id)===pe)return;if(!I){pe=null;return}pe=I.id;const q=m(A.value,I.id)||[];typeof I.depth=="number"&&(z.value=Math.min(I.depth,w.value.length-1));const fe=new Set;q.forEach(_e=>fe.add(_e.id)),h.value=fe,l("select",I)});function ke(I,q){const fe=(q.pop??0)-(I.pop??0);return fe!==0?fe:(q.count??0)-(I.count??0)}const Ce=te(()=>{if(!C.value)return ke;const I=C.value,q=D.value==="asc"?1:-1;return(fe,_e)=>((fe[I]??0)-(_e[I]??0))*q});function Me(I){C.value===I?D.value==="desc"?D.value="asc":(C.value=null,D.value="desc"):(C.value=I,D.value="desc")}const Ae=ge([]),we=ge(!1);let J=-1;function re(I){if(Ae.value[I]){we.value=!1;return}we.value=!0,J=I,setTimeout(()=>{if(J!==I)return;const q=[...$(A.value,I)].sort(Ce.value),fe=[...Ae.value];fe[I]=q,Ae.value=fe,we.value=!1},0)}je(z,I=>re(I),{immediate:!0}),je(()=>[A.value,C.value,D.value],()=>{Ae.value=[],re(z.value)},{deep:!1});const oe=te(()=>Ae.value[z.value]||[]),ve=te(()=>{var q;const I=(q=w.value[z.value])==null?void 0:q.topLimit;return I?oe.value.slice(0,I):oe.value}),_=te(()=>{var q;const I=(q=w.value[z.value])==null?void 0:q.topLimit;return I?Math.max(0,oe.value.length-I):0});function R(I,q,fe,_e,xe){var Je;for(const Ne of q)Ne&&(I.push({node:Ne,relDepth:fe,parent:_e,ancestors:xe}),h.value.has(Ne.id)&&((Je=Ne.children)!=null&&Je.length)&&R(I,[...Ne.children].sort(Ce.value),fe+1,Ne,[...xe,Ne]))}const L=te(()=>{const I=[];R(I,ve.value,0,null,[]);for(let q=0;q<I.length;q++){const fe=I[q],_e=[];for(let xe=0;xe<fe.relDepth;xe++){const Je=fe.ancestors[xe];let Ne=!1;for(let Z=q+1;Z<I.length;Z++){const le=I[Z];if(le.relDepth<=xe)break;if(le.relDepth===xe+1&&le.ancestors[xe]===Je){Ne=!0;break}le.relDepth>xe+1&&le.ancestors[xe]}if(xe===fe.relDepth-1){let Z=!1;for(let le=q+1;le<I.length;le++){const de=I[le];if(de.relDepth<fe.relDepth)break;if(de.relDepth===fe.relDepth&&de.parent===fe.parent){Z=!0;break}}_e.push(Z?"tee":"elbow")}else _e.push(Ne?"pipe":"blank")}fe.trunks=_e}return I}),B=te(()=>U.value!==null),H=te(()=>i.columns.includes("count")),E=te(()=>i.columns.includes("pop")),ee=te(()=>O.value?b(O.value):new Set),Y=te(()=>{var Je;const I=O.value;if(!I)return null;const q=m(A.value,I.id);if(!q||!q.length)return null;const fe=q[q.length-1],_e=q.length-1,xe=((Je=w.value[_e])==null?void 0:Je.label)||"Parent";return{node:fe,tabName:xe,depth:_e}});function d(I){U.value===I.id?(pe=null,O.value=null,l("select",null)):(pe=I.id,O.value=I,l("select",I))}function p(I,q){q==null||q.stopPropagation();const fe=new Set(h.value),_e=fe.has(I);if(_e?fe.delete(I):fe.add(I),h.value=fe,_e&&O.value){const xe=m(A.value,O.value.id);xe&&xe.some(Je=>Je.id===I)&&(pe=null,O.value=null,l("select",null))}}function N(){const I=Y.value;I!=null&&I.node&&(!i.hideTabs&&typeof I.depth=="number"&&(z.value=I.depth),h.value=new Set,d(I.node))}function V(I){if(z.value===I){W.value=W.value===I?null:I;return}z.value=I,h.value=new Set,pe=null,O.value=null,W.value=null,l("select",null)}function ue(I){I==null||I.stopPropagation(),pe=null,O.value=null,l("select",null)}function ie(I,q){q==null||q.stopPropagation(),W.value=W.value===I?null:I}function j(I){I==null||I.stopPropagation(),ne.value=!ne.value}function X(I){ne.value=!1,l("export",I)}je(U,I=>{I||(ne.value=!1)});function ye(I){let q=I.parentElement;for(;q;){const fe=getComputedStyle(q).overflowY;if((fe==="auto"||fe==="scroll")&&q.scrollHeight>q.clientHeight+1){const _e=I.getBoundingClientRect(),xe=q.getBoundingClientRect();q.scrollTop+=_e.top-xe.top-8}q=q.parentElement}}let Se=0;je(U,async I=>{if(!I)return;const q=++Se,fe=se.value;if(!fe)return;await vo();const _e=(xe=0)=>{if(q!==Se)return;const Je=fe.querySelector(`[data-stl-node-id="${CSS.escape(String(I))}"]`);Je&&ye(Je),xe<6&&setTimeout(()=>_e(xe+1),70)};_e(0)});function Be(I){return I?I>=1e6?(I/1e6).toFixed(1)+"M":I>=1e3?Math.round(I/1e3)+"k":I.toLocaleString():"—"}function nt(I){return I!=null?I.toLocaleString():"—"}function at(I){var q;return{selected:U.value===I.node.id,descendant:B.value&&ee.value.has(I.node.id),child:I.relDepth>0,leaf:!((q=I.node.children)!=null&&q.length)}}return Ft(`
|
||
.stl-inner {
|
||
--stl-pad-x: 10px;
|
||
--stl-gap: 6px;
|
||
--stl-caret-w: 14px;
|
||
--stl-dot-w: 8px;
|
||
--stl-num-w: 60px;
|
||
--stl-x-w: 22px;
|
||
flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column;
|
||
background: #161b22; border: 1px solid #30363d;
|
||
border-radius: var(--map-radius, 16px);
|
||
box-shadow: 0 6px 24px rgba(0,0,0,0.45);
|
||
overflow: hidden;
|
||
}
|
||
.stl-panel {
|
||
position: absolute; left: 8px; top: var(--stl-top, 60px); width: var(--map-legend-width, 380px); z-index: 4;
|
||
display: flex; flex-direction: column;
|
||
max-height: calc(100% - var(--stl-top, 60px) - 12px);
|
||
transition: transform 0.25s cubic-bezier(0.2, 0, 0, 1), opacity 0.2s;
|
||
pointer-events: auto;
|
||
}
|
||
.stl-panel.closed { transform: translateX(-100%); opacity: 0; pointer-events: none; }
|
||
.stl-panel.fit-content { max-height: calc(100% - var(--stl-top, 60px) - 12px); }
|
||
.stl-titlebar {
|
||
display: flex; align-items: center; gap: 6px;
|
||
padding: 8px 12px; flex-shrink: 0;
|
||
border-bottom: 1px solid #21262d;
|
||
min-height: 32px;
|
||
}
|
||
.stl-tb-caret-slot { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
|
||
.stl-tb-caret-slot:empty { display: none; }
|
||
.stl-titlebar.has-progress { flex-wrap: wrap; row-gap: 7px; }
|
||
.stl-progress { flex: 1 1 100%; min-width: 0; }
|
||
.stl-tb-title,
|
||
.stl-tb-eyebrow {
|
||
font: 600 10px ui-monospace, monospace;
|
||
color: #73A17F; text-transform: uppercase; letter-spacing: 0.07em;
|
||
flex-shrink: 0;
|
||
}
|
||
.stl-tb-eyebrow { color: #6e7681; font-size: 9px; letter-spacing: 0.08em; }
|
||
.stl-tb-dot {
|
||
width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
|
||
box-shadow: 0 0 0 1px rgba(0,0,0,0.4), 0 0 0 3px rgba(115,161,127,0.15);
|
||
}
|
||
.stl-tb-text {
|
||
flex: 1; min-width: 0;
|
||
font: 600 12px system-ui; color: #e6edf3;
|
||
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
||
}
|
||
.stl-tb-up {
|
||
flex: 1; min-width: 0;
|
||
display: inline-flex; align-items: center; gap: 6px;
|
||
background: transparent; border: 1px solid transparent; border-radius: 6px;
|
||
margin: -2px -4px; padding: 2px 6px 2px 4px;
|
||
cursor: pointer; text-align: left;
|
||
transition: background 0.12s, border-color 0.12s, color 0.12s;
|
||
}
|
||
.stl-tb-up:hover { background: rgba(115,161,127,0.10); border-color: rgba(115,161,127,0.35); }
|
||
.stl-tb-up:focus-visible {
|
||
outline: none;
|
||
border-color: #73A17F;
|
||
box-shadow: 0 0 0 2px rgba(115,161,127,0.30);
|
||
}
|
||
.stl-tb-up .stl-tb-text {
|
||
flex: 1; min-width: 0;
|
||
font: 600 12px system-ui; color: #e6edf3;
|
||
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
||
}
|
||
.stl-tb-up:hover .stl-tb-text { color: #fff; }
|
||
.stl-tb-up-icon { color: #73A17F; flex-shrink: 0; }
|
||
.stl-panel[data-theme="light"] .stl-tb-up:hover {
|
||
background: rgba(59,70,61,0.08); border-color: rgba(59,70,61,0.3);
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-tb-up:focus-visible {
|
||
border-color: #3b463d; box-shadow: 0 0 0 2px rgba(59,70,61,0.25);
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-tb-up .stl-tb-text { color: #1f2328; }
|
||
.stl-panel[data-theme="light"] .stl-tb-up-icon { color: #3b463d; }
|
||
.stl-tabs-wrap { flex-shrink: 0; }
|
||
.stl-tabs {
|
||
display: flex; flex-wrap: nowrap; gap: 4px;
|
||
padding: 6px 8px;
|
||
border-bottom: 1px solid #21262d;
|
||
overflow-x: auto;
|
||
scrollbar-width: none;
|
||
}
|
||
.stl-tabs::-webkit-scrollbar { display: none; }
|
||
.stl-tab-chip {
|
||
display: inline-flex; align-items: stretch; flex-shrink: 0;
|
||
background: #1c2333; border: 1px solid #30363d; border-radius: 6px;
|
||
overflow: hidden; transition: border-color 0.12s, box-shadow 0.12s;
|
||
}
|
||
.stl-tab-chip:hover { border-color: #484f58; }
|
||
.stl-tab-chip.active {
|
||
background: #3b463d; border-color: #73A17F;
|
||
box-shadow: 0 0 0 2px rgba(115,161,127,0.22), 0 1px 4px rgba(59,70,61,0.4);
|
||
}
|
||
.stl-tab {
|
||
display: inline-flex; align-items: center;
|
||
background: transparent; border: none;
|
||
color: #8b949e; font: 600 10px ui-monospace, monospace;
|
||
text-transform: uppercase; letter-spacing: 0.04em;
|
||
padding: 4px 8px; cursor: pointer; white-space: nowrap;
|
||
}
|
||
.stl-tab:hover { color: #c9d1d9; }
|
||
.stl-tab-chip.active .stl-tab { color: #fff; }
|
||
.stl-tab-info {
|
||
background: rgba(110,118,129,0.15); border: none; border-left: 1px solid #30363d;
|
||
color: #6e7681; cursor: pointer;
|
||
width: 18px; padding: 0; font: 700 9px ui-monospace, monospace;
|
||
}
|
||
.stl-tab-info:hover { background: rgba(59,70,61,0.2); color: #73A17F; }
|
||
.stl-tab-chip.active .stl-tab-info {
|
||
border-left-color: rgba(0,0,0,0.3); color: #fff;
|
||
background: rgba(0,0,0,0.2);
|
||
}
|
||
.stl-info-pop {
|
||
margin: 2px 8px 6px; padding: 7px 10px;
|
||
background: #0d1117; border: 1px solid #30363d; border-radius: 6px;
|
||
font: 11px system-ui; color: #c9d1d9; line-height: 1.45;
|
||
}
|
||
.stl-col-hdr,
|
||
.stl-row {
|
||
display: flex; align-items: center; gap: var(--stl-gap);
|
||
padding: 0 var(--stl-pad-x);
|
||
}
|
||
.stl-col-hdr {
|
||
height: 26px; flex-shrink: 0;
|
||
background: #0d1117; border-bottom: 1px solid #21262d;
|
||
}
|
||
.stl-hdr-name {
|
||
flex: 1; min-width: 0;
|
||
font: 700 11px ui-monospace, monospace;
|
||
color: #8b949e; text-transform: uppercase; letter-spacing: 0.04em;
|
||
}
|
||
.stl-hdr-num {
|
||
width: var(--stl-num-w); text-align: center; flex-shrink: 0;
|
||
font: 600 9px ui-monospace, monospace;
|
||
color: #6e7681; text-transform: uppercase; letter-spacing: 0.05em;
|
||
background: transparent; border: none; cursor: pointer;
|
||
padding: 0; transition: color 0.1s;
|
||
display: inline-flex; align-items: center; justify-content: center; gap: 3px;
|
||
}
|
||
.stl-hdr-num:hover { color: #c9d1d9; }
|
||
@media (pointer:coarse) { .stl-hdr-num { min-height: 24px; } }
|
||
.stl-hdr-num.active { color: #73A17F; }
|
||
.stl-sort-arrow { font-size: 8px; }
|
||
.stl-rows { flex: 1; overflow-y: auto; padding-bottom: 6px; }
|
||
.stl-rows::-webkit-scrollbar { width: 6px; }
|
||
.stl-rows::-webkit-scrollbar-track { background: transparent; }
|
||
.stl-rows::-webkit-scrollbar-thumb { background: #21262d; border-radius: 3px; }
|
||
.stl-rows::-webkit-scrollbar-thumb:hover { background: #30363d; }
|
||
.stl-empty {
|
||
padding: 20px 12px; text-align: center;
|
||
font: 11px system-ui; color: #484f58;
|
||
}
|
||
.stl-loading {
|
||
display: inline-flex; align-items: center; gap: 8px;
|
||
width: 100%; justify-content: center;
|
||
color: #73A17F;
|
||
}
|
||
.stl-spinner {
|
||
width: 12px; height: 12px; border-radius: 50%;
|
||
border: 2px solid rgba(115,161,127,0.25);
|
||
border-top-color: #73A17F;
|
||
animation: stl-spin 0.7s linear infinite;
|
||
}
|
||
@keyframes stl-spin { to { transform: rotate(360deg); } }
|
||
.stl-overflow {
|
||
padding: 8px 10px; margin: 4px 0 0;
|
||
background: #0d1117; border-top: 1px dashed #30363d;
|
||
text-align: center; font: 10px system-ui; color: #6e7681;
|
||
}
|
||
.stl-overflow-hint { color: #73A17F; }
|
||
.stl-row {
|
||
min-height: 27px;
|
||
cursor: pointer; transition: opacity 0.12s, background 0.1s;
|
||
border-bottom: 1px solid rgba(33,38,45,0.45);
|
||
}
|
||
.stl-row:last-child { border-bottom: none; }
|
||
.stl-row:hover { background: rgba(255,255,255,0.04); }
|
||
.stl-row.child .stl-name { color: #adbac7; }
|
||
.stl-row.leaf .stl-name { font-style: italic; }
|
||
.stl-rows.has-sel .stl-row:not(.selected):not(.descendant) { opacity: 0.30; }
|
||
.stl-rows.has-sel .stl-row:not(.selected):not(.descendant):hover { opacity: 0.6; }
|
||
.stl-rows.has-sel .stl-row.descendant { opacity: 1; }
|
||
.stl-rows.has-sel .stl-row.selected {
|
||
opacity: 1;
|
||
background: rgba(255,255,255,0.05);
|
||
box-shadow:
|
||
inset 3px 0 0 0 var(--row-color, #73A17F),
|
||
inset 0 0 0 1px rgba(255,255,255,0.05),
|
||
0 0 14px -2px var(--row-color, rgba(115,161,127,0.4));
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-rows.has-sel .stl-row.selected {
|
||
background: rgba(255,255,255,0.7);
|
||
box-shadow:
|
||
inset 3px 0 0 0 var(--row-color, #3b463d),
|
||
inset 0 0 0 1px rgba(0,0,0,0.04),
|
||
0 0 14px -2px var(--row-color, rgba(59,70,61,0.35));
|
||
}
|
||
.stl-caret-sp { width: var(--stl-caret-w); flex-shrink: 0; }
|
||
.stl-dot-sp { width: var(--stl-dot-w); flex-shrink: 0; }
|
||
.stl-x-slot {
|
||
width: var(--stl-x-w); flex-shrink: 0;
|
||
display: flex; align-items: center; justify-content: center;
|
||
}
|
||
.stl-trunk { position: relative; flex-shrink: 0; width: 12px; align-self: stretch; }
|
||
.stl-trunk-pipe::before {
|
||
content: ''; position: absolute;
|
||
left: 5px; top: 0; bottom: 0; width: 1px;
|
||
background: var(--trunk-color, #6e7681);
|
||
opacity: 0.45;
|
||
}
|
||
.stl-trunk-tee::before {
|
||
content: ''; position: absolute;
|
||
left: 5px; top: 0; bottom: 0; width: 1px;
|
||
background: var(--trunk-color, #6e7681);
|
||
opacity: 0.45;
|
||
}
|
||
.stl-trunk-tee::after {
|
||
content: ''; position: absolute;
|
||
left: 5px; top: 50%; height: 1px; width: 7px;
|
||
background: var(--trunk-color, #6e7681);
|
||
opacity: 0.55;
|
||
}
|
||
.stl-trunk-elbow::before {
|
||
content: ''; position: absolute;
|
||
left: 5px; top: 0; height: 50%; width: 1px;
|
||
background: var(--trunk-color, #6e7681);
|
||
opacity: 0.45;
|
||
}
|
||
.stl-trunk-elbow::after {
|
||
content: ''; position: absolute;
|
||
left: 5px; top: calc(50% - 0.5px); height: 1px; width: 7px;
|
||
background: var(--trunk-color, #6e7681);
|
||
opacity: 0.55;
|
||
}
|
||
.stl-row.selected .stl-trunk-pipe::before,
|
||
.stl-row.selected .stl-trunk-tee::before,
|
||
.stl-row.selected .stl-trunk-tee::after,
|
||
.stl-row.selected .stl-trunk-elbow::before,
|
||
.stl-row.selected .stl-trunk-elbow::after,
|
||
.stl-row.descendant .stl-trunk-pipe::before,
|
||
.stl-row.descendant .stl-trunk-tee::before,
|
||
.stl-row.descendant .stl-trunk-tee::after,
|
||
.stl-row.descendant .stl-trunk-elbow::before,
|
||
.stl-row.descendant .stl-trunk-elbow::after {
|
||
opacity: 0.85;
|
||
}
|
||
.stl-caret {
|
||
background: none; border: none; padding: 0; cursor: pointer;
|
||
color: #6e7681; width: var(--stl-caret-w); height: var(--stl-caret-w); flex-shrink: 0;
|
||
display: flex; align-items: center; justify-content: center;
|
||
border-radius: 3px;
|
||
}
|
||
.stl-caret svg { transition: transform 0.15s; }
|
||
.stl-caret.open svg { transform: rotate(90deg); }
|
||
.stl-caret:hover { color: #c9d1d9; background: rgba(255,255,255,0.06); }
|
||
.stl-dot {
|
||
width: var(--stl-dot-w); height: var(--stl-dot-w); border-radius: 50%; flex-shrink: 0;
|
||
box-shadow: 0 0 0 1px rgba(0,0,0,0.4);
|
||
}
|
||
.stl-row.selected .stl-dot {
|
||
box-shadow: 0 0 0 1px rgba(0,0,0,0.4), 0 0 0 3px rgba(115,161,127,0.25);
|
||
}
|
||
.stl-name {
|
||
flex: 1; min-width: 0;
|
||
font: 11.5px system-ui, sans-serif; color: #e6edf3;
|
||
white-space: normal; word-wrap: break-word; overflow-wrap: break-word;
|
||
line-height: 1.3;
|
||
}
|
||
.stl-num {
|
||
width: var(--stl-num-w); text-align: center; flex-shrink: 0;
|
||
font: 10.5px ui-monospace, monospace; color: #8b949e;
|
||
font-variant-numeric: tabular-nums;
|
||
}
|
||
.stl-row.selected .stl-num { color: #e6edf3; }
|
||
.stl-x-chip {
|
||
background: rgba(110,118,129,0.12); border: none; border-radius: 50%;
|
||
color: #6e7681; cursor: pointer;
|
||
width: 16px; height: 16px;
|
||
display: flex; align-items: center; justify-content: center;
|
||
transition: color 0.12s, background 0.12s;
|
||
}
|
||
.stl-x-chip:hover { color: #c9d1d9; background: rgba(110,118,129,0.25); }
|
||
.stl-collapse-btn {
|
||
background: rgba(110,118,129,0.15); border: 1px solid #30363d; border-radius: 5px;
|
||
color: #8b949e; cursor: pointer;
|
||
width: 22px; height: 20px; flex-shrink: 0;
|
||
display: flex; align-items: center; justify-content: center;
|
||
transition: color 0.1s, background 0.1s, transform 0.18s;
|
||
}
|
||
.stl-collapse-btn:hover { color: #c9d1d9; background: rgba(59,70,61,0.18); border-color: #73A17F; }
|
||
.stl-collapse-btn svg { transition: transform 0.18s; transform: rotate(180deg); }
|
||
.stl-reopen {
|
||
position: absolute; left: 8px; top: 60px; z-index: 3;
|
||
display: inline-flex; align-items: center; gap: 8px;
|
||
background: #0d1117; border: 1px solid #30363d;
|
||
border-radius: 999px;
|
||
color: #c9d1d9; cursor: pointer;
|
||
height: 36px;
|
||
padding: 0 14px 0 12px;
|
||
box-shadow: 0 4px 14px rgba(0,0,0,0.25);
|
||
font: 600 11px ui-monospace, monospace;
|
||
text-transform: uppercase; letter-spacing: 0.06em;
|
||
max-width: 320px;
|
||
transition: color 0.12s, background 0.12s, border-color 0.12s, transform 0.12s, box-shadow 0.12s;
|
||
}
|
||
.stl-reopen:hover {
|
||
color: #fff; background: #1c2333; border-color: #73A17F;
|
||
box-shadow: 0 6px 20px rgba(59,70,61,0.25);
|
||
transform: translateY(-1px);
|
||
}
|
||
.stl-reopen-icon { color: #73A17F; flex-shrink: 0; }
|
||
.stl-reopen-label {
|
||
display: inline-flex; align-items: center; gap: 6px;
|
||
min-width: 0; max-width: 200px;
|
||
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
||
text-transform: none; letter-spacing: 0;
|
||
font: 600 12px system-ui, sans-serif;
|
||
}
|
||
.stl-reopen-dot {
|
||
width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
|
||
box-shadow: 0 0 0 1px rgba(0,0,0,0.4);
|
||
}
|
||
.stl-reopen-caret { color: #6e7681; flex-shrink: 0; }
|
||
.stl-reopen:hover .stl-reopen-caret { color: #c9d1d9; }
|
||
@media (max-width: 640px) {
|
||
.stl-panel { width: 92vw; max-width: 380px; --stl-top: 64px; }
|
||
.stl-reopen { top: 64px; }
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-inner {
|
||
background: #ffffff; border-color: #d0d7de;
|
||
box-shadow: 0 6px 24px rgba(31, 35, 40, 0.12);
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-titlebar { border-color: #d8dee4; }
|
||
.stl-panel[data-theme="light"] .stl-tb-title,
|
||
.stl-panel[data-theme="light"] .stl-tb-eyebrow { color: #3b463d; }
|
||
.stl-panel[data-theme="light"] .stl-tb-eyebrow { color: #57606a; }
|
||
.stl-panel[data-theme="light"] .stl-tb-text { color: #1f2328; }
|
||
.stl-panel[data-theme="light"] .stl-collapse-btn {
|
||
background: rgba(208,215,222,0.4); border-color: #d0d7de; color: #57606a;
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-collapse-btn:hover {
|
||
background: rgba(59,70,61,0.12); border-color: #3b463d; color: #3b463d;
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-tabs { border-color: #d8dee4; }
|
||
.stl-panel[data-theme="light"] .stl-tab-chip { background: #f6f8fa; border-color: #d0d7de; }
|
||
.stl-panel[data-theme="light"] .stl-tab { color: #57606a; }
|
||
.stl-panel[data-theme="light"] .stl-tab:hover { color: #1f2328; }
|
||
.stl-panel[data-theme="light"] .stl-tab-chip.active {
|
||
background: #3b463d; border-color: #3b463d;
|
||
box-shadow: 0 0 0 2px rgba(59,70,61,0.18);
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-tab-chip.active .stl-tab { color: #fff; }
|
||
.stl-panel[data-theme="light"] .stl-tab-info {
|
||
background: rgba(208,215,222,0.4); border-color: #d0d7de; color: #57606a;
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-info-pop { background: #f6f8fa; border-color: #d0d7de; color: #1f2328; }
|
||
.stl-panel[data-theme="light"] .stl-col-hdr { background: #f6f8fa; border-color: #d8dee4; }
|
||
.stl-panel[data-theme="light"] .stl-hdr-name,
|
||
.stl-panel[data-theme="light"] .stl-hdr-num { color: #57606a; }
|
||
.stl-panel[data-theme="light"] .stl-hdr-num:hover { color: #3b463d; }
|
||
.stl-panel[data-theme="light"] .stl-hdr-num.active { color: #3b463d; }
|
||
.stl-panel[data-theme="light"] .stl-rows::-webkit-scrollbar-thumb { background: #d0d7de; }
|
||
.stl-panel[data-theme="light"] .stl-rows::-webkit-scrollbar-thumb:hover { background: #afb8c1; }
|
||
.stl-panel[data-theme="light"] .stl-empty,
|
||
.stl-panel[data-theme="light"] .stl-overflow {
|
||
color: #57606a; background: #f6f8fa; border-color: #d8dee4;
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-overflow-hint { color: #3b463d; }
|
||
.stl-panel[data-theme="light"] .stl-row { border-color: rgba(208,215,222,0.5); }
|
||
.stl-panel[data-theme="light"] .stl-row:hover { background: rgba(59,70,61,0.04); }
|
||
.stl-panel[data-theme="light"] .stl-row.child .stl-name { color: #57606a; }
|
||
.stl-panel[data-theme="light"] .stl-name { color: #1f2328; }
|
||
.stl-panel[data-theme="light"] .stl-num { color: #57606a; }
|
||
.stl-panel[data-theme="light"] .stl-row.selected .stl-num { color: #1f2328; }
|
||
.stl-panel[data-theme="light"] .stl-caret { color: #57606a; }
|
||
.stl-panel[data-theme="light"] .stl-caret:hover { background: rgba(59,70,61,0.08); color: #3b463d; }
|
||
.stl-reopen[data-theme="light"] {
|
||
background: #ffffff; border-color: #d0d7de; color: #1f2328;
|
||
box-shadow: 0 4px 16px rgba(31,35,40,0.18);
|
||
}
|
||
.stl-reopen[data-theme="light"]:hover {
|
||
background: #f6f8fa; border-color: #3b463d; color: #3b463d;
|
||
box-shadow: 0 6px 20px rgba(59,70,61,0.2);
|
||
}
|
||
.stl-reopen[data-theme="light"] .stl-reopen-icon { color: #3b463d; }
|
||
.stl-reopen[data-theme="light"] .stl-reopen-caret { color: #57606a; }
|
||
.stl-panel[data-theme="light"] .stl-x-chip { color: #57606a; border-color: rgba(208,215,222,0.6); }
|
||
.stl-panel[data-theme="light"] .stl-x-chip:hover { color: #1f2328; background: rgba(208,215,222,0.3); border-color: #afb8c1; }
|
||
.stl-export { margin-left: auto; position: relative; flex-shrink: 0; }
|
||
.stl-export-btn {
|
||
display: inline-flex; align-items: center; gap: 5px;
|
||
background: rgba(110,118,129,0.15); border: 1px solid #30363d; border-radius: 6px;
|
||
color: #c9d1d9; cursor: pointer;
|
||
height: 22px; padding: 0 8px;
|
||
font: 600 10px ui-monospace, monospace; text-transform: uppercase; letter-spacing: 0.05em;
|
||
transition: color 0.12s, background 0.12s, border-color 0.12s;
|
||
}
|
||
.stl-export-btn:hover { color: #fff; background: rgba(59,70,61,0.25); border-color: #73A17F; }
|
||
.stl-export-btn.open { color: #fff; background: #3b463d; border-color: #73A17F; box-shadow: 0 0 0 2px rgba(115,161,127,0.22); }
|
||
.stl-export-btn:focus-visible { outline: none; border-color: #73A17F; box-shadow: 0 0 0 2px rgba(115,161,127,0.3); }
|
||
.stl-export-label { line-height: 1; }
|
||
.stl-export-backdrop { position: fixed; inset: 0; z-index: 9; }
|
||
.stl-export-menu {
|
||
position: absolute; right: 0; top: calc(100% + 6px); z-index: 10;
|
||
min-width: 168px;
|
||
display: flex; flex-direction: column;
|
||
background: #0d1117; border: 1px solid #30363d; border-radius: 8px;
|
||
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
|
||
padding: 4px; overflow: hidden;
|
||
}
|
||
.stl-export-item {
|
||
display: flex; align-items: center; gap: 8px;
|
||
background: transparent; border: none; border-radius: 5px;
|
||
padding: 7px 8px; width: 100%; text-align: left;
|
||
color: #6e7681; cursor: not-allowed;
|
||
font: 600 11px system-ui, sans-serif;
|
||
}
|
||
.stl-export-item[disabled] { opacity: 0.55; }
|
||
.stl-export-lock { color: #6e7681; flex-shrink: 0; }
|
||
.stl-export-item-label { flex: 1; min-width: 0; }
|
||
.stl-export-soon {
|
||
flex-shrink: 0;
|
||
font: 700 8px ui-monospace, monospace; text-transform: uppercase; letter-spacing: 0.06em;
|
||
color: #6e7681; background: rgba(110,118,129,0.15);
|
||
border-radius: 4px; padding: 2px 5px;
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-export-btn {
|
||
background: rgba(208,215,222,0.4); border-color: #d0d7de; color: #57606a;
|
||
}
|
||
.stl-panel[data-theme="light"] .stl-export-btn:hover { color: #3b463d; background: rgba(59,70,61,0.12); border-color: #3b463d; }
|
||
.stl-panel[data-theme="light"] .stl-export-btn.open { color: #fff; background: #3b463d; border-color: #3b463d; }
|
||
.stl-panel[data-theme="light"] .stl-export-menu { background: #ffffff; border-color: #d0d7de; box-shadow: 0 8px 24px rgba(31,35,40,0.18); }
|
||
.stl-panel[data-theme="light"] .stl-export-item { color: #57606a; }
|
||
.stl-panel[data-theme="light"] .stl-export-lock { color: #57606a; }
|
||
.stl-panel[data-theme="light"] .stl-export-soon { color: #57606a; background: rgba(208,215,222,0.5); }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-tb-title,
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-tb-text { font-size: 14px; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-tb-eyebrow { font-size: 11px; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-tab { font-size: 12px; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-hdr-name { font-size: 13px; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-hdr-num { font-size: 10px; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-name { font-size: 15px; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-num { font-size: 13px; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-inner { --stl-num-w: 70px; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-hdr-num,
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-num { white-space: nowrap; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-info-pop { font-size: 13px; }
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-empty,
|
||
.stl-panel:not(.legend-mobile-sheet *) .stl-overflow { font-size: 12.5px; }
|
||
`,"semantic-tree-legend"),(I,q)=>{var fe,_e,xe,Je;return Q(),ae(Ge,null,[F("div",{class:Fe(["stl-panel",{closed:!G.value,"fit-content":e.hideTabs}]),"data-theme":((fe=ce(c))==null?void 0:fe.theme.value)||"dark"},[F("div",zv,[F("div",{class:Fe(["stl-titlebar",{"has-progress":!!g.value}])},[F("span",Uv,[Nn(I.$slots,"title-caret",{},void 0,!0)]),I.$slots["title-caret"]?$e("",!0):(Q(),ae("button",{key:0,class:Fe(["stl-collapse-btn",{closed:!G.value}]),title:G.value?ce(n)("aria.collapseLegend"):ce(n)("aria.expandLegend"),"aria-label":G.value?ce(n)("aria.collapseLegend"):ce(n)("aria.expandLegend"),"aria-expanded":String(G.value),onClick:q[0]||(q[0]=Ne=>{G.value=!G.value,l("update:open",G.value)})},[...q[8]||(q[8]=[F("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,Hv)),Y.value&&O.value?(Q(),ae(Ge,{key:1},[F("span",Kv,be(Y.value.tabName),1),F("button",{type:"button",class:"stl-tb-up",title:`Go up to ${Y.value.node.label}`,"aria-label":`Go up to ${Y.value.tabName} ${Y.value.node.label}`,onClick:ht(N,["stop"])},[q[9]||(q[9]=F("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[F("path",{d:"M3 7.5L6 4.5L9 7.5",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),Y.value.node.color?(Q(),ae("span",{key:0,class:"stl-tb-dot",style:st({background:Y.value.node.color})},null,4)):$e("",!0),F("span",{class:"stl-tb-text",title:Y.value.node.label},be(Y.value.node.label),9,Wv)],8,Vv)],64)):(Q(),ae("span",qv,be(f.value),1)),e.exportEnabled&&O.value?(Q(),ae("div",Yv,[F("button",{type:"button",class:Fe(["stl-export-btn",{open:ne.value}]),"aria-expanded":ne.value?"true":"false","aria-haspopup":"menu",title:ce(n)("legend.exportSelection"),"aria-label":ce(n)("legend.exportSelection"),onClick:ht(j,["stop"])},[q[10]||(q[10]=F("svg",{width:"11",height:"11",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true"},[F("path",{d:"M7 1.5V9M7 1.5L4.2 4.3M7 1.5L9.8 4.3",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),F("path",{d:"M2 9.5V11.5C2 12.05 2.45 12.5 3 12.5H11C11.55 12.5 12 12.05 12 11.5V9.5",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})],-1)),F("span",Xv,be(ce(n)("legend.exportButton")),1)],10,Zv),ne.value?(Q(),ae(Ge,{key:0},[F("div",{ref_key:"scrimRef",ref:he,style:st(ce(K)),class:"stl-export-backdrop",onClick:q[1]||(q[1]=ht(Ne=>ne.value=!1,["stop"]))},null,4),F("div",Jv,[F("button",{type:"button",class:"stl-export-item",role:"menuitem",onClick:q[2]||(q[2]=ht(Ne=>X("poster"),["stop"]))},[q[11]||(q[11]=F("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[F("rect",{x:"2",y:"1.5",width:"8",height:"9",rx:"1",stroke:"currentColor","stroke-width":"1.3"}),F("path",{d:"M4 4.5H8M4 6.5H8M4 8.5H6.5",stroke:"currentColor","stroke-width":"1.1","stroke-linecap":"round"})],-1)),F("span",Qv,be(ce(n)("legend.export.poster")),1)]),F("button",{type:"button",class:"stl-export-item",role:"menuitem",onClick:q[3]||(q[3]=ht(Ne=>X("packet"),["stop"]))},[q[12]||(q[12]=F("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[F("path",{d:"M3 1.5H7.5L9.5 3.5V10.5H3V1.5Z",stroke:"currentColor","stroke-width":"1.3","stroke-linejoin":"round"}),F("path",{d:"M7.5 1.5V3.5H9.5",stroke:"currentColor","stroke-width":"1.3","stroke-linejoin":"round"}),F("path",{d:"M4.5 6H8M4.5 8H7",stroke:"currentColor","stroke-width":"1.1","stroke-linecap":"round"})],-1)),F("span",e1,be(ce(n)("legend.export.packet")),1)])])],64)):$e("",!0)])):$e("",!0),g.value?(Q(),Ze(wp,{key:4,class:"stl-progress","show-text":!1,covered:g.value.covered,total:g.value.total,segments:g.value.segments,"is-dark":k.value,"fmt-count":nt,onSelectSegment:y},null,8,["covered","total","segments","is-dark"])):$e("",!0)],2),e.hideTabs?$e("",!0):(Q(),ae("div",t1,[F("div",o1,[(Q(!0),ae(Ge,null,Ct(w.value,(Ne,Z)=>(Q(),ae("div",{key:Ne.id,class:Fe(["stl-tab-chip",{active:z.value===Z}])},[F("button",{class:"stl-tab",onClick:le=>V(Z)},be(s(Ne)),9,n1),Ne.info?(Q(),ae("button",{key:0,class:"stl-tab-info",title:r(Ne),onClick:le=>ie(Z,le)},"i",8,a1)):$e("",!0)],2))),128))]),W.value!==null&&((_e=w.value[W.value])!=null&&_e.info)?(Q(),ae("div",s1,be(r(w.value[W.value])),1)):$e("",!0)])),F("div",r1,[q[13]||(q[13]=F("span",{class:"stl-caret-sp"},null,-1)),q[14]||(q[14]=F("span",{class:"stl-dot-sp"},null,-1)),F("span",i1,be(e.columnLabel||(e.hideTabs?e.title:s(w.value[z.value])||ce(n)("legend.columns.name"))),1),H.value?(Q(),ae("button",{key:0,class:Fe(["stl-hdr-num",{active:C.value==="count"}]),title:ce(n)("legend.sortByUpgs"),onClick:q[4]||(q[4]=Ne=>Me("count"))},[ft(be(ce(n)("legend.columns.upgs"))+" ",1),C.value==="count"?(Q(),ae("span",c1,be(D.value==="desc"?"▼":"▲"),1)):$e("",!0)],10,l1)):$e("",!0),E.value?(Q(),ae("button",{key:1,class:Fe(["stl-hdr-num",{active:C.value==="pop"}]),title:ce(n)("legend.sortByPop"),onClick:q[5]||(q[5]=Ne=>Me("pop"))},[ft(be(ce(n)("legend.columns.population"))+" ",1),C.value==="pop"?(Q(),ae("span",p1,be(D.value==="desc"?"▼":"▲"),1)):$e("",!0)],10,u1)):$e("",!0),q[15]||(q[15]=F("span",{class:"stl-x-slot"},null,-1))]),F("div",{class:Fe(["stl-rows",{"has-sel":B.value}]),ref_key:"rowsContainer",ref:se},[(Q(!0),ae(Ge,null,Ct(L.value,Ne=>{var Z,le;return Q(),ae("div",{key:Ne.node.id,class:Fe(["stl-row",at(Ne)]),"data-stl-node-id":Ne.node.id,style:st({"--trunk-color":((Z=Ne.parent)==null?void 0:Z.color)||"#6e7681","--row-color":Ne.node.color||"#73A17F"}),onClick:de=>d(Ne.node)},[(Q(!0),ae(Ge,null,Ct(Ne.trunks,(de,De)=>(Q(),ae("span",{key:`tr${De}`,class:Fe(["stl-trunk",`stl-trunk-${de}`])},null,2))),128)),(le=Ne.node.children)!=null&&le.length?(Q(),ae("button",{key:0,class:Fe(["stl-caret",{open:h.value.has(Ne.node.id)}]),"aria-expanded":h.value.has(Ne.node.id)?"true":"false","aria-label":ce(n)(h.value.has(Ne.node.id)?"legend.a11y.collapseRow":"legend.a11y.expandRow",{label:Ne.node.label}),onClick:ht(de=>p(Ne.node.id,de),["stop"])},[...q[16]||(q[16]=[F("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,g1)):(Q(),ae("span",f1)),Ne.node.color?(Q(),ae("span",{key:2,class:"stl-dot",style:st({background:Ne.node.color})},null,4)):(Q(),ae("span",h1)),F("span",m1,be(Ne.node.label),1),H.value?(Q(),ae("span",b1,be(nt(Ne.node.count)),1)):$e("",!0),E.value?(Q(),ae("span",y1,be(Be(Ne.node.pop)),1)):$e("",!0),F("span",_1,[U.value===Ne.node.id?(Q(),ae("button",{key:0,class:"stl-x-chip",title:ce(n)("legend.a11y.clearSelection"),"aria-label":ce(n)("legend.a11y.clearSelection"),onClick:q[6]||(q[6]=ht(de=>ue(de),["stop"]))},[...q[17]||(q[17]=[F("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,$1)):$e("",!0)])],14,d1)}),128)),we.value&&!L.value.length?(Q(),ae("div",v1,[q[18]||(q[18]=F("span",{class:"stl-spinner"},null,-1)),F("span",null,"Loading "+be(((xe=w.value[z.value])==null?void 0:xe.label)||"rows")+"…",1)])):!L.value.length&&e.nodes.length===0?(Q(),ae("div",w1,"Loading data…")):L.value.length?$e("",!0):(Q(),ae("div",k1,be(ce(n)("legend.noDataAtThisLevel")),1)),_.value>0?(Q(),ae("div",x1,[ft(" Showing top "+be(w.value[z.value].topLimit.toLocaleString())+" of "+be(oe.value.length.toLocaleString())+" — ",1),q[19]||(q[19]=F("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):$e("",!0)],2)])],10,jv),G.value?$e("",!0):(Q(),ae("button",{key:0,class:"stl-reopen","data-theme":((Je=ce(c))==null?void 0:Je.theme.value)||"dark",title:ce(n)("aria.expandLegend"),"aria-label":ce(n)("aria.expandLegend"),onClick:q[7]||(q[7]=Ne=>{G.value=!0,l("update:open",!0)})},[q[20]||(q[20]=F("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),F("span",S1,[O.value?(Q(),ae(Ge,{key:0},[O.value.color?(Q(),ae("span",{key:0,class:"stl-reopen-dot",style:st({background:O.value.color})},null,4)):$e("",!0),ft(" "+be(O.value.label),1)],64)):(Q(),ae(Ge,{key:1},[ft(be(f.value),1)],64))]),q[21]||(q[21]=F("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[F("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,A1))],64)}}},[["styles",[Bv]],["__scopeId","data-v-ddccfe3c"]]);function P1(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(to==null?void 0:to.center)||[20,10],defaultZoom:r=to==null?void 0:to.zoom}=e,i=()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}};function l(C){const D=i(),z=(O={})=>{const U={};for(const se of["center","zoom","bearing","pitch","padding"])O[se]!==void 0&&(U[se]=O[se]);return C.jumpTo(U)};return{flyTo:O=>D?z(O):C.flyTo(O),easeTo:O=>D?z(O):C.easeTo(O),fitBounds:(O,U={})=>C.fitBounds(O,D?{...U,animate:!1,duration:0}:U)}}const c={speed:.5,essential:!0,curve:1.2};function u(C,D,z={x:150,y:0}){const O=t();if(!O)return C;try{const U=O.getCanvas(),se=U.width,pe=U.height,ke=O.project(C),Ce=window.devicePixelRatio||1,Me=(z.x||0)*Ce,Ae=(z.y||0)*Ce,we={x:ke.x-Me,y:ke.y-Ae},J=O.unproject(we);return[J.lng,J.lat]}catch{return C}}function g(C,D=[]){const z=t();if(!z)return;let O=null,U=5;const se=D.filter(ke=>ke.languageFamily===C);if(se.length>0){let ke=1/0,Ce=-1/0,Me=1/0,Ae=-1/0;if(se.forEach(we=>{we.longitude&&we.latitude&&(ke=Math.min(ke,we.longitude),Ce=Math.max(Ce,we.longitude),Me=Math.min(Me,we.latitude),Ae=Math.max(Ae,we.latitude))}),ke!==1/0){O=[(ke+Ce)/2,(Me+Ae)/2];const we=Ce-ke,J=Ae-Me,re=Math.max(we,J);re>50?U=2:re>20?U=3:re>10?U=4:re>5?U=5:U=6}}if(!O)return;const pe=u(O);l(z).flyTo({center:pe,zoom:U,...c})}function f(C){const D=t();if(!D)return;let z=null,O=4;const U=K_(C);if(U)z=U.center,O=U.zoom||4;else if(a!=null&&a.features){const pe=a.features.find(ke=>{var Ce,Me;return((Ce=ke.properties)==null?void 0:Ce.region)===C||((Me=ke.properties)==null?void 0:Me.name)===C});pe&&(z=k(pe))}if(!z)return;const se=u(z);l(D).flyTo({center:se,zoom:O,...c})}function k(C){if(!C||!C.geometry)return null;const{type:D,coordinates:z}=C.geometry;let O=[];if(D==="Polygon"?O=z[0]||[]:D==="MultiPolygon"&&z.forEach(pe=>{O=O.concat(pe[0]||[])}),O.length===0)return null;let U=0,se=0;return O.forEach(pe=>{U+=pe[0],se+=pe[1]}),[U/O.length,se/O.length]}function P(C,D={}){const z=t();if(!z)return;const O={center:C,...c,...D};l(z).flyTo(O)}function y(C,D,z={}){const O=t();if(!O||(C==null?void 0:C.longitude)==null||(C==null?void 0:C.latitude)==null)return;const U=D??Math.min(O.getZoom()+2,8);P([C.longitude,C.latitude],{...z,zoom:U})}function x(C,D={top:40,right:40,bottom:40,left:40},z={}){const O=t();if(!O||!C)return;const U=z.maxZoom??4,se=z.duration??900;l(O).fitBounds(C,{padding:D,maxZoom:U,duration:se,...c,...z})}function $(){const C=t();C&&l(C).flyTo({center:s,zoom:r,...c})}const m=80,b=800,v=5,A=5,T=110,w=1.2;function S(C){const D=C.filter(Number.isFinite).slice().sort((L,B)=>L-B),z=D.length;if(!z)return null;let O=-1,U=0;for(let L=0;L<z;L++){const H=(L+1<z?D[L+1]:D[0]+360)-D[L];H>O&&(O=H,U=L)}const se=(U+1)%z,pe=new Array(z);for(let L=0;L<z;L++){let B=D[(se+L)%z];L>0&&B<pe[L-1]&&(B+=360),pe[L]=B}const ke=Math.floor(z*.025),Ce=Math.max(ke,Math.ceil(z*.975)-1),Me=pe[ke],Ae=pe[Ce],we=L=>((L+180)%360+360)%360-180,J=we(Me),re=24,oe=360/re,ve=new Array(re).fill(0);for(const L of D){let B=Math.floor(((L+180)%360+360)%360/oe);B>=re&&(B=re-1),ve[B]++}let _=0;for(let L=1;L<re;L++)ve[L]>ve[_]&&(_=L);return{center:we(-180+(_+.5)*oe),minLng:J,maxLng:J+(Ae-Me),span:Ae-Me}}function h(C){try{const D=C.getContainer&&C.getContainer().clientWidth||0,z=D>0?Math.log2(D/512):w,O=typeof C.getMinZoom=="function"?C.getMinZoom():z;return Math.max(O,z)}catch{return w}}function M(C,D,z,O){l(C).easeTo({center:[D,(z+O)/2],zoom:h(C),duration:b,essential:!0})}function G(C,D,z){if(z>T)return!0;try{const O=typeof C.cameraForBounds=="function"?C.cameraForBounds(D,{padding:m,maxZoom:v}):null;return O==null?!0:typeof O.zoom=="number"&&O.zoom<=h(C)+.05}catch{return!1}}function W(C,D){if(!Array.isArray(C))return C;switch(C[0]){case"get":return D==null?void 0:D[C[1]];case"literal":return C[1];case"has":return D!=null&&C[1]in D;case"!has":return D==null||!(C[1]in D);case"!":return!W(C[1],D);case"coalesce":{for(let O=1;O<C.length;O++){const U=W(C[O],D);if(U!=null)return U}return null}case"to-number":{const O=W(C[1],D),U=Number(O);if(Number.isFinite(U))return U;if(C.length>2){const se=Number(W(C[2],D));return Number.isFinite(se)?se:0}return NaN}case"to-string":{const O=W(C[1],D);return O==null?"":String(O)}case"to-boolean":return!!W(C[1],D);case"slice":{const O=W(C[1],D),U=W(C[2],D),se=C.length>3?W(C[3],D):void 0;return typeof O!="string"?"":se!=null?O.slice(U,se):O.slice(U)}default:return C}}function ne(C,D){if(C===!0)return!0;if(C===!1)return!1;if(!Array.isArray(C))return!!C;const z=C[0];if(z==="all"){for(let O=1;O<C.length;O++)if(!ne(C[O],D))return!1;return!0}if(z==="any"){for(let O=1;O<C.length;O++)if(ne(C[O],D))return!0;return!1}if(z==="!")return!ne(C[1],D);if(z==="has")return D!=null&&C[1]in D;if(z==="!has")return D==null||!(C[1]in D);if(z==="=="||z==="!="||z===">"||z===">="||z==="<"||z==="<="){const O=typeof C[1]=="string"?D==null?void 0:D[C[1]]:W(C[1],D),U=W(C[2],D);switch(z){case"==":return O===U||O==null&&U==null;case"!=":return!(O===U||O==null&&U==null);case">":return O>U;case">=":return O>=U;case"<":return O<U;case"<=":return O<=U}}if(z==="in"){const O=W(C[1],D),U=W(C[2],D);return Array.isArray(U)||typeof U=="string"?U.includes(O):!1}if(z==="match"){const O=W(C[1],D),U=C.length-1;for(let se=2;se<U;se+=2){const pe=C[se];if((Array.isArray(pe)?pe:[pe]).includes(O))return!!W(C[se+1],D)}return!!W(C[U],D)}return!1}function he(C,D){var U,se;const z=C.getSource(D);if(!z)return[];const O=z._data??((se=(U=z.serialize)==null?void 0:U.call(z))==null?void 0:se.data);return O?Array.isArray(O==null?void 0:O.features)?O.features:(O==null?void 0:O.type)==="Feature"?[O]:[]:[]}function K(C,D={}){var ve,_;const z=t();if(!z||!C)return;if(D.regionPolygonSource&&z.getSource(D.regionPolygonSource)){const R=he(z,D.regionPolygonSource),L=C.id??C.label,B=R.find(H=>{const E=(H==null?void 0:H.properties)||{};return E.region===L||E.name===L||E.id===L});if(B){const H=[];let E=1/0,ee=-1/0;const Y=p=>{for(const N of p)Array.isArray(N[0])?Y(N):Number.isFinite(N[0])&&Number.isFinite(N[1])&&(H.push(N[0]),N[1]<E&&(E=N[1]),N[1]>ee&&(ee=N[1]))};(ve=B.geometry)!=null&&ve.coordinates&&Y(B.geometry.coordinates);const d=S(H);if(d&&Number.isFinite(E)){const p=[[d.minLng,E],[d.maxLng,ee]];G(z,p,d.span)?M(z,d.center,E,ee):l(z).fitBounds(p,{padding:m,maxZoom:v,duration:b,essential:!0});return}}}const O=D.sourceId??"language-families";if(!z.getSource(O))return;const U=D.matchExpr??C.filter;if(!U)return;const se=he(z,O);if(!se.length)return;const pe=[];let ke=1/0,Ce=-1/0,Me=0,Ae=0,we=0;const J=new Set;for(const R of se){const L=R==null?void 0:R.properties;if(!ne(U,L))continue;const B=L==null?void 0:L.uniqueId;if(B!=null){if(J.has(B))continue;J.add(B)}const H=(_=R.geometry)==null?void 0:_.coordinates;if(!Array.isArray(H)||H.length<2)continue;const E=H[0],ee=H[1];!Number.isFinite(E)||!Number.isFinite(ee)||(Me===0&&(Ae=E,we=ee),pe.push(E),ee<ke&&(ke=ee),ee>Ce&&(Ce=ee),Me++)}if(Me===0)return;if(Me===1){l(z).flyTo({center:[Ae,we],zoom:A,duration:b,essential:!0});return}const re=S(pe)||{center:0,minLng:0,maxLng:0,span:0},oe=[[re.minLng,ke],[re.maxLng,Ce]];if(G(z,oe,re.span)){M(z,re.center,ke,Ce);return}try{l(z).fitBounds(oe,{padding:m,maxZoom:v,duration:b,essential:!0})}catch{}}return{getOffsetCenter:u,slowFlyToFamily:g,slowFlyToRegion:f,flyTo:P,flyToCoords:y,fitBounds:x,resetView:$,zoomToLegendRow:K,calculateRegionCenterFromPolygon:k}}const _n="doxa-country-outline",Qn="doxa-country-outline-line",L1="mapbox://mapbox.country-boundaries-v1",T1="country_boundaries";function C1(e){var t,o,n;try{return!!((n=(o=(t=e==null?void 0:e.getContainer)==null?void 0:t.call(e))==null?void 0:o.classList)!=null&&n.contains("maplibregl-map"))}catch{return!1}}function E1(e,t){const o=["==",["get","iso_3166_1_alpha_3"],e];return t?o:["all",o,["any",["==",["get","worldview"],"all"],["in","US",["get","worldview"]]]]}function R1(e,t={}){const o=t.lineColor??"#2563eb",n=t.lineWidth??2.5,a=t.lineOpacity??.8;function s(){const i=typeof e=="function"?e():null;if(i)try{i.getLayer(Qn)&&i.removeLayer(Qn),i.getSource(_n)&&i.removeSource(_n)}catch{}}function r(i){const l=String(i||"").trim().toUpperCase();if(l.length!==3)return;const c=typeof e=="function"?e():null;if(!c)return;const u=C1(c),g=E1(l,u);if(c.getLayer(Qn))try{c.setFilter(Qn,g);return}catch{}s();try{u?(c.addSource(_n,{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${qr(null)}/boundaries/world-adm0.geojson`).then(f=>f.json()).then(f=>{for(const y of f.features||[])y.properties&&y.properties.iso3&&(y.properties.iso_3166_1_alpha_3=y.properties.iso3);const k=typeof e=="function"?e():null,P=k&&k.getSource(_n);P&&P.setData(f)}).catch(f=>console.warn("[country-outline] boundaries failed to load",f))):c.addSource(_n,{type:"vector",url:L1}),c.addLayer({id:Qn,type:"line",source:_n,...u?{}:{"source-layer":T1},filter:g,layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":o,"line-width":n,"line-opacity":a,...No(c,"line")}})}catch{}}return{showCountry:r,clearCountry:s}}const N1={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=ge(null);return yt("mapToolbar",{el:t}),Ft(`
|
||
.map-toolbar {
|
||
position: absolute;
|
||
top: 6px;
|
||
inset-inline-end: 3px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: var(--map-toolbar-gap, 8px);
|
||
z-index: 10;
|
||
}
|
||
.map-toolbar .mcb,
|
||
.map-toolbar .hbg-btn { width: 32px; height: 32px; }
|
||
.map-toolbar .hbg-ctrl { margin: 10px 0 0 0; }
|
||
@media (max-width: 767px) {
|
||
.map-toolbar { top: 72px; gap: 6px; }
|
||
.map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; }
|
||
}
|
||
`,"map-toolbar"),(o,n)=>(Q(),ae("div",{ref_key:"toolbarEl",ref:t,class:Fe(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Nn(o.$slots,"default")],2))}},M1=["title","aria-label","disabled"],Wo={__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 Ft(`
|
||
.mcb{
|
||
width:var(--map-btn-size,40px);height:var(--map-btn-size,40px);
|
||
background:#fff;
|
||
border:none;
|
||
border-radius:50%;
|
||
cursor:pointer;
|
||
user-select:none;-webkit-user-select:none;
|
||
display:flex;align-items:center;justify-content:center;
|
||
box-shadow:0 1px 3px rgba(0,0,0,0.18);
|
||
transition:background-color 0.2s,box-shadow 0.2s,transform 0.1s;
|
||
color:#333;
|
||
flex-shrink:0;
|
||
outline:none;
|
||
-webkit-tap-highlight-color:transparent;
|
||
}
|
||
.mcb:hover:not(:disabled){background:#f0f0f0;box-shadow:0 2px 8px rgba(0,0,0,0.18),0 4px 16px rgba(0,0,0,0.12);}
|
||
.mcb:active:not(:disabled){transform:scale(0.93);}
|
||
.mcb:disabled{opacity:0.4;cursor:not-allowed;}
|
||
.mcb:focus-visible{outline:2px solid #1a73e8;outline-offset:2px;}
|
||
.mcb.dark:focus-visible{outline:2px solid #92b195;outline-offset:2px;}
|
||
.mcb.active{background:#e8f0fe;color:#1a73e8;}
|
||
.mcb.dark{background:#3b463d;color:#F3F3F1;border:1px solid rgba(255,255,255,0.14);box-shadow:0 1px 4px rgba(0,0,0,0.4);}
|
||
.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)=>(Q(),ae("button",{class:Fe(["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"))},[Nn(t.$slots,"default")],10,M1))}},F1={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=ut(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomIn()}return(a,s)=>(Q(),Ze(Wo,{"is-dark":e.isDark,disabled:e.disabled,title:ce(t)("buttons.zoomIn"),onClick:n},{default:Tt(()=>[...s[0]||(s[0]=[F("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},I1={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=ut(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomOut()}return(a,s)=>(Q(),Ze(Wo,{"is-dark":e.isDark,disabled:e.disabled,title:ce(t)("buttons.zoomOut"),onClick:n},{default:Tt(()=>[...s[0]||(s[0]=[F("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},O1={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=ut(),o=e;function n(){var s;(s=o.map)==null||s.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(s=>{const{longitude:r,latitude:i}=s.coords;Number.isFinite(r)&&Number.isFinite(i)?o.map.flyTo({center:[r,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(s,r)=>(Q(),Ze(Wo,{"is-dark":e.isDark,title:ce(t)("buttons.resetView"),onClick:a},{default:Tt(()=>[...r[0]||(r[0]=[F("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[F("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},D1={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},G1={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},B1={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=ut(),n=e,a=t,s=ge(!1);let r=null,i=null,l=null,c=null,u=null,g=null,f=null,k=null,P=null,y=null,x=null,$=0,m=0,b=null,v=null;function A(){if(typeof document>"u")return!1;const K=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(K)||K.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function T(){var K,C,D;return((D=(C=(K=n.mapContainer)==null?void 0:K.getRootNode)==null?void 0:C.call(K))==null?void 0:D.host)??null}function w(){var C,D;const K=(D=(C=n.mapContainer)==null?void 0:C.getRootNode)==null?void 0:D.call(C);return document.fullscreenElement||document.webkitFullscreenElement||(K&&K instanceof ShadowRoot?K.fullscreenElement:null)||null}function S(K){const C=K.requestFullscreen||K.webkitRequestFullscreen;if(!C)return Promise.reject(new Error("Fullscreen API unavailable"));const D=C.call(K);return D&&typeof D.then=="function"?D:Promise.resolve()}function h(){const K=document.exitFullscreen||document.webkitExitFullscreen;if(!K)return Promise.reject(new Error("Fullscreen API unavailable"));const C=K.call(document);return C&&typeof C.then=="function"?C:Promise.resolve()}function M(){const K=T();if(!K)return!1;if(l=K,i=K.style.cssText,K.style.position="fixed",K.style.top="0",K.style.left="0",K.style.right="0",K.style.bottom="0",K.style.width="100vw",K.style.height="100vh",K.style.height="100dvh",K.style.zIndex="2147483647",K.style.margin="0",K.style.borderRadius="0",K.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){$=window.scrollY||window.pageYOffset||0,m=window.scrollX||window.pageXOffset||0;const C=document.body,D=document.documentElement;c=C?C.style.overflow:null,u=D?D.style.overflow:null,g=C?C.style.position:null,f=C?C.style.top:null,k=C?C.style.left:null,P=C?C.style.width:null,y=C?C.style.touchAction:null,x=D?D.style.touchAction:null,D&&(D.style.overflow="hidden",D.style.touchAction="none"),C&&(C.style.overflow="hidden",C.style.position="fixed",C.style.top=`-${$}px`,C.style.left=`-${m}px`,C.style.width="100%",C.style.touchAction="none"),b=z=>{if(!l)return;const O=z.target;O&&(O===l||l.contains&&l.contains(O))||z.cancelable&&z.preventDefault()},v=z=>{if(!l)return;const O=z.target;O&&(O===l||l.contains&&l.contains(O))||z.cancelable&&z.preventDefault()},document.addEventListener("touchmove",b,{passive:!1,capture:!0}),document.addEventListener("wheel",v,{passive:!1,capture:!0})}return!0}function G(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const K=document.body,C=document.documentElement;K&&(K.style.overflow=c??"",K.style.position=g??"",K.style.top=f??"",K.style.left=k??"",K.style.width=P??"",K.style.touchAction=y??""),C&&(C.style.overflow=u??"",C.style.touchAction=x??""),b&&(document.removeEventListener("touchmove",b,{capture:!0}),b=null),v&&(document.removeEventListener("wheel",v,{capture:!0}),v=null),typeof window<"u"&&($||m)&&window.scrollTo(m,$)}c=null,u=null,g=null,f=null,k=null,P=null,y=null,x=null,$=0,m=0}}function W(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function ne(){if(!A()){s.value?(G(),s.value=!1,a("change",!1)):M()&&(s.value=!0,a("change",!0)),W();return}if(w())h().then(()=>{s.value=!1,a("change",!1)}).catch(()=>{});else{const C=T()??document.documentElement;S(C).then(()=>{s.value=!0,a("change",!0)}).catch(()=>{S(document.documentElement).then(()=>{s.value=!0,a("change",!0)}).catch(()=>{})})}}function he(){s.value=!!w(),a("change",s.value)}return qt(()=>{var C,D;document.addEventListener("fullscreenchange",he),document.addEventListener("webkitfullscreenchange",he);const K=(D=(C=n.mapContainer)==null?void 0:C.getRootNode)==null?void 0:D.call(C);K instanceof ShadowRoot&&(r=K,K.addEventListener("fullscreenchange",he),K.addEventListener("webkitfullscreenchange",he))}),Yt(()=>{document.removeEventListener("fullscreenchange",he),document.removeEventListener("webkitfullscreenchange",he),r&&(r.removeEventListener("fullscreenchange",he),r.removeEventListener("webkitfullscreenchange",he),r=null),l&&G()}),(K,C)=>(Q(),Ze(Wo,{"is-dark":e.isDark,active:s.value,title:ce(o)("buttons.toggleFullscreen"),onClick:ne},{default:Tt(()=>[s.value?(Q(),ae("svg",G1,[...C[1]||(C[1]=[F("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(Q(),ae("svg",D1,[...C[0]||(C[0]=[F("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},j1={style:{"font-size":"16px","line-height":"1"}},z1={__name:"ThemeToggleButton",props:{isDark:{type:Boolean,default:!1}},emits:["toggle"],setup(e){const{t}=ut();return(o,n)=>ce(M0)?(Q(),Ze(Wo,{key:0,"is-dark":e.isDark,title:e.isDark?ce(t)("buttons.switchToLightMode"):ce(t)("buttons.switchToDarkMode"),onClick:n[0]||(n[0]=a=>o.$emit("toggle"))},{default:Tt(()=>[F("span",j1,be(e.isDark?"☀️":"🌙"),1)]),_:1},8,["is-dark","title"])):$e("",!0)}},U1={__name:"HelpButton",props:{isDark:{type:Boolean,default:!1}},emits:["open-help"],setup(e){const{t}=ut();return(o,n)=>(Q(),Ze(Wo,{"is-dark":e.isDark,title:ce(t)("buttons.aboutThisMap"),onClick:n[0]||(n[0]=a=>o.$emit("open-help"))},{default:Tt(()=>[...n[1]||(n[1]=[F("span",{style:{"font-size":"15px","font-weight":"700","font-family":"serif","line-height":"1"}},"?",-1)])]),_:1},8,["is-dark","title"]))}},H1=["aria-label"],K1={class:"mcm-header"},V1={class:"mcm-title"},W1={class:"mcm-body"},q1=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",li="doxa-map-menu-open",Y1={__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}){Ft(`
|
||
.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;
|
||
overflow:hidden;opacity:0;transform:translateY(-4px) scale(0.98);animation:mcm-in 0.18s ease-out forwards;}
|
||
@keyframes mcm-in{to{opacity:1;transform:translateY(0) scale(1);}}
|
||
.mcm.light{background:#ffffff;border-color:#d8dee4;box-shadow:0 6px 24px rgba(0,0,0,0.16);color:#1f2328;}
|
||
.mcm-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;min-height:32px;flex:0 0 auto;border-bottom:1px solid #21262d;}
|
||
.mcm.light .mcm-header{border-bottom-color:#d8dee4;}
|
||
.mcm-title{font:600 10px ui-monospace,monospace;color:#73A17F;text-transform:uppercase;letter-spacing:0.07em;}
|
||
.mcm.light .mcm-title{color:#3b463d;}
|
||
.mcm-close{width:22px;height:20px;border:1px solid #30363d;background:rgba(110,118,129,0.12);border-radius:5px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#8b949e;padding:0;transition:color 0.1s,background 0.1s,border-color 0.1s;}
|
||
.mcm-close:hover{color:#c9d1d9;background:rgba(59,70,61,0.18);border-color:#73A17F;}
|
||
.mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;}
|
||
.mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;}
|
||
.mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
|
||
`,"map-control-menu");const o=e,n=t,a=Ee("mapToolbar",null),s=ge(null),r=ge(null),i=ge({});function l(){var h;const k=(h=a==null?void 0:a.el)==null?void 0:h.value,P=s.value;if(!k||!P){i.value={};return}const y=P.getBoundingClientRect(),x=k.getBoundingClientRect(),$=(x.left+x.right)/2>(y.left+y.right)/2,m=8,b=12,v=$?y.right-x.left+m:x.right-y.left+m,A=Math.max(200,Math.min(o.width,y.width-v-b)),T=Math.max(0,x.top-y.top);let S=P.getAttribute&&P.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-x.top-b):Math.max(120,y.height-T-b);o.matchToolbar&&(S=Math.max(120,Math.min(S,x.height))),o.maxHeight&&(S=Math.min(S,o.maxHeight)),i.value={top:`${Math.round(T)}px`,[$?"right":"left"]:`${Math.round(v)}px`,width:`${Math.round(A)}px`,maxHeight:`${Math.round(S)}px`,...o.height?{height:`${Math.round(Math.min(o.height,S))}px`}:{}}}function c(k){o.open&&k.detail!==r.value&&n("close")}je(()=>o.open,async k=>{var P;if(k){await vo(),l();try{(P=s.value)==null||P.dispatchEvent(new CustomEvent(li,{detail:r.value}))}catch{}}});function u(){o.open&&l()}function g(k){k.key==="Escape"&&o.open&&n("close")}function f(k){var y;if(!o.open)return;const P=k.composedPath?k.composedPath():[k.target];r.value&&P.includes(r.value)||(y=a==null?void 0:a.el)!=null&&y.value&&P.includes(a.el.value)||P.some(x=>{var $,m,b,v;return((m=($=x==null?void 0:x.classList)==null?void 0:$.contains)==null?void 0:m.call($,"mapboxgl-canvas"))||((v=(b=x==null?void 0:x.classList)==null?void 0:b.contains)==null?void 0:v.call(b,"maplibregl-canvas"))})&&n("close")}return qt(()=>{var k,P,y;s.value=((P=(k=a==null?void 0:a.el)==null?void 0:k.value)==null?void 0:P.closest(q1))||null,(y=s.value)==null||y.addEventListener(li,c),window.addEventListener("resize",u),document.addEventListener("click",f,!0),document.addEventListener("keydown",g)}),Yt(()=>{var k;(k=s.value)==null||k.removeEventListener(li,c),window.removeEventListener("resize",u),document.removeEventListener("click",f,!0),document.removeEventListener("keydown",g)}),(k,P)=>(Q(),Ze(Dd,{to:s.value,disabled:!s.value},[e.open?(Q(),ae("div",{key:0,ref_key:"el",ref:r,class:Fe(["mcm",{light:!e.isDark}]),style:st(i.value),role:"dialog","aria-label":e.title},[F("div",K1,[F("span",V1,be(e.title),1),F("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:P[0]||(P[0]=y=>n("close"))},[...P[1]||(P[1]=[F("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[F("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),F("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),F("div",W1,[Nn(k.$slots,"default")])],14,H1)):$e("",!0)],8,["to","disabled"]))}},Z1={class:"share-steps"},X1={class:"share-tabs"},J1={key:0,class:"share-body"},Q1={class:"share-url-box"},ew={class:"share-url-text"},tw={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},ow={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},nw={key:1,class:"share-body"},aw={class:"share-size-pills"},sw=["onClick"],rw={class:"share-code-box"},iw={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},lw={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},cw={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Ft(`
|
||
.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);
|
||
-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
|
||
opacity:0.6;animation:share-ring-turn 5s linear infinite;}
|
||
.share-wrap:hover::before{opacity:0.95;}
|
||
@keyframes share-ring-turn{to{transform:rotate(360deg);}}
|
||
@media(prefers-reduced-motion:reduce){.share-wrap::before{animation:none;}}
|
||
.share-steps{margin:10px 14px 6px;padding:0 0 0 15px;list-style:'- ';font:14px/1.55 system-ui,sans-serif;color:#c9d1d9;}
|
||
.share-steps li{margin:0 0 3px;padding-left:3px;}
|
||
.share-steps li:last-child{font-weight:600;color:#92b195;}
|
||
.share-pop.light .share-steps{color:#3b463d;}
|
||
.share-pop.light .share-steps li:last-child{color:#3b463d;}
|
||
.share-pop{
|
||
font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
|
||
font-size:13px;
|
||
color:#e6edf3;
|
||
}
|
||
.share-pop.light{color:#1f2328;}
|
||
.share-tabs{
|
||
display:flex;
|
||
gap:0;
|
||
padding:0 16px;
|
||
margin-top:8px;
|
||
border-bottom:1px solid rgba(255,255,255,0.08);
|
||
}
|
||
.share-pop.light .share-tabs{border-bottom:1px solid rgba(0,0,0,0.08);}
|
||
.share-tab{
|
||
padding:6px 0;
|
||
margin-right:20px;
|
||
font-size:12.5px;
|
||
font-weight:600;
|
||
background:none;border:none;
|
||
color:inherit;opacity:0.5;
|
||
cursor:pointer;
|
||
border-bottom:2px solid transparent;
|
||
transition:opacity 0.15s,border-color 0.2s;
|
||
font-family:inherit;
|
||
white-space:nowrap;
|
||
}
|
||
.share-tab:hover{opacity:0.75;}
|
||
.share-tab.active{
|
||
opacity:1;
|
||
border-bottom-color:#4a90d9;
|
||
}
|
||
.share-pop.light .share-tab.active{
|
||
border-bottom-color:#1a73e8;
|
||
}
|
||
.share-body{
|
||
padding:12px 16px 14px 16px;
|
||
}
|
||
.share-url-box{
|
||
display:flex;
|
||
align-items:center;
|
||
gap:0;
|
||
background:rgba(0,0,0,0.22);
|
||
border:1px solid rgba(255,255,255,0.08);
|
||
border-radius:10px;
|
||
overflow:hidden;
|
||
}
|
||
.share-pop.light .share-url-box{
|
||
background:rgba(0,0,0,0.035);
|
||
border:1px solid rgba(0,0,0,0.10);
|
||
}
|
||
.share-url-text{
|
||
flex:1;
|
||
padding:11px 14px;
|
||
font-size:13px;
|
||
color:#b0b8c8;
|
||
overflow:hidden;
|
||
text-overflow:ellipsis;
|
||
white-space:nowrap;
|
||
-webkit-user-select:all;
|
||
user-select:all;
|
||
}
|
||
.share-pop.light .share-url-text{color:#555;}
|
||
.share-primary-btn{
|
||
display:flex;
|
||
align-items:center;
|
||
justify-content:center;
|
||
gap:8px;
|
||
width:100%;
|
||
padding:12px 0;
|
||
margin-top:14px;
|
||
background:#4a90d9;
|
||
border:none;
|
||
border-radius:10px;
|
||
color:#fff;
|
||
font-size:14.5px;
|
||
font-weight:600;
|
||
cursor:pointer;
|
||
transition:background 0.15s,transform 0.1s;
|
||
font-family:inherit;
|
||
}
|
||
.share-primary-btn:hover{background:#3d7ec5;}
|
||
.share-primary-btn:active{transform:scale(0.98);}
|
||
.share-primary-btn.copied{
|
||
background:#2ea44f;
|
||
}
|
||
.share-pop.light .share-primary-btn{
|
||
background:#1a73e8;
|
||
}
|
||
.share-pop.light .share-primary-btn:hover{
|
||
background:#1565c0;
|
||
}
|
||
.share-pop.light .share-primary-btn.copied{
|
||
background:#2ea44f;
|
||
}
|
||
.share-social-row{
|
||
display:flex;
|
||
align-items:center;
|
||
gap:10px;
|
||
margin-top:16px;
|
||
padding-top:14px;
|
||
border-top:1px solid rgba(255,255,255,0.06);
|
||
}
|
||
.share-pop.light .share-social-row{
|
||
border-top:1px solid rgba(0,0,0,0.06);
|
||
}
|
||
.share-social-label{
|
||
font-size:12px;
|
||
opacity:0.45;
|
||
font-weight:500;
|
||
margin-right:auto;
|
||
white-space:nowrap;
|
||
}
|
||
.share-social-btn{
|
||
width:36px;height:36px;
|
||
border-radius:50%;
|
||
border:1px solid rgba(255,255,255,0.10);
|
||
background:rgba(255,255,255,0.06);
|
||
display:flex;align-items:center;justify-content:center;
|
||
cursor:pointer;
|
||
color:inherit;
|
||
transition:background 0.15s,border-color 0.15s;
|
||
}
|
||
.share-social-btn:hover{
|
||
background:rgba(255,255,255,0.12);
|
||
border-color:rgba(255,255,255,0.18);
|
||
}
|
||
.share-pop.light .share-social-btn{
|
||
border:1px solid rgba(0,0,0,0.10);
|
||
background:rgba(0,0,0,0.03);
|
||
}
|
||
.share-pop.light .share-social-btn:hover{
|
||
background:rgba(0,0,0,0.07);
|
||
border-color:rgba(0,0,0,0.16);
|
||
}
|
||
.share-embed-desc{
|
||
font-size:13.5px;
|
||
line-height:1.55;
|
||
opacity:0.72;
|
||
margin-bottom:16px;
|
||
}
|
||
.share-size-pills{
|
||
display:flex;
|
||
gap:8px;
|
||
margin-bottom:14px;
|
||
}
|
||
.share-size-pill{
|
||
padding:6px 14px;
|
||
border-radius:20px;
|
||
border:1px solid rgba(255,255,255,0.12);
|
||
background:transparent;
|
||
color:inherit;
|
||
font-size:12.5px;
|
||
font-weight:500;
|
||
cursor:pointer;
|
||
transition:background 0.15s,border-color 0.15s;
|
||
font-family:inherit;
|
||
}
|
||
.share-size-pill:hover{
|
||
background:rgba(255,255,255,0.06);
|
||
}
|
||
.share-size-pill.active{
|
||
background:rgba(74,144,217,0.18);
|
||
border-color:rgba(74,144,217,0.45);
|
||
color:#7ab8f5;
|
||
}
|
||
.share-pop.light .share-size-pill{
|
||
border:1px solid rgba(0,0,0,0.12);
|
||
}
|
||
.share-pop.light .share-size-pill:hover{
|
||
background:rgba(0,0,0,0.04);
|
||
}
|
||
.share-pop.light .share-size-pill.active{
|
||
background:rgba(26,115,232,0.10);
|
||
border-color:rgba(26,115,232,0.40);
|
||
color:#1a73e8;
|
||
}
|
||
.share-code-box{
|
||
background:rgba(0,0,0,0.28);
|
||
border:1px solid rgba(255,255,255,0.06);
|
||
border-radius:10px;
|
||
padding:12px 14px;
|
||
font-family:'SF Mono',SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;
|
||
font-size:11.5px;
|
||
line-height:1.5;
|
||
color:#a0aab8;
|
||
word-break:break-all;
|
||
white-space:pre-wrap;
|
||
height:auto;
|
||
-webkit-user-select:all;
|
||
user-select:all;
|
||
}
|
||
.share-pop.light .share-code-box{
|
||
background:rgba(0,0,0,0.035);
|
||
border:1px solid rgba(0,0,0,0.08);
|
||
color:#444;
|
||
}
|
||
.share-secondary-btn{
|
||
display:flex;
|
||
align-items:center;
|
||
justify-content:center;
|
||
gap:8px;
|
||
width:100%;
|
||
padding:11px 0;
|
||
margin-top:12px;
|
||
background:rgba(255,255,255,0.08);
|
||
border:1px solid rgba(255,255,255,0.12);
|
||
border-radius:10px;
|
||
color:#e0e4ec;
|
||
font-size:14px;
|
||
font-weight:600;
|
||
cursor:pointer;
|
||
transition:background 0.15s,border-color 0.15s,transform 0.1s;
|
||
font-family:inherit;
|
||
}
|
||
.share-secondary-btn:hover{
|
||
background:rgba(255,255,255,0.13);
|
||
border-color:rgba(255,255,255,0.18);
|
||
}
|
||
.share-secondary-btn:active{transform:scale(0.98);}
|
||
.share-secondary-btn.copied{
|
||
background:rgba(46,164,79,0.16);
|
||
border-color:rgba(46,164,79,0.35);
|
||
color:#5cd680;
|
||
}
|
||
.share-pop.light .share-secondary-btn{
|
||
background:rgba(0,0,0,0.04);
|
||
border:1px solid rgba(0,0,0,0.12);
|
||
color:#333;
|
||
}
|
||
.share-pop.light .share-secondary-btn:hover{
|
||
background:rgba(0,0,0,0.07);
|
||
}
|
||
.share-pop.light .share-secondary-btn.copied{
|
||
background:rgba(46,164,79,0.10);
|
||
border-color:rgba(46,164,79,0.30);
|
||
color:#2ea44f;
|
||
}
|
||
`,"share-button");const{t,tm:o,rt:n}=ut(),a=e,s=ge(null),r=ge(!1),i=ge(null),l=ge(null),c=ge("link"),u=ge(!1),g=ge(!1),f=ge("medium"),k={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},P=Ee("profileConfig",null),y=te(()=>U_({embedPath:a.embedPath,profileConfig:ce(P)||null})),x=te(()=>{const M=k[f.value].height;return'<iframe src="'+y.value+'" width="100%" height="'+M+'" style="border:none; border-radius:12px;" allowfullscreen></iframe>'});function $(){r.value=!r.value,r.value&&(c.value="link",u.value=!1,g.value=!1)}function m(){r.value=!1}async function b(M){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(M),!0}catch{}try{const G=document.createElement("textarea");G.value=M,G.setAttribute("readonly",""),G.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(G),G.select();const W=document.execCommand("copy");return document.body.removeChild(G),W}catch{return!1}}async function v(){await b(y.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function A(){await b(x.value)&&(g.value=!0,setTimeout(()=>{g.value=!1},2e3))}const T=Ee("mapToolbar",null),w=ge(null);yt("mapToolbar",T||{el:w});const S=!T;function h(M){if(s.value=M||null,!S||!M){M||(w.value=null);return}const G=M.offsetParent||M.parentElement;G&&!G.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&G.setAttribute("data-map-area","share-fallback"),w.value=M}return(M,G)=>(Q(),ae("div",{ref:h,class:"share-wrap","data-share-root":""},[We(Wo,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:r.value,title:ce(t)("buttons.share"),onClick:$},{default:Tt(()=>[...G[2]||(G[2]=[F("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"},[F("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),F("polyline",{points:"16 6 12 2 8 6"}),F("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),We(Y1,{open:r.value,title:ce(t)("buttons.share"),"is-dark":e.isDark,onClose:m},{default:Tt(()=>[F("div",{ref_key:"popoverEl",ref:i,class:Fe(["share-pop",{light:!e.isDark}])},[F("ul",Z1,[(Q(!0),ae(Ge,null,Ct(ce(o)("buttons.shareSteps"),(W,ne)=>(Q(),ae("li",{key:ne},be(ce(n)(W)),1))),128))]),F("div",X1,[F("button",{class:Fe(["share-tab",{active:c.value==="link"}]),onClick:G[0]||(G[0]=W=>c.value="link")},"Embed link",2),F("button",{class:Fe(["share-tab",{active:c.value==="embed"}]),onClick:G[1]||(G[1]=W=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(Q(),ae("div",J1,[F("div",Q1,[F("div",ew,be(y.value),1)]),F("button",{class:Fe(["share-primary-btn",{copied:u.value}]),onClick:v},[u.value?(Q(),ae("svg",ow,[...G[4]||(G[4]=[F("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(Q(),ae("svg",tw,[...G[3]||(G[3]=[F("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),F("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),ft(" "+be(u.value?"Copied!":"Copy Link"),1)],2)])):$e("",!0),c.value==="embed"?(Q(),ae("div",nw,[G[7]||(G[7]=F("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),F("div",aw,[(Q(),ae(Ge,null,Ct(k,(W,ne)=>F("button",{key:ne,class:Fe(["share-size-pill",{active:f.value===ne}]),onClick:he=>f.value=ne},be(W.label),11,sw)),64))]),F("div",rw,be(x.value),1),F("button",{class:Fe(["share-secondary-btn",{copied:g.value}]),onClick:A},[g.value?(Q(),ae("svg",lw,[...G[6]||(G[6]=[F("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(Q(),ae("svg",iw,[...G[5]||(G[5]=[F("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),F("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),ft(" "+be(g.value?"Copied!":"Copy Code"),1)],2)])):$e("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},uw=".dsm-root[data-v-e1b7d4dd]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden}.dsm-tab-bar[data-v-e1b7d4dd]{flex:0 0 auto;display:flex;align-items:center;background:#fff;border-bottom:2px solid #e0e0e0;box-shadow:0 2px 4px #00000014;height:48px;padding:0 12px;gap:4px;z-index:10}.dsm-tab[data-v-e1b7d4dd]{background:none;border:none;padding:0 20px;height:100%;font-size:14px;font-weight:500;color:#555;cursor:pointer;border-bottom:3px solid transparent;transition:color .15s,border-color .15s,background .15s;white-space:nowrap}.dsm-tab[data-v-e1b7d4dd]:hover{background:#3498db0f;color:#3498db}.dsm-tab.active[data-v-e1b7d4dd]{color:#3498db;border-bottom-color:#3498db;background:#3498db0f}.dsm-map-area[data-v-e1b7d4dd]{flex:1 1 0;position:relative;overflow:hidden}.dsm-map-canvas[data-v-e1b7d4dd]{position:absolute;top:0;right:0;bottom:0;left:0}.dsm-loading[data-v-e1b7d4dd]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f3f3f1;color:#6d766e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;z-index:5}.dsm-error[data-v-e1b7d4dd]{position:absolute;top:50%;left:12px;right:12px;z-index:7;transform:translateY(-50%);text-align:center;font:13px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#7f1d1d;background:#fffffff0;border:1px solid rgba(127,29,29,.25);border-radius:10px;padding:12px 14px;box-shadow:0 2px 10px #00000029}",pw=["dir"],dw={key:0,class:"dsm-tab-bar"},gw=["onClick"],fw={class:"dsm-map-area"},hw={key:0,class:"dsm-loading"},mw={key:1,class:"dsm-error"},bw={class:"dsm-legend-desktop-slot"},yw={class:"dsm-legend-mobile-slot"},_w={class:"dsm-help-modal"},$w=["aria-label"],rs="language-family-pins-active",is="language-family-pins-pulse",Ep="language-family-pins-hitbox",vw=Object.freeze(Object.defineProperty({__proto__:null,default:To({__name:"doxa-simple-map",setup(e){var _e,xe,Je,Ne;const t=nr(()=>ls(()=>Promise.resolve().then(()=>Mp),void 0));Ft(`
|
||
.dsm-root { position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden; }
|
||
.dsm-tab-bar { flex:0 0 auto;display:flex;align-items:center;background:#fff;border-bottom:2px solid #e0e0e0;box-shadow:0 2px 4px rgba(0,0,0,.08);height:48px;padding:0 12px;gap:4px;z-index:10; }
|
||
.dsm-tab { background:none;border:none;padding:0 20px;height:100%;font-size:14px;font-weight:500;color:#555;cursor:pointer;border-bottom:3px solid transparent;transition:color .15s,border-color .15s,background .15s;white-space:nowrap; }
|
||
.dsm-tab:hover { background:rgba(52,152,219,.06);color:#3498db; }
|
||
.dsm-tab.active { color:#3498db;border-bottom-color:#3498db;background:rgba(52,152,219,.06); }
|
||
.dsm-map-area { flex:1 1 0;position:relative;overflow:hidden; }
|
||
.dsm-root, .dsm-map-area, .dsm-map-canvas,
|
||
.dsm-map-canvas .mapboxgl-canvas-container, .dsm-map-canvas .mapboxgl-canvas,
|
||
.dsm-map-canvas .maplibregl-canvas-container, .dsm-map-canvas .maplibregl-canvas { border-radius: var(--map-radius-corners, var(--map-radius, 0px)); }
|
||
.dsm-map-area { clip-path: inset(0 round var(--map-radius-corners, var(--map-radius, 0px))); }
|
||
.dsm-map-canvas { position:absolute;inset:0; }
|
||
.dsm-loading { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#f3f3f1;color:#6d766e;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;z-index:5; }
|
||
.dsm-error { position:absolute;top:50%;left:12px;right:12px;z-index:7;transform:translateY(-50%);text-align:center;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#7f1d1d;background:rgba(255,255,255,.94);border:1px solid rgba(127,29,29,.25);border-radius:10px;padding:12px 14px;box-shadow:0 2px 10px rgba(0,0,0,.16); }
|
||
.dsm-dark .dsm-error { color:#fecaca;background:rgba(19,25,32,.95);border-color:rgba(254,202,202,.28); }
|
||
.mapboxgl-ctrl-top-left { top:10px!important;left:10px!important;width:var(--map-legend-width,340px)!important;max-width:var(--map-legend-width,340px)!important;z-index:1200!important; }
|
||
.mapboxgl-ctrl-top-left .mapboxgl-ctrl { margin:0!important;float:none!important; }
|
||
.mapboxgl-ctrl-geocoder { width:100%!important;max-width:100%!important;min-width:0!important;border-radius:20px!important;box-shadow:0 2px 8px rgba(0,0,0,0.15)!important;background:#fff; }
|
||
.mapboxgl-ctrl-geocoder--input { border-radius:20px!important; }
|
||
.mapboxgl-ctrl-geocoder:has(.mapboxgl-ctrl-geocoder--input:not(:placeholder-shown)) .mapboxgl-ctrl-geocoder--button { display:block!important; }
|
||
.mapboxgl-ctrl-geocoder--button { display:none!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;margin:0!important;padding:0!important;width:24px!important;height:24px!important;background:transparent!important;border:none!important;box-shadow:none!important; }
|
||
.mapboxgl-ctrl-geocoder--button .mapboxgl-ctrl-geocoder--icon-close { position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;width:16px!important;height:16px!important; }
|
||
.mapboxgl-ctrl-geocoder--suggestions { z-index:1200!important;position:absolute;max-height:60vh!important;overflow-y:auto!important; }
|
||
.suggestions { border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.15);max-height:60vh!important;overflow-y:auto!important; }
|
||
.mapboxgl-ctrl-geocoder--suggestions::-webkit-scrollbar,
|
||
.suggestions::-webkit-scrollbar { width:8px; }
|
||
.mapboxgl-ctrl-geocoder--suggestions::-webkit-scrollbar-thumb,
|
||
.suggestions::-webkit-scrollbar-thumb { background:rgba(0,0,0,0.3);border-radius:4px; }
|
||
.mapboxgl-ctrl-geocoder--suggestions::-webkit-scrollbar-track,
|
||
.suggestions::-webkit-scrollbar-track { background:rgba(0,0,0,0.05); }
|
||
.dg-main { font-weight:500;font-size:13px;color:#222;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px; }
|
||
.dg-main strong { font-weight:700;overflow:hidden;text-overflow:ellipsis; }
|
||
.dg-meta { margin-top:2px;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:#555;line-height:1.35; }
|
||
.dg-field strong { font-weight:600;color:#333;margin-right:2px; }
|
||
.dg-tag { flex:none;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.4px;color:#3b463d;background:rgba(59,70,61,0.10);border-radius:4px;padding:1px 5px;line-height:1.5;white-space:nowrap; }
|
||
.dg-agg-label { overflow:hidden;text-overflow:ellipsis; }
|
||
.dg-count { flex:none;font-size:11px;font-weight:600;color:#73a17f; }
|
||
.dsm-dark .dg-main { color:#F3F3F1; }
|
||
.dsm-dark .dg-meta { color:rgba(243,243,241,0.7); }
|
||
.dsm-dark .dg-field strong { color:#F3F3F1; }
|
||
.dsm-dark .dg-tag { color:#cfe3d6;background:rgba(115,161,127,0.22); }
|
||
.dsm-dark .dg-count { color:#9fd0ab; }
|
||
@media(max-width:767px){
|
||
}
|
||
.dsm-dark .mapboxgl-ctrl-geocoder { background:#4e594f!important;border:1px solid rgba(255,255,255,0.14)!important;box-shadow:0 2px 8px rgba(0,0,0,0.4)!important; }
|
||
.dsm-dark .mapboxgl-ctrl-geocoder--input { color:#F3F3F1!important;background:transparent!important; }
|
||
.dsm-dark .mapboxgl-ctrl-geocoder--input::placeholder { color:rgba(243,243,241,0.65)!important; }
|
||
.dsm-dark .mapboxgl-ctrl-geocoder .mapboxgl-ctrl-geocoder--icon { fill:rgba(243,243,241,0.75)!important; }
|
||
.dsm-dark .mapboxgl-ctrl-geocoder--button { background:transparent!important; }
|
||
.dsm-dark .mapboxgl-ctrl-geocoder--icon-close { fill:rgba(243,243,241,0.75)!important; }
|
||
.dsm-dark .mapboxgl-ctrl-geocoder--button:hover .mapboxgl-ctrl-geocoder--icon-close { fill:#F3F3F1!important; }
|
||
.dsm-dark .suggestions { background:#3b463d!important;border:1px solid rgba(255,255,255,0.12)!important; }
|
||
.dsm-dark .suggestions > li { background:transparent!important; }
|
||
.dsm-dark .suggestions > li > a { background:transparent!important;color:#F3F3F1!important; }
|
||
.dsm-dark .suggestions > li.active > a,
|
||
.dsm-dark .suggestions > li.selected > a,
|
||
.dsm-dark .suggestions > li:hover > a,
|
||
.dsm-dark .suggestions > li > a:hover,
|
||
.dsm-dark .suggestions > li > a:focus { background:rgba(255,255,255,0.1)!important;color:#F3F3F1!important; }
|
||
.dsm-dark .dg-main { color:#F3F3F1!important; }
|
||
.dsm-dark .dg-meta { color:rgba(243,243,241,0.75)!important; }
|
||
.dsm-dark .dg-field strong { color:#F3F3F1!important; }
|
||
.dsm-root.dsm-no-geocoder .legend-container,
|
||
.dsm-root.dsm-no-geocoder .legend-container.collapsed { top: 10px !important; }
|
||
.dsm-root.dsm-no-geocoder .stl-panel { top: 10px !important; }
|
||
.dsm-root.dsm-no-geocoder .stl-reopen { top: 10px !important; }
|
||
.dsm-legend-mobile-slot { display:none; }
|
||
@media(max-width:767px){
|
||
.dsm-legend-mobile-slot { display:block; }
|
||
.dsm-legend-desktop-slot { display:none; }
|
||
}
|
||
.map-scroll-edge { position:absolute;top:0;bottom:0;width:calc(var(--map-btn-size,32px) + 6px);z-index:2;touch-action:pan-y;pointer-events:auto;background:transparent; }
|
||
.map-scroll-edge--left { left:0; }
|
||
.map-scroll-edge--right { right:0; }
|
||
:host(:fullscreen) { width:100vw!important;height:100vh!important;display:block!important; }
|
||
:host(:fullscreen) .dsm-root { position:fixed;inset:0; }
|
||
:host(:-webkit-full-screen) { width:100vw!important;height:100vh!important;display:block!important; }
|
||
:host(:-webkit-full-screen) .dsm-root { position:fixed;inset:0; }
|
||
.dsm-help-overlay { position:absolute;inset:0;background:rgba(0,0,0,0.55);display:flex;align-items:center;justify-content:center;z-index:2000; }
|
||
.dsm-help-modal { background:#2a332a;color:#F3F3F1;border-radius:12px;padding:28px 32px;max-width:420px;width:90%;position:relative;box-shadow:0 8px 32px rgba(0,0,0,0.4);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;z-index:2001; }
|
||
.dsm-help-modal h2 { margin:0 0 12px;font-size:18px;font-weight:600; }
|
||
.dsm-help-modal p { margin:0 0 10px;font-size:14px;line-height:1.6;color:#ccc; }
|
||
.dsm-help-modal p:last-of-type { margin-bottom:0; }
|
||
.dsm-help-close { position:absolute;top:12px;right:14px;background:none;border:none;color:#fff;font-size:20px;cursor:pointer;line-height:1;padding:4px 6px;border-radius:4px; }
|
||
.dsm-help-close:hover { background:rgba(255,255,255,0.12); }
|
||
`,"doxa-simple-map");const{t:o,te:n,locale:a}=ut(),s=["country-label","state-label","settlement-major-label","settlement-minor-label","place-label","continent-label","water-point-label","water-line-label"];function r(Z){const le=_==null?void 0:_.value;if(le){for(const de of s)if(le.getLayer(de))try{le.setLayoutProperty(de,"text-field",["coalesce",["get","name_"+Z],["get","name_en"],["get","name"]])}catch{}}}const i=te(()=>kr.has(a.value)),l={hamburgerMenu:!1,infoButton:!1,overlapDensity:!1,darkPinBorder:!1,geocoder:!1,activeOverlayEmphasis:!1},c=Ee("profileConfig"),u=Ee("mapboxToken"),g=Ee("dataSource"),f=[{id:"prayer",label:"Prayer",colorStrategy:"prayer",legend:"prayer",popup:"prayer"}],k=te(()=>{var Z;return((Z=c==null?void 0:c.value)==null?void 0:Z.tabs)??f}),P=Object.fromEntries(f.map(Z=>[Z.id,Z.label])),y=Z=>(!Z.label||Z.label===P[Z.id])&&n("tabs."+Z.id)?o("tabs."+Z.id):Z.label,x=te(()=>k.value.length>1),$=ge(null),m=te(()=>k.value.find(Z=>Z.id===$.value)??k.value[0]),b={prayer:"doxa-simple-map/doxa-simple-map/prayer/index.html",engagement:"doxa-simple-map/doxa-simple-map/engagement/index.html",adoption:"doxa-simple-map/doxa-simple-map/adoption/index.html"},v=te(()=>{var Z;return b[(Z=m.value)==null?void 0:Z.id]||"doxa-simple-map/doxa-simple-map/index.html"}),A={prayer:"prayer",engagement:"engagement",adoption:"adoption"},T=te(()=>{var Z;return A[(Z=m.value)==null?void 0:Z.legend]??"prayer"}),w=te(()=>{var Z;return((Z=m.value)==null?void 0:Z.popup)==="adoption"?"adopt":"pray"}),S=Ee("instanceId",null),h=(S==null?void 0:S.value)||S||"doxa-simple-map-"+Math.random().toString(36).slice(2,7);yt("mapId",h),yt("getActivePinColor",Z=>{var De,ct,Fo;const le=(De=m.value)==null?void 0:De.colorStrategy,de=le==="engagement"?rt.ENGAGEMENT:le==="adoption"?rt.ADOPTION:rt.PRAYER_PROGRESS;return((Fo=(ct=Ko(de))==null?void 0:ct.getColor)==null?void 0:Fo.call(ct,Z))??"#1a1a1a"});const M=Fv();Iv(M),M.theme.value="light";const G=ii(Ss(()=>T.value));function W(Z){const le=[];for(const de of Z){le.push({id:de.key,label:de.label,color:de.color,count:de.count??0,pop:de.population??0,filter:de.filterKey?["==",["get","_flat_filter"],de.filterKey]:null,children:[]});for(const De of de.children||[])le.push({id:De.key,label:De.label,color:De.color,count:De.count??0,pop:De.population??0,filter:De.filterKey?["==",["get","_flat_filter"],De.filterKey]:null,children:[]})}return le}const ne=te(()=>W(G.items.value)),he=te(()=>o("legend.titleBar.legend")),K=G.progress;yt("legendProgress",K);const C=te(()=>{const Z=T.value;return o("legend.colLabel."+(["prayer","engagement","adoption"].includes(Z)?Z:"status"))}),D=te(()=>J.legendState!=="collapsed");function z(Z){Z?J.openLegend():J.collapseLegend()}function O(Z){var De;if(!Z){const ct=T.value;ct==="prayer"?J.setPrayerFilter(null):ct==="engagement"?J.setEngagementFilter(null):ct==="adoption"&&J.setAdoptionFilter(null);return}const le=T.value;le==="prayer"?J.setPrayerFilter(Z.id):le==="engagement"?J.setEngagementFilter(Z.id):le==="adoption"&&J.setAdoptionFilter(Z.id);const de=nt(le,Z.id);de&&((De=E.zoomToLegendRow)==null||De.call(E,Z,{matchExpr:de}))}yt("onSemanticTreeSelect",Z=>O(Z));const U=ge(null),se=ge(null);let pe=null;function ke(Z){const le=se.value;le&&(getComputedStyle(le).getPropertyValue("--map-radius").trim()||(le.style.setProperty("--map-radius","16px"),le.style.setProperty("--map-radius-sm","8px")),Z>=700?(le.style.setProperty("--map-btn-size","40px"),le.style.setProperty("--map-toolbar-gap","8px"),le.style.setProperty("--map-font-md","13px"),le.style.setProperty("--map-font-sm","11px"),le.style.setProperty("--map-legend-width","380px")):Z>=500?(le.style.setProperty("--map-btn-size","36px"),le.style.setProperty("--map-toolbar-gap","6px"),le.style.setProperty("--map-font-md","12px"),le.style.setProperty("--map-font-sm","10px"),le.style.setProperty("--map-legend-width","360px")):(le.style.setProperty("--map-btn-size","32px"),le.style.setProperty("--map-toolbar-gap","5px"),le.style.setProperty("--map-font-md","11px"),le.style.setProperty("--map-font-sm","10px"),le.style.setProperty("--map-legend-width","280px")))}const Ce=ge(!1),Me=ge(null),Ae=Ee("mapStore"),we=Ee("dataStore"),J=Ee("uiStore"),re=O0(J);re.setLook("dark");const oe=(()=>{var le;const Z=(le=Ee("lang",null))==null?void 0:le.value;return Z&&Z!=="en"?Z:null})(),ve=new bp({locale:oe,profileConfig:c}),{map:_,initializeMap:R,destroy:L}=N_({containerRef:U,accessToken:u.value,style:re.bootStyle(),config:re.bootConfig,center:[20,10],zoom:1.8,pitch:((_e=c==null?void 0:c.value)==null?void 0:_e.pitch)??to.pitch,bearing:((xe=c==null?void 0:c.value)==null?void 0:xe.bearing)??to.bearing,minZoom:((Je=c==null?void 0:c.value)==null?void 0:Je.minZoom)??to.minZoom,maxZoom:((Ne=c==null?void 0:c.value)==null?void 0:Ne.maxZoom)??to.maxZoom}),B=B_({mapId:h,dataSourceId:g.value,dataSourceManager:ve,dataStore:we,markRaw:Z=>Z}),H=e$({getMap:()=>_.value,mapId:h,getLanguageFamilyColor:It,getNormalizedPeopleGroups:()=>B.normalizedPeopleGroups.value||[]}),E=P1({getMap:()=>_.value,mapId:h,mapStore:Ae,defaultCenter:[20,10],defaultZoom:1.8});R1(()=>_.value);const ee=o$({getMap:()=>_.value,getActivePinColor:Z=>{var De,ct,Fo;const le=(De=m.value)==null?void 0:De.colorStrategy,de=le==="engagement"?rt.ENGAGEMENT:le==="adoption"?rt.ADOPTION:rt.PRAYER_PROGRESS;return((Fo=(ct=Ko(de))==null?void 0:ct.getColor)==null?void 0:Fo.call(ct,Z))??"#1a1a1a"}}),Y=te(()=>J.isDarkTheme),d=te(()=>Au.lightPreset==="night");je(Y,Z=>{M.theme.value=Z?"dark":"light"},{immediate:!0}),je(()=>J.theme,()=>re.applyTheme(_.value));function p(){var de;const Z=_.value;if(!Z||!Z.getLayer("language-family-pins"))return;const le=d.value?"#ffffff":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"];Z.setPaintProperty("language-family-pins","circle-stroke-color",le),Z.setPaintProperty("language-family-pins","circle-stroke-width",d.value?X_((de=m.value)==null?void 0:de.colorStrategy):dp)}je(d,p,{immediate:!1}),je(()=>{var Z;return(Z=m.value)==null?void 0:Z.id},p);function N(){re.swapTheme(_.value)}function V(){J.updateBreakpoint(window.innerWidth)}qt(()=>{J.updateBreakpoint(window.innerWidth),J.isMobile?J.collapseLegend():J.openLegend(),window.addEventListener("resize",V),se.value&&(ke(se.value.offsetWidth),pe=new ResizeObserver(Z=>{for(const le of Z)ke(le.contentRect.width)}),pe.observe(se.value))}),Yt(()=>{window.removeEventListener("resize",V),pe==null||pe.disconnect(),pe=null});const ue=ge(!1);function ie(){const Z=_.value?Oe(_.value):null;!Z||Z===_.value||(_.value=null,_.value=Jo(Z))}function j(Z){if(Z===$.value)return;$.value=Z;const le=k.value.find(ct=>ct.id===Z);if(!le||!_.value)return;re.applyTheme(_.value);const de=le.colorStrategy,De=de==="engagement"?rt.ENGAGEMENT:de==="adoption"?rt.ADOPTION:rt.PRAYER_PROGRESS;if(_.value.getLayer("language-family-pins")){const ct=zr(De);_.value.setPaintProperty("language-family-pins","circle-color",ct),_.value.getLayer(rs)&&_.value.setPaintProperty(rs,"circle-color",ct),Se.forEach(Fo=>{_.value.getLayer(Fo)&&_.value.setPaintProperty(Fo,"circle-color",ct)})}p(),le.id==="prayer"||le.colorStrategy==="prayer"?H.startPrayerGlow():H.stopPrayerGlow()}function X(Z,le){if(Z!=null&&Z.getLayer(Ep))try{Z.setFilter(Ep,le)}catch{}}let ye={type:null,key:null};const Se=[is];function Be(){const Z=m.value,le=(Z==null?void 0:Z.colorStrategy)==="engagement"?rt.ENGAGEMENT:(Z==null?void 0:Z.colorStrategy)==="adoption"?rt.ADOPTION:rt.PRAYER_PROGRESS;return zr(le)}function nt(Z,le){if(Z==="prayer"){const de=["coalesce",["to-number",["get","peoplePraying"],0],0];if(le==="noPrayer")return["<=",de,0];if(le==="hasPrayer")return["all",[">",de,0],["<",de,Eo]];if(le==="fullPrayer")return[">=",de,Eo]}else if(Z==="engagement"){const de=["get","engagementStatus"];if(le==="hasEngagement")return["any",["==",de,!0],["==",de,1]];if(le==="notEngaged")return["all",["!=",de,!0],["!=",de,1]]}else if(Z==="adoption"){const de=["get","adoptionStatus"];if(le==="hasAdoption")return["any",["==",de,!0],["==",de,1]];if(le==="notAdopted")return["all",["!=",de,!0],["!=",de,1]]}return null}function at(){const Z=_.value;Z!=null&&Z.getLayer(is)&&(Z.setFilter(is,["==","uniqueId",""]),Z.setPaintProperty(is,"circle-opacity",0))}function I(){at();const Z=_.value;Z!=null&&Z.getLayer(rs)&&Z.setFilter(rs,["==","uniqueId",""])}function q(Z,le){const de=_.value;if(!de||!de.getLayer("language-family-pins"))return;if(!le){ye={type:null,key:null},de.setPaintProperty("language-family-pins","circle-color",Be()),de.setPaintProperty("language-family-pins","circle-opacity",.9),de.setPaintProperty("language-family-pins","circle-stroke-opacity",1),X(de,null),H.syncGlowFilter(null),I();return}const De=nt(Z,le);if(!De){ye={type:null,key:null},de.setPaintProperty("language-family-pins","circle-color",Be()),de.setPaintProperty("language-family-pins","circle-opacity",.9),de.setPaintProperty("language-family-pins","circle-stroke-opacity",1),X(de,null),H.syncGlowFilter(null),I();return}ye={type:Z,key:le};{de.setPaintProperty("language-family-pins","circle-color",Be()),de.setPaintProperty("language-family-pins","circle-opacity",["case",De,1,.06]),de.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",De,1,.06]),X(de,De),H.syncGlowFilter(De);return}}je(Y,()=>{_.value&&ye.key&&q(ye.type,ye.key)}),je(()=>J.prayerFilter,Z=>q("prayer",Z)),je(()=>J.engagementFilter,Z=>q("engagement",Z)),je(()=>J.adoptionFilter,Z=>q("adoption",Z));async function fe(Z){var le,de;Ae.registerMap(h,_.value),re.applyTheme(_.value);try{_.value.setProjection("mercator")}catch{}if(Z!=null&&Z.length){const De=k.value[0],ct=(De==null?void 0:De.colorStrategy)==="engagement"?rt.ENGAGEMENT:(De==null?void 0:De.colorStrategy)==="adoption"?rt.ADOPTION:rt.PRAYER_PROGRESS;H.addLanguageFamilyLayer(Z,ct),p()}ee.initialize(),r(a.value),Ae.setMapReady(h),Ce.value=!0,(((le=m.value)==null?void 0:le.id)==="prayer"||((de=m.value)==null?void 0:de.colorStrategy)==="prayer")&&H.startPrayerGlow()}return je(a,Z=>r(Z)),qt(async()=>{var le;$.value=((le=k.value[0])==null?void 0:le.id)??"prayer",J.updateBreakpoint(window.innerWidth);const Z=B.loadData().catch(de=>(console.error("[doxa-simple-map] Data load failed:",de),{normalizedPeopleGroups:[]}));try{await R()}catch(de){console.error("[doxa-simple-map] Map failed to initialize —",de),Me.value=String((de==null?void 0:de.message)||de);return}if(ie(),!_.value){console.error("[doxa-simple-map] Map failed to initialize — check token and container"),Me.value=o("simpleMap.initFailed");return}_.value.once("style.load",async()=>{try{const{normalizedPeopleGroups:de}=await Z;await fe(de)}catch(de){console.error("[doxa-simple-map] onMapReady failed:",de),Me.value=String((de==null?void 0:de.message)||de)}})}),Yt(()=>{H.stopPrayerGlow(),I(),Ae.unregisterMap(h),ee.cleanup(),L()}),(Z,le)=>(Q(),ae("div",{ref_key:"dsmRoot",ref:se,class:Fe(["dsm-root",{"dsm-dark":Y.value,"dsm-rtl":i.value,"dsm-no-geocoder":!0}]),dir:i.value?"rtl":"ltr"},[x.value?(Q(),ae("div",dw,[(Q(!0),ae(Ge,null,Ct(k.value,de=>(Q(),ae("button",{key:de.id,class:Fe(["dsm-tab",{active:$.value===de.id}]),onClick:De=>j(de.id)},be(y(de)),11,gw))),128))])):$e("",!0),F("div",fw,[!Ce.value&&!Me.value?(Q(),ae("div",hw,be(ce(o)("simpleMap.loading")),1)):$e("",!0),Me.value?(Q(),ae("div",mw,be(ce(o)("allPeopleGroups.loadError"))+" "+be(Me.value),1)):$e("",!0),F("div",{ref_key:"mapContainer",ref:U,class:"dsm-map-canvas"},null,512),$e("",!0),$e("",!0),$e("",!0),F("div",bw,[Ce.value&&ce(J).legendMode==="detail"&&ce(J).selectedPeopleGroup?(Q(),Ze(Mv,{key:0,"legend-type":T.value,"popup-action":w.value,"initially-collapsed":!1,"is-dark":Y.value},null,8,["legend-type","popup-action","is-dark"])):$e("",!0),Td(F("div",null,[Ce.value?(Q(),Ze(Cp,{key:0,nodes:ne.value,tabs:null,title:he.value,hideTabs:!0,columnLabel:C.value,progress:ce(K),open:D.value,onSelect:O,"onUpdate:open":z},null,8,["nodes","title","columnLabel","progress","open"])):$e("",!0)],512),[[Hg,!(ce(J).legendMode==="detail"&&ce(J).selectedPeopleGroup)]])]),F("div",yw,[Ce.value?(Q(),Ze(ce(t),{key:0,"legend-type":T.value,"popup-action":w.value,"is-dark":Y.value},null,8,["legend-type","popup-action","is-dark"])):$e("",!0)]),le[7]||(le[7]=F("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),le[8]||(le[8]=F("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),Ce.value?(Q(),Ze(N1,{key:5,"has-geocoder":l.geocoder},{default:Tt(()=>[We(F1,{map:ce(_),"is-dark":Y.value},null,8,["map","is-dark"]),We(I1,{map:ce(_),"is-dark":Y.value},null,8,["map","is-dark"]),We(O1,{map:ce(_),"is-dark":Y.value},null,8,["map","is-dark"]),We(B1,{"map-container":U.value,"is-dark":Y.value},null,8,["map-container","is-dark"]),We(z1,{"is-dark":Y.value,onToggle:N},null,8,["is-dark"]),We(cw,{"is-dark":Y.value,"embed-path":v.value},null,8,["is-dark","embed-path"]),l.infoButton?(Q(),Ze(U1,{key:0,"is-dark":Y.value,onOpenHelp:le[2]||(le[2]=de=>ue.value=!0)},null,8,["is-dark"])):$e("",!0)]),_:1},8,["has-geocoder"])):$e("",!0),ue.value?(Q(),ae("div",{key:6,class:"dsm-help-overlay",onClick:le[4]||(le[4]=ht(de=>ue.value=!1,["self"]))},[F("div",_w,[F("button",{class:"dsm-help-close","aria-label":ce(o)("buttons.close"),onClick:le[3]||(le[3]=de=>ue.value=!1)},"×",8,$w),F("h2",null,be(ce(o)("buttons.aboutThisMap")),1),F("p",null,be(ce(o)("simpleMap.help.what")),1),F("p",null,be(ce(o)("simpleMap.help.how")),1),F("p",null,[ft(be(ce(o)("simpleMap.help.source"))+" ",1),le[5]||(le[5]=F("strong",{dir:"ltr"},"pray.doxa.life",-1)),le[6]||(le[6]=ft(".",-1))])])])):$e("",!0)])],10,pw))}},[["styles",[uw]],["__scopeId","data-v-e1b7d4dd"]])},Symbol.toStringTag,{value:"Module"})),ww="#6b7280";function kw(){const e=Ko(rt.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function xw(e,t){const o=kw();return e&&o[e]?o[e]:ww}function Aw(e){return(e==null?void 0:e.properties)||e||{}}function ci(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function Sw(e){var t;return String(e.affinityBlock||ci((t=e._raw)==null?void 0:t.rop1)||"").trim()}function Pw(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function Lw(e){var t;return String(e.cluster||ci((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function Tw(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 Cw(e){var t;return String(e.peopleGroup||ci((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function Ew(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 Rw(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function Nw(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function Mw(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 Fw(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function Iw(e){const t=te(()=>{const s=e&&e.value||[],r=new Map;for(const i of s){const l=Aw(i),c=Sw(l),u=Pw(l)||c||"— Unknown —",g=Lw(l),f=Tw(l)||g||"— Unknown —",k=Cw(l),P=Ew(l)||k||"— Unknown —",y=Rw(l),x=Nw(l)||y,$=Mw(l),m=Fw(l);if(!y)continue;let b=r.get(c||"__unknown__");b||(b={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},r.set(c||"__unknown__",b)),b.count+=1,b.pop+=$,b.memberIds.push(y);let v=b.clusters.get(g||"__unknown__");v||(v={code:g,label:f,count:0,pop:0,memberIds:[],peopleGroups:new Map},b.clusters.set(g||"__unknown__",v)),v.count+=1,v.pop+=$,v.memberIds.push(y);let A=v.peopleGroups.get(k||"__unknown__");A||(A={code:k,label:P,count:0,pop:0,memberIds:[],instances:[]},v.peopleGroups.set(k||"__unknown__",A)),A.count+=1,A.pop+=$,A.memberIds.push(y),A.instances.push({id:y,name:x,country:m,pop:$})}return r}),o=s=>s&&s.length?["in",["get","uniqueId"],["literal",s]]:["==",["get","uniqueId"],"__none__"],n=te(()=>{const s=t.value,r=[];for(const i of s.values()){const l=xw(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const g={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const f of u.peopleGroups.values()){const k={id:`pg:${i.code}__${u.code}__${f.code||f.label}`,label:`${f.label} (PG)`,color:l,count:f.count,pop:f.pop,filter:o(f.memberIds),children:[]};f.instances.sort((P,y)=>y.pop-P.pop||P.country.localeCompare(y.country));for(const P of f.instances)k.children.push({id:`pgic:${P.id}`,label:`${P.country?`${P.name}, ${P.country}`:P.name} (PGIC)`,color:l,count:1,pop:P.pop,filter:["==",["get","uniqueId"],P.id],children:[]});g.children.push(k)}g.children.sort((f,k)=>k.count-f.count||k.pop-f.pop),c.children.push(g)}c.children.sort((u,g)=>g.count-u.count||g.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}}const Ow={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Dw="#95a5a6";function Gw(e){return Ow[String(e||"").toLowerCase()]||Dw}function Bw(e){return(e==null?void 0:e.properties)||e||{}}function jw(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 zw(e){var t,o;return String(e.doxaRegion||e.wagfRegion||((o=(t=e._raw)==null?void 0:t.wagf_region)==null?void 0:o.value)||"").trim()}function Uw(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_region;return String(e.wagfRegionLabel||e.doxaRegionLabel||(t&&typeof t=="object"?t.label:"")||e.doxaRegion||"").trim()}function Hw(e){var t,o;return String(e.wagfBlock||((o=(t=e._raw)==null?void 0:t.wagf_block)==null?void 0:o.value)||"").trim()}function Kw(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_block;return String(e.wagfBlockLabel||(t&&typeof t=="object"?t.label:"")||e.wagfBlock||"").trim()}function Vw(e){var t,o;return String(e.countryIso||((o=(t=e._raw)==null?void 0:t.country_code)==null?void 0:o.value)||"").trim().toUpperCase()}function Ww(e){var o;const t=(o=e._raw)==null?void 0:o.country_code;return String(e.countryIsoLabel||(t&&typeof t=="object"?t.label:"")||e.countryIso||"").trim()}function qw(e){const t=te(()=>{const a=e&&e.value||[],s=new Map;for(const r of a){const i=Bw(r),l=zw(i),c=Uw(i)||l||"— Unknown —",u=Hw(i),g=Kw(i)||u||"— Unknown —",f=Vw(i),k=Ww(i)||f||"— Unknown —",P=jw(i);if(!l||l==="na"||l==="none")continue;let y=s.get(l);if(y||(y={slug:l,label:c,count:0,pop:0,blocks:new Map},s.set(l,y)),y.count+=1,y.pop+=P,!u||u==="na")continue;let x=y.blocks.get(u);if(x||(x={slug:u,label:g,count:0,pop:0,countries:new Map},y.blocks.set(u,x)),x.count+=1,x.pop+=P,!f)continue;let $=x.countries.get(f);$||($={iso:f,name:k,count:0,pop:0},x.countries.set(f,$)),$.count+=1,$.pop+=P}return s}),o=te(()=>{const a=t.value,s=[];for(const r of a.values()){const i=Gw(r.slug),l=[],c=[],u=[...r.blocks.values()].sort((g,f)=>f.pop-g.pop||g.label.localeCompare(f.label));for(const g of u){const f=[],k=[],P=[...g.countries.values()].sort((y,x)=>x.pop-y.pop||y.name.localeCompare(x.name));for(const y of P)f.push(y.iso),l.push(y.iso),k.push({id:`country:${r.slug}__${g.slug}__${y.iso}`,label:y.name,color:i,count:y.count,pop:y.pop,filter:["==",["get","countryIso"],y.iso],isoCodes:[y.iso],children:[]});c.push({id:`block:${r.slug}__${g.slug}`,label:`${g.label} (Bloc)`,color:i,count:g.count,pop:g.pop,filter:["==",["get","wagfBlock"],g.slug],isoCodes:f,children:k})}s.push({id:`region:${r.slug}`,label:`${r.label} (Region)`,color:i,count:r.count,pop:r.pop,filter:["==",["get","doxaRegion"],r.slug],isoCodes:[...new Set(l)],children:c})}return s.sort((r,i)=>i.pop-r.pop||r.label.localeCompare(i.label)),s});function n(a){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!a){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const s=String(a.id||""),r={kind:null,label:a.label,filterExpr:a.filter};s.startsWith("region:")?r.kind="region":s.startsWith("block:")?r.kind="block":s.startsWith("country:")&&(r.kind="country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:r}))}return{aggregated:t,regionsTree:o,highlight:n}}const Yw="",Zw={class:"legend-sheet-root"},Xw=["src","alt"],Jw={key:0,class:"pull-tab-handle"},Qw=["aria-label"],ek=["aria-label"],tk=["aria-label"],ok={class:"collapsed-detail-title"},nk={class:"legend-content"},ak=["aria-label"],sk=["aria-label"],Rp=80,rk=48,ik=44,lk=24,Np="--legend-sheet-h",Mp=Object.freeze(Object.defineProperty({__proto__:null,default:To({__name:"LegendMobile",props:{legendType:{type:String,required:!0},nodes:{type:Array,default:null},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columnLabel:{type:String,default:null},title:{type:String,default:null},columns:{type:Array,default:null},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const{t}=ut();Ft(`
|
||
.floating-mini-image{position:absolute;left:16px;bottom:calc(30% + 16px);z-index:999;pointer-events:auto;cursor:pointer;}
|
||
.mini-image{width:120px;height:150px;object-fit:cover;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.25);display:block;}
|
||
.legend-sheet-root{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
|
||
.legend-sheet-root>*{pointer-events:auto;}
|
||
.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,
|
||
.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{transform:translateY(calc(-1 * min(var(--legend-sheet-h,0px),48px)));}
|
||
.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{z-index:3;}
|
||
.mapboxgl-ctrl-bottom-right,.maplibregl-ctrl-bottom-right{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:2px;opacity:0.72;transform:translateY(calc(-1 * min(var(--legend-sheet-h,0px),48px))) scale(0.85);transform-origin:bottom right;transition:opacity 0.15s;}
|
||
.mapboxgl-ctrl-bottom-right:hover,.maplibregl-ctrl-bottom-right:hover{opacity:1;}
|
||
.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.maplibregl-ctrl-bottom-right .maplibregl-ctrl{margin:0 6px 6px 0;}
|
||
.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib.mapboxgl-compact{margin-right:6px;}
|
||
.legend-mobile-sheet .stl-row{position:relative;}
|
||
.legend-mobile-sheet .stl-row .stl-x-slot{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:auto;}
|
||
.legend-mobile-sheet .stl-col-hdr .stl-x-slot{display:none;}
|
||
.legend-mobile-sheet{position:absolute;bottom:0;left:0;right:0;z-index:1000;background:white;border-top-left-radius:var(--map-radius,16px);border-top-right-radius:var(--map-radius,16px);box-shadow:0 -4px 20px rgba(0,0,0,0.2);transition:height 0.3s ease-out;display:flex;flex-direction:column;overflow:hidden;max-height:calc(100% - var(--legend-sheet-top-reserve,80px));}
|
||
.legend-mobile-sheet.dragging{transition:none!important;}
|
||
.sheet-drag-strip{position:absolute;top:0;left:0;right:0;height:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;z-index:2;}
|
||
.pull-tab-handle{width:40px;height:4px;background:#ccc;border-radius:2px;}
|
||
.mobile-collapse-caret{width:22px;height:20px;display:flex;align-items:center;justify-content:center;background:rgba(208,215,222,0.4);border:1px solid #d0d7de;border-radius:5px;cursor:pointer;color:#57606a;padding:0;transition:transform 0.3s ease-out,color 0.1s,background 0.1s,border-color 0.1s;transform-origin:center;outline:none;-webkit-tap-highlight-color:transparent;flex-shrink:0;}
|
||
.mobile-collapse-caret:focus{outline:none;}
|
||
@media (pointer:coarse){.mobile-collapse-caret{width:24px;height:24px;}}
|
||
.mobile-collapse-caret:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;}
|
||
.legend-mobile-sheet.sheet-dark .mobile-collapse-caret{background:rgba(110,118,129,0.15);border-color:#30363d;color:#8b949e;box-shadow:none;}
|
||
.legend-mobile-sheet.sheet-dark .mobile-collapse-caret:hover{color:#c9d1d9;background:rgba(59,70,61,0.18);border-color:#73A17F;}
|
||
.detail-collapse-btn-mobile{position:absolute;top:10px;left:12px;background:transparent;border:none;padding:0;cursor:pointer;color:transparent;width:28px;height:28px;z-index:3;outline:none;-webkit-tap-highlight-color:transparent;}
|
||
.detail-collapse-btn-mobile:focus{outline:none;}
|
||
.detail-close-btn{position:absolute;top:10px;right:12px;background:none;border:none;padding:4px;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;z-index:3;transition:color 0.2s ease;}
|
||
.detail-close-btn:hover{color:#333;}
|
||
.legend-mobile-sheet .pg-name-lead{padding-right:32px;}
|
||
.collapsed-detail-footer{position:absolute;top:12px;left:0;right:0;height:36px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;cursor:pointer;background:transparent;z-index:4;}
|
||
.collapsed-detail-title{font:600 13px system-ui,sans-serif;letter-spacing:0.02em;line-height:1.4;color:#1f2328;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
||
.legend-mobile-sheet.sheet-dark .collapsed-detail-title{color:#F3F3F1;}
|
||
.legend-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:12px 0;-webkit-overflow-scrolling:touch;}
|
||
.legend-mobile-sheet .legend-content>.stl-panel,
|
||
.legend-mobile-sheet .legend-content>.legend-row-group{flex:1;min-height:0;}
|
||
.legend-mobile-sheet .legend-row-group{--lrg-caret-col:24px;}
|
||
.legend-content::-webkit-scrollbar{width:4px;}
|
||
.legend-content::-webkit-scrollbar-track{background:transparent;}
|
||
.legend-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.18);border-radius:4px;}
|
||
.legend-content::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.3);}
|
||
.legend-mobile-sheet.collapsed .legend-content .lrg-row,
|
||
.legend-mobile-sheet.collapsed .legend-content .lrg-footer,
|
||
.legend-mobile-sheet.collapsed .legend-content .lrg-header-col,
|
||
.legend-mobile-sheet.collapsed .legend-content .lft-row,
|
||
.legend-mobile-sheet.collapsed .legend-content .lft-row-child,
|
||
.legend-mobile-sheet.collapsed .legend-content .lft-header-col{display:none!important;}
|
||
.legend-mobile-sheet.collapsed{box-shadow:0 -2px 8px rgba(0,0,0,0.15);height:48px !important;min-height:48px;border-top-left-radius:0;border-top-right-radius:0;}
|
||
.legend-mobile-sheet.collapsed .legend-content{padding:0!important;display:flex;align-items:center;height:48px;}
|
||
.legend-mobile-sheet.collapsed .lrg-items,
|
||
.legend-mobile-sheet.collapsed .lft-items{padding:0!important;align-content:center;height:48px;}
|
||
.legend-mobile-sheet .stl-titlebar{padding:8px 10px 8px 8px!important;border-bottom:1px solid rgba(33,38,45,0.10)!important;}
|
||
.legend-mobile-sheet .stl-tb-title{text-transform:none!important;letter-spacing:0!important;font:600 14px system-ui,sans-serif!important;color:#1f2328!important;}
|
||
.legend-mobile-sheet.sheet-dark .stl-tb-title{color:#F3F3F1!important;}
|
||
.legend-mobile-sheet.collapsed .lrg-title-row,
|
||
.legend-mobile-sheet.collapsed .lft-title-row,
|
||
.legend-mobile-sheet.collapsed .stl-titlebar{padding:0 16px!important;display:flex;align-items:center;justify-content:center;gap:8px;height:48px;min-height:0!important;border-bottom:none!important;}
|
||
.legend-mobile-sheet.collapsed .stl-tb-title,
|
||
.legend-mobile-sheet.collapsed .lrg-title,
|
||
.legend-mobile-sheet.collapsed .lrg-title-row .lrg-title,
|
||
.legend-mobile-sheet.collapsed .lft-title{font-size:13px!important;letter-spacing:0.02em!important;line-height:1.4!important;}
|
||
.legend-mobile-sheet.collapsed .stl-tabs-wrap,
|
||
.legend-mobile-sheet.collapsed .stl-col-hdr,
|
||
.legend-mobile-sheet.collapsed .stl-rows,
|
||
.legend-mobile-sheet.collapsed .lrg-row,
|
||
.legend-mobile-sheet.collapsed .lrg-footer,
|
||
.legend-mobile-sheet.collapsed .lrg-header-col,
|
||
.legend-mobile-sheet.collapsed .lft-row,
|
||
.legend-mobile-sheet.collapsed .lft-row-child,
|
||
.legend-mobile-sheet.collapsed .lft-header-col{display:none!important;}
|
||
.legend-mobile-sheet .stl-panel{position:static!important;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;width:100%!important;max-width:none!important;z-index:auto!important;display:flex;flex-direction:column;min-height:0;max-height:none!important;}
|
||
.legend-mobile-sheet .stl-panel.closed{transform:none!important;opacity:1!important;pointer-events:auto!important;}
|
||
.legend-mobile-sheet .stl-inner{border:none!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;}
|
||
.legend-mobile-sheet .lrg-item-inner{min-height:28px!important;padding:2px 0!important;}
|
||
.legend-mobile-sheet .lrg-items{row-gap:3px!important;}
|
||
.legend-mobile-sheet .stl-rows{min-height:0;}
|
||
.legend-mobile-sheet .stl-reopen{display:none!important;}
|
||
.legend-mobile-sheet .stl-collapse-btn{display:none!important;}
|
||
.legend-mobile-sheet .stl-titlebar{border-bottom-color:rgba(0,0,0,0.08)!important;}
|
||
.legend-mobile-sheet .lft-row{min-height:44px;column-gap:8px;}
|
||
.legend-mobile-sheet .lft-row-child{margin-left:0;}
|
||
.legend-mobile-sheet .lft-item-inner{min-height:36px;padding:6px 8px;}
|
||
.legend-mobile-sheet .lft-name{font-size:13px;}
|
||
.sheet-dark{background:#3b463d!important;box-shadow:0 -4px 20px rgba(0,0,0,0.5)!important;}
|
||
.sheet-dark .mobile-collapse-caret{background:rgba(110,118,129,0.15)!important;border-color:#30363d!important;color:#8b949e!important;}
|
||
.sheet-dark .mobile-collapse-caret:hover{color:#c9d1d9!important;background:rgba(59,70,61,0.18)!important;border-color:#73A17F!important;}
|
||
.sheet-dark .detail-close-btn{color:rgba(243,243,241,0.75)!important;}
|
||
.sheet-dark .detail-close-btn:hover{color:#F3F3F1!important;}
|
||
.sheet-dark .pull-tab-handle{background:rgba(243,243,241,0.3)!important;}
|
||
.sheet-dark .legend-content{background:#3b463d!important;}
|
||
.sheet-dark .legend-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);}
|
||
`,"legend-mobile-sheet");const o=e,n=Ee("uiStore");Ee("mapStore");const a=Ee("dataStore"),s=Ee("onSemanticTreeSelect",()=>{}),r=Ee("onLegendExport",null),i=te(()=>typeof r=="function"),l=Ss(o,"legendType"),{items:c,columns:u,title:g,activeFilter:f,setFilter:k,totalCount:P,totalPopulation:y,fmtPop:x,fmtCount:$}=ii(l,Lp),m=Ee("normalizedPeopleGroups",null),b=te(()=>{var p,N;if((p=m==null?void 0:m.value)!=null&&p.length)return m.value;const d=[];for(const V in(a==null?void 0:a.sources)||{}){const ue=a.sources[V];(N=ue==null?void 0:ue.features)!=null&&N.length&&d.push(...ue.features)}return d}),v={get value(){return b.value}},{langTree:A}=yp(v),{affinityTree:T}=Iw(v),{regionsTree:w}=qw(v),S=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor."},{id:"language",label:"Language",info:"A language is a system of communication used by a people."},{id:"dialect",label:"Dialect",info:"A dialect/variety is a regional or social form of a language."}],h=[{id:"bloc",label:"Block",info:"Affinity Block (rop1) — broadest grouping. 16 blocks total."},{id:"cluster",label:"Cluster",info:"Cluster (imb_reg_of_people_2, ROP 2) — finer grouping inside a block. 194 total."},{id:"group",label:"PG",info:"People Group (imb_reg_of_people_25, ROP 2.5) — abstract identity. 1,736 PGs."},{id:"pgic",label:"PGIC",info:"PG in Country (imb_reg_of_people_3 + country_code) — one row per PG-country pair. 2,106 rows."}],M=[{id:"region",label:"Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"Bloc",info:'WAGF bloc — organizational sub-grouping within each region (e.g. "South East Asia").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],G=te(()=>["prayer","engagement","adoption","religion"].includes(o.legendType));function W(d){const p=[];for(const N of d){p.push({id:N.key,label:N.label,color:N.color,count:N.count??0,pop:N.population??0,filter:N.filterKey?["==",["get","_flat_filter"],N.filterKey]:null,children:[]});for(const V of N.children||[])p.push({id:V.key,label:V.label,color:V.color,count:V.count??0,pop:V.population??0,filter:V.filterKey?["==",["get","_flat_filter"],V.filterKey]:null,children:[]})}return p}const ne=te(()=>o.nodes?o.nodes:G.value?W(c.value):o.legendType==="affinity-block"?T.value:o.legendType==="doxa-regions"?w.value:A.value),he=te(()=>o.nodes?o.tabs:G.value?null:o.legendType==="affinity-block"?h:o.legendType==="doxa-regions"?M:S),K=te(()=>o.title?o.title:G.value?t("legend.titleBar.legend"):o.legendType==="affinity-block"?t("legend.titleBar.peopleGroups"):o.legendType==="doxa-regions"?t("legend.titleBar.wagfRegions"):t("legend.titleBar.languages")),C=te(()=>o.columnLabel!==null?o.columnLabel:["religion","prayer","engagement","adoption"].includes(o.legendType)?t("legend.colLabel."+o.legendType):G.value?t("legend.colLabel.status"):""),D=ge(null),z=ge(!1),O={pending:null,active:!1,startY:0,startH:0,startState:"",containerH:0,maxH:0,lastH:0,contentEl:null};let U=0;const se=()=>Date.now()-U<400,pe=te(()=>n.legendState),ke=te(()=>n.legendHeight),Ce=te(()=>n.caretRotation),Me=te(()=>n.showPullTab),Ae=te(()=>n.legendMode),we=te(()=>n.selectedPeopleGroup),J=te(()=>{var d;return Ae.value==="detail"&&we.value?((d=we.value.properties)==null?void 0:d.name)||t("legend.header.peopleGroupFallback"):pe.value==="collapsed"?o.title||t("legend.header.collapsed"):o.title||g.value});function re(d){n.handleLegendItemClick(),k(d)}function oe(){se()||n.toggleLegend()}function ve(){se()||(n.selectPeopleGroup(null),n.openLegend())}const _=te(()=>{var p;if(!we.value)return null;const d=we.value.properties||{};return d.imageUrl||((p=d._raw)==null?void 0:p.ImageURL)||null});function R(d){var ie;if(pe.value==="collapsed")return;const p=d.touches[0],N=D.value;if(!p||!N)return;const ue=p.clientY-N.getBoundingClientRect().top<=ik?"grab":Ae.value==="detail"?"content":null;ue&&(O.pending=ue,O.active=!1,O.startY=p.clientY,O.startH=N.offsetHeight,O.lastH=O.startH,O.startState=pe.value,O.containerH=((ie=N.parentElement)==null?void 0:ie.offsetHeight)||window.innerHeight,O.maxH=O.containerH-Rp,O.contentEl=N.querySelector(".legend-content"))}function L(d){if(!O.pending&&!O.active)return;const p=d.touches[0];if(!p)return;const N=O.startY-p.clientY;if(!O.active){if(N===0)return;let ue=O.pending==="grab";if(O.pending==="content"){const ie=!O.contentEl||O.contentEl.scrollTop<=0;ue=N>0?O.startH<O.maxH-1:ie}if(O.pending=null,!ue)return;O.active=!0,z.value=!0}d.preventDefault();const V=Math.round(Math.min(O.maxH,Math.max(rk,O.startH+N)));O.lastH=V,n.setLegendHeight(`${V}px`)}function B(){if(O.pending=null,!O.active)return;O.active=!1,z.value=!1,U=Date.now();const d=O.lastH,p=d-O.startH,N=O.containerH*.3;if(Ae.value!=="detail"){d<N*.5&&n.collapseLegend();return}if(Math.abs(p)<lk){H(O.startState);return}if(d<N*.5){n.collapseLegend();return}p>0?n.fullyOpenLegend():O.startState==="fullyOpen"?n.openLegend():n.collapseLegend()}function H(d){d==="fullyOpen"?n.fullyOpenLegend():d==="collapsed"?n.collapseLegend():n.openLegend()}let E=null,ee=null,Y=null;return qt(()=>{const d=D.value;if(!d||typeof ResizeObserver>"u")return;const p=d.getRootNode();ee=p instanceof ShadowRoot?p.host:p.documentElement||null,ee&&(Y=d,E=new ResizeObserver(()=>{const N=d.offsetHeight;N<=0||(ee.style.setProperty(Np,`${N}px`),ee.__legendSheetVarOwner=d)}),E.observe(d))}),Yt(()=>{E&&(E.disconnect(),E=null),ee&&ee.__legendSheetVarOwner===Y&&(ee.style.removeProperty(Np),ee.__legendSheetVarOwner=null),ee=null,Y=null}),(d,p)=>{var N;return Q(),ae("div",Zw,[Ae.value==="detail"&&we.value&&pe.value==="open"&&_.value?(Q(),ae("div",{key:0,class:"floating-mini-image",onClick:p[0]||(p[0]=V=>ce(n).fullyOpenLegend())},[F("img",{src:_.value,alt:(N=we.value.properties)==null?void 0:N.name,class:"mini-image"},null,8,Xw)])):$e("",!0),F("div",{ref_key:"sheetRef",ref:D,class:Fe(["legend-mobile-sheet",[pe.value,{"sheet-dark":e.isDark,dragging:z.value}]]),style:st({height:ke.value,"--legend-sheet-top-reserve":Rp+"px"}),onTouchstart:R,onTouchmove:L,onTouchend:B,onTouchcancel:B},[F("div",{class:"sheet-drag-strip",onClick:oe},[Me.value?(Q(),ae("div",Jw)):$e("",!0)]),Ae.value==="detail"&&pe.value!=="collapsed"?(Q(),ae("button",{key:0,class:"detail-collapse-btn-mobile",onClick:ht(oe,["stop"]),"aria-label":ce(t)("aria.toggleLegend")},null,8,Qw)):$e("",!0),Ae.value==="detail"&&pe.value!=="collapsed"?(Q(),ae("button",{key:1,class:"detail-close-btn",onClick:ht(ve,["stop"]),"aria-label":ce(t)("aria.backToLegend")},[...p[2]||(p[2]=[F("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[F("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,ek)):$e("",!0),pe.value==="collapsed"&&Ae.value==="detail"&&we.value?(Q(),ae("div",{key:2,class:"collapsed-detail-footer",onClick:oe},[F("button",{class:"mobile-collapse-caret",style:st({transform:`rotate(${Ce.value}deg)`}),"aria-label":ce(t)("aria.toggleLegend"),tabindex:"-1"},[...p[3]||(p[3]=[F("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,tk),F("span",ok,be(J.value),1)])):$e("",!0),F("div",nk,[Ae.value==="detail"&&we.value?(Q(),ae(Ge,{key:0},[pe.value!=="collapsed"?(Q(),Ze(Pp,{key:0,peopleGroup:we.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):$e("",!0)],64)):e.legendType!=="default"?(Q(),Ze(Cp,{key:1,nodes:ne.value,tabs:he.value,"default-tab":e.defaultTab,title:J.value||K.value,hideTabs:e.nodes?!e.tabs:G.value,columnLabel:C.value,columns:e.columns||["count","pop"],"export-enabled":i.value,onSelect:ce(s),onExport:p[1]||(p[1]=V=>ce(r)&&ce(r)(V))},{"title-caret":Tt(()=>[F("button",{class:"mobile-collapse-caret",style:st({transform:`rotate(${Ce.value}deg)`}),onClick:ht(oe,["stop"]),"aria-label":ce(t)("aria.toggleLegend")},[...p[4]||(p[4]=[F("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,ak)]),_:1},8,["nodes","tabs","default-tab","title","hideTabs","columnLabel","columns","export-enabled","onSelect"])):(Q(),Ze(kp,{key:2,title:J.value,items:ce(c),columns:ce(u),activeFilter:ce(f),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:ce(P),totalPopulation:ce(y),fmtPop:ce(x),fmtCount:ce($),onFilterClick:re},{"title-caret":Tt(()=>[F("button",{class:"mobile-collapse-caret",style:st({transform:`rotate(${Ce.value}deg)`}),onClick:ht(oe,["stop"]),"aria-label":ce(t)("aria.toggleLegend")},[...p[5]||(p[5]=[F("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[F("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,sk)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount"]))])],38)])}}},[["styles",[Yw]],["__scopeId","data-v-45e780e0"]])},Symbol.toStringTag,{value:"Module"}))})();
|