From 443d2efdaa9274b3060654369cbd0fc7ee78b993 Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Fri, 2 Oct 2026 05:05:13 +0000 Subject: [PATCH] Rebuild doxa-maps-spa, plugin-studio and posterverse for the phone drawer fix, and regenerate the tree and SRI --- public/dx-maps/doxa-maps-spa/doxa-maps-spa.js | 2 +- .../doxa-maps-spa/doxa-maps-spa/app/index.html | 2 +- .../doxa-maps-spa/doxa-maps-spa/index.html | 2 +- public/dx-maps/doxa-maps-spa/manifest.json | 12 ++++++------ public/dx-maps/index.html | 2 +- public/dx-maps/manifest.json | 12 ++++++------ public/dx-maps/plugin-studio/plugin-studio.js | 2 +- .../plugin-studio/plugin-studio/index.html | 2 +- .../plugin-studio/studio/index.html | 2 +- public/dx-maps/posterverse/posterverse.js | 16 ++++++++-------- .../posterverse/posterverse/app/index.html | 2 +- .../dx-maps/posterverse/posterverse/index.html | 2 +- 12 files changed, 29 insertions(+), 29 deletions(-) diff --git a/public/dx-maps/doxa-maps-spa/doxa-maps-spa.js b/public/dx-maps/doxa-maps-spa/doxa-maps-spa.js index 70295a16c..94fa3f1ef 100644 --- a/public/dx-maps/doxa-maps-spa/doxa-maps-spa.js +++ b/public/dx-maps/doxa-maps-spa/doxa-maps-spa.js @@ -181,7 +181,7 @@ @media (prefers-reduced-motion: reduce) { .vtl-nav, .vtl-collapse-ic, .vtl-tab, .vtl-tier, .vtl-pbar, .vtl-phone-menu, .vtl-fab, .vtl-rail-end, .vtl-scrim { transition: none !important; animation: none !important; } } -`,Bm=ba({name:"VerticalTabsLayout",components:{BackToTopButton:ni},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},homeHref:{type:String,default:""},homeLabel:{type:String,default:""},shellMode:{type:String,default:"auto"}},emits:["update:active"],setup(){return ml(Vm,"vertical-tabs-layout"),{T:jm}},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{},hostEls:{},mode:"app"}},computed:{phoneBarShown(){return this.narrow&&!this.header&&this.mode==="app"},railEndShown(){return!this.narrow&&!this.header},fabShown(){return this.narrow&&!this.header&&this.mode==="web"&&!this.navOpen},drawerEndShown(){return this.narrow&&!this.header&&this.mode==="web"},activeHostEl(){return this.hostEls[this.active]||null},railShown(){return this.narrow?this.navOpen:!0},homeLink(){const e=String(this.homeHref||"").trim();return!e||/^(javascript|data|vbscript):/i.test(e.replace(/[\u0000- ]/g,""))?"":e},homeText(){return this.homeLabel||this.label("home")},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const a of t.rows||[])e.push(a);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:{shellMode(){this.resolveShellMode()},active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){this.resolveShellMode();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:{resolveShellMode(){const e=a=>a==="web"||a==="app"?a:null;let t=e(this.shellMode);if(!t)try{const a=this.$el&&this.$el.getRootNode?this.$el.getRootNode():null,o=a&&a.host;t=e(o&&o.getAttribute?o.getAttribute("shell-mode"):null)}catch{}if(!t)try{const a=window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches||navigator.standalone===!0;t=window.Capacitor||a||window.MAP_OWNS_PAGE===!0?"app":"web"}catch{t="app"}this.mode=t},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",home:"Back to homepage"};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(a=>a.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.$nextTick(()=>this.watchContextLoss(e)),this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},deepCanvases(e,t=[]){if(!e)return t;for(const a of e.querySelectorAll("*"))a.tagName==="CANVAS"&&t.push(a),a.shadowRoot&&this.deepCanvases(a.shadowRoot,t);return t},watchContextLoss(e){const t=this._hostSlots[e];if(t)for(const a of this.deepCanvases(t))a.__vtlLossBound||(a.__vtlLossBound=!0,a.addEventListener("webglcontextlost",()=>{this.hostState={...this.hostState,[e]:"lost"}},{once:!0}))},reloadHostElement(e){const t=this._hostSlots[e];t&&(t.innerHTML=""),this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"loading"},this.$nextTick(()=>this.mountHostElement(e))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(o=>o.key===e),a=this._hostSlots[e];!t||!a||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},Um(t.src).then(()=>Hm(t.element)).then(()=>{Rm(t.element,t.src),a.innerHTML="";const o=document.createElement(t.element),n=t.attrs||{};for(const s in n){const r=n[s],i=r!=null&&typeof r=="object"?JSON.stringify(r):String(r);try{o[s]=r}catch{}try{o.setAttribute(s,i)}catch{}}o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",a.appendChild(o);for(const s of[0,250,1500])setTimeout(()=>this.watchContextLoss(e),s);this.hostState={...this.hostState,[e]:"ready"}}).catch(o=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:o&&o.message||String(o)}}))},iconSvg(e){return e?hl(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],a=(this.groups||[]).find(n=>n.key===e),o=t??(a&&a.open===!0);this.folderOverride={...this.folderOverride,[e]:!o}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const a=t.indexOf(this.active);let o=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")o=(a+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")o=(a-1+t.length)%t.length;else if(e.key==="Home")o=0;else if(e.key==="End")o=t.length-1;else return;e.preventDefault();const n=t[o];this.pick(n),this.$nextTick(()=>{const s=this._tabEls[n];s&&s.focus&&s.focus()})}}}),Gm={key:0,class:"vtl-top"},Km=["aria-expanded","aria-label"],Xm={class:"vtl-brand"},Ym={class:"vtl-title"},Jm={class:"vtl-meta"},Zm={key:1,class:"vtl-pbar"},Qm=["aria-expanded","aria-label"],ef={class:"vtl-pbar-end"},tf=["aria-expanded","aria-label"],af={class:"vtl-body"},of=["aria-label","aria-hidden","role","aria-orientation"],nf=["href","aria-label","title"],sf=["innerHTML"],rf={class:"vtl-home-tx"},lf=["aria-expanded","aria-label"],cf=["innerHTML"],pf={class:"vtl-collapse-tx"},uf=["aria-expanded","onClick"],df={key:0,class:"vtl-cap"},gf={class:"vtl-tl"},mf={key:1,class:"vtl-td"},ff=["innerHTML"],hf={key:1,class:"vtl-tier"},bf={key:0,class:"vtl-cap"},$f={class:"vtl-tl"},_f={key:1,class:"vtl-td"},vf={class:"vtl-rows"},yf=["aria-selected","aria-disabled","tabindex","onClick"],wf=["innerHTML"],kf={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},xf={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Sf={class:"vtl-tab-text"},Lf={class:"vtl-tab-label"},Tf={key:0,class:"vtl-tab-badge"},Pf={key:0,class:"vtl-tab-sub"},Ef=["innerHTML"],Of=["aria-selected","aria-disabled","tabindex","onClick"],Mf=["innerHTML"],Af={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Cf={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},If={class:"vtl-tab-text"},Nf={class:"vtl-tab-label"},Ff={key:0,class:"vtl-tab-sub"},Df={key:4,class:"vtl-rail-end"},Rf={key:5,class:"vtl-rail-end vtl-drawer-end"},zf={class:"vtl-main"},qf={class:"vtl-content"},Wf=["hidden"],jf={key:0,class:"vtl-host-hint"},Uf={key:1,class:"vtl-host-hint"},Hf=["onClick"],Vf={key:2,class:"vtl-host-hint err"};function Bf(e,t,a,o,n,s){const r=za("BackToTopButton");return C(),I("div",{class:Ze(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header,"has-phone-bar":e.phoneBarShown}]),style:pa(e.fabShown?{"--map-fab-clearance":"calc(56px + env(safe-area-inset-bottom))","--map-fab-beside":"calc(56px + env(safe-area-inset-left))"}:null)},[e.header?(C(),I("header",Gm,[O("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=i=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Km),O("span",Xm,[Gt(e.$slots,"brand")]),O("b",Ym,G(e.title),1),O("span",Jm,[Gt(e.$slots,"meta")])])):se("",!0),e.phoneBarShown?(C(),I("div",Zm,[O("button",{class:"vtl-phone-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=i=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Qm),O("span",ef,[Gt(e.$slots,"phone-end")])])):se("",!0),e.fabShown?(C(),I("button",{key:2,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[2]||(t[2]=i=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,tf)):se("",!0),e.narrow?(C(),ya(r,{key:3,target:e.activeHostEl,labels:{backToTop:e.T("actions.backToTop","Back to top")}},null,8,["target","labels"])):se("",!0),O("div",af,[O("nav",{class:Ze(["vtl-nav",{"has-rail-end":e.railEndShown&&!!e.$slots["rail-end"]}]),"aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[e.homeLink?(C(),I("a",{key:0,class:"vtl-home",href:e.homeLink,target:"_top","aria-label":e.homeText,title:e.railCollapsed&&!e.narrow?e.homeText:null},[O("span",{class:"vtl-home-ic","aria-hidden":"true",innerHTML:e.iconSvg("home")},null,8,sf),O("span",rf,G(e.homeText),1)],8,nf)):se("",!0),O("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[3]||(t[3]=(...i)=>e.toggleRail&&e.toggleRail(...i))},[O("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,cf),O("span",pf,G(e.label("collapse")),1)],8,lf),e.$slots.rail?Gt(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,1):e.groups&&e.groups.length?(C(!0),I(ne,{key:2},Ke(e.groups,i=>(C(),I("div",{class:"vtl-grp",key:i.key},[i.folder?(C(),I("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(i)),onClick:l=>e.toggleFolder(i.key)},[i.badge?(C(),I("span",df,G(i.badge),1)):se("",!0),O("span",gf,G(i.label),1),i.count!=null?(C(),I("span",mf,G(i.count),1)):se("",!0),O("span",{class:Ze(["vtl-chev",{open:!e.isFolderClosed(i)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,ff)],8,uf)):(C(),I("div",hf,[i.badge?(C(),I("span",bf,G(i.badge),1)):se("",!0),O("span",$f,G(i.label),1),i.count!=null?(C(),I("span",_f,G(i.count),1)):se("",!0)])),Da(O("div",vf,[(C(!0),I(ne,null,Ke(i.rows,l=>(C(),I("button",{key:l.key,type:"button",role:"tab",class:Ze(["vtl-tab",{active:l.key===e.active,disabled:l.disabled}]),"aria-selected":String(l.key===e.active),"aria-disabled":l.disabled?"true":null,tabindex:l.key===e.active?0:-1,ref_for:!0,ref:p=>e.registerTab(l.key,p),onClick:p=>e.pick(l.key),onKeydown:t[4]||(t[4]=p=>e.onKey(p))},[l.icon?(C(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,wf)):l.emoji?(C(),I("span",kf,G(l.emoji),1)):(C(),I("span",xf,G(e.initial(l.label)),1)),O("span",Sf,[O("span",Lf,[Kt(G(l.label),1),l.badge?(C(),I("span",Tf,G(l.badge),1)):se("",!0)]),l.sub?(C(),I("span",Pf,[O("span",{innerHTML:l.sub},null,8,Ef)])):se("",!0)])],42,yf))),128))],512),[[Ya,!i.folder||!e.isFolderClosed(i)]])]))),128)):(C(!0),I(ne,{key:3},Ke(e.items,i=>(C(),I("button",{key:i.key,type:"button",role:"tab",class:Ze(["vtl-tab",{active:i.key===e.active,disabled:i.disabled}]),"aria-selected":String(i.key===e.active),"aria-disabled":i.disabled?"true":null,tabindex:i.key===e.active?0:-1,ref_for:!0,ref:l=>e.registerTab(i.key,l),onClick:l=>e.pick(i.key),onKeydown:t[5]||(t[5]=l=>e.onKey(l))},[i.icon?(C(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(i.icon)},null,8,Mf)):i.emoji?(C(),I("span",Af,G(i.emoji),1)):(C(),I("span",Cf,G(e.initial(i.label)),1)),O("span",If,[O("span",Nf,G(i.label),1),i.sub?(C(),I("span",Ff,G(i.sub),1)):se("",!0)])],42,Of))),128)),e.railEndShown&&e.$slots["rail-end"]?(C(),I("div",Df,[Gt(e.$slots,"rail-end",{collapsed:e.railCollapsed})])):se("",!0),e.drawerEndShown&&e.$slots["phone-end"]?(C(),I("div",Rf,[Gt(e.$slots,"phone-end")])):se("",!0)],10,of),O("main",zf,[e.header?Gt(e.$slots,"toolbar",{},void 0,void 0,0):se("",!0),O("div",qf,[(C(!0),I(ne,null,Ke(e.mountedElementRows,i=>Da((C(),I("section",{key:i.key,class:"vtl-host",hidden:i.key!==e.active,ref_for:!0,ref:l=>{l?e.hostEls[i.key]=l:delete e.hostEls[i.key]}},[O("div",{class:"vtl-host-slot",ref_for:!0,ref:l=>e.setHostSlot(i.key,l)},null,512),e.hostState[i.key]==="loading"?(C(),I("div",jf,G(e.T("messages.loadingNamed","Loading {name}…").replace("{name}",i.label)),1)):e.hostState[i.key]==="lost"?(C(),I("div",Uf,[Kt(G(e.T("messages.mapContextLost","This map was unloaded to free graphics memory."))+" ",1),O("button",{type:"button",class:"vtl-host-reload",onClick:l=>e.reloadHostElement(i.key)},G(e.T("buttons.reloadMap","Reload Map")),9,Hf)])):e.hostState[i.key]==="error"?(C(),I("div",Vf,[Kt(G(e.T("messages.couldNotLoadNamed","Could not load {name}.").replace("{name}",i.label)),1),t[6]||(t[6]=O("br",null,null,-1)),O("small",null,G(e.hostError[i.key]),1)])):se("",!0)],8,Wf)),[[Ya,i.key===e.active]])),128)),Gt(e.$slots,"default")])])])],6)}const Gf=qo(Bm,[["render",Bf],["styles",[Wm]]]),is=[{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},{code:"it",name:"Italian",nativeName:"Italiano",flag:"🇮🇹",hideFromSwitcher:!0},{code:"ro",name:"Romanian",nativeName:"Română",flag:"🇷🇴",hideFromSwitcher:!0},{code:"zh",name:"Chinese",nativeName:"中文",flag:"🇨🇳",hideFromSwitcher:!0}],yl=is.filter(e=>!e.hideFromSwitcher);function ls(e){return is.find(t=>t.code===e)}function wl(e){const t=String(e||"").split("-")[0].toLowerCase();return is.some(a=>a.code===t)?t:"en"}const kl="doxa-maps:locale";function Kf(){try{const e=localStorage.getItem(kl);if(e)return wl(e)}catch{}return wl(navigator==null?void 0:navigator.language)}function Xf(e){try{localStorage.setItem(kl,e)}catch{}}const Yf="doxa-language-request";function Jf(e){try{const t=e&&e.getRootNode&&e.getRootNode();if(t&&t.host)return t.host}catch{}return e||null}function Zf(e,t){const a=Jf(e);return!a||typeof a.dispatchEvent!="function"?!0:a.dispatchEvent(new CustomEvent(Yf,{detail:{language:t},bubbles:!0,composed:!0,cancelable:!0}))}function Qf(e,t=typeof window<"u"?window:null){try{if(!t||t.MAP_OWNS_PAGE!==!0||!t.history||!t.location)return!1;const a=new URL(t.location.href);return a.searchParams.set("lang",e),t.history.replaceState(t.history.state,"",a.toString()),!0}catch{return!1}}const eh=".slm[data-v-12760774]{position:relative;display:inline-flex;align-items:center;min-height:44px;max-width:100%;box-sizing:border-box;border-radius:8px;color:#3b463d}.slm-face[data-v-12760774]{display:inline-flex;align-items:center;gap:6px;padding-inline:10px;min-width:0;font-size:13px;font-weight:500;line-height:1.2}.slm-ic[data-v-12760774]{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted, #6d766e)}.slm-ic[data-v-12760774] svg{width:18px;height:18px}.slm-name[data-v-12760774]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.slm-code[data-v-12760774]{font-weight:600;font-size:12px;letter-spacing:.03em}.slm-caret[data-v-12760774]{flex:0 0 auto;color:var(--vtl-muted, #6d766e);font-size:11px}.slm.collapsed .slm-face[data-v-12760774]{flex-direction:column;gap:2px;padding-inline:4px}.slm-select[data-v-12760774]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;margin:0;border:0;cursor:pointer;font-size:16px}.slm[data-v-12760774]:hover{background:var(--vtl-accented, #d1d4cd)}.slm[data-v-12760774]:focus-within{outline:2px solid var(--vtl-accent, #92b195);outline-offset:-2px}@media (prefers-reduced-motion: reduce){.slm[data-v-12760774]{transition:none}}",th={class:"slm-face","aria-hidden":"true"},ah=["innerHTML"],oh={key:0,class:"slm-code"},nh=["lang","dir"],sh={key:2,class:"slm-caret"},rh=["value","aria-label","title"],ih=["value","lang","dir"],lh=qo({__name:"ShellLanguageMenu",props:{current:{type:String,default:"en"},collapsed:{type:Boolean,default:!1}},emits:["switch"],setup(e,{emit:t}){const a=e,o=t,n=Ye(()=>{const p=yl.slice();if(a.current&&!p.some(c=>c.code===a.current)){const c=ls(a.current);c&&p.push(c)}return p}),s=Ye(()=>ls(a.current)||{code:a.current,nativeName:a.current}),r=Ye(()=>Wt("controls.language",a.current)||"Language"),i=hl("globe");function l(p){const c=p.target,f=c.value;!f||f===a.current||(Zf(c,f)?(o("switch",f),Qf(f)):c.value=a.current)}return(p,c)=>(C(),I("span",{class:Ze(["slm",{collapsed:e.collapsed}])},[O("span",th,[O("span",{class:"slm-ic",innerHTML:ye(i)},null,8,ah),e.collapsed?(C(),I("span",oh,G(String(e.current).toUpperCase()),1)):(C(),I("span",{key:1,class:"slm-name",lang:s.value.code,dir:s.value.dir||null},G(s.value.nativeName),9,nh)),e.collapsed?se("",!0):(C(),I("span",sh,"▾"))]),O("select",{class:"slm-select",value:e.current,"aria-label":r.value,title:r.value,onChange:l},[(C(!0),I(ne,null,Ke(n.value,f=>(C(),I("option",{key:f.code,value:f.code,lang:f.code,dir:f.dir||null},G(f.nativeName),9,ih))),128))],40,rh)],2))}},[["styles",[eh]],["__scopeId","data-v-12760774"]]),so={en:{backToTop:"Back to top","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 Posters","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.",close:"Close",help:"About this map",desktopOnly:"desktop only",lab:"lab",experimentalSub:"experimental bundle",mobileNotBuilt:"not built for mobile",dismiss:"Dismiss",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",home:"Back to homepage","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.pplr-data-maps":"PPLR Data Maps","tab.wall-of-people-groups":"Wall of People Groups","tab.country-posters":"Country Posters","sub.country-posters":"a poster for every country","tab.poster-design":"Poster Design","sub.poster-design":"every poster style and size","tab.doxa-vision-card":"Doxa Vision Card"},es:{backToTop:"Volver arriba","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":"Carteles de la 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.",close:"Cerrar",help:"Acerca de este mapa",desktopOnly:"solo escritorio",lab:"beta",experimentalSub:"mapa experimental",mobileNotBuilt:"no diseñado para móvil",dismiss:"Cerrar",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",home:"Volver a la página de inicio","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.pplr-data-maps":"Mapas de datos PPLR","tab.wall-of-people-groups":"Muro de los pueblos","tab.country-posters":"Carteles por país","sub.country-posters":"un cartel para cada país","tab.poster-design":"Diseño de carteles","sub.poster-design":"todos los estilos y tamaños de cartel","tab.doxa-vision-card":"Tarjeta de visión Doxa"},fr:{backToTop:"Retour en haut","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":"Affiches de la 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.",close:"Fermer",help:"À propos de cette carte",desktopOnly:"ordinateur uniquement",lab:"bêta",experimentalSub:"carte expérimentale",mobileNotBuilt:"pas conçu pour mobile",dismiss:"Fermer",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",home:"Retour à l’accueil","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.pplr-data-maps":"Cartes de données PPLR","tab.wall-of-people-groups":"Mur des peuples","tab.country-posters":"Affiches par pays","sub.country-posters":"une affiche pour chaque pays","tab.poster-design":"Conception d’affiches","sub.poster-design":"tous les styles et formats d’affiche","tab.doxa-vision-card":"Carte de vision Doxa"},de:{backToTop:"Nach oben","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":"Poster der 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.",close:"Schließen",help:"Über diese Karte",desktopOnly:"nur Desktop",lab:"Beta",experimentalSub:"experimentelle Karte",mobileNotBuilt:"nicht für Mobilgeräte",dismiss:"Schließen",desktopOnly:"nur Desktop",lab:"Beta",experimentalSub:"experimentelle Karte",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",home:"Zurück zur Startseite","tab.prayer-walk-planner":"Gebetsspaziergänge","tab.upg-neighbor":"UPG-Nachbar","tab.key-cities":"Schlüsselstädte","tab.all-people-groups":"Alle Volksgruppen","tab.pplr-data-maps":"PPLR-Datenkarten","tab.wall-of-people-groups":"Wand der Volksgruppen","tab.country-posters":"Länderposter","sub.country-posters":"ein Poster für jedes Land","tab.poster-design":"Postergestaltung","sub.poster-design":"alle Posterstile und -größen","tab.doxa-vision-card":"Doxa-Visionskarte"},pt:{backToTop:"Voltar ao topo","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":"Cartazes da 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.",close:"Fechar",help:"Sobre este mapa",desktopOnly:"só no computador",lab:"beta",experimentalSub:"mapa experimental",mobileNotBuilt:"não feito para celular",dismiss:"Fechar",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",home:"Voltar à página inicial","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.pplr-data-maps":"Mapas de dados PPLR","tab.wall-of-people-groups":"Mural dos povos","tab.country-posters":"Cartazes por país","sub.country-posters":"um cartaz para cada país","tab.poster-design":"Design de cartazes","sub.poster-design":"todos os estilos e tamanhos de cartaz","tab.doxa-vision-card":"Cartão de visão Doxa"},it:{backToTop:"Torna su","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":"Poster della 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.",close:"Chiudi",help:"Informazioni su questa mappa",desktopOnly:"solo desktop",lab:"beta",experimentalSub:"mappa sperimentale",mobileNotBuilt:"non pensato per mobile",dismiss:"Chiudi",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",home:"Torna alla home page","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.pplr-data-maps":"Mappe dati PPLR","tab.wall-of-people-groups":"Muro dei popoli","tab.country-posters":"Poster per paese","sub.country-posters":"un poster per ogni paese","tab.poster-design":"Design dei poster","sub.poster-design":"tutti gli stili e i formati dei poster","tab.doxa-vision-card":"Scheda visione Doxa"},ro:{backToTop:"Sus","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":"Afișe din 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.",close:"Închide",help:"Despre această hartă",desktopOnly:"doar pe desktop",lab:"beta",experimentalSub:"hartă experimentală",mobileNotBuilt:"nu e făcut pentru mobil",dismiss:"Închide",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",home:"Înapoi la pagina principală","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.pplr-data-maps":"Hărți de date PPLR","tab.wall-of-people-groups":"Zidul popoarelor","tab.country-posters":"Afișe pe țări","sub.country-posters":"un afiș pentru fiecare țară","tab.poster-design":"Design de afișe","sub.poster-design":"toate stilurile și dimensiunile de afiș","tab.doxa-vision-card":"Card de viziune Doxa"},ru:{backToTop:"Наверх","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 — соберите дерево или разместите собранное дерево, чтобы загрузить её.",close:"Закрыть",help:"Об этой карте",desktopOnly:"только на компьютере",lab:"бета",experimentalSub:"экспериментальная карта",mobileNotBuilt:"не для телефона",dismiss:"Закрыть",desktopOnly:"только на компьютере",lab:"бета",experimentalSub:"экспериментальная карта",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",home:"На главную страницу","tab.prayer-walk-planner":"Молитвенные прогулки","tab.upg-neighbor":"Сосед UPG","tab.key-cities":"Ключевые города","tab.all-people-groups":"Все народы","tab.pplr-data-maps":"Карты данных PPLR","tab.wall-of-people-groups":"Стена народов","tab.country-posters":"Плакаты по странам","sub.country-posters":"плакат для каждой страны","tab.poster-design":"Дизайн плакатов","sub.poster-design":"все стили и размеры плакатов","tab.doxa-vision-card":"Карточка видения Doxa"},ar:{backToTop:"إلى الأعلى","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 — ابنِ الشجرة أو قدّم الشجرة المبنية لتحميلها.",close:"إغلاق",help:"عن هذه الخريطة",desktopOnly:"على الحاسوب فقط",lab:"تجريبي",experimentalSub:"خريطة تجريبية",mobileNotBuilt:"غير مُعدّ للهاتف",dismiss:"إغلاق",desktopOnly:"على الحاسوب فقط",lab:"تجريبي",experimentalSub:"خريطة تجريبية",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",home:"العودة إلى الصفحة الرئيسية","tab.prayer-walk-planner":"جولات الصلاة","tab.upg-neighbor":"جار UPG","tab.key-cities":"المدن الرئيسية","tab.all-people-groups":"جميع الشعوب","tab.pplr-data-maps":"خرائط بيانات PPLR","tab.wall-of-people-groups":"جدار الشعوب","tab.country-posters":"ملصقات الدول","sub.country-posters":"ملصق لكل دولة","tab.poster-design":"تصميم الملصقات","sub.poster-design":"كل أنماط الملصقات وأحجامها","tab.doxa-vision-card":"بطاقة رؤية Doxa"},hi:{backToTop:"ऊपर जाएँ","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 से बनता है — इसे लोड करने के लिए ट्री बनाएँ या बना हुआ ट्री सर्व करें।",close:"बंद करें",help:"इस नक्शे के बारे में",desktopOnly:"केवल डेस्कटॉप",lab:"बीटा",experimentalSub:"प्रायोगिक मानचित्र",mobileNotBuilt:"मोबाइल के लिए नहीं बना",dismiss:"बंद करें",desktopOnly:"केवल डेस्कटॉप",lab:"बीटा",experimentalSub:"प्रायोगिक मानचित्र",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",home:"होमपेज पर वापस जाएँ","tab.prayer-walk-planner":"प्रार्थना पदयात्रा","tab.upg-neighbor":"UPG पड़ोसी","tab.key-cities":"प्रमुख शहर","tab.all-people-groups":"सभी जनसमूह","tab.pplr-data-maps":"PPLR डेटा मानचित्र","tab.wall-of-people-groups":"जनसमूहों की दीवार","tab.country-posters":"देश पोस्टर","sub.country-posters":"हर देश के लिए एक पोस्टर","tab.poster-design":"पोस्टर डिज़ाइन","sub.poster-design":"हर पोस्टर शैली और आकार","tab.doxa-vision-card":"Doxa दर्शन कार्ड"},zh:{backToTop:"回到顶部","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 组成——请构建目录树或提供已构建的目录树以加载它。",close:"关闭",help:"关于此地图",desktopOnly:"仅限桌面",lab:"测试版",experimentalSub:"实验性地图",mobileNotBuilt:"未针对手机设计",dismiss:"关闭",desktopOnly:"仅限桌面",lab:"测试版",experimentalSub:"实验性地图",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",home:"返回首页","tab.prayer-walk-planner":"祷告行走","tab.upg-neighbor":"UPG 邻居","tab.key-cities":"重点城市","tab.all-people-groups":"所有民族","tab.pplr-data-maps":"PPLR 数据地图","tab.wall-of-people-groups":"民族之墙","tab.country-posters":"国家海报","sub.country-posters":"每个国家一张海报","tab.poster-design":"海报设计","sub.poster-design":"所有海报样式与尺寸","tab.doxa-vision-card":"Doxa 异象卡"}},cs=Object.keys(so);function ch(e){return Object.prototype.hasOwnProperty.call(so.en,e)}function Yo(e,t,a){let n=(so[e]||so.en)[t]??so.en[t]??t;if(a)for(const s in a)n=n.split("{"+s+"}").join(String(a[s]));return n}const xl={en:{"prayer-walk-planner":{what:"Plan a prayer walk: draw the areas your teams will cover and print each one as a one-page map.",how:"Draw a zone, name it, select the zones you need and press Print. Each zone prints on its own page with coordinates, one map per team."},"gospel-internet":{what:"See which of the ~2,000 people groups already have gospel resources in their language, and where the internet can carry those resources to them.",how:"Explore the language tree, the bounded and centered sets and the map. Pick a list on the side to narrow every view."},"country-posters":{what:"Printable prayer posters, one per country, showing its people groups.",how:"Pick a country from the poster list or on the map, then print it straight from your browser."},"all-people-groups":{what:"Every people group on earth on one map, colored by how reached it is, with the DOXA prayer set highlighted.",how:"Click a category in the legend to show only those groups. Click a dot for its details and prayer link."},"doxa-vision-card":{what:"The remaining task in one card: all people groups, then the unreached, then the frontier, then the DOXA prayer set.",how:"Read it from top to bottom. Every number is computed from the people-group data, not typed in."},"pplr-data-maps":{what:"People-group research data on maps: language families, people clusters, religions and data-source coverage.",how:"Choose a view from the tabs, then use the legend to highlight a family, cluster or religion on the map."},"wall-of-people-groups":{what:"Every DOXA people group on one wall, to bless them. In Bless mode the wall is the printable poster (5 × 8 ft by default), each group with a blessing verse; in Social mode it is a shared prayer wall.",how:"Bless: look around the poster exactly as it will print, pick a size and press Print HD poster. Social: pray for a group, read or leave comments, and share its prayer page."}},es:{"prayer-walk-planner":{what:"Planifique una caminata de oración: dibuje las zonas que recorrerán sus equipos e imprima cada una como un mapa de una página.",how:"Dibuje una zona, póngale nombre, seleccione las zonas que necesita y pulse Imprimir. Cada zona se imprime en su propia página con coordenadas: un mapa por equipo."},"gospel-internet":{what:"Vea cuáles de los ~2000 grupos de pueblos ya tienen recursos del evangelio en su idioma, y dónde internet puede llevárselos.",how:"Explore el árbol de idiomas, los conjuntos delimitado y centrado y el mapa. Elija una lista al lado para acotar cada vista."},"country-posters":{what:"Carteles de oración para imprimir, uno por país, con sus grupos de pueblos.",how:"Elija un país en la lista de carteles o en el mapa, e imprímalo directamente desde el navegador."},"all-people-groups":{what:"Todos los grupos de pueblos del mundo en un mapa, coloreados según lo alcanzados que están, con el conjunto de oración de DOXA resaltado.",how:"Haga clic en una categoría de la leyenda para ver solo esos grupos. Haga clic en un punto para ver sus datos y el enlace de oración."},"doxa-vision-card":{what:"La tarea pendiente en una tarjeta: todos los grupos de pueblos, luego los no alcanzados, luego la frontera y luego el conjunto de oración de DOXA.",how:"Léala de arriba abajo. Cada cifra se calcula a partir de los datos, no se escribe a mano."},"pplr-data-maps":{what:"Datos de investigación sobre grupos de pueblos en mapas: familias lingüísticas, agrupaciones de pueblos, religiones y cobertura de fuentes.",how:"Elija una vista en las pestañas y use la leyenda para resaltar una familia, agrupación o religión en el mapa."},"wall-of-people-groups":{what:"Todos los grupos de pueblos de DOXA en un muro, para bendecirlos. En el modo Bendecir el muro es el póster para imprimir (5 × 8 pies por defecto), cada grupo con un versículo de bendición; en el modo Social es un muro de oración compartido.",how:"Bendecir: recorra el póster tal como se imprimirá, elija un tamaño y pulse Imprimir póster HD. Social: ore por un grupo, lea o deje comentarios y comparta su página de oración."}},fr:{"prayer-walk-planner":{what:"Préparez une marche de prière : dessinez les zones que vos équipes parcourront et imprimez chacune sur une carte d’une page.",how:"Dessinez une zone, nommez-la, sélectionnez les zones voulues et cliquez sur Imprimer. Chaque zone s’imprime sur sa propre page avec ses coordonnées : une carte par équipe."},"gospel-internet":{what:"Voyez lesquels des ~2 000 groupes de peuples ont déjà des ressources de l’Évangile dans leur langue, et où internet peut les leur apporter.",how:"Explorez l’arbre des langues, les ensembles délimité et centré et la carte. Choisissez une liste sur le côté pour affiner chaque vue."},"country-posters":{what:"Des affiches de prière à imprimer, une par pays, avec ses groupes de peuples.",how:"Choisissez un pays dans la liste des affiches ou sur la carte, puis imprimez-le directement depuis le navigateur."},"all-people-groups":{what:"Tous les groupes de peuples du monde sur une carte, colorés selon leur degré d’atteinte, avec l’ensemble de prière DOXA mis en valeur.",how:"Cliquez sur une catégorie de la légende pour n’afficher que ces groupes. Cliquez sur un point pour ses détails et son lien de prière."},"doxa-vision-card":{what:"La tâche restante en une carte : tous les groupes de peuples, puis les non atteints, puis la frontière, puis l’ensemble de prière DOXA.",how:"Lisez-la de haut en bas. Chaque chiffre est calculé à partir des données, pas saisi à la main."},"pplr-data-maps":{what:"Des données de recherche sur les groupes de peuples, en cartes : familles de langues, grappes de peuples, religions et couverture des sources.",how:"Choisissez une vue dans les onglets, puis utilisez la légende pour mettre en valeur une famille, une grappe ou une religion."},"wall-of-people-groups":{what:"Tous les groupes de peuples DOXA sur un seul mur, pour les bénir. En mode Bénir, le mur est l’affiche à imprimer (5 × 8 pieds par défaut), chaque groupe avec un verset de bénédiction ; en mode Social, c’est un mur de prière partagé.",how:"Bénir : parcourez l’affiche telle qu’elle s’imprimera, choisissez une taille et appuyez sur Imprimer l’affiche HD. Social : priez pour un groupe, lisez ou laissez des commentaires et partagez sa page de prière."}},de:{"prayer-walk-planner":{what:"Einen Gebetsspaziergang planen: die Gebiete Ihrer Teams zeichnen und jedes als einseitige Karte drucken.",how:"Zeichnen Sie ein Gebiet, benennen Sie es, wählen Sie die nötigen Gebiete und drücken Sie auf Drucken. Jedes Gebiet wird mit Koordinaten auf einer eigenen Seite gedruckt: eine Karte pro Team."},"gospel-internet":{what:"Sehen, welche der ~2.000 Volksgruppen schon Evangeliumsressourcen in ihrer Sprache haben und wo das Internet sie zu ihnen bringen kann.",how:"Erkunden Sie den Sprachbaum, die begrenzte und die zentrierte Menge und die Karte. Wählen Sie seitlich eine Liste, um jede Ansicht einzugrenzen."},"country-posters":{what:"Druckbare Gebetsplakate, eines pro Land, mit seinen Volksgruppen.",how:"Wählen Sie ein Land in der Plakatliste oder auf der Karte und drucken Sie es direkt aus dem Browser."},"all-people-groups":{what:"Alle Volksgruppen der Welt auf einer Karte, nach Erreichtheit eingefärbt, mit dem DOXA-Gebetsset hervorgehoben.",how:"Klicken Sie auf eine Kategorie der Legende, um nur diese Gruppen zu zeigen. Klicken Sie auf einen Punkt für Details und den Gebetslink."},"doxa-vision-card":{what:"Die verbleibende Aufgabe auf einer Karte: alle Volksgruppen, dann die unerreichten, dann die Frontier-Gruppen, dann das DOXA-Gebetsset.",how:"Lesen Sie sie von oben nach unten. Jede Zahl wird aus den Daten berechnet, nicht eingetippt."},"pplr-data-maps":{what:"Forschungsdaten zu Volksgruppen auf Karten: Sprachfamilien, Volkscluster, Religionen und Quellenabdeckung.",how:"Wählen Sie oben eine Ansicht und heben Sie mit der Legende eine Familie, einen Cluster oder eine Religion hervor."},"wall-of-people-groups":{what:"Jede DOXA-Volksgruppe auf einer Wand, um sie zu segnen. Im Modus Segnen ist die Wand das druckbare Poster (standardmäßig 5 × 8 Fuß), jede Gruppe mit einem Segensvers; im Modus Sozial ist sie eine gemeinsame Gebetswand.",how:"Segnen: Sehen Sie sich das Poster genau so an, wie es gedruckt wird, wählen Sie eine Größe und drücken Sie HD-Poster drucken. Sozial: Beten Sie für eine Gruppe, lesen oder schreiben Sie Kommentare und teilen Sie ihre Gebetsseite."}},pt:{"prayer-walk-planner":{what:"Planeje uma caminhada de oração: desenhe as áreas que suas equipes vão cobrir e imprima cada uma como um mapa de uma página.",how:"Desenhe uma zona, dê um nome, selecione as zonas necessárias e clique em Imprimir. Cada zona sai em sua própria página com coordenadas: um mapa por equipe."},"gospel-internet":{what:"Veja quais dos ~2.000 grupos de povos já têm recursos do evangelho no seu idioma, e onde a internet pode levá-los até eles.",how:"Explore a árvore de idiomas, os conjuntos delimitado e centrado e o mapa. Escolha uma lista ao lado para filtrar cada vista."},"country-posters":{what:"Cartazes de oração para imprimir, um por país, com seus grupos de povos.",how:"Escolha um país na lista de cartazes ou no mapa e imprima direto do navegador."},"all-people-groups":{what:"Todos os grupos de povos do mundo num mapa, coloridos pelo grau de alcance, com o conjunto de oração da DOXA em destaque.",how:"Clique numa categoria da legenda para ver só esses grupos. Clique num ponto para ver detalhes e o link de oração."},"doxa-vision-card":{what:"A tarefa restante num cartão: todos os grupos de povos, depois os não alcançados, depois a fronteira, depois o conjunto de oração da DOXA.",how:"Leia de cima para baixo. Cada número é calculado a partir dos dados, não digitado."},"pplr-data-maps":{what:"Dados de pesquisa sobre grupos de povos em mapas: famílias linguísticas, agrupamentos de povos, religiões e cobertura das fontes.",how:"Escolha uma vista nas abas e use a legenda para destacar uma família, agrupamento ou religião no mapa."},"wall-of-people-groups":{what:"Todos os grupos de povos da DOXA num só mural, para abençoá-los. No modo Abençoar, o mural é o cartaz para imprimir (5 × 8 pés por padrão), cada grupo com um versículo de bênção; no modo Social, é um mural de oração partilhado.",how:"Abençoar: percorra o cartaz tal como será impresso, escolha um tamanho e prima Imprimir cartaz HD. Social: ore por um grupo, leia ou deixe comentários e partilhe a sua página de oração."}},it:{"prayer-walk-planner":{what:"Pianifica una camminata di preghiera: disegna le zone che le tue squadre percorreranno e stampa ognuna come mappa di una pagina.",how:"Disegna una zona, dalle un nome, seleziona le zone che servono e premi Stampa. Ogni zona si stampa su una pagina con le coordinate: una mappa per squadra."},"gospel-internet":{what:"Scopri quali dei ~2.000 gruppi etnici hanno già risorse del vangelo nella loro lingua, e dove internet può portargliele.",how:"Esplora l’albero delle lingue, gli insiemi delimitato e centrato e la mappa. Scegli un elenco a lato per restringere ogni vista."},"country-posters":{what:"Poster di preghiera da stampare, uno per paese, con i suoi gruppi etnici.",how:"Scegli un paese dall’elenco dei poster o sulla mappa e stampalo direttamente dal browser."},"all-people-groups":{what:"Tutti i gruppi etnici del mondo su una mappa, colorati secondo quanto sono raggiunti, con l’insieme di preghiera DOXA evidenziato.",how:"Clicca una categoria della legenda per mostrare solo quei gruppi. Clicca un punto per dettagli e link di preghiera."},"doxa-vision-card":{what:"Il compito rimanente in una scheda: tutti i gruppi etnici, poi i non raggiunti, poi la frontiera, poi l’insieme di preghiera DOXA.",how:"Leggila dall’alto in basso. Ogni numero è calcolato dai dati, non digitato."},"pplr-data-maps":{what:"Dati di ricerca sui gruppi etnici su mappa: famiglie linguistiche, cluster di popoli, religioni e copertura delle fonti.",how:"Scegli una vista dalle schede, poi usa la legenda per evidenziare una famiglia, un cluster o una religione."},"wall-of-people-groups":{what:"Tutti i gruppi etnici DOXA su un solo muro, per benedirli. In modalità Benedire il muro è il poster da stampare (5 × 8 piedi di default), ogni gruppo con un versetto di benedizione; in modalità Social è un muro di preghiera condiviso.",how:"Benedire: esplora il poster esattamente come verrà stampato, scegli una dimensione e premi Stampa poster HD. Social: prega per un gruppo, leggi o lascia commenti e condividi la sua pagina di preghiera."}},ro:{"prayer-walk-planner":{what:"Planificați o plimbare de rugăciune: desenați zonele pe care le vor parcurge echipele și tipăriți fiecare ca hartă de o pagină.",how:"Desenați o zonă, dați-i un nume, selectați zonele necesare și apăsați Tipărire. Fiecare zonă se tipărește pe o pagină, cu coordonate: câte o hartă pentru fiecare echipă."},"gospel-internet":{what:"Vedeți care dintre cele ~2.000 de grupuri de popoare au deja resurse ale Evangheliei în limba lor și unde le poate duce internetul.",how:"Explorați arborele limbilor, mulțimile delimitată și centrată și harta. Alegeți o listă din lateral pentru a restrânge fiecare vedere."},"country-posters":{what:"Afișe de rugăciune de tipărit, câte unul pentru fiecare țară, cu grupurile ei de popoare.",how:"Alegeți o țară din lista de afișe sau de pe hartă și tipăriți-o direct din browser."},"all-people-groups":{what:"Toate grupurile de popoare ale lumii pe o hartă, colorate după cât sunt de atinse, cu setul de rugăciune DOXA evidențiat.",how:"Faceți clic pe o categorie din legendă pentru a afișa doar acele grupuri. Faceți clic pe un punct pentru detalii și linkul de rugăciune."},"doxa-vision-card":{what:"Sarcina rămasă într-un card: toate grupurile de popoare, apoi cele neatinse, apoi cele de frontieră, apoi setul de rugăciune DOXA.",how:"Citiți-l de sus în jos. Fiecare număr este calculat din date, nu tastat."},"pplr-data-maps":{what:"Date de cercetare despre grupurile de popoare pe hărți: familii de limbi, grupuri de popoare, religii și acoperirea surselor.",how:"Alegeți o vedere din file, apoi folosiți legenda pentru a evidenția o familie, un grup sau o religie."},"wall-of-people-groups":{what:"Toate grupurile de popoare DOXA pe un singur perete, ca să le binecuvântăm. În modul Binecuvântare, peretele este afișul de tipărit (5 × 8 picioare implicit), fiecare grup cu un verset de binecuvântare; în modul Social este un perete de rugăciune comun.",how:"Binecuvântare: explorați afișul exact cum se va tipări, alegeți o dimensiune și apăsați Tipărește afișul HD. Social: rugați-vă pentru un grup, citiți sau lăsați comentarii și distribuiți pagina lui de rugăciune."}},ru:{"prayer-walk-planner":{what:"Спланируйте молитвенную прогулку: нарисуйте районы для ваших команд и распечатайте каждый как карту на одну страницу.",how:"Нарисуйте зону, назовите её, выберите нужные зоны и нажмите «Печать». Каждая зона печатается на отдельной странице с координатами — по карте на команду."},"gospel-internet":{what:"Узнайте, у каких из ~2000 народов уже есть евангельские материалы на их языке и где интернет может донести их до них.",how:"Исследуйте языковое дерево, ограниченное и центрированное множества и карту. Выберите список сбоку, чтобы сузить любой вид."},"country-posters":{what:"Молитвенные плакаты для печати, по одному на страну, с её народами.",how:"Выберите страну в списке плакатов или на карте и распечатайте прямо из браузера."},"all-people-groups":{what:"Все народы мира на одной карте, окрашенные по степени достигнутости, с выделенным молитвенным набором DOXA.",how:"Нажмите категорию в легенде, чтобы показать только эти группы. Нажмите точку, чтобы увидеть сведения и ссылку для молитвы."},"doxa-vision-card":{what:"Оставшаяся задача на одной карточке: все народы, затем недостигнутые, затем пограничные, затем молитвенный набор DOXA.",how:"Читайте сверху вниз. Каждое число вычислено из данных, а не введено вручную."},"pplr-data-maps":{what:"Исследовательские данные о народах на картах: языковые семьи, кластеры народов, религии и охват источников.",how:"Выберите вид во вкладках, затем выделите семью, кластер или религию с помощью легенды."},"wall-of-people-groups":{what:"Все народы DOXA на одной стене, чтобы благословлять их. В режиме «Благословение» стена — это плакат для печати (по умолчанию 5 × 8 футов), у каждого народа — стих благословения; в режиме «Соцсеть» это общая молитвенная стена.",how:"«Благословение»: просмотрите плакат точно таким, каким он будет напечатан, выберите размер и нажмите «Печать плаката HD». «Соцсеть»: молитесь о народе, читайте и оставляйте комментарии, делитесь его молитвенной страницей."}},ar:{"prayer-walk-planner":{what:"خطِّط لجولة صلاة: ارسم المناطق التي ستغطيها فرقك واطبع كل منطقة خريطةً من صفحة واحدة.",how:"ارسم منطقة وسمِّها، واختر المناطق التي تحتاجها ثم اضغط «طباعة». تُطبع كل منطقة في صفحة مستقلة مع إحداثياتها: خريطة لكل فريق."},"gospel-internet":{what:"اعرف أيَّ الشعوب الألفين تقريبًا لديها بالفعل موارد للإنجيل بلغتها، وأين يمكن للإنترنت أن يوصلها إليها.",how:"استكشف شجرة اللغات والمجموعتين المحدودة والمتمركزة والخريطة. اختر قائمة من الجانب لتضييق كل عرض."},"country-posters":{what:"ملصقات صلاة للطباعة، ملصق لكل بلد، تُظهر شعوبه.",how:"اختر بلدًا من قائمة الملصقات أو على الخريطة، ثم اطبعه مباشرة من المتصفح."},"all-people-groups":{what:"كل شعوب العالم على خريطة واحدة، ملوَّنة بحسب درجة وصول الإنجيل إليها، مع إبراز مجموعة صلاة DOXA.",how:"انقر فئة في مفتاح الخريطة لعرض تلك الشعوب فقط. انقر نقطة لترى تفاصيلها ورابط الصلاة."},"doxa-vision-card":{what:"المهمة المتبقية في بطاقة واحدة: كل الشعوب، ثم غير المُبشَّرة، ثم الحدودية، ثم مجموعة صلاة DOXA.",how:"اقرأها من الأعلى إلى الأسفل. كل رقم محسوب من البيانات، وليس مكتوبًا يدويًا."},"pplr-data-maps":{what:"بيانات بحثية عن الشعوب على خرائط: العائلات اللغوية والعناقيد الشعبية والأديان وتغطية المصادر.",how:"اختر عرضًا من التبويبات، ثم استخدم مفتاح الخريطة لإبراز عائلة أو عنقود أو دين."},"wall-of-people-groups":{what:"كل شعوب DOXA على جدار واحد لنباركها. في وضع «بركة» يكون الجدار هو الملصق الجاهز للطباعة (5 × 8 أقدام افتراضيًا)، ولكل شعب آية بركة؛ وفي وضع «تفاعلي» يكون جدار صلاة مشتركًا.",how:"«بركة»: تجوّل في الملصق كما سيُطبع تمامًا، واختر المقاس ثم اضغط «طباعة ملصق عالي الدقة». «تفاعلي»: صلِّ لأجل شعب، واقرأ التعليقات أو اكتب تعليقًا، وشارك صفحة الصلاة الخاصة به."}},hi:{"prayer-walk-planner":{what:"प्रार्थना-यात्रा की योजना बनाएँ: अपनी टीमों के क्षेत्र बनाएँ और हर क्षेत्र को एक पन्ने के नक्शे के रूप में छापें।",how:"एक क्षेत्र बनाएँ, उसे नाम दें, ज़रूरी क्षेत्र चुनें और प्रिंट दबाएँ। हर क्षेत्र निर्देशांकों के साथ अपने पन्ने पर छपता है: हर टीम के लिए एक नक्शा।"},"gospel-internet":{what:"देखें कि लगभग 2,000 जन-समूहों में से किनके पास उनकी भाषा में सुसमाचार के संसाधन पहले से हैं, और इंटरनेट उन्हें कहाँ तक पहुँचा सकता है।",how:"भाषा-वृक्ष, सीमित और केंद्रित समुच्चय और नक्शा देखें। हर दृश्य को सीमित करने के लिए बगल में एक सूची चुनें।"},"country-posters":{what:"छापने योग्य प्रार्थना-पोस्टर, हर देश के लिए एक, उसके जन-समूहों के साथ।",how:"पोस्टर सूची में या नक्शे पर कोई देश चुनें, फिर सीधे ब्राउज़र से छापें।"},"all-people-groups":{what:"दुनिया के सभी जन-समूह एक नक्शे पर, इस आधार पर रंगे हुए कि वे कितने पहुँचे हुए हैं, DOXA प्रार्थना-समूह उभारा हुआ।",how:"केवल वे समूह देखने के लिए लीजेंड में एक श्रेणी पर क्लिक करें। विवरण और प्रार्थना-लिंक के लिए किसी बिंदु पर क्लिक करें।"},"doxa-vision-card":{what:"बचा हुआ काम एक कार्ड में: सभी जन-समूह, फिर अपहुँचे, फिर सीमांत, फिर DOXA प्रार्थना-समूह।",how:"इसे ऊपर से नीचे पढ़ें। हर संख्या आँकड़ों से गणना की गई है, हाथ से नहीं लिखी गई।"},"pplr-data-maps":{what:"जन-समूहों पर शोध-आँकड़े नक्शों पर: भाषा-परिवार, जन-क्लस्टर, धर्म और स्रोतों की पहुँच।",how:"टैब से कोई दृश्य चुनें, फिर लीजेंड से किसी परिवार, क्लस्टर या धर्म को नक्शे पर उभारें।"},"wall-of-people-groups":{what:"हर DOXA जन-समूह एक ही दीवार पर, उन्हें आशीष देने के लिए। आशीष मोड में दीवार छापने योग्य पोस्टर है (डिफ़ॉल्ट 5 × 8 फ़ुट), हर समूह के साथ आशीष का एक पद; सामाजिक मोड में यह एक साझा प्रार्थना दीवार है।",how:"आशीष: पोस्टर को ठीक वैसा ही देखें जैसा वह छपेगा, आकार चुनें और HD पोस्टर छापें दबाएँ। सामाजिक: किसी समूह के लिए प्रार्थना करें, टिप्पणियाँ पढ़ें या लिखें, और उसका प्रार्थना पेज साझा करें।"}},zh:{"prayer-walk-planner":{what:"规划祷告行走:画出各小组要走的区域,把每个区域打印成一页地图。",how:"画一个区域并命名,选择需要的区域后点“打印”。每个区域连同坐标单独打印一页:每个小组一张地图。"},"gospel-internet":{what:"看看约 2,000 个族群中,哪些已经有母语的福音资源,以及互联网能把这些资源带到哪里。",how:"浏览语言树、有界集与中心集以及地图。在侧边选择一个名单,可缩小每个视图的范围。"},"country-posters":{what:"可打印的祷告海报,每个国家一张,列出其中的族群。",how:"在海报列表或地图上选择一个国家,然后直接从浏览器打印。"},"all-people-groups":{what:"世界上所有族群都在一张地图上,按福音进展着色,并突出显示 DOXA 祷告名单。",how:"点击图例中的类别,只显示这些族群。点击一个点,查看详情和祷告链接。"},"doxa-vision-card":{what:"一张卡片看清剩下的使命:所有族群,然后是未得之民,再是前沿族群,最后是 DOXA 祷告名单。",how:"从上往下读。每个数字都由数据计算得出,而不是手工填写。"},"pplr-data-maps":{what:"族群研究数据地图:语系、民族集群、宗教和数据来源覆盖情况。",how:"在标签页中选择一个视图,然后用图例在地图上突出显示某个语系、集群或宗教。"},"wall-of-people-groups":{what:"所有 DOXA 族群都在一面墙上,为要祝福他们。在“祝福”模式下,这面墙就是可打印的海报(默认 5 × 8 英尺),每个族群配一节祝福经文;在“社交”模式下,它是一面共同的祷告墙。",how:"祝福:按打印时的样子浏览海报,选择尺寸,然后点击“打印高清海报”。社交:为某个族群祷告,阅读或留下评论,并分享它的祷告页面。"}}};function Sl(e,t){var o;const a=String(t||"en").toLowerCase().split(/[-_]/)[0];return((o=xl[a])==null?void 0:o[e])||xl.en[e]||null}const Ll="previews/examples/middle-east-core",ph=Array.from({length:12},(e,t)=>`${Ll}/packet-p${String(t+1).padStart(2,"0")}.webp`),uh=Array.from({length:70},(e,t)=>`${Ll}/card-${String(t+1).padStart(2,"0")}.webp`),dh={"upg-100":{storageKey:"upg-100",trigger:"control",pos:{side:"56px",narrow:{placement:"top-left",side:"12px"}},leadKey:"mapInfo.tab.upg-100.lead",strategyKey:"mapStrategy.tab.upg-100",takeawayKey:"mapInfo.tab.upg-100.takeaway",noteKey:"pins.approximate",examples:[{kind:"image",src:"previews/middle-east-core.webp",full:"posters/middle-east-core.html"},{kind:"pages",pages:ph},{kind:"deck",cards:uh}]},"regions-dashboard":{storageKey:"regions-dashboard",pos:{side:"56px",narrow:{placement:"top-left",side:"8px"}},leadKey:"mapInfo.tab.regions-dashboard.lead",strategyKey:"mapStrategy.tab.regions-dashboard",trigger:"control",takeawayKey:"mapInfo.tab.regions-dashboard.takeaway",noteKey:"mapInfo.tab.regions-dashboard.note",examples:[]},"dashboard-plus-grid":{storageKey:"dashboard-plus-grid",trigger:"control",pos:{top:"46px",raise:!0},leadKey:"mapInfo.tab.dashboard-plus-grid.lead",strategyKey:"mapStrategy.tab.dashboard-plus-grid",takeawayKey:"mapInfo.tab.dashboard-plus-grid.takeaway",examples:[{kind:"table",columns:[{key:"mapInfo.col.peopleGroup"},{key:"mapInfo.col.country"},{key:"mapInfo.col.region"},{key:"mapInfo.col.population"}],rows:[["Hararghe Oromo","Ethiopia","Africa",6355e3],["Gaaliin","Sudan","Middle East",452e4],["White Moor","Morocco","Middle East",312e4],["Baloch, Western","Iran","Middle East",3035e3],["Baloch, Eastern","Pakistan","Asia",298e4],["Bhuiyar","India","Asia",2925e3]],total:2107}]},"research-map-plus-grid":{storageKey:"research-map-plus-grid",trigger:"control",pos:{top:"56px",side:"56px"},leadKey:"mapInfo.tab.research-map-plus-grid.lead",strategyKey:"mapStrategy.tab.research-map-plus-grid",noteKey:"pins.approximate",examples:[]},"prayer-map":{storageKey:"prayer-map",trigger:"control",pos:{side:"56px"},leadKey:"mapInfo.tab.prayer-map.lead",strategyKey:"mapStrategy.tab.prayer-map",takeawayKey:"mapInfo.tab.prayer-map.takeaway",noteKey:"pins.approximate",examples:[]},"cities-internet":{storageKey:"cities-internet",trigger:"control",pos:{side:"56px",narrow:{side:"4px"}},leadKey:"mapInfo.tab.cities-internet.lead",strategyKey:"mapStrategy.tab.cities-internet",takeawayKey:"mapInfo.tab.cities-internet.takeaway",noteKey:"pins.approximate",examples:[]},"gospel-resources":{storageKey:"gospel-resources",trigger:"control",pos:{side:"56px",narrow:{side:"4px"}},leadKey:"mapInfo.tab.gospel-resources.lead",strategyKey:"mapStrategy.tab.gospel-resources",takeawayKey:"mapInfo.tab.gospel-resources.takeaway",noteKey:"pins.approximate",examples:[]}};function Tl(e,t){return t?String(e).replace(/\{(\w+)\}/g,(a,o)=>t[o]!=null?String(t[o]):a):String(e)}function Pl(e,t,a=rs()){const o=String(e).split(/\s*\|\s*/);if(o.length<2||typeof t!="number")return String(e);const n=String(a||"en").split("-")[0].toLowerCase();if(n!=="en")return o[gl(t,o.length,n)];const s=Math.abs(t),r=o.length===2?s?s>1?1:0:1:s?Math.min(s,2):0;return o[Math.min(r,o.length-1)]}function ps(e,t){const a=String(t);return e&&!a.startsWith(`${e}.`)?`${e}.${a}`:a}function gh(e,t={}){const a=typeof t.fallback=="function"?(o,n,s)=>Tl(Pl(t.fallback(ps(e,o),n)??o,s),n):(o,n,s)=>Tl(Pl(Wt(ps(e,o))??o,s),n);try{const o=Xo();return(n,s,r)=>{const i=ps(e,n),l=typeof r=="number"?o.t(i,s||{},r):o.t(i,s||{});return l===i?a(n,s,r):l}}catch{return a}}const mh=["dir","lang"],fh=["aria-label","title","aria-expanded"],hh={viewBox:"0 0 16 16",focusable:"false"},bh={key:0,d:"M14 8H3M7 3.5 2.5 8 7 12.5",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},$h={key:1,d:"M2 8h11M9 3.5 13.5 8 9 12.5",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},_h=["dir"],vh={viewBox:"0 0 16 16",focusable:"false"},yh={key:0,d:"M14 8H3M7 3.5 2.5 8 7 12.5",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},wh={key:1,d:"M2 8h11M9 3.5 13.5 8 9 12.5",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},kh=["aria-labelledby"],xh={class:"mi-head"},Sh=["id"],Lh=["aria-label"],Th={class:"mi-body"},Ph=["aria-labelledby"],Eh=["id"],Oh={class:"mi-lead"},Mh={key:1,class:"mi-takeaway"},Ah={class:"mi-strategy-sum"},Ch={class:"mi-bottom"},Ih={key:0,class:"mi-points"},Nh=["src","alt","onError"],Fh={key:0,class:"mi-center"},Dh=["href"],Rh=["aria-label","onClick"],zh=["src","alt","onError"],qh={key:0,class:"mi-center"},Wh=["onClick"],jh={class:"mi-center"},Uh=["onClick"],Hh={class:"mi-pages"},Vh=["aria-label","onClick"],Bh=["src","alt"],Gh={class:"mi-center"},Kh=["onClick"],Xh=["aria-label","onClick"],Yh=["src","onError"],Jh={class:"mi-center"},Zh=["onClick"],Qh={class:"mi-center"},eb=["onClick"],tb={class:"mi-grid"},ab=["src","alt"],ob={class:"mi-center"},nb=["onClick"],sb={class:"mi-table-wrap"},rb={class:"mi-table"},ib={key:0,class:"mi-more"},lb={key:3,class:"mi-note"},cb={key:0,class:"mi-foot"},pb=["checked"],Jo=new Set,ub={__name:"MapInfo",props:{storageKey:{type:String,required:!0},leadKey:{type:String,default:""},lead:{type:String,default:""},takeawayKey:{type:String,default:""},takeaway:{type:String,default:""},noteKey:{type:String,default:""},strategyKey:{type:String,default:""},note:{type:String,default:""},examples:{type:Array,default:()=>[]},assetsBase:{type:String,default:""},placement:{type:String,default:"top-right",validator:e=>["top-right","top-left"].includes(e)},locale:{type:String,default:""},trigger:{type:String,default:"floating",validator:e=>["floating","control"].includes(e)},popupOnly:{type:Boolean,default:!1}},setup(e){const t=e,a=()=>t.trigger==="control",o=Oe(0);function n(){return o.value,String(t.locale||rs()||"en").split("-")[0].toLowerCase()}const s=gh("",{fallback:x=>Wt(x,n())}),r=(x,Y)=>x?s(x):Y,i=8,l=()=>t.strategyKey&&Wt(t.strategyKey+".bottom",n())||"";function p(){const x=[];if(!t.strategyKey)return x;for(let Y=1;Y<=i;Y++){const B=Wt(t.strategyKey+".p"+Y,n());if(!B)break;x.push(B)}return x}const c=()=>!!l(),f=x=>{try{return new Intl.NumberFormat(n()).format(x)}catch{return String(x)}},$=()=>n()==="ar",L="dxmaps.mapInfo.seen.",z="dxmaps.mapInfo.pointer",M="dxmaps:mapinfo-pointer-off";function j(x){try{return window.localStorage.getItem(x)}catch{return null}}function q(x,Y){try{window.localStorage.setItem(x,Y)}catch{}}const U=Oe(!1),y=Oe(!1);function _(){if(y.value=j(z)==="off",a()){U.value=!Jo.has(t.storageKey);return}U.value=!y.value&&j(L+t.storageKey)!=="1"}function A(){a()||_()}function P(x){a()||(!x||x.key===z||x.key===L+t.storageKey)&&_()}_a(()=>{_(),window.addEventListener(M,A),window.addEventListener("storage",P)}),Eo(()=>{window.removeEventListener(M,A),window.removeEventListener("storage",P)});function F(x){y.value=x,q(z,x?"off":"on"),U.value=!x&&j(L+t.storageKey)!=="1";try{window.dispatchEvent(new CustomEvent(M))}catch{}}const H=Oe(!1),V=Oe(null),fe=Oe(null),ke=Ia({}),ee=Ia({});async function xe(){var x;o.value++,H.value=!0,a()&&Jo.add(t.storageKey),await xo(),(x=fe.value)==null||x.focus()}async function nt(){H.value=!1,a()||q(L+t.storageKey,"1"),U.value=!1,await xo();const x=t.trigger==="control"&&ce.value&&ie.value?ie.value:V.value;x==null||x.focus()}const Be=Oe(null),ie=Oe(null),ce=Oe(!1);let ae=null,Le=null,Ae=null,Te=null;function Ee(x){for(let Y=x;Y;Y=Y.parentNode||Y.host)if(Y.nodeType===1&&(Y.hasAttribute("inert")||Y.getAttribute("aria-hidden")==="true"))return!0;return!1}const Lt=3e4,Tt=9e4;let mt=!1;const We=Oe(t.trigger==="control");let tt=0;function it(){const x=Be.value&&Be.value.parentElement,Y=x&&x.getBoundingClientRect();return!!x&&!Ee(x)&&Y.width>0&&Y.height>0}function Pt(){if(We.value){if(!it()){tt=0;return}tt?Date.now()-tt>=(mt?Tt:Lt)&&(We.value=!1):tt=Date.now()}}function Ie(){Pt(),a()&&U.value&&Jo.has(t.storageKey)&&!it()&&(U.value=!1);const x=ie.value;let Y=!1;if(x&&x.isConnected&&!Ee(x)){const B=x.getBoundingClientRect();if(Y=B.width>0&&B.height>0&&B.bottom>0&&B.right>0&&B.topx.classList.contains("mcb--rounded-square");function h(x){const Y=Be.value&&Be.value.offsetParent;if(!Y)return null;const B=Y.getBoundingClientRect(),Q=B.left+Y.clientLeft,le=B.top+Y.clientTop,Se=Math.round(x.top-le+Y.scrollTop+x.height/2);return x.left+x.width/2>Q+Y.clientWidth/2?{side:"right",top:Se,right:Math.round(Q+Y.clientWidth-x.left+jt)}:{side:"left",top:Se,left:Math.round(x.right-Q+jt)}}const m=Oe(null),w=()=>{const x=m.value;return x.side==="right"?{top:x.top+"px",right:x.right+"px"}:{top:x.top+"px",left:x.left+"px"}},E=()=>Ie();function T(x){if(!x||x===ie.value){Ie();return}try{Le==null||Le.disconnect(),Ae==null||Ae.disconnect()}catch{}ie.value=x,We.value=!1;try{Le=new IntersectionObserver(Ie),Le.observe(x)}catch{Le=null}try{Ae=new ResizeObserver(Ie),Ae.observe(x)}catch{Ae=null}x.setAttribute("aria-expanded",String(H.value)),Ie()}const R=x=>!!ae&&typeof x.composedPath=="function"&&x.composedPath().includes(ae);function D(x){R(x)&&(x.stopPropagation(),x.detail&&(x.detail.ack=!0),T(x.detail&&x.detail.el))}function u(x){R(x)&&(x.stopPropagation(),mt=!!(x.detail&&x.detail.pending),!mt&&!ie.value&&(We.value=!1))}function d(x){R(x)&&(x.stopPropagation(),T(x.detail&&x.detail.el),H.value||xe())}_a(()=>{if(t.trigger==="control"&&(ae=Be.value&&Be.value.parentElement,!!ae)){ae.addEventListener("dxmaps:mapinfo-control",D),ae.addEventListener("dxmaps:mapinfo-open",d),ae.addEventListener("dxmaps:mapinfo-pending",u),Te=window.setInterval(Ie,1500),window.addEventListener("resize",E);try{window.dispatchEvent(new CustomEvent("dxmaps:mapinfo-host",{detail:{local:t.popupOnly}}))}catch{}}}),Eo(()=>{ae&&(ae.removeEventListener("dxmaps:mapinfo-control",D),ae.removeEventListener("dxmaps:mapinfo-open",d),ae.removeEventListener("dxmaps:mapinfo-pending",u));try{Le==null||Le.disconnect(),Ae==null||Ae.disconnect()}catch{}Te&&window.clearInterval(Te),window.removeEventListener("resize",E)}),Bt(H,x=>{var Y;(Y=ie.value)==null||Y.setAttribute("aria-expanded",String(x))});const v=()=>!t.popupOnly&&(t.trigger!=="control"||!We.value&&!ce.value);Bt(()=>a()&&U.value&&!H.value&&!v()&&!!m.value,x=>{x&&Jo.add(t.storageKey)},{immediate:!0});const k=Oe(null);function W(x){const Y=k.value;if(!Y)return;const B=[...Y.querySelectorAll('button, a[href], input, [tabindex]:not([tabindex="-1"])')].filter(Ut=>!Ut.disabled&&Ut.offsetParent!==null);if(!B.length)return;const Q=Y.getRootNode().activeElement,le=B[0],Se=B[B.length-1];x.shiftKey&&(Q===le||!Y.contains(Q))?(x.preventDefault(),Se.focus()):!x.shiftKey&&(Q===Se||!Y.contains(Q))&&(x.preventDefault(),le.focus())}function N(x){x.key==="Escape"?(x.stopPropagation(),nt()):x.key==="Tab"&&W(x)}function b(x){ke[x]=!ke[x]}function S(x){const Y=x&&x.target;Y&&(Y.style.display="none")}function X(x){const Y=String(x||"");return!Y||/^(?:[a-z]+:|\/)/i.test(Y)||!t.assetsBase?Y:t.assetsBase.replace(/\/+$/,"")+"/"+Y.replace(/^\.?\//,"")}const oe={image:"mapInfo.poster",pages:"mapInfo.packet",deck:"mapInfo.cards",table:"mapInfo.spreadsheet"};function de(x){return s(x.titleKey||oe[x.kind]||"mapInfo.example")}const je=x=>(x.cards||[]).slice(0,5),Ne=x=>x&&typeof x=="object"?x.key?s(x.key):String(x.label||""):String(x??"");return ml(` +`,Bm=ba({name:"VerticalTabsLayout",components:{BackToTopButton:ni},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},homeHref:{type:String,default:""},homeLabel:{type:String,default:""},shellMode:{type:String,default:"auto"}},emits:["update:active"],setup(){return ml(Vm,"vertical-tabs-layout"),{T:jm}},data(){const e=(()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(max-width: 760px)").matches}catch{return!1}})();return{navOpen:this.initialNavOpen&&!e,railCollapsed:e?!1:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:e,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{},hostEls:{},mode:"app"}},computed:{phoneBarShown(){return this.narrow&&!this.header&&this.mode==="app"},railEndShown(){return!this.narrow&&!this.header},fabShown(){return this.narrow&&!this.header&&this.mode==="web"&&!this.navOpen},drawerEndShown(){return this.narrow&&!this.header&&this.mode==="web"},activeHostEl(){return this.hostEls[this.active]||null},railShown(){return this.narrow?this.navOpen:!0},homeLink(){const e=String(this.homeHref||"").trim();return!e||/^(javascript|data|vbscript):/i.test(e.replace(/[\u0000- ]/g,""))?"":e},homeText(){return this.homeLabel||this.label("home")},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const a of t.rows||[])e.push(a);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:{shellMode(){this.resolveShellMode()},active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){this.resolveShellMode();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:{resolveShellMode(){const e=a=>a==="web"||a==="app"?a:null;let t=e(this.shellMode);if(!t)try{const a=this.$el&&this.$el.getRootNode?this.$el.getRootNode():null,o=a&&a.host;t=e(o&&o.getAttribute?o.getAttribute("shell-mode"):null)}catch{}if(!t)try{const a=window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches||navigator.standalone===!0;t=window.Capacitor||a||window.MAP_OWNS_PAGE===!0?"app":"web"}catch{t="app"}this.mode=t},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",home:"Back to homepage"};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(a=>a.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.$nextTick(()=>this.watchContextLoss(e)),this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},deepCanvases(e,t=[]){if(!e)return t;for(const a of e.querySelectorAll("*"))a.tagName==="CANVAS"&&t.push(a),a.shadowRoot&&this.deepCanvases(a.shadowRoot,t);return t},watchContextLoss(e){const t=this._hostSlots[e];if(t)for(const a of this.deepCanvases(t))a.__vtlLossBound||(a.__vtlLossBound=!0,a.addEventListener("webglcontextlost",()=>{this.hostState={...this.hostState,[e]:"lost"}},{once:!0}))},reloadHostElement(e){const t=this._hostSlots[e];t&&(t.innerHTML=""),this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"loading"},this.$nextTick(()=>this.mountHostElement(e))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(o=>o.key===e),a=this._hostSlots[e];!t||!a||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},Um(t.src).then(()=>Hm(t.element)).then(()=>{Rm(t.element,t.src),a.innerHTML="";const o=document.createElement(t.element),n=t.attrs||{};for(const s in n){const r=n[s],i=r!=null&&typeof r=="object"?JSON.stringify(r):String(r);try{o[s]=r}catch{}try{o.setAttribute(s,i)}catch{}}o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",a.appendChild(o);for(const s of[0,250,1500])setTimeout(()=>this.watchContextLoss(e),s);this.hostState={...this.hostState,[e]:"ready"}}).catch(o=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:o&&o.message||String(o)}}))},iconSvg(e){return e?hl(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],a=(this.groups||[]).find(n=>n.key===e),o=t??(a&&a.open===!0);this.folderOverride={...this.folderOverride,[e]:!o}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const a=t.indexOf(this.active);let o=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")o=(a+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")o=(a-1+t.length)%t.length;else if(e.key==="Home")o=0;else if(e.key==="End")o=t.length-1;else return;e.preventDefault();const n=t[o];this.pick(n),this.$nextTick(()=>{const s=this._tabEls[n];s&&s.focus&&s.focus()})}}}),Gm={key:0,class:"vtl-top"},Km=["aria-expanded","aria-label"],Xm={class:"vtl-brand"},Ym={class:"vtl-title"},Jm={class:"vtl-meta"},Zm={key:1,class:"vtl-pbar"},Qm=["aria-expanded","aria-label"],ef={class:"vtl-pbar-end"},tf=["aria-expanded","aria-label"],af={class:"vtl-body"},of=["aria-label","aria-hidden","role","aria-orientation"],nf=["href","aria-label","title"],sf=["innerHTML"],rf={class:"vtl-home-tx"},lf=["aria-expanded","aria-label"],cf=["innerHTML"],pf={class:"vtl-collapse-tx"},uf=["aria-expanded","onClick"],df={key:0,class:"vtl-cap"},gf={class:"vtl-tl"},mf={key:1,class:"vtl-td"},ff=["innerHTML"],hf={key:1,class:"vtl-tier"},bf={key:0,class:"vtl-cap"},$f={class:"vtl-tl"},_f={key:1,class:"vtl-td"},vf={class:"vtl-rows"},yf=["aria-selected","aria-disabled","tabindex","onClick"],wf=["innerHTML"],kf={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},xf={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Sf={class:"vtl-tab-text"},Lf={class:"vtl-tab-label"},Tf={key:0,class:"vtl-tab-badge"},Pf={key:0,class:"vtl-tab-sub"},Ef=["innerHTML"],Of=["aria-selected","aria-disabled","tabindex","onClick"],Mf=["innerHTML"],Af={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Cf={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},If={class:"vtl-tab-text"},Nf={class:"vtl-tab-label"},Ff={key:0,class:"vtl-tab-sub"},Df={key:4,class:"vtl-rail-end"},Rf={key:5,class:"vtl-rail-end vtl-drawer-end"},zf={class:"vtl-main"},qf={class:"vtl-content"},Wf=["hidden"],jf={key:0,class:"vtl-host-hint"},Uf={key:1,class:"vtl-host-hint"},Hf=["onClick"],Vf={key:2,class:"vtl-host-hint err"};function Bf(e,t,a,o,n,s){const r=za("BackToTopButton");return C(),I("div",{class:Ze(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header,"has-phone-bar":e.phoneBarShown}]),style:pa(e.fabShown?{"--map-fab-clearance":"calc(56px + env(safe-area-inset-bottom))","--map-fab-beside":"calc(56px + env(safe-area-inset-left))"}:null)},[e.header?(C(),I("header",Gm,[O("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=i=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Km),O("span",Xm,[Gt(e.$slots,"brand")]),O("b",Ym,G(e.title),1),O("span",Jm,[Gt(e.$slots,"meta")])])):se("",!0),e.phoneBarShown?(C(),I("div",Zm,[O("button",{class:"vtl-phone-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=i=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Qm),O("span",ef,[Gt(e.$slots,"phone-end")])])):se("",!0),e.fabShown?(C(),I("button",{key:2,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[2]||(t[2]=i=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,tf)):se("",!0),e.narrow?(C(),ya(r,{key:3,target:e.activeHostEl,labels:{backToTop:e.T("actions.backToTop","Back to top")}},null,8,["target","labels"])):se("",!0),O("div",af,[O("nav",{class:Ze(["vtl-nav",{"has-rail-end":e.railEndShown&&!!e.$slots["rail-end"]||e.drawerEndShown&&!!e.$slots["phone-end"]}]),"aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[e.homeLink?(C(),I("a",{key:0,class:"vtl-home",href:e.homeLink,target:"_top","aria-label":e.homeText,title:e.railCollapsed&&!e.narrow?e.homeText:null},[O("span",{class:"vtl-home-ic","aria-hidden":"true",innerHTML:e.iconSvg("home")},null,8,sf),O("span",rf,G(e.homeText),1)],8,nf)):se("",!0),O("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[3]||(t[3]=(...i)=>e.toggleRail&&e.toggleRail(...i))},[O("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,cf),O("span",pf,G(e.label("collapse")),1)],8,lf),e.$slots.rail?Gt(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,1):e.groups&&e.groups.length?(C(!0),I(ne,{key:2},Ke(e.groups,i=>(C(),I("div",{class:"vtl-grp",key:i.key},[i.folder?(C(),I("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(i)),onClick:l=>e.toggleFolder(i.key)},[i.badge?(C(),I("span",df,G(i.badge),1)):se("",!0),O("span",gf,G(i.label),1),i.count!=null?(C(),I("span",mf,G(i.count),1)):se("",!0),O("span",{class:Ze(["vtl-chev",{open:!e.isFolderClosed(i)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,ff)],8,uf)):(C(),I("div",hf,[i.badge?(C(),I("span",bf,G(i.badge),1)):se("",!0),O("span",$f,G(i.label),1),i.count!=null?(C(),I("span",_f,G(i.count),1)):se("",!0)])),Da(O("div",vf,[(C(!0),I(ne,null,Ke(i.rows,l=>(C(),I("button",{key:l.key,type:"button",role:"tab",class:Ze(["vtl-tab",{active:l.key===e.active,disabled:l.disabled}]),"aria-selected":String(l.key===e.active),"aria-disabled":l.disabled?"true":null,tabindex:l.key===e.active?0:-1,ref_for:!0,ref:p=>e.registerTab(l.key,p),onClick:p=>e.pick(l.key),onKeydown:t[4]||(t[4]=p=>e.onKey(p))},[l.icon?(C(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,wf)):l.emoji?(C(),I("span",kf,G(l.emoji),1)):(C(),I("span",xf,G(e.initial(l.label)),1)),O("span",Sf,[O("span",Lf,[Kt(G(l.label),1),l.badge?(C(),I("span",Tf,G(l.badge),1)):se("",!0)]),l.sub?(C(),I("span",Pf,[O("span",{innerHTML:l.sub},null,8,Ef)])):se("",!0)])],42,yf))),128))],512),[[Ya,!i.folder||!e.isFolderClosed(i)]])]))),128)):(C(!0),I(ne,{key:3},Ke(e.items,i=>(C(),I("button",{key:i.key,type:"button",role:"tab",class:Ze(["vtl-tab",{active:i.key===e.active,disabled:i.disabled}]),"aria-selected":String(i.key===e.active),"aria-disabled":i.disabled?"true":null,tabindex:i.key===e.active?0:-1,ref_for:!0,ref:l=>e.registerTab(i.key,l),onClick:l=>e.pick(i.key),onKeydown:t[5]||(t[5]=l=>e.onKey(l))},[i.icon?(C(),I("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(i.icon)},null,8,Mf)):i.emoji?(C(),I("span",Af,G(i.emoji),1)):(C(),I("span",Cf,G(e.initial(i.label)),1)),O("span",If,[O("span",Nf,G(i.label),1),i.sub?(C(),I("span",Ff,G(i.sub),1)):se("",!0)])],42,Of))),128)),e.railEndShown&&e.$slots["rail-end"]?(C(),I("div",Df,[Gt(e.$slots,"rail-end",{collapsed:e.railCollapsed})])):se("",!0),e.drawerEndShown&&e.$slots["phone-end"]?(C(),I("div",Rf,[Gt(e.$slots,"phone-end")])):se("",!0)],10,of),O("main",zf,[e.header?Gt(e.$slots,"toolbar",{},void 0,void 0,0):se("",!0),O("div",qf,[(C(!0),I(ne,null,Ke(e.mountedElementRows,i=>Da((C(),I("section",{key:i.key,class:"vtl-host",hidden:i.key!==e.active,ref_for:!0,ref:l=>{l?e.hostEls[i.key]=l:delete e.hostEls[i.key]}},[O("div",{class:"vtl-host-slot",ref_for:!0,ref:l=>e.setHostSlot(i.key,l)},null,512),e.hostState[i.key]==="loading"?(C(),I("div",jf,G(e.T("messages.loadingNamed","Loading {name}…").replace("{name}",i.label)),1)):e.hostState[i.key]==="lost"?(C(),I("div",Uf,[Kt(G(e.T("messages.mapContextLost","This map was unloaded to free graphics memory."))+" ",1),O("button",{type:"button",class:"vtl-host-reload",onClick:l=>e.reloadHostElement(i.key)},G(e.T("buttons.reloadMap","Reload Map")),9,Hf)])):e.hostState[i.key]==="error"?(C(),I("div",Vf,[Kt(G(e.T("messages.couldNotLoadNamed","Could not load {name}.").replace("{name}",i.label)),1),t[6]||(t[6]=O("br",null,null,-1)),O("small",null,G(e.hostError[i.key]),1)])):se("",!0)],8,Wf)),[[Ya,i.key===e.active]])),128)),Gt(e.$slots,"default")])])])],6)}const Gf=qo(Bm,[["render",Bf],["styles",[Wm]]]),is=[{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},{code:"it",name:"Italian",nativeName:"Italiano",flag:"🇮🇹",hideFromSwitcher:!0},{code:"ro",name:"Romanian",nativeName:"Română",flag:"🇷🇴",hideFromSwitcher:!0},{code:"zh",name:"Chinese",nativeName:"中文",flag:"🇨🇳",hideFromSwitcher:!0}],yl=is.filter(e=>!e.hideFromSwitcher);function ls(e){return is.find(t=>t.code===e)}function wl(e){const t=String(e||"").split("-")[0].toLowerCase();return is.some(a=>a.code===t)?t:"en"}const kl="doxa-maps:locale";function Kf(){try{const e=localStorage.getItem(kl);if(e)return wl(e)}catch{}return wl(navigator==null?void 0:navigator.language)}function Xf(e){try{localStorage.setItem(kl,e)}catch{}}const Yf="doxa-language-request";function Jf(e){try{const t=e&&e.getRootNode&&e.getRootNode();if(t&&t.host)return t.host}catch{}return e||null}function Zf(e,t){const a=Jf(e);return!a||typeof a.dispatchEvent!="function"?!0:a.dispatchEvent(new CustomEvent(Yf,{detail:{language:t},bubbles:!0,composed:!0,cancelable:!0}))}function Qf(e,t=typeof window<"u"?window:null){try{if(!t||t.MAP_OWNS_PAGE!==!0||!t.history||!t.location)return!1;const a=new URL(t.location.href);return a.searchParams.set("lang",e),t.history.replaceState(t.history.state,"",a.toString()),!0}catch{return!1}}const eh=".slm[data-v-12760774]{position:relative;display:inline-flex;align-items:center;min-height:44px;max-width:100%;box-sizing:border-box;border-radius:8px;color:#3b463d}.slm-face[data-v-12760774]{display:inline-flex;align-items:center;gap:6px;padding-inline:10px;min-width:0;font-size:13px;font-weight:500;line-height:1.2}.slm-ic[data-v-12760774]{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted, #6d766e)}.slm-ic[data-v-12760774] svg{width:18px;height:18px}.slm-name[data-v-12760774]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.slm-code[data-v-12760774]{font-weight:600;font-size:12px;letter-spacing:.03em}.slm-caret[data-v-12760774]{flex:0 0 auto;color:var(--vtl-muted, #6d766e);font-size:11px}.slm.collapsed .slm-face[data-v-12760774]{flex-direction:column;gap:2px;padding-inline:4px}.slm-select[data-v-12760774]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;margin:0;border:0;cursor:pointer;font-size:16px}.slm[data-v-12760774]:hover{background:var(--vtl-accented, #d1d4cd)}.slm[data-v-12760774]:focus-within{outline:2px solid var(--vtl-accent, #92b195);outline-offset:-2px}@media (prefers-reduced-motion: reduce){.slm[data-v-12760774]{transition:none}}",th={class:"slm-face","aria-hidden":"true"},ah=["innerHTML"],oh={key:0,class:"slm-code"},nh=["lang","dir"],sh={key:2,class:"slm-caret"},rh=["value","aria-label","title"],ih=["value","lang","dir"],lh=qo({__name:"ShellLanguageMenu",props:{current:{type:String,default:"en"},collapsed:{type:Boolean,default:!1}},emits:["switch"],setup(e,{emit:t}){const a=e,o=t,n=Ye(()=>{const p=yl.slice();if(a.current&&!p.some(c=>c.code===a.current)){const c=ls(a.current);c&&p.push(c)}return p}),s=Ye(()=>ls(a.current)||{code:a.current,nativeName:a.current}),r=Ye(()=>Wt("controls.language",a.current)||"Language"),i=hl("globe");function l(p){const c=p.target,f=c.value;!f||f===a.current||(Zf(c,f)?(o("switch",f),Qf(f)):c.value=a.current)}return(p,c)=>(C(),I("span",{class:Ze(["slm",{collapsed:e.collapsed}])},[O("span",th,[O("span",{class:"slm-ic",innerHTML:ye(i)},null,8,ah),e.collapsed?(C(),I("span",oh,G(String(e.current).toUpperCase()),1)):(C(),I("span",{key:1,class:"slm-name",lang:s.value.code,dir:s.value.dir||null},G(s.value.nativeName),9,nh)),e.collapsed?se("",!0):(C(),I("span",sh,"▾"))]),O("select",{class:"slm-select",value:e.current,"aria-label":r.value,title:r.value,onChange:l},[(C(!0),I(ne,null,Ke(n.value,f=>(C(),I("option",{key:f.code,value:f.code,lang:f.code,dir:f.dir||null},G(f.nativeName),9,ih))),128))],40,rh)],2))}},[["styles",[eh]],["__scopeId","data-v-12760774"]]),so={en:{backToTop:"Back to top","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 Posters","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.",close:"Close",help:"About this map",desktopOnly:"desktop only",lab:"lab",experimentalSub:"experimental bundle",mobileNotBuilt:"not built for mobile",dismiss:"Dismiss",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",home:"Back to homepage","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.pplr-data-maps":"PPLR Data Maps","tab.wall-of-people-groups":"Wall of People Groups","tab.country-posters":"Country Posters","sub.country-posters":"a poster for every country","tab.poster-design":"Poster Design","sub.poster-design":"every poster style and size","tab.doxa-vision-card":"Doxa Vision Card"},es:{backToTop:"Volver arriba","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":"Carteles de la 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.",close:"Cerrar",help:"Acerca de este mapa",desktopOnly:"solo escritorio",lab:"beta",experimentalSub:"mapa experimental",mobileNotBuilt:"no diseñado para móvil",dismiss:"Cerrar",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",home:"Volver a la página de inicio","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.pplr-data-maps":"Mapas de datos PPLR","tab.wall-of-people-groups":"Muro de los pueblos","tab.country-posters":"Carteles por país","sub.country-posters":"un cartel para cada país","tab.poster-design":"Diseño de carteles","sub.poster-design":"todos los estilos y tamaños de cartel","tab.doxa-vision-card":"Tarjeta de visión Doxa"},fr:{backToTop:"Retour en haut","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":"Affiches de la 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.",close:"Fermer",help:"À propos de cette carte",desktopOnly:"ordinateur uniquement",lab:"bêta",experimentalSub:"carte expérimentale",mobileNotBuilt:"pas conçu pour mobile",dismiss:"Fermer",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",home:"Retour à l’accueil","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.pplr-data-maps":"Cartes de données PPLR","tab.wall-of-people-groups":"Mur des peuples","tab.country-posters":"Affiches par pays","sub.country-posters":"une affiche pour chaque pays","tab.poster-design":"Conception d’affiches","sub.poster-design":"tous les styles et formats d’affiche","tab.doxa-vision-card":"Carte de vision Doxa"},de:{backToTop:"Nach oben","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":"Poster der 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.",close:"Schließen",help:"Über diese Karte",desktopOnly:"nur Desktop",lab:"Beta",experimentalSub:"experimentelle Karte",mobileNotBuilt:"nicht für Mobilgeräte",dismiss:"Schließen",desktopOnly:"nur Desktop",lab:"Beta",experimentalSub:"experimentelle Karte",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",home:"Zurück zur Startseite","tab.prayer-walk-planner":"Gebetsspaziergänge","tab.upg-neighbor":"UPG-Nachbar","tab.key-cities":"Schlüsselstädte","tab.all-people-groups":"Alle Volksgruppen","tab.pplr-data-maps":"PPLR-Datenkarten","tab.wall-of-people-groups":"Wand der Volksgruppen","tab.country-posters":"Länderposter","sub.country-posters":"ein Poster für jedes Land","tab.poster-design":"Postergestaltung","sub.poster-design":"alle Posterstile und -größen","tab.doxa-vision-card":"Doxa-Visionskarte"},pt:{backToTop:"Voltar ao topo","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":"Cartazes da 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.",close:"Fechar",help:"Sobre este mapa",desktopOnly:"só no computador",lab:"beta",experimentalSub:"mapa experimental",mobileNotBuilt:"não feito para celular",dismiss:"Fechar",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",home:"Voltar à página inicial","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.pplr-data-maps":"Mapas de dados PPLR","tab.wall-of-people-groups":"Mural dos povos","tab.country-posters":"Cartazes por país","sub.country-posters":"um cartaz para cada país","tab.poster-design":"Design de cartazes","sub.poster-design":"todos os estilos e tamanhos de cartaz","tab.doxa-vision-card":"Cartão de visão Doxa"},it:{backToTop:"Torna su","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":"Poster della 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.",close:"Chiudi",help:"Informazioni su questa mappa",desktopOnly:"solo desktop",lab:"beta",experimentalSub:"mappa sperimentale",mobileNotBuilt:"non pensato per mobile",dismiss:"Chiudi",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",home:"Torna alla home page","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.pplr-data-maps":"Mappe dati PPLR","tab.wall-of-people-groups":"Muro dei popoli","tab.country-posters":"Poster per paese","sub.country-posters":"un poster per ogni paese","tab.poster-design":"Design dei poster","sub.poster-design":"tutti gli stili e i formati dei poster","tab.doxa-vision-card":"Scheda visione Doxa"},ro:{backToTop:"Sus","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":"Afișe din 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.",close:"Închide",help:"Despre această hartă",desktopOnly:"doar pe desktop",lab:"beta",experimentalSub:"hartă experimentală",mobileNotBuilt:"nu e făcut pentru mobil",dismiss:"Închide",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",home:"Înapoi la pagina principală","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.pplr-data-maps":"Hărți de date PPLR","tab.wall-of-people-groups":"Zidul popoarelor","tab.country-posters":"Afișe pe țări","sub.country-posters":"un afiș pentru fiecare țară","tab.poster-design":"Design de afișe","sub.poster-design":"toate stilurile și dimensiunile de afiș","tab.doxa-vision-card":"Card de viziune Doxa"},ru:{backToTop:"Наверх","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 — соберите дерево или разместите собранное дерево, чтобы загрузить её.",close:"Закрыть",help:"Об этой карте",desktopOnly:"только на компьютере",lab:"бета",experimentalSub:"экспериментальная карта",mobileNotBuilt:"не для телефона",dismiss:"Закрыть",desktopOnly:"только на компьютере",lab:"бета",experimentalSub:"экспериментальная карта",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",home:"На главную страницу","tab.prayer-walk-planner":"Молитвенные прогулки","tab.upg-neighbor":"Сосед UPG","tab.key-cities":"Ключевые города","tab.all-people-groups":"Все народы","tab.pplr-data-maps":"Карты данных PPLR","tab.wall-of-people-groups":"Стена народов","tab.country-posters":"Плакаты по странам","sub.country-posters":"плакат для каждой страны","tab.poster-design":"Дизайн плакатов","sub.poster-design":"все стили и размеры плакатов","tab.doxa-vision-card":"Карточка видения Doxa"},ar:{backToTop:"إلى الأعلى","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 — ابنِ الشجرة أو قدّم الشجرة المبنية لتحميلها.",close:"إغلاق",help:"عن هذه الخريطة",desktopOnly:"على الحاسوب فقط",lab:"تجريبي",experimentalSub:"خريطة تجريبية",mobileNotBuilt:"غير مُعدّ للهاتف",dismiss:"إغلاق",desktopOnly:"على الحاسوب فقط",lab:"تجريبي",experimentalSub:"خريطة تجريبية",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",home:"العودة إلى الصفحة الرئيسية","tab.prayer-walk-planner":"جولات الصلاة","tab.upg-neighbor":"جار UPG","tab.key-cities":"المدن الرئيسية","tab.all-people-groups":"جميع الشعوب","tab.pplr-data-maps":"خرائط بيانات PPLR","tab.wall-of-people-groups":"جدار الشعوب","tab.country-posters":"ملصقات الدول","sub.country-posters":"ملصق لكل دولة","tab.poster-design":"تصميم الملصقات","sub.poster-design":"كل أنماط الملصقات وأحجامها","tab.doxa-vision-card":"بطاقة رؤية Doxa"},hi:{backToTop:"ऊपर जाएँ","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 से बनता है — इसे लोड करने के लिए ट्री बनाएँ या बना हुआ ट्री सर्व करें।",close:"बंद करें",help:"इस नक्शे के बारे में",desktopOnly:"केवल डेस्कटॉप",lab:"बीटा",experimentalSub:"प्रायोगिक मानचित्र",mobileNotBuilt:"मोबाइल के लिए नहीं बना",dismiss:"बंद करें",desktopOnly:"केवल डेस्कटॉप",lab:"बीटा",experimentalSub:"प्रायोगिक मानचित्र",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",home:"होमपेज पर वापस जाएँ","tab.prayer-walk-planner":"प्रार्थना पदयात्रा","tab.upg-neighbor":"UPG पड़ोसी","tab.key-cities":"प्रमुख शहर","tab.all-people-groups":"सभी जनसमूह","tab.pplr-data-maps":"PPLR डेटा मानचित्र","tab.wall-of-people-groups":"जनसमूहों की दीवार","tab.country-posters":"देश पोस्टर","sub.country-posters":"हर देश के लिए एक पोस्टर","tab.poster-design":"पोस्टर डिज़ाइन","sub.poster-design":"हर पोस्टर शैली और आकार","tab.doxa-vision-card":"Doxa दर्शन कार्ड"},zh:{backToTop:"回到顶部","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 组成——请构建目录树或提供已构建的目录树以加载它。",close:"关闭",help:"关于此地图",desktopOnly:"仅限桌面",lab:"测试版",experimentalSub:"实验性地图",mobileNotBuilt:"未针对手机设计",dismiss:"关闭",desktopOnly:"仅限桌面",lab:"测试版",experimentalSub:"实验性地图",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",home:"返回首页","tab.prayer-walk-planner":"祷告行走","tab.upg-neighbor":"UPG 邻居","tab.key-cities":"重点城市","tab.all-people-groups":"所有民族","tab.pplr-data-maps":"PPLR 数据地图","tab.wall-of-people-groups":"民族之墙","tab.country-posters":"国家海报","sub.country-posters":"每个国家一张海报","tab.poster-design":"海报设计","sub.poster-design":"所有海报样式与尺寸","tab.doxa-vision-card":"Doxa 异象卡"}},cs=Object.keys(so);function ch(e){return Object.prototype.hasOwnProperty.call(so.en,e)}function Yo(e,t,a){let n=(so[e]||so.en)[t]??so.en[t]??t;if(a)for(const s in a)n=n.split("{"+s+"}").join(String(a[s]));return n}const xl={en:{"prayer-walk-planner":{what:"Plan a prayer walk: draw the areas your teams will cover and print each one as a one-page map.",how:"Draw a zone, name it, select the zones you need and press Print. Each zone prints on its own page with coordinates, one map per team."},"gospel-internet":{what:"See which of the ~2,000 people groups already have gospel resources in their language, and where the internet can carry those resources to them.",how:"Explore the language tree, the bounded and centered sets and the map. Pick a list on the side to narrow every view."},"country-posters":{what:"Printable prayer posters, one per country, showing its people groups.",how:"Pick a country from the poster list or on the map, then print it straight from your browser."},"all-people-groups":{what:"Every people group on earth on one map, colored by how reached it is, with the DOXA prayer set highlighted.",how:"Click a category in the legend to show only those groups. Click a dot for its details and prayer link."},"doxa-vision-card":{what:"The remaining task in one card: all people groups, then the unreached, then the frontier, then the DOXA prayer set.",how:"Read it from top to bottom. Every number is computed from the people-group data, not typed in."},"pplr-data-maps":{what:"People-group research data on maps: language families, people clusters, religions and data-source coverage.",how:"Choose a view from the tabs, then use the legend to highlight a family, cluster or religion on the map."},"wall-of-people-groups":{what:"Every DOXA people group on one wall, to bless them. In Bless mode the wall is the printable poster (5 × 8 ft by default), each group with a blessing verse; in Social mode it is a shared prayer wall.",how:"Bless: look around the poster exactly as it will print, pick a size and press Print HD poster. Social: pray for a group, read or leave comments, and share its prayer page."}},es:{"prayer-walk-planner":{what:"Planifique una caminata de oración: dibuje las zonas que recorrerán sus equipos e imprima cada una como un mapa de una página.",how:"Dibuje una zona, póngale nombre, seleccione las zonas que necesita y pulse Imprimir. Cada zona se imprime en su propia página con coordenadas: un mapa por equipo."},"gospel-internet":{what:"Vea cuáles de los ~2000 grupos de pueblos ya tienen recursos del evangelio en su idioma, y dónde internet puede llevárselos.",how:"Explore el árbol de idiomas, los conjuntos delimitado y centrado y el mapa. Elija una lista al lado para acotar cada vista."},"country-posters":{what:"Carteles de oración para imprimir, uno por país, con sus grupos de pueblos.",how:"Elija un país en la lista de carteles o en el mapa, e imprímalo directamente desde el navegador."},"all-people-groups":{what:"Todos los grupos de pueblos del mundo en un mapa, coloreados según lo alcanzados que están, con el conjunto de oración de DOXA resaltado.",how:"Haga clic en una categoría de la leyenda para ver solo esos grupos. Haga clic en un punto para ver sus datos y el enlace de oración."},"doxa-vision-card":{what:"La tarea pendiente en una tarjeta: todos los grupos de pueblos, luego los no alcanzados, luego la frontera y luego el conjunto de oración de DOXA.",how:"Léala de arriba abajo. Cada cifra se calcula a partir de los datos, no se escribe a mano."},"pplr-data-maps":{what:"Datos de investigación sobre grupos de pueblos en mapas: familias lingüísticas, agrupaciones de pueblos, religiones y cobertura de fuentes.",how:"Elija una vista en las pestañas y use la leyenda para resaltar una familia, agrupación o religión en el mapa."},"wall-of-people-groups":{what:"Todos los grupos de pueblos de DOXA en un muro, para bendecirlos. En el modo Bendecir el muro es el póster para imprimir (5 × 8 pies por defecto), cada grupo con un versículo de bendición; en el modo Social es un muro de oración compartido.",how:"Bendecir: recorra el póster tal como se imprimirá, elija un tamaño y pulse Imprimir póster HD. Social: ore por un grupo, lea o deje comentarios y comparta su página de oración."}},fr:{"prayer-walk-planner":{what:"Préparez une marche de prière : dessinez les zones que vos équipes parcourront et imprimez chacune sur une carte d’une page.",how:"Dessinez une zone, nommez-la, sélectionnez les zones voulues et cliquez sur Imprimer. Chaque zone s’imprime sur sa propre page avec ses coordonnées : une carte par équipe."},"gospel-internet":{what:"Voyez lesquels des ~2 000 groupes de peuples ont déjà des ressources de l’Évangile dans leur langue, et où internet peut les leur apporter.",how:"Explorez l’arbre des langues, les ensembles délimité et centré et la carte. Choisissez une liste sur le côté pour affiner chaque vue."},"country-posters":{what:"Des affiches de prière à imprimer, une par pays, avec ses groupes de peuples.",how:"Choisissez un pays dans la liste des affiches ou sur la carte, puis imprimez-le directement depuis le navigateur."},"all-people-groups":{what:"Tous les groupes de peuples du monde sur une carte, colorés selon leur degré d’atteinte, avec l’ensemble de prière DOXA mis en valeur.",how:"Cliquez sur une catégorie de la légende pour n’afficher que ces groupes. Cliquez sur un point pour ses détails et son lien de prière."},"doxa-vision-card":{what:"La tâche restante en une carte : tous les groupes de peuples, puis les non atteints, puis la frontière, puis l’ensemble de prière DOXA.",how:"Lisez-la de haut en bas. Chaque chiffre est calculé à partir des données, pas saisi à la main."},"pplr-data-maps":{what:"Des données de recherche sur les groupes de peuples, en cartes : familles de langues, grappes de peuples, religions et couverture des sources.",how:"Choisissez une vue dans les onglets, puis utilisez la légende pour mettre en valeur une famille, une grappe ou une religion."},"wall-of-people-groups":{what:"Tous les groupes de peuples DOXA sur un seul mur, pour les bénir. En mode Bénir, le mur est l’affiche à imprimer (5 × 8 pieds par défaut), chaque groupe avec un verset de bénédiction ; en mode Social, c’est un mur de prière partagé.",how:"Bénir : parcourez l’affiche telle qu’elle s’imprimera, choisissez une taille et appuyez sur Imprimer l’affiche HD. Social : priez pour un groupe, lisez ou laissez des commentaires et partagez sa page de prière."}},de:{"prayer-walk-planner":{what:"Einen Gebetsspaziergang planen: die Gebiete Ihrer Teams zeichnen und jedes als einseitige Karte drucken.",how:"Zeichnen Sie ein Gebiet, benennen Sie es, wählen Sie die nötigen Gebiete und drücken Sie auf Drucken. Jedes Gebiet wird mit Koordinaten auf einer eigenen Seite gedruckt: eine Karte pro Team."},"gospel-internet":{what:"Sehen, welche der ~2.000 Volksgruppen schon Evangeliumsressourcen in ihrer Sprache haben und wo das Internet sie zu ihnen bringen kann.",how:"Erkunden Sie den Sprachbaum, die begrenzte und die zentrierte Menge und die Karte. Wählen Sie seitlich eine Liste, um jede Ansicht einzugrenzen."},"country-posters":{what:"Druckbare Gebetsplakate, eines pro Land, mit seinen Volksgruppen.",how:"Wählen Sie ein Land in der Plakatliste oder auf der Karte und drucken Sie es direkt aus dem Browser."},"all-people-groups":{what:"Alle Volksgruppen der Welt auf einer Karte, nach Erreichtheit eingefärbt, mit dem DOXA-Gebetsset hervorgehoben.",how:"Klicken Sie auf eine Kategorie der Legende, um nur diese Gruppen zu zeigen. Klicken Sie auf einen Punkt für Details und den Gebetslink."},"doxa-vision-card":{what:"Die verbleibende Aufgabe auf einer Karte: alle Volksgruppen, dann die unerreichten, dann die Frontier-Gruppen, dann das DOXA-Gebetsset.",how:"Lesen Sie sie von oben nach unten. Jede Zahl wird aus den Daten berechnet, nicht eingetippt."},"pplr-data-maps":{what:"Forschungsdaten zu Volksgruppen auf Karten: Sprachfamilien, Volkscluster, Religionen und Quellenabdeckung.",how:"Wählen Sie oben eine Ansicht und heben Sie mit der Legende eine Familie, einen Cluster oder eine Religion hervor."},"wall-of-people-groups":{what:"Jede DOXA-Volksgruppe auf einer Wand, um sie zu segnen. Im Modus Segnen ist die Wand das druckbare Poster (standardmäßig 5 × 8 Fuß), jede Gruppe mit einem Segensvers; im Modus Sozial ist sie eine gemeinsame Gebetswand.",how:"Segnen: Sehen Sie sich das Poster genau so an, wie es gedruckt wird, wählen Sie eine Größe und drücken Sie HD-Poster drucken. Sozial: Beten Sie für eine Gruppe, lesen oder schreiben Sie Kommentare und teilen Sie ihre Gebetsseite."}},pt:{"prayer-walk-planner":{what:"Planeje uma caminhada de oração: desenhe as áreas que suas equipes vão cobrir e imprima cada uma como um mapa de uma página.",how:"Desenhe uma zona, dê um nome, selecione as zonas necessárias e clique em Imprimir. Cada zona sai em sua própria página com coordenadas: um mapa por equipe."},"gospel-internet":{what:"Veja quais dos ~2.000 grupos de povos já têm recursos do evangelho no seu idioma, e onde a internet pode levá-los até eles.",how:"Explore a árvore de idiomas, os conjuntos delimitado e centrado e o mapa. Escolha uma lista ao lado para filtrar cada vista."},"country-posters":{what:"Cartazes de oração para imprimir, um por país, com seus grupos de povos.",how:"Escolha um país na lista de cartazes ou no mapa e imprima direto do navegador."},"all-people-groups":{what:"Todos os grupos de povos do mundo num mapa, coloridos pelo grau de alcance, com o conjunto de oração da DOXA em destaque.",how:"Clique numa categoria da legenda para ver só esses grupos. Clique num ponto para ver detalhes e o link de oração."},"doxa-vision-card":{what:"A tarefa restante num cartão: todos os grupos de povos, depois os não alcançados, depois a fronteira, depois o conjunto de oração da DOXA.",how:"Leia de cima para baixo. Cada número é calculado a partir dos dados, não digitado."},"pplr-data-maps":{what:"Dados de pesquisa sobre grupos de povos em mapas: famílias linguísticas, agrupamentos de povos, religiões e cobertura das fontes.",how:"Escolha uma vista nas abas e use a legenda para destacar uma família, agrupamento ou religião no mapa."},"wall-of-people-groups":{what:"Todos os grupos de povos da DOXA num só mural, para abençoá-los. No modo Abençoar, o mural é o cartaz para imprimir (5 × 8 pés por padrão), cada grupo com um versículo de bênção; no modo Social, é um mural de oração partilhado.",how:"Abençoar: percorra o cartaz tal como será impresso, escolha um tamanho e prima Imprimir cartaz HD. Social: ore por um grupo, leia ou deixe comentários e partilhe a sua página de oração."}},it:{"prayer-walk-planner":{what:"Pianifica una camminata di preghiera: disegna le zone che le tue squadre percorreranno e stampa ognuna come mappa di una pagina.",how:"Disegna una zona, dalle un nome, seleziona le zone che servono e premi Stampa. Ogni zona si stampa su una pagina con le coordinate: una mappa per squadra."},"gospel-internet":{what:"Scopri quali dei ~2.000 gruppi etnici hanno già risorse del vangelo nella loro lingua, e dove internet può portargliele.",how:"Esplora l’albero delle lingue, gli insiemi delimitato e centrato e la mappa. Scegli un elenco a lato per restringere ogni vista."},"country-posters":{what:"Poster di preghiera da stampare, uno per paese, con i suoi gruppi etnici.",how:"Scegli un paese dall’elenco dei poster o sulla mappa e stampalo direttamente dal browser."},"all-people-groups":{what:"Tutti i gruppi etnici del mondo su una mappa, colorati secondo quanto sono raggiunti, con l’insieme di preghiera DOXA evidenziato.",how:"Clicca una categoria della legenda per mostrare solo quei gruppi. Clicca un punto per dettagli e link di preghiera."},"doxa-vision-card":{what:"Il compito rimanente in una scheda: tutti i gruppi etnici, poi i non raggiunti, poi la frontiera, poi l’insieme di preghiera DOXA.",how:"Leggila dall’alto in basso. Ogni numero è calcolato dai dati, non digitato."},"pplr-data-maps":{what:"Dati di ricerca sui gruppi etnici su mappa: famiglie linguistiche, cluster di popoli, religioni e copertura delle fonti.",how:"Scegli una vista dalle schede, poi usa la legenda per evidenziare una famiglia, un cluster o una religione."},"wall-of-people-groups":{what:"Tutti i gruppi etnici DOXA su un solo muro, per benedirli. In modalità Benedire il muro è il poster da stampare (5 × 8 piedi di default), ogni gruppo con un versetto di benedizione; in modalità Social è un muro di preghiera condiviso.",how:"Benedire: esplora il poster esattamente come verrà stampato, scegli una dimensione e premi Stampa poster HD. Social: prega per un gruppo, leggi o lascia commenti e condividi la sua pagina di preghiera."}},ro:{"prayer-walk-planner":{what:"Planificați o plimbare de rugăciune: desenați zonele pe care le vor parcurge echipele și tipăriți fiecare ca hartă de o pagină.",how:"Desenați o zonă, dați-i un nume, selectați zonele necesare și apăsați Tipărire. Fiecare zonă se tipărește pe o pagină, cu coordonate: câte o hartă pentru fiecare echipă."},"gospel-internet":{what:"Vedeți care dintre cele ~2.000 de grupuri de popoare au deja resurse ale Evangheliei în limba lor și unde le poate duce internetul.",how:"Explorați arborele limbilor, mulțimile delimitată și centrată și harta. Alegeți o listă din lateral pentru a restrânge fiecare vedere."},"country-posters":{what:"Afișe de rugăciune de tipărit, câte unul pentru fiecare țară, cu grupurile ei de popoare.",how:"Alegeți o țară din lista de afișe sau de pe hartă și tipăriți-o direct din browser."},"all-people-groups":{what:"Toate grupurile de popoare ale lumii pe o hartă, colorate după cât sunt de atinse, cu setul de rugăciune DOXA evidențiat.",how:"Faceți clic pe o categorie din legendă pentru a afișa doar acele grupuri. Faceți clic pe un punct pentru detalii și linkul de rugăciune."},"doxa-vision-card":{what:"Sarcina rămasă într-un card: toate grupurile de popoare, apoi cele neatinse, apoi cele de frontieră, apoi setul de rugăciune DOXA.",how:"Citiți-l de sus în jos. Fiecare număr este calculat din date, nu tastat."},"pplr-data-maps":{what:"Date de cercetare despre grupurile de popoare pe hărți: familii de limbi, grupuri de popoare, religii și acoperirea surselor.",how:"Alegeți o vedere din file, apoi folosiți legenda pentru a evidenția o familie, un grup sau o religie."},"wall-of-people-groups":{what:"Toate grupurile de popoare DOXA pe un singur perete, ca să le binecuvântăm. În modul Binecuvântare, peretele este afișul de tipărit (5 × 8 picioare implicit), fiecare grup cu un verset de binecuvântare; în modul Social este un perete de rugăciune comun.",how:"Binecuvântare: explorați afișul exact cum se va tipări, alegeți o dimensiune și apăsați Tipărește afișul HD. Social: rugați-vă pentru un grup, citiți sau lăsați comentarii și distribuiți pagina lui de rugăciune."}},ru:{"prayer-walk-planner":{what:"Спланируйте молитвенную прогулку: нарисуйте районы для ваших команд и распечатайте каждый как карту на одну страницу.",how:"Нарисуйте зону, назовите её, выберите нужные зоны и нажмите «Печать». Каждая зона печатается на отдельной странице с координатами — по карте на команду."},"gospel-internet":{what:"Узнайте, у каких из ~2000 народов уже есть евангельские материалы на их языке и где интернет может донести их до них.",how:"Исследуйте языковое дерево, ограниченное и центрированное множества и карту. Выберите список сбоку, чтобы сузить любой вид."},"country-posters":{what:"Молитвенные плакаты для печати, по одному на страну, с её народами.",how:"Выберите страну в списке плакатов или на карте и распечатайте прямо из браузера."},"all-people-groups":{what:"Все народы мира на одной карте, окрашенные по степени достигнутости, с выделенным молитвенным набором DOXA.",how:"Нажмите категорию в легенде, чтобы показать только эти группы. Нажмите точку, чтобы увидеть сведения и ссылку для молитвы."},"doxa-vision-card":{what:"Оставшаяся задача на одной карточке: все народы, затем недостигнутые, затем пограничные, затем молитвенный набор DOXA.",how:"Читайте сверху вниз. Каждое число вычислено из данных, а не введено вручную."},"pplr-data-maps":{what:"Исследовательские данные о народах на картах: языковые семьи, кластеры народов, религии и охват источников.",how:"Выберите вид во вкладках, затем выделите семью, кластер или религию с помощью легенды."},"wall-of-people-groups":{what:"Все народы DOXA на одной стене, чтобы благословлять их. В режиме «Благословение» стена — это плакат для печати (по умолчанию 5 × 8 футов), у каждого народа — стих благословения; в режиме «Соцсеть» это общая молитвенная стена.",how:"«Благословение»: просмотрите плакат точно таким, каким он будет напечатан, выберите размер и нажмите «Печать плаката HD». «Соцсеть»: молитесь о народе, читайте и оставляйте комментарии, делитесь его молитвенной страницей."}},ar:{"prayer-walk-planner":{what:"خطِّط لجولة صلاة: ارسم المناطق التي ستغطيها فرقك واطبع كل منطقة خريطةً من صفحة واحدة.",how:"ارسم منطقة وسمِّها، واختر المناطق التي تحتاجها ثم اضغط «طباعة». تُطبع كل منطقة في صفحة مستقلة مع إحداثياتها: خريطة لكل فريق."},"gospel-internet":{what:"اعرف أيَّ الشعوب الألفين تقريبًا لديها بالفعل موارد للإنجيل بلغتها، وأين يمكن للإنترنت أن يوصلها إليها.",how:"استكشف شجرة اللغات والمجموعتين المحدودة والمتمركزة والخريطة. اختر قائمة من الجانب لتضييق كل عرض."},"country-posters":{what:"ملصقات صلاة للطباعة، ملصق لكل بلد، تُظهر شعوبه.",how:"اختر بلدًا من قائمة الملصقات أو على الخريطة، ثم اطبعه مباشرة من المتصفح."},"all-people-groups":{what:"كل شعوب العالم على خريطة واحدة، ملوَّنة بحسب درجة وصول الإنجيل إليها، مع إبراز مجموعة صلاة DOXA.",how:"انقر فئة في مفتاح الخريطة لعرض تلك الشعوب فقط. انقر نقطة لترى تفاصيلها ورابط الصلاة."},"doxa-vision-card":{what:"المهمة المتبقية في بطاقة واحدة: كل الشعوب، ثم غير المُبشَّرة، ثم الحدودية، ثم مجموعة صلاة DOXA.",how:"اقرأها من الأعلى إلى الأسفل. كل رقم محسوب من البيانات، وليس مكتوبًا يدويًا."},"pplr-data-maps":{what:"بيانات بحثية عن الشعوب على خرائط: العائلات اللغوية والعناقيد الشعبية والأديان وتغطية المصادر.",how:"اختر عرضًا من التبويبات، ثم استخدم مفتاح الخريطة لإبراز عائلة أو عنقود أو دين."},"wall-of-people-groups":{what:"كل شعوب DOXA على جدار واحد لنباركها. في وضع «بركة» يكون الجدار هو الملصق الجاهز للطباعة (5 × 8 أقدام افتراضيًا)، ولكل شعب آية بركة؛ وفي وضع «تفاعلي» يكون جدار صلاة مشتركًا.",how:"«بركة»: تجوّل في الملصق كما سيُطبع تمامًا، واختر المقاس ثم اضغط «طباعة ملصق عالي الدقة». «تفاعلي»: صلِّ لأجل شعب، واقرأ التعليقات أو اكتب تعليقًا، وشارك صفحة الصلاة الخاصة به."}},hi:{"prayer-walk-planner":{what:"प्रार्थना-यात्रा की योजना बनाएँ: अपनी टीमों के क्षेत्र बनाएँ और हर क्षेत्र को एक पन्ने के नक्शे के रूप में छापें।",how:"एक क्षेत्र बनाएँ, उसे नाम दें, ज़रूरी क्षेत्र चुनें और प्रिंट दबाएँ। हर क्षेत्र निर्देशांकों के साथ अपने पन्ने पर छपता है: हर टीम के लिए एक नक्शा।"},"gospel-internet":{what:"देखें कि लगभग 2,000 जन-समूहों में से किनके पास उनकी भाषा में सुसमाचार के संसाधन पहले से हैं, और इंटरनेट उन्हें कहाँ तक पहुँचा सकता है।",how:"भाषा-वृक्ष, सीमित और केंद्रित समुच्चय और नक्शा देखें। हर दृश्य को सीमित करने के लिए बगल में एक सूची चुनें।"},"country-posters":{what:"छापने योग्य प्रार्थना-पोस्टर, हर देश के लिए एक, उसके जन-समूहों के साथ।",how:"पोस्टर सूची में या नक्शे पर कोई देश चुनें, फिर सीधे ब्राउज़र से छापें।"},"all-people-groups":{what:"दुनिया के सभी जन-समूह एक नक्शे पर, इस आधार पर रंगे हुए कि वे कितने पहुँचे हुए हैं, DOXA प्रार्थना-समूह उभारा हुआ।",how:"केवल वे समूह देखने के लिए लीजेंड में एक श्रेणी पर क्लिक करें। विवरण और प्रार्थना-लिंक के लिए किसी बिंदु पर क्लिक करें।"},"doxa-vision-card":{what:"बचा हुआ काम एक कार्ड में: सभी जन-समूह, फिर अपहुँचे, फिर सीमांत, फिर DOXA प्रार्थना-समूह।",how:"इसे ऊपर से नीचे पढ़ें। हर संख्या आँकड़ों से गणना की गई है, हाथ से नहीं लिखी गई।"},"pplr-data-maps":{what:"जन-समूहों पर शोध-आँकड़े नक्शों पर: भाषा-परिवार, जन-क्लस्टर, धर्म और स्रोतों की पहुँच।",how:"टैब से कोई दृश्य चुनें, फिर लीजेंड से किसी परिवार, क्लस्टर या धर्म को नक्शे पर उभारें।"},"wall-of-people-groups":{what:"हर DOXA जन-समूह एक ही दीवार पर, उन्हें आशीष देने के लिए। आशीष मोड में दीवार छापने योग्य पोस्टर है (डिफ़ॉल्ट 5 × 8 फ़ुट), हर समूह के साथ आशीष का एक पद; सामाजिक मोड में यह एक साझा प्रार्थना दीवार है।",how:"आशीष: पोस्टर को ठीक वैसा ही देखें जैसा वह छपेगा, आकार चुनें और HD पोस्टर छापें दबाएँ। सामाजिक: किसी समूह के लिए प्रार्थना करें, टिप्पणियाँ पढ़ें या लिखें, और उसका प्रार्थना पेज साझा करें।"}},zh:{"prayer-walk-planner":{what:"规划祷告行走:画出各小组要走的区域,把每个区域打印成一页地图。",how:"画一个区域并命名,选择需要的区域后点“打印”。每个区域连同坐标单独打印一页:每个小组一张地图。"},"gospel-internet":{what:"看看约 2,000 个族群中,哪些已经有母语的福音资源,以及互联网能把这些资源带到哪里。",how:"浏览语言树、有界集与中心集以及地图。在侧边选择一个名单,可缩小每个视图的范围。"},"country-posters":{what:"可打印的祷告海报,每个国家一张,列出其中的族群。",how:"在海报列表或地图上选择一个国家,然后直接从浏览器打印。"},"all-people-groups":{what:"世界上所有族群都在一张地图上,按福音进展着色,并突出显示 DOXA 祷告名单。",how:"点击图例中的类别,只显示这些族群。点击一个点,查看详情和祷告链接。"},"doxa-vision-card":{what:"一张卡片看清剩下的使命:所有族群,然后是未得之民,再是前沿族群,最后是 DOXA 祷告名单。",how:"从上往下读。每个数字都由数据计算得出,而不是手工填写。"},"pplr-data-maps":{what:"族群研究数据地图:语系、民族集群、宗教和数据来源覆盖情况。",how:"在标签页中选择一个视图,然后用图例在地图上突出显示某个语系、集群或宗教。"},"wall-of-people-groups":{what:"所有 DOXA 族群都在一面墙上,为要祝福他们。在“祝福”模式下,这面墙就是可打印的海报(默认 5 × 8 英尺),每个族群配一节祝福经文;在“社交”模式下,它是一面共同的祷告墙。",how:"祝福:按打印时的样子浏览海报,选择尺寸,然后点击“打印高清海报”。社交:为某个族群祷告,阅读或留下评论,并分享它的祷告页面。"}}};function Sl(e,t){var o;const a=String(t||"en").toLowerCase().split(/[-_]/)[0];return((o=xl[a])==null?void 0:o[e])||xl.en[e]||null}const Ll="previews/examples/middle-east-core",ph=Array.from({length:12},(e,t)=>`${Ll}/packet-p${String(t+1).padStart(2,"0")}.webp`),uh=Array.from({length:70},(e,t)=>`${Ll}/card-${String(t+1).padStart(2,"0")}.webp`),dh={"upg-100":{storageKey:"upg-100",trigger:"control",pos:{side:"56px",narrow:{placement:"top-left",side:"12px"}},leadKey:"mapInfo.tab.upg-100.lead",strategyKey:"mapStrategy.tab.upg-100",takeawayKey:"mapInfo.tab.upg-100.takeaway",noteKey:"pins.approximate",examples:[{kind:"image",src:"previews/middle-east-core.webp",full:"posters/middle-east-core.html"},{kind:"pages",pages:ph},{kind:"deck",cards:uh}]},"regions-dashboard":{storageKey:"regions-dashboard",pos:{side:"56px",narrow:{placement:"top-left",side:"8px"}},leadKey:"mapInfo.tab.regions-dashboard.lead",strategyKey:"mapStrategy.tab.regions-dashboard",trigger:"control",takeawayKey:"mapInfo.tab.regions-dashboard.takeaway",noteKey:"mapInfo.tab.regions-dashboard.note",examples:[]},"dashboard-plus-grid":{storageKey:"dashboard-plus-grid",trigger:"control",pos:{top:"46px",raise:!0},leadKey:"mapInfo.tab.dashboard-plus-grid.lead",strategyKey:"mapStrategy.tab.dashboard-plus-grid",takeawayKey:"mapInfo.tab.dashboard-plus-grid.takeaway",examples:[{kind:"table",columns:[{key:"mapInfo.col.peopleGroup"},{key:"mapInfo.col.country"},{key:"mapInfo.col.region"},{key:"mapInfo.col.population"}],rows:[["Hararghe Oromo","Ethiopia","Africa",6355e3],["Gaaliin","Sudan","Middle East",452e4],["White Moor","Morocco","Middle East",312e4],["Baloch, Western","Iran","Middle East",3035e3],["Baloch, Eastern","Pakistan","Asia",298e4],["Bhuiyar","India","Asia",2925e3]],total:2107}]},"research-map-plus-grid":{storageKey:"research-map-plus-grid",trigger:"control",pos:{top:"56px",side:"56px"},leadKey:"mapInfo.tab.research-map-plus-grid.lead",strategyKey:"mapStrategy.tab.research-map-plus-grid",noteKey:"pins.approximate",examples:[]},"prayer-map":{storageKey:"prayer-map",trigger:"control",pos:{side:"56px"},leadKey:"mapInfo.tab.prayer-map.lead",strategyKey:"mapStrategy.tab.prayer-map",takeawayKey:"mapInfo.tab.prayer-map.takeaway",noteKey:"pins.approximate",examples:[]},"cities-internet":{storageKey:"cities-internet",trigger:"control",pos:{side:"56px",narrow:{side:"4px"}},leadKey:"mapInfo.tab.cities-internet.lead",strategyKey:"mapStrategy.tab.cities-internet",takeawayKey:"mapInfo.tab.cities-internet.takeaway",noteKey:"pins.approximate",examples:[]},"gospel-resources":{storageKey:"gospel-resources",trigger:"control",pos:{side:"56px",narrow:{side:"4px"}},leadKey:"mapInfo.tab.gospel-resources.lead",strategyKey:"mapStrategy.tab.gospel-resources",takeawayKey:"mapInfo.tab.gospel-resources.takeaway",noteKey:"pins.approximate",examples:[]}};function Tl(e,t){return t?String(e).replace(/\{(\w+)\}/g,(a,o)=>t[o]!=null?String(t[o]):a):String(e)}function Pl(e,t,a=rs()){const o=String(e).split(/\s*\|\s*/);if(o.length<2||typeof t!="number")return String(e);const n=String(a||"en").split("-")[0].toLowerCase();if(n!=="en")return o[gl(t,o.length,n)];const s=Math.abs(t),r=o.length===2?s?s>1?1:0:1:s?Math.min(s,2):0;return o[Math.min(r,o.length-1)]}function ps(e,t){const a=String(t);return e&&!a.startsWith(`${e}.`)?`${e}.${a}`:a}function gh(e,t={}){const a=typeof t.fallback=="function"?(o,n,s)=>Tl(Pl(t.fallback(ps(e,o),n)??o,s),n):(o,n,s)=>Tl(Pl(Wt(ps(e,o))??o,s),n);try{const o=Xo();return(n,s,r)=>{const i=ps(e,n),l=typeof r=="number"?o.t(i,s||{},r):o.t(i,s||{});return l===i?a(n,s,r):l}}catch{return a}}const mh=["dir","lang"],fh=["aria-label","title","aria-expanded"],hh={viewBox:"0 0 16 16",focusable:"false"},bh={key:0,d:"M14 8H3M7 3.5 2.5 8 7 12.5",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},$h={key:1,d:"M2 8h11M9 3.5 13.5 8 9 12.5",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},_h=["dir"],vh={viewBox:"0 0 16 16",focusable:"false"},yh={key:0,d:"M14 8H3M7 3.5 2.5 8 7 12.5",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},wh={key:1,d:"M2 8h11M9 3.5 13.5 8 9 12.5",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},kh=["aria-labelledby"],xh={class:"mi-head"},Sh=["id"],Lh=["aria-label"],Th={class:"mi-body"},Ph=["aria-labelledby"],Eh=["id"],Oh={class:"mi-lead"},Mh={key:1,class:"mi-takeaway"},Ah={class:"mi-strategy-sum"},Ch={class:"mi-bottom"},Ih={key:0,class:"mi-points"},Nh=["src","alt","onError"],Fh={key:0,class:"mi-center"},Dh=["href"],Rh=["aria-label","onClick"],zh=["src","alt","onError"],qh={key:0,class:"mi-center"},Wh=["onClick"],jh={class:"mi-center"},Uh=["onClick"],Hh={class:"mi-pages"},Vh=["aria-label","onClick"],Bh=["src","alt"],Gh={class:"mi-center"},Kh=["onClick"],Xh=["aria-label","onClick"],Yh=["src","onError"],Jh={class:"mi-center"},Zh=["onClick"],Qh={class:"mi-center"},eb=["onClick"],tb={class:"mi-grid"},ab=["src","alt"],ob={class:"mi-center"},nb=["onClick"],sb={class:"mi-table-wrap"},rb={class:"mi-table"},ib={key:0,class:"mi-more"},lb={key:3,class:"mi-note"},cb={key:0,class:"mi-foot"},pb=["checked"],Jo=new Set,ub={__name:"MapInfo",props:{storageKey:{type:String,required:!0},leadKey:{type:String,default:""},lead:{type:String,default:""},takeawayKey:{type:String,default:""},takeaway:{type:String,default:""},noteKey:{type:String,default:""},strategyKey:{type:String,default:""},note:{type:String,default:""},examples:{type:Array,default:()=>[]},assetsBase:{type:String,default:""},placement:{type:String,default:"top-right",validator:e=>["top-right","top-left"].includes(e)},locale:{type:String,default:""},trigger:{type:String,default:"floating",validator:e=>["floating","control"].includes(e)},popupOnly:{type:Boolean,default:!1}},setup(e){const t=e,a=()=>t.trigger==="control",o=Oe(0);function n(){return o.value,String(t.locale||rs()||"en").split("-")[0].toLowerCase()}const s=gh("",{fallback:x=>Wt(x,n())}),r=(x,Y)=>x?s(x):Y,i=8,l=()=>t.strategyKey&&Wt(t.strategyKey+".bottom",n())||"";function p(){const x=[];if(!t.strategyKey)return x;for(let Y=1;Y<=i;Y++){const B=Wt(t.strategyKey+".p"+Y,n());if(!B)break;x.push(B)}return x}const c=()=>!!l(),f=x=>{try{return new Intl.NumberFormat(n()).format(x)}catch{return String(x)}},$=()=>n()==="ar",L="dxmaps.mapInfo.seen.",z="dxmaps.mapInfo.pointer",M="dxmaps:mapinfo-pointer-off";function j(x){try{return window.localStorage.getItem(x)}catch{return null}}function q(x,Y){try{window.localStorage.setItem(x,Y)}catch{}}const U=Oe(!1),y=Oe(!1);function _(){if(y.value=j(z)==="off",a()){U.value=!Jo.has(t.storageKey);return}U.value=!y.value&&j(L+t.storageKey)!=="1"}function A(){a()||_()}function P(x){a()||(!x||x.key===z||x.key===L+t.storageKey)&&_()}_a(()=>{_(),window.addEventListener(M,A),window.addEventListener("storage",P)}),Eo(()=>{window.removeEventListener(M,A),window.removeEventListener("storage",P)});function F(x){y.value=x,q(z,x?"off":"on"),U.value=!x&&j(L+t.storageKey)!=="1";try{window.dispatchEvent(new CustomEvent(M))}catch{}}const H=Oe(!1),V=Oe(null),fe=Oe(null),ke=Ia({}),ee=Ia({});async function xe(){var x;o.value++,H.value=!0,a()&&Jo.add(t.storageKey),await xo(),(x=fe.value)==null||x.focus()}async function nt(){H.value=!1,a()||q(L+t.storageKey,"1"),U.value=!1,await xo();const x=t.trigger==="control"&&ce.value&&ie.value?ie.value:V.value;x==null||x.focus()}const Be=Oe(null),ie=Oe(null),ce=Oe(!1);let ae=null,Le=null,Ae=null,Te=null;function Ee(x){for(let Y=x;Y;Y=Y.parentNode||Y.host)if(Y.nodeType===1&&(Y.hasAttribute("inert")||Y.getAttribute("aria-hidden")==="true"))return!0;return!1}const Lt=3e4,Tt=9e4;let mt=!1;const We=Oe(t.trigger==="control");let tt=0;function it(){const x=Be.value&&Be.value.parentElement,Y=x&&x.getBoundingClientRect();return!!x&&!Ee(x)&&Y.width>0&&Y.height>0}function Pt(){if(We.value){if(!it()){tt=0;return}tt?Date.now()-tt>=(mt?Tt:Lt)&&(We.value=!1):tt=Date.now()}}function Ie(){Pt(),a()&&U.value&&Jo.has(t.storageKey)&&!it()&&(U.value=!1);const x=ie.value;let Y=!1;if(x&&x.isConnected&&!Ee(x)){const B=x.getBoundingClientRect();if(Y=B.width>0&&B.height>0&&B.bottom>0&&B.right>0&&B.topx.classList.contains("mcb--rounded-square");function h(x){const Y=Be.value&&Be.value.offsetParent;if(!Y)return null;const B=Y.getBoundingClientRect(),Q=B.left+Y.clientLeft,le=B.top+Y.clientTop,Se=Math.round(x.top-le+Y.scrollTop+x.height/2);return x.left+x.width/2>Q+Y.clientWidth/2?{side:"right",top:Se,right:Math.round(Q+Y.clientWidth-x.left+jt)}:{side:"left",top:Se,left:Math.round(x.right-Q+jt)}}const m=Oe(null),w=()=>{const x=m.value;return x.side==="right"?{top:x.top+"px",right:x.right+"px"}:{top:x.top+"px",left:x.left+"px"}},E=()=>Ie();function T(x){if(!x||x===ie.value){Ie();return}try{Le==null||Le.disconnect(),Ae==null||Ae.disconnect()}catch{}ie.value=x,We.value=!1;try{Le=new IntersectionObserver(Ie),Le.observe(x)}catch{Le=null}try{Ae=new ResizeObserver(Ie),Ae.observe(x)}catch{Ae=null}x.setAttribute("aria-expanded",String(H.value)),Ie()}const R=x=>!!ae&&typeof x.composedPath=="function"&&x.composedPath().includes(ae);function D(x){R(x)&&(x.stopPropagation(),x.detail&&(x.detail.ack=!0),T(x.detail&&x.detail.el))}function u(x){R(x)&&(x.stopPropagation(),mt=!!(x.detail&&x.detail.pending),!mt&&!ie.value&&(We.value=!1))}function d(x){R(x)&&(x.stopPropagation(),T(x.detail&&x.detail.el),H.value||xe())}_a(()=>{if(t.trigger==="control"&&(ae=Be.value&&Be.value.parentElement,!!ae)){ae.addEventListener("dxmaps:mapinfo-control",D),ae.addEventListener("dxmaps:mapinfo-open",d),ae.addEventListener("dxmaps:mapinfo-pending",u),Te=window.setInterval(Ie,1500),window.addEventListener("resize",E);try{window.dispatchEvent(new CustomEvent("dxmaps:mapinfo-host",{detail:{local:t.popupOnly}}))}catch{}}}),Eo(()=>{ae&&(ae.removeEventListener("dxmaps:mapinfo-control",D),ae.removeEventListener("dxmaps:mapinfo-open",d),ae.removeEventListener("dxmaps:mapinfo-pending",u));try{Le==null||Le.disconnect(),Ae==null||Ae.disconnect()}catch{}Te&&window.clearInterval(Te),window.removeEventListener("resize",E)}),Bt(H,x=>{var Y;(Y=ie.value)==null||Y.setAttribute("aria-expanded",String(x))});const v=()=>!t.popupOnly&&(t.trigger!=="control"||!We.value&&!ce.value);Bt(()=>a()&&U.value&&!H.value&&!v()&&!!m.value,x=>{x&&Jo.add(t.storageKey)},{immediate:!0});const k=Oe(null);function W(x){const Y=k.value;if(!Y)return;const B=[...Y.querySelectorAll('button, a[href], input, [tabindex]:not([tabindex="-1"])')].filter(Ut=>!Ut.disabled&&Ut.offsetParent!==null);if(!B.length)return;const Q=Y.getRootNode().activeElement,le=B[0],Se=B[B.length-1];x.shiftKey&&(Q===le||!Y.contains(Q))?(x.preventDefault(),Se.focus()):!x.shiftKey&&(Q===Se||!Y.contains(Q))&&(x.preventDefault(),le.focus())}function N(x){x.key==="Escape"?(x.stopPropagation(),nt()):x.key==="Tab"&&W(x)}function b(x){ke[x]=!ke[x]}function S(x){const Y=x&&x.target;Y&&(Y.style.display="none")}function X(x){const Y=String(x||"");return!Y||/^(?:[a-z]+:|\/)/i.test(Y)||!t.assetsBase?Y:t.assetsBase.replace(/\/+$/,"")+"/"+Y.replace(/^\.?\//,"")}const oe={image:"mapInfo.poster",pages:"mapInfo.packet",deck:"mapInfo.cards",table:"mapInfo.spreadsheet"};function de(x){return s(x.titleKey||oe[x.kind]||"mapInfo.example")}const je=x=>(x.cards||[]).slice(0,5),Ne=x=>x&&typeof x=="object"?x.key?s(x.key):String(x.label||""):String(x??"");return ml(` .mi-btn{ position:absolute; z-index:20; top:var(--map-info-top, 12px); width:40px; height:40px; border-radius:50%; border:1px solid rgba(0,0,0,.18); background:#fff; color:#1f2a44; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; diff --git a/public/dx-maps/doxa-maps-spa/doxa-maps-spa/app/index.html b/public/dx-maps/doxa-maps-spa/doxa-maps-spa/app/index.html index 271559903..6f0309d72 100644 --- a/public/dx-maps/doxa-maps-spa/doxa-maps-spa/app/index.html +++ b/public/dx-maps/doxa-maps-spa/doxa-maps-spa/app/index.html @@ -67,7 +67,7 @@ - + - + \n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -1043,7 +1043,7 @@ "bundle": "plugin-studio", "scriptUrl": "./plugin-studio/plugin-studio.js", "output": "dx-maps/plugin-studio/plugin-studio.js", - "integrity": "sha384-NQcTT1r4eUmiJiiaI4+5F36stJdlm86nTxS38YldvEDVBE9lEby/nQR/Mzn8QvhB", + "integrity": "sha384-Bag/4wCFZJe4007k7I2YRWDOnCrFkhnfW+solBku0jY1dBIdPw8fhCsovJ97lDcD", "elements": [ "plugin-studio" ], @@ -1074,7 +1074,7 @@ "scriptUrl": "./plugin-studio/plugin-studio.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -1165,7 +1165,7 @@ "bundle": "posterverse", "scriptUrl": "./posterverse/posterverse.js", "output": "dx-maps/posterverse/posterverse.js", - "integrity": "sha384-kqFU5VlfQtj6itaICRBj7bNEEYGnzLh1dvHJUjh41OOrUYQ+rbR+ZFsc7+LlLkQb", + "integrity": "sha384-s7ec5BuhGN755t7kiZCvx3z4TyBSrN9IvubZulb/L6XLli9kjnRWlXBjWfVFTKbG", "elements": [ "posterverse-app" ], @@ -1191,7 +1191,7 @@ "scriptUrl": "./posterverse/posterverse.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { diff --git a/public/dx-maps/index.html b/public/dx-maps/index.html index 99100d9b5..9698d2809 100644 --- a/public/dx-maps/index.html +++ b/public/dx-maps/index.html @@ -24,6 +24,6 @@ - + diff --git a/public/dx-maps/manifest.json b/public/dx-maps/manifest.json index 2077dcacc..6c5405f5d 100644 --- a/public/dx-maps/manifest.json +++ b/public/dx-maps/manifest.json @@ -393,7 +393,7 @@ "bundle": "doxa-maps-spa", "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "output": "dx-maps/doxa-maps-spa/doxa-maps-spa.js", - "integrity": "sha384-X9IKmCib5oY/UKanPqM5iPWqZrlafv4L2fMe/lkwx5piCkHG4UcEzwHGAD6rwvkd", + "integrity": "sha384-BwqZvLd8a46mXqcizl2OfnI+7ZZOXQ0nsgAEFeuRCI8uddivHIV/Ii3BmhMSlbu5", "elements": [ "doxa-maps-spa" ], @@ -423,7 +423,7 @@ "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -1043,7 +1043,7 @@ "bundle": "plugin-studio", "scriptUrl": "./plugin-studio/plugin-studio.js", "output": "dx-maps/plugin-studio/plugin-studio.js", - "integrity": "sha384-NQcTT1r4eUmiJiiaI4+5F36stJdlm86nTxS38YldvEDVBE9lEby/nQR/Mzn8QvhB", + "integrity": "sha384-Bag/4wCFZJe4007k7I2YRWDOnCrFkhnfW+solBku0jY1dBIdPw8fhCsovJ97lDcD", "elements": [ "plugin-studio" ], @@ -1074,7 +1074,7 @@ "scriptUrl": "./plugin-studio/plugin-studio.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -1165,7 +1165,7 @@ "bundle": "posterverse", "scriptUrl": "./posterverse/posterverse.js", "output": "dx-maps/posterverse/posterverse.js", - "integrity": "sha384-kqFU5VlfQtj6itaICRBj7bNEEYGnzLh1dvHJUjh41OOrUYQ+rbR+ZFsc7+LlLkQb", + "integrity": "sha384-s7ec5BuhGN755t7kiZCvx3z4TyBSrN9IvubZulb/L6XLli9kjnRWlXBjWfVFTKbG", "elements": [ "posterverse-app" ], @@ -1191,7 +1191,7 @@ "scriptUrl": "./posterverse/posterverse.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { diff --git a/public/dx-maps/plugin-studio/plugin-studio.js b/public/dx-maps/plugin-studio/plugin-studio.js index ede829711..2039e15c5 100644 --- a/public/dx-maps/plugin-studio/plugin-studio.js +++ b/public/dx-maps/plugin-studio/plugin-studio.js @@ -164,7 +164,7 @@ @media (prefers-reduced-motion: reduce) { .vtl-nav, .vtl-collapse-ic, .vtl-tab, .vtl-tier, .vtl-pbar, .vtl-phone-menu, .vtl-fab, .vtl-rail-end, .vtl-scrim { transition: none !important; animation: none !important; } } -`,mc=mo({name:"VerticalTabsLayout",components:{BackToTopButton:ec},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},homeHref:{type:String,default:""},homeLabel:{type:String,default:""},shellMode:{type:String,default:"auto"}},emits:["update:active"],setup(){return En($c,"vertical-tabs-layout"),{T:fc}},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{},hostEls:{},mode:"app"}},computed:{phoneBarShown(){return this.narrow&&!this.header&&this.mode==="app"},railEndShown(){return!this.narrow&&!this.header},fabShown(){return this.narrow&&!this.header&&this.mode==="web"&&!this.navOpen},drawerEndShown(){return this.narrow&&!this.header&&this.mode==="web"},activeHostEl(){return this.hostEls[this.active]||null},railShown(){return this.narrow?this.navOpen:!0},homeLink(){const e=String(this.homeHref||"").trim();return!e||/^(javascript|data|vbscript):/i.test(e.replace(/[\u0000- ]/g,""))?"":e},homeText(){return this.homeLabel||this.label("home")},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const o of t.rows||[])e.push(o);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:{shellMode(){this.resolveShellMode()},active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){this.resolveShellMode();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:{resolveShellMode(){const e=o=>o==="web"||o==="app"?o:null;let t=e(this.shellMode);if(!t)try{const o=this.$el&&this.$el.getRootNode?this.$el.getRootNode():null,n=o&&o.host;t=e(n&&n.getAttribute?n.getAttribute("shell-mode"):null)}catch{}if(!t)try{const o=window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches||navigator.standalone===!0;t=window.Capacitor||o||window.MAP_OWNS_PAGE===!0?"app":"web"}catch{t="app"}this.mode=t},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",home:"Back to homepage"};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(o=>o.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.$nextTick(()=>this.watchContextLoss(e)),this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},deepCanvases(e,t=[]){if(!e)return t;for(const o of e.querySelectorAll("*"))o.tagName==="CANVAS"&&t.push(o),o.shadowRoot&&this.deepCanvases(o.shadowRoot,t);return t},watchContextLoss(e){const t=this._hostSlots[e];if(t)for(const o of this.deepCanvases(t))o.__vtlLossBound||(o.__vtlLossBound=!0,o.addEventListener("webglcontextlost",()=>{this.hostState={...this.hostState,[e]:"lost"}},{once:!0}))},reloadHostElement(e){const t=this._hostSlots[e];t&&(t.innerHTML=""),this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"loading"},this.$nextTick(()=>this.mountHostElement(e))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(n=>n.key===e),o=this._hostSlots[e];!t||!o||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},hc(t.src).then(()=>gc(t.element)).then(()=>{dc(t.element,t.src),o.innerHTML="";const n=document.createElement(t.element),s=t.attrs||{};for(const a in s){const i=s[a],r=i!=null&&typeof i=="object"?JSON.stringify(i):String(i);try{n[a]=i}catch{}try{n.setAttribute(a,r)}catch{}}n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",o.appendChild(n);for(const a of[0,250,1500])setTimeout(()=>this.watchContextLoss(e),a);this.hostState={...this.hostState,[e]:"ready"}}).catch(n=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:n&&n.message||String(n)}}))},iconSvg(e){return e?Va(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],o=(this.groups||[]).find(s=>s.key===e),n=t??(o&&o.open===!0);this.folderOverride={...this.folderOverride,[e]:!n}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const o=t.indexOf(this.active);let n=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")n=(o+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")n=(o-1+t.length)%t.length;else if(e.key==="Home")n=0;else if(e.key==="End")n=t.length-1;else return;e.preventDefault();const s=t[n];this.pick(s),this.$nextTick(()=>{const a=this._tabEls[s];a&&a.focus&&a.focus()})}}}),bc={key:0,class:"vtl-top"},vc=["aria-expanded","aria-label"],kc={class:"vtl-brand"},yc={class:"vtl-title"},_c={class:"vtl-meta"},xc={key:1,class:"vtl-pbar"},wc=["aria-expanded","aria-label"],Sc={class:"vtl-pbar-end"},Mc=["aria-expanded","aria-label"],Lc={class:"vtl-body"},Tc=["aria-label","aria-hidden","role","aria-orientation"],Cc=["href","aria-label","title"],Oc=["innerHTML"],Pc={class:"vtl-home-tx"},Nc=["aria-expanded","aria-label"],Ac=["innerHTML"],Ec={class:"vtl-collapse-tx"},Fc=["aria-expanded","onClick"],Ic={key:0,class:"vtl-cap"},Rc={class:"vtl-tl"},Dc={key:1,class:"vtl-td"},Hc=["innerHTML"],Wc={key:1,class:"vtl-tier"},Uc={key:0,class:"vtl-cap"},zc={class:"vtl-tl"},Bc={key:1,class:"vtl-td"},jc={class:"vtl-rows"},Vc=["aria-selected","aria-disabled","tabindex","onClick"],Kc=["innerHTML"],qc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Gc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Yc={class:"vtl-tab-text"},Jc={class:"vtl-tab-label"},Xc={key:0,class:"vtl-tab-badge"},Zc={key:0,class:"vtl-tab-sub"},Qc=["innerHTML"],ed=["aria-selected","aria-disabled","tabindex","onClick"],td=["innerHTML"],od={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},nd={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},sd={class:"vtl-tab-text"},ad={class:"vtl-tab-label"},id={key:0,class:"vtl-tab-sub"},rd={key:4,class:"vtl-rail-end"},ld={key:5,class:"vtl-rail-end vtl-drawer-end"},cd={class:"vtl-main"},dd={class:"vtl-content"},pd=["hidden"],ud={key:0,class:"vtl-host-hint"},fd={key:1,class:"vtl-host-hint"},hd=["onClick"],gd={key:2,class:"vtl-host-hint err"};function $d(e,t,o,n,s,a){const i=gn("BackToTopButton");return S(),L("div",{class:fe(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header,"has-phone-bar":e.phoneBarShown}]),style:ct(e.fabShown?{"--map-fab-clearance":"calc(56px + env(safe-area-inset-bottom))","--map-fab-beside":"calc(56px + env(safe-area-inset-left))"}:null)},[e.header?(S(),L("header",bc,[b("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=r=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,vc),b("span",kc,[Xe(e.$slots,"brand")]),b("b",yc,T(e.title),1),b("span",_c,[Xe(e.$slots,"meta")])])):W("",!0),e.phoneBarShown?(S(),L("div",xc,[b("button",{class:"vtl-phone-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=r=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,wc),b("span",Sc,[Xe(e.$slots,"phone-end")])])):W("",!0),e.fabShown?(S(),L("button",{key:2,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[2]||(t[2]=r=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,Mc)):W("",!0),e.narrow?(S(),Rt(i,{key:3,target:e.activeHostEl,labels:{backToTop:e.T("actions.backToTop","Back to top")}},null,8,["target","labels"])):W("",!0),b("div",Lc,[b("nav",{class:fe(["vtl-nav",{"has-rail-end":e.railEndShown&&!!e.$slots["rail-end"]}]),"aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[e.homeLink?(S(),L("a",{key:0,class:"vtl-home",href:e.homeLink,target:"_top","aria-label":e.homeText,title:e.railCollapsed&&!e.narrow?e.homeText:null},[b("span",{class:"vtl-home-ic","aria-hidden":"true",innerHTML:e.iconSvg("home")},null,8,Oc),b("span",Pc,T(e.homeText),1)],8,Cc)):W("",!0),b("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[3]||(t[3]=(...r)=>e.toggleRail&&e.toggleRail(...r))},[b("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,Ac),b("span",Ec,T(e.label("collapse")),1)],8,Nc),e.$slots.rail?Xe(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,1):e.groups&&e.groups.length?(S(!0),L(Y,{key:2},Oe(e.groups,r=>(S(),L("div",{class:"vtl-grp",key:r.key},[r.folder?(S(),L("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(r)),onClick:l=>e.toggleFolder(r.key)},[r.badge?(S(),L("span",Ic,T(r.badge),1)):W("",!0),b("span",Rc,T(r.label),1),r.count!=null?(S(),L("span",Dc,T(r.count),1)):W("",!0),b("span",{class:fe(["vtl-chev",{open:!e.isFolderClosed(r)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,Hc)],8,Fc)):(S(),L("div",Wc,[r.badge?(S(),L("span",Uc,T(r.badge),1)):W("",!0),b("span",zc,T(r.label),1),r.count!=null?(S(),L("span",Bc,T(r.count),1)):W("",!0)])),$t(b("div",jc,[(S(!0),L(Y,null,Oe(r.rows,l=>(S(),L("button",{key:l.key,type:"button",role:"tab",class:fe(["vtl-tab",{active:l.key===e.active,disabled:l.disabled}]),"aria-selected":String(l.key===e.active),"aria-disabled":l.disabled?"true":null,tabindex:l.key===e.active?0:-1,ref_for:!0,ref:d=>e.registerTab(l.key,d),onClick:d=>e.pick(l.key),onKeydown:t[4]||(t[4]=d=>e.onKey(d))},[l.icon?(S(),L("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,Kc)):l.emoji?(S(),L("span",qc,T(l.emoji),1)):(S(),L("span",Gc,T(e.initial(l.label)),1)),b("span",Yc,[b("span",Jc,[Ne(T(l.label),1),l.badge?(S(),L("span",Xc,T(l.badge),1)):W("",!0)]),l.sub?(S(),L("span",Zc,[b("span",{innerHTML:l.sub},null,8,Qc)])):W("",!0)])],42,Vc))),128))],512),[[Tn,!r.folder||!e.isFolderClosed(r)]])]))),128)):(S(!0),L(Y,{key:3},Oe(e.items,r=>(S(),L("button",{key:r.key,type:"button",role:"tab",class:fe(["vtl-tab",{active:r.key===e.active,disabled:r.disabled}]),"aria-selected":String(r.key===e.active),"aria-disabled":r.disabled?"true":null,tabindex:r.key===e.active?0:-1,ref_for:!0,ref:l=>e.registerTab(r.key,l),onClick:l=>e.pick(r.key),onKeydown:t[5]||(t[5]=l=>e.onKey(l))},[r.icon?(S(),L("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,td)):r.emoji?(S(),L("span",od,T(r.emoji),1)):(S(),L("span",nd,T(e.initial(r.label)),1)),b("span",sd,[b("span",ad,T(r.label),1),r.sub?(S(),L("span",id,T(r.sub),1)):W("",!0)])],42,ed))),128)),e.railEndShown&&e.$slots["rail-end"]?(S(),L("div",rd,[Xe(e.$slots,"rail-end",{collapsed:e.railCollapsed})])):W("",!0),e.drawerEndShown&&e.$slots["phone-end"]?(S(),L("div",ld,[Xe(e.$slots,"phone-end")])):W("",!0)],10,Tc),b("main",cd,[e.header?Xe(e.$slots,"toolbar",{},void 0,void 0,0):W("",!0),b("div",dd,[(S(!0),L(Y,null,Oe(e.mountedElementRows,r=>$t((S(),L("section",{key:r.key,class:"vtl-host",hidden:r.key!==e.active,ref_for:!0,ref:l=>{l?e.hostEls[r.key]=l:delete e.hostEls[r.key]}},[b("div",{class:"vtl-host-slot",ref_for:!0,ref:l=>e.setHostSlot(r.key,l)},null,512),e.hostState[r.key]==="loading"?(S(),L("div",ud,T(e.T("messages.loadingNamed","Loading {name}…").replace("{name}",r.label)),1)):e.hostState[r.key]==="lost"?(S(),L("div",fd,[Ne(T(e.T("messages.mapContextLost","This map was unloaded to free graphics memory."))+" ",1),b("button",{type:"button",class:"vtl-host-reload",onClick:l=>e.reloadHostElement(r.key)},T(e.T("buttons.reloadMap","Reload Map")),9,hd)])):e.hostState[r.key]==="error"?(S(),L("div",gd,[Ne(T(e.T("messages.couldNotLoadNamed","Could not load {name}.").replace("{name}",r.label)),1),t[6]||(t[6]=b("br",null,null,-1)),b("small",null,T(e.hostError[r.key]),1)])):W("",!0)],8,pd)),[[Tn,r.key===e.active]])),128)),Xe(e.$slots,"default")])])])],6)}const md=Po(mc,[["render",$d],["styles",[uc]]]),bd='.st{display:flex;flex-direction:column;margin:0 -12px}.st-bar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fff}.st-find{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;height:30px;padding:0 8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1;color:#6d766e}.st-find:focus-within{border-color:#92b195;background:#fff}.st-find-ic{display:inline-flex}.st-find-ic svg{width:14px;height:14px}.st-find-in{flex:1 1 auto;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:13px;color:#3b463d}.st-tool{flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:#6d766e;cursor:pointer}.st-tool:hover{background:#f3f3f1;color:#3b463d}.st-tool:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-tool svg{width:16px;height:16px}.st-tree{display:flex;flex-direction:column;padding:0 0 8px;outline:0}.st-row{position:relative;display:flex;align-items:center;gap:6px;height:28px;box-sizing:border-box;padding-block:0;padding-inline:calc(8px + var(--st-depth) * 14px) 10px;font-size:13px;color:#3b463d;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:0}.st-row:hover{background:#f3f3f1}.st-row:focus-visible{box-shadow:inset 0 0 0 1px #92b195}.st-row.active{background:#92b1953d}.st-row.active:after{content:"";position:absolute;inset-inline-start:0;top:4px;bottom:4px;width:3px;border-start-end-radius:3px;border-end-end-radius:3px;background:#92b195}.st-row.alias.active{background:#92b1951f}.st-sec{position:sticky;top:46px;z-index:2;height:30px;margin-top:6px;background:#fff;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6d766e;border-top:1px solid #eceee9}.st-sec:first-child{margin-top:0;border-top:0}.st-sec:hover{background:#fff;color:#3b463d}.st-cap{flex:0 0 auto;font:700 10px/1 system-ui,sans-serif;letter-spacing:.3px;padding:3px 6px;border-radius:999px;background:#92b195;color:#1d2a1f}.st-sec-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-twisty,.st-twisty-sp{flex:0 0 16px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#6d766e}.st-twisty svg{width:14px;height:14px;transition:transform .12s ease}.st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st:dir(rtl) .st-twisty svg{transform:scaleX(-1)}.st:dir(rtl) .st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st-ic{flex:0 0 16px;display:inline-flex;color:#6d766e}.st-ic svg{width:16px;height:16px}.st-row.active .st-ic{color:#5f8a63}.st-label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-desc{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;font:11px/1 ui-monospace,Menlo,monospace;color:#8a928b}.st-part{flex:0 0 auto;font:600 9px/1 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.3px;padding:2px 4px;border:1px solid #92b195;border-radius:4px;color:#5f8a63}.st-count{flex:0 0 auto;margin-inline-start:auto;min-width:18px;text-align:right;font-size:11px;font-weight:500;letter-spacing:0;color:#6d766e}.st-guide{position:absolute;top:0;bottom:0;inset-inline-start:calc(15px + var(--st-g) * 14px);border-inline-start:1px solid #dfe2db;pointer-events:none}.st-row:hover>.st-guide{border-inline-start-color:#c4c8c0}.st-empty{margin:12px;font-size:13px;color:#6d766e}.st-activity{display:flex;flex-direction:column;gap:4px}.st-act{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:44px;margin-inline-start:172px;padding:0;border:0;border-radius:10px;background:none;color:#6d766e;cursor:pointer}.st-act:hover,.st-act.active{background:#f3f3f1;color:#3b463d}.st-act:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-act-ic{display:inline-flex}.st-act-ic svg{width:20px;height:20px}.st-act-n{position:absolute;right:6px;bottom:5px;font:700 9px/1 system-ui,sans-serif;color:#5f8a63}',vd='.st { display:flex; flex-direction:column; margin:0 -12px; }.st-bar { position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:6px; padding:8px 12px 8px; background:#ffffff; }.st-find { flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:6px; height:30px; padding:0 8px; border:1px solid #d1d4cd; border-radius:8px; background:#f3f3f1; color:#6d766e; }.st-find:focus-within { border-color:#92b195; background:#ffffff; }.st-find-ic { display:inline-flex; } .st-find-ic svg { width:14px; height:14px; }.st-find-in { flex:1 1 auto; min-width:0; border:0; outline:0; background:none; font:inherit; font-size:13px; color:#3b463d; }.st-tool { flex:0 0 auto; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:8px; background:none; color:#6d766e; cursor:pointer; }.st-tool:hover { background:#f3f3f1; color:#3b463d; } .st-tool:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-tool svg { width:16px; height:16px; }.st-tree { display:flex; flex-direction:column; padding:0 0 8px; outline:0; }.st-row { position:relative; display:flex; align-items:center; gap:6px; height:28px; box-sizing:border-box; padding-block:0; padding-inline:calc(8px + var(--st-depth) * 14px) 10px; font-size:13px; color:#3b463d; cursor:pointer; white-space:nowrap; user-select:none; outline:0; }.st-row:hover { background:#f3f3f1; }.st-row:focus-visible { box-shadow:inset 0 0 0 1px #92b195; }.st-row.active { background:rgba(146,177,149,.24); }.st-row.active::after { content:""; position:absolute; inset-inline-start:0; top:4px; bottom:4px; width:3px; border-start-end-radius:3px; border-end-end-radius:3px; background:#92b195; }.st-row.alias.active { background:rgba(146,177,149,.12); }.st-sec { position:sticky; top:46px; z-index:2; height:30px; margin-top:6px; background:#ffffff; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#6d766e; border-top:1px solid #eceee9; }.st-sec:first-child { margin-top:0; border-top:0; }.st-sec:hover { background:#ffffff; color:#3b463d; }.st-cap { flex:0 0 auto; font:700 10px/1 system-ui,sans-serif; letter-spacing:.3px; padding:3px 6px; border-radius:999px; background:#92b195; color:#1d2a1f; }.st-sec-label { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-twisty, .st-twisty-sp { flex:0 0 16px; width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center; color:#6d766e; }.st-twisty svg { width:14px; height:14px; transition:transform .12s ease; }.st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st:dir(rtl) .st-twisty svg { transform:scaleX(-1); } .st:dir(rtl) .st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st-ic { flex:0 0 16px; display:inline-flex; color:#6d766e; } .st-ic svg { width:16px; height:16px; }.st-row.active .st-ic { color:#5f8a63; }.st-label { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-desc { flex:1 1 0; min-width:0; overflow:hidden; text-overflow:ellipsis; font:11px/1 ui-monospace,Menlo,monospace; color:#8a928b; }.st-part { flex:0 0 auto; font:600 9px/1 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.3px; padding:2px 4px; border:1px solid #92b195; border-radius:4px; color:#5f8a63; }.st-count { flex:0 0 auto; margin-inline-start:auto; min-width:18px; text-align:right; font-size:11px; font-weight:500; letter-spacing:0; color:#6d766e; }.st-guide { position:absolute; top:0; bottom:0; inset-inline-start:calc(15px + var(--st-g) * 14px); border-inline-start:1px solid #dfe2db; pointer-events:none; }.st-row:hover > .st-guide { border-inline-start-color:#c4c8c0; }.st-empty { margin:12px; font-size:13px; color:#6d766e; }.st-activity { display:flex; flex-direction:column; gap:4px; }.st-act { position:relative; display:flex; align-items:center; justify-content:center; width:48px; height:44px; margin-inline-start:172px; padding:0; border:0; border-radius:10px; background:none; color:#6d766e; cursor:pointer; }.st-act:hover, .st-act.active { background:#f3f3f1; color:#3b463d; }.st-act:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-act-ic { display:inline-flex; } .st-act-ic svg { width:20px; height:20px; }.st-act-n { position:absolute; right:6px; bottom:5px; font:700 9px/1 system-ui,sans-serif; color:#5f8a63; }',kd='',yd={filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",treeLabel:"Plugins by capability",openSection:"Open {cap}, {label}",part:"part"},_d='',Dn=e=>e.canonical!==void 0?!!e.canonical:e.depth===0,xd=e=>e.canonical!==void 0?!e.canonical&&!e.folder:e.depth>0,wd=mo({name:"StudioTree",props:{sections:{type:Array,default:()=>[]},active:{type:String,default:""},collapsed:{type:Boolean,default:!1},pick:{type:Function,default:null},expand:{type:Function,default:null},strings:{type:Object,default:()=>({})}},emits:["select"],setup(){En(vd,"studio-tree")},data(){const e=this.readState();return{query:"",focusId:"",secClosed:e.sec||{},nodeOpen:e.node||{},chev:_d,collapseAllSvg:kd}},computed:{byId(){const e=new Map;for(const t of this.sections)for(const o of t.nodes)e.set(o.id,o);return e},q(){return this.query.trim().toLowerCase()},kept(){if(!this.q)return null;const e=new Set;for(const t of this.sections)for(const o of t.nodes){if(!(o.label.toLowerCase().includes(this.q)||String(o.desc||"").toLowerCase().includes(this.q)))continue;e.add(o.id);let s=o.parent;for(;s;)e.add(s),s=this.byId.get(s)&&this.byId.get(s).parent}return e},visible(){const e=[];for(const t of this.sections){const o=this.kept?t.nodes.filter(n=>this.kept.has(n.id)):t.nodes;if(!(this.kept&&!o.length)&&(e.push({id:"sec:"+t.id,section:!0,sectionId:t.id,level:1,depth:0,expandable:!0,cap:t.cap,badge:t.badge||"CAP "+t.cap,label:t.label,title:t.title||"",count:t.nodes.filter(n=>n.depth===0).length}),!(!this.kept&&this.secClosed[t.id])))for(const n of o)!this.kept&&!this.ancestorsOpen(n)||e.push({...n,sectionId:t.id,level:n.depth+2,expandable:!!n.kids,alias:xd(n)})}return e},activeSectionId(){for(const e of this.sections)if(e.nodes.some(t=>Dn(t)&&t.target===this.active))return e.id;return""}},watch:{active:{handler(){this.reveal()},immediate:!0},sections(){this.reveal()},query(e){e&&this.visible.length&&(this.focusId=this.visible[0].id)}},methods:{svg(e){return e?Va(e):""},str(e,t){let o=this.strings[e]||yd[e]||e;if(t)for(const n in t)o=o.split("{"+n+"}").join(String(t[n]));return o},storageKey(){return"dx-studio-tree:"+(typeof location<"u"&&location.pathname||"")},readState(){try{return JSON.parse(window.localStorage.getItem(this.storageKey())||"{}")||{}}catch{return{}}},saveState(){try{window.localStorage.setItem(this.storageKey(),JSON.stringify({sec:this.secClosed,node:this.nodeOpen}))}catch{}},ancestorsOpen(e){let t=e.parent;for(;t;){if(!this.nodeOpen[t])return!1;t=this.byId.get(t)&&this.byId.get(t).parent}return!0},isOpen(e){return this.kept?!0:e.section?!this.secClosed[e.sectionId]:!!this.nodeOpen[e.id]},setOpen(e,t){e.section?this.secClosed={...this.secClosed,[e.sectionId]:!t}:this.nodeOpen={...this.nodeOpen,[e.id]:t},this.saveState()},toggle(e){e.expandable&&this.setOpen(e,!this.isOpen(e))},collapseAll(){this.nodeOpen={},this.saveState();const e=this.visible.find(t=>!t.section&&t.target===this.active&&Dn(t));e&&(this.focusId=e.id)},rowClass(e){return{"st-row":!0,"st-sec":!!e.section,active:!e.section&&e.target===this.active,alias:!!e.alias}},setRow(e,t){this._rows||(this._rows={}),t?this._rows[e]=t:delete this._rows[e]},activate(e){if(e.section){this.toggle(e);return}e.target&&(this.pick?this.pick(e.target):this.$emit("select",e.target))},onRowClick(e){this.focusId=e.id,this.activate(e)},focusRow(e){e&&(this.focusId=e,this.$nextTick(()=>{const t=this._rows&&this._rows[e];t&&(t.focus({preventScroll:!0}),t.scrollIntoView({block:"nearest"}))}))},onTreeKey(e){const t=this.visible;if(!t.length)return;const o=Math.max(0,t.findIndex(a=>a.id===this.focusId)),n=t[o],s=a=>a.section?"":a.parent||"sec:"+a.sectionId;switch(e.key){case"ArrowDown":this.focusRow((t[o+1]||n).id);break;case"ArrowUp":this.focusRow((t[o-1]||n).id);break;case"Home":this.focusRow(t[0].id);break;case"End":this.focusRow(t[t.length-1].id);break;case"ArrowRight":if(!n.expandable)break;this.isOpen(n)?t[o+1]&&t[o+1].level>n.level&&this.focusRow(t[o+1].id):this.setOpen(n,!0);break;case"ArrowLeft":n.expandable&&this.isOpen(n)&&!this.kept?this.setOpen(n,!1):this.focusRow(s(n));break;case"Enter":case" ":this.activate(n);break;default:if(e.key.length===1&&/\S/.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey){const a=e.key.toLowerCase(),r=t.slice(o+1).concat(t.slice(0,o+1)).find(l=>String(l.label).toLowerCase().startsWith(a));r&&this.focusRow(r.id);break}return}e.preventDefault()},onFindKey(e){e.key==="Escape"?(this.query="",e.preventDefault()):e.key==="ArrowDown"&&this.visible.length&&(this.focusRow(this.visible[0].id),e.preventDefault())},reveal(){if(!this.active||!this.sections.length)return;let e=null;for(const t of this.sections)if(e=t.nodes.find(o=>Dn(o)&&o.target===this.active),e){this.secClosed[t.id]&&(this.secClosed={...this.secClosed,[t.id]:!1},this.saveState());break}if(e)for(let t=e.parent;t;){const o=this.byId.get(t);if(!o)break;if(o.target===this.active&&!this.nodeOpen[t]){e=o;break}t=o.parent}if(e){let t=e.parent,o=!1;for(;t;)this.nodeOpen[t]||(this.nodeOpen={...this.nodeOpen,[t]:!0},o=!0),t=this.byId.get(t)&&this.byId.get(t).parent;o&&this.saveState()}e&&((!this.focusId||!this.byId.has(this.focusId)||this.byId.get(this.focusId).target!==this.active)&&(this.focusId=e.id),this.$nextTick(()=>{const t=this._rows&&this._rows[e.id];t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest"})}))},openSectionFromActivity(e){this.secClosed[e]&&(this.secClosed={...this.secClosed,[e]:!1},this.saveState()),this.expand&&this.expand(),this.$nextTick(()=>this.focusRow("sec:"+e))}}}),Sd={key:0,class:"st-activity"},Md=["aria-label","onClick"],Ld=["innerHTML"],Td={class:"st-act-n","aria-hidden":"true"},Cd={key:1,class:"st"},Od={class:"st-bar"},Pd={class:"st-find"},Nd=["innerHTML"],Ad=["placeholder","aria-label"],Ed=["aria-label","title"],Fd=["innerHTML"],Id=["aria-label"],Rd=["aria-level","aria-expanded","aria-selected","tabindex","title","onClick","onFocus"],Dd=["innerHTML"],Hd={class:"st-cap"},Wd={class:"st-sec-label"},Ud={class:"st-count"},zd=["innerHTML","onClick"],Bd={key:1,class:"st-twisty-sp","aria-hidden":"true"},jd=["innerHTML"],Vd={class:"st-label"},Kd={key:2,class:"st-part"},qd={class:"st-desc"},Gd={key:3,class:"st-count"},Yd={key:0,class:"st-empty"};function Jd(e,t,o,n,s,a){return e.collapsed?(S(),L("div",Sd,[(S(!0),L(Y,null,Oe(e.sections,i=>(S(),L("button",{key:i.id,type:"button",class:fe(["st-act",{active:i.id===e.activeSectionId}]),"aria-label":e.str("openSection",{cap:i.badge||"CAP "+i.cap,label:i.label}),onClick:r=>e.openSectionFromActivity(i.id)},[b("span",{class:"st-act-ic","aria-hidden":"true",innerHTML:e.svg(i.icon)},null,8,Ld),b("span",Td,T(i.short||i.cap),1)],10,Md))),128))])):(S(),L("div",Cd,[b("div",Od,[b("label",Pd,[b("span",{class:"st-find-ic","aria-hidden":"true",innerHTML:e.svg("search")},null,8,Nd),$t(b("input",{ref:"find",type:"search",class:"st-find-in","onUpdate:modelValue":t[0]||(t[0]=i=>e.query=i),placeholder:e.str("filterPlaceholder"),"aria-label":e.str("filterPlaceholder"),onKeydown:t[1]||(t[1]=(...i)=>e.onFindKey&&e.onFindKey(...i))},null,40,Ad),[[An,e.query]])]),b("button",{type:"button",class:"st-tool","aria-label":e.str("collapseAll"),title:e.str("collapseAll"),onClick:t[2]||(t[2]=(...i)=>e.collapseAll&&e.collapseAll(...i))},[b("span",{"aria-hidden":"true",innerHTML:e.collapseAllSvg},null,8,Fd)],8,Ed)]),b("div",{class:"st-tree",role:"tree","aria-label":e.str("treeLabel"),onKeydown:t[3]||(t[3]=(...i)=>e.onTreeKey&&e.onTreeKey(...i))},[(S(!0),L(Y,null,Oe(e.visible,i=>(S(),L("div",{key:i.id,ref_for:!0,ref:r=>e.setRow(i.id,r),role:"treeitem","aria-level":i.level,"aria-expanded":i.expandable?String(e.isOpen(i)):null,"aria-selected":i.section?null:String(i.target===e.active),tabindex:i.id===e.focusId?0:-1,class:fe(e.rowClass(i)),style:ct({"--st-depth":i.depth}),title:i.title||null,onClick:r=>e.onRowClick(i),onFocus:r=>e.focusId=i.id},[i.section?(S(),L(Y,{key:0},[b("span",{class:"st-twisty","aria-hidden":"true",innerHTML:e.chev},null,8,Dd),b("span",Hd,T(i.badge),1),b("span",Wd,T(i.label),1),b("span",Ud,T(i.count),1)],64)):(S(),L(Y,{key:1},[(S(!0),L(Y,null,Oe(i.depth,r=>(S(),L("span",{key:r,class:"st-guide",style:ct({"--st-g":r-1}),"aria-hidden":"true"},null,4))),128)),i.expandable?(S(),L("span",{key:0,class:"st-twisty","aria-hidden":"true",innerHTML:e.chev,onClick:Ia(r=>e.toggle(i),["stop"])},null,8,zd)):(S(),L("span",Bd)),b("span",{class:"st-ic","aria-hidden":"true",innerHTML:e.svg(i.icon)},null,8,jd),b("span",Vd,T(i.label),1),i.part?(S(),L("span",Kd,T(e.str("part")),1)):W("",!0),b("span",qd,T(i.desc),1),i.expandable?(S(),L("span",Gd,T(i.kids),1)):W("",!0)],64))],46,Rd))),128)),e.query&&!e.visible.length?(S(),L("p",Yd,T(e.str("noMatch",{query:e.query})),1)):W("",!0)],40,Id)]))}const Xd=Po(wd,[["render",Jd],["styles",[bd]]]),No=[{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},{code:"it",name:"Italian",nativeName:"Italiano",flag:"🇮🇹",hideFromSwitcher:!0},{code:"ro",name:"Romanian",nativeName:"Română",flag:"🇷🇴",hideFromSwitcher:!0},{code:"zh",name:"Chinese",nativeName:"中文",flag:"🇨🇳",hideFromSwitcher:!0}];No.filter(e=>!e.hideFromSwitcher);function Zd(e){return No.find(t=>t.code===e)}function Hn(e){const t=String(e||"").split("-")[0].toLowerCase();return No.some(o=>o.code===t)?t:"en"}const Ja="doxa-maps:locale";function Qd(){try{const e=localStorage.getItem(Ja);if(e)return Hn(e)}catch{}return Hn(navigator==null?void 0:navigator.language)}function ep(e){try{localStorage.setItem(Ja,e)}catch{}}const Ao="__doxaMapToken",Xa="doxa:map-token",Za="__doxaMapTokenBridge",jt=()=>{if(typeof window>"u")return"";const e=window[Ao];return typeof e=="string"?e:""};function Qa(e){if(typeof window>"u")return"";ei();const t=typeof e=="string"?e.trim():"";if(!t||t===jt())return jt();window[Ao]=t;try{window.dispatchEvent(new CustomEvent(Xa,{detail:t}))}catch{}return t}function tp(){var t;if(typeof window>"u")return;const e=jt()||typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN;if(ei(),window[Ao]="",!((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))try{window.MAP_TOKEN=""}catch{}if(e)try{window.dispatchEvent(new CustomEvent(Xa,{detail:""}))}catch{}}function ei(){var t;if(typeof window>"u"||window[Za]&&((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!jt()&&(window[Ao]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return jt()},set(o){Qa(o)}}),window[Za]=!0}catch{}}const op=":host{display:block;position:relative;height:var(--plugin-studio-height, 85vh);min-height:480px}:host([hidden]){display:none}.ps-logo{display:inline-flex;align-items:center}.ps-logo svg{display:block}.ps-count{color:#6d766e}.vtl-top{position:relative;z-index:3}.vtl-body{isolation:isolate}.ps-token{position:relative;display:inline-flex}.ps-show-header{position:fixed;top:8px;inset-inline-end:8px;z-index:2147483000;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #d1d4cd;border-radius:999px;background:#fffffff0;color:#3b463d;font:600 12px system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 14px #0000002e}.ps-show-header:hover,.ps-show-header:focus-visible{background:#fff;outline:2px solid #92b195}.ps-hide-header-phone{display:none}@media (max-width:760px){.ps-hide-header-phone{display:inline-flex;position:fixed;top:6px;inset-inline-end:8px;z-index:4;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid #d1d4cd;border-radius:var(--vtl-radius,8px);background:#d1d4cd;color:#3b463d;font:18px/1 system-ui,sans-serif;cursor:pointer}}.ps-token-dot{width:8px;height:8px;border-radius:50%;background:#b8bdb4}.ps-token-dot.is-yours,.ps-token-dot.is-url{background:#92b195}.ps-token-dot.is-built{background:#c9b36a}.ps-token-dot.is-none{background:#d27a6a}.ps-token-panel{position:absolute;top:100%;inset-inline-end:0;margin-top:4px;z-index:30;width:min(340px,90vw);display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid #d1d4cd;border-radius:10px;background:#fff;box-shadow:0 12px 32px #00000040;color:#3b463d;font-size:12px}.ps-token-label{display:flex;flex-direction:column;gap:4px}.ps-token-input{font:inherit;font-size:12px;padding:6px 8px;border:1px solid #d1d4cd;border-radius:7px;background:#f8f8f6;color:#3b463d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ps-token-row{display:flex;gap:8px}.ps-token-apply,.ps-token-clear{font:inherit;font-size:12px;padding:5px 12px;border-radius:7px;border:1px solid #d1d4cd;background:#d1d4cd;color:#3b463d;cursor:pointer}.ps-token-apply{background:#92b195;border-color:#92b195;color:#fff}.ps-token-apply:disabled{opacity:.6;cursor:progress}.ps-token-status{margin:0}.ps-token-head{margin:0;font-weight:600;font-size:12px}.ps-token-status.err{color:#b3412f}.ps-token-note{margin:0;color:#6d766e}.ps-locale{position:relative;display:inline-flex}.ps-locale-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;padding:4px 9px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer}.ps-locale-btn:hover{background:#d1d4cd}.ps-flag{font-size:13px;line-height:1}.ps-locale-name{max-width:11ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-token-btn .ps-locale-name{max-width:none}.ps-dots{color:#6d766e}.ps-locale-menu{position:absolute;top:100%;right:0;margin-top:4px;z-index:30;min-width:180px;list-style:none;padding:6px;border:1px solid #d1d4cd;border-radius:10px;background:#fff;box-shadow:0 12px 32px #00000080;max-height:320px;overflow:auto}.ps-locale-opt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;padding:7px 9px;border:0;border-radius:7px;background:none;color:#3b463d;cursor:pointer}.ps-locale-opt:hover,.ps-locale-opt.active{background:#d1d4cd;color:#3b463d}.ps-locale-opt.active .ps-locale-name{color:#92b195}.ps-locale-en{margin-left:auto;font-size:11px;color:#6d766e}.ps-toolbar{display:flex;flex-direction:column;gap:8px;padding:10px 12px 0}.ps-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ps-bar-t{flex:1 1 auto;min-width:0}.ps-bar-t b{font-size:15px;color:#3b463d}.ps-bar-sub{display:block;font-size:12px;color:#6d766e}.ps-btn{font:inherit;font-size:12px;padding:5px 10px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer;white-space:nowrap}.ps-btn:hover{background:#d1d4cd}.ps-embed{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1}.ps-embed label{font-size:12px;color:#6d766e;display:flex;justify-content:space-between;align-items:center}.ps-embed textarea{width:100%;height:58px;font:11px/1.35 ui-monospace,Menlo,monospace;border:1px solid #d1d4cd;border-radius:6px;background:#fff;color:#3b463d;padding:6px;resize:vertical}.ps-stage{position:absolute;top:10px;right:12px;bottom:12px;left:12px;border:1px solid #d1d4cd;border-radius:10px;overflow:hidden;background:#f3f3f1}.ps-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h: 0}.ps-slot{position:relative;min-height:100%}.ps-slot>*{min-height:0;max-height:none}.ps-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.ps-hint.err{color:#f87171}.ps-hint small{color:#6d766e}",Eo="plugin-studio:mapbox-token",Fo="plugin-studio:mapbox-token-url",ti="plugin-studio:header-hidden",oi="plugin-studio:map-provider";function yt(e){try{return typeof window<"u"&&window.localStorage.getItem(e)||""}catch{return""}}function _t(e,t){try{t?window.localStorage.setItem(e,t):window.localStorage.removeItem(e)}catch{}}const np=` +`,mc=mo({name:"VerticalTabsLayout",components:{BackToTopButton:ec},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},homeHref:{type:String,default:""},homeLabel:{type:String,default:""},shellMode:{type:String,default:"auto"}},emits:["update:active"],setup(){return En($c,"vertical-tabs-layout"),{T:fc}},data(){const e=(()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(max-width: 760px)").matches}catch{return!1}})();return{navOpen:this.initialNavOpen&&!e,railCollapsed:e?!1:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:e,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{},hostEls:{},mode:"app"}},computed:{phoneBarShown(){return this.narrow&&!this.header&&this.mode==="app"},railEndShown(){return!this.narrow&&!this.header},fabShown(){return this.narrow&&!this.header&&this.mode==="web"&&!this.navOpen},drawerEndShown(){return this.narrow&&!this.header&&this.mode==="web"},activeHostEl(){return this.hostEls[this.active]||null},railShown(){return this.narrow?this.navOpen:!0},homeLink(){const e=String(this.homeHref||"").trim();return!e||/^(javascript|data|vbscript):/i.test(e.replace(/[\u0000- ]/g,""))?"":e},homeText(){return this.homeLabel||this.label("home")},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const o of t.rows||[])e.push(o);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:{shellMode(){this.resolveShellMode()},active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){this.resolveShellMode();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:{resolveShellMode(){const e=o=>o==="web"||o==="app"?o:null;let t=e(this.shellMode);if(!t)try{const o=this.$el&&this.$el.getRootNode?this.$el.getRootNode():null,n=o&&o.host;t=e(n&&n.getAttribute?n.getAttribute("shell-mode"):null)}catch{}if(!t)try{const o=window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches||navigator.standalone===!0;t=window.Capacitor||o||window.MAP_OWNS_PAGE===!0?"app":"web"}catch{t="app"}this.mode=t},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",home:"Back to homepage"};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(o=>o.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.$nextTick(()=>this.watchContextLoss(e)),this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},deepCanvases(e,t=[]){if(!e)return t;for(const o of e.querySelectorAll("*"))o.tagName==="CANVAS"&&t.push(o),o.shadowRoot&&this.deepCanvases(o.shadowRoot,t);return t},watchContextLoss(e){const t=this._hostSlots[e];if(t)for(const o of this.deepCanvases(t))o.__vtlLossBound||(o.__vtlLossBound=!0,o.addEventListener("webglcontextlost",()=>{this.hostState={...this.hostState,[e]:"lost"}},{once:!0}))},reloadHostElement(e){const t=this._hostSlots[e];t&&(t.innerHTML=""),this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"loading"},this.$nextTick(()=>this.mountHostElement(e))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(n=>n.key===e),o=this._hostSlots[e];!t||!o||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},hc(t.src).then(()=>gc(t.element)).then(()=>{dc(t.element,t.src),o.innerHTML="";const n=document.createElement(t.element),s=t.attrs||{};for(const a in s){const i=s[a],r=i!=null&&typeof i=="object"?JSON.stringify(i):String(i);try{n[a]=i}catch{}try{n.setAttribute(a,r)}catch{}}n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",o.appendChild(n);for(const a of[0,250,1500])setTimeout(()=>this.watchContextLoss(e),a);this.hostState={...this.hostState,[e]:"ready"}}).catch(n=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:n&&n.message||String(n)}}))},iconSvg(e){return e?Va(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],o=(this.groups||[]).find(s=>s.key===e),n=t??(o&&o.open===!0);this.folderOverride={...this.folderOverride,[e]:!n}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const o=t.indexOf(this.active);let n=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")n=(o+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")n=(o-1+t.length)%t.length;else if(e.key==="Home")n=0;else if(e.key==="End")n=t.length-1;else return;e.preventDefault();const s=t[n];this.pick(s),this.$nextTick(()=>{const a=this._tabEls[s];a&&a.focus&&a.focus()})}}}),bc={key:0,class:"vtl-top"},vc=["aria-expanded","aria-label"],kc={class:"vtl-brand"},yc={class:"vtl-title"},_c={class:"vtl-meta"},xc={key:1,class:"vtl-pbar"},wc=["aria-expanded","aria-label"],Sc={class:"vtl-pbar-end"},Mc=["aria-expanded","aria-label"],Lc={class:"vtl-body"},Tc=["aria-label","aria-hidden","role","aria-orientation"],Cc=["href","aria-label","title"],Oc=["innerHTML"],Pc={class:"vtl-home-tx"},Nc=["aria-expanded","aria-label"],Ac=["innerHTML"],Ec={class:"vtl-collapse-tx"},Fc=["aria-expanded","onClick"],Ic={key:0,class:"vtl-cap"},Rc={class:"vtl-tl"},Dc={key:1,class:"vtl-td"},Hc=["innerHTML"],Wc={key:1,class:"vtl-tier"},Uc={key:0,class:"vtl-cap"},zc={class:"vtl-tl"},Bc={key:1,class:"vtl-td"},jc={class:"vtl-rows"},Vc=["aria-selected","aria-disabled","tabindex","onClick"],Kc=["innerHTML"],qc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Gc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Yc={class:"vtl-tab-text"},Jc={class:"vtl-tab-label"},Xc={key:0,class:"vtl-tab-badge"},Zc={key:0,class:"vtl-tab-sub"},Qc=["innerHTML"],ed=["aria-selected","aria-disabled","tabindex","onClick"],td=["innerHTML"],od={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},nd={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},sd={class:"vtl-tab-text"},ad={class:"vtl-tab-label"},id={key:0,class:"vtl-tab-sub"},rd={key:4,class:"vtl-rail-end"},ld={key:5,class:"vtl-rail-end vtl-drawer-end"},cd={class:"vtl-main"},dd={class:"vtl-content"},pd=["hidden"],ud={key:0,class:"vtl-host-hint"},fd={key:1,class:"vtl-host-hint"},hd=["onClick"],gd={key:2,class:"vtl-host-hint err"};function $d(e,t,o,n,s,a){const i=gn("BackToTopButton");return S(),L("div",{class:fe(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header,"has-phone-bar":e.phoneBarShown}]),style:ct(e.fabShown?{"--map-fab-clearance":"calc(56px + env(safe-area-inset-bottom))","--map-fab-beside":"calc(56px + env(safe-area-inset-left))"}:null)},[e.header?(S(),L("header",bc,[b("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=r=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,vc),b("span",kc,[Xe(e.$slots,"brand")]),b("b",yc,T(e.title),1),b("span",_c,[Xe(e.$slots,"meta")])])):W("",!0),e.phoneBarShown?(S(),L("div",xc,[b("button",{class:"vtl-phone-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=r=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,wc),b("span",Sc,[Xe(e.$slots,"phone-end")])])):W("",!0),e.fabShown?(S(),L("button",{key:2,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[2]||(t[2]=r=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,Mc)):W("",!0),e.narrow?(S(),Rt(i,{key:3,target:e.activeHostEl,labels:{backToTop:e.T("actions.backToTop","Back to top")}},null,8,["target","labels"])):W("",!0),b("div",Lc,[b("nav",{class:fe(["vtl-nav",{"has-rail-end":e.railEndShown&&!!e.$slots["rail-end"]||e.drawerEndShown&&!!e.$slots["phone-end"]}]),"aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[e.homeLink?(S(),L("a",{key:0,class:"vtl-home",href:e.homeLink,target:"_top","aria-label":e.homeText,title:e.railCollapsed&&!e.narrow?e.homeText:null},[b("span",{class:"vtl-home-ic","aria-hidden":"true",innerHTML:e.iconSvg("home")},null,8,Oc),b("span",Pc,T(e.homeText),1)],8,Cc)):W("",!0),b("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[3]||(t[3]=(...r)=>e.toggleRail&&e.toggleRail(...r))},[b("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,Ac),b("span",Ec,T(e.label("collapse")),1)],8,Nc),e.$slots.rail?Xe(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,1):e.groups&&e.groups.length?(S(!0),L(Y,{key:2},Oe(e.groups,r=>(S(),L("div",{class:"vtl-grp",key:r.key},[r.folder?(S(),L("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(r)),onClick:l=>e.toggleFolder(r.key)},[r.badge?(S(),L("span",Ic,T(r.badge),1)):W("",!0),b("span",Rc,T(r.label),1),r.count!=null?(S(),L("span",Dc,T(r.count),1)):W("",!0),b("span",{class:fe(["vtl-chev",{open:!e.isFolderClosed(r)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,Hc)],8,Fc)):(S(),L("div",Wc,[r.badge?(S(),L("span",Uc,T(r.badge),1)):W("",!0),b("span",zc,T(r.label),1),r.count!=null?(S(),L("span",Bc,T(r.count),1)):W("",!0)])),$t(b("div",jc,[(S(!0),L(Y,null,Oe(r.rows,l=>(S(),L("button",{key:l.key,type:"button",role:"tab",class:fe(["vtl-tab",{active:l.key===e.active,disabled:l.disabled}]),"aria-selected":String(l.key===e.active),"aria-disabled":l.disabled?"true":null,tabindex:l.key===e.active?0:-1,ref_for:!0,ref:d=>e.registerTab(l.key,d),onClick:d=>e.pick(l.key),onKeydown:t[4]||(t[4]=d=>e.onKey(d))},[l.icon?(S(),L("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,Kc)):l.emoji?(S(),L("span",qc,T(l.emoji),1)):(S(),L("span",Gc,T(e.initial(l.label)),1)),b("span",Yc,[b("span",Jc,[Ne(T(l.label),1),l.badge?(S(),L("span",Xc,T(l.badge),1)):W("",!0)]),l.sub?(S(),L("span",Zc,[b("span",{innerHTML:l.sub},null,8,Qc)])):W("",!0)])],42,Vc))),128))],512),[[Tn,!r.folder||!e.isFolderClosed(r)]])]))),128)):(S(!0),L(Y,{key:3},Oe(e.items,r=>(S(),L("button",{key:r.key,type:"button",role:"tab",class:fe(["vtl-tab",{active:r.key===e.active,disabled:r.disabled}]),"aria-selected":String(r.key===e.active),"aria-disabled":r.disabled?"true":null,tabindex:r.key===e.active?0:-1,ref_for:!0,ref:l=>e.registerTab(r.key,l),onClick:l=>e.pick(r.key),onKeydown:t[5]||(t[5]=l=>e.onKey(l))},[r.icon?(S(),L("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,td)):r.emoji?(S(),L("span",od,T(r.emoji),1)):(S(),L("span",nd,T(e.initial(r.label)),1)),b("span",sd,[b("span",ad,T(r.label),1),r.sub?(S(),L("span",id,T(r.sub),1)):W("",!0)])],42,ed))),128)),e.railEndShown&&e.$slots["rail-end"]?(S(),L("div",rd,[Xe(e.$slots,"rail-end",{collapsed:e.railCollapsed})])):W("",!0),e.drawerEndShown&&e.$slots["phone-end"]?(S(),L("div",ld,[Xe(e.$slots,"phone-end")])):W("",!0)],10,Tc),b("main",cd,[e.header?Xe(e.$slots,"toolbar",{},void 0,void 0,0):W("",!0),b("div",dd,[(S(!0),L(Y,null,Oe(e.mountedElementRows,r=>$t((S(),L("section",{key:r.key,class:"vtl-host",hidden:r.key!==e.active,ref_for:!0,ref:l=>{l?e.hostEls[r.key]=l:delete e.hostEls[r.key]}},[b("div",{class:"vtl-host-slot",ref_for:!0,ref:l=>e.setHostSlot(r.key,l)},null,512),e.hostState[r.key]==="loading"?(S(),L("div",ud,T(e.T("messages.loadingNamed","Loading {name}…").replace("{name}",r.label)),1)):e.hostState[r.key]==="lost"?(S(),L("div",fd,[Ne(T(e.T("messages.mapContextLost","This map was unloaded to free graphics memory."))+" ",1),b("button",{type:"button",class:"vtl-host-reload",onClick:l=>e.reloadHostElement(r.key)},T(e.T("buttons.reloadMap","Reload Map")),9,hd)])):e.hostState[r.key]==="error"?(S(),L("div",gd,[Ne(T(e.T("messages.couldNotLoadNamed","Could not load {name}.").replace("{name}",r.label)),1),t[6]||(t[6]=b("br",null,null,-1)),b("small",null,T(e.hostError[r.key]),1)])):W("",!0)],8,pd)),[[Tn,r.key===e.active]])),128)),Xe(e.$slots,"default")])])])],6)}const md=Po(mc,[["render",$d],["styles",[uc]]]),bd='.st{display:flex;flex-direction:column;margin:0 -12px}.st-bar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fff}.st-find{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;height:30px;padding:0 8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1;color:#6d766e}.st-find:focus-within{border-color:#92b195;background:#fff}.st-find-ic{display:inline-flex}.st-find-ic svg{width:14px;height:14px}.st-find-in{flex:1 1 auto;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:13px;color:#3b463d}.st-tool{flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:#6d766e;cursor:pointer}.st-tool:hover{background:#f3f3f1;color:#3b463d}.st-tool:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-tool svg{width:16px;height:16px}.st-tree{display:flex;flex-direction:column;padding:0 0 8px;outline:0}.st-row{position:relative;display:flex;align-items:center;gap:6px;height:28px;box-sizing:border-box;padding-block:0;padding-inline:calc(8px + var(--st-depth) * 14px) 10px;font-size:13px;color:#3b463d;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:0}.st-row:hover{background:#f3f3f1}.st-row:focus-visible{box-shadow:inset 0 0 0 1px #92b195}.st-row.active{background:#92b1953d}.st-row.active:after{content:"";position:absolute;inset-inline-start:0;top:4px;bottom:4px;width:3px;border-start-end-radius:3px;border-end-end-radius:3px;background:#92b195}.st-row.alias.active{background:#92b1951f}.st-sec{position:sticky;top:46px;z-index:2;height:30px;margin-top:6px;background:#fff;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6d766e;border-top:1px solid #eceee9}.st-sec:first-child{margin-top:0;border-top:0}.st-sec:hover{background:#fff;color:#3b463d}.st-cap{flex:0 0 auto;font:700 10px/1 system-ui,sans-serif;letter-spacing:.3px;padding:3px 6px;border-radius:999px;background:#92b195;color:#1d2a1f}.st-sec-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-twisty,.st-twisty-sp{flex:0 0 16px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#6d766e}.st-twisty svg{width:14px;height:14px;transition:transform .12s ease}.st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st:dir(rtl) .st-twisty svg{transform:scaleX(-1)}.st:dir(rtl) .st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st-ic{flex:0 0 16px;display:inline-flex;color:#6d766e}.st-ic svg{width:16px;height:16px}.st-row.active .st-ic{color:#5f8a63}.st-label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-desc{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;font:11px/1 ui-monospace,Menlo,monospace;color:#8a928b}.st-part{flex:0 0 auto;font:600 9px/1 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.3px;padding:2px 4px;border:1px solid #92b195;border-radius:4px;color:#5f8a63}.st-count{flex:0 0 auto;margin-inline-start:auto;min-width:18px;text-align:right;font-size:11px;font-weight:500;letter-spacing:0;color:#6d766e}.st-guide{position:absolute;top:0;bottom:0;inset-inline-start:calc(15px + var(--st-g) * 14px);border-inline-start:1px solid #dfe2db;pointer-events:none}.st-row:hover>.st-guide{border-inline-start-color:#c4c8c0}.st-empty{margin:12px;font-size:13px;color:#6d766e}.st-activity{display:flex;flex-direction:column;gap:4px}.st-act{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:44px;margin-inline-start:172px;padding:0;border:0;border-radius:10px;background:none;color:#6d766e;cursor:pointer}.st-act:hover,.st-act.active{background:#f3f3f1;color:#3b463d}.st-act:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-act-ic{display:inline-flex}.st-act-ic svg{width:20px;height:20px}.st-act-n{position:absolute;right:6px;bottom:5px;font:700 9px/1 system-ui,sans-serif;color:#5f8a63}',vd='.st { display:flex; flex-direction:column; margin:0 -12px; }.st-bar { position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:6px; padding:8px 12px 8px; background:#ffffff; }.st-find { flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:6px; height:30px; padding:0 8px; border:1px solid #d1d4cd; border-radius:8px; background:#f3f3f1; color:#6d766e; }.st-find:focus-within { border-color:#92b195; background:#ffffff; }.st-find-ic { display:inline-flex; } .st-find-ic svg { width:14px; height:14px; }.st-find-in { flex:1 1 auto; min-width:0; border:0; outline:0; background:none; font:inherit; font-size:13px; color:#3b463d; }.st-tool { flex:0 0 auto; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:8px; background:none; color:#6d766e; cursor:pointer; }.st-tool:hover { background:#f3f3f1; color:#3b463d; } .st-tool:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-tool svg { width:16px; height:16px; }.st-tree { display:flex; flex-direction:column; padding:0 0 8px; outline:0; }.st-row { position:relative; display:flex; align-items:center; gap:6px; height:28px; box-sizing:border-box; padding-block:0; padding-inline:calc(8px + var(--st-depth) * 14px) 10px; font-size:13px; color:#3b463d; cursor:pointer; white-space:nowrap; user-select:none; outline:0; }.st-row:hover { background:#f3f3f1; }.st-row:focus-visible { box-shadow:inset 0 0 0 1px #92b195; }.st-row.active { background:rgba(146,177,149,.24); }.st-row.active::after { content:""; position:absolute; inset-inline-start:0; top:4px; bottom:4px; width:3px; border-start-end-radius:3px; border-end-end-radius:3px; background:#92b195; }.st-row.alias.active { background:rgba(146,177,149,.12); }.st-sec { position:sticky; top:46px; z-index:2; height:30px; margin-top:6px; background:#ffffff; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#6d766e; border-top:1px solid #eceee9; }.st-sec:first-child { margin-top:0; border-top:0; }.st-sec:hover { background:#ffffff; color:#3b463d; }.st-cap { flex:0 0 auto; font:700 10px/1 system-ui,sans-serif; letter-spacing:.3px; padding:3px 6px; border-radius:999px; background:#92b195; color:#1d2a1f; }.st-sec-label { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-twisty, .st-twisty-sp { flex:0 0 16px; width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center; color:#6d766e; }.st-twisty svg { width:14px; height:14px; transition:transform .12s ease; }.st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st:dir(rtl) .st-twisty svg { transform:scaleX(-1); } .st:dir(rtl) .st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st-ic { flex:0 0 16px; display:inline-flex; color:#6d766e; } .st-ic svg { width:16px; height:16px; }.st-row.active .st-ic { color:#5f8a63; }.st-label { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-desc { flex:1 1 0; min-width:0; overflow:hidden; text-overflow:ellipsis; font:11px/1 ui-monospace,Menlo,monospace; color:#8a928b; }.st-part { flex:0 0 auto; font:600 9px/1 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.3px; padding:2px 4px; border:1px solid #92b195; border-radius:4px; color:#5f8a63; }.st-count { flex:0 0 auto; margin-inline-start:auto; min-width:18px; text-align:right; font-size:11px; font-weight:500; letter-spacing:0; color:#6d766e; }.st-guide { position:absolute; top:0; bottom:0; inset-inline-start:calc(15px + var(--st-g) * 14px); border-inline-start:1px solid #dfe2db; pointer-events:none; }.st-row:hover > .st-guide { border-inline-start-color:#c4c8c0; }.st-empty { margin:12px; font-size:13px; color:#6d766e; }.st-activity { display:flex; flex-direction:column; gap:4px; }.st-act { position:relative; display:flex; align-items:center; justify-content:center; width:48px; height:44px; margin-inline-start:172px; padding:0; border:0; border-radius:10px; background:none; color:#6d766e; cursor:pointer; }.st-act:hover, .st-act.active { background:#f3f3f1; color:#3b463d; }.st-act:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-act-ic { display:inline-flex; } .st-act-ic svg { width:20px; height:20px; }.st-act-n { position:absolute; right:6px; bottom:5px; font:700 9px/1 system-ui,sans-serif; color:#5f8a63; }',kd='',yd={filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",treeLabel:"Plugins by capability",openSection:"Open {cap}, {label}",part:"part"},_d='',Dn=e=>e.canonical!==void 0?!!e.canonical:e.depth===0,xd=e=>e.canonical!==void 0?!e.canonical&&!e.folder:e.depth>0,wd=mo({name:"StudioTree",props:{sections:{type:Array,default:()=>[]},active:{type:String,default:""},collapsed:{type:Boolean,default:!1},pick:{type:Function,default:null},expand:{type:Function,default:null},strings:{type:Object,default:()=>({})}},emits:["select"],setup(){En(vd,"studio-tree")},data(){const e=this.readState();return{query:"",focusId:"",secClosed:e.sec||{},nodeOpen:e.node||{},chev:_d,collapseAllSvg:kd}},computed:{byId(){const e=new Map;for(const t of this.sections)for(const o of t.nodes)e.set(o.id,o);return e},q(){return this.query.trim().toLowerCase()},kept(){if(!this.q)return null;const e=new Set;for(const t of this.sections)for(const o of t.nodes){if(!(o.label.toLowerCase().includes(this.q)||String(o.desc||"").toLowerCase().includes(this.q)))continue;e.add(o.id);let s=o.parent;for(;s;)e.add(s),s=this.byId.get(s)&&this.byId.get(s).parent}return e},visible(){const e=[];for(const t of this.sections){const o=this.kept?t.nodes.filter(n=>this.kept.has(n.id)):t.nodes;if(!(this.kept&&!o.length)&&(e.push({id:"sec:"+t.id,section:!0,sectionId:t.id,level:1,depth:0,expandable:!0,cap:t.cap,badge:t.badge||"CAP "+t.cap,label:t.label,title:t.title||"",count:t.nodes.filter(n=>n.depth===0).length}),!(!this.kept&&this.secClosed[t.id])))for(const n of o)!this.kept&&!this.ancestorsOpen(n)||e.push({...n,sectionId:t.id,level:n.depth+2,expandable:!!n.kids,alias:xd(n)})}return e},activeSectionId(){for(const e of this.sections)if(e.nodes.some(t=>Dn(t)&&t.target===this.active))return e.id;return""}},watch:{active:{handler(){this.reveal()},immediate:!0},sections(){this.reveal()},query(e){e&&this.visible.length&&(this.focusId=this.visible[0].id)}},methods:{svg(e){return e?Va(e):""},str(e,t){let o=this.strings[e]||yd[e]||e;if(t)for(const n in t)o=o.split("{"+n+"}").join(String(t[n]));return o},storageKey(){return"dx-studio-tree:"+(typeof location<"u"&&location.pathname||"")},readState(){try{return JSON.parse(window.localStorage.getItem(this.storageKey())||"{}")||{}}catch{return{}}},saveState(){try{window.localStorage.setItem(this.storageKey(),JSON.stringify({sec:this.secClosed,node:this.nodeOpen}))}catch{}},ancestorsOpen(e){let t=e.parent;for(;t;){if(!this.nodeOpen[t])return!1;t=this.byId.get(t)&&this.byId.get(t).parent}return!0},isOpen(e){return this.kept?!0:e.section?!this.secClosed[e.sectionId]:!!this.nodeOpen[e.id]},setOpen(e,t){e.section?this.secClosed={...this.secClosed,[e.sectionId]:!t}:this.nodeOpen={...this.nodeOpen,[e.id]:t},this.saveState()},toggle(e){e.expandable&&this.setOpen(e,!this.isOpen(e))},collapseAll(){this.nodeOpen={},this.saveState();const e=this.visible.find(t=>!t.section&&t.target===this.active&&Dn(t));e&&(this.focusId=e.id)},rowClass(e){return{"st-row":!0,"st-sec":!!e.section,active:!e.section&&e.target===this.active,alias:!!e.alias}},setRow(e,t){this._rows||(this._rows={}),t?this._rows[e]=t:delete this._rows[e]},activate(e){if(e.section){this.toggle(e);return}e.target&&(this.pick?this.pick(e.target):this.$emit("select",e.target))},onRowClick(e){this.focusId=e.id,this.activate(e)},focusRow(e){e&&(this.focusId=e,this.$nextTick(()=>{const t=this._rows&&this._rows[e];t&&(t.focus({preventScroll:!0}),t.scrollIntoView({block:"nearest"}))}))},onTreeKey(e){const t=this.visible;if(!t.length)return;const o=Math.max(0,t.findIndex(a=>a.id===this.focusId)),n=t[o],s=a=>a.section?"":a.parent||"sec:"+a.sectionId;switch(e.key){case"ArrowDown":this.focusRow((t[o+1]||n).id);break;case"ArrowUp":this.focusRow((t[o-1]||n).id);break;case"Home":this.focusRow(t[0].id);break;case"End":this.focusRow(t[t.length-1].id);break;case"ArrowRight":if(!n.expandable)break;this.isOpen(n)?t[o+1]&&t[o+1].level>n.level&&this.focusRow(t[o+1].id):this.setOpen(n,!0);break;case"ArrowLeft":n.expandable&&this.isOpen(n)&&!this.kept?this.setOpen(n,!1):this.focusRow(s(n));break;case"Enter":case" ":this.activate(n);break;default:if(e.key.length===1&&/\S/.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey){const a=e.key.toLowerCase(),r=t.slice(o+1).concat(t.slice(0,o+1)).find(l=>String(l.label).toLowerCase().startsWith(a));r&&this.focusRow(r.id);break}return}e.preventDefault()},onFindKey(e){e.key==="Escape"?(this.query="",e.preventDefault()):e.key==="ArrowDown"&&this.visible.length&&(this.focusRow(this.visible[0].id),e.preventDefault())},reveal(){if(!this.active||!this.sections.length)return;let e=null;for(const t of this.sections)if(e=t.nodes.find(o=>Dn(o)&&o.target===this.active),e){this.secClosed[t.id]&&(this.secClosed={...this.secClosed,[t.id]:!1},this.saveState());break}if(e)for(let t=e.parent;t;){const o=this.byId.get(t);if(!o)break;if(o.target===this.active&&!this.nodeOpen[t]){e=o;break}t=o.parent}if(e){let t=e.parent,o=!1;for(;t;)this.nodeOpen[t]||(this.nodeOpen={...this.nodeOpen,[t]:!0},o=!0),t=this.byId.get(t)&&this.byId.get(t).parent;o&&this.saveState()}e&&((!this.focusId||!this.byId.has(this.focusId)||this.byId.get(this.focusId).target!==this.active)&&(this.focusId=e.id),this.$nextTick(()=>{const t=this._rows&&this._rows[e.id];t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest"})}))},openSectionFromActivity(e){this.secClosed[e]&&(this.secClosed={...this.secClosed,[e]:!1},this.saveState()),this.expand&&this.expand(),this.$nextTick(()=>this.focusRow("sec:"+e))}}}),Sd={key:0,class:"st-activity"},Md=["aria-label","onClick"],Ld=["innerHTML"],Td={class:"st-act-n","aria-hidden":"true"},Cd={key:1,class:"st"},Od={class:"st-bar"},Pd={class:"st-find"},Nd=["innerHTML"],Ad=["placeholder","aria-label"],Ed=["aria-label","title"],Fd=["innerHTML"],Id=["aria-label"],Rd=["aria-level","aria-expanded","aria-selected","tabindex","title","onClick","onFocus"],Dd=["innerHTML"],Hd={class:"st-cap"},Wd={class:"st-sec-label"},Ud={class:"st-count"},zd=["innerHTML","onClick"],Bd={key:1,class:"st-twisty-sp","aria-hidden":"true"},jd=["innerHTML"],Vd={class:"st-label"},Kd={key:2,class:"st-part"},qd={class:"st-desc"},Gd={key:3,class:"st-count"},Yd={key:0,class:"st-empty"};function Jd(e,t,o,n,s,a){return e.collapsed?(S(),L("div",Sd,[(S(!0),L(Y,null,Oe(e.sections,i=>(S(),L("button",{key:i.id,type:"button",class:fe(["st-act",{active:i.id===e.activeSectionId}]),"aria-label":e.str("openSection",{cap:i.badge||"CAP "+i.cap,label:i.label}),onClick:r=>e.openSectionFromActivity(i.id)},[b("span",{class:"st-act-ic","aria-hidden":"true",innerHTML:e.svg(i.icon)},null,8,Ld),b("span",Td,T(i.short||i.cap),1)],10,Md))),128))])):(S(),L("div",Cd,[b("div",Od,[b("label",Pd,[b("span",{class:"st-find-ic","aria-hidden":"true",innerHTML:e.svg("search")},null,8,Nd),$t(b("input",{ref:"find",type:"search",class:"st-find-in","onUpdate:modelValue":t[0]||(t[0]=i=>e.query=i),placeholder:e.str("filterPlaceholder"),"aria-label":e.str("filterPlaceholder"),onKeydown:t[1]||(t[1]=(...i)=>e.onFindKey&&e.onFindKey(...i))},null,40,Ad),[[An,e.query]])]),b("button",{type:"button",class:"st-tool","aria-label":e.str("collapseAll"),title:e.str("collapseAll"),onClick:t[2]||(t[2]=(...i)=>e.collapseAll&&e.collapseAll(...i))},[b("span",{"aria-hidden":"true",innerHTML:e.collapseAllSvg},null,8,Fd)],8,Ed)]),b("div",{class:"st-tree",role:"tree","aria-label":e.str("treeLabel"),onKeydown:t[3]||(t[3]=(...i)=>e.onTreeKey&&e.onTreeKey(...i))},[(S(!0),L(Y,null,Oe(e.visible,i=>(S(),L("div",{key:i.id,ref_for:!0,ref:r=>e.setRow(i.id,r),role:"treeitem","aria-level":i.level,"aria-expanded":i.expandable?String(e.isOpen(i)):null,"aria-selected":i.section?null:String(i.target===e.active),tabindex:i.id===e.focusId?0:-1,class:fe(e.rowClass(i)),style:ct({"--st-depth":i.depth}),title:i.title||null,onClick:r=>e.onRowClick(i),onFocus:r=>e.focusId=i.id},[i.section?(S(),L(Y,{key:0},[b("span",{class:"st-twisty","aria-hidden":"true",innerHTML:e.chev},null,8,Dd),b("span",Hd,T(i.badge),1),b("span",Wd,T(i.label),1),b("span",Ud,T(i.count),1)],64)):(S(),L(Y,{key:1},[(S(!0),L(Y,null,Oe(i.depth,r=>(S(),L("span",{key:r,class:"st-guide",style:ct({"--st-g":r-1}),"aria-hidden":"true"},null,4))),128)),i.expandable?(S(),L("span",{key:0,class:"st-twisty","aria-hidden":"true",innerHTML:e.chev,onClick:Ia(r=>e.toggle(i),["stop"])},null,8,zd)):(S(),L("span",Bd)),b("span",{class:"st-ic","aria-hidden":"true",innerHTML:e.svg(i.icon)},null,8,jd),b("span",Vd,T(i.label),1),i.part?(S(),L("span",Kd,T(e.str("part")),1)):W("",!0),b("span",qd,T(i.desc),1),i.expandable?(S(),L("span",Gd,T(i.kids),1)):W("",!0)],64))],46,Rd))),128)),e.query&&!e.visible.length?(S(),L("p",Yd,T(e.str("noMatch",{query:e.query})),1)):W("",!0)],40,Id)]))}const Xd=Po(wd,[["render",Jd],["styles",[bd]]]),No=[{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},{code:"it",name:"Italian",nativeName:"Italiano",flag:"🇮🇹",hideFromSwitcher:!0},{code:"ro",name:"Romanian",nativeName:"Română",flag:"🇷🇴",hideFromSwitcher:!0},{code:"zh",name:"Chinese",nativeName:"中文",flag:"🇨🇳",hideFromSwitcher:!0}];No.filter(e=>!e.hideFromSwitcher);function Zd(e){return No.find(t=>t.code===e)}function Hn(e){const t=String(e||"").split("-")[0].toLowerCase();return No.some(o=>o.code===t)?t:"en"}const Ja="doxa-maps:locale";function Qd(){try{const e=localStorage.getItem(Ja);if(e)return Hn(e)}catch{}return Hn(navigator==null?void 0:navigator.language)}function ep(e){try{localStorage.setItem(Ja,e)}catch{}}const Ao="__doxaMapToken",Xa="doxa:map-token",Za="__doxaMapTokenBridge",jt=()=>{if(typeof window>"u")return"";const e=window[Ao];return typeof e=="string"?e:""};function Qa(e){if(typeof window>"u")return"";ei();const t=typeof e=="string"?e.trim():"";if(!t||t===jt())return jt();window[Ao]=t;try{window.dispatchEvent(new CustomEvent(Xa,{detail:t}))}catch{}return t}function tp(){var t;if(typeof window>"u")return;const e=jt()||typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN;if(ei(),window[Ao]="",!((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))try{window.MAP_TOKEN=""}catch{}if(e)try{window.dispatchEvent(new CustomEvent(Xa,{detail:""}))}catch{}}function ei(){var t;if(typeof window>"u"||window[Za]&&((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!jt()&&(window[Ao]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return jt()},set(o){Qa(o)}}),window[Za]=!0}catch{}}const op=":host{display:block;position:relative;height:var(--plugin-studio-height, 85vh);min-height:480px}:host([hidden]){display:none}.ps-logo{display:inline-flex;align-items:center}.ps-logo svg{display:block}.ps-count{color:#6d766e}.vtl-top{position:relative;z-index:3}.vtl-body{isolation:isolate}.ps-token{position:relative;display:inline-flex}.ps-show-header{position:fixed;top:8px;inset-inline-end:8px;z-index:2147483000;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #d1d4cd;border-radius:999px;background:#fffffff0;color:#3b463d;font:600 12px system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 14px #0000002e}.ps-show-header:hover,.ps-show-header:focus-visible{background:#fff;outline:2px solid #92b195}.ps-hide-header-phone{display:none}@media (max-width:760px){.ps-hide-header-phone{display:inline-flex;position:fixed;top:6px;inset-inline-end:8px;z-index:4;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid #d1d4cd;border-radius:var(--vtl-radius,8px);background:#d1d4cd;color:#3b463d;font:18px/1 system-ui,sans-serif;cursor:pointer}}.ps-token-dot{width:8px;height:8px;border-radius:50%;background:#b8bdb4}.ps-token-dot.is-yours,.ps-token-dot.is-url{background:#92b195}.ps-token-dot.is-built{background:#c9b36a}.ps-token-dot.is-none{background:#d27a6a}.ps-token-panel{position:absolute;top:100%;inset-inline-end:0;margin-top:4px;z-index:30;width:min(340px,90vw);display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid #d1d4cd;border-radius:10px;background:#fff;box-shadow:0 12px 32px #00000040;color:#3b463d;font-size:12px}.ps-token-label{display:flex;flex-direction:column;gap:4px}.ps-token-input{font:inherit;font-size:12px;padding:6px 8px;border:1px solid #d1d4cd;border-radius:7px;background:#f8f8f6;color:#3b463d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ps-token-row{display:flex;gap:8px}.ps-token-apply,.ps-token-clear{font:inherit;font-size:12px;padding:5px 12px;border-radius:7px;border:1px solid #d1d4cd;background:#d1d4cd;color:#3b463d;cursor:pointer}.ps-token-apply{background:#92b195;border-color:#92b195;color:#fff}.ps-token-apply:disabled{opacity:.6;cursor:progress}.ps-token-status{margin:0}.ps-token-head{margin:0;font-weight:600;font-size:12px}.ps-token-status.err{color:#b3412f}.ps-token-note{margin:0;color:#6d766e}.ps-locale{position:relative;display:inline-flex}.ps-locale-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;padding:4px 9px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer}.ps-locale-btn:hover{background:#d1d4cd}.ps-flag{font-size:13px;line-height:1}.ps-locale-name{max-width:11ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-token-btn .ps-locale-name{max-width:none}.ps-dots{color:#6d766e}.ps-locale-menu{position:absolute;top:100%;right:0;margin-top:4px;z-index:30;min-width:180px;list-style:none;padding:6px;border:1px solid #d1d4cd;border-radius:10px;background:#fff;box-shadow:0 12px 32px #00000080;max-height:320px;overflow:auto}.ps-locale-opt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;padding:7px 9px;border:0;border-radius:7px;background:none;color:#3b463d;cursor:pointer}.ps-locale-opt:hover,.ps-locale-opt.active{background:#d1d4cd;color:#3b463d}.ps-locale-opt.active .ps-locale-name{color:#92b195}.ps-locale-en{margin-left:auto;font-size:11px;color:#6d766e}.ps-toolbar{display:flex;flex-direction:column;gap:8px;padding:10px 12px 0}.ps-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ps-bar-t{flex:1 1 auto;min-width:0}.ps-bar-t b{font-size:15px;color:#3b463d}.ps-bar-sub{display:block;font-size:12px;color:#6d766e}.ps-btn{font:inherit;font-size:12px;padding:5px 10px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer;white-space:nowrap}.ps-btn:hover{background:#d1d4cd}.ps-embed{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1}.ps-embed label{font-size:12px;color:#6d766e;display:flex;justify-content:space-between;align-items:center}.ps-embed textarea{width:100%;height:58px;font:11px/1.35 ui-monospace,Menlo,monospace;border:1px solid #d1d4cd;border-radius:6px;background:#fff;color:#3b463d;padding:6px;resize:vertical}.ps-stage{position:absolute;top:10px;right:12px;bottom:12px;left:12px;border:1px solid #d1d4cd;border-radius:10px;overflow:hidden;background:#f3f3f1}.ps-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h: 0}.ps-slot{position:relative;min-height:100%}.ps-slot>*{min-height:0;max-height:none}.ps-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.ps-hint.err{color:#f87171}.ps-hint small{color:#6d766e}",Eo="plugin-studio:mapbox-token",Fo="plugin-studio:mapbox-token-url",ti="plugin-studio:header-hidden",oi="plugin-studio:map-provider";function yt(e){try{return typeof window<"u"&&window.localStorage.getItem(e)||""}catch{return""}}function _t(e,t){try{t?window.localStorage.setItem(e,t):window.localStorage.removeItem(e)}catch{}}const np=` :host { display:block; position:relative; height:var(--plugin-studio-height, 85vh); min-height:480px; } :host([hidden]) { display:none; } .ps-logo { display:inline-flex; align-items:center; } diff --git a/public/dx-maps/plugin-studio/plugin-studio/index.html b/public/dx-maps/plugin-studio/plugin-studio/index.html index ae34ecb27..38fbad77f 100644 --- a/public/dx-maps/plugin-studio/plugin-studio/index.html +++ b/public/dx-maps/plugin-studio/plugin-studio/index.html @@ -67,7 +67,7 @@ - + - + - + - +