1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./C_YC4gad.js","./mapbox-gl.CvTM5QQz.css"])))=>i.map(i=>d[i]); 2import{bE as da,bF as fa,bJ as Vt,b as oe,N as pa,m as b,dJ as Ht,bT as ma,bR as va,cM as ya,_ as jt,z as T,d as le,o as v,c as _,e as o,n as j,i as u,t as w,q as te,C as Ce,F as xe,D as C,a as S,d0 as ha,aJ as ga,aV as _a,w as z,k as ne,j as Se,aj as Dt,E as vt,a2 as ba,y as qt,c5 as ka,as as Ee,ao as xa,e1 as yt,ah as ht,at as Ie,e2 as gt,e3 as _t,B as Ca,dz as Ma,e4 as wa,aN as La,c4 as Ta,bp as Ra,am as Sa,ad as bt,e5 as kt,M as Y,v as Ea,x as Ia,aP as Pa,Q as Le,a1 as $a,aQ as Aa,a0 as Oa,e6 as za}from"./D7P3cwJT.js";import{a as Ua,_ as Ba}from"./CghsDCs2.js";import{_ as Na}from"./DZE2n8KO.js";import{p as Ke,r as Fa}from"./Dk-HGWjQ.js";import{P as Va,h as Ha}from"./CkqgTstX.js";import{_ as ja,a as Da}from"./BR5_q28w.js";import{c as qa}from"./Bfd5Thr0.js";import{_ as Wa}from"./Bm9tGjK-.js";import"./C_YC4gad.js";function Ga(e){return!!(e.type==="vereda"||e.type==="huerto"||e.type==="centro"&&e.link?.startsWith("/centros/")||e.type==="vivero"&&e.link?.startsWith("/viveros/"))}function De(e){return e.filter(a=>!Ga(a))}function qe(e){return e.split(` 3`).map(a=>a.replace(/\s*\([^)]*\)/g,"").trim()).filter(Boolean).join(` 4`)}function ze(e,a){if(!e||typeof e!="object")return"";const t=e;if(t.phones?.length){const l=t.phones.map(s=>{const c=s.value?.trim();if(!c)return"";const y=s.label?.trim();return!y||a?.omitPhoneLabels?c:`${c} (${y})`}).filter(Boolean).join(` 5`);return a?.omitPhoneLabels?qe(l):l}const r=t.phone?.trim()??"";return a?.omitPhoneLabels?qe(r):r}function Ue(e,a){return e?.trim()?e.trim():!a||typeof a!="object"?"":a.hours?.trim()??""}function Xe(e){return e==="en-US"||e.startsWith("en")}function Wt(e,a){return e.contact?{...e,contact:qe(e.contact)}:e}function Za(e,a,t){if(!Xe(a)||!e?.hours?.trim())return t;switch(e.type){case"centro":case"vivero":case"vereda":return"Visiting Hours";default:return t}}const Ka={"metro-centro":"METRO-CENTRE","metro-centre":"METRO-CENTRE",norte:"NORTH",north:"NORTH",este:"EAST",east:"EAST",sur:"SOUTH",south:"SOUTH"};function Xa(e){return e.trim().replace(/^cuenca\s+/i,"").toLowerCase()}function Pe(e,a){const t=e?.trim();if(t)return Xe(a)?Ka[Xa(t)]??t.replace(/^cuenca\s+/i,"").toUpperCase():t}function Ya(e,a,t){if(!Xe(t))return e;const r=a?.trim()||e.trim();return r?/\btrail$/i.test(r)?r:`${r} Trail`:e}function Be(e){return e.replace(/([^:]\/)\/+/g,"$1")}function Ja(e,a,t){const r=(()=>{const l=e?.trim();return l?/^cuenca/i.test(l)?l:`Cuenca ${l}`:"Centro de visitantes"})();return t&&a!=null?t(`reserve_region_${a}`,r):r}function Qa(e){const a=e?.trim();if(!a)return{days:"",schedule:""};const[t,...r]=a.split(","),l=r.join(",").trim();return l?{days:t.trim(),schedule:l}:{days:a,schedule:""}}function en(e,a){const t=Ue(e.openingHours,e.contact);if(!a||e.id==null)return t;const{days:r,schedule:l}=Qa(e.openingHours),s=a(`reserve_opening_days_${e.id}`,r||t),c=l?a(`reserve_opening_schedule_${e.id}`,l):"";return c?`${s}, ${c}`:s}function tn(e){const a=e?.trim();if(a)return a.split(",")[0]?.trim()||a}function an(e,a){const t=Ke(e.coordinates);if(!t)return null;const r=e.headerImage?.startsWith("http")?Be(e.headerImage):e.headerImage||void 0,l=a?.locale??"es-PR",s=a?.translate,c=ze(e.contact,{omitPhoneLabels:a?.omitPhoneLabels}
5),y=en(e,s),p=Ja(e.region,e.id,s);return{title:s&&e.id!=null?s(`reserve_name_${e.id}`,e.name):e.name,city:tn(e.city),cuenca:Pe(p,l)??p,type:"centro",image:r,contact:c,hours:y,directionsLink:e.mapUrl||void 0,link:`/centros/${e.slug}`,color:e.primaryColor||"#808080",coordinates:t}}function xt(e,a){return e.map(t=>an(t,a)).filter(t=>t!=null)}function Ct(e){return[...e].sort((a,t)=>(a.name||"").localeCompare(t.name||"","es"))}function nn(e,a,t,r){const l=Ue(e,a);if(!r||t==null)return l;const s=e?.trim();if(!s)return l;const[c,...y]=s.split(","),p=y.join(",").trim(),h=r(`reserve_opening_days_${t}`,c.trim()),M=p?r(`reserve_opening_schedule_${t}`,p):"";return M?`${h}, ${M}`:h}function rn(e){const a=e?.trim();if(a)return a.split(",")[0]?.trim()||a}function on(e,a){const t=Ke(e.coordinates);if(!t)return null;const r=e.headerImage?.startsWith("http")?Be(e.headerImage):e.headerImage||void 0,l=e.reservas??null,s=l?ze(l.contact,{omitPhoneLabels:a?.omitPhoneLabels}):"",c=l?nn(l.openingHours,l.contact,l.id,a?.translate):"",y=a?.locale??"es-PR",p=e.region||"Vereda";return{title:Ya(e.name,e.name_en,y),slug:e.slug,reservaId:l?.id,city:rn(e.city),cuenca:Pe(p,y)??p,type:"vereda",image:r,contact:s,hours:c,directionsLink:e.map_url||void 0,link:e.all_trails_url||"/veredas",color:e.primaryColor||"#55872C",coordinates:t}}function Mt(e,a){return e.map(t=>on(t,a)).filter(t=>t!=null)}function wt(e){return[...e].sort((a,t)=>{const r=a.display_order??Number.MAX_SAFE_INTEGER,l=t.display_order??Number.MAX_SAFE_INTEGER;return r!==l?r-l:a.name.localeCompare(t.name,"es")})}function ln(e){const a=e?.trim();if(!a)return{days:"",schedule:""};const[t,...r]=a.split(","),l=r.join(",").trim();return l?{days:t.trim(),schedule:l}:{days:a,schedule:""}}function sn(e,a){const t=Ue(e.openingHours,e.contact);if(!a||!e.slug)return t;const{days:r,schedule:l}=ln(e.openingHours),s=a(`vivero_opening_days_${e.slug}`,r||t),c=l?a(`vivero_opening_schedule_${e.slug}`,l):"";return c?`${s}, ${c}`:s}function cn(e,a,t){const r=(()=>{const l=e.region?.trim();return l?/^cuenca/i.test(l)?l:`Cuenca ${l}`:"Vivero"})();if(t&&e.slug){const l=t(`vivero_region_${e.slug}`,r);return Pe(l,a??"es-PR")??l}return Pe(r,a??"es-PR")??r}function un(e,a){const t=Ke(e.coordinates);if(!t)return null;const r=e.headerImage?.startsWith("http")?Be(e.headerImage):e.headerImage||void 0,l=a?.locale??"es-PR",s=a?.translate,c=ze(e.contact,{omitPhoneLabels:a?.omitPhoneLabels}),y=sn(e,s);return{title:e.name??"Vivero",city:e.city?.trim()||void 0,cuenca:cn(e,l,s),type:"vivero",image:r,contact:c,hours:y,directionsLink:e.mapUrl||void 0,link:`/viveros/${e.slug}`,color:"#55872C",coordinates:t}}function Lt(e,a){return e.map(t=>un(t,a)).filter(t=>t!=null)}function Tt(e){return[...e].sort((a,t)=>(a.name||"").localeCompare(t.name||"","es"))}const dn="#e8c233";function fn(e,a){const t=Ha(e.slug);if(t){const r=a(t.nombreKey).trim();if(r)return r}return e.reservas?.name?.trim()||e.slug}function pn(e,a){if(!e.show_on_map)return null;const t=e.reservas,r=Fa(e.coordinates,t?.coordinates);if(!r)return null;const l=e.header_image?.trim()||t?.headerImage?.trim()||Va,s=l.startsWith("http")?Be(l):l,c=t?ze(t.contact):void 0,y=t?Ue(t.openingHours,t.contact):void 0;return{title:fn(e,a),city:e.city?.trim()||void 0,cuenca:t?.name?.trim()||void 0,type:"huerto",image:s,contact:c,hours:y,directionsLink:e.map_url?.trim()||t?.mapUrl?.trim()||void 0,link:`/centros?tipo=huertos#${e.slug}`,color:dn,coordinates:r}}function Rt(e,a){return e.map(t=>pn(t,a)).filter(t=>t!=null)}function St(e){return[...e].sort((a,t)=>{const r=(a.display_order??0)-(t.display_order??0);return r!==0?r:a.slug.localeCompare(t.slug,"es")})}const Et="/files/mapMarkers.json",It="/offline-lite/data/mapMarkers.json",Gt="pln-map-markers-v4",mn="*, reservas(name, slug, coordinates, mapUrl, headerImage, contact, openingHours)",vn="*, reservas(id, contact, openingHours)";function yn(){return{markers:[]}}function Zt(e){if(!e||typeof e!="object")return null;const a=e.markers;return Array.isArray(a)?{markers:a}:null}function hn(){try{const e=localStorage.getItem(Gt);return e?Zt(JSON.parse(e)):null}catch{return null}}function gn(e){if(e.markers.length)try{localStorage.setItem(Gt,JSON.stringify(e))}catch{}}async function _n(e){const a=await fetch(e,{cache:"no-store"});if(!a.ok)return null;const t=Zt(await a.json());return t?{markers:De(t.markers)}:null}async function bn(){const e=hn();if(!navigator.onLine&&e?.markers?.length)return De(e.markers);const a=navigator.onLine?[Et,It]:[It,Et];for(const t of a)try{const r=await _n(t);if(r?.markers?.length)return r.markers}catch{}return De(e?.markers??[])}async function kn(e,a,t){if(a){const s=await Ht(),c=Array.isArray(s)?s:[];return xt(Ct(c),t)}const{data:r,error:l}=await e.from("reservas").select("*").eq("is_archived",!1).order("name");return l||!r?.length?[]:xt(Ct(r),t)}async function xn(e,a,t){if(a){const s=await ma(),c=Array.isArray(s)?s:[];return Lt(Tt(c),t)}const{data:r,error:l}=await e.from("viveros").select("*").eq("is_archived",!1).order("name");return l||!r?.length?[]:Lt(Tt(r),t)}async function Cn(e,a,t){if(a){const[s,c]=await Promise.all([va(),Ht()]),y=Array.isArray(s)?s:[],p=new Map((Array.isArray(c)?c:[]).map(M=>[M.id,M])),h=y.map(M=>({...M,reservas:M.reserva_id?p.get(M.reserva_id)??null:null}));return Mt(wt(h),t)}const{data:r,error:l}=await e.from("veredas").select(vn).eq("is_archived",!1).order("display_order",{ascending:!0,nullsFirst:!1}).order("name");return l||!r?.length?[]:Mt(wt(r),t)}async function Mn(e,a,t){if(a){const s=await ya({mapOnly:!0});return Rt(St(s),t)}const{data:r,error:l}=await e.from("huertos").select(mn).eq("is_archived",!1).eq("show_on_map",!0).order("display_order",{ascending:!0}).order("slug");return l||!r?.length?[]:Rt(St(r),t)}async function wn(e,a,t,r,l,s){const[c,y,p,h,M]=await Promise.all([bn(),kn(e,a,r),xn(e,a,s),Cn(e,a,l),Mn(e,a,t)]),E=[...y,...p,...h,...M,...c],D={markers:E};return E.length&&gn(D),D}function Ln(){const e=da(),{preferOfflineCatalog:a}=fa(),t=Vt(),{t:r}=oe("agroecologia"),{t:l}=oe("common"),s=b(()=>({locale:t.locale.value,translate:(p,h)=>l(p,h??""),omitPhoneLabels:!0})),c=b(()=>({locale:t.locale.value,translate:(p,h)=>l(p,h??""),omitPhoneLabels:!0})),y=b(()=>({locale:t.locale.value,translate:(p,h)=>l(p,h??""),omitPhoneLabels:!0}));return pa("map-markers",async()=>({markers:(await wn(e,a.value,h=>r(h),s.value,y.value,c.value)).markers.map(h=>Wt(h,t.locale.value))}),{default:()=>yn(),watch:[a,t.locale]})}const ee={risk:["pritstsunami","miprzonasinundables","mipraumentomar4pie"],conservation:["Reservas y bosques","Refugios","miprpropuestabosquemodelo copy","miprpropuestabosquemodelo","PLN"],culture:["zonas-historicas-jp-nd-0yi4zo","sitioshistoricosjp","Centros Visitantes"],designations:["miprzonainteresturistico","miprreservasagricolas","zona-maritimo-jp-nd-7vs365"],landUsePlan:["put-jp-nd-protegido-8l4v5o","put-jp-nd-agricola-0p66z3"],base:["Cuencas"]},Tn=(e,a)=>{const t=T({risk:!1,conservation:!1,culture:!1,designations:!1,landUsePlan:!1}),r=T("default"),s={...{styleEco:"mapbox://styles/vramirezcodedsandp/clk2kooez01if01pc98dn90o2",stylePlanning:"mapbox://styles/vramirezcodedsandp/clhclii1k023a01qma4v0ffzs",styleDefault:"mapbox://styles/pedrotembol/clxm2szfk028501qm3ejy8khi",staticVectorTilesUrl:"",secondaryAccessToken:void 0},...a},c=(d,m)=>{e.value&&e.value.getLayer(d)&&e.value.setLayoutProperty(d,"visibility",m?"visible":"none")},y=(d,m)=>{if(!e.value)return;
5t.value[d]=m,(ee[d]||[]).forEach(I=>{c(I,m)}),Q()},p=()=>{if(!(!e.value||!s.staticVectorTilesUrl)&&!e.value.getSource("protectorTilesSrc")){let d=s.staticVectorTilesUrl;s.secondaryAccessToken&&(new URL(d.replace("{z}/{x}/{y}","0/0/0")).searchParams.set("access_token",s.secondaryAccessToken),d=`${s.staticVectorTilesUrl.split("{")[0]}{z}/{x}/{y}.pbf?access_token=${s.secondaryAccessToken}`),e.value.addSource("protectorTilesSrc",{type:"vector",tiles:[d],maxzoom:14})}},h=()=>{e.value&&(e.value.getLayer("landslideRiskLyr")||(p(),e.value.getSource("protectorTilesSrc")&&e.value.addLayer({id:"landslideRiskLyr",type:"fill",source:"protectorTilesSrc","source-layer":"pritsdeslizamiento50pcent",minzoom:11,layout:{visibility:"none"},paint:{"fill-color":"#ff6b6b","fill-opacity":.5}})))},M=()=>{e.value&&(e.value.getLayer("seismicFaultLyr")||(p(),e.value.getSource("protectorTilesSrc")&&e.value.addLayer({id:"seismicFaultLyr",type:"line",source:"protectorTilesSrc","source-layer":"pritsfallasismica",minzoom:11,layout:{visibility:"none"},paint:{"line-color":"rgba(200,200,110,0.5)","line-width":3}})))},E=(d=r.value)=>{if(!e.value)return;const m=d==="default"||d==="eco"?"visible":"none";e.value.getLayer("hillshade")&&e.value.setLayoutProperty("hillshade","visibility",m),e.value.getLayer("land")&&e.value.setLayoutProperty("land","visibility",m)},D=async d=>{if(!e.value)return;let m=d==="default"?s.styleDefault:d==="eco"?s.styleEco:s.stylePlanning;if(!m){console.warn(`â ï¸ No se encontró URL de estilo para: ${d}`);return}r.value=d;const k=d==="eco"||d==="planning",I=s.secondaryAccessToken;e.value._originalAccessToken;const f=e.value._requestManager;if(f){f._originalTransformRequest||(f._originalTransformRequest=f.transformRequest);const q=f._originalTransformRequest;k&&I?f.transformRequest=(V,tt)=>{let H=V;if(H&&H.includes("api.mapbox.com"))try{const ge=new URL(H);ge.searchParams.set("access_token",I),H=ge.toString()}catch{if(H=H.replace(/access_token=[^&]+/,`access_token=${I}`),!H.includes("access_token=")){const fe=H.includes("?")?"&":"?";H=`${H}${fe}access_token=${I}`}}return{url:H}}:d==="default"&&(q?f.transformRequest=q:f.transformRequest=void 0)}if(k&&I){if(m.startsWith("mapbox://styles/"))m=`https://api.mapbox.com/styles/v1/${m.replace("mapbox://styles/","")}?access_token=${I}`;else if(!m.includes("access_token=")){const q=m.includes("?")?"&":"?";m=`${m}${q}access_token=${I}`}}return new Promise(q=>{e.value.setStyle(m),e.value.once("style.load",()=>{N(),E(d),d!=="default"?U():Object.keys(t.value).forEach(V=>{t.value[V]=!1}),Q(),q()})})},N=()=>{e.value&&s.staticVectorTilesUrl&&(h(),M(),e.value.getLayer("landslideRiskLyr")&&!ee.risk.includes("landslideRiskLyr")&&ee.risk.push("landslideRiskLyr"),e.value.getLayer("seismicFaultLyr")&&!ee.risk.includes("seismicFaultLyr")&&ee.risk.push("seismicFaultLyr"))},U=()=>{e.value&&Object.keys(t.value).forEach(d=>{y(d,t.value[d])})},G=()=>{if(!e.value){console.warn("â ï¸ No se puede inicializar capas: mapa no disponible");return}e.value.loaded()?(N(),E(r.value),r.value!=="default"&&U(),Q()):e.value.once("load",()=>{N(),E(r.value),r.value!=="default"&&U(),Q()})},B=()=>[...ee.risk,...ee.conservation,...ee.culture,...ee.designations,...ee.landUsePlan,...ee.base].filter(d=>!!e.value?.getLayer(d));let A,F=null;const ae=new Set,de=d=>{e.value&&(e.value.getCanvas().style.cursor=d?"pointer":"")},Z=()=>{de(!0)},K=()=>{de(!1)},J=()=>{if(e.value){for(const d of ae)e.value.off("mouseenter",d,Z),e.value.off("mouseleave",d,K);ae.clear()}},Q=()=>{if(e.value){J();for(const d of B())e.value.on("mouseenter",d,Z),e.value.on("mouseleave",d,K),ae.add(d)}},X=()=>{!e.value||!A||(F||(F=d=>{if(!e.value||!A)return;const m=B();if(m.length===0)return;const k=e.value.queryRenderedFeatures(d.point,{layers:m});if(k.length===0)return;const I=k[0],f=I.layer?.id;f&&A({layerId:f,feature:I,properties:I.properties??{}})},e.value.on("click",F)),Q())};return{layerState:t,mapType:r,toggleCategory:y,toggleLayer:c,changeMapStyle:D,initializeLayers:G,setupClickHandlers:d=>{e.value&&(A=d,X())},bindLayerPointerHandlers:Q,addGeolocateControl:()=>{e.value&&jt(()=>import("./C_YC4gad.js").then(d=>d.m),__vite__mapDeps([0,1]),import.meta.url).then(d=>{const m=d.default||d;if(!e.value)return;(e.value._controls||[]).some(f=>f instanceof m.GeolocateControl)||e.value.addControl(new m.GeolocateControl({positionOptions:{enableHighAccuracy:!0},trackUserLocation:!0,showUserHeading:!0}),"top-right")})},updateLayerVisibility:U}},Ye="https://ciudadanoprotector.com/";function Rn(e){return`${Ye.replace(/\/$/,"")}/concepto/${e}`}const Sn="https://apps.apple.com/us/app/ciudadano-protector/id6449255750",En="https://play.google.com/store/apps/details?id=org.paralanaturaleza.ciudadanoprotector",In={blue:"#005CB9",green:"#79D932",greenText:"#005CB9",surface:"#FFFFFF"},Pn=["aria-label"],$n={class:"flex flex-col gap-2 p-2.5"},An={class:"min-w-0"},On={class:"font-[National2] text-[10px] font-medium uppercase leading-tight tracking-[0.06em] text-[#005CB9]/75"},zn={class:"mt-0.5 font-[National2Condensed] text-[18px] font-medium leading-[0.95] text-[#005CB9]"},Un=["href"],Bn={class:"flex items-center gap-1.5"},Nn=["href"],Fn=["alt"],Vn=["href"],Hn=["alt"],Pt=le({__name:"MapCiudadanoProtectorBanner",props:{fullWidth:{type:Boolean,default:!1}},setup(e){const{t:a}=oe();return(t,r)=>(v(),_("aside",{class:j(["pointer-events-auto overflow-hidden rounded-xl border border-[#005CB9]/15 bg-white/95 shadow-[0_4px_16px_rgba(0,92,185,0.18)] backdrop-blur-sm",e.fullWidth?"w-full":"w-[min(100%,17.5rem)]"]),"aria-label":o(a)("mapa_cp_banner_aria","Promoción de Ciudadano Protector")},[u("div",$n,[u("div",An,[u("p",On,w(o(a)("mapa_cp_banner_attribution","Esta experiencia es gracias a")),1
5),u("p",zn,w(o(a)("conservar_citizen_protector_title","Ciudadano Protector")),1)]),u("a",{href:o(Ye),target:"_blank",rel:"noopener noreferrer",class:"inline-flex min-h-9 w-full items-center justify-center rounded-full px-3 py-1.5 font-[National2Narrow] text-[14px] font-medium leading-none text-white transition hover:opacity-90",style:te({backgroundColor:o(In).blue})},w(o(a)("mapa_cp_banner_cta","Descarga el app")),13,Un),u("div",Bn,[u("a",{href:o(Sn),target:"_blank",rel:"noopener noreferrer",class:"inline-flex h-8 flex-1 items-center justify-center"},[u("img",{src:ja,alt:o(a)("mapa_cp_banner_app_store_alt","Descargar en App Store"),class:"h-full max-h-8 w-full object-contain"},null,8,Fn)],8,Nn),u("a",{href:o(En),target:"_blank",rel:"noopener noreferrer",class:"inline-flex h-8 flex-1 items-center justify-center"},[u("img",{src:Da,alt:o(a)("mapa_cp_banner_play_store_alt","Descargar en Google Play"),class:"h-full max-h-8 w-full object-contain"},null,8,Hn)],8,Vn)])])],10,Pn))}}),jn=["aria-label"],Dn={class:"relative flex max-h-[220px] min-h-[140px] shrink-0 items-center justify-center overflow-hidden bg-[#005CB9]"},qn={key:0,class:"flex flex-col items-center gap-3 px-6 py-8","aria-busy":"true"},Wn={class:"font-[National2] text-sm text-white/85"},Gn=["src","alt"],Zn={key:1,class:"px-6 py-8 text-center font-[National2Condensed] text-2xl font-medium leading-tight text-white"},Kn=["aria-label"],Xn={class:"flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto px-5 py-4"},Yn={key:0,class:"flex flex-1 flex-col gap-3 py-2","aria-busy":"true"},Jn={key:0,class:"font-[National2] text-[11px] font-medium uppercase tracking-[0.08em] text-[#005CB9]/80"},Qn={key:1,class:"font-[National2Condensed] text-[26px] font-medium leading-tight text-[#005CB9]"},er={key:0,class:"h-px w-full bg-[#005CB9]/25"},tr={key:1,class:"whitespace-pre-line font-[National2] text-[15px] leading-relaxed text-black/85"},ar={key:2,class:"text-sm text-black/60"},nr=["href"],$t=le({__name:"MapLayerConceptModalPanel",props:{conceptLoading:{type:Boolean},showConceptContent:{type:Boolean},display:{},hasBody:{type:Boolean},conceptFetchFailed:{type:Boolean},conceptId:{},learnMoreUrl:{},maxHeightClass:{}},emits:["close"],setup(e,{emit:a}){const t=a,{t:r}=oe();return(l,s)=>(v(),_("div",{class:j(["modal-box relative flex w-full max-w-md flex-col overflow-hidden rounded-2xl bg-[#e8ece9] p-0 text-[#1a1a1a] shadow-2xl",e.maxHeightClass??"max-h-[min(90vh,640px)]"]),role:"dialog","aria-label":o(r)("mapa_layer_modal_aria","Información de capa del mapa"),onClick:s[1]||(s[1]=Ce(()=>{},["stop"]))},[u("div",Dn,[e.conceptLoading?(v(),_("div",qn,[s[2]||(s[2]=u("span",{class:"size-8 animate-spin rounded-full border-2 border-white/30 border-t-white","aria-hidden":"true"},null,-1)),u("p",Wn,w(o(r)("mapa_layer_modal_loading","Cargando informaciónâ¦")),1)])):e.showConceptContent?(v(),_(xe,{key:1},[e.display.imageUrl?(v(),_("img",{key:0,src:e.display.imageUrl,alt:e.display.title,class:"h-full max-h-[220px] w-full object-cover"},null,8,Gn)):e.display.title?(v(),_("div",Zn,w(e.display.title),1)):C("",!0)],64)):C("",!0),u("button",{type:"button",class:"absolute right-3 top-3 flex h-9 w-9 items-center justify-center rounded-xl bg-black/25 text-white transition hover:bg-black/40","aria-label":o(r)("mapa_layer_modal_close","Cerrar"),onClick:s[0]||(s[0]=c=>t("close"))},[S(ha,{class:"h-4 w-4","aria-hidden":"true"})],8,Kn)]),u("div",Xn,[e.conceptLoading?(v(),_("div",Yn,[...s[3]||(s[3]=[ga('<div class="h-3 w-24 animate-pulse rounded bg-[#005CB9]/15"></div><div class="h-7 w-4/5 animate-pulse rounded bg-[#005CB9]/20"></div><div class="mt-2 space-y-2"><div class="h-3 w-full animate-pulse rounded bg-black/10"></div><div class="h-3 w-full animate-pulse rounded bg-black/10"></div><div class="h-3 w-2/3 animate-pulse rounded bg-black/10"></div></div>',3)])])):e.showConceptContent?(v(),_(xe,{key:1},[u("div",null,[e.display.categoryName?(v(),_("p",Jn,w(e.display.categoryName),1)):C("",!0),e.display.title?(v(),_("h2",Qn,w(e.display.title),1)):C("",!0)]),e.display.title||e.display.categoryName?(v(),_("div",er)):C("",!0),e.hasBody?(v(),_("p",tr,w(e.display.body),1)):e.conceptFetchFailed&&e.conceptId!=null?(v(),_("p",ar,
5w(o(r)("mapa_layer_modal_fallback","Información disponible en la app Ciudadano Protector.")),1)):C("",!0)],64)):C("",!0),e.conceptLoading?C("",!0):(v(),_("a",{key:2,href:e.learnMoreUrl,target:"_blank",rel:"noopener noreferrer",class:"mt-auto inline-flex min-h-10 items-center justify-center rounded-full bg-[#005CB9] px-4 py-2 font-[National2Narrow] text-sm font-medium text-white transition hover:opacity-90"},w(o(r)("mapa_layer_modal_learn_more","Más en Ciudadano Protector")),9,nr))])],10,jn))}});var At={};const rr="https://zbcufbzhiiyaqhmyojcc.supabase.co",or="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InpiY3VmYnpoaWl5YXFobXlvamNjIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDE0Mzk4NTcsImV4cCI6MjAxNzAxNTg1N30.QEz8mQUxBQR-5mpGlRirBZO4afg8QKzX6_P60Wph85s";function lr(){return{url:At.CIUDADANO_PROTECTOR_SUPABASE_URL?.trim()||rr,key:At.CIUDADANO_PROTECTOR_SUPABASE_KEY?.trim()||or}}let Te=null;function sr(){if(Te)return Te;const{url:e,key:a}=lr();return Te=qa(e,a,{auth:{persistSession:!1,autoRefreshToken:!1}}),Te}function Kt(e){switch(e){case"mipraumentomar4pie":return 2;case"pritstsunami":return 67;case"miprzonasinundables":return 64;case"landslideRiskLyr":return 23;case"seismicFaultLyr":return 9;
5case"Reservas y bosques":return 27;case"Refugios":return 70;case"miprpropuestabosquemodelo copy":case"miprpropuestabosquemodelo":return 32;case"PLN":return 24;case"karstZoneLyr":return 66;case"sitioshistoricosjp":return 36;case"zonas-historicas-jp-nd-0yi4zo":return 65;case"miprzonainteresturistico":return 22;case"functionalPlanningAreaLyr":return 6;case"miprreservasagricolas":return 35;case"put-jp-nd-protegido-8l4v5o":case"put-jp-nd-agricola-0p66z3":return 21;case"Cuencas":return 19;default:return null}}function We(e){return e?e.replace(/<\/?p>/gi,"").replace(/<br\s*\/?>/gi,` 6`).replace(/<[^>]+>/g,"").replace(/\s+\n/g,` 7`).trim():""}function he(e,...a){for(const t of a){const r=e[t];if(typeof r=="string"&&r.trim())return r.trim()}return null}function ir(e,a,t,r){const l=We(r?.description_html),s=r?.name?.trim()||null;return e===24?{title:he(t,"name")||s||"",body:he(t,"importance")||l||null,imageUrl:r?.image_url?.trim()||null,categoryName:r?.category_name?.trim()||null}:e===27?{title:he(t,"anp_name","name")||s||"",body:he(t,"importance")||l||null,imageUrl:r?.image_url?.trim()||null,categoryName:r?.category_name?.trim()||null}:{title:he(t,"name","anp_name","nombre","NOMBRE","title","TITLE")||s||"",body:he(t,"importance","descripcion","description","DESCRIPTION")||l||null,imageUrl:r?.image_url?.trim()||null,categoryName:r?.category_name?.trim()||null}}function cr(e){const a=Array.isArray(e.concept_category)?e.concept_category[0]:e.concept_category;return{concept_id:e.concept_id,name:e.name,category_name:a?.name?.trim()||null,description_html:We(e.description_html),description2_html:We(e.description2_html),image_url:e.image_url?.trim()||null}}function ur(){const e=_a("ciudadano-protector-concept-cache",()=>({}));async function a(t){const r=e.value[t];if(r)return r;const l=sr(),{data:s,error:c}=await l.schema("protector").from("concept").select("concept_id, name, description_html, description2_html, image_url, concept_category(name, icon_name)").eq("concept_id",t).eq("disabled",!1).maybeSingle();if(c||!s)return null;const y=cr(s);return e.value={...e.value,[t]:y},y}return{fetchConcept:a,cache:e}}const dr=["open"],fr=["aria-label"],pr=le({__name:"MapLayerConceptModal",props:{open:{type:Boolean},layerId:{},properties:{},contained:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:a}){const t=e,r=a,{t:l}=oe(),{fetchConcept:s}=ur(),c=b(()=>t.layerId?Kt(t.layerId):null),y=T(null),p=T(!1),h=T(!1);z(()=>[t.open,c.value],async([A,F])=>{if(y.value=null,h.value=!1,!A||F==null){p.value=!1;return}p.value=!0;try{y.value=await s(F),y.value||(h.value=!0)}catch{h.value=!0}finally{p.value=!1}},{immediate:!0});const M=b(()=>t.layerId?ir(c.value,t.layerId,t.properties??{},y.value):{title:"",body:null,imageUrl:null,categoryName:null}),E=b(()=>!!M.value.body?.trim()),D=b(()=>!p.value&&(c.value==null||y.value!=null||h.value)),N=b(()=>c.value!=null?Rn(c.value):Ye),U=b(()=>t.contained?"max-h-[min(85%,640px)]":"max-h-[min(90vh,640px)]"),G=b(()=>({conceptLoading:p.value,showConceptContent:D.value,display:M.value,hasBody:E.value,conceptFetchFailed:h.value,conceptId:c.value,learnMoreUrl:N.value,maxHeightClass:U.value}));function B(){r("close")}return(A,F)=>{const ae=ba;return v(),ne(ae,null,{default:Se(()=>[(v(),ne(Dt,{to:"body",disabled:e.contained},[e.contained&&e.open&&e.layerId?(v(),_("div",{key:0,class:"absolute inset-0 z-[1003] flex items-center justify-center bg-black/60 p-4 backdrop-blur-sm",onClick:Ce(B,["self"])},[S($t,vt(o(G),{onClose:B}),null,16)])):e.open&&e.layerId?(v(),_("dialog",{key:1,class:"modal modal-middle z-[999999]",open:e.open},[S($t,vt(o(G),{onClose:B}),null,16),u("form",{method:"dialog",class:"modal-backdrop bg-black/60 backdrop-blur",onClick:B},[u("button",{type:"submit",class:"sr-only","aria-label":o(l)("mapa_layer_modal_close","Cerrar")}," close ",8,fr)])],8,dr)):C("",!0)],8,["disabled"]))]),_:1})}}}),mr=["aria-label"],vr=["aria-checked","onClick"],yr={class:"min-w-0 flex-1 truncate"},hr={key:0,class:"mx-3 border-t border-black/30","aria-hidden":"true"},gr=le({__name:"MapToolbarCheckMenu",props:{options:{},checked:{},ariaLabel:{}},emits:["toggle"],setup(e,{emit:a}){const t=e,r=a;function l(s){return!!t.checked[s]}return(s,c)=>(v(),_("div",{class:"min-w-[9.5rem] overflow-hidden rounded-xl bg-[#21625C] shadow-[0_4px_8px_rgba(0,0,0,0.25),0_8px_16px_rgba(0,0,0,0.2)]",role:"group","aria-label":e.ariaLabel}
7,[u("ul",null,[(v(!0),_(xe,null,qt(e.options,(y,p)=>(v(),_("li",{key:y.id},[u("button",{type:"button",class:"flex w-full items-center gap-3 px-4 py-3 text-left font-[National2] text-sm font-bold leading-[1.15] text-white transition hover:bg-black/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-white/40",role:"menuitemcheckbox","aria-checked":l(y.id),onMousedown:c[0]||(c[0]=Ce(()=>{},["prevent"])),onClick:h=>r("toggle",y.id)},[u("span",{class:j(["relative box-border flex size-4 shrink-0 items-center justify-center rounded-full",l(y.id)?"border-2 border-white bg-transparent":"bg-[#aacbc9]"]),"aria-hidden":"true"},[l(y.id)?(v(),ne(ka,{key:0,class:"size-2.5 text-white"})):C("",!0)],2),u("span",yr,w(y.label),1)],40,vr),p<e.options.length-1?(v(),_("div",hr)):C("",!0)]))),128))])],8,mr))}}),_r=["aria-label"],br=["aria-selected"],kr=["onClick"],xr={key:0,class:"size-2 rounded-full bg-black"},Cr={class:"min-w-0 flex-1 truncate"},Mr={key:0,class:"mx-3 border-t border-black/30","aria-hidden":"true"},wr=le({__name:"MapToolbarRadioMenu",props:{options:{},modelValue:{},ariaLabel:{}},emits:["update:modelValue","select"],setup(e,{emit:a}){const t=a;function r(l){t("update:modelValue",l),t("select",l)}return(l,s)=>(v(),_("div",{class:"min-w-[9.5rem] overflow-hidden rounded-xl bg-[#21625C] shadow-[0_4px_8px_rgba(0,0,0,0.25),0_8px_16px_rgba(0,0,0,0.2)]",role:"listbox","aria-label":e.ariaLabel},[u("ul",null,[(v(!0),_(xe,null,qt(e.options,(c,y)=>(v(),_("li",{key:c.id,role:"option","aria-selected":e.modelValue===c.id},[u("button",{type:"button",class:"flex w-full items-center gap-3 px-4 py-3 text-left font-[National2] text-sm font-bold leading-[1.15] text-white transition hover:bg-black/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-white/40",onMousedown:s[0]||(s[0]=Ce(()=>{},["prevent"])),onClick:p=>r(c.id)},[u("span",{class:j(["relative box-border flex size-4 shrink-0 items-center justify-center rounded-full",e.modelValue===c.id?"border-2 border-white bg-transparent":"bg-[#aacbc9]"]),"aria-hidden":"true"},[e.modelValue===c.id?(v(),_("span",xr)):C("",!0)],2),u("span",Cr,w(c.label),1)],40,kr),y<e.options.length-1?(v(),_("div",Mr)):C("",!0)],8,br))),128))])],8,_r))}}),Lr=["aria-expanded"],Tr={class:"truncate"},Rr={key:0,class:"absolute bottom-full left-0 z-[3] mb-2"},Sr=["aria-expanded"],Er={class:"truncate"},Ir={key:0,class:"absolute bottom-full left-0 z-[3] mb-2"},Pr=le({__name:"MapToolbarFilters",props:Ie({layersOnline:{type:Boolean,default:!0},inline:{type:Boolean,default:!1}},{selectedTab:{default:"todos"},selectedTabModifiers:{},layerState:{default:()=>({risk:!1,conservation:!1,culture:!1,designations:!1,landUsePlan:!1})},layerStateModifiers:{}}),emits:Ie(["toggleCategory"],["update:selectedTab","update:layerState"]),setup(e,{emit:a}){const t=Ee(e,"selectedTab"),r=Ee(e,"layerState"),l=e,s=a,{t:c}=oe(),y=T(null),p=T(!1),h=T(!1);xa(y,()=>{p.value=!1,h.value=!1});const M=b(()=>[{id:"todos",label:c.value("mapa_toolbar_tab_todos","Todos")},{id:"centros",label:c.value("mapa_toolbar_tab_centros","Centros")},{id:"viveros",label:c.value("mapa_toolbar_tab_viveros","Viveros")},{id:"veredas",label:c.value("mapa_toolbar_tab_veredas","Veredas")},{id:"huertos",label:c.value("mapa_toolbar_tab_huertos","Huertos")}]),E=b(()=>[{id:"conservation",label:c.value("mapa_capas_conservacion","Conservación")},{id:"culture",label:c.value("mapa_capas_cultura","Cultura")},{id:"risk",label:c.value("mapa_capas_riesgo","Riesgos")},{id:"designations",label:c.value("mapa_capas_designaciones","Designaciones")}]),D=b(()=>({conservation:r.value.conservation,culture:r.value.culture,risk:r.value.risk,designations:r.value.designations})),N=b(()=>M.value.find(Z=>Z.id===t.value)?.label??c.value("mapa_toolbar_tab_todos","Todos")),U=b(()=>l.inline?`flex w-full min-w-0 items-center gap-2 ${gt}`:`flex items-center gap-2 ${gt}`),G=b(()=>l.inline?[_t,"w-full min-w-0 flex-1 justify-between gap-1.5 px-2"]:[_t,"gap-1.5 whitespace-nowrap"]),B=b(()=>l.inline?"relative min-w-0 flex-1":"relative shrink-0");function A(){h.value=!1,p.value=!p.value}function F(){l.layersOnline&&(p.value=!1,h.value=!h.value)}function ae(Z){t.value=Z,p.value=!1}function de(Z){const K=Z,J=!r.value[K];r.value={...r.value,[K]:J},s("toggleCategory",K,J)}
7return(Z,K)=>{const J=Wa;return v(),_("div",{ref_key:"rootRef",ref:y,class:j(U.value)},[u("div",{class:j(B.value)},[u("button",{type:"button",class:j(G.value),style:te(o(yt)),"aria-expanded":p.value,"aria-haspopup":"listbox",onClick:A},[u("span",Tr,w(N.value),1),S(J,{class:j(["size-2.5 shrink-0 transition-transform",p.value?"-rotate-90":"rotate-90"]),"aria-hidden":"true"},null,8,["class"])],14,Lr),S(ht,{name:"map-toolbar-popup"},{default:Se(()=>[p.value?(v(),_("div",Rr,[S(wr,{"model-value":t.value,options:M.value,"aria-label":o(c)("mapa_toolbar_locations","Localizaciones"),onSelect:K[0]||(K[0]=Q=>ae(Q))},null,8,["model-value","options","aria-label"])])):C("",!0)]),_:1})],2),e.layersOnline?(v(),_("div",{key:0,class:j(B.value)},[u("button",{type:"button",class:j(G.value),style:te(o(yt)),"aria-expanded":h.value,"aria-haspopup":"true",onClick:F},[u("span",Er,w(o(c)("mapa_toolbar_layers","Capas")),1),S(J,{class:j(["size-2.5 shrink-0 transition-transform",h.value?"-rotate-90":"rotate-90"]),"aria-hidden":"true"},null,8,["class"])],14,Sr),S(ht,{name:"map-toolbar-popup"},{default:Se(()=>[h.value?(v(),_("div",Ir,[S(gr,{options:E.value,checked:D.value,"aria-label":o(c)("mapa_toolbar_layers","Capas"),onToggle:de},null,8,["options","checked","aria-label"])])):C("",!0)]),_:1})],2)):C("",!0)],2)}}}),$r=Ca(Pr,[["__scopeId","data-v-9600190f"]]),Ar=["aria-label"],Ot=le({__name:"MapToolbar",props:Ie({layersOnline:{type:Boolean,default:!0},fluid:{type:Boolean,default:!1}},{selectedTab:{default:"todos"},selectedTabModifiers:{},layerState:{default:()=>({risk:!1,conservation:!1,culture:!1,designations:!1,landUsePlan:!1})},layerStateModifiers:{}}),emits:Ie(["toggleCategory"],["update:selectedTab","update:layerState"]),setup(e,{emit:a}){const t=Ee(e,"selectedTab"),r=Ee(e,"layerState"),l=a,{t:s}=oe(),c=Ma("#16423E",.8);return(y,p)=>(v(),_("div",{class:j(["relative max-w-full",e.fluid?"flex w-full":"inline-flex"]),role:"toolbar","aria-label":o(s)("mapa_toolbar_aria","Controles del mapa")},[u("div",{class:j([o(wa),e.fluid?"flex w-full":""]),style:te({backgroundColor:o(c)})},[S($r,{"selected-tab":t.value,"onUpdate:selectedTab":p[0]||(p[0]=h=>t.value=h),"layer-state":r.value,"onUpdate:layerState":p[1]||(p[1]=h=>r.value=h),"layers-online":e.layersOnline??!0,inline:e.fluid,onToggleCategory:p[2]||(p[2]=(h,M)=>l("toggleCategory",h,M))},null,8,["selected-tab","layer-state","layers-online","inline"])],6)],10,Ar))}}),Or=[[-67.5,18.5206],[-61.242,18.5206],[-61.242,17],[-67.5,17]],zr="/offline-lite/map/basemap.webp",Ur="/images/mapa_33.png";function Br(e){return{version:8,sources:{"offline-basemap":{type:"image",url:e,coordinates:Or}},layers:[{id:"offline-background",type:"background",paint:{"background-color":"#0C251A"}},{id:"offline-basemap",type:"raster",source:"offline-basemap",paint:{"raster-opacity":.96,"raster-fade-duration":0}}]}}const Ge=[{lat:17.84,lng:-68.08},{lat:18.58,lng:-65.12}],Ze={top:28,bottom:28,left:36,right:36},Nr={width:427,height:720},Fr=[{width:360,height:620},{width:400,height:700},Nr,{width:480,height:800},{width:560,height:840},{width:640,height:900}],Je=1.08,Vr=.05,$e=512,zt=85;function Ae(e){return(180+e)/360}function Oe(e){const a=Math.max(-zt,Math.min(zt,e)),t=Math.sin(a*Math.PI/180);return(180-180/Math.PI*Math.log((1+t)/(1-t))/2)/360}function Ut(e){return e*360-180}function Bt(e){const a=180-e*360;return 360/Math.PI*Math.atan(Math.exp(a*Math.PI/180))-90}function Hr(e){const[a,t]=e;return(Ae(t.lng)-Ae(a.lng))*$e}function jr(e){const[a,t]=e;return(Oe(a.lat)-Oe(t.lat))*$e}function Dr(e,a,t,r=Je){const[l,s]=e,c=Math.max(1,t.width-a.left-a.right),y=Math.max(1,t.height-a.top-a.bottom),p=Math.min(c/Hr(e),y/jr(e)),h=t.width/p*r,M=t.height/p*r,E=Ae(l.lng),D=Ae(s.lng),N=Oe(s.lat),U=Oe(l.lat),G=(E+D)/2,B=(N+U)/2,A=Math.max((D-E)/2,h/$e/2),F=Math.max((U-N)/2,M/$e/2);return[{lat:Bt(B+F),lng:Ut(G-A)},{lat:Bt(B-F),lng:Ut(G+A)}]}function qr(e,a,t,r=Je){return t.reduce((l,s)=>Qe(l,Dr(e,a,s,r),0),e)}function Qe(e,a,t=.4){const[r,l]=e,[s,c]=a;return[{lat:Math.min(r.lat,s.lat)-t,lng:Math.min(r.lng,s.lng)-t},{lat:Math.max(l.lat,c.lat)+t,lng:Math.max(l.lng,c.lng)+t}]}function Wr(e,a){return{maxBounds:Qe(Xt,e),minZoom:a-Vr}}const Gr=[{lat:16.55,lng:-68.65},{lat:19.45,lng:-61.242}],Xt=Qe(qr(Ge,Ze,Fr,Je),Gr,0);function Re(e){const[a,t]=e;return[[a.lng,a.lat],[t.lng,t.lat]]}const Zr={class:"relative h-full overflow-visible bg-black"},Kr={key:0,class:"flex h-full flex-col gap-4 overflow-y-auto bg-[#0C251A] p-4 text-white"},Xr={key:0,class:"pointer-events-none absolute inset-x-0 top-0 z-[1001] flex justify-center p-3"},Yr={class:"pointer-events-auto max-w-xl rounded-xl border border-white/15 bg-black/80 px-4 py-2 text-center text-sm text-white/85 backdrop-blur-sm"},Jr={class:"relative z-0 flex h-full w-full flex-col"},Qr=["id"],eo=["id"],to=["src","alt"],ao={class:"card-body -mt-5 rounded-[24px] border-t-2 border-black bg-white !p-2 text-black"},no={class:"flex h-full flex-col gap-4 p-4"},ro={class:"flex items-center gap-2 text-black"},oo={class:"flex flex-col"},lo={class:"font-national2Condensed text-[24px] font-medium leading-[95%] tracking-[1%]"},so={class:"font-sans text-[16px] leading-[110%]"},io={key:0,class:"flex flex-col gap-4"},co={class:"flex flex-col gap-1.5"},uo={class:"whitespace-pre-line font-bold"},fo={key:1,class:"flex flex-col gap-4"},po={class:"flex flex-col gap-1.5"},mo={class:"font-bold"},vo=["href","id"],yo={class:"flex justify-between"},ho={class:""},go={class:"flex justify-between"},_o={class:""},bo={class:"aspect-square rounded-full bg-black p-1"},ko=["href","id"],xo={class:"flex justify-between"},Co={class:""},Mo={class:"aspect-square rounded-full bg-black p-1"},wo="1000",Nt=10,Ft="size-11",Lo="size-5",zo=le({__name:"MapaMasCerca",props:{enableLayers:{type:Boolean,default:!1},layersConfig:{default:()=>({styleEco:"mapbox://styles/vramirezcodedsandp/clk2kooez01if01pc98dn90o2",stylePlanning:"mapbox://styles/vramirezcodedsandp/clhclii1k023a01qma4v0ffzs",styleDefault:"mapbox://styles/pedrotembol/clxm2szfk028501qm3ejy8khi",staticVectorTilesUrl:""})}},setup(e,{expose:a}){const t=e,{t:r}=oe(),{locale:l}=Vt(),s=La(),c=Ta(),y=Ra(),p=y.greater("tablet");z(p,(n,i)=>{console.log("ð Breakpoint cambió:",{isTabletOrLarger:{from:i,to:n},containerWidth:y.width.value})});const h=Sa(),M=b(()=>h.mode.value==="map"&&(h.isOpen.value||h.isFullscreen.value)),E=b(()=>s.value||pe.value),D=b(()=>M.value&&!h.isDesktop.value&&h.shouldShowMobileToolbar.value),N=b(()=>za({alignWithMobileNav:D.value})),U=b(()=>!p.value),G=b(()=>({...N.value,right:"1rem"})),B=b(()=>`${M.value?"absolute inset-0 z-[1000]":"fixed inset-0 z-[71]"} flex items-center justify-center bg-black/70 p-4`),A=n=>!!n&&/^https?:\/\//.test(n),F=(()=>{const n=new Set(["mascerca.paralanaturaleza.org","mascerca.pln.org","localhost","127.0.0.1"]);try{const i=bt().public.siteUrl;i&&n.add(new URL(i).hostname)}catch{}return n})(),ae=n=>{if(!A(n))return null;try{const i=new URL(n);if(!F.has(i.hostname))return null;const g=`${i.pathname}${i.search}${i.hash}`;return g.length>
70?g:"/"}catch{return null}},de=b(()=>f.value?f.value.type==="vivero"?"/viveros":f.value.link:null),Z=b(()=>{const n=de.value;return n?ae(n)??n:null}),K=b(()=>{const n=Z.value;return!n||A(n)?null:n}),J=b(()=>{const n=Z.value;return n&&A(n)?n:null}),Q=b(()=>f.value?.type==="vereda"?r("mapa_mas_cerca_view_alltrails","VER EN ALLTRAILS"):r("mapa_mas_cerca_view_page","VER PÃGINA")),X=T("todos");z(()=>kt.value?.nonce,n=>{const i=kt.value;!n||!i||(X.value=i.tab)},{immediate:!0});const{data:et,status:Yt}=Ln(),d=T(null),m=T(null),k=T(!1),I=T(null),f=T(null),q=T(!1);let V=null;const tt=()=>{const n=m.value;if(!n?.getBounds||typeof n.getZoom!="function")return;const i=n.getBounds();if(!i)return;const{maxBounds:g,minZoom:x}=Wr([{lat:i.getSouth(),lng:i.getWest()},{lat:i.getNorth(),lng:i.getEast()}],n.getZoom());n.setMaxBounds(Re(g)),n.setMinZoom(x)},H=()=>{!m.value||q.value||f.value||(m.value.fitBounds(Re(Ge),{padding:Ze,duration:0}),tt())},ge=()=>{H(),V&&clearTimeout(V),V=setTimeout(()=>{V=null,m.value&&(m.value.resize(),H())},800)},fe=()=>{q.value=!0};function at(n){return Wt(n,l.value)}const se=b(()=>(et.value?.markers??[]).map(at)),ie=b(()=>f.value?at(f.value):null),Jt=b(()=>Za(f.value,l.value,r("mapa_mas_cerca_schedule","Horario"))),pe=b(()=>se.value.length>0),Qt=b(()=>c.status.value.ready?zr:Ur),ce=T([]),ue=T(null),me=T(null),ea=n=>n.closest(".mapboxgl-marker"),ta=n=>f.value?n.querySelector(".marker-click-target")?.getAttribute("data-marker-id")===ot(f.value):!1,aa=()=>{if(me.value)return me.value;for(const n of ce.value){const i=n.getElement();if(i&&ta(i))return i}return null},Ne=()=>{const n=aa();ce.value.forEach(i=>{const g=i.getElement();if(!g)return;const x=ea(g);x&&(x.style.zIndex=g===n?wo:"")})},na=n=>{n.addEventListener("mouseenter",()=>{me.value=n,Ne()}),n.addEventListener("mouseleave",()=>{me.value===n&&(me.value=null),Ne()})};z(f,async(n,i)=>{if(n&&n.title!==i?.title&&k.value)try{if(m.value){const g=m.value.getZoom(),x={center:n.coordinates,essential:!0,speed:1,offset:[200,0],...g<Nt?{zoom:Nt}:{}};q.value=!0,m.value.flyTo(x)}}catch(g){console.error("Error en flyTo del mapa:",g)}});const nt=b(()=>{switch(X.value){case"todos":return se.value.filter(n=>n.type!=="huerto").sort((n,i)=>{const g=["vereda","vivero","centro"];return g.indexOf(n.type)-g.indexOf(i.type)});case"centros":return se.value.filter(n=>n.type==="centro");case"viveros":return se.value.filter(n=>n.type==="vivero");case"veredas":return se.value.filter(n=>n.type==="vereda");case"huertos":return se.value.filter(n=>n.type==="huerto");default:return X.value}}),ra=()=>{if(d.value){for(;d.value.firstChild;)d.value.removeChild(d.value.firstChild);d.value.textContent=""}},ve=async()=>{if(!d.value||k.value||!s.value&&!pe.value)return;const n=d.value.getBoundingClientRect();if(n.width===0||n.height===0){console.warn("Contenedor del mapa no tiene dimensiones, reintentando..."),setTimeout(()=>ve(),100);return}try{ra(),await Y();const i=await jt(()=>import("./C_YC4gad.js").then($=>$.m),__vite__mapDeps([0,1]),import.meta.url);ue.value=i.default||i;const g=bt(),x=g.public.mapbox?.accessToken,O=g.public.mapboxSecondary?.accessToken,W=s.value?t.layersConfig?.styleDefault||"mapbox://styles/pedrotembol/clxm2szfk028501qm3ejy8khi":Br(Qt.value),P=new ue.value.Map({container:d.value,style:W,bounds:Re(Ge),fitBoundsOptions:{padding:Ze},maxBounds:Re(Xt),accessToken:x});P._originalAccessToken=x,O&&(P._secondaryAccessToken=O);const re=P._requestManager;return re&&re.transformRequest&&(re._originalTransformRequest=re.transformRequest),m.value=P,q.value=!1,P.on("dragstart",fe),P.on("boxzoomstart",fe),P.on("rotatestart",fe),P.on("zoomstart",$=>{$?.originalEvent&&fe()}),new Promise(($,ke)=>{const mt=setTimeout(()=>{ke(new Error("Timeout al cargar el mapa"))},1e4);P.on("load",()=>{clearTimeout(mt),k.value=!0,ge(),t.enableLayers&&s.value&&Y(()=>{dt(P)}),ye(),$(P)}),P.on("error",ua=>{clearTimeout(mt),ke(ua)})})}catch(i){console.error("Error inicializando mapa:",i),I.value=i instanceof Error?i.message:"No se pudo cargar el mapa",k.value=!1,m.value=null}},rt=()=>{if(k.value&&m.value&&d.value){const n=d.value.getBoundingClientRect();n.width>0&&n.height>0?requestAnimationFrame(()=>{m.value&&m.value.resize()}):setTimeout(rt,100)}},Fe=n=>String(n??"").replace(/[&<>"']/g,i=>{switch(i){case"&":return"&";case"<":return"<";case">":return">";
7case'"':return""";case"'":return"'"}return i}),oa=(n,i)=>{const g=String(n||"").trim();return/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(g)?g:i},ot=n=>`${n.type}-${n.title}`.replace(/[^a-zA-Z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,96),la=n=>{const i=document.createElement("div");i.className="mapbox-marker-custom";const g=oa(n.color,n.type==="vivero"?"#55872C":n.type==="huerto"?"#e8c233":"#808080"),x=Fe(n.title),O=Fe(n.cuenca||n.city),W=Fe(ot(n));return i.innerHTML=` 8 <div class="absolute z-10 group pointer-events-auto ${Ft}"> 9 <div class="absolute inset-0 flex items-center justify-center pointer-events-none"> 10 ${n.type==="centro"?`<svg class="z-30 w-[12px] shrink-0 fill-white transition-all duration-300 group-hover:-mt-14 group-hover:h-[24px] group-hover:w-[24px]" viewBox="0 0 14 14"> 11 <path d="M14 0H0V0.699628L5.85945 5.70122H1.6107V6.24455L5.9204 9.92876H2.48134V10.3753L6.72139 14H7.27861L11.5187 10.3753V9.92876H8.0709L12.3893 6.24455V5.70122H8.14055L14 0.699628V0Z"/> 12 </svg>`:n.type==="vivero"?`<svg class="z-30 w-[12px] shrink-0 fill-[#55872C] transition-all duration-300 group-hover:-mt-14 group-hover:h-[24px] group-hover:w-[24px] group-hover:fill-white" viewBox="0 0 17 15"> 13 <path d="M16.6298 0.310673L16.3312 0C7.48069 0.150326 6.81383 6.75781 7.03287 10.623L7.02711 8.9686C5.66222 6.72374 3.23102 5.26056 0.522554 5L0 5.42091C0 5.74161 0 6.26274 0 7.13463C0 10.2414 2.26062 13.9694 6.73918 13.9694C6.76051 13.9694 6.79251 13.9694 6.81383 13.9594L7.02711 14.1097V14.4004H7.10176V14.4505H9.51167V14.4004H9.58632L9.59207 9.13981C16.7578 9.13981 16.6298 2.10456 16.6298 0.330717V0.310673Z"/> 14 </svg>`:'<div class="z-30 aspect-square w-[8px] shrink-0 rounded-full bg-white transition-all duration-300 group-hover:-mt-14 group-hover:w-[14px]"></div>'} 15 </div> 16 <div class="absolute inset-0 flex items-center justify-center pointer-events-none"> 17 <div class="z-20 h-0 w-[3px] shrink-0 rounded-full bg-white transition-all duration-300 group-hover:-mt-6 group-hover:h-[20px]"></div> 18 </div> 19 <div class="absolute inset-0 z-40 flex items-center justify-center pointer-events-none"> 20 <div class="h-2 min-w-2 shrink-0 overflow-hidden rounded-lg bg-white opacity-0 transition-all duration-300 group-hover:-mt-40 group-hover:h-[88px] group-hover:min-w-[212px] group-hover:opacity-100"> 21 <div class="flex h-full items-center gap-2 p-3 text-black opacity-0 group-hover:opacity-100"> 22 <div class="aspect-square size-9 shrink-0 rounded-full"> 23 ${n.type==="centro"?`<svg class="h-full w-full" style="fill: ${g}" viewBox="0 0 14 14"> 24 <path d="M14 0H0V0.699628L5.85945 5.70122H1.6107V6.24455L5.9204 9.92876H2.48134V10.3753L6.72139 14H7.27861L11.5187 10.3753V9.92876H8.0709L12.3893 6.24455V5.70122H8.14055L14 0.699628V0Z"/> 25 </svg>`:n.type==="vivero"?`<svg class="h-full w-full" style="fill: ${g}" viewBox="0 0 17 15"> 26 <path d="M16.6298 0.310673L16.3312 0C7.48069 0.150326 6.81383 6.75781 7.03287 10.623L7.02711 8.9686C5.66222 6.72374 3.23102 5.26056 0.522554 5L0 5.42091C0 5.74161 0 6.26274 0 7.13463C0 10.2414 2.26062 13.9694 6.73918 13.9694C6.76051 13.9694 6.79251 13.9694 6.81383 13.9594L7.02711 14.1097V14.4004H7.10176V14.4505H9.51167V14.4004H9.58632L9.59207 9.13981C16.7578 9.13981 16.6298 2.10456 16.6298 0.330717V0.310673Z"/> 27 </svg>`:`<div class="h-full w-full rounded-full" style="background-color: ${g}"></div>`} 28 </div> 29 <div class="flex min-w-0 flex-col gap-0.5"> 30 <div class="line-clamp-2 font-national2Condensed text-[22px] font-medium leading-[95%] tracking-[1%]"> 31 ${x} 32 </div> 33 <div class="truncate font-sans text-[15px] leading-[110%]"> 34 ${O} 35 </div> 36 </div> 37 </div> 38 </div> 39 </div> 40 <div 41 class="marker-click-target z-0 flex ${Ft} cursor-pointer items-center justify-center group-hover:cursor-pointer" 42 data-marker-id="${W}" 43 > 44 <div 45 class="marker-pin-face aspect-square ${Lo} rounded-full ${n.type==="vivero"?"bg-white transition-colors duration-300 group-hover:bg-[#55872C]":""}" 46 style="background-color: ${n.type==="vivero"?"transparent":g}" 47 ></div> 48 </div> 49 </div> 50 `,i},Ve=()=>{me.value=null,ce.value.forEach(n=>n.remove()),ce.value=[]},ye=()=>{!m.value||!k.value||!ue.value||(Ve(),nt.value.forEach(n=>{const i=la(n),g=new ue.value.Marker({element:i,anchor:"bottom"}).setLngLat(n.coordinates).addTo(m.value),x=i.querySelector(".marker-click-target");x&&x.addEventListener("click",()=>{try{k.value&&(f.value=n)}catch(O){console.error("Error al seleccionar marcador:",O)}}),na(i),ce.value.push(g)}),Y(()=>{lt()}))},lt=()=>{try{if(!k.value||!ce.value.length)return;ce.value.forEach(n=>{try{const i=n.getElement();if(!i)return;const g=i.querySelector(".marker-click-target")?.getAttribute("data-marker-id"),x=f.value&&`${f.value.type}-${f.value.title.replace(/\s+/g,"-")}`===g,O=g?.split("-");if(x?i.classList.add("marker-selected"):i.classList.remove("marker-selected"),O?.[0]==="vivero"){const W=i.querySelector(".marker-pin-face");W&&(W.style.backgroundColor="",W.classList.add("bg-white","group-hover:bg-[#55872C]"))}else{const W=i.querySelector(".marker-pin-face");if(W&&O){const P=O[0],re=O.slice(1).join("-"),$=se.value.find(ke=>ke.type===P&&ke.title.replace(/\s+/g,"-")===re);W&&$&&(W.style.backgroundColor=$.color||"#808080")}}}catch(i){console.warn("Error updating individual marker style:",i)}}),Ne()}catch(n){console.error("Error updating marker styles:",n)}};z(X,()=>{k.value&&Y(()=>{ye()})}),z(f,()=>{if(k.value)try{lt()}catch(n){console.error("Error en watcher de selectedMarker:",n)}}),z(d,(n,i)=>{if(n&&n!==i&&!k.value){const g=n.getBoundingClientRect();g.width>0&&g.height>0&&setTimeout(()=>{ve()},50)}}),z(k,n=>{n&&m.value&&ue.value&&Y(()=>{ye()})}),z(nt,()=>{k.value&&ye()});const st=()=>{rt()};let L=null;const _e=T("default"),Me=T(!1),R=T({risk:!1,conservation:!1,culture:!1,designations:!1,landUsePlan:!1}),He=["conservation","culture","risk","designations"],sa=b(()=>He.some(n=>R.value[n])),je=b(()=>s.value&&(Me.value||sa.value)),be=T(null),ia=b(()=>be.value!==null);function ca(n){f.value=null,be.value={layerId:n.layerId,properties:n.properties,conceptId:Kt(n.layerId)}}function it(){be.value=null}function ct(){f.value=null}z(f,n=>{n&&it()});async function ut(n,i){if(i&&!Me.value){const x={...R.value};await ft(!0),R.value=x;for(const O of He)we(O,R.value[O]);return}if(!Me.value)return;
50we(n,i),He.some(x=>R.value[x])||await ft(!1)}const dt=n=>{if(L)return;const i={...t.layersConfig,styleDefault:t.layersConfig.styleDefault||"mapbox://styles/pedrotembol/clxm2szfk028501qm3ejy8khi",secondaryAccessToken:n._secondaryAccessToken},g=b(()=>n);L=Tn(g,i),L.initializeLayers(),L.setupClickHandlers(x=>{ca(x)}),L.addGeolocateControl(),L.layerState&&(R.value={...L.layerState.value}),L.mapType&&(_e.value=L.mapType.value)},we=(n,i)=>{L&&(L.toggleCategory(n,i),R.value[n]=i)},ft=async n=>{if(Me.value=n,!L&&n&&(k.value||await new Promise(i=>{const g=z(k,x=>{x&&(g(),i(!0))})}),!L&&m.value&&(dt(m.value),await new Promise(i=>setTimeout(i,100)))),L&&m.value){const i=n?"eco":"default";try{await L.changeMapStyle(i),_e.value=i}catch(g){console.error("â Error cambiando estilo:",g)}n?(Object.keys(R.value).forEach(g=>{const x=g;x!=="landUsePlan"&&(R.value[x]=!0,we(g,!0))}),Y(()=>{L?.layerState&&(R.value={...L.layerState.value})})):Object.keys(R.value).forEach(g=>{R.value[g]=!1}),k.value&&Y(()=>{ye()})}};z(()=>L?.layerState?.value,n=>{n&&(R.value={...n})},{deep:!0}),z(()=>L?.mapType?.value,n=>{n&&(_e.value=n)}),a({getMap:()=>m.value,getLayersManager:()=>L,toggleCategory:we,changeMapStyle:async n=>{L&&m.value&&(await L.changeMapStyle(n),_e.value=n,k.value&&Y(()=>{ye()}))},getLayerState:()=>R.value,getMapType:()=>_e.value});const pt=()=>{V&&(clearTimeout(V),V=null),q.value=!1,Ve(),m.value&&(m.value.remove(),m.value=null),k.value=!1,ue.value=null};return z(()=>pe.value,async n=>{n&&!k.value&&(await Y(),await ve())},{immediate:!0}),Ea(async()=>{await Y(),await ve(),window.addEventListener("tripleta:resize",st)}),z(s,async()=>{I.value=null,f.value=null,pt(),await Y(),await ve()}),z(()=>c.status.value.ready,async(n,i)=>{n===i||s.value||(pt(),await Y(),await ve())}),Ia(()=>{V&&(clearTimeout(V),V=null),window.removeEventListener("tripleta:resize",st),Ve(),m.value&&(m.value.remove(),m.value=null,k.value=!1),ue.value=null}),(n,i)=>{const g=$a,x=Ua,O=Ba,W=Na,P=Oa,re=Aa;return v(),_("div",Zr,[!o(s)&&!o(pe)?(v(),_("div",Kr,[S(Pa,{title:o(r)("offline_lite_map_title","El mapa requiere la descarga lite."),description:o(r)("offline_lite_map_detail","Descarga el sitio lite con conexión para ver centros, viveros y veredas en el mapa.")},null,8,["title","description"])])):C("",!0),o(s)||o(pe)?(v(),_(xe,{key:1},[!o(s)&&o(pe)?(v(),_("div",Xr,[u("p",Yr,w(o(r)("offline_lite_map_lite_mode","Modo offline: mapa estático y marcadores. El mapa en vivo carga al reconectar.")),1)])):C("",!0),u("div",Jr,[u("div",{class:"relative z-0 h-full w-full overflow-hidden",ref_key:"mapContainer",ref:d},null,512),o(U)&&(o(je)||o(E))?(v(),_("div",{key:0,class:"pointer-events-none absolute inset-x-0 z-[1002] flex flex-col gap-2 px-4",style:te(o(N))},[o(je)?(v(),ne(Pt,{key:0,class:"pointer-events-auto w-full","full-width":""})):C("",!0),o(E)?(v(),ne(Ot,{key:1,class:"pointer-events-auto w-full max-w-full","selected-tab":o(X),"onUpdate:selectedTab":i[0]||(i[0]=$=>Le(X)?X.value=$:null),"layer-state":o(R),"onUpdate:layerState":i[1]||(i[1]=$=>Le(R)?R.value=$:null),"layers-online":o(s),fluid:"",onToggleCategory:ut},null,8,["selected-tab","layer-state","layers-online"])):C("",!0)],4)):C("",!0),!o(U)&&o(je)?(v(),_("div",{key:1,class:"pointer-events-none absolute z-[1002]",style:te(o(G))},[S(Pt)],4)):C("",!0),!o(U)&&o(E)?(v(),_("div",{key:2,class:"pointer-events-none absolute inset-x-0 z-[1001] flex justify-start px-4",style:te(o(N))},[S(Ot,{class:"pointer-events-auto","selected-tab":o(X),"onUpdate:selectedTab":i[2]||(i[2]=$=>Le(X)?X.value=$:null),"layer-state":o(R),"onUpdate:layerState":i[3]||(i[3]=$=>Le(R)?R.value=$:null),"layers-online":o(s),onToggleCategory:ut},null,8,["selected-tab","layer-state","layers-online"])],4)):C("",!0)])],64)):C("",!0),S(pr,{open:o(ia),"layer-id":o(be)?.layerId??null,properties:o(be)?.properties??null,contained:o(M),onClose:it},null,8,["open","layer-id","properties","contained"]),(v(),ne(Dt,{to:"body",disabled:o(M)},[o(f)&&o(k)&&o(d)?(v(),_("div",{class:j(o(B)),key:`marker-card-${o(f).title}`,onClick:Ce(ct,["self"])},[u("div",{class:"card card-compact relative w-[292px] overflow-hidden rounded-card border-black bg-white font-sans shadow-xl",id:`card-detalle-${o(f)?.type}-${o(f)?.title.toLowerCase().replace(/\s+/g,"-")}`},[u("div",{class:"btn btn-secondary absolute right-2 top-2 flex items-center justify-center rounded-full",id:`btn-cerrar-detalle-${o(f)?.type}-${o(f)?.title.toLowerCase().replace(/\s+/g,"-")}`,onClick:ct},[S(g,{class:"w-4"})],8,eo),u("img",{src:o(f).image,alt:o(f).title,class:"h-[157px] object-cover"},null,8,to),u("div",ao,[u("div",no,[u("div",ro,[o(f).type==="centro"?(v(),ne(x,{key:0,class:"aspect-square h-full w-8",style:te({fill:o(f).color||"#808080"})},null,8,["style"])):o(f).type==="vivero"?(v(),ne(O,{key:1,class:"aspect-square h-full w-8",style:te({fill:o(f).color||"#55872C"})},null,8,["style"])):(v(),_("div",{key:2,class:"aspect-square h-full rounded-full",style:te({"background-color":o(f).color||"#808080"})},null,4)),u("div",oo,[u("div",lo,w(o(ie)?.title??o(f).title),1),u("div",so,w(o(ie)?.cuenca||o(ie)?.city),1)])]),o(ie)?.contact?(v(),_("div",io,[i[5]||(i[5]=u("div",{class:"h-px bg-black/20"},null,-1)),u("div",co,[u("div",null,w(o(r)("mapa_mas_cerca_contact","Contacto")),1),u("div",uo,w(o(ie).contact),1)])])):C("",!0),o(ie)?.hours?(v(),_("div",fo,[i[6]||(i[6]=u("div",{class:"h-px bg-black/20"},null,-1)),u("div",po,[u("div",null,w(o(Jt)),1),u("div",mo,w(o(ie).hours),1)])])):C("",!0),o(f).directionsLink?(v(),_("a",{key:2,href:o(f).directionsLink,target:"_blank",id:`btn-direcciones-${o(f)?.type}-${o(f)?.title.toLowerCase().replace(/\s+/g,"-")}`,class:"flex flex-col gap-4"},[i[7]||(i[7]=u("div",{class:"h-px bg-black/20"},null,-1)),u("div",yo,[u("div",ho,w(o(r)("mapa_mas_cerca_directions","DIRECCIONES")),1
50),S(W,{class:""})])],8,vo)):C("",!0),o(K)&&!o(J)?(v(),ne(re,{key:3,to:o(K),id:`btn-ver-pagina-${o(f)?.type}-${o(f)?.title.toLowerCase().replace(/\s+/g,"-")}`,class:"flex flex-col gap-4",onClick:i[4]||(i[4]=$=>f.value=null)},{default:Se(()=>[i[8]||(i[8]=u("div",{class:"h-px bg-black/20"},null,-1)),u("div",go,[u("div",_o,w(o(Q)),1),u("div",bo,[S(P,{class:"h-5 w-5 -rotate-45 text-white"})])])]),_:1},8,["to","id"])):o(J)?(v(),_("a",{key:4,href:o(J),target:"_blank",rel:"noopener noreferrer",id:`btn-ver-pagina-${o(f)?.type}-${o(f)?.title.toLowerCase().replace(/\s+/g,"-")}`,class:"flex flex-col gap-4"},[i[9]||(i[9]=u("div",{class:"h-px bg-black/20"},null,-1)),u("div",xo,[u("div",Co,w(o(Q)),1),u("div",Mo,[S(P,{class:"h-5 w-5 -rotate-45 text-white"})])])],8,ko)):C("",!0)])])],8,Qr)],2)):C("",!0)],8,["disabled"]))])}}});export{zo as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.