1/* AUTO-GENERATED by tools/build-js-bundles.mjs â do not edit by hand. */ 2/* Entry: JS/bundle-entries/results-maps-pack.ts */ 3globalThis.Beamo = globalThis.Beamo || {}; 4"use strict";(()=>{var gt=Object.freeze,nn=Object.defineProperty;var Ve=(t,e)=>gt(nn(t,"raw",{value:gt(e||t.slice())}));function on(t){let e=t.process;return t===globalThis&&typeof e?.versions?.node=="string"}function Xe(t=globalThis){if(on(t))return null;try{return t?.sessionStorage||null}catch{return null}}function ht(t,e,o=null){try{return Xe(t)?.getItem(e)??o}catch{return o}}function bt(t,e,o){try{let n=Xe(t);return n?(n.setItem(e,o),!0):!1}catch{return!1}}function yt(t,e){try{Xe(t)?.removeItem(e)}catch{}}function Ne({ttlMs:t,maxEntries:e=64,persistKey:o,global:n}){let r=new Map,a=new Map,l=n??globalThis;function c(){if(o)try{let d={};for(let[b,x]of r)d[b]=x;bt(l,o,JSON.stringify(d))}catch{}}if(o)try{let d=ht(l,o,"");if(d){let b=JSON.parse(d),x=Date.now();for(let[L,S]of Object.entries(b))S&&typeof S=="object"&&typeof S.storedAt=="number"&&x-S.storedAt<=t&&r.size<e&&r.set(L,{value:S.value,storedAt:S.storedAt})}}catch{}function m(d){let b=r.get(d);if(b){if(Date.now()-b.storedAt>t){r.delete(d);return}return r.delete(d),r.set(d,b),b.value}}function s(d,b){if(!r.has(d)&&r.size>=e){let x=r.keys().next().value;x!==void 0&&r.delete(x)}r.set(d,{value:b,storedAt:Date.now()}),c()}async function u(d,b){let x=m(d);if(x!==void 0)return x;let L=a.get(d);if(L)return L;let S=(async()=>{try{let v=await b();return v!=null&&s(d,v),v}finally{a.delete(d)}})();return a.set(d,S),S}return{get:m,set:s,getOrFetch:u,clear(){r.clear(),a.clear(),o&&yt(l,o)}}}var rn="BeamoSearch/1.0 (+https://beamosearch.com)",me={headers:{Accept:"application/json","User-Agent":rn}};var _t,wt=String.raw(_t||(_t=Ve(["(?:jan(?:uary)?|feb(?:ruary)?|mar(?:ch)?|apr(?:il)?|may|jun(?:e)?|jul(?:y)?|aug(?:ust)?|sep(?:t(?:ember)?)?|oct(?:ober)?|nov(?:ember)?|dec(?:ember)?)"]))),Mt,Un=new RegExp(String.raw(Mt||(Mt=Ve(["s+(?:rights+now|now|currently|ats+thes+moment|overs+thes+weekend|days+afters+tomorrow|ins+d{1,2}s+days?|(?:on|for)s+",".?s+d{1,2}(?:st|nd|rd|th)?|",".?s+d{1,2}(?:st|nd|rd|th)?|(?:today|tonight|tomorrow|yesterday)(?:s+(?:morning|afternoon|evening|night|noon))?|thiss+(?:morning|afternoon|evening|weekend|week|month|year)|nexts+(?:week|month|weekend|year)|(?:ons+)?(?:(?:this|next)s+)?(?:monday|tuesday|wednesday|thursday|friday|saturday|sunday)(?:s+(?:morning|afternoon|evening|night))?|morning|afternoon|evening|night|noon|midnight)$"],["\\s+(?:right\\s+now|now|currently|at\\s+the\\s+moment|over\\s+the\\s+weekend|day\\s+after\\s+tomorrow|in\\s+\\d{1,2}\\s+days?|(?:on|for)\\s+","\\.?\\s+\\d{1,2}(?:st|nd|rd|th)?|","\\.?\\s+\\d{1,2}(?:st|nd|rd|th)?|(?:today|tonight|tomorrow|yesterday)(?:\\s+(?:morning|afternoon|evening|night|noon))?|this\\s+(?:morning|afternoon|evening|weekend|week|month|year)|next\\s+(?:week|month|weekend|year)|(?:on\\s+)?(?:(?:this|next)\\s+)?(?:monday|tuesday|wednesday|thursday|friday|saturday|sunday)(?:\\s+(?:morning|afternoon|evening|night))?|morning|afternoon|evening|night|noon|midnight)$"])),wt,wt),"i");var kt=Ne({ttlMs:1440*60*1e3,maxEntries:128,persistKey:"beamo-geocode-cache-v1"}),Qe=new Map;async function an(t,e,o,n){let r=new URLSearchParams({name:o,count:"1",language:"en",format:"json"}),a=e?.timeouts?.geocodeMs??6e3;try{let l=await t.fetchWithTimeout("".concat(n,"?").concat(r.toString()),me,a);if(!l.ok)return l.status===429||l.status>=500?{status:"unavailable"}:{status:"not_found"};let c=await l.json(),m=Array.isArray(c?.results)?c.results[0]:null;return!m||!Number.isFinite(m.latitude)||!Number.isFinite(m.longitude)?{status:"not_found"}:{status:"ok",place:{name:String(m.name||o),admin1:String(m.admin1||""),country:String(m.country||""),countryCode:String(m.country_code||""),latitude:m.latitude,longitude:m.longitude,timezone:String(m.timezone||"UTC")}}}catch{return{status:"unavailable"}}}async function sn(t,e,o){let n=String(o??"").trim();if(!n)return{status:"not_found"};let r=e?.external?.openMeteoGeocoding||"https://geocoding-api.open-meteo.com/v1/search",a="".concat(r," ").concat(n.toLowerCase()),l=kt.get(a);if(l)return{status:"ok",place:l};let c=Qe.get(a);if(c)return c;let m=(async()=>{try{let s=await an(t,e,n,r);return s.status==="ok"&&kt.set(a,s.place),s}finally{Qe.delete(a)}})();return Qe.set(a,m),m}async function vt(t,e,o){let n=await sn(t,e,o);return n.status==="ok"?n.place:null}function xt(t){if(!t)return"";let e=[];for(let o of[t.name,t.admin1,t.country]){let n=String(o||"").trim();n&&!e.some(r=>r.toLowerCase()===n.toLowerCase())&&e.push(n)}return e.join(", ")}function Ze(t=globalThis.document){return(t?.querySelector?.('meta[name="beamo-ma
4pbox-token"]')?.getAttribute("content")||"").trim()}function ln(t=globalThis.document){return t?.documentElement?.getAttribute("data-theme")==="dark"}var cn="https://tile.openstreetmap.org";function Ct(t=globalThis.document){let e=Ze(t);if(e){let o=ln(t)?"dark-v11":"streets-v12";return{provider:"mapbox",url:(n,r,a)=>"https://api.mapbox.com/styles/v1/mapbox/".concat(o,"/tiles/256/").concat(n,"/").concat(r,"/").concat(a,"@2x?access_token=").concat(encodeURIComponent(e))}}return{provider:"osm",url:(o,n,r)=>"".concat(cn,"/").concat(o,"/").concat(n,"/").concat(r,".png")}}function Lt(t=globalThis){try{let e=String(t?.document?.documentElement?.lang||"").trim();if(e)return e;let o=String(t?.navigator?.language||"").trim();if(o)return o}catch{}return"en-US"}function Nt(t){return t.replace(/[â¯Â ]/g," ")}var _e=new RegExp("\\b(near me|nearby|near by|around me|around here|close to me|close by|walking distance|open now|open late|open 24|24 hours?|24/7|closest|nearest)\\b","i"),et=new RegExp("\\b((?:thai|chinese|indian|mexican|italian|japanese|korean|vietnamese|mediterranean|greek|french|turkish|ethiopian|lebanese|spanish|german|caribbean|cuban|brazilian|peruvian|filipino|halal|kosher|vegan|vegetarian)\\s+(?:food|restaurants?|cuisine|takeout)|restaurants?|eateries|diners?|bistros?|steakhouses?|food trucks?|food courts?|food halls?|buffets?|takeout|take[- ]?away|street food|fine dining|pizza places?|pizzerias?|pizza|sushi|ramen|pho|tacos?|taquerias?|burritos?|burgers?|hamburgers?|hot dogs?|sandwich(?:es)?|delis?|bbq|barbecue|barbeque|seafood|wings|noodles?|dumplings?|kebabs?|shawarma|falafel|poke|brunch|breakfast spots?|breakfast|ice cream (?:parlors?|shops?|stands?)|ice cream|gelato|frozen yogurt|froyo|donut shops?|donuts?|doughnuts?|desserts?|cupcakes?|candy (?:stores?|shops?)|chocolate (?:stores?|shops?)|chocolatiers?|bakery|bakeries|bagel (?:stores?|shops?)|bagels?|creperies?|cafes?|coffee (?:shops?|houses?|roasters?)|coffee|tea (?:houses?|rooms?|shops?)|boba|bubble tea|juice bars?|smoothies?|breweries|brewery|brewpubs?|beer gardens?|wineries|winery|wine bars?|distilleries|distillery|cocktail bars?|speakeasy|speakeasies|sports bars?|rooftop bars?|bars?|pubs?|night ?clubs?|karaoke|comedy clubs?|jazz clubs?|hotels?|motels?|hostels?|resorts?|bed and breakfasts?|b&bs?|inns?|lodges?|cabins?|campgrounds?|campsites?|rv parks?|gyms?|yoga studios?|yoga|pilates|crossfit|martial arts|boxing gyms?|dance studios?|pharmac(?:y|ies)|drugstores?|hospitals?|urgent care|emergency rooms?|clinics?|dentists?|orthodontists?|doctors?|pediatricians?|dermatologists?|chiropractors?|optometrists?|eye doctors?|therapists?|counselors?|gas stations?|petrol stations?|charging stations?|ev chargers?|parking|car washe?s?|mechanics?|auto repair|auto shops?|tire shops?|oil change|car dealerships?|dealerships?|car rentals?|rental cars?|banks?|atms?|post offices?|dmv|city hall|courthouses?|police stations?|fire stations?|libraries|library|schools?|universities|colleges?|daycares?|day cares?|preschools?|salons?|barbers?|barbershops?|nail salons?|hair salons?|spas?|massage|tattoo (?:shops?|parlors?|studios?|artists?)|laundromats?|dry cleaners?|tailors?|locksmiths?|plumbers?|electricians?|movers?|storage units?|coworking spaces?|vets?|veterinarians?|pet groomers?|groomers?|kennels?|dog boarding|animal shelters?|supermarkets?|grocery stores?|groceries|convenience stores?|liquor stores?|dispensaries|malls?|shopping (?:malls?|centers?)|outlets?|farmers'? markets?|flea markets?|bookstores?|book (?:stores?|shops?)|thrift (?:stores?|shops?)|antique (?:stores?|shops?)|florists?|flower shops?|hardware stores?|pet (?:stores?|shops?)|toy stores?|jewelry stores?|jewelers?|furniture stores?|electronics stores?|churche?s?|temples?|mosques?|synagogues?|parks?|dog parks?|playgrounds?|botanical gardens?|zoos?|aquariums?|amusement parks?|theme parks?|water parks?|trampoline parks?|skate parks?|museums?|art galleries|theaters?|theatres?|cinemas?|movie theaters?|stadiums?|arenas?|concert (?:venues?|halls?)|music venues?|event venues?|wedding venues?|venues?|bowling alleys?|bowling|mini ?golf|golf courses?|driving ranges?|tennis courts?|basketball courts?|pickleball courts?|soccer fields?|arcades?|escape rooms?|laser tag|go[- ]?karts?|go[- ]?karting|paintball|axe throwing|climbing gyms?|rock climbing|ice rinks?|skating rinks?|swimming pools?|pool halls?|ski resorts?|hiking trails?|bike trails?|nature trails?|trailheads?|hikes?|beaches?|lookouts?|viewpoints?|scenic views?|landmarks?|monuments?|tourist attractions?|attractions?|sightseeing|sights|points of interest|airports?|train stations?|bus (?:stations?|stops?)|subway stations?|metro stations?|ferry terminals?)\\b","i"),St=new RegExp(et.source,"gi"),tt=/\b(in|near|around|at|close to)\s+\S+/i,un=/\b(places?|spots?|joints?)\b/i,Ke=/\b(things to do|stuff to do|what to do|places to (?:visit|see|go)|fun activities|activities)\b/i,Je=/^where\s+(?:to|can\s+\w+|do\s+\w+|should\s+\w+)\s+(?:\w+\s+)*?(eat|dine|drink|stay|sleep|shop|party|swim|hike|camp|go|visit)\b/i,pn={eat:"restaurants",dine
4:"restaurants",drink:"bars",stay:"hotels",sleep:"hotels",shop:"shopping",party:"night clubs",swim:"swimming pools",hike:"hiking trails",camp:"campgrounds",go:"attractions",visit:"attractions"},mn=new RegExp("\\b(recipes?|how to|diy|meaning|definitions?|wikipedia|wiki|lyrics|chords|songs?|albums?|trailers?|cast of|netflix|hulu|salary|net worth|stock price|stocks?|crypto|bitcoin|minecraft|roblox|fortnite|calories|jokes?|quotes?)\\b","i"),dn=new RegExp("\\b(?:flu|influenza|covid(?:-?19)?|coronavirus|rsv|respiratory illness(?:es)?|respiratory viruses?)\\b[^]*\\b(?:activity|levels?|trends?|surveillance|data|going around|circulating)\\b|\\b(?:activity|levels?|trends?|surveillance|data|going around|circulating)\\b[^]*\\b(?:flu|influenza|covid(?:-?19)?|coronavirus|rsv|respiratory illness(?:es)?|respiratory viruses?)\\b","i"),fn=/^(?:was|were|did|does|do|has|have|had|who|whom|whose|why|when|how)\b/i,gn=new RegExp("\\b(?:before|prior to|used to|versus|vs\\.?|compared (?:to|with)|instead of|history of|origin(?:s)? of|founded|invented|first ever|oldest)\\b","i"),hn=new Set(["best","top","good","great","cheap","cheapest","nice","cute","cozy","the","a","an","my","your","our","some","any","all","local","famous","popular","highly","rated","reviews","review","list","of","for","and","or","with","to","open","now","late","early","vegan","organic","small","big","find","me","you","us","we","places","place","spots","spot","joints","joint","shops","shop","stores","store","near","nearby","close","around","here","there","where","what","which","things","thing","stuff","do","doing","go","going","visit","see","eat","eating","drink","stay","get","buy","try","must","hidden","gems","gem","fun","cool","awesome","amazing","family","friendly","kid","kids","date","night","romantic","fancy","casual","affordable","budget","luxury","expensive","delicious","tasty","authentic","iconic","classic","underrated","recommended","locals","tourist","tourists","today","tonight","weekend","this","that","movie","showtimes","menu","menus","prices","price","hours","rooftop","outdoor","indoor","dog-friendly","pet-friendly","i","is","are","was","were","am","be","been","it","its","on","from","by","as","has","have","had","will","can","could","should","would","they","them","their","how","why","when","who","whats","want","looking","show","in","at","company","companies","brand","brands","chain","chains","franchise","franchises","business","businesses","before","after","until","since","versus","vs","ever","alternative","alternatives"]);function Me(t){let e=(t.toLowerCase().match(/[\p{L}][\p{L}'-]*/gu)||[]).filter(o=>!hn.has(o));return e.filter((o,n)=>o==="new"||o==="old"?n+1<e.length:!0)}function Et(t){return _e.test(String(t??""))}function Pt(t){return tt.test(String(t??""))}function Tt(t){return Me(String(t??""))}function At(t){let e=String(t??"").trim();if(!e||e.length>120)return!1;if(/^where(?:'s| is| are)\b/i.test(e))return!0;if(dn.test(e))return!1;if(_e.test(e))return!0;if(fn.test(e)||gn.test(e)||mn.test(e)||/\b\w+\.(?:com|net|org|io|co|app|gov|edu)\b/i.test(e))return!1;let o=tt.test(e);if(Ke.test(e)&&o||Je.test(e)&&o)return!0;if(!e.match(et))return un.test(e)&&o?Me(e.replace(/\b(in|near|around|at|close to)\b/gi," ")).length>=1:!1;if(o)return!0;let r=e.replace(St," ");return Me(r).length>=1}function Se(t){let e=t.replace(_e," ").replace(/\b(in|near|around|at|close to)\b/gi," ");return Me(e).join(" ").trim()}function ke(t){let e=String(t??"").trim();if(!e)return null;if(e.match(Ke))return{category:"attractions",locality:Se(e.replace(Ke," "))};let n=e.match(Je);if(n){let l=n[1].toLowerCase();return{category:pn[l]||"attractions",locality:Se(e.replace(Je," "))}}let r=e.match(et);if(r)return{category:r[0].toLowerCase(),locality:Se(e.replace(St," "))};let a=e.match(/^(.*?)\b(?:places?|spots?|joints?)\b(.*)$/i);if(a&&tt.test(e)){let l=Me(a[1]).join(" ").trim(),c=Se(a[2]);if(c)return{category:l||"attractions",locality:c}}return null}function Ee(t,e){let o=String(t??"").trim(),n=String(e??"").trim();if(!o)return"";if(!_e.test(o))return o;let r=o.replace(_e," ").replace(/\s+/g," ").trim();return r?n?"".concat(r," ").concat(n):r:n||o}
4var nt={su:0,mo:1,tu:2,we:3,th:4,fr:5,sa:6};function bn(t){let e=new Set;for(let o of t.split(",")){let n=o.trim().split("-").map(r=>r.trim().toLowerCase());if(n.length===1){let r=nt[n[0]];if(r===void 0)return null;e.add(r)}else if(n.length===2){let r=nt[n[0]],a=nt[n[1]];if(r===void 0||a===void 0)return null;let l=r;for(let c=0;c<7&&(e.add(l),l!==a);c+=1)l=(l+1)%7}else return null}return[...e]}function yn(t){let e=[];for(let o of t.split(",")){let n=o.trim().match(/^(\d{1,2}):(\d{2})-(\d{1,2}):(\d{2})$/);if(!n)return null;let r=Number(n[1])*60+Number(n[2]),a=Number(n[3])*60+Number(n[4]);if(r>1440||a>1440)return null;e.push([r,a])}return e}function $t(t){let e=(t%1440+1440)%1440,o=Math.floor(e/60),n=e%60;try{return Nt(new Intl.DateTimeFormat(Lt(),{hour:"numeric",minute:n===0?void 0:"2-digit",timeZone:"UTC"}).format(Date.UTC(2e3,0,1,o,n)))}catch{let r=o<12?"AM":"PM",a=o%12===0?12:o%12;return n===0?"".concat(a," ").concat(r):"".concat(a,":").concat(String(n).padStart(2,"0")," ").concat(r)}}function wn(t){if(t.length===0)return"";let e=[...new Map(t.map(o=>["".concat(o[0],"-").concat(o[1]),o])).values()].sort((o,n)=>o[0]-n[0]);return e.length===1&&e[0][0]===0&&e[0][1]>=1440?"Open 24 hours":e.map(([o,n])=>"".concat($t(o),"\u2013").concat($t(n))).join(", ")}function Ae(t,e,o){let n=String(t||"").trim(),r={openNow:null,todayHours:""};if(!n)return r;if(/^24\s*\/\s*7$/i.test(n))return{openNow:!0,todayHours:"Open 24 hours"};if(/\b(?:jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec|sunrise|sunset|dawn|dusk|week|easter)\b/i.test(n)||/[[\]"@]|=>/.test(n))return r;let a=-e.getTimezoneOffset(),l=typeof o=="number"&&Number.isFinite(o)?Math.round(o/15)*60:a,c,m;if(Math.abs(l-a)<=120)c=e.getDay(),m=e.getHours()*60+e.getMinutes();else{let S=new Date(e.getTime()+l*6e4);c=S.getUTCDay(),m=S.getUTCHours()*60+S.getUTCMinutes()}let s=(c+6)%7,u=!1,d=!1,b=!1,x=[];for(let S of n.split(";")){let v=S.trim();if(!v||/\b(?:ph|sh)\b/i.test(v))continue;let j="",y=v,E=v.match(/^((?:mo|tu|we|th|fr|sa|su)(?:\s*[-,]\s*(?:mo|tu|we|th|fr|sa|su))*)\s+(.+)$/i);E&&(j=E[1],y=E[2]);let P=j?bn(j):null;if(j&&P===null)return r;let O=!j||P.includes(c),U=!j||P.includes(s);if(!O&&!U)continue;let $=y.trim().toLowerCase();if($==="off"||$==="closed"){O&&(d=!0,b=!0);continue}let F=yn($);if(F===null)return r;O&&(b=!0,x.push(...F));for(let[D,g]of F)g>D?O&&m>=D&&m<g&&(u=!0):(O&&m>=D&&(u=!0),U&&m<g&&(u=!0))}let L;return u?L=!0:L=!1,{openNow:L,todayHours:wn(x)}}var Rt={administrative:"Region",city:"City",town:"Town",village:"Village",hamlet:"Hamlet",suburb:"Suburb",neighbourhood:"Neighborhood",county:"County",state:"State",country:"Country",postcode:"Postal code",road:"Street",house:"Address",fast_food:"Fast food"};function ve(t){let e=String(t??"").split(";")[0].trim();if(!e||e==="yes")return"";if(Rt[e])return Rt[e];let o=e.replace(/_/g," ");return o.charAt(0).toUpperCase()+o.slice(1)}function _n(t,e){let o=t.address||{},n=[o.house_number,o.road].filter(Boolean).join(" "),r=o.city||o.town||o.village||o.suburb||o.municipality||"",a=[n,r,o.state].filter(Boolean);if(a.length>0)return a.join(", ");let l=String(t.display_name||"");return l.toLowerCase().startsWith(e.toLowerCase()+",")?l.slice(e.length+1).trim().split(",").slice(0,3).join(",").trim():l.split(",").slice(0,3).join(",").trim()}async function $e(t,e,o,{limit:n=8,proximity:r=null}={}){let a=String(o??"").trim();if(!a)return[];let l=Ze();if(l){let s=ke(a);if(!!(s&&s.locality&&Pt(a))&&s){let b=await ot(t,e,s,l,{limit:n,proximity:r});if(b.length>0)return b}else if(r){let b=s?.locality?Tt(s.locality):[],x=Mn(await at(t,e,a,l,{limit:n,proximity:r}),b);if(b.length>0&&x.some(S=>rt(S,b)))return x;if(s&&s.locality){let S=await ot(t,e,s,l,{limit:n,proximity:r});if(S.length>0)return S}if(x.length>0)return x}else if(s&&s.locality){let b=await ot(t,e,s,l,{limit:n,proximity:null});if(b.length>0)return b}let d=await Bt(t,e,a,l,{limit:n,proximity:r});if(d.length>0)return d}let c=ke(a);if(c&&c.locality){let s=await Pe(t,e,c.locality,1),u=Array.isArray(s[0]?.boundingbox)&&s[0].boundingbox.length===4?s[0].boundingbox.map(x=>Number.parseFloat(String(x))):null;if(u&&u.every(x=>Number.isFinite(x))){let x="".concat(u[2],",").concat(u[1],",").concat(u[3],",").concat(u[0]),L=await Pe(t,e,c.category,n,{viewbox:x}),S=Te(L,a);if(S.length>0)return S}let d=Te(await Pe(t,e,a,n),a),b=kn(d,c.locality);return b.length>0?b:Te(s,c.locality)}let m=await Pe(t,e,a,n);return Te(m,a)}async function ot(t,e,o,n,{limit:r=8,proximity:a=null}){let c=(await Bt(t,e,o.locality,n,{limit:1,proximity:a,types:"place,locality,region"}))[0];if(!c)return[];let m=c.bounds?"".concat(c.bounds[2],",").concat(c.bounds[0],",").concat(c.bounds[3],",").concat(c.bounds[1]):"",s=[c.longitude,c.latitude],u=await at(t,e,o.category,n,{limit:r,proximity:s,bbox:m});return u.length===0&&m&&(u=await at(t,e,o.category,n,{limit:r,proximity:s})),u}function rt(t,e){if(e.length===0)return!1;let o=t.name.toLowerCase();return e.every(n=>o.includes(n))}function Mn(t,e){return e.length===0?t:[...t].sort((o,n)=>Number(rt(n,e))-Number(rt(o,e)))}function kn(t,e){let o=e.trim().toLowerCase();return o?t.filter(n=>"".concat(n.address," ").concat(n.label.slice(n.name.length)).toLowerCase().includes(o)):t}async function Bt(t,e,o,n,{limit:r=8,proximity:a=null,types:l="",bbox:c=""}){let m=e?.external?.mapboxGeocoding||"https://api.mapbox.com/geocoding/v5/mapbox.places",s=new URLSearchParams({access_token:n,limit:String(Math.max(1,Math.min(10,r))),language:"en",types:l||"poi,place,locality,neighborhood,address,region,country"});a&&Number.isFinite(a[0])&&Number.isFinite(a[1])&&s.set("proximity","".concat(a[0],",").concat(a[1])),c&&s.set("bbox",c);let u=e?.timeouts?.geocodeMs??6e3;try{let d=await t.fetchWithTimeout("".concat(m,"/").concat(encodeURIComponent(o),".json?").concat(s.toString()),me,u);if(!d.ok)return[];let b=await d.json(),x=Array.isArray(b?.features)?b.features:[],L=[],S=new Set;for(let v of x){let j=Array.isArray(v?.center)?v.center:null,y=Number.parseFloat(String(j?.[0]??"")),E=Number.parseFloat(String(j?.[1]??""));if(!Number.isFinite(E)||!Number.isFinite(y))continue;let P=String(v.text||"").trim()||String(v.place_name||"").split(",")[0].trim();if(!P)continue;let O=String(v.id||"".concat(E.toFixed(5),",").concat(y.toFixed(5)));if(S.has(O))continue;S.add(O);let U=String(v.place_name||P),$=U.toLowerCase().startsWith(P.toLowerCase()+",")?U.slice(P.length+1).trim().split(",").slice(0,3).join(",").trim():U.split(",").slice(1,4).join(",").trim(),F=Array.isArray(v.place_type)?String(v.place_type[0]||""):"",D=String(v.properties?.category||"").split(",")[0].trim(),g=Array.isArray(v.bbox)&&v.bbox.length===4?v.bbox.map(M=>Number.parseFloat(String(M))):null;L.push({id:O,name:P,label:U,category:ve(D||F),address:$,latitude:E,longitude:y,importance:Number.parseFloat(String(v.relevance??0))*(F==="place"?1:.8),bounds:g&&g.every(M=>Number.isFinite(M))?[g[1],g[3],g[0],g[2]]:null,externalUrl:"https://www.openstreetmap.org/?mlat=".concat(E,"&mlon=").concat(y,"#map=16/").concat(E,"/").concat(y),directionsUrl:"https://www.openstreetmap.org/directions?from=&to=".concat(E,"%2C").concat(y,"#map=14/").concat(E,"/").concat(y)})}return Ot(L,o)}catch{return[]}}async function at(t,e,o,n,{limit:r=8,proximity:a=null,bbox:l=""}){let c=e?.external?.mapboxSearchBox||"https://api.mapbox.com/search/searchbox/v1/forward",m=new URLSearchParams({q:o,access_token:n,limit:String(Math.max(1,Math.min(10,r))),language:"en",types:"poi"});a&&Number.isFinite(a[0])&&Number.isFinite(a[1])&&m.set("proximity","".concat(a[0],",").concat(a[1])),l&&m.set("bbox",l);let s=e?.timeouts?.geocodeMs??6e3;try{let u=await t.fetchWithTimeout("".concat(c,"?").concat(m.toString()),me,s);if(!u.ok)return[];let d=await u.json(),b=Array.isArray(d?.features)?d.features:[],x=[],L=new Set;for(let S of b){let v=S?.properties||{},j=S?.geometry?.coordinates,y=Number.parseFloat(String(j?.[0]??v?.coordinates?.longitude??"")),E=Number.parseFloat(String(j?.[1]??v?.coordinates?.latitude??""));if(!Number.isFinite(E)||!Number.isFinite(y))continue;let P=String(v.name||"").trim();if(!P)continue;let O=String(v.mapbox_id||"".concat(E.toFixed(5),",").concat(y.toFixed(5)));if(L.has(O))continue;L.add(O);let U=Array.isArray(v.poi_category)&&v.poi_category.length>0?ve(String(v.poi_category[0]).replace(/\s+/g,"_")):"";x.push({id:O,name:P,label:String(v.full_address||v.place_formatted||P),category:U,address:String(v.address||v.place_formatted||""),latitude:E,longitude:y,importance:Number.parseFloat(String(S.relevance??v.relevance??.5))||.5,bounds:null,externalUrl:"https://www.openstreetmap.org/?mlat=".concat(E,"&mlon=").concat(y,"#map=17/").concat(E,"/").concat(y),directionsUrl:"https://www.openstreetmap.org/directions?from=&to=".concat(E,"%2C").concat(y,"#map=15/").concat(E,"/").concat(y)})}return x}catch{return[]}}async function Pe(t,e,o,n,{viewbox:r=""}={}){let a=e?.external?.nominatimSearch||"https://nominatim.openstreetmap.org/search",l=ne
4w URLSearchParams({q:o,format:"jsonv2",limit:String(Math.max(1,Math.min(10,n))),addressdetails:"1",extratags:"1",dedupe:"1","accept-language":"en"});r&&(l.set("viewbox",r),l.set("bounded","1"));let c=e?.timeouts?.geocodeMs??6e3;try{let m=await t.fetchWithTimeout("".concat(a,"?").concat(l.toString()),me,c);if(!m.ok)return[];let s=await m.json();return Array.isArray(s)?s:[]}catch{return[]}}function Te(t,e){let o=[],n=new Set;for(let r of t){let a=Number.parseFloat(String(r?.lat??"")),l=Number.parseFloat(String(r?.lon??""));if(!Number.isFinite(a)||!Number.isFinite(l))continue;let c=String(r.display_name||"").trim(),m=String(r.name||"").trim()||c.split(",")[0].trim();if(!m)continue;let s=r.osm_type&&r.osm_id?"".concat(r.osm_type,"/").concat(r.osm_id):"".concat(a.toFixed(5),",").concat(l.toFixed(5));if(n.has(s))continue;n.add(s);let u=Array.isArray(r.boundingbox)&&r.boundingbox.length===4?r.boundingbox.map(v=>Number.parseFloat(String(v))):null,d=r.extratags&&typeof r.extratags=="object"?r.extratags:{},b=String(d.phone||d["contact:phone"]||d["contact:mobile"]||"").trim(),x=String(d.website||d["contact:website"]||d.url||"").trim(),L=/^https?:\/\//i.test(x)?x:"",S=String(d.opening_hours||"").trim();o.push({id:s,name:m,label:c||m,category:ve(r.addresstype)||ve(r.type)||ve(r.class),address:_n(r,m),latitude:a,longitude:l,importance:Number.isFinite(Number(r.importance))?Number(r.importance):0,bounds:u&&u.every(v=>Number.isFinite(v))?[u[0],u[1],u[2],u[3]]:null,externalUrl:r.osm_type&&r.osm_id?"https://www.openstreetmap.org/".concat(r.osm_type,"/").concat(r.osm_id):"https://www.openstreetmap.org/?mlat=".concat(a,"&mlon=").concat(l,"#map=16/").concat(a,"/").concat(l),directionsUrl:"https://www.openstreetmap.org/directions?from=&to=".concat(a,"%2C").concat(l,"#map=14/").concat(a,"/").concat(l),phone:b,website:L,openingHours:S})}return Ot(o,e)}function It(t,e){if(!e.bounds)return!1;let[o,n,r,a]=e.bounds;return t.latitude>=o&&t.latitude<=n&&t.longitude>=r&&t.longitude<=a}function vn(t,e){let o=t.trim().toLowerCase(),n=e.trim().toLowerCase();return o!==""&&n!==""&&(o===n||o.includes(n)||n.includes(o))}var xn=new Set(["City","Town","Village","Hamlet","Suburb","Neighborhood"]);function Ot(t,e=""){let o=[...t].sort((s,u)=>u.importance-s.importance),n=e.trim().toLowerCase(),r=[],a=s=>{let u=0;return n!==""&&s.name.trim().toLowerCase()===n&&(u+=4),xn.has(s.category)&&(u+=2),u},l=(s,u)=>(It(s,u)||It(u,s))&&vn(s.name,u.name),c=new Set;for(let s of o){let u=!1;for(let d of r)if(l(s,d.rep)){(a(s)>a(d.rep)||a(s)===a(d.rep)&&s.importance>d.rep.importance)&&(d.rep=s),d.maxImportance=Math.max(d.maxImportance,s.importance),u=!0;break}u||r.push({rep:s,maxImportance:s.importance})}if(n!=="")for(let s of r){let u=s.rep.name;if(u.trim().toLowerCase()===n)continue;let d=u.replace(/^(greater|city of|metropolitan|metro)\s+/i,"").trim();d!==""&&d.toLowerCase()===n&&(s.rep={...s.rep,name:d},c.add(s.rep))}let m=!0;for(;m;){m=!1;e:for(let s=0;s<r.length;s+=1)for(let u=s+1;u<r.length;u+=1)if(l(r[s].rep,r[u].rep)){let d=r[s],b=r[u],x=S=>a(S)*2+(c.has(S)?0:1),L=x(b.rep)>x(d.rep)||x(b.rep)===x(d.rep)&&b.rep.importance>d.rep.importance;d.rep=L?b.rep:d.rep,d.maxImportance=Math.max(d.maxImportance,b.maxImportance),r.splice(u,1),m=!0;break e}}return r.sort((s,u)=>u.maxImportance-s.maxImportance).map(s=>({...s.rep,importance:s.maxImportance}))}function Ft(t){let e=t[0]||null;if(!e)return{mode:"fit",place:null};if(t.length===1)return{mode:"top",place:e};let o=t[1];return e.importance>=.5&&e.importance-o.importance>=.1?{mode:"top",place:e}:{mode:"fit",place:e}}function ue(t,e,o,n){let r=s=>s*Math.PI/180,l=r(o-t),c=r(n-e),m=Math.sin(l/2)**2+Math.cos(r(t))*Math.cos(r(o))*Math.sin(c/2)**2;return 2*6371*Math.asin(Math.min(1,Math.sqrt(m)))}function he(t=globalThis){let e=t.navigator;return[e?.language,...e?.languages||[]].filter(Boolean).map(n=>String(n).toLowerCase()).some(n=>/-(?:us|gb|mm|lr)$/.test(n))}function xe(t,e=!1){if(!Number.isFinite(t)||t<0)return"";if(e){let o=t*.621371;return o<.1?"".concat(Math.max(50,Math.round(o*5280/50)*50)," ft"):o<10?"".concat(o.toFixed(1)," mi"):"".concat(Math.round(o)," mi")}return t<1?"".concat(Math.max(50,Math.round(t*1e3/50)*50)," m"):t<10?"".concat(t.toFixed(1)," km"):"".concat(Math.round(t)," km")}var Cn=Ne({ttlMs:360*60*1e3,maxEntries:48,persistKey:"beamo-osrm-route-v1"});async function Re(t,e,o,n){let r=Number(o?.latitude),a=Number(o?.longitude),l=Number(n?.latitude),c=Number(n?.longitude);if(![r,a,l,c].every(Number.isFinite)||Math.abs(r)>90||Math.abs(l)>90||Math.abs(a)>180||Math.abs(c)>180||typeof t?.fetchWithTimeout!="function")return null;let m=e?.external?.osrmRoute||"https://router.project-osrm.org/route/v1",s="".concat(a.toFixed(6),",").concat(r.toFixed(6),";").concat(c.toFixed(6),",").concat(l.toFixed(6)),u="".concat(m,"/driving/").concat(s,"?overview=full&geometries=geojson&alternatives=false&steps=false"),d=e?.timeouts?.geocodeMs??6e3,b=t.fetchWithTimeout;return Cn.getOrFetch(u,async()=>{try{let x=await b(u,me,d);if(!x.ok)return null;let L=await x.json();if(!L||L.code!=="Ok"||!Array.isArray(L.routes)||L.routes.length===0)return null;let S=L.routes[0],v=Number(S?.duration),j=Number(S?.distance),y=S?.geometry?.coordinates;if(!Number.isFinite(v)||!Number.isFinite(j)||!Array.isArray(y))return null;let E=[];for(let P of y){if(Array.isArray(P)&&P.length>=2){let O=Number(P[0]),U=Number(P[1]);Number.isFinite(O)&&Number.isFinite(U)&&E.push([O,U])}if(E.length>=1200)break}return E.length<2?null:{durationSeconds:v,distanceMeters:j,coordinates:E}}catch{return null}})}function Ie(t,e,o=!1){if(!Number.isFinite(t)||t<0)return"";let n=Math.max(1,Math.round(t/60)),r;if(n<60)r="".concat(n," min");else{let l=Math.floor(n/60),c=n%60;r=c?"".concat(l," hr ").concat(c," min"):"".concat(l," hr")}let a=xe(e/1e3,o);return a?"".concat(r," drive \xB7 ").concat(a):"".concat(r," drive")}var Ht="http://www.w3.org/2000/svg",ae=256,be=3,zt=19;function Ln(t,e,o){let n=o>0?"marker ".concat(e+1," of ").concat(o):"marker ".concat(e+1),r=(t.name||"").trim(),a=(t.category||"").trim();return r?"".concat(r).concat(a?", ".concat(a):"",", ").concat(n):a?"".concat(a,", ").concat(n):"Map ".concat(n)}function re(t,e,o){let n=ae*2**o,a=Math.max(-85.05112878,Math.min(85.05112878,t))*Math.PI/180;return{x:(e+180)/360*n,y:(1-Math.log(Math.tan(a)+1/Math.cos(a))/Math.PI)/2*n}}function st(t,e,o){let n=ae*2**o,r=t/n*360-180,a=Math.PI-2*Math.PI*e/n;return{latitude:180/Math.PI*Math.atan(.5*(Math.exp(a)-Math.exp(-a))),longitude:r}}function Ut(t,e,o,{padding:n=48,maxZoom:r=16}={}){let a=t.filter(L=>Number.isFinite(L.latitude)&&Number.isFinite(L.longitude));if(a.length===0)return{latitude:0,longitude:0,zoom:be};let l=a[0].latitude,c=a[0].latitude,m=a[0].longitude,s=a[0].longitude;for(let L of a)l=Math.min(l,L.latitude),c=Math.max(c,L.latitude),m=Math.min(m,L.longitude),s=Math.max(s,L.longitude);let u=(l+c)/2,d=(m+s)/2;if(a.length===1)return{latitude:u,longitude:d,zoom:Math.min(15,r)};let b=Math.max(64,e-n*2),x=Math.max(64,o-n*2);for(let L=r;L>=be;L-=1){let S=re(l,m,L),v=re(c,s,L);if(Math.abs(v.x-S.x)<=b&&Math.abs(v.y-S.y)<=x)return{latitude:u,longitude:d,zoom:L}}return{latitude:u,longitude:d,zoom:be}}function Be(t,e,o={}){if(!t||!e||!Number.isFinite(e.latitude)||!Number.isFinite(e.longitude))return null;let n=t.ownerDocument||globalThis.document,r=n.defaultView||globalThis,a=o.interactive!==!1,l=a&&o.wheelZoom!==!1,c=Ct(n),m=e.latitude,s=e.longitude,u=Math.max(be,Math.min(zt,Math.round(o.zoom??14))),d=[],b=null,x=!1,L=0,S=!1,v=i=>Math.max(be,Math.min(zt,i));function j(){try{return r.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches===!0}catch{return!1}}t.replaceChildren(),t.classList.add("slippy-map");let y=n.createElement("div");y.className="slippy-map__viewport",y.setAttribute("role","application"),y.setAttribute("aria-label",o.ariaLabel||"Interactive map. Use arrow keys to pan, plus and minus to zoom."),a&&(y.tabIndex=0);let E=n.createElement("div");E.className="slippy-map__tiles",E.setAttribute("aria-hidden","true");let P=n.createElementNS(Ht,"svg");P.setAttribute("class","slippy-map__route-layer"),P.setAttribute("aria-hidden","true");let O=n.createElementNS(Ht,"path");O.setAttribute("class","slippy-map__route-line"),P.appendChild(O);let U=n.createElement("div");U.className="slippy-map__markers";let $=n.createElement("div");$.className="slippy-map__popup",$.hidden=!0,y.appendChild(E),y.appendChild(P),y.appendChild(U),y.appendChild($),t.appendChild(y);let F={directions:o.popupLabels?.directions||"Directions",details:o.popupLabels?.details||"Details",website:o.popupLabels?.website||"Website",call:o.popupLabels?.call||"Call",open:o.popupLabels?.open||"Open",closed:o.popupLabels?.closed||"Closed"},D=null,g=null,M=n.createElement("p");if(M.className="slippy-map__attribution",c.provider==="mapbox"){let i=n.createElement("a");i.href="https://www.mapbox.com/about/maps/",i.target="_blank",i.rel="noopener noreferrer",i.textContent="Mapbox";let f=n.createElement("a");f.href="https://www.openstreetmap.org/copyright",f.target="_blank",f.rel="noopener noreferrer",f.textContent="OpenStreetMap",M.append("\xA9 "),M.appendChild(i),M.append(" \xA9 "),M.appendChild(f)}else{let i=n.createElement("a");i.href="https://www.openstreetmap.org/copyright",i.target="_blank",i.rel="noopener noreferrer",i.textContent="OpenStreetMap",M.append("\xA9 "),M.appendChild(i),M.append(" contributors")}y.appendChild(M);let N=null,H=null;if(a){let i=n.createElement("div");i.className="slippy-map__controls",N=n.createElement("button"),N.type="button",N.className="slippy-map__zoom-btn",N.setAttribute("aria-label","Zoom in"),N.textContent="+",H=n.createElement("button"),H.type="button",H.className="slippy-map__zoom-btn",H.setAttribute("aria-label","Zoom out"),H.textContent="\u2212",i.appendChild(N),i.appendChild(H
4),y.appendChild(i)}let A=new Map,T=new Map,G=new Map,C=0,z=160,W=100,q=null,Y=!1;function k(){if(Y&&q)return q;let i=y.clientWidth||t.clientWidth||480,f=y.clientHeight||t.clientHeight||320;return q={w:i,h:f},q}function R(i){S||(S=!0,o.onMapUnavailable?.(i))}function B(i){return!!i?.classList.contains("slippy-map__tile--failed")}function K(){if(S)return;let i=v(Math.round(u)),f=re(m,s,i),h="".concat(i,"/").concat(Math.floor(f.x/ae),"/").concat(Math.floor(f.y/ae));if(B(A.get(h))){R("center");return}let{firstX:w,lastX:_,firstY:p,lastY:I}=ze(i),V=0,ee=0;for(let oe=p;oe<=I;oe+=1)for(let pe=w;pe<=_;pe+=1){let Q=A.get("".concat(i,"/").concat(pe,"/").concat(oe));Q&&(V+=1,B(Q)&&(ee+=1))}V>=4&&ee>=Math.min(4,V)&&R("tiles")}function J(i,f,h){let w="".concat(i,"/").concat(f,"/").concat(h),_=A.get(w);if(_)return _;let p=n.createElement("img");return p._tz=i,p._tx=f,p._ty=h,p.className="slippy-map__tile",p.alt="",p.draggable=!1,p.decoding="async",p.width=ae,p.height=ae,p.style.zIndex=String(i),p.style.display="none",p.addEventListener("load",()=>{p.classList.add("slippy-map__tile--loaded")},{once:!0}),p.addEventListener("error",()=>{p.classList.add("slippy-map__tile--failed"),K()},{once:!0}),p.src=c.url(i,f,h),A.set(w,p),G.set(w,C),E.appendChild(p),p}function Z(i,f,h,w,_){let p=2**(u-i),I=ae*p;return{x:f*I-w,y:h*I-_,span:I,scale:p}}function ie(i,f,h){let w=h&&f.scale===1;i.style.zIndex=String(h?W:i._tz),i.style.transform=w?"translate(".concat(Math.round(f.x),"px, ").concat(Math.round(f.y),"px)"):"translate(".concat(f.x,"px, ").concat(f.y,"px) scale(").concat(f.scale,")"),i.style.display==="none"&&(i.style.display="")}function ze(i){let{w:f,h}=k(),w=re(m,s,i),_=w.x-f/2,p=w.y-h/2,I=2**i-1;return{firstX:Math.max(0,Math.floor(_/ae)-1),lastX:Math.min(I,Math.floor((_+f)/ae)+1),firstY:Math.max(0,Math.floor(p/ae)-1),lastY:Math.min(I,Math.floor((p+h)/ae)+1)}}function Xt(i){let f=v(Math.round(i)),{firstX:h,lastX:w,firstY:_,lastY:p}=ze(f);for(let I=_;I<=p;I+=1)for(let V=h;V<=w;V+=1)J(f,V,I)}function Ue(){if(x)return;C+=1;let{w:i,h:f}=k(),h=v(Math.round(u)),w=h===u,_=re(m,s,u),p=_.x-i/2,I=_.y-f/2,{firstX:V,lastX:ee,firstY:oe,lastY:pe}=ze(h);for(let Q=oe;Q<=pe;Q+=1)for(let ne=V;ne<=ee;ne+=1){let X=J(h,ne,Q);ie(X,Z(h,ne,Q,p,I),!0),G.set("".concat(h,"/").concat(ne,"/").concat(Q),C)}K();for(let[Q,ne]of A){if(G.get(Q)===C)continue;let X=ne,te=Z(X._tz,X._tx,X._ty,p,I);te.x<i&&te.x+te.span>0&&te.y<f&&te.y+te.span>0&&X.classList.contains("slippy-map__tile--loaded")?(ie(X,te,!1),G.set(Q,C)):X.style.display!=="none"&&(X.style.display="none")}if(A.size>z){let Q=[...G.entries()].sort((X,te)=>X[1]-te[1]),ne=A.size-z;for(let[X,te]of Q){if(ne<=0||te===C)break;A.get(X)?.remove(),A.delete(X),G.delete(X),ne-=1}}for(let Q of d){let ne=T.get(Q.id);if(!ne)continue;let X=re(Q.latitude,Q.longitude,u),te=X.x-p,We=X.y-I;ne.style.transform=w?"translate(".concat(Math.round(te),"px, ").concat(Math.round(We),"px)"):"translate(".concat(te,"px, ").concat(We,"px)")}Qt(p,I),ct()}function Qt(i,f){let h=D?.coordinates;if(!h||h.length<2){O.setAttribute("d","");return}let w="",_=!0;for(let p=0;p<h.length;p+=1){let I=h[p][0],V=h[p][1];if(!Number.isFinite(I)||!Number.isFinite(V))continue;let ee=re(V,I,u);w+="".concat(_?"M":"L").concat((ee.x-i).toFixed(1)," ").concat((ee.y-f).toFixed(1)),_=!1}O.setAttribute("d",w)}function le(){if(L)return;let i=r.requestAnimationFrame;typeof i=="function"?L=i(()=>{L=0,Ue()}):Ue()}function ct(){if($.hidden||!b)return;let i=d.find(p=>p.id===b);if(!i){$.hidden=!0;return}let{w:f,h}=k(),w=re(m,s,u),_=re(i.latitude,i.longitude,u);$.style.left="".concat(Math.round(_.x-(w.x-f/2)),"px"),$.style.top="".concat(Math.round(_.y-(w.y-h/2)),"px")}function Zt(i){let f=i.replace(/[^\d+]/g,"");return f.replace(/\D/g,"").length>=5?"tel:".concat(f):""}function De(){if(!g)return;let i=D&&D.destinationId&&D.destinationId===b&&D.etaLabel||"";g.textContent=i,g.hidden=!i}function Kt(i){$.replaceChildren(),g=null;let f=n.createElement("p");if(f.className="slippy-map__popup-name",f.textContent=i.name,$.appendChild(f),i.category){let p=n.createElement("p");p.className="slippy-map__popup-category",p.textContent=i.category,$.appendChild(p)}if(i.address){let p=n.createElement("p");p.className="slippy-map__popup-address",p.textContent=i.address,$.appendChild(p)}let h=Ae(i.openingHours,new Date,i.longitude);if(h.openNow!==null||h.todayHours){let p=n.createElement("p");if(p.className="slippy-map__popup-hours",h.openNow!==null){let I=n.createElement("span");I.className="slippy-map__popup-status slippy-map__popup-status--".concat(h.openNow?"open":"closed"),I.textContent=h.openNow?F.open:F.closed,p.appendChild(I)}if(h.todayHours){let I=n.createElement("span");I.textContent="".concat(h.openNow!==null?" \xB7 ":"").concat(h.todayHours),p.appendChild(I)}$.appendChild(p)}g=n.createElement("p"),g.className="slippy-map__popup-eta",g.hidden=!0,$.appendChild(g);let w=n.createElement("p");if(w.className="slippy-map__popup-links",i.directionsUrl){let p=n.createElement("a");p.href=i.directionsUrl,p.target="_blank",p.rel="noopener noreferrer",p.textContent=F.directions,w.appendChild(p)}if(i.website&&/^https?:\/\//i.test(i.website)){let p=n.createElement("a");p.href=i.website,p.target="_blank",p.rel="noopener noreferrer",p.textContent=F.website,w.appendChild(p)}let _=i.phone?Zt(i.phone):"";if(_){let p=n.createElement("a");p.href=_,p.textContent=F.call,w.appendChild(p)}if(i.externalUrl){let p=n.createElement("a");p.href=i.externalUrl,p.target="_blank",p.rel="noopener noreferrer",p.textContent=F.details,w.appendChild(p)}w.childNodes.length>0&&$.appendChild(w),$.hidden=!1,De(),ct()}function Ce(){D=null,O.setAttribute("d",""),De()}function Jt(i){if(!i||!Array.isArray(i.coordinates)||i.coordinates.length<2){Ce();return}D=i,le(),De()}function je(i,{openPopup:f=!0}={}){Ce(),b=i;for(let[w,_]of T)_.classList.toggle("slippy-map__marker--selected",w===i);let h=i&&d.find(w=>w.id===i)||null;h&&f?(ut(h.latitude,h.longitude),Kt(h)):h||($.hidden=!0),o.onMarkerSelect?.(h)}function en(i){d=(i||[]).filter(f=>f&&Number.isFinite(f.latitude)&&Number.isFinite(f.longitude));for(let f of T.values())f.remove();T.clear(),$.hidden=!0,b=null,Ce(),d.forEach((f,h)=>{let w=n.createElement("button");w.type="button",w.className="slippy-map__marker",w.setAttribute("aria-label",Ln(f,h,d.length)),w.dataset.markerId=f.id,w.style.setProperty("--marker-delay","".concat(Math.min(h,8)*70,"ms"));let _=n.createElement("span");_.className="slippy-map__marker-pin",_.setAttribute("aria-hidden","true"),_.textContent=String(h+1),w.appendChild(_),w.addEventListener("click",p=>{p.stopPropagation(),je(f.id)}),w.addEventListener("pointerenter",()=>o.onMarkerHover?.(f)),w.addEventListener("pointerleave",()=>o.onMarkerHover?.(null)),T.set(f.id,w),U.appendChild(w)}),le()}function ut(i,f,h){fe=void 0,Number.isFinite(i)&&Number.isFinite(f)&&(m=i,s=f),h!==void 0&&Number.isFinite(h)&&(Le(),u=v(Math.round(h))),le()}function Ge(i,f){let h=v(i);if(h!==u){if(f){let{w,h:_}
4=k(),p=re(m,s,u),I={x:p.x-w/2+f.x,y:p.y-_/2+f.y},V=st(I.x,I.y,u),ee=re(V.latitude,V.longitude,h),oe=st(ee.x-f.x+w/2,ee.y-f.y+_/2,h);m=oe.latitude,s=oe.longitude}u=h,le()}}let ce=0,de=u,fe;function Le(){ce&&(r.cancelAnimationFrame?.(ce),ce=0)}function pt(){if(ce=0,x)return;let i=de-u;if(Math.abs(i)<.02){Ge(de,fe),fe=void 0;return}Ge(u+i*.25,fe),ce=r.requestAnimationFrame(pt)}function Ye(i,f){de=v(i),fe=f,Xt(de);let h=r.requestAnimationFrame;if(typeof h!="function"||j()){Le(),Ge(de,f),fe=void 0;return}ce||(ce=h(pt))}function tn(){return Math.round(ce?de:u)}function ge(i,f){Ye(tn()+i,f)}function we(i,f){let h=re(m,s,u),w=st(h.x+i,h.y+f,u);m=w.latitude,s=w.longitude,le()}let mt=[];function se(i,f,h,w){i.addEventListener(f,h,w),mt.push(()=>i.removeEventListener(f,h,w))}if(a){let i=!1,f=0,h=0;se(y,"pointerdown",_=>{if(!_.target?.closest(".slippy-map__marker, .slippy-map__popup, .slippy-map__controls, .slippy-map__attribution")){i=!0,f=_.clientX,h=_.clientY,y.classList.add("slippy-map__viewport--dragging");try{y.setPointerCapture?.(_.pointerId)}catch{}}}),se(y,"pointermove",_=>{if(!i)return;let p=f-_.clientX,I=h-_.clientY;f=_.clientX,h=_.clientY,we(p,I)});let w=()=>{i=!1,y.classList.remove("slippy-map__viewport--dragging")};if(se(y,"pointerup",w),se(y,"pointercancel",w),se(y,"pointerleave",w),se(y,"dblclick",_=>{_.preventDefault();let p=y.getBoundingClientRect?.(),I=p?{x:_.clientX-p.left,y:_.clientY-p.top}:void 0;ge(1,I)}),l){let _=0;se(y,"wheel",p=>{p.preventDefault();let I=p.deltaMode===1?p.deltaY*20:p.deltaMode===2?p.deltaY*400:p.deltaY;if(_+=I,Math.abs(_)<50)return;let V=Math.max(1,Math.min(3,Math.round(Math.abs(_)/100))),ee=_<0?1:-1;_=0;let oe=y.getBoundingClientRect?.(),pe=oe?{x:p.clientX-oe.left,y:p.clientY-oe.top}:void 0;ge(ee*V,pe)},{passive:!1})}se(y,"keydown",_=>{switch(_.key){case"ArrowUp":_.preventDefault(),we(0,-72);break;case"ArrowDown":_.preventDefault(),we(0,72);break;case"ArrowLeft":_.preventDefault(),we(-72,0);break;case"ArrowRight":_.preventDefault(),we(72,0);break;case"+":case"=":_.preventDefault(),ge(1);break;case"-":case"_":_.preventDefault(),ge(-1);break;case"Escape":je(null);break;default:break}}),N&&se(N,"click",()=>ge(1)),H&&se(H,"click",()=>ge(-1))}let qe=null,dt=r.ResizeObserver;typeof dt=="function"&&(Y=!0,qe=new dt(()=>{q=null,le()}),qe.observe(y)),Ue();function ft(i,f,h,w){Le(),m=i,s=f;let _=r.requestAnimationFrame;if(w&&typeof _=="function"&&!j()&&h-1.4>be){u=v(h-1.4),le(),Ye(h);return}u=v(h),le()}return{setView:ut,fitBounds(i,{animate:f=!1}={}){let[h,w,_,p]=i;if(![h,w,_,p].every(Number.isFinite))return;let{w:I,h:V}=k(),ee=Ut([{latitude:h,longitude:_},{latitude:w,longitude:p}],I,V,{maxZoom:17});ft((h+w)/2,(_+p)/2,ee.zoom,f)},fitMarkers({animate:i=!1}={}){let{w:f,h}=k(),w=Ut(d,f,h);d.length>0&&ft(w.latitude,w.longitude,w.zoom,i)},zoomTo(i){Ye(i)},setMarkers:en,selectMarker:je,highlightMarker(i){for(let[f,h]of T)h.classList.toggle("slippy-map__marker--hover",f===i)},setRoute:Jt,clearRoute:Ce,getZoom:()=>u,destroy(){x=!0,Le();let i=r.cancelAnimationFrame;L&&typeof i=="function"&&i(L),qe?.disconnect();for(let f of mt)f();A.clear(),T.clear(),t.replaceChildren(),t.classList.remove("slippy-map")}}}function Dt(t,e=globalThis){if(!t||t.hidden||t.getAttribute("aria-hidden")==="true")return!1;let o=e.getComputedStyle?.(t);return o?o.display!=="none"&&o.visibility!=="hidden":!0}function Oe(t,e,o=globalThis){if(!t)return e(),()=>{};if(Dt(t,o))return e(),()=>{};if(typeof o.IntersectionObserver!="function")return e(),()=>{};let n,r=!1,a=()=>{r||Dt(t,o)&&(n?.disconnect(),n=null,e())};return n=new o.IntersectionObserver(l=>{l.some(c=>c.isIntersecting)&&a()},{threshold:0}),n.observe(t),()=>{r=!0,n?.disconnect(),n=null}}function Fe(t,e,o,n,r,a){let l=Ae(o.openingHours,a,o.longitude);if(l.openNow===null&&!l.todayHours)return;let c=t.createElement("span");if(c.className="".concat(n,"__place-hours"),l.openNow!==null){let m=t.createElement("span");m.className="".concat(n,"__place-status ").concat(n,"__place-status--").concat(l.openNow?"open":"closed"),m.textContent=l.openNow?r.open:r.closed,c.appendChild(m)}if(l.todayHours){let m=t.createElement("span");m.className="".concat(n,"__place-hours-text"),m.textContent="".concat(l.openNow!==null?" \xB7 ":"").concat(l.todayHours),c.appendChild(m)}e.appendChild(c)}function Nn(t){let e=t.replace(/[^\d+]/g,"");return e.replace(/\D/g,"").length>=5?"tel:".concat(e):""}function He(t,e,o,n){let r=[];if(e.website&&/^https?:\/\//i.test(e.website)){let l=t.createElement("a");l.href=e.website,l.target="_blank",l.rel="noopener noreferrer",l.className="".concat(o,"__place-link ").concat(o,"__place-link--website"),l.textContent=n.website,r.push(l)}let a=e.phone?Nn(e.phone):"";if(a){let l=t.createElement("a");l.href=a,l.className="".concat(o,"__place-link ").concat(o,"__place-link--call"),l.textContent=n.call,r.push(l)}return r}function jt(t,e){let{elements:o,state:n,config:r}=t,a=o.mapsGrid;if(!a)return;let l=null,c=null,m=null;function s(g,M={}){return e.beamo?.i18n?.t?.(g,M)||e.global.Beamo?.i18n?.t?.(g,M)||g}
4function u(){return{open:s("mapsPanel.openNow"),closed:s("mapsPanel.closedNow"),website:s("mapsPanel.website"),call:s("mapsPanel.call")}}function d(){return n.currentType==="maps"}function b(){let g=a.querySelector("#maps-status-announcer");return g||(g=e.global.document.createElement("div"),g.id="maps-status-announcer",g.className="sr-only",g.setAttribute("role","status"),g.setAttribute("aria-live","polite"),g.setAttribute("aria-atomic","true"),a.insertBefore(g,a.firstChild)),g}function x(g,{assertive:M=!1}={}){let N=b();N.setAttribute("aria-live",M?"assertive":"polite"),N.textContent=g}function L(){l&&(l.abort(),l=null),m?.(),m=null,c?.destroy?.(),c=null,a.replaceChildren(),a.hidden=!0,a.setAttribute("aria-busy","false")}function S(g,{isError:M=!1}={}){c?.destroy?.(),c=null,a.replaceChildren(),b(),a.hidden=!1;let N=e.global.document.createElement("p");N.className=M?"maps-panel__message maps-panel__message--error":"maps-panel__message",N.setAttribute("role",M?"alert":"status"),N.textContent=g,a.appendChild(N),x(g,{assertive:M})}function v(g){let M=Number.parseFloat(String(g?.latitude??"")),N=Number.parseFloat(String(g?.longitude??""));return!Number.isFinite(M)||!Number.isFinite(N)||M===0&&N===0?null:{latitude:M,longitude:N,city:String(g?.city??"").trim()}}function j(){return v(e.beamo.cachedPreciseLocation?.()??e.beamo.cachedIpLocation?.({allowLegacyCoordinates:!0}))}function y(g,M){return M?g?ue(g.latitude,g.longitude,M.latitude,M.longitude)>1:!0:!1}function E(g,M,N,H){let A=e.global.document,T=A.createElement("li");T.className="maps-panel__place",T.dataset.placeId=g.id,T.style.setProperty("--place-delay","".concat(Math.min(M,10)*50,"ms")),T.addEventListener("pointerenter",()=>c?.highlightMarker(g.id)),T.addEventListener("pointerleave",()=>c?.highlightMarker(null));let G=A.createElement("button");G.type="button",G.className="maps-panel__place-button",G.addEventListener("click",()=>H(g));let C=A.createElement("span");C.className="maps-panel__place-index",C.setAttribute("aria-hidden","true"),C.textContent=String(M+1),G.appendChild(C);let z=A.createElement("span");z.className="maps-panel__place-body";let W=A.createElement("span");W.className="maps-panel__place-name",W.textContent=g.name,z.appendChild(W);let q=[];if(g.category&&q.push(g.category),N){let B=ue(N.latitude,N.longitude,g.latitude,g.longitude),K=xe(B,he(e.global));K&&B<=150&&q.push(K)}if(q.length>0){let B=A.createElement("span");B.className="maps-panel__place-meta",B.textContent=q.join(" \xB7 "),z.appendChild(B)}if(g.address){let B=A.createElement("span");B.className="maps-panel__place-address",B.textContent=g.address,z.appendChild(B)}Fe(A,z,g,"maps-panel",u(),new Date),G.appendChild(z),T.appendChild(G);let Y=A.createElement("span");Y.className="maps-panel__place-links";let k=A.createElement("a");k.href=g.directionsUrl,k.target="_blank",k.rel="noopener noreferrer",k.className="maps-panel__place-link",k.textContent=s("mapsPanel.directions"),Y.appendChild(k);for(let B of He(A,g,"maps-panel",u()))Y.appendChild(B);let R=A.createElement("a");return R.href=g.externalUrl,R.target="_blank",R.rel="noopener noreferrer",R.className="maps-panel__place-link",R.textContent=s("mapsPanel.details"),Y.appendChild(R),T.appendChild(Y),T}function P(g,M){let N=e.global.document;a.replaceChildren(),b(),a.hidden=!1;let H=N.createElement("div");H.className=M.length>1?"maps-panel__layout":"maps-panel__layout maps-panel__layout--single";let A=j(),T=null;if(M.length>1){let k=N.createElement("div");k.className="maps-panel__list-host";let R=N.createElement("h2");R.className="maps-panel__list-heading",R.textContent=s("mapsPanel.placesFor",{term:g}),k.appendChild(R);let B=N.createElement("ol");B.className="maps-panel__list",B.setAttribute("aria-label",s("mapsPanel.placesFor",{term:g})),k.appendChild(B),H.appendChild(k),T=B}let G=N.createElement("div");G.className="maps-panel__map-host",H.appendChild(G),a.appendChild(H);function C(k){if(T)for(let R of Array.from(T.children)){let B=!!k&&R.dataset.placeId===k;R.classList.toggle("maps-panel__place--selected",B),B&&typeof R.scrollIntoView=="function"&&R.scrollIntoView({block:"nearest"})}}c?.destroy?.();let z=new Map,W=0;async function q(k){if(!k||!c)return;let R=j();if(!R||ue(R.latitude,R.longitude,k.latitude,k.longitude)>
4400)return;let B=z.get(k.id);if(B){c.setRoute(B);return}let K=++W,J=c,Z=await Re(e.beamo,r,R,{latitude:k.latitude,longitude:k.longitude});if(!Z||K!==W||c!==J)return;let ie={coordinates:Z.coordinates,destinationId:k.id,etaLabel:Ie(Z.durationSeconds,Z.distanceMeters,he(e.global))};z.set(k.id,ie),J.setRoute(ie)}if(c=Be(G,M[0],{zoom:M.length===1?15:13,ariaLabel:s("mapsPanel.mapAriaLabel",{term:g}),popupLabels:{directions:s("mapsPanel.directions"),details:s("mapsPanel.details"),website:s("mapsPanel.website"),call:s("mapsPanel.call"),open:s("mapsPanel.openNow"),closed:s("mapsPanel.closedNow")},onMarkerSelect:k=>{C(k?k.id:null),q(k)},onMarkerHover:k=>{if(T)for(let R of Array.from(T.children))R.classList.toggle("maps-panel__place--hover",!!k&&R.dataset.placeId===k.id)},onMapUnavailable:()=>{d()&&(a.setAttribute("aria-busy","false"),S(s("mapsPanel.tilesFailed"),{isError:!0}))}}),!c){S(s("mapsPanel.tilesFailed"),{isError:!0});return}c.setMarkers(M.map(k=>({id:k.id,latitude:k.latitude,longitude:k.longitude,name:k.name,category:k.category,address:k.address,externalUrl:k.externalUrl,directionsUrl:k.directionsUrl,phone:k.phone,website:k.website,openingHours:k.openingHours})));let Y=Ft(M);if(Y.mode==="top"&&Y.place?Y.place.bounds?c.fitBounds(Y.place.bounds,{animate:!0}):(c.setView(Y.place.latitude,Y.place.longitude,11),c.zoomTo(13)):M.length>1&&c.fitMarkers({animate:!0}),T){let k=new Map(M.map(R=>[R.id,R]));M.forEach((R,B)=>{T.appendChild(E(R,B,A,K=>{let J=k.get(K.id);J?.bounds&&c?.fitBounds(J.bounds),c?.selectMarker(K.id)}))})}}async function O(g,M,N){let H=Ee(g,M?.city||""),A=await $e(e.beamo,r,H,{limit:8,proximity:M?[M.longitude,M.latitude]:null});if(N.aborted||!d())return null;if(A.length===0){let T=await vt(e.beamo,r,H);if(N.aborted||!d())return null;if(T){let G=xt(T)||T.name;A=[{id:"".concat(T.latitude.toFixed(5),",").concat(T.longitude.toFixed(5)),name:G,label:G,category:"",address:"",latitude:T.latitude,longitude:T.longitude,importance:0,bounds:null,externalUrl:"https://www.openstreetmap.org/?mlat=".concat(T.latitude,"&mlon=").concat(T.longitude,"#map=14/").concat(T.latitude,"/").concat(T.longitude),directionsUrl:"https://www.openstreetmap.org/directions?from=&to=".concat(T.latitude,"%2C").concat(T.longitude)}]}}return A}function U(g,M){x(M.length>1?s("mapsPanel.loadedPlaces",{count:M.length,term:g}):M[0].label?s("mapsPanel.loaded",{label:M[0].label}):s("mapsPanel.loadedGeneric"))}async function $(g,M,N){let H;try{H=await e.beamo.getPreciseLocation?.({allowPrompt:!0})}catch{return}if(N.aborted||!d())return;let A=v(H);if(!y(M,A))return;let T=await O(g,A,N);!T||T.length===0||N.aborted||!d()||(P(g,T),U(g,T))}async function F(g,M){let N=String(g??"").trim();if(!N){S(s("mapsPanel.emptyQuery"));return}if(!d()||M.aborted)return;a.hidden=!1,a.setAttribute("aria-busy","true"),S(s("mapsPanel.loading"));let H=j(),A=await O(N,H,M);A!==null&&(A.length===0?(a.setAttribute("aria-busy","false"),S(s("mapsPanel.notFound",{term:N}),{isError:!0})):(P(N,A),a.setAttribute("aria-busy","false"),U(N,A)),await $(N,H,M))}function D(g){let M=String(g??"").trim();if(l&&l.abort(),m?.(),m=null,!d())return Promise.resolve();l=new AbortController;let{signal:N}=l;return new Promise(H=>{m=Oe(a,()=>{F(M,N).finally(()=>{N.aborted||H()})},e.global),N.addEventListener("abort",()=>{m?.(),m=null,H()},{once:!0})})}t.loadMapsPanel=D,t.clearMapsPanel=L}var Sn=["impression","expansion","copy","share","save","watch","prefs","provider_failure","fallback_link","retry"],En=new Set(Sn),Pn=new Set(["weatheradvanced","weather","astronomy","sun","airquality","illness","officialdata","tracking","airportops","flight","localvertical","financeintel","stock","macro","sportsintel","sports","conversion","timezone","languagetools","translation","thesaurus","ip","directions","countryfacts","math","definition","local","tool","instant"]),Gt=64,Tn=1500;function An(t){return t?.endpoints?.instantAnalytics||"/PHP/instant_analytics.php"}function Yt(t){let e=t?.flags;return!(e&&e.instantCardAnalytics===!1)}function $n(t){let e=String(t??"").trim().toLowerCase();return Pn.has(e)?e:""}function qt(t,e){let o=[],n=new Set,r=null,a=!1,l=()=>{if(r!==null){try{t.clearTimeout(r)}catch{}r=null}if(o.length===0||!Yt(e)){o=[];return}let u=o.slice(0,Gt);o=[];let d=An(e),b=JSON.stringify({events:u});try{let x=t.navigator;if(typeof x?.sendBeacon=="function"){let L=typeof Blob=="function"?new Blob([b],{type:"application/json"}):b;if(x.sendBeacon(d,L))return}typeof t.fetch=="function"&&t.fetch(d,{method:"POST",credentials:"same-origin",keepalive:!0,headers:{"Content-Type":"application/json"},body:b}).catch(()=>{})}catch{}},c=()=>
4{if(a||typeof t.addEventListener!="function")return;a=!0;let u=()=>l();try{t.addEventListener("pagehide",u),t.addEventListener("visibilitychange",()=>{t.document?.visibilityState==="hidden"&&u()})}catch{}},m=()=>{if(c(),r===null)try{r=t.setTimeout(l,Tn)}catch{l()}};return{report:(u,d)=>{if(!Yt(e))return;let b=$n(u),x=String(d??"").trim().toLowerCase();if(!(!b||!En.has(x))){if(x==="impression"){if(n.has(b))return;n.add(b)}o.length>=Gt&&o.shift(),o.push({kind:b,action:x}),m()}},flush:l}}function it(t){return t?t.charAt(0).toUpperCase()+t.slice(1):""}function Rn(t){return t.replace(/[\p{L}'-]+/gu,e=>it(e))}function ye(t,e){let o=t.createElement("span");return o.className="beamo-skeleton ".concat(e),o.setAttribute("aria-hidden","true"),o}function Wt(t){t.classList.remove("maps-pack--skeleton"),t.removeAttribute("aria-busy"),t.removeAttribute("aria-live"),t.removeAttribute("role")}function In(t,e,o){e.replaceChildren(),e.hidden=!1,e.classList.add("maps-pack--skeleton"),e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-busy","true");let n=t.createElement("span");n.className="sr-only",n.textContent="Loading local results for ".concat(o),e.appendChild(n);let r=t.createElement("div");r.className="maps-pack__skeleton-head",r.appendChild(ye(t,"maps-pack__skeleton-title")),r.appendChild(ye(t,"maps-pack__skeleton-pill")),e.appendChild(r);let a=t.createElement("div");a.className="maps-pack__skeleton-layout",a.appendChild(ye(t,"maps-pack__skeleton-map"));let l=t.createElement("div");l.className="maps-pack__skeleton-list";for(let c=0;c<4;c+=1){let m=t.createElement("div");m.className="maps-pack__skeleton-row",m.appendChild(ye(t,"maps-pack__skeleton-index"));let s=t.createElement("div");s.className="maps-pack__skeleton-text",s.appendChild(ye(t,"maps-pack__skeleton-name")),s.appendChild(ye(t,"maps-pack__skeleton-meta")),m.appendChild(s),l.appendChild(m)}a.appendChild(l),e.appendChild(a)}function Vt(t,e){let{elements:o,state:n,config:r}=t,a=o.mapsPack,l=null,c=null,m=null,s=qt(e.global,t.config||e.config||null);function u(y,E={}){return e.beamo?.i18n?.t?.(y,E)||e.global.Beamo?.i18n?.t?.(y,E)||y}function d(){return{open:u("mapsPanel.openNow"),closed:u("mapsPanel.closedNow"),website:u("mapsPanel.website"),call:u("mapsPanel.call")}}function b(){l&&(l.abort(),l=null),m?.(),m=null,c?.destroy?.(),c=null,a&&(a.replaceChildren(),Wt(a),a.hidden=!0)}function x(y){let E=Number.parseFloat(String(y?.latitude??"")),P=Number.parseFloat(String(y?.longitude??""));return!Number.isFinite(E)||!Number.isFinite(P)||E===0&&P===0?null:{latitude:E,longitude:P,city:String(y?.city??"").trim()}}function L(){return x(e.beamo.cachedPreciseLocation?.()??e.beamo.cachedIpLocation?.({allowLegacyCoordinates:!0}))}function S(y,E){return E?y?ue(y.latitude,y.longitude,E.latitude,E.longitude)>1:!0:!1}function v(y,E){if(!a)return;let P=e.global.document;a.replaceChildren(),Wt(a);let O=P.createElement("div");O.className="maps-pack__head";let U=P.createElement("span");U.className="maps-pack__title-group";let $=P.createElement("h2");$.className="maps-pack__title",$.textContent=u("mapsPack.title"),U.appendChild($);let F=ke(y);if(F){let C=F.locality?Rn(F.locality):Et(y)?u("mapsPack.nearYou"):"",z=P.createElement("span");z.className="maps-pack__context",z.textContent=C?"".concat(it(F.category)," \xB7 ").concat(C):it(F.category),U.appendChild(z)}O.appendChild(U);let D=P.createElement("button");D.type="button",D.className="maps-pack__open-maps",D.textContent=u("mapsPack.openMaps"),D.addEventListener("click",()=>{s.report("local","expansion"),t.selectSearchType?.("maps")}),O.appendChild(D),a.appendChild(O);let g=P.createElement("div");g.className="maps-pack__layout";let M=P.createElement("div");M.className="maps-pack__map",g.appendChild(M);let N=P.createElement("ol");N.className="maps-pack__list",N.setAttribute("aria-label",u("mapsPack.title")),g.appendChild(N),a.appendChild(g),c?.destroy?.();let H=new Map,A=0;async function T(C){if(!C||!c)return;let z=L();if(!z||ue(z.latitude,z.longitude,C.latitude,C.longitude)>400)return;let W=H.get(C.id);if(W){c.setRoute(W);return}let q=++A,Y=c,k=await Re(e.beamo,r,z,{latitude:C.latitude,longitude:C.longitude});if(!k||q!==A||c!==Y)return;let R={coordinates:k.coordinates,destinationId:C.id,etaLabel:Ie(k.durationSeconds,k.distanceMeters,he(e.global))};
4H.set(C.id,R),Y.setRoute(R)}if(c=Be(M,E[0],{zoom:12,ariaLabel:u("mapsPack.mapAriaLabel",{term:y}),popupLabels:{directions:u("mapsPanel.directions"),details:u("mapsPanel.details"),website:u("mapsPanel.website"),call:u("mapsPanel.call"),open:u("mapsPanel.openNow"),closed:u("mapsPanel.closedNow")},onMarkerSelect:C=>{for(let z of Array.from(N.children))z.classList.toggle("maps-pack__place--selected",!!C&&z.dataset.placeId===C.id);T(C)},onMarkerHover:C=>{for(let z of Array.from(N.children))z.classList.toggle("maps-pack__place--hover",!!C&&z.dataset.placeId===C.id)},onMapUnavailable:()=>{b()}}),!c){b();return}s.report("local","impression"),c.setMarkers(E.map(C=>({id:C.id,latitude:C.latitude,longitude:C.longitude,name:C.name,category:C.category,address:C.address,externalUrl:C.externalUrl,directionsUrl:C.directionsUrl,phone:C.phone,website:C.website,openingHours:C.openingHours}))),E.length>1?c.fitMarkers({animate:!0}):c.zoomTo(14);let G=L();E.forEach((C,z)=>{let W=P.createElement("li");W.className="maps-pack__place",W.dataset.placeId=C.id,W.style.setProperty("--place-delay","".concat(120+z*60,"ms")),W.addEventListener("pointerenter",()=>c?.highlightMarker(C.id)),W.addEventListener("pointerleave",()=>c?.highlightMarker(null));let q=P.createElement("button");q.type="button",q.className="maps-pack__place-button",q.addEventListener("click",()=>c?.selectMarker(C.id));let Y=P.createElement("span");Y.className="maps-pack__place-index",Y.setAttribute("aria-hidden","true"),Y.textContent=String(z+1),q.appendChild(Y);let k=P.createElement("span");k.className="maps-pack__place-body";let R=P.createElement("span");R.className="maps-pack__place-name",R.textContent=C.name,k.appendChild(R);let B=[];if(C.category&&B.push(C.category),G){let Z=ue(G.latitude,G.longitude,C.latitude,C.longitude),ie=xe(Z,he(e.global));ie&&Z<=150&&B.push(ie)}if(C.address&&B.push(C.address),B.length>0){let Z=P.createElement("span");Z.className="maps-pack__place-meta",Z.textContent=B.join(" \xB7 "),k.appendChild(Z)}Fe(P,k,C,"maps-pack",d(),new Date),q.appendChild(k),W.appendChild(q);let K=P.createElement("span");K.className="maps-pack__place-links";let J=P.createElement("a");J.href=C.directionsUrl,J.target="_blank",J.rel="noopener noreferrer",J.className="maps-pack__place-link maps-pack__place-link--directions",J.textContent=u("mapsPanel.directions"),K.appendChild(J);for(let Z of He(P,C,"maps-pack",d()))K.appendChild(Z);W.appendChild(K),N.appendChild(W)}),a.hidden=!1}function j(y){if(t.applyLayoutGate?.("maps",()=>b())){b();return}if(b(),!a)return;let E=String(y??"").trim();if(!E||n.currentOffset!==0||!At(E))return;l=new AbortController;let{signal:P}=l;a.hidden=!1,a.replaceChildren(),In(e.global.document,a,E);let O=async $=>{let F=Ee(E,$?.city||""),D=await $e(e.beamo,r,F,{limit:4,proximity:$?[$.longitude,$.latitude]:null});return P.aborted?null:D},U=async $=>{let F;try{F=await e.beamo.getPreciseLocation?.({allowPrompt:!1})}catch{return}if(P.aborted||n.currentType!=="web")return;let D=x(F);if(!S($,D))return;let g=await O(D);!g||g.length===0||n.currentType!=="web"||v(E,g)};m=Oe(a,()=>{(async()=>{let $=L(),F=await O($);if(F!==null){if(F.length===0||n.currentType!=="web"){b();return}v(E,F),await U($)}})()},e.global),P.addEventListener("abort",()=>{m?.(),m=null},{once:!0})}t.renderMapsPack=j,t.clearMapsPack=b}var lt=globalThis;lt.Beamo=lt.Beamo||{};lt.Beamo.resultsMapsPack={registerMapsPanel:jt,registerMapsPack:Vt};})();
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.