1(()=>{"use strict";const DARK_STYLE=[{elementType:"geometry",stylers:[{color:"#0f0f10"}]},{elementType:"labels.text.fill",stylers:[{color:"#8d8d8d"}]},{elementType:"labels.text.stroke",stylers:[{color:"#0f0f10"}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#2b2b2b"}]},{featureType:"administrative.country",elementType:"labels.text.fill",stylers:[{color:"#a99c63"}]},{featureType:"poi",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"geometry",stylers:[{color:"#1c1c1e"}]},{featureType:"road",elementType:"geometry.stroke",stylers:[{color:"#141415"}]},{featureType:"road",elementType:"labels.text.fill",stylers:[{color:"#6f6f6f"}]},{featureType:"road.highway",elementType:"geometry",stylers:[{color:"#26241d"}]},{featureType:"transit",stylers:[{visibility:"off"}]},{featureType:"water",elementType:"geometry",stylers:[{color:"#08090a"}]},{featureType:"water",elementType:"labels.text.fill",stylers:[{color:"#3d3d3d"}]}],SVG=body=>'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">'+body+"</svg>",ICONS={directions:SVG('<path d="m3 11 19-9-9 19-2-8-8-2z"/>'),web:SVG('<circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18"/>'),phone:SVG('<path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.79 19.79 0 0 1 2.08 4.18 2 2 0 0 1 4.06 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.22a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/>'),mail:SVG('<rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-10 7L2 7"/>'),clock:SVG('<circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/>'),pin:SVG('<path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"/><circle cx="12" cy="10" r="3"/>'),close:SVG('<path d="M18 6 6 18M6 6l12 12"/>')},CLUSTERER_SRC="https://cdn.jsdelivr.net/npm/@googlemaps/[email protected]/dist/index.umd.js",esc=s=>String(s??"").replace(/[&<>"']/g,c=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[c]),slugify=s=>String(s||"").toLowerCase().normalize("NFD").replace(/[Ì-ͯ]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),haversineKm=(a,b)=>{const dLat=(b.lat-a.lat)*Math.PI/180,dLng=(b.lng-a.lng)*Math.PI/180,h=Math.sin(dLat/2)**2+Math.cos(a.lat*Math.PI/180)*Math.cos(b.lat*Math.PI/180)*Math.sin(dLng/2)**2;return 6371*2*Math.asin(Math.sqrt(h))},formatDistance=km=>km<1?Math.round(km*1e3)+" m":km.toFixed(1)+" km",sanitizeUrl=url=>{if(!url)return null;const t=String(url).trim();return/^javascript:/i.test(t)?null:/^https?:\/\//i.test(t)?t:"https://"+t};class StoreLocatorPro{constructor(root){this.root=root,this.cfg=JSON.parse(root.querySelector("[data-slp-config]").textContent),this.labels=this.cfg.labels||{},this.els={map:root.querySelector("[data-slp-map]"),list:root.querySelector("[data-slp-list]"),chips:root.querySelector("[data-slp-chips]"),count:root.querySelector("[data-slp-count]"),search:root.querySelector("[data-slp-search]"),near:root.querySelector("[data-slp-near]"),notice:root.querySelector("[data-slp-notice]"),loading:root.querySelector("[data-slp-loading]"),error:root.querySelector("[data-slp-error]"),errorMsg:root.querySelector("[data-slp-error-msg]"),toggle:root.querySelector("[data-slp-toggle]"),sheet:root.querySelector("[data-slp-sheet]")},this.stores=[],this.markers=new Map,this.useAdvanced=!!this.cfg.mapId,this.clusterer=null,this.originMarker=null,this.placesService=null,this.lastPlaceSelect=0,this.state={origin:null,country:"all",query:"",selected:null}}async start(){try{this.parseStores(),this.renderChips(),this.bindUI(),this.update(),this.injectJsonLd(),await this.loadMapsApi(),await this.buildMap(),await this.buildMarkers(),this.initSearch(),this.fitToStores(),this.finishLoading(),this.handleDeepLink(),this.autoLocate()}catch(err){console.error("[StoreLocatorPro]",err),this.showError(this.labels.error)}}parseStores(){let arr;try{arr=JSON.parse(this.cfg.storesRaw)}catch(e){throw new Error("Invalid stores JSON: "+e.message)}if(!Array.isArray(arr))throw new Error("Stores JSON must be an array");const seen=new Set;this.stores=arr.filter(s=>s&&s.title).map((s,i)=>{let slug=slugify(s.title)||"store-"+i;for(;seen.has(slug);)slug+="-"+i;seen.add(slug);const coords=s.coords&&s.coords.lat!=null&&s.coords.lng!=null?{lat:Number(s.coords.lat),lng:Number(s.coords.lng)}:null;return{...s,slug,coords,country:this.storeCountry(s),_distKm:null}})}
1storeCountry(s){if(s.country)return String(s.country).trim();const parts=(s.address2||s.address1||"").split(",").map(t=>t.trim()).filter(Boolean);let last=parts[parts.length-1]||"";return last=last.replace(/^\d{4,}\s*/,"").trim(),last||null}visibleStores(){const q=this.state.query.toLowerCase();let list=this.stores.filter(s=>!(this.state.country!=="all"&&s.country!==this.state.country||q&&![s.title,s.address1,s.address2,s.country].filter(Boolean).join(" ").toLowerCase().includes(q)));return this.state.origin&&(list=[...list].sort((a,b)=>a._distKm==null&&b._distKm==null?0:a._distKm==null?1:b._distKm==null?-1:a._distKm-b._distKm)),list}renderChips(){const counts=new Map;if(this.stores.forEach(s=>{s.country&&counts.set(s.country,(counts.get(s.country)||0)+1)}),counts.size<=1)return;const chips=[`<button class="slp__chip is-active" data-country="all">${esc(this.labels.all||"All")}<span class="slp__chip-count">${this.stores.length}</span></button>`];[...counts.entries()].sort((a,b)=>b[1]-a[1]||a[0].localeCompare(b[0])).forEach(([country,n])=>{chips.push(`<button class="slp__chip" data-country="${esc(country)}">${esc(country)}<span class="slp__chip-count">${n}</span></button>`)}),this.els.chips.innerHTML=chips.join("")}cardInner(s){const dirUrl=s.coords?`https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent(s.coords.lat+","+s.coords.lng)}`:null,mapsUrl=this.storeMapsUrl(s),webUrl=sanitizeUrl(s.website),actions=[];dirUrl&&actions.push(`<a class="slp-btn slp-btn--primary" href="${esc(dirUrl)}" target="_blank" rel="noopener">${ICONS.directions}${esc(this.labels.directions||"Directions")}</a>`),webUrl&&actions.push(`<a class="slp-btn" href="${esc(webUrl)}" target="_blank" rel="noopener">${ICONS.web}${esc(this.labels.website||"Website")}</a>`),s.phone&&actions.push(`<a class="slp-btn" href="tel:${esc(String(s.phone).replace(/[^+\d]/g,""))}">${ICONS.phone}${esc(this.labels.call||"Call")}</a>`),s.email&&actions.push(`<a class="slp-btn" href="mailto:${esc(s.email)}">${ICONS.mail}${esc(this.labels.email||"Email")}</a>`),mapsUrl&&actions.push(`<a class="slp-btn" href="${esc(mapsUrl)}" target="_blank" rel="noopener">${ICONS.pin}${esc(this.labels.maps||"Google Maps")}</a>`);const address=[s.address1,s.address2].filter(Boolean).join(", "),distance=s._distKm!=null?`<span class="slp-card__distance">${formatDistance(s._distKm)}</span>`:"",hours=s.hours?`<p class="slp-card__hours">${ICONS.clock}<span>${esc(s.hours)}</span></p>`:"";return`<div class="slp-card__top"><h3 class="slp-card__title">${esc(s.title)}</h3>${distance}</div> 2 <p class="slp-card__address">${esc(address)}</p> 3 ${hours} 4 <div class="slp-card__actions">${actions.join("")}</div>`}cardHtml(s){const selected=this.state.selected===s.slug?" is-selected":"";return`<li class="slp-card${selected}" data-slug="${esc(s.slug)}" tabindex="0" role="button" aria-pressed="${selected?"true":"false"}">${this.cardInner(s)}</li>`}storeMapsUrl(s){const explicit=sanitizeUrl(s.mapsUrl);if(explicit)return explicit;if(s.placeId){const pid=String(s.placeId).trim(),ftid=pid.match(/^0x[0-9a-f]+:(0x[0-9a-f]+)$/i);if(ftid)try{return"https://maps.google.com/?cid="+BigInt(ftid[1]).toString()}catch{}else if(/^[A-Za-z0-9_-]{20,}$/.test(pid))return"https://www.google.com/maps/place/?q=place_id:"+encodeURIComponent(pid)}return s.coords?`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(s.coords.lat+","+s.coords.lng)}`:null}update(){const visible=this.visibleStores();this.els.list.innerHTML=visible.length?visible.map(s=>this.cardHtml(s)).join(""):`<li class="slp__empty">${esc(this.labels.noResults||"No stores match your search.")}</li>`,this.els.count.textContent=(this.labels.results||"{count} stores").replace("{count}",visible.length),this.syncMarkers(visible)}bindUI(){this.els.chips.addEventListener("click",e=>{const chip=e.target.closest("[data-country]");chip&&(this.state.country=chip.dataset.country,this.els.chips.querySelectorAll(".slp__chip").forEach(c=>c.classList.toggle("is-active",c===chip)),this.update())}),this.els.list.addEventListener("click",e=>{if(e.target.closest("a"))return;const card=e.target.closest("[data-slug]");card&&this.onCardActivate(card.dataset.slug)}),this.els.list.addEventListener("keydown",e=>{if(e.key!=="Enter"&&e.key!==" "||e.target.closest("a"))return;const card=e.target.closest("[data-slug]");card&&(e.preventDefault(),this.onCardActivate(card.dataset.slug))}),this.els.search.addEventListener("input",()=>{this.state.query=this.els.search.value.trim(),this.update()}),this.els.near.addEventListener("click",()=>this.locateUser()),this.els.toggle&&this.els.toggle.addEventListener("click",e=>{const btn=e.target.closest("[data-view]");
4btn&&this.setView(btn.dataset.view)}),this.els.sheet&&this.els.sheet.addEventListener("click",e=>{e.target.closest("[data-slp-sheet-close]")&&this.closeSheet()})}onCardActivate(slug){this.selectStore(slug,{pan:!0}),window.matchMedia("(max-width: 989px)").matches&&this.setView("map")}setView(view){this.root.classList.toggle("slp--view-list",view==="list"),this.els.toggle&&this.els.toggle.querySelectorAll("[data-view]").forEach(b=>b.classList.toggle("is-active",b.dataset.view===view)),view==="list"&&this.closeSheet()}openSheet(store){this.els.sheet&&(this.els.sheet.innerHTML=`<button type="button" class="slp__sheet-close" data-slp-sheet-close aria-label="Close">${ICONS.close}</button>`+this.cardInner(store),this.els.sheet.hidden=!1)}closeSheet(){this.els.sheet&&(this.els.sheet.hidden=!0)}loadMapsApi(){if(!this.cfg.apiKey||this.cfg.apiKey==="YOUR_API_KEY_HERE")throw new Error("Missing Google Maps API key");return window.gm_authFailure=()=>this.showError(this.labels.error),window.google&&window.google.maps&&window.google.maps.importLibrary||(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await(a=m.createElement("script")),e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q),a.src=`https://maps.${c}apis.com/maps/api/js?`+e,d[q]=f,a.onerror=()=>h=n(Error(p+" could not load.")),a.nonce=m.querySelector("script[nonce]")?.nonce||"",m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({key:this.cfg.apiKey,v:"weekly"}),google.maps.importLibrary("maps")}async buildMap(){const{Map:Map2}=await google.maps.importLibrary("maps"),opts={center:this.cfg.center,zoom:this.cfg.zoom,maxZoom:this.cfg.maxZoom,mapTypeControl:!1,streetViewControl:!1,fullscreenControl:!0,zoomControl:!0,gestureHandling:"greedy",backgroundColor:"#0a0a0b"};this.cfg.mapId?opts.mapId=this.cfg.mapId:opts.styles=DARK_STYLE,this.map=new Map2(this.els.map,opts)}async buildMarkers(){if(this.useAdvanced){const{AdvancedMarkerElement}=await google.maps.importLibrary("marker");this.AdvancedMarkerElement=AdvancedMarkerElement}this.stores.forEach(s=>{if(!s.coords)return;const marker=this.useAdvanced?this.makeAdvancedMarker(s):this.makeClassicMarker(s);this.markers.set(s.slug,marker)}),this.cfg.clustering&&await this.initClusterer(),this.syncMarkers(this.visibleStores())}makeAdvancedMarker(store){const content=document.createElement("div");content.className="slp-pin",content.style.setProperty("--slp-accent",this.cfg.colors.accent),content.innerHTML='<span class="slp-pin__ring"></span><span class="slp-pin__dot"></span>',content.title=store.title;const marker=new this.AdvancedMarkerElement({position:store.coords,content,title:store.title,gmpClickable:!0});return marker.addListener("click",()=>this.selectStore(store.slug,{pan:!0,scroll:!0})),marker._slpContent=content,marker}makeClassicMarker(store){const marker=new google.maps.Marker({position:store.coords,title:store.title,icon:this.classicIcon(!1)});return marker.addListener("click",()=>this.selectStore(store.slug,{pan:!0,scroll:!0})),marker}classicIcon(selected){const a=this.cfg.colors.accent,r=selected?8:6,svg=`<svg xmlns="http://www.w3.org/2000/svg" width="34" height="34"><circle cx="17" cy="17" r="${r}" fill="${a}" stroke="#0d0d0d" stroke-width="3"/><circle cx="17" cy="17" r="${r+2.5}" fill="none" stroke="${a}" stroke-width="1.5" opacity="${selected?1:.5}"/></svg>`;return{url:"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(svg),scaledSize:new google.maps.Size(34,34),anchor:new google.maps.Point(17,17)}}initClusterer(){return new Promise(resolve=>{const script=document.createElement("script");script.src=CLUSTERER_SRC,script.async=!0,script.onload=()=>{try{this.clusterer=new markerClusterer.MarkerClusterer({map:this.map,markers:[],renderer:{render:({count,position})=>this.makeClusterMarker(count,position)}})}catch(e){console.warn("[StoreLocatorPro] clustering unavailable",e)}resolve()},script.onerror=()=>resolve(),document.head.appendChild(script)})}makeClusterMarker(count,position){if(this.useAdvanced){const div=document.createElement("div");return div.className="slp-cluster",div.style.setProperty("--slp-accent",this.cfg.colors.accent),div.textContent=count,new this.AdvancedMarkerElement({position,content:div,zIndex:1e3+count})}const svg=`<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40"><circle cx="20" cy="20" r="17" fill="${this.cfg.colors.accent}" stroke="#0d0d0d" stroke-width="2.5"/></svg>`;return new google.maps.Marker({position,zIndex:1e3+count,icon:{url:"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(svg),scaledSize:new google.maps.Size(40,40)},label:{text:String(count),color:"#0d0d0d",fontWeight:"700",fontSize:"13px"}})}setMarkerMap(marker,map){this.useAdvanced?marker.map=map:marker.setMap(ma
4p)}syncMarkers(visible){if(!this.map||this.markers.size===0)return;const visibleSlugs=new Set(visible.map(s=>s.slug));if(this.clusterer){const active=[];this.markers.forEach((m,slug)=>{visibleSlugs.has(slug)?active.push(m):this.setMarkerMap(m,null)}),this.clusterer.clearMarkers(),this.clusterer.addMarkers(active)}else this.markers.forEach((m,slug)=>this.setMarkerMap(m,visibleSlugs.has(slug)?this.map:null));this.applySelection()}applySelection(){this.markers.forEach((m,slug)=>{const selected=slug===this.state.selected;this.useAdvanced?(m._slpContent.classList.toggle("is-selected",selected),m.zIndex=selected?9999:null):(m.setIcon(this.classicIcon(selected)),m.setZIndex(selected?9999:void 0))})}selectStore(slug,{pan=!0,scroll=!0}={}){const store=this.stores.find(s=>s.slug===slug);if(store){if(this.state.selected=slug,this.update(),this.openSheet(store),scroll){const card=this.els.list.querySelector(`[data-slug="${CSS.escape(slug)}"]`);card&&card.scrollIntoView({block:"nearest",behavior:"smooth"})}pan&&this.map&&store.coords&&(this.map.panTo(store.coords),this.map.setZoom(this.cfg.detailZoom));try{const url=new URL(window.location.href);url.searchParams.set("store",slug),history.replaceState(null,"",url)}catch{}}}handleDeepLink(){const slug=new URLSearchParams(window.location.search).get("store");slug&&this.stores.some(s=>s.slug===slug)&&(this.selectStore(slug,{pan:!0,scroll:!0}),this._deepLinked=!0)}fitToStores(){const withCoords=this.stores.filter(s=>s.coords);if(!withCoords.length)return;if(withCoords.length===1){this.map.setCenter(withCoords[0].coords),this.map.setZoom(this.cfg.zoom);return}const bounds=new google.maps.LatLngBounds;withCoords.forEach(s=>bounds.extend(s.coords)),this.map.fitBounds(bounds,48)}setOrigin(coords,{pan=!0}={}){if(this.state.origin=coords,this.stores.forEach(s=>{s._distKm=s.coords?haversineKm(coords,s.coords):null}),this.update(),this.placeOriginMarker(coords),!pan||!this.map)return;const nearest=this.visibleStores().find(s=>s.coords),bounds=new google.maps.LatLngBounds;bounds.extend(coords),nearest&&bounds.extend(nearest.coords),this.map.fitBounds(bounds,90),google.maps.event.addListenerOnce(this.map,"idle",()=>{this.map.getZoom()>15&&this.map.setZoom(15)})}placeOriginMarker(coords){if(this.originMarker&&this.setMarkerMap(this.originMarker,null),!!this.map)if(this.useAdvanced){const dot=document.createElement("div");dot.className="slp-origin",this.originMarker=new this.AdvancedMarkerElement({position:coords,content:dot,map:this.map,zIndex:9998})}else this.originMarker=new google.maps.Marker({position:coords,map:this.map,zIndex:9998,icon:{path:google.maps.SymbolPath.CIRCLE,scale:7,fillColor:"#4da3ff",fillOpacity:1,strokeColor:"#0d0d0d",strokeWeight:3}})}locateUser(){const btn=this.els.near;this.hideNotice(),btn.disabled=!0,btn.classList.add("is-loading");const done=()=>{btn.disabled=!1,btn.classList.remove("is-loading")},fail=async()=>{const ip=await this.ipLocation();done(),ip?this.setOrigin(ip):this.showNotice(this.labels.geoError||"We couldn't get your location.")};if(!navigator.geolocation)return fail();navigator.geolocation.getCurrentPosition(pos=>{done(),this.setOrigin({lat:pos.coords.latitude,lng:pos.coords.longitude})},fail,{timeout:7e3,maximumAge:6e4})}async ipLocation(){try{const ctrl=new AbortController,t=setTimeout(()=>ctrl.abort(),2500),r=await fetch("https://ipapi.co/json/",{signal:ctrl.signal});clearTimeout(t);const d=await r.json();if(d.latitude&&d.longitude)return{lat:parseFloat(d.latitude),lng:parseFloat(d.longitude)}}catch{}return null}async autoLocate(){if(this.state.origin||this._deepLinked)return;const ip=await this.ipLocation();ip&&!this.state.origin&&!this.state.selected&&this.setOrigin(ip)}async initSearch(){let placesOk=!1;try{await google.maps.importLibrary("places"),placesOk=!0}catch(e){console.warn("[StoreLocatorPro] Places library unavailable",e)}if(placesOk){this.placesService=new google.maps.places.PlacesService(this.map);try{const ac=new google.maps.places.Autocomplete(this.els.search,{types:["geocode"],fields:["geometry","formatted_address"]});ac.addListener("place_changed",()=>{const place=ac.getPlace();this.lastPlaceSelect=Date.now(),place&&place.geometry&&place.geometry.location?(this.state.query="",this.setOrigin({lat:place.geometry.location.lat(),lng:place.geometry.location.lng()}
4)):this.els.search.value.trim()&&this.findPlaceByText(this.els.search.value.trim())})}catch(e){console.warn("[StoreLocatorPro] Autocomplete unavailable",e)}}this.els.search.addEventListener("keydown",e=>{if(e.key!=="Enter")return;e.preventDefault();const value=this.els.search.value.trim();setTimeout(()=>{Date.now()-this.lastPlaceSelect>400&&value&&this.findPlaceByText(value)},350)})}findPlaceByText(query){this.placesService&&this.placesService.findPlaceFromQuery({query,fields:["geometry","formatted_address"]},(results,status)=>{if(status===google.maps.places.PlacesServiceStatus.OK&&results&&results[0]&&results[0].geometry){const loc=results[0].geometry.location;this.state.query="",this.setOrigin({lat:loc.lat(),lng:loc.lng()})}})}finishLoading(){this.els.loading.classList.add("is-done"),setTimeout(()=>{this.els.loading.hidden=!0},450)}showError(msg){this.els.loading.hidden=!0,this.els.errorMsg.textContent=msg||"The map could not be loaded.",this.els.error.hidden=!1}showNotice(msg){this.els.notice.textContent=msg,this.els.notice.hidden=!1}hideNotice(){this.els.notice.hidden=!0}injectJsonLd(){try{const items=this.stores.filter(s=>s.coords).map((s,i)=>({"@type":"ListItem",position:i+1,item:{"@type":"SportingGoodsStore",name:s.title,address:[s.address1,s.address2].filter(Boolean).join(", "),geo:{"@type":"GeoCoordinates",latitude:s.coords.lat,longitude:s.coords.lng},...s.website?{url:sanitizeUrl(s.website)}:{},...s.phone?{telephone:s.phone}:{},...s.email?{email:s.email}:{}}}));if(!items.length)return;const el=document.createElement("script");el.type="application/ld+json",el.textContent=JSON.stringify({"@context":"https://schema.org","@type":"ItemList",itemListElement:items}),this.root.appendChild(el)}catch{}}}const boot=()=>{document.querySelectorAll("[data-store-locator-pro]").forEach(root=>{if(root.dataset.slpInit)return;root.dataset.slpInit="1";const run=()=>new StoreLocatorPro(root).start();if("IntersectionObserver"in window&&!new URLSearchParams(window.location.search).has("store")){const io=new IntersectionObserver(entries=>{entries.some(e=>e.isIntersecting)&&(io.disconnect(),run())},{rootMargin:"600px"});io.observe(root)}else run()})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",boot):boot(),document.addEventListener("shopify:section:load",boot)})(); 5//# sourceMappingURL=/cdn/shop/t/7/assets/store-locator-pro.js.map?v=13910837767612421681790419946
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.