From 3b8e8e21e7aabdb498eb5d4453be9f60f958556b Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Fri, 25 Sep 2026 05:48:21 +0000 Subject: [PATCH 1/2] Research Gallery: name the Experimental maps, in every locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Experimental folder's rail rows were the one part of the gallery's own chrome still in English in every locale. They were also machine-titleized manifest ids, so even English read "Upg Neighbor". The six Experimental bundles known today now have proper rail names in all 11 locales (Prayer Walk Planner, UPG Neighbor, Key Cities, All People Groups, Country Posters, Doxa Vision Card). A future bundle that isn't listed still appears, under its manifest title. Outside English its English manifest description is replaced by the translated generic subtitle. Measured on the served built tree with the folder opened (7 → 12 rows): translated in it/de/hi/ru/ar, en "UPG Neighbor", and 0 clipped. The rail clip sweep with the folder open (11 locales × 1400/390) is 22/22 clean. check:spa-tab-order passes on my own served tree. check:gallery-embed: js 13, iframe 13, neighbour 13, linked 4. --- .../doxa-maps-spa/doxa-maps-spa.vue | 6 +++-- plugin-designs/doxa-maps-spa/src/strings.js | 25 +++++++++++++++++++ .../doxa-maps/doxa-maps-spa/doxa-maps-spa.js | 18 ++++++------- .../doxa-maps-spa/app/index.html | 2 +- .../doxa-maps-spa/doxa-maps-spa/index.html | 2 +- public/doxa-maps/index.html | 2 +- public/doxa-maps/manifest.json | 4 +-- 7 files changed, 43 insertions(+), 16 deletions(-) diff --git a/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue b/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue index 7898e455d..83eb4e94e 100644 --- a/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue +++ b/plugin-designs/doxa-maps-spa/doxa-maps-spa.vue @@ -158,7 +158,7 @@ import { defineComponent, inject } from 'vue' import VerticalTabsLayout from '@map/layouts/VerticalTabsLayout.vue' import { SWITCHER_LANGUAGES, loadLocale, saveLocale, getLanguage } from '@map/layouts/app-wrapper-material/languages.js' -import { translate, LOCALES } from './src/strings.js' +import { translate, LOCALES, hasKey } from './src/strings.js' // THE HOST PAGE'S LANGUAGE, by the same ladder every nested map already uses (library/i18n // detectLocale): ?lang= / ?locale= on the page URL, then . '' when the page says nothing. @@ -1017,7 +1017,9 @@ export default defineComponent({ // A curated tab's label/sub come from the string table; a DISCOVERED (Experimental) tab has only // its manifest title, which stays as published. Its English manifest description is replaced by // the translated generic subtitle outside English, so no English prose leaks into the rail. - tabLabel(t) { return t.discovered ? t.label : translate(this.uiLocale, 'tab.' + t.id) }, + // Known Experimental bundles have proper names in the table (the manifest's titleized id reads + // "Upg Neighbor" even in English); an unknown future bundle keeps its manifest title. + tabLabel(t) { return (!t.discovered || hasKey('tab.' + t.id)) ? translate(this.uiLocale, 'tab.' + t.id) : t.label }, tabSub(t) { if (!t.discovered) return translate(this.uiLocale, 'sub.' + t.id) return this.uiLocale === 'en' ? t.sub : this.tr('experimentalSub') diff --git a/plugin-designs/doxa-maps-spa/src/strings.js b/plugin-designs/doxa-maps-spa/src/strings.js index d243ad950..2f58a8a3c 100644 --- a/plugin-designs/doxa-maps-spa/src/strings.js +++ b/plugin-designs/doxa-maps-spa/src/strings.js @@ -31,6 +31,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/en/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "Toggle list", openViews: "Open the list of views", expandList: "Expand list", collapseList: "Collapse list", collapse: "Collapse", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "Prayer Walk Planner", 'tab.upg-neighbor': "UPG Neighbor", 'tab.key-cities': "Key Cities", 'tab.all-people-groups': "All People Groups", 'tab.country-posters': "Country Posters", 'tab.doxa-vision-card': "Doxa Vision Card", desktopNotice: 'Big Picture only supports desktop — open this page on a desktop to use it.' }, es: { @@ -49,6 +51,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/es/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "Mostrar u ocultar la lista", openViews: "Abrir la lista de vistas", expandList: "Expandir la lista", collapseList: "Contraer la lista", collapse: "Contraer", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "Caminatas de oración", 'tab.upg-neighbor': "Vecino UPG", 'tab.key-cities': "Ciudades clave", 'tab.all-people-groups': "Todos los pueblos", 'tab.country-posters': "Carteles por país", 'tab.doxa-vision-card': "Tarjeta de visión Doxa", desktopNotice: 'Panorama general solo funciona en escritorio: abre esta página en una computadora para usarlo.' }, fr: { @@ -67,6 +71,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/fr/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "Afficher ou masquer la liste", openViews: "Ouvrir la liste des vues", expandList: "Déplier la liste", collapseList: "Replier la liste", collapse: "Replier", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "Marches de prière", 'tab.upg-neighbor': "Voisin UPG", 'tab.key-cities': "Villes clés", 'tab.all-people-groups': "Tous les peuples", 'tab.country-posters': "Affiches par pays", 'tab.doxa-vision-card': "Carte de vision Doxa", desktopNotice: "Vue d'ensemble ne fonctionne que sur ordinateur : ouvrez cette page sur un ordinateur pour l'utiliser." }, de: { @@ -85,6 +91,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/de/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "Liste ein-/ausblenden", openViews: "Ansichtsliste öffnen", expandList: "Liste ausklappen", collapseList: "Liste einklappen", collapse: "Einklappen", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "Gebetsspaziergänge", 'tab.upg-neighbor': "UPG-Nachbar", 'tab.key-cities': "Schlüsselstädte", 'tab.all-people-groups': "Alle Volksgruppen", 'tab.country-posters': "Länderposter", 'tab.doxa-vision-card': "Doxa-Visionskarte", desktopNotice: 'Gesamtbild funktioniert nur am Desktop – öffnen Sie diese Seite an einem Computer, um es zu nutzen.' }, pt: { @@ -103,6 +111,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/pt/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "Mostrar ou ocultar a lista", openViews: "Abrir a lista de visualizações", expandList: "Expandir a lista", collapseList: "Recolher a lista", collapse: "Recolher", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "Caminhadas de oração", 'tab.upg-neighbor': "Vizinho UPG", 'tab.key-cities': "Cidades-chave", 'tab.all-people-groups': "Todos os povos", 'tab.country-posters': "Cartazes por país", 'tab.doxa-vision-card': "Cartão de visão Doxa", desktopNotice: 'Visão geral só funciona no computador — abra esta página em um computador para usá-la.' }, it: { @@ -123,6 +133,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/it/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "Mostra o nascondi l’elenco", openViews: "Apri l’elenco delle viste", expandList: "Espandi l’elenco", collapseList: "Comprimi l’elenco", collapse: "Comprimi", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "Passeggiate di preghiera", 'tab.upg-neighbor': "Vicino UPG", 'tab.key-cities': "Città chiave", 'tab.all-people-groups': "Tutti i popoli", 'tab.country-posters': "Poster per paese", 'tab.doxa-vision-card': "Scheda visione Doxa", desktopNotice: "Quadro d'insieme funziona solo su desktop: apri questa pagina su un computer per usarlo." }, ro: { @@ -141,6 +153,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/ro/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "Afișează sau ascunde lista", openViews: "Deschide lista de vizualizări", expandList: "Extinde lista", collapseList: "Restrânge lista", collapse: "Restrânge", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "Plimbări de rugăciune", 'tab.upg-neighbor': "Vecin UPG", 'tab.key-cities': "Orașe-cheie", 'tab.all-people-groups': "Toate popoarele", 'tab.country-posters': "Afișe pe țări", 'tab.doxa-vision-card': "Card de viziune Doxa", desktopNotice: 'Imaginea de ansamblu funcționează doar pe desktop — deschideți această pagină pe un computer pentru a o folosi.' }, ru: { @@ -159,6 +173,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/ru/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "Показать или скрыть список", openViews: "Открыть список представлений", expandList: "Развернуть список", collapseList: "Свернуть список", collapse: "Свернуть", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "Молитвенные прогулки", 'tab.upg-neighbor': "Сосед UPG", 'tab.key-cities': "Ключевые города", 'tab.all-people-groups': "Все народы", 'tab.country-posters': "Плакаты по странам", 'tab.doxa-vision-card': "Карточка видения Doxa", desktopNotice: '«Общая картина» работает только на компьютере — откройте эту страницу на компьютере.' }, ar: { @@ -177,6 +193,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/ar/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "إظهار القائمة أو إخفاؤها", openViews: "فتح قائمة العروض", expandList: "توسيع القائمة", collapseList: "طي القائمة", collapse: "طي", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "جولات الصلاة", 'tab.upg-neighbor': "جار UPG", 'tab.key-cities': "المدن الرئيسية", 'tab.all-people-groups': "جميع الشعوب", 'tab.country-posters': "ملصقات الدول", 'tab.doxa-vision-card': "بطاقة رؤية Doxa", desktopNotice: 'تعمل «الصورة الكاملة» على الحاسوب فقط — افتح هذه الصفحة على حاسوب لاستخدامها.' }, hi: { @@ -195,6 +213,8 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/hi/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "सूची दिखाएँ या छिपाएँ", openViews: "दृश्यों की सूची खोलें", expandList: "सूची फैलाएँ", collapseList: "सूची संक्षिप्त करें", collapse: "संक्षिप्त करें", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "प्रार्थना पदयात्रा", 'tab.upg-neighbor': "UPG पड़ोसी", 'tab.key-cities': "प्रमुख शहर", 'tab.all-people-groups': "सभी जनसमूह", 'tab.country-posters': "देश पोस्टर", 'tab.doxa-vision-card': "Doxa दर्शन कार्ड", desktopNotice: 'संपूर्ण चित्र केवल डेस्कटॉप पर काम करता है — इसे उपयोग करने के लिए यह पेज कंप्यूटर पर खोलें।' }, zh: { @@ -213,12 +233,17 @@ export const STRINGS = { // The shared VerticalTabsLayout's own controls, VERBATIM from library/i18n/locales/zh/studio.json // (plugin studio's catalog) so both shells name the same buttons the same way. toggleList: "显示或隐藏列表", openViews: "打开视图列表", expandList: "展开列表", collapseList: "折叠列表", collapse: "折叠", + // Experimental bundles known today (rail-length names; a bundle not listed keeps its manifest title). + 'tab.prayer-walk-planner': "祷告行走", 'tab.upg-neighbor': "UPG 邻居", 'tab.key-cities': "重点城市", 'tab.all-people-groups': "所有民族", 'tab.country-posters': "国家海报", 'tab.doxa-vision-card': "Doxa 异象卡", desktopNotice: '全景仅支持桌面设备——请在电脑上打开此页面使用。' } } export const LOCALES = Object.keys(STRINGS) +/** True when the string table defines `key` (English is the source, so it has every key). */ +export function hasKey(key) { return Object.prototype.hasOwnProperty.call(STRINGS.en, key) } + /** Translate `key` into `locale`, falling back to English, then to the key itself. */ export function translate(locale, key, params) { const table = STRINGS[locale] || STRINGS.en diff --git a/public/doxa-maps/doxa-maps-spa/doxa-maps-spa.js b/public/doxa-maps/doxa-maps-spa/doxa-maps-spa.js index 749293f8e..f34f6e920 100644 --- a/public/doxa-maps/doxa-maps-spa/doxa-maps-spa.js +++ b/public/doxa-maps/doxa-maps-spa/doxa-maps-spa.js @@ -2,23 +2,23 @@ * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function As(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const z={},nt=[],we=()=>{},Ti=()=>!1,Bt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),zt=e=>e.startsWith("onUpdate:"),J=Object.assign,Os=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Pr=Object.prototype.hasOwnProperty,j=(e,t)=>Pr.call(e,t),C=Array.isArray,We=e=>gt(e)==="[object Map]",Wt=e=>gt(e)==="[object Set]",ki=e=>gt(e)==="[object Date]",P=e=>typeof e=="function",q=e=>typeof e=="string",me=e=>typeof e=="symbol",$=e=>e!==null&&typeof e=="object",Li=e=>($(e)||P(e))&&P(e.then)&&P(e.catch),Ci=Object.prototype.toString,gt=e=>Ci.call(e),Rr=e=>gt(e).slice(8,-1),Kt=e=>gt(e)==="[object Object]",Ps=e=>q(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,bt=As(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Gt=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},Mr=/-\w/g,se=Gt(e=>e.replace(Mr,t=>t.slice(1).toUpperCase())),Ir=/\B([A-Z])/g,be=Gt(e=>e.replace(Ir,"-$1").toLowerCase()),qt=Gt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Rs=Gt(e=>e?`on${qt(e)}`:""),De=(e,t)=>!Object.is(e,t),Ms=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:i,value:s})},Nr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Oi=e=>{const t=q(e)?Number(e):NaN;return isNaN(t)?e:t};let Pi;const Xt=()=>Pi||(Pi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Is(e){if(C(e)){const t={};for(let s=0;s{if(s){const i=s.split(Hr);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function Ke(e){let t="";if(q(e))t=e;else if(C(e))for(let s=0;s!!(e&&e.__v_isRef===!0),N=e=>q(e)?e:e==null?"":C(e)||$(e)&&(e.toString===Ci||!P(e.toString))?Ii(e)?N(e.value):JSON.stringify(e,Ni,2):String(e),Ni=(e,t)=>Ii(t)?Ni(e,t.value):We(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[i,n],r)=>(s[Ns(i,r)+" =>"]=n,s),{})}:Wt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Ns(s))}:me(t)?Ns(t):$(t)&&!C(t)&&!Kt(t)?String(t):t,Ns=(e,t="")=>{var s;return me(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/** +**/function As(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const z={},rt=[],we=()=>{},ki=()=>!1,zt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Wt=e=>e.startsWith("onUpdate:"),J=Object.assign,Os=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Pn=Object.prototype.hasOwnProperty,j=(e,t)=>Pn.call(e,t),L=Array.isArray,We=e=>bt(e)==="[object Map]",Kt=e=>bt(e)==="[object Set]",Ti=e=>bt(e)==="[object Date]",P=e=>typeof e=="function",q=e=>typeof e=="string",me=e=>typeof e=="symbol",U=e=>e!==null&&typeof e=="object",Ci=e=>(U(e)||P(e))&&P(e.then)&&P(e.catch),Li=Object.prototype.toString,bt=e=>Li.call(e),Rn=e=>bt(e).slice(8,-1),Gt=e=>bt(e)==="[object Object]",Ps=e=>q(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,gt=As(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),qt=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},Mn=/-\w/g,se=qt(e=>e.replace(Mn,t=>t.slice(1).toUpperCase())),In=/\B([A-Z])/g,ge=qt(e=>e.replace(In,"-$1").toLowerCase()),Xt=qt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Rs=qt(e=>e?`on${Xt(e)}`:""),De=(e,t)=>!Object.is(e,t),Ms=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:i,value:s})},Nn=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Oi=e=>{const t=q(e)?Number(e):NaN;return isNaN(t)?e:t};let Pi;const Yt=()=>Pi||(Pi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Is(e){if(L(e)){const t={};for(let s=0;s{if(s){const i=s.split(Hn);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function Ke(e){let t="";if(q(e))t=e;else if(L(e))for(let s=0;s!!(e&&e.__v_isRef===!0),N=e=>q(e)?e:e==null?"":L(e)||U(e)&&(e.toString===Li||!P(e.toString))?Ii(e)?N(e.value):JSON.stringify(e,Ni,2):String(e),Ni=(e,t)=>Ii(t)?Ni(e,t.value):We(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[i,r],n)=>(s[Ns(i,n)+" =>"]=r,s),{})}:Kt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Ns(s))}:me(t)?Ns(t):U(t)&&!L(t)&&!Gt(t)?String(t):t,Ns=(e,t="")=>{var s;return me(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/** * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let ie;class Vr{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ie&&(ie.active?(this.parent=ie,this.index=(ie.scopes||(ie.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){const i=this.scopes.slice();for(t=0,s=i.length;t0&&--this._on===0){if(ie===this)ie=this.prevScope;else{let t=ie;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,i;for(s=0,i=this.effects.length;s0)return;if(vt){let t=vt;for(vt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;mt;){let t=mt;for(mt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(i){e||(e=i)}t=s}}if(e)throw e}function Fi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function $i(e){let t,s=e.depsTail,i=s;for(;i;){const n=i.prevDep;i.version===-1?(i===s&&(s=n),$s(i),zr(i)):t=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=n}e.deps=t,e.depsTail=s}function Fs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ui(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ui(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===yt)||(e.globalVersion=yt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Fs(e))))return;e.flags|=2;const t=e.dep,s=K,i=ve;K=e,ve=!0;try{Fi(e);const n=e.fn(e._value);(t.version===0||De(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{K=s,ve=i,$i(e),e.flags&=-3}}function $s(e,t=!1){const{dep:s,prevSub:i,nextSub:n}=e;if(i&&(i.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=i,e.nextSub=void 0),s.subs===e&&(s.subs=i,!i&&s.computed)){s.computed.flags&=-5;for(let r=s.computed.deps;r;r=r.nextDep)$s(r,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function zr(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let ve=!0;const Vi=[];function Se(){Vi.push(ve),ve=!1}function Ee(){const e=Vi.pop();ve=e===void 0?!0:e}function Bi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=K;K=void 0;try{t()}finally{K=s}}}let yt=0;class Wr{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class zi{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(!K||!ve||K===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==K)s=this.activeLink=new Wr(K,this),K.deps?(s.prevDep=K.depsTail,K.depsTail.nextDep=s,K.depsTail=s):K.deps=K.depsTail=s,Wi(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const i=s.nextDep;i.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=i),s.prevDep=K.depsTail,s.nextDep=void 0,K.depsTail.nextDep=s,K.depsTail=s,K.deps===s&&(K.deps=i)}return s}trigger(t){this.version++,yt++,this.notify(t)}notify(t){Hs();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{js()}}}function Wi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let i=t.deps;i;i=i.nextDep)Wi(i)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Us=new WeakMap,Ye=Symbol(""),Vs=Symbol(""),xt=Symbol("");function oe(e,t,s){if(ve&&K){let i=Us.get(e);i||Us.set(e,i=new Map);let n=i.get(s);n||(i.set(s,n=new zi),n.map=i,n.key=s),n.track()}}function He(e,t,s,i,n,r){const o=Us.get(e);if(!o){yt++;return}const l=a=>{a&&a.trigger()};if(Hs(),t==="clear")o.forEach(l);else{const a=C(e),f=a&&Ps(s);if(a&&s==="length"){const u=Number(i);o.forEach((h,S)=>{(S==="length"||S===xt||!me(S)&&S>=u)&&l(h)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),f&&l(o.get(xt)),t){case"add":a?f&&l(o.get("length")):(l(o.get(Ye)),We(e)&&l(o.get(Vs)));break;case"delete":a||(l(o.get(Ye)),We(e)&&l(o.get(Vs)));break;case"set":We(e)&&l(o.get(Ye));break}}js()}function rt(e){const t=F(e);return t===e?t:(oe(t,"iterate",xt),ye(e)?t:t.map(Fe))}function Jt(e){return oe(e=F(e),"iterate",xt),e}function Te(e,t){return Ge(e)?ot(Je(e)?Fe(t):t):Fe(t)}const Kr={__proto__:null,[Symbol.iterator](){return Bs(this,Symbol.iterator,e=>Te(this,e))},concat(...e){return rt(this).concat(...e.map(t=>C(t)?rt(t):t))},entries(){return Bs(this,"entries",e=>(e[1]=Te(this,e[1]),e))},every(e,t){return je(this,"every",e,t,void 0,arguments)},filter(e,t){return je(this,"filter",e,t,s=>s.map(i=>Te(this,i)),arguments)},find(e,t){return je(this,"find",e,t,s=>Te(this,s),arguments)},findIndex(e,t){return je(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return je(this,"findLast",e,t,s=>Te(this,s),arguments)},findLastIndex(e,t){return je(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return je(this,"forEach",e,t,void 0,arguments)},includes(...e){return zs(this,"includes",e)},indexOf(...e){return zs(this,"indexOf",e)},join(e){return rt(this).join(e)},lastIndexOf(...e){return zs(this,"lastIndexOf",e)},map(e,t){return je(this,"map",e,t,void 0,arguments)},pop(){return _t(this,"pop")},push(...e){return _t(this,"push",e)},reduce(e,...t){return Ki(this,"reduce",e,t)},reduceRight(e,...t){return Ki(this,"reduceRight",e,t)},shift(){return _t(this,"shift")},some(e,t){return je(this,"some",e,t,void 0,arguments)},splice(...e){return _t(this,"splice",e)},toReversed(){return rt(this).toReversed()},toSorted(e){return rt(this).toSorted(e)},toSpliced(...e){return rt(this).toSpliced(...e)},unshift(...e){return _t(this,"unshift",e)},values(){return Bs(this,"values",e=>Te(this,e))}};function Bs(e,t,s){const i=Jt(e),n=i[t]();return i!==e&&!ye(e)&&(n._next=n.next,n.next=()=>{const r=n._next();return r.done||(r.value=s(r.value)),r}),n}const Gr=Array.prototype;function je(e,t,s,i,n,r){const o=Jt(e),l=o!==e&&!ye(e),a=o[t];if(a!==Gr[t]){const h=a.apply(e,r);return l?Fe(h):h}let f=s;o!==e&&(l?f=function(h,S){return s.call(this,Te(e,h),S,e)}:s.length>2&&(f=function(h,S){return s.call(this,h,S,e)}));const u=a.call(o,f,i);return l&&n?n(u):u}function Ki(e,t,s,i){const n=Jt(e),r=n!==e&&!ye(e);let o=s,l=!1;n!==e&&(r?(l=i.length===0,o=function(f,u,h){return l&&(l=!1,f=Te(e,f)),s.call(this,f,Te(e,u),h,e)}):s.length>3&&(o=function(f,u,h){return s.call(this,f,u,h,e)}));const a=n[t](o,...i);return l?Te(e,a):a}function zs(e,t,s){const i=F(e);oe(i,"iterate",xt);const n=i[t](...s);return(n===-1||n===!1)&&qs(s[0])?(s[0]=F(s[0]),i[t](...s)):n}function _t(e,t,s=[]){Se(),Hs();const i=F(e)[t].apply(e,s);return js(),Ee(),i}const qr=As("__proto__,__v_isRef,__isVue"),Gi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(me));function Xr(e){me(e)||(e=String(e));const t=F(this);return oe(t,"has",e),t.hasOwnProperty(e)}class qi{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,i){if(s==="__v_skip")return t.__v_skip;const n=this._isReadonly,r=this._isShallow;if(s==="__v_isReactive")return!n;if(s==="__v_isReadonly")return n;if(s==="__v_isShallow")return r;if(s==="__v_raw")return i===(n?r?en:Qi:r?Zi:Ji).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(i)?t:void 0;const o=C(t);if(!n){let a;if(o&&(a=Kr[s]))return a;if(s==="hasOwnProperty")return Xr}const l=Reflect.get(t,s,le(t)?t:i);if((me(s)?Gi.has(s):qr(s))||(n||oe(t,"get",s),r))return l;if(le(l)){const a=o&&Ps(s)?l:l.value;return n&&$(a)?Gs(a):a}return $(l)?n?Gs(l):Ks(l):l}}class Xi extends qi{constructor(t=!1){super(!1,t)}set(t,s,i,n){let r=t[s];const o=C(t)&&Ps(s);if(!this._isShallow){const f=Ge(r);if(!ye(i)&&!Ge(i)&&(r=F(r),i=F(i)),!o&&le(r)&&!le(i))return f||(r.value=i),!0}const l=o?Number(s)e,Zt=e=>Reflect.getPrototypeOf(e);function eo(e,t,s){return function(...i){const n=this.__v_raw,r=F(n),o=We(r),l=e==="entries"||e===Symbol.iterator&&o,a=e==="keys"&&o,f=n[e](...i),u=s?Ws:t?ot:Fe;return!t&&oe(r,"iterate",a?Vs:Ye),J(Object.create(f),{next(){const{value:h,done:S}=f.next();return S?{value:h,done:S}:{value:l?[u(h[0]),u(h[1])]:u(h),done:S}}})}}function Qt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function to(e,t){const s={get(n){const r=this.__v_raw,o=F(r),l=F(n);e||(De(n,l)&&oe(o,"get",n),oe(o,"get",l));const{has:a}=Zt(o),f=t?Ws:e?ot:Fe;if(a.call(o,n))return f(r.get(n));if(a.call(o,l))return f(r.get(l));r!==o&&r.get(n)},get size(){const n=this.__v_raw;return!e&&oe(F(n),"iterate",Ye),n.size},has(n){const r=this.__v_raw,o=F(r),l=F(n);return e||(De(n,l)&&oe(o,"has",n),oe(o,"has",l)),n===l?r.has(n):r.has(n)||r.has(l)},forEach(n,r){const o=this,l=o.__v_raw,a=F(l),f=t?Ws:e?ot:Fe;return!e&&oe(a,"iterate",Ye),l.forEach((u,h)=>n.call(r,f(u),f(h),o))}};return J(s,e?{add:Qt("add"),set:Qt("set"),delete:Qt("delete"),clear:Qt("clear")}:{add(n){const r=F(this),o=Zt(r),l=F(n),a=!t&&!ye(n)&&!Ge(n)?l:n;return o.has.call(r,a)||De(n,a)&&o.has.call(r,n)||De(l,a)&&o.has.call(r,l)||(r.add(a),He(r,"add",a,a)),this},set(n,r){!t&&!ye(r)&&!Ge(r)&&(r=F(r));const o=F(this),{has:l,get:a}=Zt(o);let f=l.call(o,n);f||(n=F(n),f=l.call(o,n));const u=a.call(o,n);return o.set(n,r),f?De(r,u)&&He(o,"set",n,r):He(o,"add",n,r),this},delete(n){const r=F(this),{has:o,get:l}=Zt(r);let a=o.call(r,n);a||(n=F(n),a=o.call(r,n)),l&&l.call(r,n);const f=r.delete(n);return a&&He(r,"delete",n,void 0),f},clear(){const n=F(this),r=n.size!==0,o=n.clear();return r&&He(n,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(n=>{s[n]=eo(n,e,t)}),s}function es(e,t){const s=to(e,t);return(i,n,r)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?i:Reflect.get(j(s,n)&&n in i?s:i,n,r)}const so={get:es(!1,!1)},io={get:es(!1,!0)},no={get:es(!0,!1)},ro={get:es(!0,!0)},Ji=new WeakMap,Zi=new WeakMap,Qi=new WeakMap,en=new WeakMap;function oo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ks(e){return Ge(e)?e:ts(e,!1,Yr,so,Ji)}function lo(e){return ts(e,!1,Zr,io,Zi)}function Gs(e){return ts(e,!0,Jr,no,Qi)}function Fc(e){return ts(e,!0,Qr,ro,en)}function ts(e,t,s,i,n){if(!$(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=n.get(e);if(r)return r;const o=oo(Rr(e));if(o===0)return e;const l=new Proxy(e,o===2?i:s);return n.set(e,l),l}function Je(e){return Ge(e)?Je(e.__v_raw):!!(e&&e.__v_isReactive)}function Ge(e){return!!(e&&e.__v_isReadonly)}function ye(e){return!!(e&&e.__v_isShallow)}function qs(e){return e?!!e.__v_raw:!1}function F(e){const t=e&&e.__v_raw;return t?F(t):e}function ao(e){return!j(e,"__v_skip")&&Object.isExtensible(e)&&Ai(e,"__v_skip",!0),e}const Fe=e=>$(e)?Ks(e):e,ot=e=>$(e)?Gs(e):e;function le(e){return e?e.__v_isRef===!0:!1}function tn(e){return le(e)?e.value:e}const co={get:(e,t,s)=>t==="__v_raw"?e:tn(Reflect.get(e,t,s)),set:(e,t,s,i)=>{const n=e[t];return le(n)&&!le(s)?(n.value=s,!0):Reflect.set(e,t,s,i)}};function sn(e){return Je(e)?e:new Proxy(e,co)}class uo{constructor(t,s,i){this.fn=t,this.setter=s,this._value=void 0,this.dep=new zi(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=yt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&K!==this)return ji(this,!0),!0}get value(){const t=this.dep.track();return Ui(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function fo(e,t,s=!1){let i,n;return P(e)?i=e:(i=e.get,n=e.set),new uo(i,n,s)}const ss={},is=new WeakMap;let Ze;function po(e,t=!1,s=Ze){if(s){let i=is.get(s);i||is.set(s,i=[]),i.push(e)}}function ho(e,t,s=z){const{immediate:i,deep:n,once:r,scheduler:o,augmentJob:l,call:a}=s,f=L=>n?L:ye(L)||n===!1||n===0?$e(L,1):$e(L);let u,h,S,E,U=!1,R=!1;if(le(e)?(h=()=>e.value,U=ye(e)):Je(e)?(h=()=>f(e),U=!0):C(e)?(R=!0,U=e.some(L=>Je(L)||ye(L)),h=()=>e.map(L=>{if(le(L))return L.value;if(Je(L))return f(L);if(P(L))return a?a(L,2):L()})):P(e)?t?h=a?()=>a(e,2):e:h=()=>{if(S){Se();try{S()}finally{Ee()}}const L=Ze;Ze=u;try{return a?a(e,3,[E]):e(E)}finally{Ze=L}}:h=we,t&&n){const L=h,te=n===!0?1/0:n;h=()=>$e(L(),te)}const Z=Br(),X=()=>{u.stop(),Z&&Z.active&&Os(Z.effects,u)};if(r&&t){const L=t;t=(...te)=>{const Oe=L(...te);return X(),Oe}}let H=R?new Array(e.length).fill(ss):ss;const V=L=>{if(!(!(u.flags&1)||!u.dirty&&!L))if(t){const te=u.run();if(L||n||U||(R?te.some((Oe,Pe)=>De(Oe,H[Pe])):De(te,H))){S&&S();const Oe=Ze;Ze=u;try{const Pe=[te,H===ss?void 0:R&&H[0]===ss?[]:H,E];H=te,a?a(t,3,Pe):t(...Pe)}finally{Ze=Oe}}}else u.run()};return l&&l(V),u=new Di(h),u.scheduler=o?()=>o(V,!1):V,E=L=>po(L,!1,u),S=u.onStop=()=>{const L=is.get(u);if(L){if(a)a(L,4);else for(const te of L)te();is.delete(u)}},t?i?V(!0):H=u.run():o?o(V.bind(null,!0),!0):u.run(),X.pause=u.pause.bind(u),X.resume=u.resume.bind(u),X.stop=X,X}function $e(e,t=1/0,s){if(t<=0||!$(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,le(e))$e(e.value,t,s);else if(C(e))for(let i=0;i{$e(i,t,s)});else if(Kt(e)){for(const i in e)$e(e[i],t,s);for(const i of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,i)&&$e(e[i],t,s)}return e}/** +**/let ie;class $n{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ie&&(ie.active?(this.parent=ie,this.index=(ie.scopes||(ie.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){const i=this.scopes.slice();for(t=0,s=i.length;t0&&--this._on===0){if(ie===this)ie=this.prevScope;else{let t=ie;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,i;for(s=0,i=this.effects.length;s0)return;if(vt){let t=vt;for(vt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;mt;){let t=mt;for(mt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(i){e||(e=i)}t=s}}if(e)throw e}function Fi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ui(e){let t,s=e.depsTail,i=s;for(;i;){const r=i.prevDep;i.version===-1?(i===s&&(s=r),Us(i),zn(i)):t=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=r}e.deps=t,e.depsTail=s}function Fs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===yt)||(e.globalVersion=yt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Fs(e))))return;e.flags|=2;const t=e.dep,s=K,i=ve;K=e,ve=!0;try{Fi(e);const r=e.fn(e._value);(t.version===0||De(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{K=s,ve=i,Ui(e),e.flags&=-3}}function Us(e,t=!1){const{dep:s,prevSub:i,nextSub:r}=e;if(i&&(i.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=i,e.nextSub=void 0),s.subs===e&&(s.subs=i,!i&&s.computed)){s.computed.flags&=-5;for(let n=s.computed.deps;n;n=n.nextDep)Us(n,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function zn(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let ve=!0;const $i=[];function Se(){$i.push(ve),ve=!1}function Ee(){const e=$i.pop();ve=e===void 0?!0:e}function Bi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=K;K=void 0;try{t()}finally{K=s}}}let yt=0;class Wn{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class zi{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(!K||!ve||K===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==K)s=this.activeLink=new Wn(K,this),K.deps?(s.prevDep=K.depsTail,K.depsTail.nextDep=s,K.depsTail=s):K.deps=K.depsTail=s,Wi(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const i=s.nextDep;i.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=i),s.prevDep=K.depsTail,s.nextDep=void 0,K.depsTail.nextDep=s,K.depsTail=s,K.deps===s&&(K.deps=i)}return s}trigger(t){this.version++,yt++,this.notify(t)}notify(t){Hs();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{js()}}}function Wi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let i=t.deps;i;i=i.nextDep)Wi(i)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Vs=new WeakMap,Ye=Symbol(""),$s=Symbol(""),xt=Symbol("");function oe(e,t,s){if(ve&&K){let i=Vs.get(e);i||Vs.set(e,i=new Map);let r=i.get(s);r||(i.set(s,r=new zi),r.map=i,r.key=s),r.track()}}function He(e,t,s,i,r,n){const o=Vs.get(e);if(!o){yt++;return}const l=a=>{a&&a.trigger()};if(Hs(),t==="clear")o.forEach(l);else{const a=L(e),p=a&&Ps(s);if(a&&s==="length"){const u=Number(i);o.forEach((h,S)=>{(S==="length"||S===xt||!me(S)&&S>=u)&&l(h)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),p&&l(o.get(xt)),t){case"add":a?p&&l(o.get("length")):(l(o.get(Ye)),We(e)&&l(o.get($s)));break;case"delete":a||(l(o.get(Ye)),We(e)&&l(o.get($s)));break;case"set":We(e)&&l(o.get(Ye));break}}js()}function nt(e){const t=F(e);return t===e?t:(oe(t,"iterate",xt),ye(e)?t:t.map(Fe))}function Zt(e){return oe(e=F(e),"iterate",xt),e}function ke(e,t){return Ge(e)?ot(Je(e)?Fe(t):t):Fe(t)}const Kn={__proto__:null,[Symbol.iterator](){return Bs(this,Symbol.iterator,e=>ke(this,e))},concat(...e){return nt(this).concat(...e.map(t=>L(t)?nt(t):t))},entries(){return Bs(this,"entries",e=>(e[1]=ke(this,e[1]),e))},every(e,t){return je(this,"every",e,t,void 0,arguments)},filter(e,t){return je(this,"filter",e,t,s=>s.map(i=>ke(this,i)),arguments)},find(e,t){return je(this,"find",e,t,s=>ke(this,s),arguments)},findIndex(e,t){return je(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return je(this,"findLast",e,t,s=>ke(this,s),arguments)},findLastIndex(e,t){return je(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return je(this,"forEach",e,t,void 0,arguments)},includes(...e){return zs(this,"includes",e)},indexOf(...e){return zs(this,"indexOf",e)},join(e){return nt(this).join(e)},lastIndexOf(...e){return zs(this,"lastIndexOf",e)},map(e,t){return je(this,"map",e,t,void 0,arguments)},pop(){return _t(this,"pop")},push(...e){return _t(this,"push",e)},reduce(e,...t){return Ki(this,"reduce",e,t)},reduceRight(e,...t){return Ki(this,"reduceRight",e,t)},shift(){return _t(this,"shift")},some(e,t){return je(this,"some",e,t,void 0,arguments)},splice(...e){return _t(this,"splice",e)},toReversed(){return nt(this).toReversed()},toSorted(e){return nt(this).toSorted(e)},toSpliced(...e){return nt(this).toSpliced(...e)},unshift(...e){return _t(this,"unshift",e)},values(){return Bs(this,"values",e=>ke(this,e))}};function Bs(e,t,s){const i=Zt(e),r=i[t]();return i!==e&&!ye(e)&&(r._next=r.next,r.next=()=>{const n=r._next();return n.done||(n.value=s(n.value)),n}),r}const Gn=Array.prototype;function je(e,t,s,i,r,n){const o=Zt(e),l=o!==e&&!ye(e),a=o[t];if(a!==Gn[t]){const h=a.apply(e,n);return l?Fe(h):h}let p=s;o!==e&&(l?p=function(h,S){return s.call(this,ke(e,h),S,e)}:s.length>2&&(p=function(h,S){return s.call(this,h,S,e)}));const u=a.call(o,p,i);return l&&r?r(u):u}function Ki(e,t,s,i){const r=Zt(e),n=r!==e&&!ye(e);let o=s,l=!1;r!==e&&(n?(l=i.length===0,o=function(p,u,h){return l&&(l=!1,p=ke(e,p)),s.call(this,p,ke(e,u),h,e)}):s.length>3&&(o=function(p,u,h){return s.call(this,p,u,h,e)}));const a=r[t](o,...i);return l?ke(e,a):a}function zs(e,t,s){const i=F(e);oe(i,"iterate",xt);const r=i[t](...s);return(r===-1||r===!1)&&qs(s[0])?(s[0]=F(s[0]),i[t](...s)):r}function _t(e,t,s=[]){Se(),Hs();const i=F(e)[t].apply(e,s);return js(),Ee(),i}const qn=As("__proto__,__v_isRef,__isVue"),Gi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(me));function Xn(e){me(e)||(e=String(e));const t=F(this);return oe(t,"has",e),t.hasOwnProperty(e)}class qi{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,i){if(s==="__v_skip")return t.__v_skip;const r=this._isReadonly,n=this._isShallow;if(s==="__v_isReactive")return!r;if(s==="__v_isReadonly")return r;if(s==="__v_isShallow")return n;if(s==="__v_raw")return i===(r?n?er:Qi:n?Zi:Ji).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(i)?t:void 0;const o=L(t);if(!r){let a;if(o&&(a=Kn[s]))return a;if(s==="hasOwnProperty")return Xn}const l=Reflect.get(t,s,le(t)?t:i);if((me(s)?Gi.has(s):qn(s))||(r||oe(t,"get",s),n))return l;if(le(l)){const a=o&&Ps(s)?l:l.value;return r&&U(a)?Gs(a):a}return U(l)?r?Gs(l):Ks(l):l}}class Xi extends qi{constructor(t=!1){super(!1,t)}set(t,s,i,r){let n=t[s];const o=L(t)&&Ps(s);if(!this._isShallow){const p=Ge(n);if(!ye(i)&&!Ge(i)&&(n=F(n),i=F(i)),!o&&le(n)&&!le(i))return p||(n.value=i),!0}const l=o?Number(s)e,Qt=e=>Reflect.getPrototypeOf(e);function eo(e,t,s){return function(...i){const r=this.__v_raw,n=F(r),o=We(n),l=e==="entries"||e===Symbol.iterator&&o,a=e==="keys"&&o,p=r[e](...i),u=s?Ws:t?ot:Fe;return!t&&oe(n,"iterate",a?$s:Ye),J(Object.create(p),{next(){const{value:h,done:S}=p.next();return S?{value:h,done:S}:{value:l?[u(h[0]),u(h[1])]:u(h),done:S}}})}}function es(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function to(e,t){const s={get(r){const n=this.__v_raw,o=F(n),l=F(r);e||(De(r,l)&&oe(o,"get",r),oe(o,"get",l));const{has:a}=Qt(o),p=t?Ws:e?ot:Fe;if(a.call(o,r))return p(n.get(r));if(a.call(o,l))return p(n.get(l));n!==o&&n.get(r)},get size(){const r=this.__v_raw;return!e&&oe(F(r),"iterate",Ye),r.size},has(r){const n=this.__v_raw,o=F(n),l=F(r);return e||(De(r,l)&&oe(o,"has",r),oe(o,"has",l)),r===l?n.has(r):n.has(r)||n.has(l)},forEach(r,n){const o=this,l=o.__v_raw,a=F(l),p=t?Ws:e?ot:Fe;return!e&&oe(a,"iterate",Ye),l.forEach((u,h)=>r.call(n,p(u),p(h),o))}};return J(s,e?{add:es("add"),set:es("set"),delete:es("delete"),clear:es("clear")}:{add(r){const n=F(this),o=Qt(n),l=F(r),a=!t&&!ye(r)&&!Ge(r)?l:r;return o.has.call(n,a)||De(r,a)&&o.has.call(n,r)||De(l,a)&&o.has.call(n,l)||(n.add(a),He(n,"add",a,a)),this},set(r,n){!t&&!ye(n)&&!Ge(n)&&(n=F(n));const o=F(this),{has:l,get:a}=Qt(o);let p=l.call(o,r);p||(r=F(r),p=l.call(o,r));const u=a.call(o,r);return o.set(r,n),p?De(n,u)&&He(o,"set",r,n):He(o,"add",r,n),this},delete(r){const n=F(this),{has:o,get:l}=Qt(n);let a=o.call(n,r);a||(r=F(r),a=o.call(n,r)),l&&l.call(n,r);const p=n.delete(r);return a&&He(n,"delete",r,void 0),p},clear(){const r=F(this),n=r.size!==0,o=r.clear();return n&&He(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=eo(r,e,t)}),s}function ts(e,t){const s=to(e,t);return(i,r,n)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?i:Reflect.get(j(s,r)&&r in i?s:i,r,n)}const so={get:ts(!1,!1)},io={get:ts(!1,!0)},ro={get:ts(!0,!1)},no={get:ts(!0,!0)},Ji=new WeakMap,Zi=new WeakMap,Qi=new WeakMap,er=new WeakMap;function oo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ks(e){return Ge(e)?e:ss(e,!1,Yn,so,Ji)}function lo(e){return ss(e,!1,Zn,io,Zi)}function Gs(e){return ss(e,!0,Jn,ro,Qi)}function Uc(e){return ss(e,!0,Qn,no,er)}function ss(e,t,s,i,r){if(!U(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const n=r.get(e);if(n)return n;const o=oo(Rn(e));if(o===0)return e;const l=new Proxy(e,o===2?i:s);return r.set(e,l),l}function Je(e){return Ge(e)?Je(e.__v_raw):!!(e&&e.__v_isReactive)}function Ge(e){return!!(e&&e.__v_isReadonly)}function ye(e){return!!(e&&e.__v_isShallow)}function qs(e){return e?!!e.__v_raw:!1}function F(e){const t=e&&e.__v_raw;return t?F(t):e}function ao(e){return!j(e,"__v_skip")&&Object.isExtensible(e)&&Ai(e,"__v_skip",!0),e}const Fe=e=>U(e)?Ks(e):e,ot=e=>U(e)?Gs(e):e;function le(e){return e?e.__v_isRef===!0:!1}function tr(e){return le(e)?e.value:e}const co={get:(e,t,s)=>t==="__v_raw"?e:tr(Reflect.get(e,t,s)),set:(e,t,s,i)=>{const r=e[t];return le(r)&&!le(s)?(r.value=s,!0):Reflect.set(e,t,s,i)}};function sr(e){return Je(e)?e:new Proxy(e,co)}class uo{constructor(t,s,i){this.fn=t,this.setter=s,this._value=void 0,this.dep=new zi(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=yt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&K!==this)return ji(this,!0),!0}get value(){const t=this.dep.track();return Vi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function po(e,t,s=!1){let i,r;return P(e)?i=e:(i=e.get,r=e.set),new uo(i,r,s)}const is={},rs=new WeakMap;let Ze;function fo(e,t=!1,s=Ze){if(s){let i=rs.get(s);i||rs.set(s,i=[]),i.push(e)}}function ho(e,t,s=z){const{immediate:i,deep:r,once:n,scheduler:o,augmentJob:l,call:a}=s,p=C=>r?C:ye(C)||r===!1||r===0?Ue(C,1):Ue(C);let u,h,S,E,V=!1,R=!1;if(le(e)?(h=()=>e.value,V=ye(e)):Je(e)?(h=()=>p(e),V=!0):L(e)?(R=!0,V=e.some(C=>Je(C)||ye(C)),h=()=>e.map(C=>{if(le(C))return C.value;if(Je(C))return p(C);if(P(C))return a?a(C,2):C()})):P(e)?t?h=a?()=>a(e,2):e:h=()=>{if(S){Se();try{S()}finally{Ee()}}const C=Ze;Ze=u;try{return a?a(e,3,[E]):e(E)}finally{Ze=C}}:h=we,t&&r){const C=h,te=r===!0?1/0:r;h=()=>Ue(C(),te)}const Z=Bn(),X=()=>{u.stop(),Z&&Z.active&&Os(Z.effects,u)};if(n&&t){const C=t;t=(...te)=>{const Oe=C(...te);return X(),Oe}}let H=R?new Array(e.length).fill(is):is;const $=C=>{if(!(!(u.flags&1)||!u.dirty&&!C))if(t){const te=u.run();if(C||r||V||(R?te.some((Oe,Pe)=>De(Oe,H[Pe])):De(te,H))){S&&S();const Oe=Ze;Ze=u;try{const Pe=[te,H===is?void 0:R&&H[0]===is?[]:H,E];H=te,a?a(t,3,Pe):t(...Pe)}finally{Ze=Oe}}}else u.run()};return l&&l($),u=new Di(h),u.scheduler=o?()=>o($,!1):$,E=C=>fo(C,!1,u),S=u.onStop=()=>{const C=rs.get(u);if(C){if(a)a(C,4);else for(const te of C)te();rs.delete(u)}},t?i?$(!0):H=u.run():o?o($.bind(null,!0),!0):u.run(),X.pause=u.pause.bind(u),X.resume=u.resume.bind(u),X.stop=X,X}function Ue(e,t=1/0,s){if(t<=0||!U(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,le(e))Ue(e.value,t,s);else if(L(e))for(let i=0;i{Ue(i,t,s)});else if(Gt(e)){for(const i in e)Ue(e[i],t,s);for(const i of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,i)&&Ue(e[i],t,s)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const wt=[];let Xs=!1;function $c(e,...t){if(Xs)return;Xs=!0,Se();const s=wt.length?wt[wt.length-1].component:null,i=s&&s.appContext.config.warnHandler,n=go();if(i)lt(i,s,11,[e+t.map(r=>{var o,l;return(l=(o=r.toString)==null?void 0:o.call(r))!=null?l:JSON.stringify(r)}).join(""),s&&s.proxy,n.map(({vnode:r})=>`at <${ir(s,r.type)}>`).join(` -`),n]);else{const r=[`[Vue warn]: ${e}`,...t];n.length&&r.push(` -`,...bo(n)),console.warn(...r)}Ee(),Xs=!1}function go(){let e=wt[wt.length-1];if(!e)return[];const t=[];for(;e;){const s=t[0];s&&s.vnode===e?s.recurseCount++:t.push({vnode:e,recurseCount:0});const i=e.component&&e.component.parent;e=i&&i.vnode}return t}function bo(e){const t=[];return e.forEach((s,i)=>{t.push(...i===0?[]:[` -`],...mo(s))}),t}function mo({vnode:e,recurseCount:t}){const s=t>0?`... (${t} recursive calls)`:"",i=e.component?e.component.parent==null:!1,n=` at <${ir(e.component,e.type,i)}`,r=">"+s;return e.props?[n,...vo(e.props),r]:[n+r]}function vo(e){const t=[],s=Object.keys(e);return s.slice(0,3).forEach(i=>{t.push(...nn(i,e[i]))}),s.length>3&&t.push(" ..."),t}function nn(e,t,s){return q(t)?(t=JSON.stringify(t),s?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?s?t:[`${e}=${t}`]:le(t)?(t=nn(e,F(t.value),!0),s?t:[`${e}=Ref<`,t,">"]):P(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=F(t),s?t:[`${e}=`,t])}function lt(e,t,s,i){try{return i?e(...i):e()}catch(n){ns(n,t,s)}}function xe(e,t,s,i){if(P(e)){const n=lt(e,t,s,i);return n&&Li(n)&&n.catch(r=>{ns(r,t,s)}),n}if(C(e)){const n=[];for(let r=0;r>>1,n=ce[i],r=St(n);r=St(s)?ce.push(e):ce.splice(xo(t),0,e),e.flags|=1,ln()}}function ln(){rs||(rs=rn.then(dn))}function _o(e){if(!C(e))qe&&e.id===-1?qe.splice(ct+1,0,e):e.flags&1||(at.push(e),e.flags|=1);else for(let t=0;tSt(s)-St(i));if(at.length=0,qe){for(let s=0;se.id==null?e.flags&2?-1:1/0:e.id;function dn(e){try{for(ke=0;ke{i._d&&qn(-1);const r=os(t),o=Ve.length;let l;try{l=e(...n)}finally{for(let a=Ve.length;a>o;a--)fi();os(r),i._d&&qn(1)}return l};return i._n=!0,i._c=!0,i._d=!0,i}function Js(e,t){if(ne===null)return e;const s=ms(ne),i=e.dirs||(e.dirs=[]);for(let n=0;n1)return s&&P(t)?t.call(i&&i.proxy):t}}const So=Symbol.for("v-scx"),Eo=()=>Tt(So);function Zs(e,t,s){return fn(e,t,s)}function fn(e,t,s=z){const{immediate:i,deep:n,flush:r,once:o}=s,l=J({},s),a=t&&i||!t&&r!=="post";let f;if(It){if(r==="sync"){const E=Eo();f=E.__watcherHandles||(E.__watcherHandles=[])}else if(!a){const E=()=>{};return E.stop=we,E.resume=we,E.pause=we,E}}const u=ae;l.call=(E,U,R)=>xe(E,u,U,R);let h=!1;r==="post"?l.scheduler=E=>{pe(E,u&&u.suspense)}:r!=="sync"&&(h=!0,l.scheduler=(E,U)=>{U?E():Ys(E)}),l.augmentJob=E=>{t&&(E.flags|=4),h&&(E.flags|=2,u&&(E.id=u.uid,E.i=u))};const S=ho(e,t,l);return It&&(f?f.push(S):a&&S()),S}function To(e,t,s){const i=this.proxy,n=q(e)?e.includes(".")?pn(i,e):()=>i[e]:e.bind(i,i);let r;P(t)?r=t:(r=t.handler,s=t);const o=Mt(this),l=fn(n,r.bind(i),s);return o(),l}function pn(e,t){const s=t.split(".");return()=>{let i=e;for(let n=0;ne.__isTeleport,Qs=Symbol("_leaveCb");function Lo(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Le){t=s;break}}return t}function hn(e){if(!si(e))return ls(e.type)&&e.children?Lo(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&P(s.default))return s.default()}}function ei(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;ei(ls(s.type)&&hn(s)||s,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ti(e,t){return P(e)?J({name:e.name},t,{setup:e}):e}function gn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function bn(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const as=new WeakMap;function kt(e,t,s,i,n=!1){if(C(e)){e.forEach((R,Z)=>kt(R,t&&(C(t)?t[Z]:t),s,i,n));return}if(dt(i)&&!n){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&kt(e,t,s,i.component.subTree);return}const r=i.shapeFlag&4?ms(i.component):i.el,o=n?null:r,{i:l,r:a}=e,f=t&&t.r,u=l.refs===z?l.refs={}:l.refs,h=l.setupState,S=F(h),E=h===z?Ti:R=>bn(u,R)?!1:j(S,R),U=(R,Z)=>!(Z&&bn(u,Z));if(f!=null&&f!==a){if(mn(t),q(f))u[f]=null,E(f)&&(h[f]=null);else if(le(f)){const R=t;U(f,R.k)&&(f.value=null),R.k&&(u[R.k]=null)}}if(P(a))lt(a,l,12,[o,u]);else{const R=q(a),Z=le(a);if(R||Z){const X=()=>{if(e.f){const H=R?E(a)?h[a]:u[a]:U()||!e.k?a.value:u[e.k];if(n)C(H)&&Os(H,r);else if(C(H))H.includes(r)||H.push(r);else if(R)u[a]=[r],E(a)&&(h[a]=u[a]);else{const V=[r];U(a,e.k)&&(a.value=V),e.k&&(u[e.k]=V)}}else R?(u[a]=o,E(a)&&(h[a]=o)):Z&&(U(a,e.k)&&(a.value=o),e.k&&(u[e.k]=o))};if(o){const H=()=>{X(),as.delete(e)};H.id=-1,as.set(e,H),pe(H,s)}else mn(e),X()}}}function mn(e){const t=as.get(e);t&&(t.flags|=8,as.delete(e))}Xt().requestIdleCallback,Xt().cancelIdleCallback;const dt=e=>!!e.type.__asyncLoader,si=e=>e.type.__isKeepAlive;function Co(e,t){vn(e,"a",t)}function Ao(e,t){vn(e,"da",t)}function vn(e,t,s=ae){const i=e.__wdc||(e.__wdc=()=>{let n=s;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(cs(t,i,s),s){let n=s.parent;for(;n&&n.parent;)si(n.parent.vnode)&&Oo(i,t,s,n),n=n.parent}}function Oo(e,t,s,i){const n=cs(t,e,i,!0);xn(()=>{Os(i[t],n)},s)}function cs(e,t,s=ae,i=!1){if(s){const n=s[e]||(s[e]=[]),r=t.__weh||(t.__weh=(...o)=>{Se();const l=Mt(s),a=xe(t,s,e,o);return l(),Ee(),a});return i?n.unshift(r):n.push(r),r}}const Ue=e=>(t,s=ae)=>{(!It||e==="sp")&&cs(e,(...i)=>t(...i),s)},Po=Ue("bm"),yn=Ue("m"),Ro=Ue("bu"),Mo=Ue("u"),Io=Ue("bum"),xn=Ue("um"),No=Ue("sp"),Do=Ue("rtg"),Ho=Ue("rtc");function jo(e,t=ae){cs("ec",e,t)}const Fo="components";function $o(e,t){return Vo(Fo,e,!0,t)||e}const Uo=Symbol.for("v-ndc");function Vo(e,t,s=!0,i=!1){const n=ne||ae;if(n){const r=n.type;{const l=sr(r,!1);if(l&&(l===t||l===se(t)||l===qt(se(t))))return r}const o=_n(n[e]||r[e],t)||_n(n.appContext[e],t);return!o&&i?r:o}}function _n(e,t){return e&&(e[t]||e[se(t)]||e[qt(se(t))])}function ut(e,t,s,i){let n;const r=s,o=C(e);if(o||q(e)){const l=o&&Je(e);let a=!1,f=!1;l&&(a=!ye(e),f=Ge(e),e=Jt(e)),n=new Array(e.length);for(let u=0,h=e.length;ut(l,a,void 0,r));else{const l=Object.keys(e);n=new Array(l.length);for(let a=0,f=l.length;a{const r=i.fn(...n);return r&&(r.key=i.key),r}:i.fn)}return e}function Lt(e,t,s,i,n,r){if(s==null&&(s={}),ne.ce||ne.parent&&dt(ne.parent)&&ne.parent.ce){const f=r!=null&&s.key==null?J({},s,{key:r}):s,u=Object.keys(f).length>0;return t!=="default"&&(f.name=t),M(),ps(ee,null,[_e("slot",f,i)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);const l=Ve.length;M();let a;try{const f=o&&wn(o(s)),u=s.key||r||f&&f.key;a=ps(ee,{key:(u&&!me(u)?u:`_${t}`)+(!f&&i?"_fb":"")},f||(i?i():[]),f&&e._===1?64:-2)}catch(f){for(let u=Ve.length;u>l;u--)fi();throw f}finally{o&&o._c&&(o._d=!0)}return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function wn(e){return e.some(t=>pi(t)?!(t.type===Le||t.type===ee&&!wn(t.children)):!0)?e:null}const ii=e=>e?Qn(e)?ms(e):ii(e.parent):null,Ct=J(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=>ii(e.parent),$root:e=>ii(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>kn(e),$forceUpdate:e=>e.f||(e.f=()=>{Ys(e.update)}),$nextTick:e=>e.n||(e.n=on.bind(e.proxy)),$watch:e=>To.bind(e)}),ni=(e,t)=>e!==z&&!e.__isScriptSetup&&j(e,t),zo={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:i,data:n,props:r,accessCache:o,type:l,appContext:a}=e;if(t[0]!=="$"){const S=o[t];if(S!==void 0)switch(S){case 1:return i[t];case 2:return n[t];case 4:return s[t];case 3:return r[t]}else{if(ni(i,t))return o[t]=1,i[t];if(n!==z&&j(n,t))return o[t]=2,n[t];if(j(r,t))return o[t]=3,r[t];if(s!==z&&j(s,t))return o[t]=4,s[t];ri&&(o[t]=0)}}const f=Ct[t];let u,h;if(f)return t==="$attrs"&&oe(e.attrs,"get",""),f(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(s!==z&&j(s,t))return o[t]=4,s[t];if(h=a.config.globalProperties,j(h,t))return h[t]},set({_:e},t,s){const{data:i,setupState:n,ctx:r}=e;return ni(n,t)?(n[t]=s,!0):i!==z&&j(i,t)?(i[t]=s,!0):j(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:i,appContext:n,props:r,type:o}},l){let a;return!!(s[l]||e!==z&&l[0]!=="$"&&j(e,l)||ni(t,l)||j(r,l)||j(i,l)||j(Ct,l)||j(n.config.globalProperties,l)||(a=o.__cssModules)&&a[l])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:j(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function Sn(e){return C(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let ri=!0;function Wo(e){const t=kn(e),s=e.proxy,i=e.ctx;ri=!1,t.beforeCreate&&En(t.beforeCreate,e,"bc");const{data:n,computed:r,methods:o,watch:l,provide:a,inject:f,created:u,beforeMount:h,mounted:S,beforeUpdate:E,updated:U,activated:R,deactivated:Z,beforeDestroy:X,beforeUnmount:H,destroyed:V,unmounted:L,render:te,renderTracked:Oe,renderTriggered:Pe,errorCaptured:Xe,serverPrefetch:Es,expose:tt,inheritAttrs:Ft,components:Ts,directives:ks,filters:Si}=t;if(f&&Ko(f,i,null),o)for(const Y in o){const G=o[Y];P(G)&&(i[Y]=G.bind(s))}if(n){const Y=n.call(s,s);$(Y)&&(e.data=Ks(Y))}if(ri=!0,r)for(const Y in r){const G=r[Y],st=P(G)?G.bind(s,s):P(G.get)?G.get.bind(s,s):we,Ls=!P(G)&&P(G.set)?G.set.bind(s):we,it=Al({get:st,set:Ls});Object.defineProperty(i,Y,{enumerable:!0,configurable:!0,get:()=>it.value,set:Re=>it.value=Re})}if(l)for(const Y in l)Tn(l[Y],i,s,Y);if(a){const Y=P(a)?a.call(s):a;Reflect.ownKeys(Y).forEach(G=>{wo(G,Y[G])})}u&&En(u,e,"c");function fe(Y,G){C(G)?G.forEach(st=>Y(st.bind(s))):G&&Y(G.bind(s))}if(fe(Po,h),fe(yn,S),fe(Ro,E),fe(Mo,U),fe(Co,R),fe(Ao,Z),fe(jo,Xe),fe(Ho,Oe),fe(Do,Pe),fe(Io,H),fe(xn,L),fe(No,Es),C(tt))if(tt.length){const Y=e.exposed||(e.exposed={});tt.forEach(G=>{Object.defineProperty(Y,G,{get:()=>s[G],set:st=>s[G]=st,enumerable:!0})})}else e.exposed||(e.exposed={});te&&e.render===we&&(e.render=te),Ft!=null&&(e.inheritAttrs=Ft),Ts&&(e.components=Ts),ks&&(e.directives=ks),Es&&gn(e)}function Ko(e,t,s=we){C(e)&&(e=oi(e));for(const i in e){const n=e[i];let r;$(n)?"default"in n?r=Tt(n.from||i,n.default,!0):r=Tt(n.from||i):r=Tt(n),le(r)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):t[i]=r}}function En(e,t,s){xe(C(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,s)}function Tn(e,t,s,i){let n=i.includes(".")?pn(s,i):()=>s[i];if(q(e)){const r=t[e];P(r)&&Zs(n,r)}else if(P(e))Zs(n,e.bind(s));else if($(e))if(C(e))e.forEach(r=>Tn(r,t,s,i));else{const r=P(e.handler)?e.handler.bind(s):t[e.handler];P(r)&&Zs(n,r,e)}}function kn(e){const t=e.type,{mixins:s,extends:i}=t,{mixins:n,optionsCache:r,config:{optionMergeStrategies:o}}=e.appContext,l=r.get(t);let a;return l?a=l:!n.length&&!s&&!i?a=t:(a={},n.length&&n.forEach(f=>ds(a,f,o,!0)),ds(a,t,o)),$(t)&&r.set(t,a),a}function ds(e,t,s,i=!1){const{mixins:n,extends:r}=t;r&&ds(e,r,s,!0),n&&n.forEach(o=>ds(e,o,s,!0));for(const o in t)if(!(i&&o==="expose")){const l=Go[o]||s&&s[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Go={data:Ln,props:Cn,emits:Cn,methods:At,computed:At,beforeCreate:de,created:de,beforeMount:de,mounted:de,beforeUpdate:de,updated:de,beforeDestroy:de,beforeUnmount:de,destroyed:de,unmounted:de,activated:de,deactivated:de,errorCaptured:de,serverPrefetch:de,components:At,directives:At,watch:Xo,provide:Ln,inject:qo};function Ln(e,t){return t?e?function(){return J(P(e)?e.call(this,this):e,P(t)?t.call(this,this):t)}:t:e}function qo(e,t){return At(oi(e),oi(t))}function oi(e){if(C(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${se(t)}Modifiers`]||e[`${be(t)}Modifiers`];function Qo(e,t,...s){if(e.isUnmounted)return;const i=e.vnode.props||z;let n=s;const r=t.startsWith("update:"),o=r&&Zo(i,t.slice(7));o&&(o.trim&&(n=s.map(u=>q(u)?u.trim():u)),o.number&&(n=n.map(Nr)));let l,a=i[l=Rs(t)]||i[l=Rs(se(t))];!a&&r&&(a=i[l=Rs(be(t))]),a&&xe(a,e,6,n);const f=i[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,xe(f,e,6,n)}}const el=new WeakMap;function On(e,t,s=!1){const i=s?el:t.emitsCache,n=i.get(e);if(n!==void 0)return n;const r=e.emits;let o={},l=!1;if(!P(e)){const a=f=>{const u=On(f,t,!0);u&&(l=!0,J(o,u))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!r&&!l?($(e)&&i.set(e,null),null):(C(r)?r.forEach(a=>o[a]=null):J(o,r),$(e)&&i.set(e,o),o)}function us(e,t){return!e||!Bt(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),j(e,t[0].toLowerCase()+t.slice(1))||j(e,be(t))||j(e,t))}function Uc(){}function Pn(e){const{type:t,vnode:s,proxy:i,withProxy:n,propsOptions:[r],slots:o,attrs:l,emit:a,render:f,renderCache:u,props:h,data:S,setupState:E,ctx:U,inheritAttrs:R}=e,Z=os(e);let X,H;try{if(s.shapeFlag&4){const L=n||i,te=L;X=Ce(f.call(te,L,u,h,E,S,U)),H=l}else{const L=t;X=Ce(L.length>1?L(h,{attrs:l,slots:o,emit:a}):L(h,null)),H=t.props?l:tl(l)}}catch(L){Ve.length=0,ns(L,e,1),X=_e(Le)}let V=X;if(H&&R!==!1){const L=Object.keys(H),{shapeFlag:te}=V;L.length&&te&7&&(r&&L.some(zt)&&(H=sl(H,r)),V=pt(V,H,!1,!0))}if(s.dirs&&(V=pt(V,null,!1,!0),V.dirs=V.dirs?V.dirs.concat(s.dirs):s.dirs),s.transition){const L=ls(V.type)&&hn(V)||V;ei(L,s.transition)}return X=V,os(Z),X}const tl=e=>{let t;for(const s in e)(s==="class"||s==="style"||Bt(s))&&((t||(t={}))[s]=e[s]);return t},sl=(e,t)=>{const s={};for(const i in e)(!zt(i)||!(i.slice(9)in t))&&(s[i]=e[i]);return s};function il(e,t,s){const{props:i,children:n,component:r}=e,{props:o,children:l,patchFlag:a}=t,f=r.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return i?Rn(i,o,f):!!o;if(a&8){const u=t.dynamicProps;for(let h=0;hObject.create(In),Dn=e=>Object.getPrototypeOf(e)===In;function rl(e,t,s,i=!1){const n={},r=Nn();e.propsDefaults=Object.create(null),Hn(e,t,n,r);for(const o in e.propsOptions[0])o in n||(n[o]=void 0);s?e.props=i?n:lo(n):e.type.props?e.props=n:e.props=r,e.attrs=r}function ol(e,t,s,i){const{props:n,attrs:r,vnode:{patchFlag:o}}=e,l=F(n),[a]=e.propsOptions;let f=!1;if((i||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let h=0;h{a=!0;const[S,E]=jn(h,t,!0);J(o,S),E&&l.push(...E)};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!a)return $(e)&&i.set(e,nt),nt;if(C(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",ci=e=>C(e)?e.map(Ce):[Ce(e)],al=(e,t,s)=>{if(t._n)return t;const i=Et((...n)=>ci(t(...n)),s);return i._c=!1,i},$n=(e,t,s)=>{const i=e._ctx;for(const n in e){if(ai(n))continue;const r=e[n];if(P(r))t[n]=al(n,r,i);else if(r!=null){const o=ci(r);t[n]=()=>o}}},Un=(e,t)=>{const s=ci(t);e.slots.default=()=>s},Vn=(e,t,s)=>{for(const i in t)(s||!ai(i))&&(e[i]=t[i])},cl=(e,t,s)=>{const i=e.slots=Nn();if(e.vnode.shapeFlag&32){const n=t._;n?(Vn(i,t,s),s&&Ai(i,"_",n,!0)):$n(t,i)}else t&&Un(e,t)},dl=(e,t,s)=>{const{vnode:i,slots:n}=e;let r=!0,o=z;if(i.shapeFlag&32){const l=t._;l?s&&l===1?r=!1:Vn(n,t,s):(r=!t.$stable,$n(t,n)),o=t}else t&&(Un(e,t),o={default:1});if(r)for(const l in n)!ai(l)&&o[l]==null&&delete n[l]},pe=gl;function ul(e){return fl(e)}function fl(e,t){const s=Xt();s.__VUE__=!0;const{insert:i,remove:n,patchProp:r,createElement:o,createText:l,createComment:a,setText:f,setElementText:u,parentNode:h,nextSibling:S,setScopeId:E=we,insertStaticContent:U}=e,R=(c,d,p,v=null,m=null,g=null,_=void 0,x=null,y=!!d.dynamicChildren)=>{if(c===d)return;c&&!Pt(c,d)&&(v=Cs(c),Re(c,m,g,!0),c=null),d.patchFlag===-2&&(y=!1,d.dynamicChildren=null);const{type:b,ref:k,shapeFlag:w}=d;switch(b){case fs:Z(c,d,p,v);break;case Le:X(c,d,p,v);break;case ui:c==null&&H(d,p,v,_);break;case ee:Ts(c,d,p,v,m,g,_,x,y);break;default:w&1?te(c,d,p,v,m,g,_,x,y):w&6?ks(c,d,p,v,m,g,_,x,y):(w&64||w&128)&&b.process(c,d,p,v,m,g,_,x,y,Ut)}k!=null&&m?kt(k,c&&c.ref,g,d||c,!d):k==null&&c&&c.ref!=null&&kt(c.ref,null,g,c,!0)},Z=(c,d,p,v)=>{if(c==null)i(d.el=l(d.children),p,v);else{const m=d.el=c.el;d.children!==c.children&&f(m,d.children)}},X=(c,d,p,v)=>{c==null?i(d.el=a(d.children||""),p,v):d.el=c.el},H=(c,d,p,v)=>{[c.el,c.anchor]=U(c.children,d,p,v,c.el,c.anchor)},V=({el:c,anchor:d},p,v)=>{let m;for(;c&&c!==d;)m=S(c),i(c,p,v),c=m;i(d,p,v)},L=({el:c,anchor:d})=>{let p;for(;c&&c!==d;)p=S(c),n(c),c=p;n(d)},te=(c,d,p,v,m,g,_,x,y)=>{if(d.type==="svg"?_="svg":d.type==="math"&&(_="mathml"),c==null)Oe(d,p,v,m,g,_,x,y);else{const b=c.el&&c.el._isVueCE?c.el:null;try{b&&b._beginPatch(),Es(c,d,m,g,_,x,y)}finally{b&&b._endPatch()}}},Oe=(c,d,p,v,m,g,_,x)=>{let y,b;const{props:k,shapeFlag:w,transition:T,dirs:O}=c;if(y=c.el=o(c.type,g,k&&k.is,k),w&8?u(y,c.children):w&16&&Xe(c.children,y,null,v,m,di(c,g),_,x),O&&Qe(c,null,v,"created"),Pe(y,c,c.scopeId,_,v),k){for(const W in k)W!=="value"&&!bt(W)&&r(y,W,null,k[W],g,v);"value"in k&&r(y,"value",null,k.value,g),(b=k.onVnodeBeforeMount)&&Ae(b,v,c)}O&&Qe(c,null,v,"beforeMount");const D=pl(m,T);D&&T.beforeEnter(y),i(y,d,p),((b=k&&k.onVnodeMounted)||D||O)&&pe(()=>{try{b&&Ae(b,v,c),D&&T.enter(y),O&&Qe(c,null,v,"mounted")}finally{}},m)},Pe=(c,d,p,v,m)=>{if(p&&E(c,p),v)for(let g=0;g{for(let b=y;b{const x=d.el=c.el;let{patchFlag:y,dynamicChildren:b,dirs:k}=d;y|=c.patchFlag&16;const w=c.props||z,T=d.props||z;let O;if(p&&et(p,!1),(O=T.onVnodeBeforeUpdate)&&Ae(O,p,d,c),k&&Qe(d,c,p,"beforeUpdate"),p&&et(p,!0),b&&(!c.dynamicChildren||c.dynamicChildren.length!==b.length)&&(y=0,_=!1,b=null),(w.innerHTML&&T.innerHTML==null||w.textContent&&T.textContent==null)&&u(x,""),b?tt(c.dynamicChildren,b,x,p,v,di(d,m),g):_||G(c,d,x,null,p,v,di(d,m),g,!1),y>0){if(y&16)Ft(x,w,T,p,m);else if(y&2&&w.class!==T.class&&r(x,"class",null,T.class,m),y&4&&r(x,"style",w.style,T.style,m),y&8){const D=d.dynamicProps;for(let W=0;W{O&&Ae(O,p,d,c),k&&Qe(d,c,p,"updated")},v)},tt=(c,d,p,v,m,g,_)=>{for(let x=0;x{if(d!==p){if(d!==z)for(const g in d)!bt(g)&&!(g in p)&&r(c,g,d[g],null,m,v);for(const g in p){if(bt(g))continue;const _=p[g],x=d[g];_!==x&&g!=="value"&&r(c,g,x,_,m,v)}"value"in p&&r(c,"value",d.value,p.value,m)}},Ts=(c,d,p,v,m,g,_,x,y)=>{const b=d.el=c?c.el:l(""),k=d.anchor=c?c.anchor:l("");let{patchFlag:w,dynamicChildren:T,slotScopeIds:O}=d;O&&(x=x?x.concat(O):O),c==null?(i(b,p,v),i(k,p,v),Xe(d.children||[],p,k,m,g,_,x,y)):w>0&&w&64&&T&&c.dynamicChildren&&c.dynamicChildren.length===T.length?(tt(c.dynamicChildren,T,p,m,g,_,x),(d.key!=null||m&&d===m.subTree)&&Bn(c,d,!0)):G(c,d,p,k,m,g,_,x,y)},ks=(c,d,p,v,m,g,_,x,y)=>{d.slotScopeIds=x,c==null?d.shapeFlag&512?m.ctx.activate(d,p,v,_,y):Si(d,p,v,m,g,_,y):Tr(c,d,y)},Si=(c,d,p,v,m,g,_)=>{const x=c.component=_l(c,v,m);if(si(c)&&(x.ctx.renderer=Ut),wl(x,!1,_),x.asyncDep){if(m&&m.registerDep(x,fe,_),!c.el){const y=x.subTree=_e(Le);X(null,y,d,p),c.placeholder=y.el}}else fe(x,c,d,p,m,g,_)},Tr=(c,d,p)=>{const v=d.component=c.component;if(il(c,d,p))if(v.asyncDep&&!v.asyncResolved){Y(v,d,p);return}else v.next=d,v.update();else d.el=c.el,v.vnode=d},fe=(c,d,p,v,m,g,_)=>{const x=()=>{if(c.isMounted){let{next:w,bu:T,u:O,parent:D,vnode:W}=c;{const Ie=zn(c);if(Ie){w&&(w.el=W.el,Y(c,w,_)),Ie.asyncDep.then(()=>{pe(()=>{c.isUnmounted||b()},m)});return}}let B=w,Q;et(c,!1),w?(w.el=W.el,Y(c,w,_)):w=W,T&&Ms(T),(Q=w.props&&w.props.onVnodeBeforeUpdate)&&Ae(Q,D,w,W),et(c,!0);const re=Pn(c),Me=c.subTree;c.subTree=re,R(Me,re,h(Me.el),Cs(Me),c,m,g),w.el=re.el,B===null&&nl(c,re.el),O&&pe(O,m),(Q=w.props&&w.props.onVnodeUpdated)&&pe(()=>Ae(Q,D,w,W),m)}else{let w;const{el:T,props:O}=d,{bm:D,m:W,parent:B,root:Q,type:re}=c,Me=dt(d);et(c,!1),D&&Ms(D),!Me&&(w=O&&O.onVnodeBeforeMount)&&Ae(w,B,d),et(c,!0);{Q.ce&&Q.ce._hasShadowRoot()&&Q.ce._injectChildStyle(re,c.parent?c.parent.type:void 0);const Ie=c.subTree=Pn(c);R(null,Ie,p,v,c,m,g),d.el=Ie.el}if(W&&pe(W,m),!Me&&(w=O&&O.onVnodeMounted)){const Ie=d;pe(()=>Ae(w,B,Ie),m)}(d.shapeFlag&256||B&&dt(B.vnode)&&B.vnode.shapeFlag&256)&&c.a&&pe(c.a,m),c.isMounted=!0,d=p=v=null}};c.scope.on();const y=c.effect=new Di(x);c.scope.off();const b=c.update=y.run.bind(y),k=c.job=y.runIfDirty.bind(y);k.i=c,k.id=c.uid,y.scheduler=()=>Ys(k),et(c,!0),b()},Y=(c,d,p)=>{d.component=c;const v=c.vnode.props;c.vnode=d,c.next=null,ol(c,d.props,v,p),dl(c,d.children,p),Se(),an(c),Ee()},G=(c,d,p,v,m,g,_,x,y=!1)=>{const b=c&&c.children,k=c?c.shapeFlag:0,w=d.children,{patchFlag:T,shapeFlag:O}=d;if(T>0){if(T&128){Ls(b,w,p,v,m,g,_,x,y);return}else if(T&256){st(b,w,p,v,m,g,_,x,y);return}}O&8?(k&16&&$t(b,m,g),w!==b&&u(p,w)):k&16?O&16?Ls(b,w,p,v,m,g,_,x,y):$t(b,m,g,!0):(k&8&&u(p,""),O&16&&Xe(w,p,v,m,g,_,x,y))},st=(c,d,p,v,m,g,_,x,y)=>{c=c||nt,d=d||nt;const b=c.length,k=d.length,w=Math.min(b,k);let T;for(T=0;Tk?$t(c,m,g,!0,!1,w):Xe(d,p,v,m,g,_,x,y,w)},Ls=(c,d,p,v,m,g,_,x,y)=>{let b=0;const k=d.length;let w=c.length-1,T=k-1;for(;b<=w&&b<=T;){const O=c[b],D=d[b]=y?Be(d[b]):Ce(d[b]);if(Pt(O,D))R(O,D,p,null,m,g,_,x,y);else break;b++}for(;b<=w&&b<=T;){const O=c[w],D=d[T]=y?Be(d[T]):Ce(d[T]);if(Pt(O,D))R(O,D,p,null,m,g,_,x,y);else break;w--,T--}if(b>w){if(b<=T){const O=T+1,D=OT)for(;b<=w;)Re(c[b],m,g,!0),b++;else{const O=b,D=b,W=new Map;for(b=D;b<=T;b++){const ge=d[b]=y?Be(d[b]):Ce(d[b]);ge.key!=null&&W.set(ge.key,b)}let B,Q=0;const re=T-D+1;let Me=!1,Ie=0;const Vt=new Array(re);for(b=0;b=re){Re(ge,m,g,!0);continue}let Ne;if(ge.key!=null)Ne=W.get(ge.key);else for(B=D;B<=T;B++)if(Vt[B-D]===0&&Pt(ge,d[B])){Ne=B;break}Ne===void 0?Re(ge,m,g,!0):(Vt[Ne-D]=b+1,Ne>=Ie?Ie=Ne:Me=!0,R(ge,d[Ne],p,null,m,g,_,x,y),Q++)}const Cr=Me?hl(Vt):nt;for(B=Cr.length-1,b=re-1;b>=0;b--){const ge=D+b,Ne=d[ge],Ar=d[ge+1],Or=ge+1{const{el:g,type:_,transition:x,children:y,shapeFlag:b}=c;if(b&6){it(c.component.subTree,d,p,v);return}if(b&128){c.suspense.move(d,p,v);return}if(b&64){_.move(c,d,p,Ut);return}if(_===ee){i(g,d,p);for(let w=0;wx.enter(g),m));else{const{leave:w,delayLeave:T,afterLeave:O}=x,D=()=>{c.ctx.isUnmounted?n(g):i(g,d,p)},W=()=>{const B=g._isLeaving||!!g[Qs];g._isLeaving&&g[Qs](!0),x.persisted&&!B?D():w(g,()=>{D(),O&&O()})};T?T(g,D,W):W()}else i(g,d,p)},Re=(c,d,p,v=!1,m=!1)=>{const{type:g,props:_,ref:x,children:y,dynamicChildren:b,shapeFlag:k,patchFlag:w,dirs:T,cacheIndex:O,memo:D}=c;if(w===-2&&(m=!1),x!=null&&(Se(),kt(x,null,p,c,!0),Ee()),O!=null&&(d.renderCache[O]=void 0),k&256){d.ctx.deactivate(c);return}const W=k&1&&T,B=!dt(c);let Q;if(B&&(Q=_&&_.onVnodeBeforeUnmount)&&Ae(Q,d,c),k&6)Hc(c.component,p,v);else{if(k&128){c.suspense.unmount(p,v);return}W&&Qe(c,null,d,"beforeUnmount"),k&64?c.type.remove(c,d,p,Ut,v):b&&!b.hasOnce&&(g!==ee||w>0&&w&64)?$t(b,d,p,!1,!0):(g===ee&&w&384||!m&&k&16)&&$t(y,d,p),v&&kr(c)}const re=D!=null&&O==null;(B&&(Q=_&&_.onVnodeUnmounted)||W||re)&&pe(()=>{Q&&Ae(Q,d,c),W&&Qe(c,null,d,"unmounted"),re&&(c.el=null)},p)},kr=c=>{const{type:d,el:p,anchor:v,transition:m}=c;if(d===ee){Dc(p,v);return}if(d===ui){L(c);return}const g=()=>{n(p),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(c.shapeFlag&1&&m&&!m.persisted){const{leave:_,delayLeave:x}=m,y=()=>_(p,g);x?x(c.el,g,y):y()}else g()},Dc=(c,d)=>{let p;for(;c!==d;)p=S(c),n(c),c=p;n(d)},Hc=(c,d,p)=>{const{bum:v,scope:m,job:g,subTree:_,um:x,m:y,a:b}=c;Wn(y),Wn(b),v&&Ms(v),m.stop(),g&&(g.flags|=8,Re(_,c,d,p)),x&&pe(x,d),pe(()=>{c.isUnmounted=!0},d)},$t=(c,d,p,v=!1,m=!1,g=0)=>{for(let _=g;_{if(c.shapeFlag&6)return Cs(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const d=S(c.anchor||c.el),p=d&&d[ko];return p?S(p):d};let Ei=!1;const Lr=(c,d,p)=>{let v;c==null?d._vnode&&(Re(d._vnode,null,null,!0),v=d._vnode.component):R(d._vnode||null,c,d,null,null,null,p),d._vnode=c,Ei||(Ei=!0,an(v),cn(),Ei=!1)},Ut={p:R,um:Re,m:it,r:kr,mt:Si,mc:Xe,pc:G,pbc:tt,n:Cs,o:e};return{render:Lr,hydrate:void 0,createApp:Jo(Lr)}}function di({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function et({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function pl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Bn(e,t,s=!1){const i=e.children,n=t.children;if(C(i)&&C(n))for(let r=0;r>1,e[s[l]]0&&(t[i]=s[r-1]),s[r]=i)}}for(r=s.length,o=s[r-1];r-- >0;)s[r]=o,o=t[o];return s}function zn(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:zn(t)}function Wn(e){if(e)for(let t=0;te.__isSuspense;function gl(e,t){t&&t.pendingBranch?C(e)?t.effects.push(...e):t.effects.push(e):_o(e)}const ee=Symbol.for("v-fgt"),fs=Symbol.for("v-txt"),Le=Symbol.for("v-cmt"),ui=Symbol.for("v-stc"),Ve=[];let he=null;function M(e=!1){Ve.push(he=e?null:[])}function fi(){Ve.pop(),he=Ve[Ve.length-1]||null}let Ot=1;function qn(e,t=!1){Ot+=e,e<0&&he&&t&&(he.hasOnce=!0)}function Xn(e){return e.dynamicChildren=Ot>0?he||nt:null,fi(),Ot>0&&he&&he.push(e),e}function I(e,t,s,i,n,r){return Xn(A(e,t,s,i,n,r,!0))}function ps(e,t,s,i,n){return Xn(_e(e,t,s,i,n,!0))}function pi(e){return e?e.__v_isVNode===!0:!1}function Pt(e,t){return e.type===t.type&&e.key===t.key}const Yn=({key:e})=>e??null,hs=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?q(e)||le(e)||P(e)?{i:ne,r:e,k:t,f:!!s}:e:null);function A(e,t=null,s=null,i=0,n=null,r=e===ee?0:1,o=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Yn(t),ref:t&&hs(t),scopeId:un,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:ne};return l?(gs(a,s),r&128&&e.normalize(a)):s&&(a.shapeFlag|=q(s)?8:16),Ot>0&&!o&&he&&(a.patchFlag>0||r&6)&&a.patchFlag!==32&&he.push(a),a}const _e=bl;function bl(e,t=null,s=null,i=0,n=null,r=!1){if((!e||e===Uo)&&(e=Le),pi(e)){const l=pt(e,t,!0);return s&&gs(l,s),Ot>0&&!r&&he&&(l.shapeFlag&6?he[he.indexOf(e)]=l:he.push(l)),l.patchFlag=-2,l}if(Cl(e)&&(e=e.__vccOpts),t){t=ml(t);let{class:l,style:a}=t;l&&!q(l)&&(t.class=Ke(l)),$(a)&&(qs(a)&&!C(a)&&(a=J({},a)),t.style=Is(a))}const o=q(e)?1:Gn(e)?128:ls(e)?64:$(e)?4:P(e)?2:0;return A(e,t,s,i,n,o,r,!0)}function ml(e){return e?qs(e)||Dn(e)?J({},e):e:null}function pt(e,t,s=!1,i=!1){const{props:n,ref:r,patchFlag:o,children:l,transition:a}=e,f=t?vl(n||{},t):n,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&Yn(f),ref:t&&t.ref?s&&r?C(r)?r.concat(hs(t)):[r,hs(t)]:hs(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ee?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&pt(e.ssContent),ssFallback:e.ssFallback&&pt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&i&&ei(u,a.clone(u)),u}function ht(e=" ",t=0){return _e(fs,null,e,t)}function ue(e="",t=!1){return t?(M(),ps(Le,null,e)):_e(Le,null,e)}function Ce(e){return e==null||typeof e=="boolean"?_e(Le):C(e)?_e(ee,null,e.slice()):pi(e)?Be(e):_e(fs,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:pt(e)}function gs(e,t){let s=0;const{shapeFlag:i}=e;if(t==null)t=null;else if(C(t))s=16;else if(typeof t=="object")if(i&65){const n=t.default;n&&(n._c&&(n._d=!1),gs(e,n()),n._c&&(n._d=!0));return}else{s=32;const n=t._;!n&&!Dn(t)?t._ctx=ne:n===3&&ne&&(ne.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(P(t)){if(i&65){gs(e,{default:t});return}t={default:t,_ctx:ne},s=32}else t=String(t),i&64?(s=16,t=[ht(t)]):s=8;e.children=t,e.shapeFlag|=s}function vl(...e){const t={};for(let s=0;sae||ne;let bs,Rt;{const e=Xt(),t=(s,i)=>{let n;return(n=e[s])||(n=e[s]=[]),n.push(i),r=>{n.length>1?n.forEach(o=>o(r)):n[0](r)}};bs=t("__VUE_INSTANCE_SETTERS__",s=>ae=s),Rt=t("__VUE_SSR_SETTERS__",s=>It=s)}const Mt=e=>{const t=ae;return bs(e),e.scope.on(),()=>{e.scope.off(),bs(t)}},Zn=()=>{ae&&ae.scope.off(),bs(null)};function Qn(e){return e.vnode.shapeFlag&4}let It=!1;function wl(e,t=!1,s=!1){t&&Rt(t);const{props:i,children:n}=e.vnode,r=Qn(e);rl(e,i,r,t),cl(e,n,s||t);const o=r?Sl(e,t):void 0;return t&&Rt(!1),o}function Sl(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,zo);const{setup:i}=s;if(i){Se();const n=e.setupContext=i.length>1?Tl(e):null,r=Mt(e),o=lt(i,e,0,[e.props,n]),l=Li(o);if(Ee(),r(),(l||e.sp)&&!dt(e)&&gn(e),l){if(o.then(Zn,Zn),t)return o.then(a=>{Rt(!0);try{er(e,a,t)}finally{Rt(!1)}}).catch(a=>{ns(a,e,0)});e.asyncDep=o}else er(e,o)}else tr(e)}function er(e,t,s){P(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:$(t)&&(e.setupState=sn(t)),tr(e)}function tr(e,t,s){const i=e.type;e.render||(e.render=i.render||we);{const n=Mt(e);Se();try{Wo(e)}finally{Ee(),n()}}}const El={get(e,t){return oe(e,"get",""),e[t]}};function Tl(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,El),slots:e.slots,emit:e.emit,expose:t}}function ms(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(sn(ao(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Ct)return Ct[s](e)},has(t,s){return s in t||s in Ct}})):e.proxy}const kl=/(?:^|[-_])\w/g,Ll=e=>e.replace(kl,t=>t.toUpperCase()).replace(/[-_]/g,"");function sr(e,t=!0){return P(e)?e.displayName||e.name:e.name||t&&e.__name}function ir(e,t,s=!1){let i=sr(t);if(!i&&t.__file){const n=t.__file.match(/([^/\\]+)\.\w+$/);n&&(i=n[1])}if(!i&&e){const n=r=>{for(const o in r)if(r[o]===t)return o};i=n(e.components)||e.parent&&n(e.parent.type.components)||n(e.appContext.components)}return i?Ll(i):s?"App":"Anonymous"}function Cl(e){return P(e)&&"__vccOpts"in e}const Al=(e,t)=>fo(e,t,It),Ol="3.5.42";/** +**/const wt=[];let Xs=!1;function Vc(e,...t){if(Xs)return;Xs=!0,Se();const s=wt.length?wt[wt.length-1].component:null,i=s&&s.appContext.config.warnHandler,r=bo();if(i)lt(i,s,11,[e+t.map(n=>{var o,l;return(l=(o=n.toString)==null?void 0:o.call(n))!=null?l:JSON.stringify(n)}).join(""),s&&s.proxy,r.map(({vnode:n})=>`at <${sn(s,n.type)}>`).join(` +`),r]);else{const n=[`[Vue warn]: ${e}`,...t];r.length&&n.push(` +`,...go(r)),console.warn(...n)}Ee(),Xs=!1}function bo(){let e=wt[wt.length-1];if(!e)return[];const t=[];for(;e;){const s=t[0];s&&s.vnode===e?s.recurseCount++:t.push({vnode:e,recurseCount:0});const i=e.component&&e.component.parent;e=i&&i.vnode}return t}function go(e){const t=[];return e.forEach((s,i)=>{t.push(...i===0?[]:[` +`],...mo(s))}),t}function mo({vnode:e,recurseCount:t}){const s=t>0?`... (${t} recursive calls)`:"",i=e.component?e.component.parent==null:!1,r=` at <${sn(e.component,e.type,i)}`,n=">"+s;return e.props?[r,...vo(e.props),n]:[r+n]}function vo(e){const t=[],s=Object.keys(e);return s.slice(0,3).forEach(i=>{t.push(...ir(i,e[i]))}),s.length>3&&t.push(" ..."),t}function ir(e,t,s){return q(t)?(t=JSON.stringify(t),s?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?s?t:[`${e}=${t}`]:le(t)?(t=ir(e,F(t.value),!0),s?t:[`${e}=Ref<`,t,">"]):P(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=F(t),s?t:[`${e}=`,t])}function lt(e,t,s,i){try{return i?e(...i):e()}catch(r){ns(r,t,s)}}function xe(e,t,s,i){if(P(e)){const r=lt(e,t,s,i);return r&&Ci(r)&&r.catch(n=>{ns(n,t,s)}),r}if(L(e)){const r=[];for(let n=0;n>>1,r=ce[i],n=St(r);n=St(s)?ce.push(e):ce.splice(xo(t),0,e),e.flags|=1,or()}}function or(){os||(os=rr.then(cr))}function _o(e){if(!L(e))qe&&e.id===-1?qe.splice(ct+1,0,e):e.flags&1||(at.push(e),e.flags|=1);else for(let t=0;tSt(s)-St(i));if(at.length=0,qe){for(let s=0;se.id==null?e.flags&2?-1:1/0:e.id;function cr(e){try{for(Te=0;Te{i._d&&Gr(-1);const n=ls(t),o=$e.length;let l;try{l=e(...r)}finally{for(let a=$e.length;a>o;a--)pi();ls(n),i._d&&Gr(1)}return l};return i._n=!0,i._c=!0,i._d=!0,i}function Js(e,t){if(re===null)return e;const s=vs(re),i=e.dirs||(e.dirs=[]);for(let r=0;r1)return s&&P(t)?t.call(i&&i.proxy):t}}const So=Symbol.for("v-scx"),Eo=()=>kt(So);function Zs(e,t,s){return ur(e,t,s)}function ur(e,t,s=z){const{immediate:i,deep:r,flush:n,once:o}=s,l=J({},s),a=t&&i||!t&&n!=="post";let p;if(It){if(n==="sync"){const E=Eo();p=E.__watcherHandles||(E.__watcherHandles=[])}else if(!a){const E=()=>{};return E.stop=we,E.resume=we,E.pause=we,E}}const u=ae;l.call=(E,V,R)=>xe(E,u,V,R);let h=!1;n==="post"?l.scheduler=E=>{fe(E,u&&u.suspense)}:n!=="sync"&&(h=!0,l.scheduler=(E,V)=>{V?E():Ys(E)}),l.augmentJob=E=>{t&&(E.flags|=4),h&&(E.flags|=2,u&&(E.id=u.uid,E.i=u))};const S=ho(e,t,l);return It&&(p?p.push(S):a&&S()),S}function ko(e,t,s){const i=this.proxy,r=q(e)?e.includes(".")?pr(i,e):()=>i[e]:e.bind(i,i);let n;P(t)?n=t:(n=t.handler,s=t);const o=Mt(this),l=ur(r,n.bind(i),s);return o(),l}function pr(e,t){const s=t.split(".");return()=>{let i=e;for(let r=0;re.__isTeleport,Qs=Symbol("_leaveCb");function Co(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Ce){t=s;break}}return t}function fr(e){if(!si(e))return as(e.type)&&e.children?Co(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&P(s.default))return s.default()}}function ei(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;ei(as(s.type)&&fr(s)||s,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ti(e,t){return P(e)?J({name:e.name},t,{setup:e}):e}function hr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function br(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const cs=new WeakMap;function Tt(e,t,s,i,r=!1){if(L(e)){e.forEach((R,Z)=>Tt(R,t&&(L(t)?t[Z]:t),s,i,r));return}if(dt(i)&&!r){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&Tt(e,t,s,i.component.subTree);return}const n=i.shapeFlag&4?vs(i.component):i.el,o=r?null:n,{i:l,r:a}=e,p=t&&t.r,u=l.refs===z?l.refs={}:l.refs,h=l.setupState,S=F(h),E=h===z?ki:R=>br(u,R)?!1:j(S,R),V=(R,Z)=>!(Z&&br(u,Z));if(p!=null&&p!==a){if(gr(t),q(p))u[p]=null,E(p)&&(h[p]=null);else if(le(p)){const R=t;V(p,R.k)&&(p.value=null),R.k&&(u[R.k]=null)}}if(P(a))lt(a,l,12,[o,u]);else{const R=q(a),Z=le(a);if(R||Z){const X=()=>{if(e.f){const H=R?E(a)?h[a]:u[a]:V()||!e.k?a.value:u[e.k];if(r)L(H)&&Os(H,n);else if(L(H))H.includes(n)||H.push(n);else if(R)u[a]=[n],E(a)&&(h[a]=u[a]);else{const $=[n];V(a,e.k)&&(a.value=$),e.k&&(u[e.k]=$)}}else R?(u[a]=o,E(a)&&(h[a]=o)):Z&&(V(a,e.k)&&(a.value=o),e.k&&(u[e.k]=o))};if(o){const H=()=>{X(),cs.delete(e)};H.id=-1,cs.set(e,H),fe(H,s)}else gr(e),X()}}}function gr(e){const t=cs.get(e);t&&(t.flags|=8,cs.delete(e))}Yt().requestIdleCallback,Yt().cancelIdleCallback;const dt=e=>!!e.type.__asyncLoader,si=e=>e.type.__isKeepAlive;function Lo(e,t){mr(e,"a",t)}function Ao(e,t){mr(e,"da",t)}function mr(e,t,s=ae){const i=e.__wdc||(e.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(ds(t,i,s),s){let r=s.parent;for(;r&&r.parent;)si(r.parent.vnode)&&Oo(i,t,s,r),r=r.parent}}function Oo(e,t,s,i){const r=ds(t,e,i,!0);yr(()=>{Os(i[t],r)},s)}function ds(e,t,s=ae,i=!1){if(s){const r=s[e]||(s[e]=[]),n=t.__weh||(t.__weh=(...o)=>{Se();const l=Mt(s),a=xe(t,s,e,o);return l(),Ee(),a});return i?r.unshift(n):r.push(n),n}}const Ve=e=>(t,s=ae)=>{(!It||e==="sp")&&ds(e,(...i)=>t(...i),s)},Po=Ve("bm"),vr=Ve("m"),Ro=Ve("bu"),Mo=Ve("u"),Io=Ve("bum"),yr=Ve("um"),No=Ve("sp"),Do=Ve("rtg"),Ho=Ve("rtc");function jo(e,t=ae){ds("ec",e,t)}const Fo="components";function Uo(e,t){return $o(Fo,e,!0,t)||e}const Vo=Symbol.for("v-ndc");function $o(e,t,s=!0,i=!1){const r=re||ae;if(r){const n=r.type;{const l=tn(n,!1);if(l&&(l===t||l===se(t)||l===Xt(se(t))))return n}const o=xr(r[e]||n[e],t)||xr(r.appContext[e],t);return!o&&i?n:o}}function xr(e,t){return e&&(e[t]||e[se(t)]||e[Xt(se(t))])}function ut(e,t,s,i){let r;const n=s,o=L(e);if(o||q(e)){const l=o&&Je(e);let a=!1,p=!1;l&&(a=!ye(e),p=Ge(e),e=Zt(e)),r=new Array(e.length);for(let u=0,h=e.length;ut(l,a,void 0,n));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,p=l.length;a{const n=i.fn(...r);return n&&(n.key=i.key),n}:i.fn)}return e}function Ct(e,t,s,i,r,n){if(s==null&&(s={}),re.ce||re.parent&&dt(re.parent)&&re.parent.ce){const p=n!=null&&s.key==null?J({},s,{key:n}):s,u=Object.keys(p).length>0;return t!=="default"&&(p.name=t),M(),hs(ee,null,[_e("slot",p,i)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);const l=$e.length;M();let a;try{const p=o&&_r(o(s)),u=s.key||n||p&&p.key;a=hs(ee,{key:(u&&!me(u)?u:`_${t}`)+(!p&&i?"_fb":"")},p||(i?i():[]),p&&e._===1?64:-2)}catch(p){for(let u=$e.length;u>l;u--)pi();throw p}finally{o&&o._c&&(o._d=!0)}return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function _r(e){return e.some(t=>fi(t)?!(t.type===Ce||t.type===ee&&!_r(t.children)):!0)?e:null}const ii=e=>e?Zr(e)?vs(e):ii(e.parent):null,Lt=J(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=>ii(e.parent),$root:e=>ii(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>kr(e),$forceUpdate:e=>e.f||(e.f=()=>{Ys(e.update)}),$nextTick:e=>e.n||(e.n=nr.bind(e.proxy)),$watch:e=>ko.bind(e)}),ri=(e,t)=>e!==z&&!e.__isScriptSetup&&j(e,t),zo={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:i,data:r,props:n,accessCache:o,type:l,appContext:a}=e;if(t[0]!=="$"){const S=o[t];if(S!==void 0)switch(S){case 1:return i[t];case 2:return r[t];case 4:return s[t];case 3:return n[t]}else{if(ri(i,t))return o[t]=1,i[t];if(r!==z&&j(r,t))return o[t]=2,r[t];if(j(n,t))return o[t]=3,n[t];if(s!==z&&j(s,t))return o[t]=4,s[t];ni&&(o[t]=0)}}const p=Lt[t];let u,h;if(p)return t==="$attrs"&&oe(e.attrs,"get",""),p(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(s!==z&&j(s,t))return o[t]=4,s[t];if(h=a.config.globalProperties,j(h,t))return h[t]},set({_:e},t,s){const{data:i,setupState:r,ctx:n}=e;return ri(r,t)?(r[t]=s,!0):i!==z&&j(i,t)?(i[t]=s,!0):j(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(n[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:i,appContext:r,props:n,type:o}},l){let a;return!!(s[l]||e!==z&&l[0]!=="$"&&j(e,l)||ri(t,l)||j(n,l)||j(i,l)||j(Lt,l)||j(r.config.globalProperties,l)||(a=o.__cssModules)&&a[l])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:j(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function wr(e){return L(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let ni=!0;function Wo(e){const t=kr(e),s=e.proxy,i=e.ctx;ni=!1,t.beforeCreate&&Sr(t.beforeCreate,e,"bc");const{data:r,computed:n,methods:o,watch:l,provide:a,inject:p,created:u,beforeMount:h,mounted:S,beforeUpdate:E,updated:V,activated:R,deactivated:Z,beforeDestroy:X,beforeUnmount:H,destroyed:$,unmounted:C,render:te,renderTracked:Oe,renderTriggered:Pe,errorCaptured:Xe,serverPrefetch:Es,expose:tt,inheritAttrs:Ut,components:ks,directives:Ts,filters:Si}=t;if(p&&Ko(p,i,null),o)for(const Y in o){const G=o[Y];P(G)&&(i[Y]=G.bind(s))}if(r){const Y=r.call(s,s);U(Y)&&(e.data=Ks(Y))}if(ni=!0,n)for(const Y in n){const G=n[Y],st=P(G)?G.bind(s,s):P(G.get)?G.get.bind(s,s):we,Cs=!P(G)&&P(G.set)?G.set.bind(s):we,it=Al({get:st,set:Cs});Object.defineProperty(i,Y,{enumerable:!0,configurable:!0,get:()=>it.value,set:Re=>it.value=Re})}if(l)for(const Y in l)Er(l[Y],i,s,Y);if(a){const Y=P(a)?a.call(s):a;Reflect.ownKeys(Y).forEach(G=>{wo(G,Y[G])})}u&&Sr(u,e,"c");function pe(Y,G){L(G)?G.forEach(st=>Y(st.bind(s))):G&&Y(G.bind(s))}if(pe(Po,h),pe(vr,S),pe(Ro,E),pe(Mo,V),pe(Lo,R),pe(Ao,Z),pe(jo,Xe),pe(Ho,Oe),pe(Do,Pe),pe(Io,H),pe(yr,C),pe(No,Es),L(tt))if(tt.length){const Y=e.exposed||(e.exposed={});tt.forEach(G=>{Object.defineProperty(Y,G,{get:()=>s[G],set:st=>s[G]=st,enumerable:!0})})}else e.exposed||(e.exposed={});te&&e.render===we&&(e.render=te),Ut!=null&&(e.inheritAttrs=Ut),ks&&(e.components=ks),Ts&&(e.directives=Ts),Es&&hr(e)}function Ko(e,t,s=we){L(e)&&(e=oi(e));for(const i in e){const r=e[i];let n;U(r)?"default"in r?n=kt(r.from||i,r.default,!0):n=kt(r.from||i):n=kt(r),le(n)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>n.value,set:o=>n.value=o}):t[i]=n}}function Sr(e,t,s){xe(L(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,s)}function Er(e,t,s,i){let r=i.includes(".")?pr(s,i):()=>s[i];if(q(e)){const n=t[e];P(n)&&Zs(r,n)}else if(P(e))Zs(r,e.bind(s));else if(U(e))if(L(e))e.forEach(n=>Er(n,t,s,i));else{const n=P(e.handler)?e.handler.bind(s):t[e.handler];P(n)&&Zs(r,n,e)}}function kr(e){const t=e.type,{mixins:s,extends:i}=t,{mixins:r,optionsCache:n,config:{optionMergeStrategies:o}}=e.appContext,l=n.get(t);let a;return l?a=l:!r.length&&!s&&!i?a=t:(a={},r.length&&r.forEach(p=>us(a,p,o,!0)),us(a,t,o)),U(t)&&n.set(t,a),a}function us(e,t,s,i=!1){const{mixins:r,extends:n}=t;n&&us(e,n,s,!0),r&&r.forEach(o=>us(e,o,s,!0));for(const o in t)if(!(i&&o==="expose")){const l=Go[o]||s&&s[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Go={data:Tr,props:Cr,emits:Cr,methods:At,computed:At,beforeCreate:de,created:de,beforeMount:de,mounted:de,beforeUpdate:de,updated:de,beforeDestroy:de,beforeUnmount:de,destroyed:de,unmounted:de,activated:de,deactivated:de,errorCaptured:de,serverPrefetch:de,components:At,directives:At,watch:Xo,provide:Tr,inject:qo};function Tr(e,t){return t?e?function(){return J(P(e)?e.call(this,this):e,P(t)?t.call(this,this):t)}:t:e}function qo(e,t){return At(oi(e),oi(t))}function oi(e){if(L(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${se(t)}Modifiers`]||e[`${ge(t)}Modifiers`];function Qo(e,t,...s){if(e.isUnmounted)return;const i=e.vnode.props||z;let r=s;const n=t.startsWith("update:"),o=n&&Zo(i,t.slice(7));o&&(o.trim&&(r=s.map(u=>q(u)?u.trim():u)),o.number&&(r=r.map(Nn)));let l,a=i[l=Rs(t)]||i[l=Rs(se(t))];!a&&n&&(a=i[l=Rs(ge(t))]),a&&xe(a,e,6,r);const p=i[l+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,xe(p,e,6,r)}}const el=new WeakMap;function Ar(e,t,s=!1){const i=s?el:t.emitsCache,r=i.get(e);if(r!==void 0)return r;const n=e.emits;let o={},l=!1;if(!P(e)){const a=p=>{const u=Ar(p,t,!0);u&&(l=!0,J(o,u))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!n&&!l?(U(e)&&i.set(e,null),null):(L(n)?n.forEach(a=>o[a]=null):J(o,n),U(e)&&i.set(e,o),o)}function ps(e,t){return!e||!zt(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),j(e,t[0].toLowerCase()+t.slice(1))||j(e,ge(t))||j(e,t))}function $c(){}function Or(e){const{type:t,vnode:s,proxy:i,withProxy:r,propsOptions:[n],slots:o,attrs:l,emit:a,render:p,renderCache:u,props:h,data:S,setupState:E,ctx:V,inheritAttrs:R}=e,Z=ls(e);let X,H;try{if(s.shapeFlag&4){const C=r||i,te=C;X=Le(p.call(te,C,u,h,E,S,V)),H=l}else{const C=t;X=Le(C.length>1?C(h,{attrs:l,slots:o,emit:a}):C(h,null)),H=t.props?l:tl(l)}}catch(C){$e.length=0,ns(C,e,1),X=_e(Ce)}let $=X;if(H&&R!==!1){const C=Object.keys(H),{shapeFlag:te}=$;C.length&&te&7&&(n&&C.some(Wt)&&(H=sl(H,n)),$=ft($,H,!1,!0))}if(s.dirs&&($=ft($,null,!1,!0),$.dirs=$.dirs?$.dirs.concat(s.dirs):s.dirs),s.transition){const C=as($.type)&&fr($)||$;ei(C,s.transition)}return X=$,ls(Z),X}const tl=e=>{let t;for(const s in e)(s==="class"||s==="style"||zt(s))&&((t||(t={}))[s]=e[s]);return t},sl=(e,t)=>{const s={};for(const i in e)(!Wt(i)||!(i.slice(9)in t))&&(s[i]=e[i]);return s};function il(e,t,s){const{props:i,children:r,component:n}=e,{props:o,children:l,patchFlag:a}=t,p=n.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return i?Pr(i,o,p):!!o;if(a&8){const u=t.dynamicProps;for(let h=0;hObject.create(Mr),Nr=e=>Object.getPrototypeOf(e)===Mr;function nl(e,t,s,i=!1){const r={},n=Ir();e.propsDefaults=Object.create(null),Dr(e,t,r,n);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);s?e.props=i?r:lo(r):e.type.props?e.props=r:e.props=n,e.attrs=n}function ol(e,t,s,i){const{props:r,attrs:n,vnode:{patchFlag:o}}=e,l=F(r),[a]=e.propsOptions;let p=!1;if((i||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let h=0;h{a=!0;const[S,E]=Hr(h,t,!0);J(o,S),E&&l.push(...E)};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!n&&!a)return U(e)&&i.set(e,rt),rt;if(L(n))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",ci=e=>L(e)?e.map(Le):[Le(e)],al=(e,t,s)=>{if(t._n)return t;const i=Et((...r)=>ci(t(...r)),s);return i._c=!1,i},Fr=(e,t,s)=>{const i=e._ctx;for(const r in e){if(ai(r))continue;const n=e[r];if(P(n))t[r]=al(r,n,i);else if(n!=null){const o=ci(n);t[r]=()=>o}}},Ur=(e,t)=>{const s=ci(t);e.slots.default=()=>s},Vr=(e,t,s)=>{for(const i in t)(s||!ai(i))&&(e[i]=t[i])},cl=(e,t,s)=>{const i=e.slots=Ir();if(e.vnode.shapeFlag&32){const r=t._;r?(Vr(i,t,s),s&&Ai(i,"_",r,!0)):Fr(t,i)}else t&&Ur(e,t)},dl=(e,t,s)=>{const{vnode:i,slots:r}=e;let n=!0,o=z;if(i.shapeFlag&32){const l=t._;l?s&&l===1?n=!1:Vr(r,t,s):(n=!t.$stable,Fr(t,r)),o=t}else t&&(Ur(e,t),o={default:1});if(n)for(const l in r)!ai(l)&&o[l]==null&&delete r[l]},fe=bl;function ul(e){return pl(e)}function pl(e,t){const s=Yt();s.__VUE__=!0;const{insert:i,remove:r,patchProp:n,createElement:o,createText:l,createComment:a,setText:p,setElementText:u,parentNode:h,nextSibling:S,setScopeId:E=we,insertStaticContent:V}=e,R=(c,d,f,v=null,m=null,b=null,_=void 0,x=null,y=!!d.dynamicChildren)=>{if(c===d)return;c&&!Pt(c,d)&&(v=Ls(c),Re(c,m,b,!0),c=null),d.patchFlag===-2&&(y=!1,d.dynamicChildren=null);const{type:g,ref:T,shapeFlag:w}=d;switch(g){case fs:Z(c,d,f,v);break;case Ce:X(c,d,f,v);break;case ui:c==null&&H(d,f,v,_);break;case ee:ks(c,d,f,v,m,b,_,x,y);break;default:w&1?te(c,d,f,v,m,b,_,x,y):w&6?Ts(c,d,f,v,m,b,_,x,y):(w&64||w&128)&&g.process(c,d,f,v,m,b,_,x,y,$t)}T!=null&&m?Tt(T,c&&c.ref,b,d||c,!d):T==null&&c&&c.ref!=null&&Tt(c.ref,null,b,c,!0)},Z=(c,d,f,v)=>{if(c==null)i(d.el=l(d.children),f,v);else{const m=d.el=c.el;d.children!==c.children&&p(m,d.children)}},X=(c,d,f,v)=>{c==null?i(d.el=a(d.children||""),f,v):d.el=c.el},H=(c,d,f,v)=>{[c.el,c.anchor]=V(c.children,d,f,v,c.el,c.anchor)},$=({el:c,anchor:d},f,v)=>{let m;for(;c&&c!==d;)m=S(c),i(c,f,v),c=m;i(d,f,v)},C=({el:c,anchor:d})=>{let f;for(;c&&c!==d;)f=S(c),r(c),c=f;r(d)},te=(c,d,f,v,m,b,_,x,y)=>{if(d.type==="svg"?_="svg":d.type==="math"&&(_="mathml"),c==null)Oe(d,f,v,m,b,_,x,y);else{const g=c.el&&c.el._isVueCE?c.el:null;try{g&&g._beginPatch(),Es(c,d,m,b,_,x,y)}finally{g&&g._endPatch()}}},Oe=(c,d,f,v,m,b,_,x)=>{let y,g;const{props:T,shapeFlag:w,transition:k,dirs:O}=c;if(y=c.el=o(c.type,b,T&&T.is,T),w&8?u(y,c.children):w&16&&Xe(c.children,y,null,v,m,di(c,b),_,x),O&&Qe(c,null,v,"created"),Pe(y,c,c.scopeId,_,v),T){for(const W in T)W!=="value"&&!gt(W)&&n(y,W,null,T[W],b,v);"value"in T&&n(y,"value",null,T.value,b),(g=T.onVnodeBeforeMount)&&Ae(g,v,c)}O&&Qe(c,null,v,"beforeMount");const D=fl(m,k);D&&k.beforeEnter(y),i(y,d,f),((g=T&&T.onVnodeMounted)||D||O)&&fe(()=>{try{g&&Ae(g,v,c),D&&k.enter(y),O&&Qe(c,null,v,"mounted")}finally{}},m)},Pe=(c,d,f,v,m)=>{if(f&&E(c,f),v)for(let b=0;b{for(let g=y;g{const x=d.el=c.el;let{patchFlag:y,dynamicChildren:g,dirs:T}=d;y|=c.patchFlag&16;const w=c.props||z,k=d.props||z;let O;if(f&&et(f,!1),(O=k.onVnodeBeforeUpdate)&&Ae(O,f,d,c),T&&Qe(d,c,f,"beforeUpdate"),f&&et(f,!0),g&&(!c.dynamicChildren||c.dynamicChildren.length!==g.length)&&(y=0,_=!1,g=null),(w.innerHTML&&k.innerHTML==null||w.textContent&&k.textContent==null)&&u(x,""),g?tt(c.dynamicChildren,g,x,f,v,di(d,m),b):_||G(c,d,x,null,f,v,di(d,m),b,!1),y>0){if(y&16)Ut(x,w,k,f,m);else if(y&2&&w.class!==k.class&&n(x,"class",null,k.class,m),y&4&&n(x,"style",w.style,k.style,m),y&8){const D=d.dynamicProps;for(let W=0;W{O&&Ae(O,f,d,c),T&&Qe(d,c,f,"updated")},v)},tt=(c,d,f,v,m,b,_)=>{for(let x=0;x{if(d!==f){if(d!==z)for(const b in d)!gt(b)&&!(b in f)&&n(c,b,d[b],null,m,v);for(const b in f){if(gt(b))continue;const _=f[b],x=d[b];_!==x&&b!=="value"&&n(c,b,x,_,m,v)}"value"in f&&n(c,"value",d.value,f.value,m)}},ks=(c,d,f,v,m,b,_,x,y)=>{const g=d.el=c?c.el:l(""),T=d.anchor=c?c.anchor:l("");let{patchFlag:w,dynamicChildren:k,slotScopeIds:O}=d;O&&(x=x?x.concat(O):O),c==null?(i(g,f,v),i(T,f,v),Xe(d.children||[],f,T,m,b,_,x,y)):w>0&&w&64&&k&&c.dynamicChildren&&c.dynamicChildren.length===k.length?(tt(c.dynamicChildren,k,f,m,b,_,x),(d.key!=null||m&&d===m.subTree)&&$r(c,d,!0)):G(c,d,f,T,m,b,_,x,y)},Ts=(c,d,f,v,m,b,_,x,y)=>{d.slotScopeIds=x,c==null?d.shapeFlag&512?m.ctx.activate(d,f,v,_,y):Si(d,f,v,m,b,_,y):kn(c,d,y)},Si=(c,d,f,v,m,b,_)=>{const x=c.component=_l(c,v,m);if(si(c)&&(x.ctx.renderer=$t),wl(x,!1,_),x.asyncDep){if(m&&m.registerDep(x,pe,_),!c.el){const y=x.subTree=_e(Ce);X(null,y,d,f),c.placeholder=y.el}}else pe(x,c,d,f,m,b,_)},kn=(c,d,f)=>{const v=d.component=c.component;if(il(c,d,f))if(v.asyncDep&&!v.asyncResolved){Y(v,d,f);return}else v.next=d,v.update();else d.el=c.el,v.vnode=d},pe=(c,d,f,v,m,b,_)=>{const x=()=>{if(c.isMounted){let{next:w,bu:k,u:O,parent:D,vnode:W}=c;{const Ie=Br(c);if(Ie){w&&(w.el=W.el,Y(c,w,_)),Ie.asyncDep.then(()=>{fe(()=>{c.isUnmounted||g()},m)});return}}let B=w,Q;et(c,!1),w?(w.el=W.el,Y(c,w,_)):w=W,k&&Ms(k),(Q=w.props&&w.props.onVnodeBeforeUpdate)&&Ae(Q,D,w,W),et(c,!0);const ne=Or(c),Me=c.subTree;c.subTree=ne,R(Me,ne,h(Me.el),Ls(Me),c,m,b),w.el=ne.el,B===null&&rl(c,ne.el),O&&fe(O,m),(Q=w.props&&w.props.onVnodeUpdated)&&fe(()=>Ae(Q,D,w,W),m)}else{let w;const{el:k,props:O}=d,{bm:D,m:W,parent:B,root:Q,type:ne}=c,Me=dt(d);et(c,!1),D&&Ms(D),!Me&&(w=O&&O.onVnodeBeforeMount)&&Ae(w,B,d),et(c,!0);{Q.ce&&Q.ce._hasShadowRoot()&&Q.ce._injectChildStyle(ne,c.parent?c.parent.type:void 0);const Ie=c.subTree=Or(c);R(null,Ie,f,v,c,m,b),d.el=Ie.el}if(W&&fe(W,m),!Me&&(w=O&&O.onVnodeMounted)){const Ie=d;fe(()=>Ae(w,B,Ie),m)}(d.shapeFlag&256||B&&dt(B.vnode)&&B.vnode.shapeFlag&256)&&c.a&&fe(c.a,m),c.isMounted=!0,d=f=v=null}};c.scope.on();const y=c.effect=new Di(x);c.scope.off();const g=c.update=y.run.bind(y),T=c.job=y.runIfDirty.bind(y);T.i=c,T.id=c.uid,y.scheduler=()=>Ys(T),et(c,!0),g()},Y=(c,d,f)=>{d.component=c;const v=c.vnode.props;c.vnode=d,c.next=null,ol(c,d.props,v,f),dl(c,d.children,f),Se(),lr(c),Ee()},G=(c,d,f,v,m,b,_,x,y=!1)=>{const g=c&&c.children,T=c?c.shapeFlag:0,w=d.children,{patchFlag:k,shapeFlag:O}=d;if(k>0){if(k&128){Cs(g,w,f,v,m,b,_,x,y);return}else if(k&256){st(g,w,f,v,m,b,_,x,y);return}}O&8?(T&16&&Vt(g,m,b),w!==g&&u(f,w)):T&16?O&16?Cs(g,w,f,v,m,b,_,x,y):Vt(g,m,b,!0):(T&8&&u(f,""),O&16&&Xe(w,f,v,m,b,_,x,y))},st=(c,d,f,v,m,b,_,x,y)=>{c=c||rt,d=d||rt;const g=c.length,T=d.length,w=Math.min(g,T);let k;for(k=0;kT?Vt(c,m,b,!0,!1,w):Xe(d,f,v,m,b,_,x,y,w)},Cs=(c,d,f,v,m,b,_,x,y)=>{let g=0;const T=d.length;let w=c.length-1,k=T-1;for(;g<=w&&g<=k;){const O=c[g],D=d[g]=y?Be(d[g]):Le(d[g]);if(Pt(O,D))R(O,D,f,null,m,b,_,x,y);else break;g++}for(;g<=w&&g<=k;){const O=c[w],D=d[k]=y?Be(d[k]):Le(d[k]);if(Pt(O,D))R(O,D,f,null,m,b,_,x,y);else break;w--,k--}if(g>w){if(g<=k){const O=k+1,D=Ok)for(;g<=w;)Re(c[g],m,b,!0),g++;else{const O=g,D=g,W=new Map;for(g=D;g<=k;g++){const be=d[g]=y?Be(d[g]):Le(d[g]);be.key!=null&&W.set(be.key,g)}let B,Q=0;const ne=k-D+1;let Me=!1,Ie=0;const Bt=new Array(ne);for(g=0;g=ne){Re(be,m,b,!0);continue}let Ne;if(be.key!=null)Ne=W.get(be.key);else for(B=D;B<=k;B++)if(Bt[B-D]===0&&Pt(be,d[B])){Ne=B;break}Ne===void 0?Re(be,m,b,!0):(Bt[Ne-D]=g+1,Ne>=Ie?Ie=Ne:Me=!0,R(be,d[Ne],f,null,m,b,_,x,y),Q++)}const Ln=Me?hl(Bt):rt;for(B=Ln.length-1,g=ne-1;g>=0;g--){const be=D+g,Ne=d[be],An=d[be+1],On=be+1{const{el:b,type:_,transition:x,children:y,shapeFlag:g}=c;if(g&6){it(c.component.subTree,d,f,v);return}if(g&128){c.suspense.move(d,f,v);return}if(g&64){_.move(c,d,f,$t);return}if(_===ee){i(b,d,f);for(let w=0;wx.enter(b),m));else{const{leave:w,delayLeave:k,afterLeave:O}=x,D=()=>{c.ctx.isUnmounted?r(b):i(b,d,f)},W=()=>{const B=b._isLeaving||!!b[Qs];b._isLeaving&&b[Qs](!0),x.persisted&&!B?D():w(b,()=>{D(),O&&O()})};k?k(b,D,W):W()}else i(b,d,f)},Re=(c,d,f,v=!1,m=!1)=>{const{type:b,props:_,ref:x,children:y,dynamicChildren:g,shapeFlag:T,patchFlag:w,dirs:k,cacheIndex:O,memo:D}=c;if(w===-2&&(m=!1),x!=null&&(Se(),Tt(x,null,f,c,!0),Ee()),O!=null&&(d.renderCache[O]=void 0),T&256){d.ctx.deactivate(c);return}const W=T&1&&k,B=!dt(c);let Q;if(B&&(Q=_&&_.onVnodeBeforeUnmount)&&Ae(Q,d,c),T&6)jc(c.component,f,v);else{if(T&128){c.suspense.unmount(f,v);return}W&&Qe(c,null,d,"beforeUnmount"),T&64?c.type.remove(c,d,f,$t,v):g&&!g.hasOnce&&(b!==ee||w>0&&w&64)?Vt(g,d,f,!1,!0):(b===ee&&w&384||!m&&T&16)&&Vt(y,d,f),v&&Tn(c)}const ne=D!=null&&O==null;(B&&(Q=_&&_.onVnodeUnmounted)||W||ne)&&fe(()=>{Q&&Ae(Q,d,c),W&&Qe(c,null,d,"unmounted"),ne&&(c.el=null)},f)},Tn=c=>{const{type:d,el:f,anchor:v,transition:m}=c;if(d===ee){Hc(f,v);return}if(d===ui){C(c);return}const b=()=>{r(f),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(c.shapeFlag&1&&m&&!m.persisted){const{leave:_,delayLeave:x}=m,y=()=>_(f,b);x?x(c.el,b,y):y()}else b()},Hc=(c,d)=>{let f;for(;c!==d;)f=S(c),r(c),c=f;r(d)},jc=(c,d,f)=>{const{bum:v,scope:m,job:b,subTree:_,um:x,m:y,a:g}=c;zr(y),zr(g),v&&Ms(v),m.stop(),b&&(b.flags|=8,Re(_,c,d,f)),x&&fe(x,d),fe(()=>{c.isUnmounted=!0},d)},Vt=(c,d,f,v=!1,m=!1,b=0)=>{for(let _=b;_{if(c.shapeFlag&6)return Ls(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const d=S(c.anchor||c.el),f=d&&d[To];return f?S(f):d};let Ei=!1;const Cn=(c,d,f)=>{let v;c==null?d._vnode&&(Re(d._vnode,null,null,!0),v=d._vnode.component):R(d._vnode||null,c,d,null,null,null,f),d._vnode=c,Ei||(Ei=!0,lr(v),ar(),Ei=!1)},$t={p:R,um:Re,m:it,r:Tn,mt:Si,mc:Xe,pc:G,pbc:tt,n:Ls,o:e};return{render:Cn,hydrate:void 0,createApp:Jo(Cn)}}function di({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function et({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function fl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function $r(e,t,s=!1){const i=e.children,r=t.children;if(L(i)&&L(r))for(let n=0;n>1,e[s[l]]0&&(t[i]=s[n-1]),s[n]=i)}}for(n=s.length,o=s[n-1];n-- >0;)s[n]=o,o=t[o];return s}function Br(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Br(t)}function zr(e){if(e)for(let t=0;te.__isSuspense;function bl(e,t){t&&t.pendingBranch?L(e)?t.effects.push(...e):t.effects.push(e):_o(e)}const ee=Symbol.for("v-fgt"),fs=Symbol.for("v-txt"),Ce=Symbol.for("v-cmt"),ui=Symbol.for("v-stc"),$e=[];let he=null;function M(e=!1){$e.push(he=e?null:[])}function pi(){$e.pop(),he=$e[$e.length-1]||null}let Ot=1;function Gr(e,t=!1){Ot+=e,e<0&&he&&t&&(he.hasOnce=!0)}function qr(e){return e.dynamicChildren=Ot>0?he||rt:null,pi(),Ot>0&&he&&he.push(e),e}function I(e,t,s,i,r,n){return qr(A(e,t,s,i,r,n,!0))}function hs(e,t,s,i,r){return qr(_e(e,t,s,i,r,!0))}function fi(e){return e?e.__v_isVNode===!0:!1}function Pt(e,t){return e.type===t.type&&e.key===t.key}const Xr=({key:e})=>e??null,bs=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?q(e)||le(e)||P(e)?{i:re,r:e,k:t,f:!!s}:e:null);function A(e,t=null,s=null,i=0,r=null,n=e===ee?0:1,o=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Xr(t),ref:t&&bs(t),scopeId:dr,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:n,patchFlag:i,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:re};return l?(gs(a,s),n&128&&e.normalize(a)):s&&(a.shapeFlag|=q(s)?8:16),Ot>0&&!o&&he&&(a.patchFlag>0||n&6)&&a.patchFlag!==32&&he.push(a),a}const _e=gl;function gl(e,t=null,s=null,i=0,r=null,n=!1){if((!e||e===Vo)&&(e=Ce),fi(e)){const l=ft(e,t,!0);return s&&gs(l,s),Ot>0&&!n&&he&&(l.shapeFlag&6?he[he.indexOf(e)]=l:he.push(l)),l.patchFlag=-2,l}if(Ll(e)&&(e=e.__vccOpts),t){t=ml(t);let{class:l,style:a}=t;l&&!q(l)&&(t.class=Ke(l)),U(a)&&(qs(a)&&!L(a)&&(a=J({},a)),t.style=Is(a))}const o=q(e)?1:Kr(e)?128:as(e)?64:U(e)?4:P(e)?2:0;return A(e,t,s,i,r,o,n,!0)}function ml(e){return e?qs(e)||Nr(e)?J({},e):e:null}function ft(e,t,s=!1,i=!1){const{props:r,ref:n,patchFlag:o,children:l,transition:a}=e,p=t?vl(r||{},t):r,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&Xr(p),ref:t&&t.ref?s&&n?L(n)?n.concat(bs(t)):[n,bs(t)]:bs(t):n,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ee?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ft(e.ssContent),ssFallback:e.ssFallback&&ft(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&i&&ei(u,a.clone(u)),u}function ht(e=" ",t=0){return _e(fs,null,e,t)}function ue(e="",t=!1){return t?(M(),hs(Ce,null,e)):_e(Ce,null,e)}function Le(e){return e==null||typeof e=="boolean"?_e(Ce):L(e)?_e(ee,null,e.slice()):fi(e)?Be(e):_e(fs,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ft(e)}function gs(e,t){let s=0;const{shapeFlag:i}=e;if(t==null)t=null;else if(L(t))s=16;else if(typeof t=="object")if(i&65){const r=t.default;r&&(r._c&&(r._d=!1),gs(e,r()),r._c&&(r._d=!0));return}else{s=32;const r=t._;!r&&!Nr(t)?t._ctx=re:r===3&&re&&(re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(P(t)){if(i&65){gs(e,{default:t});return}t={default:t,_ctx:re},s=32}else t=String(t),i&64?(s=16,t=[ht(t)]):s=8;e.children=t,e.shapeFlag|=s}function vl(...e){const t={};for(let s=0;sae||re;let ms,Rt;{const e=Yt(),t=(s,i)=>{let r;return(r=e[s])||(r=e[s]=[]),r.push(i),n=>{r.length>1?r.forEach(o=>o(n)):r[0](n)}};ms=t("__VUE_INSTANCE_SETTERS__",s=>ae=s),Rt=t("__VUE_SSR_SETTERS__",s=>It=s)}const Mt=e=>{const t=ae;return ms(e),e.scope.on(),()=>{e.scope.off(),ms(t)}},Jr=()=>{ae&&ae.scope.off(),ms(null)};function Zr(e){return e.vnode.shapeFlag&4}let It=!1;function wl(e,t=!1,s=!1){t&&Rt(t);const{props:i,children:r}=e.vnode,n=Zr(e);nl(e,i,n,t),cl(e,r,s||t);const o=n?Sl(e,t):void 0;return t&&Rt(!1),o}function Sl(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,zo);const{setup:i}=s;if(i){Se();const r=e.setupContext=i.length>1?kl(e):null,n=Mt(e),o=lt(i,e,0,[e.props,r]),l=Ci(o);if(Ee(),n(),(l||e.sp)&&!dt(e)&&hr(e),l){if(o.then(Jr,Jr),t)return o.then(a=>{Rt(!0);try{Qr(e,a,t)}finally{Rt(!1)}}).catch(a=>{ns(a,e,0)});e.asyncDep=o}else Qr(e,o)}else en(e)}function Qr(e,t,s){P(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:U(t)&&(e.setupState=sr(t)),en(e)}function en(e,t,s){const i=e.type;e.render||(e.render=i.render||we);{const r=Mt(e);Se();try{Wo(e)}finally{Ee(),r()}}}const El={get(e,t){return oe(e,"get",""),e[t]}};function kl(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,El),slots:e.slots,emit:e.emit,expose:t}}function vs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(sr(ao(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Lt)return Lt[s](e)},has(t,s){return s in t||s in Lt}})):e.proxy}const Tl=/(?:^|[-_])\w/g,Cl=e=>e.replace(Tl,t=>t.toUpperCase()).replace(/[-_]/g,"");function tn(e,t=!0){return P(e)?e.displayName||e.name:e.name||t&&e.__name}function sn(e,t,s=!1){let i=tn(t);if(!i&&t.__file){const r=t.__file.match(/([^/\\]+)\.\w+$/);r&&(i=r[1])}if(!i&&e){const r=n=>{for(const o in n)if(n[o]===t)return o};i=r(e.components)||e.parent&&r(e.parent.type.components)||r(e.appContext.components)}return i?Cl(i):s?"App":"Anonymous"}function Ll(e){return P(e)&&"__vccOpts"in e}const Al=(e,t)=>po(e,t,It),Ol="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let hi;const nr=typeof window<"u"&&window.trustedTypes;if(nr)try{hi=nr.createPolicy("vue",{createHTML:e=>e})}catch{}const rr=hi?e=>hi.createHTML(e):e=>e,Pl="http://www.w3.org/2000/svg",Rl="http://www.w3.org/1998/Math/MathML",ze=typeof document<"u"?document:null,or=ze&&ze.createElement("template"),Ml={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,i)=>{const n=t==="svg"?ze.createElementNS(Pl,e):t==="mathml"?ze.createElementNS(Rl,e):s?ze.createElement(e,{is:s}):ze.createElement(e);return e==="select"&&i&&i.multiple!=null&&n.setAttribute("multiple",i.multiple),n},createText:e=>ze.createTextNode(e),createComment:e=>ze.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ze.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,i,n,r){const o=s?s.previousSibling:t.lastChild;if(n&&(n===r||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),s),!(n===r||!(n=n.nextSibling)););else{or.innerHTML=rr(i==="svg"?`${e}`:i==="mathml"?`${e}`:e);const l=or.content;if(i==="svg"||i==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,s)}return[o?o.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Il=Symbol("_vtc");function Nl(e,t,s){const i=e[Il];i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const vs=Symbol("_vod"),lr=Symbol("_vsh"),gi={name:"show",beforeMount(e,{value:t},{transition:s}){e[vs]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Nt(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:i}){!t!=!s&&(i?t?(i.beforeEnter(e),Nt(e,!0),i.enter(e)):i.leave(e,()=>{Nt(e,!1)}):Nt(e,t))},beforeUnmount(e,{value:t}){Nt(e,t)}};function Nt(e,t){e.style.display=t?e[vs]:"none",e[lr]=!t}const Dl=Symbol(""),Hl=/(?:^|;)\s*display\s*:/;function jl(e,t,s){const i=e.style,n=q(s);let r=!1;if(s&&!n){if(t)if(q(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Dt(i,l,"")}else for(const o in t)s[o]==null&&Dt(i,o,"");for(const o in s){o==="display"&&(r=!0);const l=s[o];l!=null?$l(e,o,!q(t)&&t?t[o]:void 0,l)||Dt(i,o,l):Dt(i,o,"")}}else if(n){if(t!==s){const o=i[Dl];o&&(s+=";"+o),i.cssText=s,r=Hl.test(s)}}else t&&e.removeAttribute("style");vs in e&&(e[vs]=r?i.display:"",e[lr]&&(i.display="none"))}const ys=/\s*!important$/;function Dt(e,t,s){if(C(s))s.forEach(i=>Dt(e,t,i));else if(s==null&&(s=""),t.startsWith("--"))ys.test(s)?e.setProperty(t,s.replace(ys,""),"important"):e.setProperty(t,s);else{const i=Fl(e,t);ys.test(s)?e.setProperty(be(i),s.replace(ys,""),"important"):e[i]=s}}const ar=["Webkit","Moz","ms"],bi={};function Fl(e,t){const s=bi[t];if(s)return s;let i=se(t);if(i!=="filter"&&i in e)return bi[t]=i;i=qt(i);for(let n=0;nmi||(Gl.then(()=>mi=0),mi=Date.now());function Xl(e,t){const s=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=s.attached)return;const n=s.value;if(C(n)){const r=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0};const o=n.slice(),l=[i];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Yl=(e,t,s,i,n,r)=>{const o=n==="svg";t==="class"?Nl(e,i,o):t==="style"?jl(e,s,i):Bt(t)?zt(t)||Bl(e,t,s,i,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Jl(e,t,i,o))?(ur(e,t,i),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&dr(e,t,i,o,r,t!=="value")):e._isVueCE&&(Zl(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!q(i)))?ur(e,se(t),i,r,t):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),dr(e,t,i,o))};function Jl(e,t,s,i){if(i)return!!(t==="innerHTML"||t==="textContent"||t in e&&pr(t)&&P(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return pr(t)&&q(s)?!1:t in e}function Zl(e,t){const s=e._def.props;if(!s)return!1;const i=se(t);return Array.isArray(s)?s.some(n=>se(n)===i):Object.keys(s).some(n=>se(n)===i)}const hr={};function Ql(e,t,s){let i=ti(e,t);Kt(i)&&(i=J({},i,t));class n extends vi{constructor(o){super(i,o,s)}}return n.def=i,n}const ea=typeof HTMLElement<"u"?HTMLElement:class{};class vi extends ea{constructor(t,s={},i=mr){super(),this._def=t,this._props=s,this._createApp=i,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&&i!==mr?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(J({},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 vi){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,on(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const s of t)this._setAttr(s.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let i=0;i{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:o}=i;let l;if(r&&!C(r))for(const a in r){const f=r[a];(f===Number||f&&f.type===Number)&&(a in this._props&&(this._props[a]=Oi(this._props[a])),(l||(l=Object.create(null)))[se(a)]=!0)}this._numberProps=l,this._resolveProps(i),this.shadowRoot&&this._applyStyles(o),this._mount(i)},s=this._def.__asyncLoader;if(s)return this._pendingResolve=s().then(i=>{i.configureApp=this._def.configureApp,t(this._def=i,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const s=this._instance&&this._instance.exposed;if(s)for(const i in s)j(this,i)||Object.defineProperty(this,i,{get:()=>tn(s[i])})}_resolveProps(t){const{props:s}=t,i=C(s)?s:Object.keys(s||{});for(const n of Object.keys(this))n[0]!=="_"&&i.includes(n)&&this._setProp(n,this[n]);for(const n of i.map(se))Object.defineProperty(this,n,{get(){return this._getProp(n)},set(r){this._setProp(n,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const s=this.hasAttribute(t);let i=s?this.getAttribute(t):hr;const n=se(t);s&&this._numberProps&&this._numberProps[n]&&(i=Oi(i)),this._setProp(n,i,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,s,i=!0,n=!1){if(s!==this._props[t]&&(this._dirty=!0,s===hr?delete this._props[t]:(this._props[t]=s,t==="key"&&this._app&&(this._app._ceVNode.key=s)),n&&this._instance&&this._update(),i)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),s===!0?this.setAttribute(be(t),""):typeof s=="string"||typeof s=="number"?this.setAttribute(be(t),s+""):s||this.removeAttribute(be(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),sa(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const s=_e(this._def,J(t,this._props));return this._instance||(s.ce=i=>{this._instance=i,i.ce=this,i.isCE=!0;const n=(r,o)=>{this.dispatchEvent(new CustomEvent(r,Kt(o[0])?J({detail:o},o[0]):{detail:o}))};i.emit=(r,...o)=>{n(r,o),be(r)!==r&&n(be(r),o)},this._setParent()}),s}_applyStyles(t,s,i){if(!t)return;if(s){if(s===this._def||this._styleChildren.has(s))return;this._styleChildren.add(s)}const n=this._nonce,r=this.shadowRoot,o=i?this._getStyleAnchor(i)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let l=null;for(let a=t.length-1;a>=0;a--){const f=document.createElement("style");n&&f.setAttribute("nonce",n),f.textContent=t[a],r.insertBefore(f,l||o),l=f,a===0&&(i||this._styleAnchors.set(this._def,f),s&&this._styleAnchors.set(s,f))}}_getStyleAnchor(t){if(!t)return null;const s=this._styleAnchors.get(t);return s&&s.parentNode===this.shadowRoot?s:(s&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let s=0;s{br().render(...e)},mr=(...e)=>{const t=br().createApp(...e),{mount:s}=t;return t.mount=i=>{const n=na(i);if(!n)return;const r=t._component;!P(r)&&!r.render&&!r.template&&(r.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const o=s(n,!1,ia(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),o},t};function ia(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function na(e){return q(e)?document.querySelector(e):e}function ra(e,t){const s=t;yn(()=>{var l;const i=Jn();if(!i)return;const n=(l=i.proxy)==null?void 0:l.$el;if(!n)return;const r=n.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${s}"]`))return;const o=document.createElement("style");o.setAttribute("data-shadow-styles",s),o.textContent=e,r.appendChild(o)})}const vr={menu:'',map:'',globe:'',heart:'',prayer:'',list:'',users:'',flag:'',target:'',pin:'',monitor:'',chart:'',layers:'',flask:'',share:'',beaker:'',chevron:'',grid:'',tree:'',dots:'',embed:'',send:'',poster:'',search:'',book:'',wifi:''};function oa(e,t=""){const s=vr[e]||vr.map;return``}const la=".vtl{position:absolute;top:0;right:0;bottom:0;left:0;display:grid!important;grid-template-rows:auto 1fr;height:100%;width:100%;min-height:420px;background:#f3f3f1;color:#3b463d;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--vtl-accent:#92b195;--vtl-border:#d1d4cd;--vtl-elevated:#ffffff;--vtl-accented:#d1d4cd;--vtl-muted:#6d766e;--vtl-rail:256px}.vtl.no-header{grid-template-rows:1fr}.vtl-top{flex:0 0 auto;display:flex;align-items:center;gap:10px;box-sizing:border-box;min-height:64px;padding:8px 16px;border-bottom:1px solid var(--vtl-border);background:#fff}.vtl-menu{display:none;font:16px/1 system-ui;color:#3b463d;background:#d1d4cd;border:1px solid #d1d4cd;border-radius:8px;padding:5px 10px;cursor:pointer}.vtl-fab{position:absolute;z-index:15;left:calc(12px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));width:44px;height:44px;display:flex;align-items:center;justify-content:center;font:18px/1 system-ui;color:#3b463d;background:#fff;border:1px solid var(--vtl-border);border-radius:50%;box-shadow:0 2px 10px #0000002e;cursor:pointer}.vtl-fab:hover{background:#d1d4cd}.vtl-fab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:2px}.vtl-menu:hover{background:#d1d4cd}.vtl-brand{display:inline-flex;align-items:center}.vtl-brand:empty{display:none}.vtl-title{font-size:15px;font-weight:600;letter-spacing:-.01em;color:#3b463d}.vtl-meta{color:var(--vtl-muted);font-size:12px;margin-left:auto;display:inline-flex;align-items:center;gap:8px}.vtl-body{min-height:0;position:relative;display:flex}.vtl-nav{position:absolute;top:0;bottom:0;left:0;z-index:5;width:256px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--vtl-border);padding:12px 12px 20px;background:#fff;scrollbar-width:thin;scrollbar-color:#c4c8c0 transparent;contain:layout paint;transform:translate(0);transition:transform .2s cubic-bezier(.4,0,.2,1);will-change:transform}.vtl-nav::-webkit-scrollbar{width:8px;height:8px}.vtl-nav::-webkit-scrollbar-track{background:transparent}.vtl-nav::-webkit-scrollbar-thumb{background:#c4c8c0;border-radius:8px}.vtl-nav::-webkit-scrollbar-thumb:hover{background:#9aa197}.vtl-collapse{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;margin:0 0 8px;padding:7px 10px;border:1px solid var(--vtl-border);border-radius:8px;background:#d1d4cd;color:var(--vtl-muted);font:inherit;font-size:12px;cursor:pointer}.vtl-collapse:hover{background:var(--vtl-accented);color:#3b463d}.vtl-collapse:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-collapse-ic{flex:0 0 auto;display:inline-flex;transition:transform .16s ease;transform:rotate(180deg)}.vtl-collapse-ic svg{width:16px;height:16px}.vtl-collapse-tx{white-space:nowrap}.vtl-grp{margin-bottom:2px}.vtl-grp+.vtl-grp{margin-top:8px;padding-top:8px;border-top:1px solid var(--vtl-border)}.vtl-tier{width:100%;padding:8px 8px 6px;display:flex;align-items:center;gap:8px;box-sizing:border-box}.vtl-tier-btn{border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;border-radius:8px}.vtl-tier-btn:hover{background:var(--vtl-accented)}.vtl-tier-btn:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tier-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tier-ic svg{width:15px;height:15px}.vtl-cap{font:700 10px/1 system-ui;letter-spacing:.4px;color:#052e16;background:var(--vtl-accent);border-radius:999px;padding:3px 7px}.vtl-tl{font-weight:600;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--vtl-muted)}.vtl-td{color:#6b6b6b;font-size:11px;margin-left:auto}.vtl-chev{margin-left:auto;display:inline-flex;color:var(--vtl-muted);transition:transform .16s ease}.vtl-chev svg{width:15px;height:15px}.vtl-chev.open{transform:rotate(90deg)}.vtl-rows{display:flex;flex-direction:column;gap:1px}.vtl-tab{display:flex;align-items:center;gap:11px;width:100%;min-height:48px;text-align:left;border:0;background:none;color:var(--vtl-muted);padding:8px 12px;cursor:pointer;border-radius:var(--vtl-radius,8px);font:inherit;margin:0;transition:background .13s ease,color .13s ease}.vtl-tab:hover{background:var(--vtl-accented);color:#3b463d}.vtl-tab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tab.active{background:var(--vtl-accented);color:#3b463d;font-weight:500}.vtl-tab.active .vtl-tab-ic{color:var(--vtl-accent)}.vtl-tab-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tab-ic svg{width:20px;height:20px}.vtl-tab-emoji{font-size:17px;line-height:1;flex:0 0 auto}.vtl-tab-fallback{display:none;flex:0 0 auto;width:20px;height:20px;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--vtl-muted);background:var(--vtl-accented);border-radius:6px}.vtl-tab.active .vtl-tab-fallback{color:var(--vtl-accent)}.vtl-tab-text{display:flex;flex-direction:column;min-width:0}.vtl-tab-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.vtl-tab-badge{font:600 9px/1 system-ui;letter-spacing:.3px;text-transform:uppercase;color:var(--vtl-accent);border:1px solid var(--vtl-accent);border-radius:var(--vtl-radius,8px);padding:2px 5px}.vtl-tab-sub{font-size:11px;color:#6b6b6b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vtl-tab-sub code{font-family:ui-monospace,Menlo,monospace}.vtl-tab.active .vtl-tab-sub{color:var(--vtl-muted)}.vtl-main{position:absolute;top:0;bottom:0;right:0;left:256px;min-width:0;display:flex;flex-direction:column}.vtl-content{flex:1 1 auto;position:relative;min-height:0}.vtl-host{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h:0}.vtl-host-slot{position:relative;min-height:100%}.vtl-host-slot>*{min-height:0;max-height:none}.vtl-host-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:var(--dx-muted, #6d766e);font-size:13px;padding:20px}.vtl-host-hint.err{color:#f87171}.vtl-host-hint small{color:var(--dx-muted, #6d766e)}.vtl.rail-collapsed .vtl-nav{transform:translate(-184px)}.vtl.rail-collapsed .vtl-main{left:72px}.vtl.rail-collapsed .vtl-collapse{padding-left:184px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(0)}.vtl.rail-collapsed .vtl-collapse-tx{display:none}.vtl.rail-collapsed .vtl-tab{padding-left:188px;gap:0}.vtl.rail-collapsed .vtl-tab-text{display:none}.vtl.rail-collapsed .vtl-tab-emoji{font-size:19px}.vtl.rail-collapsed .vtl-tab-fallback{display:inline-flex}.vtl.rail-collapsed .vtl-tier{padding-left:196px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:none}.vtl.rail-collapsed .vtl-grp+.vtl-grp{margin-top:6px;padding-top:6px}@media (max-width: 760px){.vtl-top{min-height:56px}.vtl-menu{display:inline-block}.vtl-meta{display:none}.vtl-nav{z-index:20;width:256px;box-shadow:0 0 28px #0000008c;transform:translate(-100%)}.vtl.nav-open .vtl-nav{transform:translate(0);z-index:1000}.vtl-main{left:0}.vtl.rail-collapsed .vtl-nav{transform:translate(-100%)}.vtl.rail-collapsed.nav-open .vtl-nav{transform:translate(0)}.vtl.rail-collapsed .vtl-main{left:0}.vtl.rail-collapsed .vtl-collapse{padding-left:10px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(180deg)}.vtl.rail-collapsed .vtl-collapse-tx{display:inline}.vtl.rail-collapsed .vtl-tab{padding-left:10px;gap:11px}.vtl.rail-collapsed .vtl-tab-text{display:flex}.vtl.rail-collapsed .vtl-tab-fallback{display:none}.vtl.rail-collapsed .vtl-tier{padding-left:8px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:inline}}.vtl:dir(rtl) .vtl-nav{left:auto;right:0;border-right:0;border-left:1px solid var(--vtl-border)}.vtl:dir(rtl) .vtl-main{left:0;right:256px}.vtl:dir(rtl) .vtl-tab,.vtl:dir(rtl) .vtl-tier-btn{text-align:right}.vtl:dir(rtl) .vtl-meta,.vtl:dir(rtl) .vtl-td,.vtl:dir(rtl) .vtl-chev{margin-left:0;margin-right:auto}.vtl:dir(rtl) .vtl-chev:not(.open){transform:scaleX(-1)}.vtl:dir(rtl) .vtl-collapse-ic svg{transform:scaleX(-1)}.vtl:dir(rtl) .vtl-fab{left:auto;right:calc(12px + env(safe-area-inset-right))}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(184px)}.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:72px}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:184px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:188px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:196px}@media (max-width: 760px){.vtl:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl:dir(rtl) .vtl-main,.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:0}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.rail-collapsed.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:8px}}",yr=(e,t)=>{const s=e.__vccOpts||e;for(const[i,n]of t)s[i]=n;return s},Ht={};function aa(e){return e?(Ht[e]||(Ht[e]=new Promise((t,s)=>{const i=document.createElement("script");i.src=e,i.onload=()=>t(),i.onerror=()=>{delete Ht[e],s(new Error("failed to load "+e))},document.head.appendChild(i)})),Ht[e]):Promise.resolve()}function ca(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((s,i)=>setTimeout(()=>i(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const da=` +**/let hi;const rn=typeof window<"u"&&window.trustedTypes;if(rn)try{hi=rn.createPolicy("vue",{createHTML:e=>e})}catch{}const nn=hi?e=>hi.createHTML(e):e=>e,Pl="http://www.w3.org/2000/svg",Rl="http://www.w3.org/1998/Math/MathML",ze=typeof document<"u"?document:null,on=ze&&ze.createElement("template"),Ml={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,i)=>{const r=t==="svg"?ze.createElementNS(Pl,e):t==="mathml"?ze.createElementNS(Rl,e):s?ze.createElement(e,{is:s}):ze.createElement(e);return e==="select"&&i&&i.multiple!=null&&r.setAttribute("multiple",i.multiple),r},createText:e=>ze.createTextNode(e),createComment:e=>ze.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ze.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,i,r,n){const o=s?s.previousSibling:t.lastChild;if(r&&(r===n||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),s),!(r===n||!(r=r.nextSibling)););else{on.innerHTML=nn(i==="svg"?`${e}`:i==="mathml"?`${e}`:e);const l=on.content;if(i==="svg"||i==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,s)}return[o?o.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Il=Symbol("_vtc");function Nl(e,t,s){const i=e[Il];i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const ys=Symbol("_vod"),ln=Symbol("_vsh"),bi={name:"show",beforeMount(e,{value:t},{transition:s}){e[ys]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Nt(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:i}){!t!=!s&&(i?t?(i.beforeEnter(e),Nt(e,!0),i.enter(e)):i.leave(e,()=>{Nt(e,!1)}):Nt(e,t))},beforeUnmount(e,{value:t}){Nt(e,t)}};function Nt(e,t){e.style.display=t?e[ys]:"none",e[ln]=!t}const Dl=Symbol(""),Hl=/(?:^|;)\s*display\s*:/;function jl(e,t,s){const i=e.style,r=q(s);let n=!1;if(s&&!r){if(t)if(q(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Dt(i,l,"")}else for(const o in t)s[o]==null&&Dt(i,o,"");for(const o in s){o==="display"&&(n=!0);const l=s[o];l!=null?Ul(e,o,!q(t)&&t?t[o]:void 0,l)||Dt(i,o,l):Dt(i,o,"")}}else if(r){if(t!==s){const o=i[Dl];o&&(s+=";"+o),i.cssText=s,n=Hl.test(s)}}else t&&e.removeAttribute("style");ys in e&&(e[ys]=n?i.display:"",e[ln]&&(i.display="none"))}const xs=/\s*!important$/;function Dt(e,t,s){if(L(s))s.forEach(i=>Dt(e,t,i));else if(s==null&&(s=""),t.startsWith("--"))xs.test(s)?e.setProperty(t,s.replace(xs,""),"important"):e.setProperty(t,s);else{const i=Fl(e,t);xs.test(s)?e.setProperty(ge(i),s.replace(xs,""),"important"):e[i]=s}}const an=["Webkit","Moz","ms"],gi={};function Fl(e,t){const s=gi[t];if(s)return s;let i=se(t);if(i!=="filter"&&i in e)return gi[t]=i;i=Xt(i);for(let r=0;rmi||(Gl.then(()=>mi=0),mi=Date.now());function Xl(e,t){const s=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=s.attached)return;const r=s.value;if(L(r)){const n=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{n.call(i),i._stopped=!0};const o=r.slice(),l=[i];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Yl=(e,t,s,i,r,n)=>{const o=r==="svg";t==="class"?Nl(e,i,o):t==="style"?jl(e,s,i):zt(t)?Wt(t)||Bl(e,t,s,i,n):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Jl(e,t,i,o))?(un(e,t,i),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&dn(e,t,i,o,n,t!=="value")):e._isVueCE&&(Zl(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!q(i)))?un(e,se(t),i,n,t):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),dn(e,t,i,o))};function Jl(e,t,s,i){if(i)return!!(t==="innerHTML"||t==="textContent"||t in e&&fn(t)&&P(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return fn(t)&&q(s)?!1:t in e}function Zl(e,t){const s=e._def.props;if(!s)return!1;const i=se(t);return Array.isArray(s)?s.some(r=>se(r)===i):Object.keys(s).some(r=>se(r)===i)}const hn={};function Ql(e,t,s){let i=ti(e,t);Gt(i)&&(i=J({},i,t));class r extends vi{constructor(o){super(i,o,s)}}return r.def=i,r}const ea=typeof HTMLElement<"u"?HTMLElement:class{};class vi extends ea{constructor(t,s={},i=mn){super(),this._def=t,this._props=s,this._createApp=i,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&&i!==mn?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(J({},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 vi){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,nr(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const s of t)this._setAttr(s.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let i=0;i{this._resolved=!0,this._pendingResolve=void 0;const{props:n,styles:o}=i;let l;if(n&&!L(n))for(const a in n){const p=n[a];(p===Number||p&&p.type===Number)&&(a in this._props&&(this._props[a]=Oi(this._props[a])),(l||(l=Object.create(null)))[se(a)]=!0)}this._numberProps=l,this._resolveProps(i),this.shadowRoot&&this._applyStyles(o),this._mount(i)},s=this._def.__asyncLoader;if(s)return this._pendingResolve=s().then(i=>{i.configureApp=this._def.configureApp,t(this._def=i,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const s=this._instance&&this._instance.exposed;if(s)for(const i in s)j(this,i)||Object.defineProperty(this,i,{get:()=>tr(s[i])})}_resolveProps(t){const{props:s}=t,i=L(s)?s:Object.keys(s||{});for(const r of Object.keys(this))r[0]!=="_"&&i.includes(r)&&this._setProp(r,this[r]);for(const r of i.map(se))Object.defineProperty(this,r,{get(){return this._getProp(r)},set(n){this._setProp(r,n,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const s=this.hasAttribute(t);let i=s?this.getAttribute(t):hn;const r=se(t);s&&this._numberProps&&this._numberProps[r]&&(i=Oi(i)),this._setProp(r,i,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,s,i=!0,r=!1){if(s!==this._props[t]&&(this._dirty=!0,s===hn?delete this._props[t]:(this._props[t]=s,t==="key"&&this._app&&(this._app._ceVNode.key=s)),r&&this._instance&&this._update(),i)){const n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),s===!0?this.setAttribute(ge(t),""):typeof s=="string"||typeof s=="number"?this.setAttribute(ge(t),s+""):s||this.removeAttribute(ge(t)),n&&n.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),sa(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const s=_e(this._def,J(t,this._props));return this._instance||(s.ce=i=>{this._instance=i,i.ce=this,i.isCE=!0;const r=(n,o)=>{this.dispatchEvent(new CustomEvent(n,Gt(o[0])?J({detail:o},o[0]):{detail:o}))};i.emit=(n,...o)=>{r(n,o),ge(n)!==n&&r(ge(n),o)},this._setParent()}),s}_applyStyles(t,s,i){if(!t)return;if(s){if(s===this._def||this._styleChildren.has(s))return;this._styleChildren.add(s)}const r=this._nonce,n=this.shadowRoot,o=i?this._getStyleAnchor(i)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(n);let l=null;for(let a=t.length-1;a>=0;a--){const p=document.createElement("style");r&&p.setAttribute("nonce",r),p.textContent=t[a],n.insertBefore(p,l||o),l=p,a===0&&(i||this._styleAnchors.set(this._def,p),s&&this._styleAnchors.set(s,p))}}_getStyleAnchor(t){if(!t)return null;const s=this._styleAnchors.get(t);return s&&s.parentNode===this.shadowRoot?s:(s&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let s=0;s{gn().render(...e)},mn=(...e)=>{const t=gn().createApp(...e),{mount:s}=t;return t.mount=i=>{const r=ra(i);if(!r)return;const n=t._component;!P(n)&&!n.render&&!n.template&&(n.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=s(r,!1,ia(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t};function ia(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ra(e){return q(e)?document.querySelector(e):e}function na(e,t){const s=t;vr(()=>{var l;const i=Yr();if(!i)return;const r=(l=i.proxy)==null?void 0:l.$el;if(!r)return;const n=r.getRootNode();if(!(n instanceof ShadowRoot)||n.querySelector(`style[data-shadow-styles="${s}"]`))return;const o=document.createElement("style");o.setAttribute("data-shadow-styles",s),o.textContent=e,n.appendChild(o)})}const vn={menu:'',map:'',globe:'',heart:'',prayer:'',list:'',users:'',flag:'',target:'',pin:'',monitor:'',chart:'',layers:'',flask:'',share:'',beaker:'',chevron:'',grid:'',tree:'',dots:'',embed:'',send:'',poster:'',search:'',book:'',wifi:''};function oa(e,t=""){const s=vn[e]||vn.map;return``}const la=".vtl{position:absolute;top:0;right:0;bottom:0;left:0;display:grid!important;grid-template-rows:auto 1fr;height:100%;width:100%;min-height:420px;background:#f3f3f1;color:#3b463d;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--vtl-accent:#92b195;--vtl-border:#d1d4cd;--vtl-elevated:#ffffff;--vtl-accented:#d1d4cd;--vtl-muted:#6d766e;--vtl-rail:256px}.vtl.no-header{grid-template-rows:1fr}.vtl-top{flex:0 0 auto;display:flex;align-items:center;gap:10px;box-sizing:border-box;min-height:64px;padding:8px 16px;border-bottom:1px solid var(--vtl-border);background:#fff}.vtl-menu{display:none;font:16px/1 system-ui;color:#3b463d;background:#d1d4cd;border:1px solid #d1d4cd;border-radius:8px;padding:5px 10px;cursor:pointer}.vtl-fab{position:absolute;z-index:15;left:calc(12px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));width:44px;height:44px;display:flex;align-items:center;justify-content:center;font:18px/1 system-ui;color:#3b463d;background:#fff;border:1px solid var(--vtl-border);border-radius:50%;box-shadow:0 2px 10px #0000002e;cursor:pointer}.vtl-fab:hover{background:#d1d4cd}.vtl-fab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:2px}.vtl-menu:hover{background:#d1d4cd}.vtl-brand{display:inline-flex;align-items:center}.vtl-brand:empty{display:none}.vtl-title{font-size:15px;font-weight:600;letter-spacing:-.01em;color:#3b463d}.vtl-meta{color:var(--vtl-muted);font-size:12px;margin-left:auto;display:inline-flex;align-items:center;gap:8px}.vtl-body{min-height:0;position:relative;display:flex}.vtl-nav{position:absolute;top:0;bottom:0;left:0;z-index:5;width:256px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--vtl-border);padding:12px 12px 20px;background:#fff;scrollbar-width:thin;scrollbar-color:#c4c8c0 transparent;contain:layout paint;transform:translate(0);transition:transform .2s cubic-bezier(.4,0,.2,1);will-change:transform}.vtl-nav::-webkit-scrollbar{width:8px;height:8px}.vtl-nav::-webkit-scrollbar-track{background:transparent}.vtl-nav::-webkit-scrollbar-thumb{background:#c4c8c0;border-radius:8px}.vtl-nav::-webkit-scrollbar-thumb:hover{background:#9aa197}.vtl-collapse{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;margin:0 0 8px;padding:7px 10px;border:1px solid var(--vtl-border);border-radius:8px;background:#d1d4cd;color:var(--vtl-muted);font:inherit;font-size:12px;cursor:pointer}.vtl-collapse:hover{background:var(--vtl-accented);color:#3b463d}.vtl-collapse:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-collapse-ic{flex:0 0 auto;display:inline-flex;transition:transform .16s ease;transform:rotate(180deg)}.vtl-collapse-ic svg{width:16px;height:16px}.vtl-collapse-tx{white-space:nowrap}.vtl-grp{margin-bottom:2px}.vtl-grp+.vtl-grp{margin-top:8px;padding-top:8px;border-top:1px solid var(--vtl-border)}.vtl-tier{width:100%;padding:8px 8px 6px;display:flex;align-items:center;gap:8px;box-sizing:border-box}.vtl-tier-btn{border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;border-radius:8px}.vtl-tier-btn:hover{background:var(--vtl-accented)}.vtl-tier-btn:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tier-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tier-ic svg{width:15px;height:15px}.vtl-cap{font:700 10px/1 system-ui;letter-spacing:.4px;color:#052e16;background:var(--vtl-accent);border-radius:999px;padding:3px 7px}.vtl-tl{font-weight:600;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--vtl-muted)}.vtl-td{color:#6b6b6b;font-size:11px;margin-left:auto}.vtl-chev{margin-left:auto;display:inline-flex;color:var(--vtl-muted);transition:transform .16s ease}.vtl-chev svg{width:15px;height:15px}.vtl-chev.open{transform:rotate(90deg)}.vtl-rows{display:flex;flex-direction:column;gap:1px}.vtl-tab{display:flex;align-items:center;gap:11px;width:100%;min-height:48px;text-align:left;border:0;background:none;color:var(--vtl-muted);padding:8px 12px;cursor:pointer;border-radius:var(--vtl-radius,8px);font:inherit;margin:0;transition:background .13s ease,color .13s ease}.vtl-tab:hover{background:var(--vtl-accented);color:#3b463d}.vtl-tab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tab.active{background:var(--vtl-accented);color:#3b463d;font-weight:500}.vtl-tab.active .vtl-tab-ic{color:var(--vtl-accent)}.vtl-tab-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tab-ic svg{width:20px;height:20px}.vtl-tab-emoji{font-size:17px;line-height:1;flex:0 0 auto}.vtl-tab-fallback{display:none;flex:0 0 auto;width:20px;height:20px;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--vtl-muted);background:var(--vtl-accented);border-radius:6px}.vtl-tab.active .vtl-tab-fallback{color:var(--vtl-accent)}.vtl-tab-text{display:flex;flex-direction:column;min-width:0}.vtl-tab-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.vtl-tab-badge{font:600 9px/1 system-ui;letter-spacing:.3px;text-transform:uppercase;color:var(--vtl-accent);border:1px solid var(--vtl-accent);border-radius:var(--vtl-radius,8px);padding:2px 5px}.vtl-tab-sub{font-size:11px;color:#6b6b6b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vtl-tab-sub code{font-family:ui-monospace,Menlo,monospace}.vtl-tab.active .vtl-tab-sub{color:var(--vtl-muted)}.vtl-main{position:absolute;top:0;bottom:0;right:0;left:256px;min-width:0;display:flex;flex-direction:column}.vtl-content{flex:1 1 auto;position:relative;min-height:0}.vtl-host{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h:0}.vtl-host-slot{position:relative;min-height:100%}.vtl-host-slot>*{min-height:0;max-height:none}.vtl-host-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:var(--dx-muted, #6d766e);font-size:13px;padding:20px}.vtl-host-hint.err{color:#f87171}.vtl-host-hint small{color:var(--dx-muted, #6d766e)}.vtl.rail-collapsed .vtl-nav{transform:translate(-184px)}.vtl.rail-collapsed .vtl-main{left:72px}.vtl.rail-collapsed .vtl-collapse{padding-left:184px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(0)}.vtl.rail-collapsed .vtl-collapse-tx{display:none}.vtl.rail-collapsed .vtl-tab{padding-left:188px;gap:0}.vtl.rail-collapsed .vtl-tab-text{display:none}.vtl.rail-collapsed .vtl-tab-emoji{font-size:19px}.vtl.rail-collapsed .vtl-tab-fallback{display:inline-flex}.vtl.rail-collapsed .vtl-tier{padding-left:196px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:none}.vtl.rail-collapsed .vtl-grp+.vtl-grp{margin-top:6px;padding-top:6px}@media (max-width: 760px){.vtl-top{min-height:56px}.vtl-menu{display:inline-block}.vtl-meta{display:none}.vtl-nav{z-index:20;width:256px;box-shadow:0 0 28px #0000008c;transform:translate(-100%)}.vtl.nav-open .vtl-nav{transform:translate(0);z-index:1000}.vtl-main{left:0}.vtl.rail-collapsed .vtl-nav{transform:translate(-100%)}.vtl.rail-collapsed.nav-open .vtl-nav{transform:translate(0)}.vtl.rail-collapsed .vtl-main{left:0}.vtl.rail-collapsed .vtl-collapse{padding-left:10px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(180deg)}.vtl.rail-collapsed .vtl-collapse-tx{display:inline}.vtl.rail-collapsed .vtl-tab{padding-left:10px;gap:11px}.vtl.rail-collapsed .vtl-tab-text{display:flex}.vtl.rail-collapsed .vtl-tab-fallback{display:none}.vtl.rail-collapsed .vtl-tier{padding-left:8px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:inline}}.vtl:dir(rtl) .vtl-nav{left:auto;right:0;border-right:0;border-left:1px solid var(--vtl-border)}.vtl:dir(rtl) .vtl-main{left:0;right:256px}.vtl:dir(rtl) .vtl-tab,.vtl:dir(rtl) .vtl-tier-btn{text-align:right}.vtl:dir(rtl) .vtl-meta,.vtl:dir(rtl) .vtl-td,.vtl:dir(rtl) .vtl-chev{margin-left:0;margin-right:auto}.vtl:dir(rtl) .vtl-chev:not(.open){transform:scaleX(-1)}.vtl:dir(rtl) .vtl-collapse-ic svg{transform:scaleX(-1)}.vtl:dir(rtl) .vtl-fab{left:auto;right:calc(12px + env(safe-area-inset-right))}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(184px)}.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:72px}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:184px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:188px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:196px}@media (max-width: 760px){.vtl:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl:dir(rtl) .vtl-main,.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:0}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.rail-collapsed.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:8px}}",yn=(e,t)=>{const s=e.__vccOpts||e;for(const[i,r]of t)s[i]=r;return s},Ht={};function aa(e){return e?(Ht[e]||(Ht[e]=new Promise((t,s)=>{const i=document.createElement("script");i.src=e,i.onload=()=>t(),i.onerror=()=>{delete Ht[e],s(new Error("failed to load "+e))},document.head.appendChild(i)})),Ht[e]):Promise.resolve()}function ca(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((s,i)=>setTimeout(()=>i(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const da=` /* STRUCTURAL DISPLAY — the !important is deliberate, not a hack. This layout's display mode is load-bearing: it CANNOT function as a block. As a library/ (high-bar) component it ships across all 5 deployment methods, and a host (app-shell direct-mount, WordPress, mobile webview) may force @@ -273,4 +273,4 @@ .vtl.rail-collapsed:dir(rtl) .vtl-tab { padding-left:12px; padding-right:10px; } .vtl.rail-collapsed:dir(rtl) .vtl-tier { padding-left:8px; padding-right:8px; } } -`,ua=ti({name:"VerticalTabsLayout",props:{active:{type:String,default:""},title:{type:String,default:""},items:{type:Array,default:()=>[]},groups:{type:Array,default:()=>[]},navLabel:{type:String,default:"Sections"},labels:{type:Object,default:()=>({})},initialNavOpen:{type:Boolean,default:!0},header:{type:Boolean,default:!0},initialRailCollapsed:{type:Boolean,default:!1}},emits:["update:active"],setup(){ra(da,"vertical-tabs-layout")},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{}}},computed:{railShown(){return this.narrow?this.navOpen:!0},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const s of t.rows||[])e.push(s);return e}return this.items},orderedKeys(){return this.allRows.map(e=>e.key)},elementRows(){return this.allRows.filter(e=>e&&e.element)},mountedElementRows(){return this.elementRows.filter(e=>this.activatedKeys[e.key])}},watch:{active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){try{window.matchMedia&&(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this.reconcileForWidth(),this._onMedia=e=>{this.narrow=e.matches,this.reconcileForWidth()},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))}catch{}this.$nextTick(()=>this.activateElement(this.active))},beforeUnmount(){try{this._mql&&this._onMedia&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia))}catch{}this._mql=null,this._onMedia=null},methods:{registerTab(e,t){t&&(this._tabEls[e]=t)},isNarrow(){return this.narrow},reconcileForWidth(){this.narrow?(this.navOpen=!1,this.railCollapsed=!1):this.navOpen=!0},label(e){const t={toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse"};return this.labels&&this.labels[e]||t[e]},expandRail(){!this.narrow&&this.railCollapsed&&(this.railCollapsed=!1)},toggleRail(){this.narrow?this.navOpen=!this.navOpen:this.railCollapsed=!this.railCollapsed},setHostSlot(e,t){t&&(this._hostSlots[e]=t,this.$nextTick(()=>this.mountHostElement(e)))},activateElement(e){!e||!this.elementRows.find(s=>s.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(i=>i.key===e),s=this._hostSlots[e];!t||!s||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},aa(t.src).then(()=>ca(t.element)).then(()=>{s.innerHTML="";const i=document.createElement(t.element),n=t.attrs||{};for(const r in n){const o=n[r],l=o!=null&&typeof o=="object"?JSON.stringify(o):String(o);try{i[r]=o}catch{}try{i.setAttribute(r,l)}catch{}}i.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(i),this.hostState={...this.hostState,[e]:"ready"}}).catch(i=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:i&&i.message||String(i)}}))},iconSvg(e){return e?oa(e):""},initial(e){const t=(e||"").trim();return t?t.charAt(0).toUpperCase():"•"},isFolderClosed(e){const t=this.folderOverride[e.key];return t!=null?!t:e.open!==!0},toggleFolder(e){const t=this.folderOverride[e],s=(this.groups||[]).find(n=>n.key===e),i=t??(s&&s.open===!0);this.folderOverride={...this.folderOverride,[e]:!i}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const s=t.indexOf(this.active);let i=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")i=(s+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")i=(s-1+t.length)%t.length;else if(e.key==="Home")i=0;else if(e.key==="End")i=t.length-1;else return;e.preventDefault();const n=t[i];this.pick(n),this.$nextTick(()=>{const r=this._tabEls[n];r&&r.focus&&r.focus()})}}}),fa={key:0,class:"vtl-top"},pa=["aria-expanded","aria-label"],ha={class:"vtl-brand"},ga={class:"vtl-title"},ba={class:"vtl-meta"},ma=["aria-expanded","aria-label"],va={class:"vtl-body"},ya=["aria-label","aria-hidden","role","aria-orientation"],xa=["aria-expanded","aria-label"],_a=["innerHTML"],wa={class:"vtl-collapse-tx"},Sa=["aria-expanded","onClick"],Ea={key:0,class:"vtl-cap"},Ta={class:"vtl-tl"},ka={key:1,class:"vtl-td"},La=["innerHTML"],Ca={key:1,class:"vtl-tier"},Aa={key:0,class:"vtl-cap"},Oa={class:"vtl-tl"},Pa={key:1,class:"vtl-td"},Ra={class:"vtl-rows"},Ma=["aria-selected","tabindex","onClick"],Ia=["innerHTML"],Na={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Da={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Ha={class:"vtl-tab-text"},ja={class:"vtl-tab-label"},Fa={key:0,class:"vtl-tab-badge"},$a={key:0,class:"vtl-tab-sub"},Ua=["innerHTML"],Va=["aria-selected","tabindex","onClick"],Ba=["innerHTML"],za={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Wa={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Ka={class:"vtl-tab-text"},Ga={class:"vtl-tab-label"},qa={key:0,class:"vtl-tab-sub"},Xa={class:"vtl-main"},Ya={class:"vtl-content"},Ja=["hidden"],Za={key:0,class:"vtl-host-hint"},Qa={key:1,class:"vtl-host-hint err"};function ec(e,t,s,i,n,r){return M(),I("div",{class:Ke(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header}])},[e.header?(M(),I("header",fa,[A("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=o=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,pa),A("span",ha,[Lt(e.$slots,"brand")]),A("b",ga,N(e.title),1),A("span",ba,[Lt(e.$slots,"meta")])])):ue("",!0),e.narrow&&!e.header&&!e.navOpen?(M(),I("button",{key:1,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=o=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,ma)):ue("",!0),A("div",va,[A("nav",{class:"vtl-nav","aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[A("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[2]||(t[2]=(...o)=>e.toggleRail&&e.toggleRail(...o))},[A("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,_a),A("span",wa,N(e.label("collapse")),1)],8,xa),e.$slots.rail?Lt(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,0):e.groups&&e.groups.length?(M(!0),I(ee,{key:1},ut(e.groups,o=>(M(),I("div",{class:"vtl-grp",key:o.key},[o.folder?(M(),I("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(o)),onClick:l=>e.toggleFolder(o.key)},[o.badge?(M(),I("span",Ea,N(o.badge),1)):ue("",!0),A("span",Ta,N(o.label),1),o.count!=null?(M(),I("span",ka,N(o.count),1)):ue("",!0),A("span",{class:Ke(["vtl-chev",{open:!e.isFolderClosed(o)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,La)],8,Sa)):(M(),I("div",Ca,[o.badge?(M(),I("span",Aa,N(o.badge),1)):ue("",!0),A("span",Oa,N(o.label),1),o.count!=null?(M(),I("span",Pa,N(o.count),1)):ue("",!0)])),Js(A("div",Ra,[(M(!0),I(ee,null,ut(o.rows,l=>(M(),I("button",{key:l.key,type:"button",role:"tab",class:Ke(["vtl-tab",{active:l.key===e.active}]),"aria-selected":String(l.key===e.active),tabindex:l.key===e.active?0:-1,ref_for:!0,ref:a=>e.registerTab(l.key,a),onClick:a=>e.pick(l.key),onKeydown:t[3]||(t[3]=a=>e.onKey(a))},[l.icon?(M(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,Ia)):l.emoji?(M(),I("span",Na,N(l.emoji),1)):(M(),I("span",Da,N(e.initial(l.label)),1)),A("span",Ha,[A("span",ja,[ht(N(l.label),1),l.badge?(M(),I("span",Fa,N(l.badge),1)):ue("",!0)]),l.sub?(M(),I("span",$a,[A("span",{innerHTML:l.sub},null,8,Ua)])):ue("",!0)])],42,Ma))),128))],512),[[gi,!o.folder||!e.isFolderClosed(o)]])]))),128)):(M(!0),I(ee,{key:2},ut(e.items,o=>(M(),I("button",{key:o.key,type:"button",role:"tab",class:Ke(["vtl-tab",{active:o.key===e.active}]),"aria-selected":String(o.key===e.active),tabindex:o.key===e.active?0:-1,ref_for:!0,ref:l=>e.registerTab(o.key,l),onClick:l=>e.pick(o.key),onKeydown:t[4]||(t[4]=l=>e.onKey(l))},[o.icon?(M(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(o.icon)},null,8,Ba)):o.emoji?(M(),I("span",za,N(o.emoji),1)):(M(),I("span",Wa,N(e.initial(o.label)),1)),A("span",Ka,[A("span",Ga,N(o.label),1),o.sub?(M(),I("span",qa,N(o.sub),1)):ue("",!0)])],42,Va))),128))],8,ya),A("main",Xa,[e.header?Lt(e.$slots,"toolbar",{},void 0,void 0,0):ue("",!0),A("div",Ya,[(M(!0),I(ee,null,ut(e.mountedElementRows,o=>Js((M(),I("section",{key:o.key,class:"vtl-host",hidden:o.key!==e.active},[A("div",{class:"vtl-host-slot",ref_for:!0,ref:l=>e.setHostSlot(o.key,l)},null,512),e.hostState[o.key]==="loading"?(M(),I("div",Za,"Loading "+N(o.label)+"…",1)):e.hostState[o.key]==="error"?(M(),I("div",Qa,[ht(" Could not load "+N(o.label)+".",1),t[5]||(t[5]=A("br",null,null,-1)),A("small",null,N(e.hostError[o.key]),1)])):ue("",!0)],8,Ja)),[[gi,o.key===e.active]])),128)),Lt(e.$slots,"default")])])])],2)}const tc=yr(ua,[["render",ec],["styles",[la]]]),yi=[{code:"en",name:"English",nativeName:"English",flag:"🇺🇸"},{code:"es",name:"Spanish",nativeName:"Español",flag:"🇪🇸"},{code:"fr",name:"French",nativeName:"Français",flag:"🇫🇷"},{code:"pt",name:"Portuguese",nativeName:"Português",flag:"🇵🇹"},{code:"ar",name:"Arabic",nativeName:"العربية",flag:"🇸🇦",dir:"rtl"},{code:"ru",name:"Russian",nativeName:"Русский",flag:"🇷🇺"},{code:"de",name:"German",nativeName:"Deutsch",flag:"🇩🇪",hideFromSwitcher:!0},{code:"hi",name:"Hindi",nativeName:"हिन्दी",flag:"🇮🇳",hideFromSwitcher:!0}],sc=yi.filter(e=>!e.hideFromSwitcher);function ic(e){return yi.find(t=>t.code===e)}function xr(e){const t=String(e||"").split("-")[0].toLowerCase();return yi.some(s=>s.code===t)?t:"en"}const _r="doxa-maps:locale";function nc(){try{const e=localStorage.getItem(_r);if(e)return xr(e)}catch{}return xr(navigator==null?void 0:navigator.language)}function rc(e){try{localStorage.setItem(_r,e)}catch{}}const xs={en:{"sec.dashboards":"Dashboards","sec.prayer":"Prayer Mobilization","sec.gospel":"Gospel Research","sec.experimental":"Experimental","tab.dashboard-plus-grid":"Big Picture","sub.dashboard-plus-grid":"dashboard + people-groups grid, stacked","tab.research-map":"Research Map","sub.research-map":"prayer · engagement · regions","tab.research-map-plus-grid":"Simple Research","sub.research-map-plus-grid":"research map + people-groups grid","tab.prayer-map":"Prayer Progress","sub.prayer-map":"simple world prayer map","tab.cities-internet":"Cities with Internet","sub.cities-internet":"connectivity of key cities","tab.gospel-resources":"Gospel Resources","sub.gospel-resources":"resources by place","tab.regions-dashboard":"Regions","sub.regions-dashboard":"regions and their countries","tab.upg-100":"UPG-100 List","sub.upg-100":"my unreached list + posters",navLabel:"Research maps",meta:"{n} maps",loading:"Loading {label}…",loadFailed:"Could not load {label}.",manifestHint:"This tab is composed from manifest.json — build the tree, or serve the built tree, to load it.",desktopOnly:"desktop only",lab:"lab",experimentalSub:"experimental bundle",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",desktopNotice:"Big Picture only supports desktop — open this page on a desktop to use it."},es:{"sec.dashboards":"Paneles","sec.prayer":"Movilización de oración","sec.gospel":"Investigación del Evangelio","sec.experimental":"Experimental","tab.dashboard-plus-grid":"Panorama general","sub.dashboard-plus-grid":"panel + cuadrícula de pueblos","tab.research-map":"Mapa de investigación","sub.research-map":"oración · compromiso · regiones","tab.research-map-plus-grid":"Investigación simple","sub.research-map-plus-grid":"mapa de investigación + cuadrícula de pueblos","tab.prayer-map":"Progreso de oración","sub.prayer-map":"mapa mundial de oración","tab.cities-internet":"Ciudades con Internet","sub.cities-internet":"conectividad de ciudades clave","tab.gospel-resources":"Recursos del Evangelio","sub.gospel-resources":"recursos por lugar","tab.regions-dashboard":"Regiones","sub.regions-dashboard":"regiones y sus países","tab.upg-100":"Lista UPG-100","sub.upg-100":"mi lista de no alcanzados + carteles",navLabel:"Mapas de investigación",meta:"{n} mapas",loading:"Cargando {label}…",loadFailed:"No se pudo cargar {label}.",manifestHint:"Esta pestaña se compone a partir de manifest.json: compila el árbol o sirve el árbol compilado para cargarla.",desktopOnly:"solo escritorio",lab:"beta",experimentalSub:"mapa experimental",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",desktopNotice:"Panorama general solo funciona en escritorio: abre esta página en una computadora para usarlo."},fr:{"sec.dashboards":"Tableaux de bord","sec.prayer":"Mobilisation à la prière","sec.gospel":"Recherche sur l'Évangile","sec.experimental":"Expérimental","tab.dashboard-plus-grid":"Vue d'ensemble","sub.dashboard-plus-grid":"tableau de bord + grille des peuples","tab.research-map":"Carte de recherche","sub.research-map":"prière · engagement · régions","tab.research-map-plus-grid":"Recherche simple","sub.research-map-plus-grid":"carte de recherche + grille des peuples","tab.prayer-map":"Progression de la prière","sub.prayer-map":"carte mondiale de la prière","tab.cities-internet":"Villes avec Internet","sub.cities-internet":"connectivité des villes clés","tab.gospel-resources":"Ressources de l'Évangile","sub.gospel-resources":"ressources par lieu","tab.regions-dashboard":"Régions","sub.regions-dashboard":"régions et leurs pays","tab.upg-100":"Liste UPG-100","sub.upg-100":"ma liste des non atteints + affiches",navLabel:"Cartes de recherche",meta:"{n} cartes",loading:"Chargement de {label}…",loadFailed:"Impossible de charger {label}.",manifestHint:"Cet onglet est composé à partir de manifest.json : construisez l'arborescence ou servez l'arborescence construite pour le charger.",desktopOnly:"ordinateur uniquement",lab:"bêta",experimentalSub:"carte expérimentale",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",desktopNotice:"Vue d'ensemble ne fonctionne que sur ordinateur : ouvrez cette page sur un ordinateur pour l'utiliser."},de:{"sec.dashboards":"Dashboards","sec.prayer":"Gebetsmobilisierung","sec.gospel":"Evangeliumsforschung","sec.experimental":"Experimentell","tab.dashboard-plus-grid":"Gesamtbild","sub.dashboard-plus-grid":"Dashboard + Raster der Volksgruppen","tab.research-map":"Forschungskarte","sub.research-map":"Gebet · Engagement · Regionen","tab.research-map-plus-grid":"Einfache Recherche","sub.research-map-plus-grid":"Forschungskarte + Raster der Volksgruppen","tab.prayer-map":"Gebetsfortschritt","sub.prayer-map":"einfache Weltkarte des Gebets","tab.cities-internet":"Städte mit Internet","sub.cities-internet":"Konnektivität wichtiger Städte","tab.gospel-resources":"Evangeliumsressourcen","sub.gospel-resources":"Ressourcen nach Ort","tab.regions-dashboard":"Regionen","sub.regions-dashboard":"Regionen und ihre Länder","tab.upg-100":"UPG-100-Liste","sub.upg-100":"meine Liste der Unerreichten + Poster",navLabel:"Forschungskarten",meta:"{n} Karten",loading:"{label} wird geladen…",loadFailed:"{label} konnte nicht geladen werden.",manifestHint:"Dieser Tab wird aus manifest.json zusammengesetzt – bauen Sie den Baum oder stellen Sie den gebauten Baum bereit, um ihn zu laden.",desktopOnly:"nur Desktop",lab:"Beta",experimentalSub:"experimentelle Karte",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",desktopNotice:"Gesamtbild funktioniert nur am Desktop – öffnen Sie diese Seite an einem Computer, um es zu nutzen."},pt:{"sec.dashboards":"Painéis","sec.prayer":"Mobilização de oração","sec.gospel":"Pesquisa do Evangelho","sec.experimental":"Experimental","tab.dashboard-plus-grid":"Visão geral","sub.dashboard-plus-grid":"painel + grade de povos","tab.research-map":"Mapa de pesquisa","sub.research-map":"oração · engajamento · regiões","tab.research-map-plus-grid":"Pesquisa simples","sub.research-map-plus-grid":"mapa de pesquisa + grade de povos","tab.prayer-map":"Progresso da oração","sub.prayer-map":"mapa mundial de oração","tab.cities-internet":"Cidades com Internet","sub.cities-internet":"conectividade das principais cidades","tab.gospel-resources":"Recursos do Evangelho","sub.gospel-resources":"recursos por lugar","tab.regions-dashboard":"Regiões","sub.regions-dashboard":"regiões e seus países","tab.upg-100":"Lista UPG-100","sub.upg-100":"minha lista de não alcançados + cartazes",navLabel:"Mapas de pesquisa",meta:"{n} mapas",loading:"Carregando {label}…",loadFailed:"Não foi possível carregar {label}.",manifestHint:"Esta aba é composta a partir do manifest.json — compile a árvore ou sirva a árvore compilada para carregá-la.",desktopOnly:"só no computador",lab:"beta",experimentalSub:"mapa experimental",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",desktopNotice:"Visão geral só funciona no computador — abra esta página em um computador para usá-la."},it:{"sec.dashboards":"Dashboard","sec.prayer":"Mobilitazione alla preghiera","sec.gospel":"Ricerca sul Vangelo","sec.experimental":"Sperimentale","tab.dashboard-plus-grid":"Quadro d'insieme","sub.dashboard-plus-grid":"dashboard + griglia dei popoli","tab.research-map":"Mappa di ricerca","sub.research-map":"preghiera · impegno · regioni","tab.research-map-plus-grid":"Ricerca semplice","sub.research-map-plus-grid":"mappa di ricerca + griglia dei popoli","tab.prayer-map":"Avanzamento preghiera","sub.prayer-map":"mappa mondiale della preghiera","tab.cities-internet":"Città con Internet","sub.cities-internet":"connettività delle città chiave","tab.gospel-resources":"Risorse del Vangelo","sub.gospel-resources":"risorse per luogo","tab.regions-dashboard":"Regioni","sub.regions-dashboard":"regioni e i loro paesi","tab.upg-100":"Lista UPG-100","sub.upg-100":"la mia lista dei non raggiunti + poster",navLabel:"Mappe di ricerca",meta:"{n} mappe",loading:"Caricamento di {label}…",loadFailed:"Impossibile caricare {label}.",manifestHint:"Questa scheda è composta da manifest.json: compila l'albero o pubblica l'albero compilato per caricarla.",desktopOnly:"solo desktop",lab:"beta",experimentalSub:"mappa sperimentale",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",desktopNotice:"Quadro d'insieme funziona solo su desktop: apri questa pagina su un computer per usarlo."},ro:{"sec.dashboards":"Panouri","sec.prayer":"Mobilizare la rugăciune","sec.gospel":"Cercetarea Evangheliei","sec.experimental":"Experimental","tab.dashboard-plus-grid":"Imaginea de ansamblu","sub.dashboard-plus-grid":"panou + grila popoarelor","tab.research-map":"Hartă de cercetare","sub.research-map":"rugăciune · implicare · regiuni","tab.research-map-plus-grid":"Cercetare simplă","sub.research-map-plus-grid":"hartă de cercetare + grila popoarelor","tab.prayer-map":"Progresul rugăciunii","sub.prayer-map":"hartă mondială a rugăciunii","tab.cities-internet":"Orașe cu internet","sub.cities-internet":"conectivitatea orașelor-cheie","tab.gospel-resources":"Resurse ale Evangheliei","sub.gospel-resources":"resurse după loc","tab.regions-dashboard":"Regiuni","sub.regions-dashboard":"regiunile și țările lor","tab.upg-100":"Lista UPG-100","sub.upg-100":"lista mea de neatinși + afișe",navLabel:"Hărți de cercetare",meta:"{n} hărți",loading:"Se încarcă {label}…",loadFailed:"{label} nu a putut fi încărcat.",manifestHint:"Această filă este compusă din manifest.json — construiți arborele sau serviți arborele construit pentru a o încărca.",desktopOnly:"doar pe desktop",lab:"beta",experimentalSub:"hartă experimentală",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",desktopNotice:"Imaginea de ansamblu funcționează doar pe desktop — deschideți această pagină pe un computer pentru a o folosi."},ru:{"sec.dashboards":"Панели","sec.prayer":"Молитвенная мобилизация","sec.gospel":"Исследование Евангелия","sec.experimental":"Экспериментальное","tab.dashboard-plus-grid":"Общая картина","sub.dashboard-plus-grid":"панель + таблица народов","tab.research-map":"Исследовательская карта","sub.research-map":"молитва · вовлечённость · регионы","tab.research-map-plus-grid":"Простое исследование","sub.research-map-plus-grid":"исследовательская карта + таблица народов","tab.prayer-map":"Прогресс молитвы","sub.prayer-map":"простая карта молитвы мира","tab.cities-internet":"Города с интернетом","sub.cities-internet":"подключённость ключевых городов","tab.gospel-resources":"Евангельские ресурсы","sub.gospel-resources":"ресурсы по местам","tab.regions-dashboard":"Регионы","sub.regions-dashboard":"регионы и их страны","tab.upg-100":"Список UPG-100","sub.upg-100":"мой список недостигнутых + плакаты",navLabel:"Исследовательские карты",meta:"Карт: {n}",loading:"Загрузка: {label}…",loadFailed:"Не удалось загрузить: {label}.",manifestHint:"Эта вкладка собирается из manifest.json — соберите дерево или разместите собранное дерево, чтобы загрузить её.",desktopOnly:"только на компьютере",lab:"бета",experimentalSub:"экспериментальная карта",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",desktopNotice:"«Общая картина» работает только на компьютере — откройте эту страницу на компьютере."},ar:{"sec.dashboards":"لوحات المعلومات","sec.prayer":"التعبئة للصلاة","sec.gospel":"أبحاث الإنجيل","sec.experimental":"تجريبي","tab.dashboard-plus-grid":"الصورة الكاملة","sub.dashboard-plus-grid":"لوحة معلومات + شبكة الشعوب","tab.research-map":"خريطة البحث","sub.research-map":"الصلاة · الانخراط · المناطق","tab.research-map-plus-grid":"بحث مبسّط","sub.research-map-plus-grid":"خريطة البحث + شبكة الشعوب","tab.prayer-map":"تقدم الصلاة","sub.prayer-map":"خريطة عالمية مبسّطة للصلاة","tab.cities-internet":"مدن متصلة بالإنترنت","sub.cities-internet":"اتصال المدن الرئيسية","tab.gospel-resources":"موارد الإنجيل","sub.gospel-resources":"الموارد حسب المكان","tab.regions-dashboard":"المناطق","sub.regions-dashboard":"المناطق ودولها","tab.upg-100":"قائمة UPG-100","sub.upg-100":"قائمتي لغير المُبشَّرين + ملصقات",navLabel:"خرائط البحث",meta:"عدد الخرائط: {n}",loading:"جارٍ تحميل {label}…",loadFailed:"تعذّر تحميل {label}.",manifestHint:"تُبنى علامة التبويب هذه من manifest.json — ابنِ الشجرة أو قدّم الشجرة المبنية لتحميلها.",desktopOnly:"على الحاسوب فقط",lab:"تجريبي",experimentalSub:"خريطة تجريبية",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",desktopNotice:"تعمل «الصورة الكاملة» على الحاسوب فقط — افتح هذه الصفحة على حاسوب لاستخدامها."},hi:{"sec.dashboards":"डैशबोर्ड","sec.prayer":"प्रार्थना संचालन","sec.gospel":"सुसमाचार शोध","sec.experimental":"प्रायोगिक","tab.dashboard-plus-grid":"संपूर्ण चित्र","sub.dashboard-plus-grid":"डैशबोर्ड + जनसमूहों की ग्रिड","tab.research-map":"शोध मानचित्र","sub.research-map":"प्रार्थना · सहभागिता · क्षेत्र","tab.research-map-plus-grid":"सरल शोध","sub.research-map-plus-grid":"शोध मानचित्र + जनसमूहों की ग्रिड","tab.prayer-map":"प्रार्थना प्रगति","sub.prayer-map":"सरल विश्व प्रार्थना मानचित्र","tab.cities-internet":"इंटरनेट वाले शहर","sub.cities-internet":"प्रमुख शहरों की कनेक्टिविटी","tab.gospel-resources":"सुसमाचार संसाधन","sub.gospel-resources":"स्थान के अनुसार संसाधन","tab.regions-dashboard":"क्षेत्र","sub.regions-dashboard":"क्षेत्र और उनके देश","tab.upg-100":"UPG-100 सूची","sub.upg-100":"मेरी अप्राप्त सूची + पोस्टर",navLabel:"शोध मानचित्र",meta:"{n} मानचित्र",loading:"{label} लोड हो रहा है…",loadFailed:"{label} लोड नहीं हो सका।",manifestHint:"यह टैब manifest.json से बनता है — इसे लोड करने के लिए ट्री बनाएँ या बना हुआ ट्री सर्व करें।",desktopOnly:"केवल डेस्कटॉप",lab:"बीटा",experimentalSub:"प्रायोगिक मानचित्र",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",desktopNotice:"संपूर्ण चित्र केवल डेस्कटॉप पर काम करता है — इसे उपयोग करने के लिए यह पेज कंप्यूटर पर खोलें।"},zh:{"sec.dashboards":"仪表板","sec.prayer":"祷告动员","sec.gospel":"福音研究","sec.experimental":"实验性","tab.dashboard-plus-grid":"全景","sub.dashboard-plus-grid":"仪表板 + 民族网格","tab.research-map":"研究地图","sub.research-map":"祷告 · 参与 · 区域","tab.research-map-plus-grid":"简易研究","sub.research-map-plus-grid":"研究地图 + 民族网格","tab.prayer-map":"祷告进度","sub.prayer-map":"简易世界祷告地图","tab.cities-internet":"有互联网的城市","sub.cities-internet":"主要城市的网络连接","tab.gospel-resources":"福音资源","sub.gospel-resources":"按地点划分的资源","tab.regions-dashboard":"区域","sub.regions-dashboard":"区域及其国家","tab.upg-100":"UPG-100 名单","sub.upg-100":"我的未得之民名单 + 海报",navLabel:"研究地图",meta:"{n} 张地图",loading:"正在加载{label}…",loadFailed:"无法加载{label}。",manifestHint:"此标签页由 manifest.json 组成——请构建目录树或提供已构建的目录树以加载它。",desktopOnly:"仅限桌面",lab:"测试版",experimentalSub:"实验性地图",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",desktopNotice:"全景仅支持桌面设备——请在电脑上打开此页面使用。"}},xi=Object.keys(xs);function _s(e,t,s){let n=(xs[e]||xs.en)[t]??xs.en[t]??t;if(s)for(const r in s)n=n.split("{"+r+"}").join(String(s[r]));return n}const oc=":host{display:block;position:relative;height:var(--doxa-maps-spa-height, 85vh);min-height:480px}:host{font-size:16px;line-height:normal;font-weight:400;font-style:normal;font-variant:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;text-align:start;text-indent:0;text-shadow:none;white-space:normal;-webkit-hyphens:manual;hyphens:manual;visibility:visible;cursor:auto}:host([hidden]){display:none}.dms-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.dms-slot{position:relative;min-height:100%}.dms-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.dms-hint.err{color:#f87171}.dms-hint small{color:var(--dx-muted, #6d766e)}.dms-notice{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:40;max-width:320px;text-align:center;font-size:13px;line-height:1.4;color:#3b463d;background:#fff;border:1px solid #d1d4cd;border-radius:10px;padding:10px 16px;box-shadow:0 8px 24px #0000001f}.dms-logo{display:inline-flex;align-items:center}.dms-logo svg{display:block}.dms-locale{position:relative;padding:8px 12px 0;display:flex;justify-content:flex-end}.dms-locale-btn{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:12px;padding:5px 10px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer}.dms-locale-btn:hover{background:#d1d4cd}.dms-flag{font-size:14px;line-height:1}.dms-locale-name{max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dms-dots{color:#6d766e;margin-left:2px}.dms-locale-menu{position:absolute;top:100%;right:12px;margin-top:4px;z-index:30;min-width:180px;list-style:none;padding:6px;border:1px solid #d1d4cd;border-radius:10px;background:#fff;box-shadow:0 12px 32px #00000080;max-height:320px;overflow:auto}.dms-locale-opt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;padding:7px 9px;border:0;border-radius:7px;background:none;color:#3b463d;cursor:pointer}.dms-locale-opt:hover,.dms-locale-opt.active{background:#d1d4cd;color:#3b463d}.dms-locale-opt.active .dms-locale-name{color:#92b195}.dms-locale-en{margin-left:auto;font-size:11px;color:#6d766e}";function wr(){try{const e=new URLSearchParams(location.search),t=(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase();if(xi.includes(t))return t}catch{}try{const e=(document.documentElement.lang||"").split("-")[0].toLowerCase();if(xi.includes(e))return e}catch{}return""}const _i=[{key:"dashboards",label:"Dashboards",i18n:"sec.dashboards",icon:"chart",tabs:[{id:"dashboard-plus-grid",icon:"chart"},{id:"research-map-plus-grid",icon:"map"},{id:"regions-dashboard",icon:"map"}]},{key:"prayer-mobilization",label:"Prayer Mobilization",i18n:"sec.prayer",icon:"heart",tabs:[{id:"upg-100",icon:"list"},{id:"prayer-map",icon:"embed"}]},{key:"gospel-research",label:"Gospel Research",i18n:"sec.gospel",icon:"search",tabs:[{id:"cities-internet",icon:"wifi"},{id:"gospel-resources",icon:"book"}]},{key:"experimental",label:"Experimental",i18n:"sec.experimental",icon:"flask",folder:!0,open:!1,tabs:[]}],lc=new Set(["doxa-maps-spa","plugin-studio","template-bundle","people-groups-grid","research-dashboard","big-picture","demo-map","golden-path-check","doxa-research-map","stack-demo"]),Sr={"prayer-walk-planner":1,"upg-neighbor":2,"key-cities":3,"all-people-groups":4,"country-posters":5,"doxa-vision-card":6},wi=[{id:"dashboard-plus-grid",label:"Big Picture",sub:"dashboard + people-groups grid, stacked",emoji:"🌍",bundle:"dashboard-plus-grid",profile:"dashboard-plus-grid"},{id:"research-map",label:"Research Map",sub:"prayer · engagement · regions",emoji:"🗺️",bundle:"doxa-research-map",profile:"research-map"},{id:"research-map-plus-grid",label:"Simple Research",sub:"research map + people-groups grid",emoji:"🗺️",bundle:"research-map-plus-grid",profile:"research-map-plus-grid"},{id:"prayer-map",label:"Prayer Progress",sub:"simple world prayer map",emoji:"🙏",bundle:"doxa-simple-map",profile:"doxa-simple-map",instance:"prayer"},{id:"cities-internet",label:"Cities with Internet",sub:"connectivity of key cities",emoji:"📡",bundle:"cities-internet",profile:"connectivity-map"},{id:"gospel-resources",label:"Gospel Resources",sub:"resources by place",emoji:"📖",bundle:"gospel-resources",profile:"resources-map"},{id:"regions-dashboard",label:"Regions",sub:"regions and their countries",emoji:"🌐",bundle:"regions-dashboard",profile:"regions-mfe"},{id:"upg-100",label:"UPG-100 List",sub:"my unreached list + posters",emoji:"📋",bundle:"my-upg-100-list",profile:"upg-100-mfe"}];cc(_i);const ws=new Set(["doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-map","doxa-maps-spa","dashboard-plus-grid","research-dashboard-map","demo-map","all-people-groups","country-posters-map","key-cities-map","research-map-plus-grid"]),Ss=new Set(["dashboard-plus-grid","research-map-plus-grid"]);function ac(){const e=Object.fromEntries(wi.map(s=>[s.id,s])),t=new Set;for(const s of _i)if(s.key!=="experimental")for(const i of s.tabs||[]){const n=e[i.id];n&&n.bundle&&t.add(n.bundle)}return t}function Er(e,t){const s=[];for(const i of e)!i||t.has(i.key)||(t.add(i.key),s.push(i));return s}function cc(e){const t=new Map,s=[];for(const i of e)if(i.key!=="experimental")for(const n of i.tabs||[]){if(!n||!n.id)continue;const r=t.get(n.id);if(r===void 0){t.set(n.id,i.key);continue}(r!==i.key||s.indexOf(n.id)===-1)&&s.push(n.id+" ("+r+" + "+i.key+")")}return s.length&&typeof console<"u"&&console.error("[doxa-maps-spa] duplicate tab key(s) across NAV_MODEL sections: "+s.join(", ")+" — VerticalTabsLayout keys its tab-ref map and `active` highlight by id, so a row declared in two sections paints twice and stalls keyboard nav. See the duplicate-key trap in SPEC-the-six-map-product-and-its-tab-order.md."),s}function dc(e){return String(e).split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function uc(e){const t=ac(),s=e&&Array.isArray(e.bundles)?e.bundles:[],i=[];for(const n of s){const r=n&&n.bundle;if(!r||t.has(r)||lc.has(r))continue;const o=Array.isArray(n.profiles)?n.profiles:[];if(!o.length)continue;const l=o.find(u=>u.isMap)||o.find(u=>u.profile===r)||o[0],a=l.element||Array.isArray(n.elements)&&n.elements[0]||r,f=n.scriptUrl||l.scriptUrl||"";f&&i.push({id:r,label:l.title||dc(r),sub:(l.description||"").trim().replace(/[,;]\s*$/,"")||"experimental bundle",emoji:"🧪",tag:a,bundle:r,profile:l.profile||r,scriptUrl:f,heavy:ws.has(a)||ws.has(r),scroll:Ss.has(a)||Ss.has(r),discovered:!0})}return i.sort((n,r)=>{const o=Sr[n.id]||999,l=Sr[r.id]||999;return o!==l?o-l:n.label.localeCompare(r.label)}),i}function fc(e,t){const s=e&&Array.isArray(e.bundles)?e.bundles:[],i=Object.fromEntries(s.map(r=>[r.bundle,r])),n={};for(const r of t){const o=i[r.bundle];if(!o)continue;const l=Array.isArray(o.profiles)?o.profiles:[],a=l.find(E=>E.profile===r.profile)||l[0],f=a&&a.element||Array.isArray(o.elements)&&o.elements[0]||r.bundle,u=o.scriptUrl||a&&a.scriptUrl||"";if(!u)continue;const h=a&&Array.isArray(a.instances)?a.instances:[],S=!!(r.instance&&h.some(E=>(E&&(E.id||E.instance))===r.instance));n[r.id]={tag:f,scriptUrl:u,profile:a&&a.profile||r.profile,instance:S?r.instance:"",heavy:ws.has(f)||ws.has(r.bundle),scroll:Ss.has(f)||Ss.has(r.bundle)}}return n}const jt={};function pc(e,t){return jt[e]||(jt[e]=new Promise((s,i)=>{const n=document.createElement("script");n.src=e,(/^\/plugin-designs\//.test(e)||/\/index\.js(\?|$)/.test(e))&&(n.type="module"),n.onload=()=>s(),n.onerror=()=>{delete jt[e],i(new Error("failed to load "+e))},document.head.appendChild(n)})),jt[e]}function hc(e,t){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():Promise.race([customElements.whenDefined(e),new Promise((s,i)=>setTimeout(()=>{customElements.get(e)||i(new Error("<"+e+"> never registered (bundle loaded but defined no element)"))},15e3))])}const gc=ti({name:"DoxaMapsSpa",components:{VerticalTabsLayout:tc},props:{treeBase:{type:String,default:""},profileConfig:{type:[String,Object],default:""},heading:{type:String,default:"DX-Maps"},tokenUrl:{type:String,default:""},tk:{type:String,default:""},language:{type:String,default:""},apiBaseUrl:{type:String,default:""},provider:{type:String,default:""},tab:{type:String,default:""}},emits:["tab-change"],setup(){return{injectedBase:Tt("dmsTreeBase","")}},data(){return{activeIndex:0,showHeader:!1,narrow:!1,_mql:null,_onMedia:null,disabledNotice:"",_noticeTimer:null,manifestError:"",manifestBase:"",runtime:{},locale:nc(),hostLang:wr(),localeOpen:!1,switcherLangs:sc,tabs:wi.map(e=>({...e,tag:"",scriptUrl:"",heavy:!1,scroll:!1,resolved:!1,mounted:!1,state:"idle",error:""}))}},computed:{cfg(){let e=this.profileConfig;if(typeof e=="string")try{e=e?JSON.parse(e):{}}catch{e={}}return e&&typeof e=="object"?e:{}},base(){const e=(this.treeBase||this.cfg.treeBase||this.injectedBase||"").trim();return e?e.replace(/\/+$/,"")+"/":""},assetsBase(){const e=String(this.cfg.assetsBase||"").trim();return/^https?:\/\//i.test(e)||e.startsWith("/")?e.replace(/\/+$/,""):this.manifestBase?this.manifestBase.replace(/\/+$/,"")+"/assets":""},navGroups(){const e=Object.fromEntries(this.tabs.map(s=>[s.id,s])),t=new Set;return _i.map(s=>{let i=Er((s.tabs||[]).filter(n=>e[n.id]).map(n=>{const r=e[n.id],o=this.isBigPictureDisabled(r.id);return{key:r.id,label:this.tabLabel(r),sub:this.tabSub(r),icon:n.icon,badge:o?this.tr("desktopOnly"):n.badge,disabled:o}}),t);return s.key==="experimental"&&(i=i.concat(Er(this.tabs.filter(n=>n.discovered).map(n=>({key:n.id,label:this.tabLabel(n),sub:this.tabSub(n),icon:"flask",badge:this.tr("lab")})),t))),{key:s.key,label:s.i18n?this.tr(s.i18n):s.label,icon:s.icon,folder:!!s.folder,open:s.open,rows:i}}).filter(s=>s.rows.length)},showLocaleSwitcher(){return this.showHeader},activeLang(){return ic(this.locale)||{code:this.locale,flag:"🌐",nativeName:this.locale}},effectiveLocale(){const e=(this.language||this.cfg.language||this.cfg.locale||this.cfg.lang||"").trim(),t=this.showLocaleSwitcher?this.locale:"";return(e||t||this.hostLang||"en").split("-")[0].toLowerCase()},uiLocale(){return xi.includes(this.effectiveLocale)?this.effectiveLocale:"en"},uiDir(){return this.uiLocale==="ar"?"rtl":"ltr"},layoutLabels(){const e={};for(const t of["toggleList","openViews","expandList","collapseList","collapse"])e[t]=this.tr(t);return e},effectiveProvider(){const e=String(this.provider||this.cfg.provider||"").trim().toLowerCase();return e==="maplibre"||e==="mapbox"?e:""},activeKey(){const e=this.tabs[this.activeIndex];return e?e.id:""}},mounted(){this.watchWidth(),this.watchHostLang(),this.select(this.initialIndex()),this.loadManifest()},beforeUnmount(){this._langObs&&(this._langObs.disconnect(),this._langObs=null),!(!this._mql||!this._onMedia)&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia),this._mql=null,this._onMedia=null)},watch:{effectiveLocale(e){const t=this.tabs[this.activeIndex];if(!(!t||!t.mounted))try{const s=this._slots&&this._slots[this.activeIndex],i=s&&s.firstElementChild;i&&i.setAttribute&&i.setAttribute("profile-config",JSON.stringify(this.childConfig(t)))}catch{}},tab(e){e&&this.onSelect(e)}},methods:{setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},tr(e,t){return _s(this.uiLocale,e,t)},t(e,t){return _s(this.uiLocale,e,t)},tabLabel(e){return e.discovered?e.label:_s(this.uiLocale,"tab."+e.id)},tabSub(e){return e.discovered?this.uiLocale==="en"?e.sub:this.tr("experimentalSub"):_s(this.uiLocale,"sub."+e.id)},watchHostLang(){typeof MutationObserver>"u"||typeof document>"u"||(this._langObs=new MutationObserver(()=>{this.hostLang=wr()}),this._langObs.observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]}))},watchWidth(){typeof window>"u"||!window.matchMedia||(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this._onMedia=e=>{const t=this.narrow;this.narrow=!!e.matches,t!==this.narrow&&this.isBigPictureDisabled(this.activeKey)&&this.select(this.firstVisibleIndex())},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))},isBigPictureDisabled(e){return e==="dashboard-plus-grid"&&this.narrow},firstVisibleIndex(){let e=-1;for(const t of this.navGroups)for(const s of t.rows){const i=this.tabs.findIndex(n=>n.id===s.key);if(!(i<0)&&(e<0&&(e=i),!s.disabled))return i}return e>=0?e:0},loadManifest(){const e=[this.resolve("manifest.json")],t="/public/doxa-maps/manifest.json";e.indexOf(t)===-1&&e.push(t);const s=[],i=n=>{if(n>=e.length){this.manifestError="manifest.json not found (tried "+s.join(", ")+")",console.error("[doxa-maps-spa] "+this.manifestError+" — every tab except Big Picture is composed from it, so their panes cannot mount.");return}const r=e[n];return s.push(r),fetch(r,{credentials:"omit"}).then(o=>{if(!o||!o.ok)throw new Error(r+" → HTTP "+(o?o.status:"?"));return o.json()}).then(o=>{if(!o)throw new Error(r+" → empty");this.manifestError="";try{this.manifestBase=new URL(r,location.href).href.replace(/[^/]*$/,"")}catch{this.manifestBase=""}this.applyManifest(o)}).catch(()=>i(n+1))};try{i(0)}catch{}},applyManifest(e){this.runtime=e&&e.runtime&&typeof e.runtime=="object"?e.runtime:{},this.applyPageGlobals();const t=fc(e,wi),s=this.activeKey,i=[];for(const a of this.tabs){if(a.discovered){i.push(a);continue}const f=t[a.id];f&&(Object.assign(a,f,{resolved:!0}),i.push(a))}const n=new Set(i.map(a=>a.id));for(const a of uc(e))n.has(a.id)||i.push({...a,resolved:!0,mounted:!1,state:"idle",error:""});this.tabs=i;const r=this.requestedTab(),o=r?this.tabs.findIndex(a=>a.id===r):-1,l=this.tabs.findIndex(a=>a.id===s);o>=0&&!this.isBigPictureDisabled(r)&&!this._honouredTab?this.select(o):this.select(l>=0?l:this.firstVisibleIndex()),this._honouredTab=!0},requestedTab(){let e="";try{e=new URLSearchParams(location.search).get("tab")||""}catch{}return String(this.tab||this.cfg.tab||e||"").trim()},initialIndex(){const e=this.requestedTab(),t=e?this.tabs.findIndex(s=>s.id===e):-1;return t>=0&&(this._honouredTab=!0),t>=0&&!this.isBigPictureDisabled(e)?t:this.firstVisibleIndex()},setLocale(e){this.locale=e,this.localeOpen=!1,rc(e)},onSelect(e){if(this.isBigPictureDisabled(e)){this.disabledNotice=this.tr("desktopNotice"),clearTimeout(this._noticeTimer),this._noticeTimer=setTimeout(()=>{this.disabledNotice=""},4e3);return}const t=this.tabs.findIndex(s=>s.id===e);t!==-1&&this.select(t)},resolve(e){const t=String(e);if(/^(https?:)?\/\//.test(t)||t.startsWith("/"))return t;const s=t.replace(/^\.\//,"");return this.manifestBase?this.manifestBase.replace(/\/+$/,"")+"/"+s:this.base?this.base.replace(/\/+$/,"")+"/"+s:"../"+s},select(e){const t=this.activeIndex;if(this.activeIndex=e,t!==e&&t>=0){const i=this.tabs[t];i&&i.heavy&&i.mounted&&this.releaseTab(t,i)}const s=this.tabs[e];s&&((t!==e||!this._announced)&&(this._announced=!0,this.$emit("tab-change",{id:s.id,label:s.label})),s.scriptUrl&&(s.mounted||this.$nextTick(()=>{this.activeIndex===e&&this.mountElement(e)})))},releaseTab(e,t){try{const s=this._slots&&this._slots[e];s&&(s.innerHTML="")}catch{}this._slots&&delete this._slots[e],t.mounted=!1,t.state="idle",t.error=""},childConfig(e){const t={profile:e.profile||e.id,instanceId:e.instance||"dms-"+e.id};this.effectiveLocale&&(t.locale=this.effectiveLocale);const s=this.tk||this.cfg.tk||this.runtime.token;return s&&(t.tk=s),(this.tokenUrl||this.cfg.tokenUrl)&&(t.tokenUrl=this.tokenUrl||this.cfg.tokenUrl),this.effectiveProvider&&(t.provider=this.effectiveProvider),this.base&&(t.treeBase=this.base),this.assetsBase&&(t.assetsBase=this.assetsBase),t.urlSync=!1,t},applyPageGlobals(){if(typeof window>"u")return;const e=(this.apiBaseUrl||this.cfg.apiBaseUrl||this.runtime.apiBaseUrl||"").trim();e&&!window.MAP_APP_API_URL&&(window.MAP_APP_API_URL=e.replace(/\/+$/,""));const t=this.tk||this.cfg.tk||this.runtime.token;t&&!window.MAP_TOKEN&&(window.MAP_TOKEN=t),this.effectiveProvider&&!window.MAP_PROVIDER&&(window.MAP_PROVIDER=this.effectiveProvider)},mountElement(e){const t=this.tabs[e];t.mounted=!0,t.state="loading";const s=this.resolve(t.scriptUrl);pc(s).then(()=>hc(t.tag)).then(()=>{try{if(t.heavy&&this.activeIndex!==e){t.mounted=!1,t.state="idle";return}const i=this._slots&&this._slots[e];if(!i){t.state="error",t.error="no slot";return}i.innerHTML="";const n=document.createElement(t.tag);n.setAttribute("profile-config",JSON.stringify(this.childConfig(t))),this.base&&n.setAttribute("tree-base",this.base.replace(/\/+$/,"")),n.style.cssText=t.scroll?"display:block;position:static;width:100%;height:auto;":"display:block;position:absolute;inset:0;width:100%;height:100%;",i.appendChild(n),t.state="ready"}catch(i){t.state="error",t.error="mount failed: "+(i&&i.message||String(i))}}).catch(i=>{t.state="error",t.error=i&&i.message||String(i)})}}}),bc={class:"dms-locale"},mc=["aria-expanded"],vc={class:"dms-flag"},yc={class:"dms-locale-name"},xc={key:0,class:"dms-locale-menu",role:"listbox"},_c=["aria-selected"],wc=["onClick"],Sc={class:"dms-flag"},Ec={class:"dms-locale-name"},Tc={class:"dms-locale-en"},kc=["hidden"],Lc={key:0,class:"dms-hint"},Cc={key:1,class:"dms-hint err"},Ac={key:2,class:"dms-hint err"},Oc={key:0,class:"dms-notice",role:"status"};function Pc(e,t,s,i,n,r){const o=$o("VerticalTabsLayout");return M(),ps(o,{dir:e.uiDir,lang:e.uiLocale,labels:e.layoutLabels,title:e.heading,"nav-label":e.t("navLabel"),header:e.showHeader,groups:e.navGroups,active:e.activeKey,"onUpdate:active":e.onSelect},Bo({brand:Et(()=>[t[1]||(t[1]=A("span",{class:"dms-logo","aria-hidden":"true"},[A("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#92b195","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[A("circle",{cx:"12",cy:"12",r:"9"}),A("polygon",{points:"12 6 14 12 12 18 10 12",fill:"#92b195",stroke:"none"}),A("polygon",{points:"6 12 12 10 18 12 12 14",fill:"#92b195",opacity:"0.55",stroke:"none"})])],-1))]),meta:Et(()=>[ht(N(e.t("meta",{n:e.tabs.length})),1)]),default:Et(()=>[(M(!0),I(ee,null,ut(e.tabs,(l,a)=>Js((M(),I("section",{key:l.id,class:"dms-pane",hidden:a!==e.activeIndex},[!l.heavy||a===e.activeIndex?(M(),I(ee,{key:0},[A("div",{class:"dms-slot",ref_for:!0,ref:f=>e.setSlot(a,f)},null,512),l.state==="loading"?(M(),I("div",Lc,N(e.tr("loading",{label:e.tabLabel(l)})),1)):l.state==="error"?(M(),I("div",Cc,[ht(N(e.tr("loadFailed",{label:e.tabLabel(l)})),1),t[3]||(t[3]=A("br",null,null,-1)),A("small",null,N(l.error),1)])):l.state==="idle"&&!l.scriptUrl&&e.manifestError?(M(),I("div",Ac,[ht(N(e.tr("loadFailed",{label:e.tabLabel(l)})),1),t[4]||(t[4]=A("br",null,null,-1)),A("small",null,N(e.manifestError),1),t[5]||(t[5]=A("br",null,null,-1)),A("small",null,N(e.tr("manifestHint")),1)])):ue("",!0)],64)):ue("",!0)],8,kc)),[[gi,a===e.activeIndex]])),128)),e.disabledNotice?(M(),I("div",Oc,N(e.disabledNotice),1)):ue("",!0)]),_:2},[e.showLocaleSwitcher?{name:"toolbar",fn:Et(()=>[A("div",bc,[A("button",{type:"button",class:"dms-locale-btn","aria-expanded":String(e.localeOpen),"aria-label":"Change language",onClick:t[0]||(t[0]=l=>e.localeOpen=!e.localeOpen)},[A("span",vc,N(e.activeLang.flag),1),A("span",yc,N(e.activeLang.nativeName),1),t[2]||(t[2]=A("span",{class:"dms-dots","aria-hidden":"true"},"⋮",-1))],8,mc),e.localeOpen?(M(),I("ul",xc,[(M(!0),I(ee,null,ut(e.switcherLangs,l=>(M(),I("li",{key:l.code,role:"option","aria-selected":String(l.code===e.locale)},[A("button",{type:"button",class:Ke(["dms-locale-opt",{active:l.code===e.locale}]),onClick:a=>e.setLocale(l.code)},[A("span",Sc,N(l.flag),1),A("span",Ec,N(l.nativeName),1),A("span",Tc,N(l.name),1)],10,wc)],8,_c))),128))])):ue("",!0)])]),key:"0"}:void 0]),1032,["dir","lang","labels","title","nav-label","header","groups","active","onUpdate:active"])}const Rc=yr(gc,[["render",Pc],["styles",[oc]]]);function Mc(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const Ic=Mc(),Nc=Ql(Rc,{configureApp(e){e.provide("dmsTreeBase",Ic)}});typeof customElements<"u"&&!customElements.get("doxa-maps-spa")&&customElements.define("doxa-maps-spa",Nc)})(); +`,ua=ti({name:"VerticalTabsLayout",props:{active:{type:String,default:""},title:{type:String,default:""},items:{type:Array,default:()=>[]},groups:{type:Array,default:()=>[]},navLabel:{type:String,default:"Sections"},labels:{type:Object,default:()=>({})},initialNavOpen:{type:Boolean,default:!0},header:{type:Boolean,default:!0},initialRailCollapsed:{type:Boolean,default:!1}},emits:["update:active"],setup(){na(da,"vertical-tabs-layout")},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{}}},computed:{railShown(){return this.narrow?this.navOpen:!0},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const s of t.rows||[])e.push(s);return e}return this.items},orderedKeys(){return this.allRows.map(e=>e.key)},elementRows(){return this.allRows.filter(e=>e&&e.element)},mountedElementRows(){return this.elementRows.filter(e=>this.activatedKeys[e.key])}},watch:{active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){try{window.matchMedia&&(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this.reconcileForWidth(),this._onMedia=e=>{this.narrow=e.matches,this.reconcileForWidth()},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))}catch{}this.$nextTick(()=>this.activateElement(this.active))},beforeUnmount(){try{this._mql&&this._onMedia&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia))}catch{}this._mql=null,this._onMedia=null},methods:{registerTab(e,t){t&&(this._tabEls[e]=t)},isNarrow(){return this.narrow},reconcileForWidth(){this.narrow?(this.navOpen=!1,this.railCollapsed=!1):this.navOpen=!0},label(e){const t={toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse"};return this.labels&&this.labels[e]||t[e]},expandRail(){!this.narrow&&this.railCollapsed&&(this.railCollapsed=!1)},toggleRail(){this.narrow?this.navOpen=!this.navOpen:this.railCollapsed=!this.railCollapsed},setHostSlot(e,t){t&&(this._hostSlots[e]=t,this.$nextTick(()=>this.mountHostElement(e)))},activateElement(e){!e||!this.elementRows.find(s=>s.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(i=>i.key===e),s=this._hostSlots[e];!t||!s||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},aa(t.src).then(()=>ca(t.element)).then(()=>{s.innerHTML="";const i=document.createElement(t.element),r=t.attrs||{};for(const n in r){const o=r[n],l=o!=null&&typeof o=="object"?JSON.stringify(o):String(o);try{i[n]=o}catch{}try{i.setAttribute(n,l)}catch{}}i.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(i),this.hostState={...this.hostState,[e]:"ready"}}).catch(i=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:i&&i.message||String(i)}}))},iconSvg(e){return e?oa(e):""},initial(e){const t=(e||"").trim();return t?t.charAt(0).toUpperCase():"•"},isFolderClosed(e){const t=this.folderOverride[e.key];return t!=null?!t:e.open!==!0},toggleFolder(e){const t=this.folderOverride[e],s=(this.groups||[]).find(r=>r.key===e),i=t??(s&&s.open===!0);this.folderOverride={...this.folderOverride,[e]:!i}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const s=t.indexOf(this.active);let i=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")i=(s+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")i=(s-1+t.length)%t.length;else if(e.key==="Home")i=0;else if(e.key==="End")i=t.length-1;else return;e.preventDefault();const r=t[i];this.pick(r),this.$nextTick(()=>{const n=this._tabEls[r];n&&n.focus&&n.focus()})}}}),pa={key:0,class:"vtl-top"},fa=["aria-expanded","aria-label"],ha={class:"vtl-brand"},ba={class:"vtl-title"},ga={class:"vtl-meta"},ma=["aria-expanded","aria-label"],va={class:"vtl-body"},ya=["aria-label","aria-hidden","role","aria-orientation"],xa=["aria-expanded","aria-label"],_a=["innerHTML"],wa={class:"vtl-collapse-tx"},Sa=["aria-expanded","onClick"],Ea={key:0,class:"vtl-cap"},ka={class:"vtl-tl"},Ta={key:1,class:"vtl-td"},Ca=["innerHTML"],La={key:1,class:"vtl-tier"},Aa={key:0,class:"vtl-cap"},Oa={class:"vtl-tl"},Pa={key:1,class:"vtl-td"},Ra={class:"vtl-rows"},Ma=["aria-selected","tabindex","onClick"],Ia=["innerHTML"],Na={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Da={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Ha={class:"vtl-tab-text"},ja={class:"vtl-tab-label"},Fa={key:0,class:"vtl-tab-badge"},Ua={key:0,class:"vtl-tab-sub"},Va=["innerHTML"],$a=["aria-selected","tabindex","onClick"],Ba=["innerHTML"],za={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Wa={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Ka={class:"vtl-tab-text"},Ga={class:"vtl-tab-label"},qa={key:0,class:"vtl-tab-sub"},Xa={class:"vtl-main"},Ya={class:"vtl-content"},Ja=["hidden"],Za={key:0,class:"vtl-host-hint"},Qa={key:1,class:"vtl-host-hint err"};function ec(e,t,s,i,r,n){return M(),I("div",{class:Ke(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header}])},[e.header?(M(),I("header",pa,[A("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=o=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,fa),A("span",ha,[Ct(e.$slots,"brand")]),A("b",ba,N(e.title),1),A("span",ga,[Ct(e.$slots,"meta")])])):ue("",!0),e.narrow&&!e.header&&!e.navOpen?(M(),I("button",{key:1,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=o=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,ma)):ue("",!0),A("div",va,[A("nav",{class:"vtl-nav","aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[A("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[2]||(t[2]=(...o)=>e.toggleRail&&e.toggleRail(...o))},[A("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,_a),A("span",wa,N(e.label("collapse")),1)],8,xa),e.$slots.rail?Ct(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,0):e.groups&&e.groups.length?(M(!0),I(ee,{key:1},ut(e.groups,o=>(M(),I("div",{class:"vtl-grp",key:o.key},[o.folder?(M(),I("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(o)),onClick:l=>e.toggleFolder(o.key)},[o.badge?(M(),I("span",Ea,N(o.badge),1)):ue("",!0),A("span",ka,N(o.label),1),o.count!=null?(M(),I("span",Ta,N(o.count),1)):ue("",!0),A("span",{class:Ke(["vtl-chev",{open:!e.isFolderClosed(o)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,Ca)],8,Sa)):(M(),I("div",La,[o.badge?(M(),I("span",Aa,N(o.badge),1)):ue("",!0),A("span",Oa,N(o.label),1),o.count!=null?(M(),I("span",Pa,N(o.count),1)):ue("",!0)])),Js(A("div",Ra,[(M(!0),I(ee,null,ut(o.rows,l=>(M(),I("button",{key:l.key,type:"button",role:"tab",class:Ke(["vtl-tab",{active:l.key===e.active}]),"aria-selected":String(l.key===e.active),tabindex:l.key===e.active?0:-1,ref_for:!0,ref:a=>e.registerTab(l.key,a),onClick:a=>e.pick(l.key),onKeydown:t[3]||(t[3]=a=>e.onKey(a))},[l.icon?(M(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,Ia)):l.emoji?(M(),I("span",Na,N(l.emoji),1)):(M(),I("span",Da,N(e.initial(l.label)),1)),A("span",Ha,[A("span",ja,[ht(N(l.label),1),l.badge?(M(),I("span",Fa,N(l.badge),1)):ue("",!0)]),l.sub?(M(),I("span",Ua,[A("span",{innerHTML:l.sub},null,8,Va)])):ue("",!0)])],42,Ma))),128))],512),[[bi,!o.folder||!e.isFolderClosed(o)]])]))),128)):(M(!0),I(ee,{key:2},ut(e.items,o=>(M(),I("button",{key:o.key,type:"button",role:"tab",class:Ke(["vtl-tab",{active:o.key===e.active}]),"aria-selected":String(o.key===e.active),tabindex:o.key===e.active?0:-1,ref_for:!0,ref:l=>e.registerTab(o.key,l),onClick:l=>e.pick(o.key),onKeydown:t[4]||(t[4]=l=>e.onKey(l))},[o.icon?(M(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(o.icon)},null,8,Ba)):o.emoji?(M(),I("span",za,N(o.emoji),1)):(M(),I("span",Wa,N(e.initial(o.label)),1)),A("span",Ka,[A("span",Ga,N(o.label),1),o.sub?(M(),I("span",qa,N(o.sub),1)):ue("",!0)])],42,$a))),128))],8,ya),A("main",Xa,[e.header?Ct(e.$slots,"toolbar",{},void 0,void 0,0):ue("",!0),A("div",Ya,[(M(!0),I(ee,null,ut(e.mountedElementRows,o=>Js((M(),I("section",{key:o.key,class:"vtl-host",hidden:o.key!==e.active},[A("div",{class:"vtl-host-slot",ref_for:!0,ref:l=>e.setHostSlot(o.key,l)},null,512),e.hostState[o.key]==="loading"?(M(),I("div",Za,"Loading "+N(o.label)+"…",1)):e.hostState[o.key]==="error"?(M(),I("div",Qa,[ht(" Could not load "+N(o.label)+".",1),t[5]||(t[5]=A("br",null,null,-1)),A("small",null,N(e.hostError[o.key]),1)])):ue("",!0)],8,Ja)),[[bi,o.key===e.active]])),128)),Ct(e.$slots,"default")])])])],2)}const tc=yn(ua,[["render",ec],["styles",[la]]]),yi=[{code:"en",name:"English",nativeName:"English",flag:"🇺🇸"},{code:"es",name:"Spanish",nativeName:"Español",flag:"🇪🇸"},{code:"fr",name:"French",nativeName:"Français",flag:"🇫🇷"},{code:"pt",name:"Portuguese",nativeName:"Português",flag:"🇵🇹"},{code:"ar",name:"Arabic",nativeName:"العربية",flag:"🇸🇦",dir:"rtl"},{code:"ru",name:"Russian",nativeName:"Русский",flag:"🇷🇺"},{code:"de",name:"German",nativeName:"Deutsch",flag:"🇩🇪",hideFromSwitcher:!0},{code:"hi",name:"Hindi",nativeName:"हिन्दी",flag:"🇮🇳",hideFromSwitcher:!0}],sc=yi.filter(e=>!e.hideFromSwitcher);function ic(e){return yi.find(t=>t.code===e)}function xn(e){const t=String(e||"").split("-")[0].toLowerCase();return yi.some(s=>s.code===t)?t:"en"}const _n="doxa-maps:locale";function rc(){try{const e=localStorage.getItem(_n);if(e)return xn(e)}catch{}return xn(navigator==null?void 0:navigator.language)}function nc(e){try{localStorage.setItem(_n,e)}catch{}}const jt={en:{"sec.dashboards":"Dashboards","sec.prayer":"Prayer Mobilization","sec.gospel":"Gospel Research","sec.experimental":"Experimental","tab.dashboard-plus-grid":"Big Picture","sub.dashboard-plus-grid":"dashboard + people-groups grid, stacked","tab.research-map":"Research Map","sub.research-map":"prayer · engagement · regions","tab.research-map-plus-grid":"Simple Research","sub.research-map-plus-grid":"research map + people-groups grid","tab.prayer-map":"Prayer Progress","sub.prayer-map":"simple world prayer map","tab.cities-internet":"Cities with Internet","sub.cities-internet":"connectivity of key cities","tab.gospel-resources":"Gospel Resources","sub.gospel-resources":"resources by place","tab.regions-dashboard":"Regions","sub.regions-dashboard":"regions and their countries","tab.upg-100":"UPG-100 List","sub.upg-100":"my unreached list + posters",navLabel:"Research maps",meta:"{n} maps",loading:"Loading {label}…",loadFailed:"Could not load {label}.",manifestHint:"This tab is composed from manifest.json — build the tree, or serve the built tree, to load it.",desktopOnly:"desktop only",lab:"lab",experimentalSub:"experimental bundle",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse","tab.prayer-walk-planner":"Prayer Walk Planner","tab.upg-neighbor":"UPG Neighbor","tab.key-cities":"Key Cities","tab.all-people-groups":"All People Groups","tab.country-posters":"Country Posters","tab.doxa-vision-card":"Doxa Vision Card",desktopNotice:"Big Picture only supports desktop — open this page on a desktop to use it."},es:{"sec.dashboards":"Paneles","sec.prayer":"Movilización de oración","sec.gospel":"Investigación del Evangelio","sec.experimental":"Experimental","tab.dashboard-plus-grid":"Panorama general","sub.dashboard-plus-grid":"panel + cuadrícula de pueblos","tab.research-map":"Mapa de investigación","sub.research-map":"oración · compromiso · regiones","tab.research-map-plus-grid":"Investigación simple","sub.research-map-plus-grid":"mapa de investigación + cuadrícula de pueblos","tab.prayer-map":"Progreso de oración","sub.prayer-map":"mapa mundial de oración","tab.cities-internet":"Ciudades con Internet","sub.cities-internet":"conectividad de ciudades clave","tab.gospel-resources":"Recursos del Evangelio","sub.gospel-resources":"recursos por lugar","tab.regions-dashboard":"Regiones","sub.regions-dashboard":"regiones y sus países","tab.upg-100":"Lista UPG-100","sub.upg-100":"mi lista de no alcanzados + carteles",navLabel:"Mapas de investigación",meta:"{n} mapas",loading:"Cargando {label}…",loadFailed:"No se pudo cargar {label}.",manifestHint:"Esta pestaña se compone a partir de manifest.json: compila el árbol o sirve el árbol compilado para cargarla.",desktopOnly:"solo escritorio",lab:"beta",experimentalSub:"mapa experimental",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer","tab.prayer-walk-planner":"Caminatas de oración","tab.upg-neighbor":"Vecino UPG","tab.key-cities":"Ciudades clave","tab.all-people-groups":"Todos los pueblos","tab.country-posters":"Carteles por país","tab.doxa-vision-card":"Tarjeta de visión Doxa",desktopNotice:"Panorama general solo funciona en escritorio: abre esta página en una computadora para usarlo."},fr:{"sec.dashboards":"Tableaux de bord","sec.prayer":"Mobilisation à la prière","sec.gospel":"Recherche sur l'Évangile","sec.experimental":"Expérimental","tab.dashboard-plus-grid":"Vue d'ensemble","sub.dashboard-plus-grid":"tableau de bord + grille des peuples","tab.research-map":"Carte de recherche","sub.research-map":"prière · engagement · régions","tab.research-map-plus-grid":"Recherche simple","sub.research-map-plus-grid":"carte de recherche + grille des peuples","tab.prayer-map":"Progression de la prière","sub.prayer-map":"carte mondiale de la prière","tab.cities-internet":"Villes avec Internet","sub.cities-internet":"connectivité des villes clés","tab.gospel-resources":"Ressources de l'Évangile","sub.gospel-resources":"ressources par lieu","tab.regions-dashboard":"Régions","sub.regions-dashboard":"régions et leurs pays","tab.upg-100":"Liste UPG-100","sub.upg-100":"ma liste des non atteints + affiches",navLabel:"Cartes de recherche",meta:"{n} cartes",loading:"Chargement de {label}…",loadFailed:"Impossible de charger {label}.",manifestHint:"Cet onglet est composé à partir de manifest.json : construisez l'arborescence ou servez l'arborescence construite pour le charger.",desktopOnly:"ordinateur uniquement",lab:"bêta",experimentalSub:"carte expérimentale",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier","tab.prayer-walk-planner":"Marches de prière","tab.upg-neighbor":"Voisin UPG","tab.key-cities":"Villes clés","tab.all-people-groups":"Tous les peuples","tab.country-posters":"Affiches par pays","tab.doxa-vision-card":"Carte de vision Doxa",desktopNotice:"Vue d'ensemble ne fonctionne que sur ordinateur : ouvrez cette page sur un ordinateur pour l'utiliser."},de:{"sec.dashboards":"Dashboards","sec.prayer":"Gebetsmobilisierung","sec.gospel":"Evangeliumsforschung","sec.experimental":"Experimentell","tab.dashboard-plus-grid":"Gesamtbild","sub.dashboard-plus-grid":"Dashboard + Raster der Volksgruppen","tab.research-map":"Forschungskarte","sub.research-map":"Gebet · Engagement · Regionen","tab.research-map-plus-grid":"Einfache Recherche","sub.research-map-plus-grid":"Forschungskarte + Raster der Volksgruppen","tab.prayer-map":"Gebetsfortschritt","sub.prayer-map":"einfache Weltkarte des Gebets","tab.cities-internet":"Städte mit Internet","sub.cities-internet":"Konnektivität wichtiger Städte","tab.gospel-resources":"Evangeliumsressourcen","sub.gospel-resources":"Ressourcen nach Ort","tab.regions-dashboard":"Regionen","sub.regions-dashboard":"Regionen und ihre Länder","tab.upg-100":"UPG-100-Liste","sub.upg-100":"meine Liste der Unerreichten + Poster",navLabel:"Forschungskarten",meta:"{n} Karten",loading:"{label} wird geladen…",loadFailed:"{label} konnte nicht geladen werden.",manifestHint:"Dieser Tab wird aus manifest.json zusammengesetzt – bauen Sie den Baum oder stellen Sie den gebauten Baum bereit, um ihn zu laden.",desktopOnly:"nur Desktop",lab:"Beta",experimentalSub:"experimentelle Karte",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen","tab.prayer-walk-planner":"Gebetsspaziergänge","tab.upg-neighbor":"UPG-Nachbar","tab.key-cities":"Schlüsselstädte","tab.all-people-groups":"Alle Volksgruppen","tab.country-posters":"Länderposter","tab.doxa-vision-card":"Doxa-Visionskarte",desktopNotice:"Gesamtbild funktioniert nur am Desktop – öffnen Sie diese Seite an einem Computer, um es zu nutzen."},pt:{"sec.dashboards":"Painéis","sec.prayer":"Mobilização de oração","sec.gospel":"Pesquisa do Evangelho","sec.experimental":"Experimental","tab.dashboard-plus-grid":"Visão geral","sub.dashboard-plus-grid":"painel + grade de povos","tab.research-map":"Mapa de pesquisa","sub.research-map":"oração · engajamento · regiões","tab.research-map-plus-grid":"Pesquisa simples","sub.research-map-plus-grid":"mapa de pesquisa + grade de povos","tab.prayer-map":"Progresso da oração","sub.prayer-map":"mapa mundial de oração","tab.cities-internet":"Cidades com Internet","sub.cities-internet":"conectividade das principais cidades","tab.gospel-resources":"Recursos do Evangelho","sub.gospel-resources":"recursos por lugar","tab.regions-dashboard":"Regiões","sub.regions-dashboard":"regiões e seus países","tab.upg-100":"Lista UPG-100","sub.upg-100":"minha lista de não alcançados + cartazes",navLabel:"Mapas de pesquisa",meta:"{n} mapas",loading:"Carregando {label}…",loadFailed:"Não foi possível carregar {label}.",manifestHint:"Esta aba é composta a partir do manifest.json — compile a árvore ou sirva a árvore compilada para carregá-la.",desktopOnly:"só no computador",lab:"beta",experimentalSub:"mapa experimental",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher","tab.prayer-walk-planner":"Caminhadas de oração","tab.upg-neighbor":"Vizinho UPG","tab.key-cities":"Cidades-chave","tab.all-people-groups":"Todos os povos","tab.country-posters":"Cartazes por país","tab.doxa-vision-card":"Cartão de visão Doxa",desktopNotice:"Visão geral só funciona no computador — abra esta página em um computador para usá-la."},it:{"sec.dashboards":"Dashboard","sec.prayer":"Mobilitazione alla preghiera","sec.gospel":"Ricerca sul Vangelo","sec.experimental":"Sperimentale","tab.dashboard-plus-grid":"Quadro d'insieme","sub.dashboard-plus-grid":"dashboard + griglia dei popoli","tab.research-map":"Mappa di ricerca","sub.research-map":"preghiera · impegno · regioni","tab.research-map-plus-grid":"Ricerca semplice","sub.research-map-plus-grid":"mappa di ricerca + griglia dei popoli","tab.prayer-map":"Avanzamento preghiera","sub.prayer-map":"mappa mondiale della preghiera","tab.cities-internet":"Città con Internet","sub.cities-internet":"connettività delle città chiave","tab.gospel-resources":"Risorse del Vangelo","sub.gospel-resources":"risorse per luogo","tab.regions-dashboard":"Regioni","sub.regions-dashboard":"regioni e i loro paesi","tab.upg-100":"Lista UPG-100","sub.upg-100":"la mia lista dei non raggiunti + poster",navLabel:"Mappe di ricerca",meta:"{n} mappe",loading:"Caricamento di {label}…",loadFailed:"Impossibile caricare {label}.",manifestHint:"Questa scheda è composta da manifest.json: compila l'albero o pubblica l'albero compilato per caricarla.",desktopOnly:"solo desktop",lab:"beta",experimentalSub:"mappa sperimentale",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi","tab.prayer-walk-planner":"Passeggiate di preghiera","tab.upg-neighbor":"Vicino UPG","tab.key-cities":"Città chiave","tab.all-people-groups":"Tutti i popoli","tab.country-posters":"Poster per paese","tab.doxa-vision-card":"Scheda visione Doxa",desktopNotice:"Quadro d'insieme funziona solo su desktop: apri questa pagina su un computer per usarlo."},ro:{"sec.dashboards":"Panouri","sec.prayer":"Mobilizare la rugăciune","sec.gospel":"Cercetarea Evangheliei","sec.experimental":"Experimental","tab.dashboard-plus-grid":"Imaginea de ansamblu","sub.dashboard-plus-grid":"panou + grila popoarelor","tab.research-map":"Hartă de cercetare","sub.research-map":"rugăciune · implicare · regiuni","tab.research-map-plus-grid":"Cercetare simplă","sub.research-map-plus-grid":"hartă de cercetare + grila popoarelor","tab.prayer-map":"Progresul rugăciunii","sub.prayer-map":"hartă mondială a rugăciunii","tab.cities-internet":"Orașe cu internet","sub.cities-internet":"conectivitatea orașelor-cheie","tab.gospel-resources":"Resurse ale Evangheliei","sub.gospel-resources":"resurse după loc","tab.regions-dashboard":"Regiuni","sub.regions-dashboard":"regiunile și țările lor","tab.upg-100":"Lista UPG-100","sub.upg-100":"lista mea de neatinși + afișe",navLabel:"Hărți de cercetare",meta:"{n} hărți",loading:"Se încarcă {label}…",loadFailed:"{label} nu a putut fi încărcat.",manifestHint:"Această filă este compusă din manifest.json — construiți arborele sau serviți arborele construit pentru a o încărca.",desktopOnly:"doar pe desktop",lab:"beta",experimentalSub:"hartă experimentală",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge","tab.prayer-walk-planner":"Plimbări de rugăciune","tab.upg-neighbor":"Vecin UPG","tab.key-cities":"Orașe-cheie","tab.all-people-groups":"Toate popoarele","tab.country-posters":"Afișe pe țări","tab.doxa-vision-card":"Card de viziune Doxa",desktopNotice:"Imaginea de ansamblu funcționează doar pe desktop — deschideți această pagină pe un computer pentru a o folosi."},ru:{"sec.dashboards":"Панели","sec.prayer":"Молитвенная мобилизация","sec.gospel":"Исследование Евангелия","sec.experimental":"Экспериментальное","tab.dashboard-plus-grid":"Общая картина","sub.dashboard-plus-grid":"панель + таблица народов","tab.research-map":"Исследовательская карта","sub.research-map":"молитва · вовлечённость · регионы","tab.research-map-plus-grid":"Простое исследование","sub.research-map-plus-grid":"исследовательская карта + таблица народов","tab.prayer-map":"Прогресс молитвы","sub.prayer-map":"простая карта молитвы мира","tab.cities-internet":"Города с интернетом","sub.cities-internet":"подключённость ключевых городов","tab.gospel-resources":"Евангельские ресурсы","sub.gospel-resources":"ресурсы по местам","tab.regions-dashboard":"Регионы","sub.regions-dashboard":"регионы и их страны","tab.upg-100":"Список UPG-100","sub.upg-100":"мой список недостигнутых + плакаты",navLabel:"Исследовательские карты",meta:"Карт: {n}",loading:"Загрузка: {label}…",loadFailed:"Не удалось загрузить: {label}.",manifestHint:"Эта вкладка собирается из manifest.json — соберите дерево или разместите собранное дерево, чтобы загрузить её.",desktopOnly:"только на компьютере",lab:"бета",experimentalSub:"экспериментальная карта",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть","tab.prayer-walk-planner":"Молитвенные прогулки","tab.upg-neighbor":"Сосед UPG","tab.key-cities":"Ключевые города","tab.all-people-groups":"Все народы","tab.country-posters":"Плакаты по странам","tab.doxa-vision-card":"Карточка видения Doxa",desktopNotice:"«Общая картина» работает только на компьютере — откройте эту страницу на компьютере."},ar:{"sec.dashboards":"لوحات المعلومات","sec.prayer":"التعبئة للصلاة","sec.gospel":"أبحاث الإنجيل","sec.experimental":"تجريبي","tab.dashboard-plus-grid":"الصورة الكاملة","sub.dashboard-plus-grid":"لوحة معلومات + شبكة الشعوب","tab.research-map":"خريطة البحث","sub.research-map":"الصلاة · الانخراط · المناطق","tab.research-map-plus-grid":"بحث مبسّط","sub.research-map-plus-grid":"خريطة البحث + شبكة الشعوب","tab.prayer-map":"تقدم الصلاة","sub.prayer-map":"خريطة عالمية مبسّطة للصلاة","tab.cities-internet":"مدن متصلة بالإنترنت","sub.cities-internet":"اتصال المدن الرئيسية","tab.gospel-resources":"موارد الإنجيل","sub.gospel-resources":"الموارد حسب المكان","tab.regions-dashboard":"المناطق","sub.regions-dashboard":"المناطق ودولها","tab.upg-100":"قائمة UPG-100","sub.upg-100":"قائمتي لغير المُبشَّرين + ملصقات",navLabel:"خرائط البحث",meta:"عدد الخرائط: {n}",loading:"جارٍ تحميل {label}…",loadFailed:"تعذّر تحميل {label}.",manifestHint:"تُبنى علامة التبويب هذه من manifest.json — ابنِ الشجرة أو قدّم الشجرة المبنية لتحميلها.",desktopOnly:"على الحاسوب فقط",lab:"تجريبي",experimentalSub:"خريطة تجريبية",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي","tab.prayer-walk-planner":"جولات الصلاة","tab.upg-neighbor":"جار UPG","tab.key-cities":"المدن الرئيسية","tab.all-people-groups":"جميع الشعوب","tab.country-posters":"ملصقات الدول","tab.doxa-vision-card":"بطاقة رؤية Doxa",desktopNotice:"تعمل «الصورة الكاملة» على الحاسوب فقط — افتح هذه الصفحة على حاسوب لاستخدامها."},hi:{"sec.dashboards":"डैशबोर्ड","sec.prayer":"प्रार्थना संचालन","sec.gospel":"सुसमाचार शोध","sec.experimental":"प्रायोगिक","tab.dashboard-plus-grid":"संपूर्ण चित्र","sub.dashboard-plus-grid":"डैशबोर्ड + जनसमूहों की ग्रिड","tab.research-map":"शोध मानचित्र","sub.research-map":"प्रार्थना · सहभागिता · क्षेत्र","tab.research-map-plus-grid":"सरल शोध","sub.research-map-plus-grid":"शोध मानचित्र + जनसमूहों की ग्रिड","tab.prayer-map":"प्रार्थना प्रगति","sub.prayer-map":"सरल विश्व प्रार्थना मानचित्र","tab.cities-internet":"इंटरनेट वाले शहर","sub.cities-internet":"प्रमुख शहरों की कनेक्टिविटी","tab.gospel-resources":"सुसमाचार संसाधन","sub.gospel-resources":"स्थान के अनुसार संसाधन","tab.regions-dashboard":"क्षेत्र","sub.regions-dashboard":"क्षेत्र और उनके देश","tab.upg-100":"UPG-100 सूची","sub.upg-100":"मेरी अप्राप्त सूची + पोस्टर",navLabel:"शोध मानचित्र",meta:"{n} मानचित्र",loading:"{label} लोड हो रहा है…",loadFailed:"{label} लोड नहीं हो सका।",manifestHint:"यह टैब manifest.json से बनता है — इसे लोड करने के लिए ट्री बनाएँ या बना हुआ ट्री सर्व करें।",desktopOnly:"केवल डेस्कटॉप",lab:"बीटा",experimentalSub:"प्रायोगिक मानचित्र",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें","tab.prayer-walk-planner":"प्रार्थना पदयात्रा","tab.upg-neighbor":"UPG पड़ोसी","tab.key-cities":"प्रमुख शहर","tab.all-people-groups":"सभी जनसमूह","tab.country-posters":"देश पोस्टर","tab.doxa-vision-card":"Doxa दर्शन कार्ड",desktopNotice:"संपूर्ण चित्र केवल डेस्कटॉप पर काम करता है — इसे उपयोग करने के लिए यह पेज कंप्यूटर पर खोलें।"},zh:{"sec.dashboards":"仪表板","sec.prayer":"祷告动员","sec.gospel":"福音研究","sec.experimental":"实验性","tab.dashboard-plus-grid":"全景","sub.dashboard-plus-grid":"仪表板 + 民族网格","tab.research-map":"研究地图","sub.research-map":"祷告 · 参与 · 区域","tab.research-map-plus-grid":"简易研究","sub.research-map-plus-grid":"研究地图 + 民族网格","tab.prayer-map":"祷告进度","sub.prayer-map":"简易世界祷告地图","tab.cities-internet":"有互联网的城市","sub.cities-internet":"主要城市的网络连接","tab.gospel-resources":"福音资源","sub.gospel-resources":"按地点划分的资源","tab.regions-dashboard":"区域","sub.regions-dashboard":"区域及其国家","tab.upg-100":"UPG-100 名单","sub.upg-100":"我的未得之民名单 + 海报",navLabel:"研究地图",meta:"{n} 张地图",loading:"正在加载{label}…",loadFailed:"无法加载{label}。",manifestHint:"此标签页由 manifest.json 组成——请构建目录树或提供已构建的目录树以加载它。",desktopOnly:"仅限桌面",lab:"测试版",experimentalSub:"实验性地图",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠","tab.prayer-walk-planner":"祷告行走","tab.upg-neighbor":"UPG 邻居","tab.key-cities":"重点城市","tab.all-people-groups":"所有民族","tab.country-posters":"国家海报","tab.doxa-vision-card":"Doxa 异象卡",desktopNotice:"全景仅支持桌面设备——请在电脑上打开此页面使用。"}},xi=Object.keys(jt);function oc(e){return Object.prototype.hasOwnProperty.call(jt.en,e)}function _s(e,t,s){let r=(jt[e]||jt.en)[t]??jt.en[t]??t;if(s)for(const n in s)r=r.split("{"+n+"}").join(String(s[n]));return r}const lc=":host{display:block;position:relative;height:var(--doxa-maps-spa-height, 85vh);min-height:480px}:host{font-size:16px;line-height:normal;font-weight:400;font-style:normal;font-variant:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;text-align:start;text-indent:0;text-shadow:none;white-space:normal;-webkit-hyphens:manual;hyphens:manual;visibility:visible;cursor:auto}:host([hidden]){display:none}.dms-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.dms-slot{position:relative;min-height:100%}.dms-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.dms-hint.err{color:#f87171}.dms-hint small{color:var(--dx-muted, #6d766e)}.dms-notice{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:40;max-width:320px;text-align:center;font-size:13px;line-height:1.4;color:#3b463d;background:#fff;border:1px solid #d1d4cd;border-radius:10px;padding:10px 16px;box-shadow:0 8px 24px #0000001f}.dms-logo{display:inline-flex;align-items:center}.dms-logo svg{display:block}.dms-locale{position:relative;padding:8px 12px 0;display:flex;justify-content:flex-end}.dms-locale-btn{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:12px;padding:5px 10px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer}.dms-locale-btn:hover{background:#d1d4cd}.dms-flag{font-size:14px;line-height:1}.dms-locale-name{max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dms-dots{color:#6d766e;margin-left:2px}.dms-locale-menu{position:absolute;top:100%;right:12px;margin-top:4px;z-index:30;min-width:180px;list-style:none;padding:6px;border:1px solid #d1d4cd;border-radius:10px;background:#fff;box-shadow:0 12px 32px #00000080;max-height:320px;overflow:auto}.dms-locale-opt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;padding:7px 9px;border:0;border-radius:7px;background:none;color:#3b463d;cursor:pointer}.dms-locale-opt:hover,.dms-locale-opt.active{background:#d1d4cd;color:#3b463d}.dms-locale-opt.active .dms-locale-name{color:#92b195}.dms-locale-en{margin-left:auto;font-size:11px;color:#6d766e}";function wn(){try{const e=new URLSearchParams(location.search),t=(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase();if(xi.includes(t))return t}catch{}try{const e=(document.documentElement.lang||"").split("-")[0].toLowerCase();if(xi.includes(e))return e}catch{}return""}const _i=[{key:"dashboards",label:"Dashboards",i18n:"sec.dashboards",icon:"chart",tabs:[{id:"dashboard-plus-grid",icon:"chart"},{id:"research-map-plus-grid",icon:"map"},{id:"regions-dashboard",icon:"map"}]},{key:"prayer-mobilization",label:"Prayer Mobilization",i18n:"sec.prayer",icon:"heart",tabs:[{id:"upg-100",icon:"list"},{id:"prayer-map",icon:"embed"}]},{key:"gospel-research",label:"Gospel Research",i18n:"sec.gospel",icon:"search",tabs:[{id:"cities-internet",icon:"wifi"},{id:"gospel-resources",icon:"book"}]},{key:"experimental",label:"Experimental",i18n:"sec.experimental",icon:"flask",folder:!0,open:!1,tabs:[]}],ac=new Set(["doxa-maps-spa","plugin-studio","template-bundle","people-groups-grid","research-dashboard","big-picture","demo-map","golden-path-check","doxa-research-map","stack-demo"]),Sn={"prayer-walk-planner":1,"upg-neighbor":2,"key-cities":3,"all-people-groups":4,"country-posters":5,"doxa-vision-card":6},wi=[{id:"dashboard-plus-grid",label:"Big Picture",sub:"dashboard + people-groups grid, stacked",emoji:"🌍",bundle:"dashboard-plus-grid",profile:"dashboard-plus-grid"},{id:"research-map",label:"Research Map",sub:"prayer · engagement · regions",emoji:"🗺️",bundle:"doxa-research-map",profile:"research-map"},{id:"research-map-plus-grid",label:"Simple Research",sub:"research map + people-groups grid",emoji:"🗺️",bundle:"research-map-plus-grid",profile:"research-map-plus-grid"},{id:"prayer-map",label:"Prayer Progress",sub:"simple world prayer map",emoji:"🙏",bundle:"doxa-simple-map",profile:"doxa-simple-map",instance:"prayer"},{id:"cities-internet",label:"Cities with Internet",sub:"connectivity of key cities",emoji:"📡",bundle:"cities-internet",profile:"connectivity-map"},{id:"gospel-resources",label:"Gospel Resources",sub:"resources by place",emoji:"📖",bundle:"gospel-resources",profile:"resources-map"},{id:"regions-dashboard",label:"Regions",sub:"regions and their countries",emoji:"🌐",bundle:"regions-dashboard",profile:"regions-mfe"},{id:"upg-100",label:"UPG-100 List",sub:"my unreached list + posters",emoji:"📋",bundle:"my-upg-100-list",profile:"upg-100-mfe"}];dc(_i);const ws=new Set(["doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-map","doxa-maps-spa","dashboard-plus-grid","research-dashboard-map","demo-map","all-people-groups","country-posters-map","key-cities-map","research-map-plus-grid"]),Ss=new Set(["dashboard-plus-grid","research-map-plus-grid"]);function cc(){const e=Object.fromEntries(wi.map(s=>[s.id,s])),t=new Set;for(const s of _i)if(s.key!=="experimental")for(const i of s.tabs||[]){const r=e[i.id];r&&r.bundle&&t.add(r.bundle)}return t}function En(e,t){const s=[];for(const i of e)!i||t.has(i.key)||(t.add(i.key),s.push(i));return s}function dc(e){const t=new Map,s=[];for(const i of e)if(i.key!=="experimental")for(const r of i.tabs||[]){if(!r||!r.id)continue;const n=t.get(r.id);if(n===void 0){t.set(r.id,i.key);continue}(n!==i.key||s.indexOf(r.id)===-1)&&s.push(r.id+" ("+n+" + "+i.key+")")}return s.length&&typeof console<"u"&&console.error("[doxa-maps-spa] duplicate tab key(s) across NAV_MODEL sections: "+s.join(", ")+" — VerticalTabsLayout keys its tab-ref map and `active` highlight by id, so a row declared in two sections paints twice and stalls keyboard nav. See the duplicate-key trap in SPEC-the-six-map-product-and-its-tab-order.md."),s}function uc(e){return String(e).split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function pc(e){const t=cc(),s=e&&Array.isArray(e.bundles)?e.bundles:[],i=[];for(const r of s){const n=r&&r.bundle;if(!n||t.has(n)||ac.has(n))continue;const o=Array.isArray(r.profiles)?r.profiles:[];if(!o.length)continue;const l=o.find(u=>u.isMap)||o.find(u=>u.profile===n)||o[0],a=l.element||Array.isArray(r.elements)&&r.elements[0]||n,p=r.scriptUrl||l.scriptUrl||"";p&&i.push({id:n,label:l.title||uc(n),sub:(l.description||"").trim().replace(/[,;]\s*$/,"")||"experimental bundle",emoji:"🧪",tag:a,bundle:n,profile:l.profile||n,scriptUrl:p,heavy:ws.has(a)||ws.has(n),scroll:Ss.has(a)||Ss.has(n),discovered:!0})}return i.sort((r,n)=>{const o=Sn[r.id]||999,l=Sn[n.id]||999;return o!==l?o-l:r.label.localeCompare(n.label)}),i}function fc(e,t){const s=e&&Array.isArray(e.bundles)?e.bundles:[],i=Object.fromEntries(s.map(n=>[n.bundle,n])),r={};for(const n of t){const o=i[n.bundle];if(!o)continue;const l=Array.isArray(o.profiles)?o.profiles:[],a=l.find(E=>E.profile===n.profile)||l[0],p=a&&a.element||Array.isArray(o.elements)&&o.elements[0]||n.bundle,u=o.scriptUrl||a&&a.scriptUrl||"";if(!u)continue;const h=a&&Array.isArray(a.instances)?a.instances:[],S=!!(n.instance&&h.some(E=>(E&&(E.id||E.instance))===n.instance));r[n.id]={tag:p,scriptUrl:u,profile:a&&a.profile||n.profile,instance:S?n.instance:"",heavy:ws.has(p)||ws.has(n.bundle),scroll:Ss.has(p)||Ss.has(n.bundle)}}return r}const Ft={};function hc(e,t){return Ft[e]||(Ft[e]=new Promise((s,i)=>{const r=document.createElement("script");r.src=e,(/^\/plugin-designs\//.test(e)||/\/index\.js(\?|$)/.test(e))&&(r.type="module"),r.onload=()=>s(),r.onerror=()=>{delete Ft[e],i(new Error("failed to load "+e))},document.head.appendChild(r)})),Ft[e]}function bc(e,t){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():Promise.race([customElements.whenDefined(e),new Promise((s,i)=>setTimeout(()=>{customElements.get(e)||i(new Error("<"+e+"> never registered (bundle loaded but defined no element)"))},15e3))])}const gc=ti({name:"DoxaMapsSpa",components:{VerticalTabsLayout:tc},props:{treeBase:{type:String,default:""},profileConfig:{type:[String,Object],default:""},heading:{type:String,default:"DX-Maps"},tokenUrl:{type:String,default:""},tk:{type:String,default:""},language:{type:String,default:""},apiBaseUrl:{type:String,default:""},provider:{type:String,default:""},tab:{type:String,default:""}},emits:["tab-change"],setup(){return{injectedBase:kt("dmsTreeBase","")}},data(){return{activeIndex:0,showHeader:!1,narrow:!1,_mql:null,_onMedia:null,disabledNotice:"",_noticeTimer:null,manifestError:"",manifestBase:"",runtime:{},locale:rc(),hostLang:wn(),localeOpen:!1,switcherLangs:sc,tabs:wi.map(e=>({...e,tag:"",scriptUrl:"",heavy:!1,scroll:!1,resolved:!1,mounted:!1,state:"idle",error:""}))}},computed:{cfg(){let e=this.profileConfig;if(typeof e=="string")try{e=e?JSON.parse(e):{}}catch{e={}}return e&&typeof e=="object"?e:{}},base(){const e=(this.treeBase||this.cfg.treeBase||this.injectedBase||"").trim();return e?e.replace(/\/+$/,"")+"/":""},assetsBase(){const e=String(this.cfg.assetsBase||"").trim();return/^https?:\/\//i.test(e)||e.startsWith("/")?e.replace(/\/+$/,""):this.manifestBase?this.manifestBase.replace(/\/+$/,"")+"/assets":""},navGroups(){const e=Object.fromEntries(this.tabs.map(s=>[s.id,s])),t=new Set;return _i.map(s=>{let i=En((s.tabs||[]).filter(r=>e[r.id]).map(r=>{const n=e[r.id],o=this.isBigPictureDisabled(n.id);return{key:n.id,label:this.tabLabel(n),sub:this.tabSub(n),icon:r.icon,badge:o?this.tr("desktopOnly"):r.badge,disabled:o}}),t);return s.key==="experimental"&&(i=i.concat(En(this.tabs.filter(r=>r.discovered).map(r=>({key:r.id,label:this.tabLabel(r),sub:this.tabSub(r),icon:"flask",badge:this.tr("lab")})),t))),{key:s.key,label:s.i18n?this.tr(s.i18n):s.label,icon:s.icon,folder:!!s.folder,open:s.open,rows:i}}).filter(s=>s.rows.length)},showLocaleSwitcher(){return this.showHeader},activeLang(){return ic(this.locale)||{code:this.locale,flag:"🌐",nativeName:this.locale}},effectiveLocale(){const e=(this.language||this.cfg.language||this.cfg.locale||this.cfg.lang||"").trim(),t=this.showLocaleSwitcher?this.locale:"";return(e||t||this.hostLang||"en").split("-")[0].toLowerCase()},uiLocale(){return xi.includes(this.effectiveLocale)?this.effectiveLocale:"en"},uiDir(){return this.uiLocale==="ar"?"rtl":"ltr"},layoutLabels(){const e={};for(const t of["toggleList","openViews","expandList","collapseList","collapse"])e[t]=this.tr(t);return e},effectiveProvider(){const e=String(this.provider||this.cfg.provider||"").trim().toLowerCase();return e==="maplibre"||e==="mapbox"?e:""},activeKey(){const e=this.tabs[this.activeIndex];return e?e.id:""}},mounted(){this.watchWidth(),this.watchHostLang(),this.select(this.initialIndex()),this.loadManifest()},beforeUnmount(){this._langObs&&(this._langObs.disconnect(),this._langObs=null),!(!this._mql||!this._onMedia)&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia),this._mql=null,this._onMedia=null)},watch:{effectiveLocale(e){const t=this.tabs[this.activeIndex];if(!(!t||!t.mounted))try{const s=this._slots&&this._slots[this.activeIndex],i=s&&s.firstElementChild;i&&i.setAttribute&&i.setAttribute("profile-config",JSON.stringify(this.childConfig(t)))}catch{}},tab(e){e&&this.onSelect(e)}},methods:{setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},tr(e,t){return _s(this.uiLocale,e,t)},t(e,t){return _s(this.uiLocale,e,t)},tabLabel(e){return!e.discovered||oc("tab."+e.id)?_s(this.uiLocale,"tab."+e.id):e.label},tabSub(e){return e.discovered?this.uiLocale==="en"?e.sub:this.tr("experimentalSub"):_s(this.uiLocale,"sub."+e.id)},watchHostLang(){typeof MutationObserver>"u"||typeof document>"u"||(this._langObs=new MutationObserver(()=>{this.hostLang=wn()}),this._langObs.observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]}))},watchWidth(){typeof window>"u"||!window.matchMedia||(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this._onMedia=e=>{const t=this.narrow;this.narrow=!!e.matches,t!==this.narrow&&this.isBigPictureDisabled(this.activeKey)&&this.select(this.firstVisibleIndex())},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))},isBigPictureDisabled(e){return e==="dashboard-plus-grid"&&this.narrow},firstVisibleIndex(){let e=-1;for(const t of this.navGroups)for(const s of t.rows){const i=this.tabs.findIndex(r=>r.id===s.key);if(!(i<0)&&(e<0&&(e=i),!s.disabled))return i}return e>=0?e:0},loadManifest(){const e=[this.resolve("manifest.json")],t="/public/doxa-maps/manifest.json";e.indexOf(t)===-1&&e.push(t);const s=[],i=r=>{if(r>=e.length){this.manifestError="manifest.json not found (tried "+s.join(", ")+")",console.error("[doxa-maps-spa] "+this.manifestError+" — every tab except Big Picture is composed from it, so their panes cannot mount.");return}const n=e[r];return s.push(n),fetch(n,{credentials:"omit"}).then(o=>{if(!o||!o.ok)throw new Error(n+" → HTTP "+(o?o.status:"?"));return o.json()}).then(o=>{if(!o)throw new Error(n+" → empty");this.manifestError="";try{this.manifestBase=new URL(n,location.href).href.replace(/[^/]*$/,"")}catch{this.manifestBase=""}this.applyManifest(o)}).catch(()=>i(r+1))};try{i(0)}catch{}},applyManifest(e){this.runtime=e&&e.runtime&&typeof e.runtime=="object"?e.runtime:{},this.applyPageGlobals();const t=fc(e,wi),s=this.activeKey,i=[];for(const a of this.tabs){if(a.discovered){i.push(a);continue}const p=t[a.id];p&&(Object.assign(a,p,{resolved:!0}),i.push(a))}const r=new Set(i.map(a=>a.id));for(const a of pc(e))r.has(a.id)||i.push({...a,resolved:!0,mounted:!1,state:"idle",error:""});this.tabs=i;const n=this.requestedTab(),o=n?this.tabs.findIndex(a=>a.id===n):-1,l=this.tabs.findIndex(a=>a.id===s);o>=0&&!this.isBigPictureDisabled(n)&&!this._honouredTab?this.select(o):this.select(l>=0?l:this.firstVisibleIndex()),this._honouredTab=!0},requestedTab(){let e="";try{e=new URLSearchParams(location.search).get("tab")||""}catch{}return String(this.tab||this.cfg.tab||e||"").trim()},initialIndex(){const e=this.requestedTab(),t=e?this.tabs.findIndex(s=>s.id===e):-1;return t>=0&&(this._honouredTab=!0),t>=0&&!this.isBigPictureDisabled(e)?t:this.firstVisibleIndex()},setLocale(e){this.locale=e,this.localeOpen=!1,nc(e)},onSelect(e){if(this.isBigPictureDisabled(e)){this.disabledNotice=this.tr("desktopNotice"),clearTimeout(this._noticeTimer),this._noticeTimer=setTimeout(()=>{this.disabledNotice=""},4e3);return}const t=this.tabs.findIndex(s=>s.id===e);t!==-1&&this.select(t)},resolve(e){const t=String(e);if(/^(https?:)?\/\//.test(t)||t.startsWith("/"))return t;const s=t.replace(/^\.\//,"");return this.manifestBase?this.manifestBase.replace(/\/+$/,"")+"/"+s:this.base?this.base.replace(/\/+$/,"")+"/"+s:"../"+s},select(e){const t=this.activeIndex;if(this.activeIndex=e,t!==e&&t>=0){const i=this.tabs[t];i&&i.heavy&&i.mounted&&this.releaseTab(t,i)}const s=this.tabs[e];s&&((t!==e||!this._announced)&&(this._announced=!0,this.$emit("tab-change",{id:s.id,label:s.label})),s.scriptUrl&&(s.mounted||this.$nextTick(()=>{this.activeIndex===e&&this.mountElement(e)})))},releaseTab(e,t){try{const s=this._slots&&this._slots[e];s&&(s.innerHTML="")}catch{}this._slots&&delete this._slots[e],t.mounted=!1,t.state="idle",t.error=""},childConfig(e){const t={profile:e.profile||e.id,instanceId:e.instance||"dms-"+e.id};this.effectiveLocale&&(t.locale=this.effectiveLocale);const s=this.tk||this.cfg.tk||this.runtime.token;return s&&(t.tk=s),(this.tokenUrl||this.cfg.tokenUrl)&&(t.tokenUrl=this.tokenUrl||this.cfg.tokenUrl),this.effectiveProvider&&(t.provider=this.effectiveProvider),this.base&&(t.treeBase=this.base),this.assetsBase&&(t.assetsBase=this.assetsBase),t.urlSync=!1,t},applyPageGlobals(){if(typeof window>"u")return;const e=(this.apiBaseUrl||this.cfg.apiBaseUrl||this.runtime.apiBaseUrl||"").trim();e&&!window.MAP_APP_API_URL&&(window.MAP_APP_API_URL=e.replace(/\/+$/,""));const t=this.tk||this.cfg.tk||this.runtime.token;t&&!window.MAP_TOKEN&&(window.MAP_TOKEN=t),this.effectiveProvider&&!window.MAP_PROVIDER&&(window.MAP_PROVIDER=this.effectiveProvider)},mountElement(e){const t=this.tabs[e];t.mounted=!0,t.state="loading";const s=this.resolve(t.scriptUrl);hc(s).then(()=>bc(t.tag)).then(()=>{try{if(t.heavy&&this.activeIndex!==e){t.mounted=!1,t.state="idle";return}const i=this._slots&&this._slots[e];if(!i){t.state="error",t.error="no slot";return}i.innerHTML="";const r=document.createElement(t.tag);r.setAttribute("profile-config",JSON.stringify(this.childConfig(t))),this.base&&r.setAttribute("tree-base",this.base.replace(/\/+$/,"")),r.style.cssText=t.scroll?"display:block;position:static;width:100%;height:auto;":"display:block;position:absolute;inset:0;width:100%;height:100%;",i.appendChild(r),t.state="ready"}catch(i){t.state="error",t.error="mount failed: "+(i&&i.message||String(i))}}).catch(i=>{t.state="error",t.error=i&&i.message||String(i)})}}}),mc={class:"dms-locale"},vc=["aria-expanded"],yc={class:"dms-flag"},xc={class:"dms-locale-name"},_c={key:0,class:"dms-locale-menu",role:"listbox"},wc=["aria-selected"],Sc=["onClick"],Ec={class:"dms-flag"},kc={class:"dms-locale-name"},Tc={class:"dms-locale-en"},Cc=["hidden"],Lc={key:0,class:"dms-hint"},Ac={key:1,class:"dms-hint err"},Oc={key:2,class:"dms-hint err"},Pc={key:0,class:"dms-notice",role:"status"};function Rc(e,t,s,i,r,n){const o=Uo("VerticalTabsLayout");return M(),hs(o,{dir:e.uiDir,lang:e.uiLocale,labels:e.layoutLabels,title:e.heading,"nav-label":e.t("navLabel"),header:e.showHeader,groups:e.navGroups,active:e.activeKey,"onUpdate:active":e.onSelect},Bo({brand:Et(()=>[t[1]||(t[1]=A("span",{class:"dms-logo","aria-hidden":"true"},[A("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#92b195","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[A("circle",{cx:"12",cy:"12",r:"9"}),A("polygon",{points:"12 6 14 12 12 18 10 12",fill:"#92b195",stroke:"none"}),A("polygon",{points:"6 12 12 10 18 12 12 14",fill:"#92b195",opacity:"0.55",stroke:"none"})])],-1))]),meta:Et(()=>[ht(N(e.t("meta",{n:e.tabs.length})),1)]),default:Et(()=>[(M(!0),I(ee,null,ut(e.tabs,(l,a)=>Js((M(),I("section",{key:l.id,class:"dms-pane",hidden:a!==e.activeIndex},[!l.heavy||a===e.activeIndex?(M(),I(ee,{key:0},[A("div",{class:"dms-slot",ref_for:!0,ref:p=>e.setSlot(a,p)},null,512),l.state==="loading"?(M(),I("div",Lc,N(e.tr("loading",{label:e.tabLabel(l)})),1)):l.state==="error"?(M(),I("div",Ac,[ht(N(e.tr("loadFailed",{label:e.tabLabel(l)})),1),t[3]||(t[3]=A("br",null,null,-1)),A("small",null,N(l.error),1)])):l.state==="idle"&&!l.scriptUrl&&e.manifestError?(M(),I("div",Oc,[ht(N(e.tr("loadFailed",{label:e.tabLabel(l)})),1),t[4]||(t[4]=A("br",null,null,-1)),A("small",null,N(e.manifestError),1),t[5]||(t[5]=A("br",null,null,-1)),A("small",null,N(e.tr("manifestHint")),1)])):ue("",!0)],64)):ue("",!0)],8,Cc)),[[bi,a===e.activeIndex]])),128)),e.disabledNotice?(M(),I("div",Pc,N(e.disabledNotice),1)):ue("",!0)]),_:2},[e.showLocaleSwitcher?{name:"toolbar",fn:Et(()=>[A("div",mc,[A("button",{type:"button",class:"dms-locale-btn","aria-expanded":String(e.localeOpen),"aria-label":"Change language",onClick:t[0]||(t[0]=l=>e.localeOpen=!e.localeOpen)},[A("span",yc,N(e.activeLang.flag),1),A("span",xc,N(e.activeLang.nativeName),1),t[2]||(t[2]=A("span",{class:"dms-dots","aria-hidden":"true"},"⋮",-1))],8,vc),e.localeOpen?(M(),I("ul",_c,[(M(!0),I(ee,null,ut(e.switcherLangs,l=>(M(),I("li",{key:l.code,role:"option","aria-selected":String(l.code===e.locale)},[A("button",{type:"button",class:Ke(["dms-locale-opt",{active:l.code===e.locale}]),onClick:a=>e.setLocale(l.code)},[A("span",Ec,N(l.flag),1),A("span",kc,N(l.nativeName),1),A("span",Tc,N(l.name),1)],10,Sc)],8,wc))),128))])):ue("",!0)])]),key:"0"}:void 0]),1032,["dir","lang","labels","title","nav-label","header","groups","active","onUpdate:active"])}const Mc=yn(gc,[["render",Rc],["styles",[lc]]]);function Ic(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const Nc=Ic(),Dc=Ql(Mc,{configureApp(e){e.provide("dmsTreeBase",Nc)}});typeof customElements<"u"&&!customElements.get("doxa-maps-spa")&&customElements.define("doxa-maps-spa",Dc)})(); diff --git a/public/doxa-maps/doxa-maps-spa/doxa-maps-spa/app/index.html b/public/doxa-maps/doxa-maps-spa/doxa-maps-spa/app/index.html index 11f673aff..484bb109f 100644 --- a/public/doxa-maps/doxa-maps-spa/doxa-maps-spa/app/index.html +++ b/public/doxa-maps/doxa-maps-spa/doxa-maps-spa/app/index.html @@ -26,7 +26,7 @@ - + - + + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":21,"profileCount":33,"runtime":{"apiBaseUrl":"https://pray.doxa.life","token":"pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ"},"bundles":[{"bundle":"all-people-groups","scriptUrl":"./all-people-groups/all-people-groups.js","output":"doxa-maps/all-people-groups/all-people-groups.js","integrity":"sha384-wDwlEPqFMo1DGCSAZQqHdBUM9OKTByNW1wSZPNu5auSubOuSBz4eHR4CIf0uvglf","elements":["all-people-groups"],"profiles":[{"profile":"all-people-groups","file":"all-people-groups.vue","description":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","element":"all-people-groups","type":"single","isMap":true,"iframeUrl":"./all-people-groups/all-people-groups/index.html","scriptUrl":"./all-people-groups/all-people-groups.js","embed":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-wDwlEPqFMo1DGCSAZQqHdBUM9OKTByNW1wSZPNu5auSubOuSBz4eHR4CIf0uvglf\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"},"bundle":"all-people-groups"}]},{"bundle":"big-picture","scriptUrl":"./big-picture/big-picture.js","output":"doxa-maps/big-picture/big-picture.js","integrity":"sha384-Rht3EoXP3Ckvwn2fauBsh9BvcUJiFzMb49udbtOh34wbKLdHQ+RQcFGR8fdHdF2t","elements":["bp-big-picture","bp-research-header","people-groups-grid"],"composes":["bp-research-header","people-groups-grid"],"profiles":[{"profile":"big-picture","file":"big-picture.vue","description":"The Cat-4 composite that PAIRS the two real capability elements of the","element":"bp-big-picture","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./big-picture/big-picture/index.html","scriptUrl":"./big-picture/big-picture.js","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-Rht3EoXP3Ckvwn2fauBsh9BvcUJiFzMb49udbtOh34wbKLdHQ+RQcFGR8fdHdF2t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"instances":[{"id":"big-picture","title":"Big Picture — research header ↔ people-groups grid (composite)","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/big-picture/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Big Picture — frontier accent","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"big-picture"}]},{"bundle":"cities-internet","scriptUrl":"./cities-internet/cities-internet.js","output":"doxa-maps/cities-internet/cities-internet.js","integrity":"sha384-6fIHN70s7zCZSxNP27fS3sY8MJdnOMxbXIbA2u702oQDcSNVNCNLELEESMAXGY2t","elements":["cities-internet-map"],"profiles":[{"profile":"connectivity-list","file":"connectivity-list.vue","description":"Countries where DX people groups live, grouped by region, showing measured internet penetration","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/connectivity-list/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-6fIHN70s7zCZSxNP27fS3sY8MJdnOMxbXIbA2u702oQDcSNVNCNLELEESMAXGY2t\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"connectivity-map","file":"connectivity-map.vue","description":"Every country shaded by measured internet penetration, with its named carriers and dominant","element":"cities-internet-map","type":"single","isMap":true,"iframeUrl":"./cities-internet/connectivity-map/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-6fIHN70s7zCZSxNP27fS3sY8MJdnOMxbXIbA2u702oQDcSNVNCNLELEESMAXGY2t\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/data-tables/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-6fIHN70s7zCZSxNP27fS3sY8MJdnOMxbXIbA2u702oQDcSNVNCNLELEESMAXGY2t\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-ravBExKROrutu+/bYRm5G3kIoOytPz3YdQToKRUpUPpKE2n6i/vAZjpxK4jTY4y6","elements":["country-posters-map"],"composes":["country-posters/country-poster-wall","country-posters/countries-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"The researcher's workbench retargeted from people groups to COUNTRIES — region","element":"country-posters-map","type":"single","isMap":true,"iframeUrl":"./country-posters/countries-map/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-ravBExKROrutu+/bYRm5G3kIoOytPz3YdQToKRUpUPpKE2n6i/vAZjpxK4jTY4y6\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","element":"country-posters-map","type":"single","isMap":false,"iframeUrl":"./country-posters/country-poster-wall/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-ravBExKROrutu+/bYRm5G3kIoOytPz3YdQToKRUpUPpKE2n6i/vAZjpxK4jTY4y6\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"profile":"country-posters-mfe","file":"country-posters-mfe.vue","description":"Country Posters as ONE two-tab element — the countries map and the printable","element":"country-posters-mfe","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./country-posters/country-posters-mfe/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-posters-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-ravBExKROrutu+/bYRm5G3kIoOytPz3YdQToKRUpUPpKE2n6i/vAZjpxK4jTY4y6\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"bundle":"dashboard-plus-grid","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","output":"doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js","integrity":"sha384-xR8W+FnaWZ8B5JzTbivTfMcMU5zTtpHKyMTXKMDzLMO3Pwi/XKR9INs1pib1YVjj","elements":["dashboard-plus-grid"],"composes":["research-dashboard","people-groups-grid"],"profiles":[{"profile":"dashboard-plus-grid","file":"dashboard-plus-grid.vue","description":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","element":"dashboard-plus-grid","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/index.html","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-xR8W+FnaWZ8B5JzTbivTfMcMU5zTtpHKyMTXKMDzLMO3Pwi/XKR9INs1pib1YVjj\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"dashboard-plus-grid"},"element":"dashboard-plus-grid","iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-0VOyHD7/UL3X96Pa5likzNFFiT+mfQnRg2+pZmbF753yd5g/84z1gOzYhn1NSgKa","elements":["demo-map"],"profiles":[{"profile":"demo-map","file":"demo-map.vue","description":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","element":"demo-map","type":"parameterized","isMap":true,"iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-0VOyHD7/UL3X96Pa5likzNFFiT+mfQnRg2+pZmbF753yd5g/84z1gOzYhn1NSgKa\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"instances":[{"id":"maplibre","title":"Demo map — MapLibre (token-free)","apiBaseUrl":"","props":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"element":"demo-map","iframeUrl":"./demo-map/demo-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]},{"bundle":"doxa-maps-spa","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","output":"doxa-maps/doxa-maps-spa/doxa-maps-spa.js","integrity":"sha384-Q8rOxEI1qbhEU4RKp1N3wmH990IPGT+AVCkNoSplZOxD+gqvBP1a4gD4TX+7xR40","elements":["doxa-maps-spa"],"composes":["dashboard-plus-grid/dashboard-plus-grid","research-map-plus-grid/research-map-plus-grid","regions-dashboard/regions-mfe","my-upg-100-list/upg-100-mfe","doxa-simple-map/doxa-simple-map","cities-internet/connectivity-map","gospel-resources/resources-map"],"profiles":[{"profile":"doxa-maps-spa","file":"doxa-maps-spa.vue","description":"The DX-maps app itself: one element whose vertical-tab rail nests every other","element":"doxa-maps-spa","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./doxa-maps-spa/doxa-maps-spa/index.html","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-Q8rOxEI1qbhEU4RKp1N3wmH990IPGT+AVCkNoSplZOxD+gqvBP1a4gD4TX+7xR40\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"instances":[{"id":"app","title":"Research Gallery — Big Picture + every research map (app-shell)","apiBaseUrl":"","props":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"Research Gallery"},"element":"doxa-maps-spa","iframeUrl":"./doxa-maps-spa/doxa-maps-spa/app/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/app/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-l7WPcwmMNqyZxsDXwovUycSoXZdc+8nni4CN+vr8C6ppcug2fdbvG2W8p+FlomRO","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"The researcher's workbench: every piece a missiologist, demographer or","element":"doxa-research-map","type":"monolithic","isMap":true,"iframeUrl":"./doxa-research-map/research-map/index.html","scriptUrl":"./doxa-research-map/doxa-research-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-l7WPcwmMNqyZxsDXwovUycSoXZdc+8nni4CN+vr8C6ppcug2fdbvG2W8p+FlomRO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"},"instances":[{"id":"maplibre","title":"Research map — MapLibre (token-free, no search bar)","apiBaseUrl":"","props":{"profile":"research-map","provider":"maplibre","instanceId":"research-map-maplibre"},"element":"doxa-research-map","iframeUrl":"./doxa-research-map/research-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-9zRii7R8qYNcQie5wWdj4FOyXxc4f05gn8QvF6ynAs6OakpTBmEXxblDPyd4EUaD","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"The simple world map, shipped as three presets off ONE prop table —","element":"doxa-map","type":"parameterized","isMap":true,"iframeUrl":"./doxa-simple-map/doxa-simple-map/index.html","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-9zRii7R8qYNcQie5wWdj4FOyXxc4f05gn8QvF6ynAs6OakpTBmEXxblDPyd4EUaD\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"instances":[{"id":"prayer","title":"Prayer Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/prayer/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/prayer/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"engagement","title":"Engagement Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/engagement/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/engagement/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"adoption","title":"Adoption Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/adoption/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/adoption/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-vision-card","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","output":"doxa-maps/doxa-vision-card/doxa-vision-card.js","integrity":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","elements":["doxa-vision-card"],"profiles":[{"profile":"doxa-vision-card","file":"doxa-vision-card.vue","description":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","element":"doxa-vision-card","type":"parameterized","isMap":false,"iframeUrl":"./doxa-vision-card/doxa-vision-card/index.html","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"instances":[{"id":"default","title":"Vision card — reach at a glance","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/default/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Vision card — frontier accent","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"doxa-vision-card"}]},{"bundle":"golden-path-check","scriptUrl":"./golden-path-check/golden-path-check.js","output":"doxa-maps/golden-path-check/golden-path-check.js","integrity":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","elements":["golden-path-check"],"profiles":[{"profile":"golden-path-check","file":"golden-path-check.vue","description":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","element":"golden-path-check","type":"single","isMap":false,"iframeUrl":"./golden-path-check/golden-path-check/index.html","scriptUrl":"./golden-path-check/golden-path-check.js","embed":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"bundle":"gospel-resources","scriptUrl":"./gospel-resources/gospel-resources.js","output":"doxa-maps/gospel-resources/gospel-resources.js","integrity":"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy","elements":["gospel-resources-map"],"composes":["resources-map","data-tables"],"profiles":[{"profile":"charts","file":"charts.vue","description":"The gap measured by LANGUAGE (ISO 639-3) rather than by people group, because one translation serves every group that speaks it, so counting by group overstates how much work remains.","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/charts/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Eleven tables covering both halves of one question: every gospel resource with its real URL and how much Scripture it is, and the 1,613 people groups where nothing was found with the pools searched recorded per row, plus translation priority, bridge languages, city bridges, the deaf gap and access against population growth.","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/data-tables/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"gospel-dashboard","file":"gospel-dashboard.vue","description":"The gospel map and its tables as one scrolling element: 12,379 people-group pins with the real Scripture, film and Bible-story links for each group's own language, above every resource with its URL and the 1,613 groups where nothing was found, exportable as CSV.","element":"gospel-resources-map","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./gospel-resources/gospel-dashboard/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-list","file":"resources-list.vue","description":"Which people groups have Scripture in their own language and which have none, zero-resource languages first, with every link the verification pass proved and Open Bible Stories labelled as stories rather than as Scripture.","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/resources-list/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-map","file":"resources-map.vue","description":"12,379 people-group pins over a country choropleth: tap a pin for the Scripture, audio, film, Bible-story and training links that exist in that group's own language with real URLs, tap a country for every group in it, search by group, language or ISO 639-3 code, and filter to the groups where nothing was found.","element":"gospel-resources-map","type":"single","isMap":true,"iframeUrl":"./gospel-resources/resources-map/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"bundle":"my-upg-100-list","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","output":"doxa-maps/my-upg-100-list/my-upg-100-list.js","integrity":"sha384-mb0a3w3W6EiyAv5tQ6SpKpEbigF2HIArUes+z4SG2uobtD+siUkdkTLvBAzqSidO","elements":["my-upg-100-list-map"],"composes":["my-upg-100-list/upg-100-list","my-upg-100-list/poster-wall"],"profiles":[{"profile":"poster-wall","file":"poster-wall.vue","description":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\"","element":"my-upg-100-list-map","type":"single","isMap":false,"iframeUrl":"./my-upg-100-list/poster-wall/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-mb0a3w3W6EiyAv5tQ6SpKpEbigF2HIArUes+z4SG2uobtD+siUkdkTLvBAzqSidO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-list","file":"upg-100-list.vue","description":"A personal unreached-people-groups list painted as true boundary polygons —","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-list/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-mb0a3w3W6EiyAv5tQ6SpKpEbigF2HIArUes+z4SG2uobtD+siUkdkTLvBAzqSidO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-mfe","file":"upg-100-mfe.vue","description":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","element":"my-upg-100-list-map","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-mfe/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-mb0a3w3W6EiyAv5tQ6SpKpEbigF2HIArUes+z4SG2uobtD+siUkdkTLvBAzqSidO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"bundle":"people-groups-grid","scriptUrl":"./people-groups-grid/people-groups-grid.js","output":"doxa-maps/people-groups-grid/people-groups-grid.js","integrity":"sha384-mQozY8qX1qTuBYlf/oD5iWLT4voyWxe7zJrzN+zHV8FMRxajsQwPRlkl8mBU71YI","elements":["people-groups-grid"],"profiles":[{"profile":"people-groups-grid","file":"people-groups-grid.vue","description":"The people-groups grid as an owned custom element: card list, search and four","element":"people-groups-grid","type":"parameterized","isMap":false,"iframeUrl":"./people-groups-grid/people-groups-grid/index.html","scriptUrl":"./people-groups-grid/people-groups-grid.js","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-mQozY8qX1qTuBYlf/oD5iWLT4voyWxe7zJrzN+zHV8FMRxajsQwPRlkl8mBU71YI\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"instances":[{"id":"people-groups-grid","title":"People Groups Grid — standalone (own search + 4 dropdowns)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"driven","title":"People Groups Grid — externally driven (controls off, props/events)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/driven/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/driven/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"plugin-studio","scriptUrl":"./plugin-studio/plugin-studio.js","output":"doxa-maps/plugin-studio/plugin-studio.js","integrity":"sha384-ueMdhH+oGiRQsFSZcddK14WPENJ18oi4hSEwzK8pZNNvHCRoVyXyJGzgsJr0sMPG","elements":["plugin-studio"],"composes":["dashboard-plus-grid","people-groups-grid","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-vision-card","all-people-groups","research-dashboard"],"profiles":[{"profile":"plugin-studio","file":"plugin-studio.vue","description":"The developer's viewing surface: a sidebar that is the composability ladder","element":"plugin-studio","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./plugin-studio/plugin-studio/index.html","scriptUrl":"./plugin-studio/plugin-studio.js","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-ueMdhH+oGiRQsFSZcddK14WPENJ18oi4hSEwzK8pZNNvHCRoVyXyJGzgsJr0sMPG\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"instances":[{"id":"studio","title":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","apiBaseUrl":"","props":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"element":"plugin-studio","iframeUrl":"./plugin-studio/plugin-studio/studio/index.html","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"prayer-walk-planner","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","output":"doxa-maps/prayer-walk-planner/prayer-walk-planner.js","integrity":"sha384-VZxxlIqmR6mKdB1Dx6143LxEyI3POl9ks045yApFu4M4ZlLxsRH3+dCdEMpJb2Vw","elements":["prayer-walk-planner"],"profiles":[{"profile":"prayer-walk-planner","file":"prayer-walk-planner.vue","description":"A simple polygon-drawing tool for planning prayer-walking routes.","element":"prayer-walk-planner","type":"single","isMap":true,"iframeUrl":"./prayer-walk-planner/prayer-walk-planner/index.html","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","embed":{"iframe":"\u003ciframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-VZxxlIqmR6mKdB1Dx6143LxEyI3POl9ks045yApFu4M4ZlLxsRH3+dCdEMpJb2Vw\" crossorigin=\"anonymous\">\u003c/script>\n\u003cprayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/prayer-walk-planner>"}}]},{"bundle":"regions-dashboard","scriptUrl":"./regions-dashboard/regions-dashboard.js","output":"doxa-maps/regions-dashboard/regions-dashboard.js","integrity":"sha384-1bDMEUBlEnX3snypPE6DcJnVvxUo3LDCrqnuXyGqAr9iUm7hjNurlCuD63fEbsN3","elements":["regions-dashboard"],"composes":["regions-dashboard/regions-list","regions-dashboard/region-dashboards"],"profiles":[{"profile":"region-dashboards","file":"region-dashboards.vue","description":"The dashboard half of the Driver's 2-tab Regions element: given a region (or a","element":"regions-dashboard","type":"single","isMap":true,"iframeUrl":"./regions-dashboard/region-dashboards/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-1bDMEUBlEnX3snypPE6DcJnVvxUo3LDCrqnuXyGqAr9iUm7hjNurlCuD63fEbsN3\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-list","file":"regions-list.vue","description":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","element":"regions-dashboard","type":"single","isMap":true,"iframeUrl":"./regions-dashboard/regions-list/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-1bDMEUBlEnX3snypPE6DcJnVvxUo3LDCrqnuXyGqAr9iUm7hjNurlCuD63fEbsN3\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-mfe","file":"regions-mfe.vue","description":"The composite the Driver asked for: ONE element carrying the SELECT VIEW switcher","element":"regions-dashboard","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./regions-dashboard/regions-mfe/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-1bDMEUBlEnX3snypPE6DcJnVvxUo3LDCrqnuXyGqAr9iUm7hjNurlCuD63fEbsN3\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}}]},{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-WPEO/mTnyzh9q/ugpVcITzOMSb/eyKbgEekG6xyvtQ12NjTfq+VXNAqB0VIKCXmy","elements":["research-dashboard-map"],"profiles":[{"profile":"research-dashboard","file":"research-dashboard.vue","description":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","element":"research-dashboard-map","type":"monolithic","isMap":true,"iframeUrl":"./research-dashboard/research-dashboard/index.html","scriptUrl":"./research-dashboard/research-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-WPEO/mTnyzh9q/ugpVcITzOMSb/eyKbgEekG6xyvtQ12NjTfq+VXNAqB0VIKCXmy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]},{"bundle":"research-map-plus-grid","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","output":"doxa-maps/research-map-plus-grid/research-map-plus-grid.js","integrity":"sha384-LQYR+uASPJFjo/VTpIpAVxUv+O5KrgBqfOFYOcOi0ZmIvtwcjWTZV4AjAr2ewc7Z","elements":["research-map-plus-grid"],"composes":["doxa-research-map","people-groups-grid"],"profiles":[{"profile":"research-map-plus-grid","file":"research-map-plus-grid.vue","description":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","element":"research-map-plus-grid","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./research-map-plus-grid/research-map-plus-grid/index.html","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-LQYR+uASPJFjo/VTpIpAVxUv+O5KrgBqfOFYOcOi0ZmIvtwcjWTZV4AjAr2ewc7Z\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"research-map-plus-grid"},"element":"research-map-plus-grid","iframeUrl":"./research-map-plus-grid/research-map-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"stack-demo","scriptUrl":"./stack-demo/stack-demo.js","output":"doxa-maps/stack-demo/stack-demo.js","integrity":"sha384-EI3V6JX9ws4fGxKBzMOgwhG5de8MvL6va3zqmB2gTXecd/m0mxNq8eUht/SGzH1B","elements":["stack-demo"],"composes":["research-dashboard-map","people-groups-grid"],"profiles":[{"profile":"stack-demo","file":"stack-demo.vue","description":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","element":"stack-demo","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./stack-demo/stack-demo/index.html","scriptUrl":"./stack-demo/stack-demo.js","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-EI3V6JX9ws4fGxKBzMOgwhG5de8MvL6va3zqmB2gTXecd/m0mxNq8eUht/SGzH1B\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"instances":[{"id":"pair","title":"pair","apiBaseUrl":"","props":{"profile":"stack-demo"},"element":"stack-demo","iframeUrl":"./stack-demo/stack-demo/pair/index.html","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/pair/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"upg-neighbor","scriptUrl":"./upg-neighbor/upg-neighbor.js","output":"doxa-maps/upg-neighbor/upg-neighbor.js","integrity":"sha384-DVRFKBN7t+UQTjSwHz1FGzDSfgNRBA3e6WAeKCNn/9CUnzAtibMa1UG3X0Xqe7C/","elements":["upg-neighbor"],"profiles":[{"profile":"upg-neighbor","file":"upg-neighbor.vue","description":"Who goes to whom: reached neighbors matched to unreached people groups, five lenses","element":"upg-neighbor","type":"monolithic","isMap":true,"iframeUrl":"./upg-neighbor/upg-neighbor/index.html","scriptUrl":"./upg-neighbor/upg-neighbor.js","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-DVRFKBN7t+UQTjSwHz1FGzDSfgNRBA3e6WAeKCNn/9CUnzAtibMa1UG3X0Xqe7C/\" crossorigin=\"anonymous\">\u003c/script>\n\u003cupg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/upg-neighbor>"},"instances":[{"id":"send-map","title":"Send Map","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"send-map"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/send-map/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/send-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"upg-neighbors","title":"UPG Neighbors","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"cockpit"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/upg-neighbors/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/upg-neighbors/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"lang-cluster","title":"Language Clusters","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"lang-cluster"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/lang-cluster/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/lang-cluster/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"bloom-cockpit","title":"Bloom Cockpit","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"cockpit"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/bloom-cockpit/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/bloom-cockpit/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"flower-mesh","title":"Flower Mesh","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"flower-mesh"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/flower-mesh/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/flower-mesh/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"upg-neighbor"}]}]}; \n\n" + "script": "\n\n" }, "instances": [ { From e13a8dca05e402e13a67a79f2156b06722498c0b Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Fri, 25 Sep 2026 05:49:02 +0000 Subject: [PATCH 2/2] Rebuild the Research Gallery against merged main and regenerate the tree --- public/doxa-maps/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/doxa-maps/index.html b/public/doxa-maps/index.html index ff1ba4fa9..31f418bdd 100644 --- a/public/doxa-maps/index.html +++ b/public/doxa-maps/index.html @@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut) + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":21,"profileCount":33,"runtime":{"apiBaseUrl":"https://pray.doxa.life","token":"pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ"},"bundles":[{"bundle":"all-people-groups","scriptUrl":"./all-people-groups/all-people-groups.js","output":"doxa-maps/all-people-groups/all-people-groups.js","integrity":"sha384-PdhYGEpsIkZqdmz3j4UfWv2MyK9z2BT5xs1vDu1DxLCMifYoUe2iZWy7evMgsYox","elements":["all-people-groups"],"profiles":[{"profile":"all-people-groups","file":"all-people-groups.vue","description":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","element":"all-people-groups","type":"single","isMap":true,"iframeUrl":"./all-people-groups/all-people-groups/index.html","scriptUrl":"./all-people-groups/all-people-groups.js","embed":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-PdhYGEpsIkZqdmz3j4UfWv2MyK9z2BT5xs1vDu1DxLCMifYoUe2iZWy7evMgsYox\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"},"bundle":"all-people-groups"}]},{"bundle":"big-picture","scriptUrl":"./big-picture/big-picture.js","output":"doxa-maps/big-picture/big-picture.js","integrity":"sha384-Rht3EoXP3Ckvwn2fauBsh9BvcUJiFzMb49udbtOh34wbKLdHQ+RQcFGR8fdHdF2t","elements":["bp-big-picture","bp-research-header","people-groups-grid"],"composes":["bp-research-header","people-groups-grid"],"profiles":[{"profile":"big-picture","file":"big-picture.vue","description":"The Cat-4 composite that PAIRS the two real capability elements of the","element":"bp-big-picture","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./big-picture/big-picture/index.html","scriptUrl":"./big-picture/big-picture.js","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-Rht3EoXP3Ckvwn2fauBsh9BvcUJiFzMb49udbtOh34wbKLdHQ+RQcFGR8fdHdF2t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"instances":[{"id":"big-picture","title":"Big Picture — research header ↔ people-groups grid (composite)","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/big-picture/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Big Picture — frontier accent","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"big-picture"}]},{"bundle":"cities-internet","scriptUrl":"./cities-internet/cities-internet.js","output":"doxa-maps/cities-internet/cities-internet.js","integrity":"sha384-rvaIXZcg4jjrxN6XHCvdI+DHoyZA0t2kiYyAThKirIGfpKM2qiFvvXKkEct/FLa3","elements":["cities-internet-map"],"profiles":[{"profile":"connectivity-list","file":"connectivity-list.vue","description":"Countries where DX people groups live, grouped by region, showing measured internet penetration","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/connectivity-list/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-rvaIXZcg4jjrxN6XHCvdI+DHoyZA0t2kiYyAThKirIGfpKM2qiFvvXKkEct/FLa3\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"connectivity-map","file":"connectivity-map.vue","description":"Every country shaded by measured internet penetration, with its named carriers and dominant","element":"cities-internet-map","type":"single","isMap":true,"iframeUrl":"./cities-internet/connectivity-map/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-rvaIXZcg4jjrxN6XHCvdI+DHoyZA0t2kiYyAThKirIGfpKM2qiFvvXKkEct/FLa3\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/data-tables/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-rvaIXZcg4jjrxN6XHCvdI+DHoyZA0t2kiYyAThKirIGfpKM2qiFvvXKkEct/FLa3\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-6PSlxRP/ynCYdIok9lAK3bGEIDK0a3C0hhlpHMESie08POUhrmR+D1FyVoIdpl/S","elements":["country-posters-map"],"composes":["country-posters/country-poster-wall","country-posters/countries-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"The researcher's workbench retargeted from people groups to COUNTRIES — region","element":"country-posters-map","type":"single","isMap":true,"iframeUrl":"./country-posters/countries-map/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-6PSlxRP/ynCYdIok9lAK3bGEIDK0a3C0hhlpHMESie08POUhrmR+D1FyVoIdpl/S\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","element":"country-posters-map","type":"single","isMap":false,"iframeUrl":"./country-posters/country-poster-wall/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-6PSlxRP/ynCYdIok9lAK3bGEIDK0a3C0hhlpHMESie08POUhrmR+D1FyVoIdpl/S\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"profile":"country-posters-mfe","file":"country-posters-mfe.vue","description":"Country Posters as ONE two-tab element — the countries map and the printable","element":"country-posters-mfe","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./country-posters/country-posters-mfe/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-posters-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-6PSlxRP/ynCYdIok9lAK3bGEIDK0a3C0hhlpHMESie08POUhrmR+D1FyVoIdpl/S\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"bundle":"dashboard-plus-grid","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","output":"doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js","integrity":"sha384-xR8W+FnaWZ8B5JzTbivTfMcMU5zTtpHKyMTXKMDzLMO3Pwi/XKR9INs1pib1YVjj","elements":["dashboard-plus-grid"],"composes":["research-dashboard","people-groups-grid"],"profiles":[{"profile":"dashboard-plus-grid","file":"dashboard-plus-grid.vue","description":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","element":"dashboard-plus-grid","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/index.html","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-xR8W+FnaWZ8B5JzTbivTfMcMU5zTtpHKyMTXKMDzLMO3Pwi/XKR9INs1pib1YVjj\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"dashboard-plus-grid"},"element":"dashboard-plus-grid","iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-3+0MJQUzG3zH9+mRTDaxHIfhyfjq8aiUNdKWETsBGqaz4+yUA0xtE1oxAX1I10aQ","elements":["demo-map"],"profiles":[{"profile":"demo-map","file":"demo-map.vue","description":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","element":"demo-map","type":"parameterized","isMap":true,"iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-3+0MJQUzG3zH9+mRTDaxHIfhyfjq8aiUNdKWETsBGqaz4+yUA0xtE1oxAX1I10aQ\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"instances":[{"id":"maplibre","title":"Demo map — MapLibre (token-free)","apiBaseUrl":"","props":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"element":"demo-map","iframeUrl":"./demo-map/demo-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]},{"bundle":"doxa-maps-spa","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","output":"doxa-maps/doxa-maps-spa/doxa-maps-spa.js","integrity":"sha384-Q8rOxEI1qbhEU4RKp1N3wmH990IPGT+AVCkNoSplZOxD+gqvBP1a4gD4TX+7xR40","elements":["doxa-maps-spa"],"composes":["dashboard-plus-grid/dashboard-plus-grid","research-map-plus-grid/research-map-plus-grid","regions-dashboard/regions-mfe","my-upg-100-list/upg-100-mfe","doxa-simple-map/doxa-simple-map","cities-internet/connectivity-map","gospel-resources/resources-map"],"profiles":[{"profile":"doxa-maps-spa","file":"doxa-maps-spa.vue","description":"The DX-maps app itself: one element whose vertical-tab rail nests every other","element":"doxa-maps-spa","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./doxa-maps-spa/doxa-maps-spa/index.html","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-Q8rOxEI1qbhEU4RKp1N3wmH990IPGT+AVCkNoSplZOxD+gqvBP1a4gD4TX+7xR40\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"instances":[{"id":"app","title":"Research Gallery — Big Picture + every research map (app-shell)","apiBaseUrl":"","props":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"Research Gallery"},"element":"doxa-maps-spa","iframeUrl":"./doxa-maps-spa/doxa-maps-spa/app/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/app/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-l7WPcwmMNqyZxsDXwovUycSoXZdc+8nni4CN+vr8C6ppcug2fdbvG2W8p+FlomRO","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"The researcher's workbench: every piece a missiologist, demographer or","element":"doxa-research-map","type":"monolithic","isMap":true,"iframeUrl":"./doxa-research-map/research-map/index.html","scriptUrl":"./doxa-research-map/doxa-research-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-l7WPcwmMNqyZxsDXwovUycSoXZdc+8nni4CN+vr8C6ppcug2fdbvG2W8p+FlomRO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"},"instances":[{"id":"maplibre","title":"Research map — MapLibre (token-free, no search bar)","apiBaseUrl":"","props":{"profile":"research-map","provider":"maplibre","instanceId":"research-map-maplibre"},"element":"doxa-research-map","iframeUrl":"./doxa-research-map/research-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-OMLEhQZDOxDlsePrZj3SUJD9kGm2HXF8B/C+nmKtgB+cc4KGKZtYkFMxAXf/hyum","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"The simple world map, shipped as three presets off ONE prop table —","element":"doxa-map","type":"parameterized","isMap":true,"iframeUrl":"./doxa-simple-map/doxa-simple-map/index.html","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-OMLEhQZDOxDlsePrZj3SUJD9kGm2HXF8B/C+nmKtgB+cc4KGKZtYkFMxAXf/hyum\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"instances":[{"id":"prayer","title":"Prayer Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/prayer/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/prayer/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"engagement","title":"Engagement Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/engagement/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/engagement/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"adoption","title":"Adoption Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/adoption/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/adoption/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-vision-card","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","output":"doxa-maps/doxa-vision-card/doxa-vision-card.js","integrity":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","elements":["doxa-vision-card"],"profiles":[{"profile":"doxa-vision-card","file":"doxa-vision-card.vue","description":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","element":"doxa-vision-card","type":"parameterized","isMap":false,"iframeUrl":"./doxa-vision-card/doxa-vision-card/index.html","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"instances":[{"id":"default","title":"Vision card — reach at a glance","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/default/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Vision card — frontier accent","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"doxa-vision-card"}]},{"bundle":"golden-path-check","scriptUrl":"./golden-path-check/golden-path-check.js","output":"doxa-maps/golden-path-check/golden-path-check.js","integrity":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","elements":["golden-path-check"],"profiles":[{"profile":"golden-path-check","file":"golden-path-check.vue","description":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","element":"golden-path-check","type":"single","isMap":false,"iframeUrl":"./golden-path-check/golden-path-check/index.html","scriptUrl":"./golden-path-check/golden-path-check.js","embed":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"bundle":"gospel-resources","scriptUrl":"./gospel-resources/gospel-resources.js","output":"doxa-maps/gospel-resources/gospel-resources.js","integrity":"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy","elements":["gospel-resources-map"],"composes":["resources-map","data-tables"],"profiles":[{"profile":"charts","file":"charts.vue","description":"The gap measured by LANGUAGE (ISO 639-3) rather than by people group, because one translation serves every group that speaks it, so counting by group overstates how much work remains.","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/charts/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Eleven tables covering both halves of one question: every gospel resource with its real URL and how much Scripture it is, and the 1,613 people groups where nothing was found with the pools searched recorded per row, plus translation priority, bridge languages, city bridges, the deaf gap and access against population growth.","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/data-tables/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"gospel-dashboard","file":"gospel-dashboard.vue","description":"The gospel map and its tables as one scrolling element: 12,379 people-group pins with the real Scripture, film and Bible-story links for each group's own language, above every resource with its URL and the 1,613 groups where nothing was found, exportable as CSV.","element":"gospel-resources-map","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./gospel-resources/gospel-dashboard/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-list","file":"resources-list.vue","description":"Which people groups have Scripture in their own language and which have none, zero-resource languages first, with every link the verification pass proved and Open Bible Stories labelled as stories rather than as Scripture.","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/resources-list/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-map","file":"resources-map.vue","description":"12,379 people-group pins over a country choropleth: tap a pin for the Scripture, audio, film, Bible-story and training links that exist in that group's own language with real URLs, tap a country for every group in it, search by group, language or ISO 639-3 code, and filter to the groups where nothing was found.","element":"gospel-resources-map","type":"single","isMap":true,"iframeUrl":"./gospel-resources/resources-map/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wIFvK6NOI8f5EHK6oloy1ozDFcOTHlqzpRzTODdmRWesLcT463c0ZNu4o3sZDPwy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"bundle":"my-upg-100-list","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","output":"doxa-maps/my-upg-100-list/my-upg-100-list.js","integrity":"sha384-mb0a3w3W6EiyAv5tQ6SpKpEbigF2HIArUes+z4SG2uobtD+siUkdkTLvBAzqSidO","elements":["my-upg-100-list-map"],"composes":["my-upg-100-list/upg-100-list","my-upg-100-list/poster-wall"],"profiles":[{"profile":"poster-wall","file":"poster-wall.vue","description":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\"","element":"my-upg-100-list-map","type":"single","isMap":false,"iframeUrl":"./my-upg-100-list/poster-wall/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-mb0a3w3W6EiyAv5tQ6SpKpEbigF2HIArUes+z4SG2uobtD+siUkdkTLvBAzqSidO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-list","file":"upg-100-list.vue","description":"A personal unreached-people-groups list painted as true boundary polygons —","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-list/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-mb0a3w3W6EiyAv5tQ6SpKpEbigF2HIArUes+z4SG2uobtD+siUkdkTLvBAzqSidO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-mfe","file":"upg-100-mfe.vue","description":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","element":"my-upg-100-list-map","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-mfe/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-mb0a3w3W6EiyAv5tQ6SpKpEbigF2HIArUes+z4SG2uobtD+siUkdkTLvBAzqSidO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"bundle":"people-groups-grid","scriptUrl":"./people-groups-grid/people-groups-grid.js","output":"doxa-maps/people-groups-grid/people-groups-grid.js","integrity":"sha384-mQozY8qX1qTuBYlf/oD5iWLT4voyWxe7zJrzN+zHV8FMRxajsQwPRlkl8mBU71YI","elements":["people-groups-grid"],"profiles":[{"profile":"people-groups-grid","file":"people-groups-grid.vue","description":"The people-groups grid as an owned custom element: card list, search and four","element":"people-groups-grid","type":"parameterized","isMap":false,"iframeUrl":"./people-groups-grid/people-groups-grid/index.html","scriptUrl":"./people-groups-grid/people-groups-grid.js","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-mQozY8qX1qTuBYlf/oD5iWLT4voyWxe7zJrzN+zHV8FMRxajsQwPRlkl8mBU71YI\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"instances":[{"id":"people-groups-grid","title":"People Groups Grid — standalone (own search + 4 dropdowns)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"driven","title":"People Groups Grid — externally driven (controls off, props/events)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/driven/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/driven/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"plugin-studio","scriptUrl":"./plugin-studio/plugin-studio.js","output":"doxa-maps/plugin-studio/plugin-studio.js","integrity":"sha384-DTUETyh+95ghbYzOcakvROpBpZFeQhneM1onwIHygT/4b8ZmxosjOvGAaVJzc2Cd","elements":["plugin-studio"],"composes":["dashboard-plus-grid","people-groups-grid","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-vision-card","all-people-groups","research-dashboard"],"profiles":[{"profile":"plugin-studio","file":"plugin-studio.vue","description":"The developer's viewing surface: a sidebar that is the composability ladder","element":"plugin-studio","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./plugin-studio/plugin-studio/index.html","scriptUrl":"./plugin-studio/plugin-studio.js","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-DTUETyh+95ghbYzOcakvROpBpZFeQhneM1onwIHygT/4b8ZmxosjOvGAaVJzc2Cd\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"instances":[{"id":"studio","title":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","apiBaseUrl":"","props":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"element":"plugin-studio","iframeUrl":"./plugin-studio/plugin-studio/studio/index.html","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"prayer-walk-planner","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","output":"doxa-maps/prayer-walk-planner/prayer-walk-planner.js","integrity":"sha384-g8RKmjylw3TQzKJqlBQiVI5DXeUtPVPvWr6pzFDgOzn0GIYTytYB/vMKl3AjJbae","elements":["prayer-walk-planner"],"profiles":[{"profile":"prayer-walk-planner","file":"prayer-walk-planner.vue","description":"A simple polygon-drawing tool for planning prayer-walking routes.","element":"prayer-walk-planner","type":"single","isMap":true,"iframeUrl":"./prayer-walk-planner/prayer-walk-planner/index.html","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","embed":{"iframe":"\u003ciframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-g8RKmjylw3TQzKJqlBQiVI5DXeUtPVPvWr6pzFDgOzn0GIYTytYB/vMKl3AjJbae\" crossorigin=\"anonymous\">\u003c/script>\n\u003cprayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/prayer-walk-planner>"}}]},{"bundle":"regions-dashboard","scriptUrl":"./regions-dashboard/regions-dashboard.js","output":"doxa-maps/regions-dashboard/regions-dashboard.js","integrity":"sha384-loMRSunQDFyzu8MiF10LCkcUXriEGb12F3mHbCvVPLR3ayOyUgqERAimXn2fz2fZ","elements":["regions-dashboard"],"composes":["regions-dashboard/regions-list","regions-dashboard/region-dashboards"],"profiles":[{"profile":"region-dashboards","file":"region-dashboards.vue","description":"The dashboard half of the Driver's 2-tab Regions element: given a region (or a","element":"regions-dashboard","type":"single","isMap":true,"iframeUrl":"./regions-dashboard/region-dashboards/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-loMRSunQDFyzu8MiF10LCkcUXriEGb12F3mHbCvVPLR3ayOyUgqERAimXn2fz2fZ\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-list","file":"regions-list.vue","description":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","element":"regions-dashboard","type":"single","isMap":true,"iframeUrl":"./regions-dashboard/regions-list/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-loMRSunQDFyzu8MiF10LCkcUXriEGb12F3mHbCvVPLR3ayOyUgqERAimXn2fz2fZ\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-mfe","file":"regions-mfe.vue","description":"The composite the Driver asked for: ONE element carrying the SELECT VIEW switcher","element":"regions-dashboard","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./regions-dashboard/regions-mfe/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-loMRSunQDFyzu8MiF10LCkcUXriEGb12F3mHbCvVPLR3ayOyUgqERAimXn2fz2fZ\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}}]},{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-WPEO/mTnyzh9q/ugpVcITzOMSb/eyKbgEekG6xyvtQ12NjTfq+VXNAqB0VIKCXmy","elements":["research-dashboard-map"],"profiles":[{"profile":"research-dashboard","file":"research-dashboard.vue","description":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","element":"research-dashboard-map","type":"monolithic","isMap":true,"iframeUrl":"./research-dashboard/research-dashboard/index.html","scriptUrl":"./research-dashboard/research-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-WPEO/mTnyzh9q/ugpVcITzOMSb/eyKbgEekG6xyvtQ12NjTfq+VXNAqB0VIKCXmy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]},{"bundle":"research-map-plus-grid","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","output":"doxa-maps/research-map-plus-grid/research-map-plus-grid.js","integrity":"sha384-LQYR+uASPJFjo/VTpIpAVxUv+O5KrgBqfOFYOcOi0ZmIvtwcjWTZV4AjAr2ewc7Z","elements":["research-map-plus-grid"],"composes":["doxa-research-map","people-groups-grid"],"profiles":[{"profile":"research-map-plus-grid","file":"research-map-plus-grid.vue","description":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","element":"research-map-plus-grid","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./research-map-plus-grid/research-map-plus-grid/index.html","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-LQYR+uASPJFjo/VTpIpAVxUv+O5KrgBqfOFYOcOi0ZmIvtwcjWTZV4AjAr2ewc7Z\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"research-map-plus-grid"},"element":"research-map-plus-grid","iframeUrl":"./research-map-plus-grid/research-map-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"stack-demo","scriptUrl":"./stack-demo/stack-demo.js","output":"doxa-maps/stack-demo/stack-demo.js","integrity":"sha384-EI3V6JX9ws4fGxKBzMOgwhG5de8MvL6va3zqmB2gTXecd/m0mxNq8eUht/SGzH1B","elements":["stack-demo"],"composes":["research-dashboard-map","people-groups-grid"],"profiles":[{"profile":"stack-demo","file":"stack-demo.vue","description":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","element":"stack-demo","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./stack-demo/stack-demo/index.html","scriptUrl":"./stack-demo/stack-demo.js","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-EI3V6JX9ws4fGxKBzMOgwhG5de8MvL6va3zqmB2gTXecd/m0mxNq8eUht/SGzH1B\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"instances":[{"id":"pair","title":"pair","apiBaseUrl":"","props":{"profile":"stack-demo"},"element":"stack-demo","iframeUrl":"./stack-demo/stack-demo/pair/index.html","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/pair/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"upg-neighbor","scriptUrl":"./upg-neighbor/upg-neighbor.js","output":"doxa-maps/upg-neighbor/upg-neighbor.js","integrity":"sha384-sE35m8x3cE7I+dIJBRekLFr7/7C81p6ohDN/LpV6VjVKXkPaDKwtNj7Yt8f/hB+D","elements":["upg-neighbor"],"profiles":[{"profile":"upg-neighbor","file":"upg-neighbor.vue","description":"Who goes to whom: reached neighbors matched to unreached people groups, five lenses","element":"upg-neighbor","type":"monolithic","isMap":true,"iframeUrl":"./upg-neighbor/upg-neighbor/index.html","scriptUrl":"./upg-neighbor/upg-neighbor.js","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-sE35m8x3cE7I+dIJBRekLFr7/7C81p6ohDN/LpV6VjVKXkPaDKwtNj7Yt8f/hB+D\" crossorigin=\"anonymous\">\u003c/script>\n\u003cupg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/upg-neighbor>"},"instances":[{"id":"send-map","title":"Send Map","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"send-map"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/send-map/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/send-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"upg-neighbors","title":"UPG Neighbors","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"cockpit"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/upg-neighbors/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/upg-neighbors/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"lang-cluster","title":"Language Clusters","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"lang-cluster"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/lang-cluster/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/lang-cluster/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"bloom-cockpit","title":"Bloom Cockpit","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"cockpit"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/bloom-cockpit/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/bloom-cockpit/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"flower-mesh","title":"Flower Mesh","apiBaseUrl":"","props":{"profile":"upg-neighbor","view":"flower-mesh"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/flower-mesh/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/flower-mesh/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"upg-neighbor"}]}]};