{"version":3,"file":"Map.DidUOKTo.mjs","names":["useState","useRef","visible","l","useMemo","feature","_Fragment"],"sources":["https:/framerusercontent.com/modules/B4NJ16MFVN1NdYo4G9jw/6UVfi5AdKZahBpXNYPwl/Map.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{motion}from\"framer-motion\";import{useMemo,useRef,useEffect,useState}from\"react\";import{RenderTarget,addPropertyControls,ControlType}from\"framer\";/** Constants */// Toggle between Airtable and Framer DOM data sources\nconst USE_FRAMER_DATA=true// Set to true to use Framer DOM data, false for Airtable\n;const MAP_MIN_ZOOM=8;// Note: Do not make this less than 15 or you will not see the 3D elements\nconst MAP_MAX_ZOOM=17;const MAP_DEFAULT_ZOOM=16;const MAP_DEFAULT_PITCH=45;const MAP_DEFAULT_BEARING=0;const MAP_DEFAULT_DURATION=5e3;const MAP_FADE_IN_SECONDS=2;const INTRO_ZOOM_DURATION=4e3;const INTRO_ZOOM_DELAY=1e3;const LOS_ANGELES_LOCATION=\"los-angeles-ca\";const ALLOWED_KEYS=new Set([\"location\",\"type\",\"id\"]);function useHash(){const[hashState,setHashState]=useState({});useEffect(()=>{const initHash=()=>{const href=window.location.hash;if(!href)return;const match=href.match(/#([^:]+):(.+)$/);if(!match)return;const[,key,value]=match;if(!ALLOWED_KEYS.has(key))return;setHashState({[key]:value});};initHash();const handler=e=>{const target=e.target;const anchor=target.closest(\"a[href]\");if(!anchor)return;const href=anchor.getAttribute(\"href\");if(!href)return;if(href.includes(\"#tour\")){setHashState({tour:true});return;}// Match hashes like #key:value\nconst match=href.match(/#([^:]+):(.+)$/);if(!match){setHashState({type:null,location:null,id:null,tour:false});return;}const[,key,value]=match;if(!ALLOWED_KEYS.has(key))return;// ignore unknown keys\nif(key===\"location\"){setHashState(prev=>{return{...prev,type:null,location:value,tour:false};});}else if(key===\"type\"){setHashState(prev=>{return{...prev,location:LOS_ANGELES_LOCATION,type:value,tour:false};});}else if(key===\"id\"){setHashState(_prev=>{return{id:value,tour:false};});}};document.addEventListener(\"pointerup\",handler,{capture:true});return()=>document.removeEventListener(\"pointerup\",handler,{capture:true});},[]);return hashState;}const AutoRotateController=(speed=.002)=>({update(map,dt){const bearing=map.getBearing()+speed*dt;map.setBearing(bearing%360);}});const clamp=(v,a=0,b=1)=>Math.max(a,Math.min(b,v));const ease=t=>t*t*(3-2*t);const bearingTo=(from,to)=>{const dx=to[0]-from[0];const dy=to[1]-from[1];return Math.atan2(dx,dy)*180/Math.PI;};function FlyoverController(getWaypoints,{lingerMs=1500,travelMs=4e3,zoomOut=1.5,loop=true}={}){let index=0;let running=false;const nextIndex=(i,len)=>loop?(i+1)%len:Math.min(i+1,len-1);const runSegment=map=>{const pts=getWaypoints()??[];if(pts.length<2)return;const a=pts[index];const b=pts[nextIndex(index,pts.length)];const aZoom=a.zoom??map.getZoom();const bZoom=b.zoom??aZoom;map.flyTo({center:a.center,zoom:aZoom,duration:lingerMs,easing:t=>t});map.once(\"moveend\",()=>{if(!running)return;map.flyTo({center:b.center,zoom:bZoom,duration:travelMs,curve:zoomOut,easing:t=>t});map.once(\"moveend\",()=>{if(!running)return;index=nextIndex(index,pts.length);runSegment(map);});});};return{start(map){if(running)return;running=true;runSegment(map);},stop(map){map?.stop();running=false;}};}function featureToWaypoint(feature,defaults){if(!feature||feature.type!==\"Feature\"||!feature.geometry?.coordinates){throw new Error(\"Invalid feature\");}const[lng,lat]=feature.geometry.coordinates;return{center:[lng,lat],zoom:defaults?.zoom??MAP_DEFAULT_ZOOM,pitch:defaults?.pitch??MAP_DEFAULT_PITCH,bearing:defaults?.bearing??MAP_DEFAULT_BEARING,duration:defaults?.duration??MAP_DEFAULT_DURATION};}/** Popup */function displayMapFeaturePopup(e,mapboxgl,map,popup){const feature=e.features?.[0];if(!feature)return;const coords=[...feature.geometry.coordinates];const{title,img_url,webpage}=feature.properties;while(Math.abs(e.lngLat.lng-coords[0])>180)coords[0]+=e.lngLat.lng>coords[0]?360:-360;popup.setLngLat(new mapboxgl.LngLat(coords[0],coords[1])).setHTML(`\n      <div>\n        <img style=\"width:100%\" src=\"${img_url}\" />\n        <h1 style=\"margin:0;font-size:24px;color:black\">${title}</h1>\n        <a href=\"${webpage}\" target=\"_blank\"><p style=\"color:#aaa\">Read more</p></a>\n      </div>\n    `).addTo(map);}/** Data Sources */// Unified variable to hold map features from either source\nlet mapFeatures=null;/** Airtable */const AIRTABLE_API_KEY=\"patq9phCGYdncxLGF.18472e74cbcaf99e32b6a57b2934493c1b4cb876a56951ef9df149be51c32867\";const AIRTABLE_BASE_ID=\"appSDgoNGMmQawqxa\";let airtableFeatures=null;async function fetchAirtableFeatures(){// If we happen to run this function again, return the variable if it exists.\nif(airtableFeatures)return Promise.resolve(airtableFeatures);const airtablePromise=fetch(`https://api.airtable.com/v0/${AIRTABLE_BASE_ID}/Locations`,{headers:{Authorization:`Bearer ${AIRTABLE_API_KEY}`}}).then(r=>r.json()).then(json=>{const data={type:\"FeatureCollection\",features:json.records.map(record=>({type:\"Feature\",properties:{id:`${record.fields.Latitude}-${record.fields.Longitude}`,title:record.fields.Title,type:record.fields.Type?.toLowerCase(),img_url:record.fields.Image?.[0]?.url,webpage:record.fields.Link,groups:record.fields.Groups?.map(groupNameToHash),slug:record.fields.Slug},geometry:{type:\"Point\",coordinates:[Number(record.fields.Latitude),Number(record.fields.Longitude)]}}))};airtableFeatures=data;return data;}).catch(err=>{airtableFeatures=null;throw err;});return airtablePromise;}/** Framer DOM Data */let framerFeatures=null;async function fetchFramerFeatures(){// If we already have the data, return it\nif(framerFeatures)return Promise.resolve(framerFeatures);// Wait for DOM to be ready\nconst waitForDom=()=>{return new Promise(resolve=>{if(document.readyState===\"loading\"){document.addEventListener(\"DOMContentLoaded\",resolve);}else{resolve(undefined);}});};await waitForDom();// Small delay to ensure Framer components are rendered\nawait new Promise(resolve=>setTimeout(resolve,100));// Read data from DOM\nconst records=readFramerMapDataFromDom();if(records.length===0){console.warn(\"No Framer map data found in DOM\");return null;}// Convert to GeoJSON format\nconst geoJsonFeatures=convertToGeoJSON(records);const data={type:\"FeatureCollection\",features:geoJsonFeatures};framerFeatures=data;return data;}// Load the appropriate data source on module load\nif(typeof window!==\"undefined\"){if(USE_FRAMER_DATA){// Use Framer DOM data\nfetchFramerFeatures().then(data=>{mapFeatures=data;}).catch(err=>{console.error(\"Failed to load Framer data:\",err);mapFeatures=null;});}else{// Use Airtable data\nawait fetchAirtableFeatures().then(data=>{mapFeatures=data;});}}function groupNameToHash(group){return`#${group.replace(/[,\\s]+/g,\"-\").toLowerCase()}`;}/** Mapbox GL */let mapboxGlCache=null;let mapboxGlPromise=null;const mapboxGlSubscribers=new Set;function loadMapboxGlOnce(){if(mapboxGlCache)return Promise.resolve(mapboxGlCache);if(mapboxGlPromise)return mapboxGlPromise;mapboxGlPromise=import(\"https://ga.jspm.io/npm:mapbox-gl@3.16.0/dist/mapbox-gl.js\").then(m=>{mapboxGlCache=m.default;mapboxGlSubscribers.forEach(fn=>fn(mapboxGlCache));return mapboxGlCache;});return mapboxGlPromise;}function useMapboxGl(){const[mod,setMod]=useState(mapboxGlCache);useEffect(()=>{if(RenderTarget.hasRestrictions())return;mapboxGlSubscribers.add(setMod);if(!mapboxGlCache)loadMapboxGlOnce();return()=>{mapboxGlSubscribers.delete(setMod);};},[]);return mod;}/** Mapbox */const MAPBOX_LAYER_ID=\"outdoordigital-nov-2021\";const MAPBOX_STYLE=\"mapbox://styles/outdoordigital/cmfghknc7001701rgabr6855u\";const MAPBOX_ACCESS_TOKEN=\"pk.eyJ1Ijoib3V0ZG9vcmRpZ2l0YWwiLCJhIjoiY2thbGo1eTh2MTI5aTJ1bG1hcjAxNHllZCJ9.URUchu5qjzNqCDA_TlPu6A\";function useMapbox({features,initialView,controller,bounds,hashState,hideLabels=false,isInteractive=true,introZoom,showIconsAndText}){const ref=useRef(null);const[visible,setVisible]=useState(false);const[display,setDisplay]=useState(false);const[markersReady,setMarkersReady]=useState(false);const[transitionDuration,setTransitionDuration]=useState(MAP_FADE_IN_SECONDS);const hasRunIntro=useRef(false);const frameRef=useRef(null);const lastTimeRef=useRef(null);const mapRef=useRef(null);const popupRef=useRef(null);const mapboxgl=useMapboxGl();const observer=useRef(null);// Autorotate starts immediately (only has update method)\n// Flyover only starts when hashState.tour is true (has start/stop methods)\nconst shouldStartController=controller&&(!controller.start||hashState.tour);useEffect(()=>{if(RenderTarget.hasRestrictions())return;if(!ref.current)return;observer.current=new IntersectionObserver(entries=>{entries.forEach(entry=>{setVisible(visible=>{return visible||entry.isIntersecting;});if(!entry.isIntersecting&&frameRef.current){controller?.stop?.(mapRef.current);cancelAnimationFrame(frameRef.current);frameRef.current=null;}else if(entry.isIntersecting&&controller&&mapRef.current){if(!frameRef.current){controller?.start?.(mapRef.current);// Restart animation loop if controller has update method\nif(controller.update){const loop=t=>{if(!ref.current)return;if(lastTimeRef.current==null)lastTimeRef.current=t;const dt=t-lastTimeRef.current;lastTimeRef.current=t;controller?.update?.(mapRef.current,dt);frameRef.current=requestAnimationFrame(loop);};frameRef.current=requestAnimationFrame(loop);}}}});});observer.current.observe(ref.current);return()=>observer.current?.disconnect();},[controller]);useEffect(()=>{if(bounds&&mapRef.current){// not able to set padding in constructor, so set after initialization\nmapRef.current.fitBounds(bounds.toArray(),{padding:{top:300,bottom:100,left:100,right:100},duration:0,pitch:initialView.pitch});}},[bounds]);useEffect(()=>{if(RenderTarget.hasRestrictions())return;if(!mapboxgl||!features||!ref.current||mapRef.current||!visible)return;mapboxgl.accessToken=MAPBOX_ACCESS_TOKEN;mapRef.current=new mapboxgl.Map({container:ref.current,style:MAPBOX_STYLE,center:initialView.center,zoom:hasRunIntro.current?initialView.zoom:introZoom,maxZoom:MAP_MAX_ZOOM,minZoom:MAP_MIN_ZOOM,bearing:initialView.bearing,pitch:initialView.pitch,interactive:true,bounds:null});if(bounds){// not able to set padding in constructor, so set after initialization\nmapRef.current.fitBounds(bounds.toArray(),{padding:{top:300,bottom:100,left:100,right:100},duration:0,pitch:initialView.pitch});}popupRef.current=new mapboxgl.Popup({closeOnClick:false});mapRef.current.on(\"load\",()=>{// animation stuff\nif(shouldStartController){controller?.start?.(mapRef.current);// Begin RAF loop\nconst loop=t=>{if(!ref.current)return;if(lastTimeRef.current==null)lastTimeRef.current=t;const dt=t-lastTimeRef.current;lastTimeRef.current=t;controller?.update?.(mapRef.current,dt);frameRef.current=requestAnimationFrame(loop);};frameRef.current=requestAnimationFrame(loop);}const templateLayer=mapRef.current.getStyle().layers.find(l=>l.id===MAPBOX_LAYER_ID);if(!templateLayer)throw new Error(`Layer ${MAPBOX_LAYER_ID} not found`);if(showIconsAndText){mapRef.current.addSource(\"points\",{type:\"geojson\",data:features});}else{const hideLayers=[\"road-label-navigation\",\"road-intersection\",\"settlement-major-label\",\"settlement-minor-label\",\"settlement-subdivision-label\",\"poi-label\",\"airport-label\",\"natural-point-label\",\"waterway-label\"];for(let layerId of hideLayers){mapRef.current.setLayoutProperty(layerId,\"visibility\",\"none\");}}const layerLayout=hideLabels?{...templateLayer.layout,\"text-field\":\"\"}:templateLayer.layout;mapRef.current.addLayer({id:\"points\",type:\"symbol\",source:\"points\",paint:templateLayer.paint,layout:layerLayout});mapRef.current.removeLayer(MAPBOX_LAYER_ID);setTimeout(()=>{setDisplay(true);setMarkersReady(true);},0);setTimeout(()=>{if(introZoom!==initialView.zoom&&!hasRunIntro.current){mapRef.current.flyTo({zoom:initialView.zoom,duration:INTRO_ZOOM_DURATION});hasRunIntro.current=true;}},INTRO_ZOOM_DELAY);});mapRef.current.on(\"styleimagemissing\",e=>{const slug=e.id;const feature=features.features.find(f=>{return f.properties.slug===slug;});if(!feature||!feature.properties.mapIcon){const image=new Image;image.width=50;image.height=50;mapRef.current.addImage(e.id,image);return;}mapRef.current.loadImage(feature.properties.mapIcon,(error,image)=>{if(error)throw error;if(!mapRef.current.hasImage(e.id)){mapRef.current.addImage(e.id,image);}});});// Change cursor to pointer on hover\nmapRef.current.on(\"mouseenter\",\"points\",()=>{mapRef.current.getCanvas().style.cursor=\"pointer\";});mapRef.current.on(\"mouseleave\",\"points\",()=>{mapRef.current.getCanvas().style.cursor=\"\";});mapRef.current.on(\"click\",()=>{stopFlyover();history.replaceState(null,\"\",window.location.pathname+window.location.search);});mapRef.current.on(\"click\",\"points\",e=>{stopFlyover();const feature=e.features?.[0];if(feature?.properties?.slug){window.open(`/icons/${feature.properties.slug}`,\"_blank\");}});return()=>{if(frameRef.current)cancelAnimationFrame(frameRef.current);if(mapRef.current){controller?.stop?.(mapRef.current);mapRef.current.remove();mapRef.current=null;}};},[mapboxgl,features,visible,controller,initialView.center?.[0],initialView.center?.[1],initialView.zoom,initialView.bearing,initialView.pitch]);useEffect(()=>{// Only stop flyover if we're not in tour mode and we have a controller with a stop method\nif(!hashState.tour&&controller?.stop){stopFlyover();}},[hashState,controller]);function stopFlyover(){controller?.stop?.(mapRef.current);cancelAnimationFrame(frameRef.current);frameRef.current=null;}// Reset markersReady when features change to trigger fade out/in\nuseEffect(()=>{if(!mapRef.current)return;const FADE_OUT_DURATION=.3// Fast fade out (300ms)\n;// Set fast transition and fade out\nsetTransitionDuration(FADE_OUT_DURATION);setMarkersReady(false);const source=mapRef.current.getSource(\"points\");if(source){// Wait for fade out to complete, then update data and fade back in\nsetTimeout(()=>{source.setData(features);// Reset to normal transition speed and fade in\nsetTransitionDuration(MAP_FADE_IN_SECONDS);requestAnimationFrame(()=>{setMarkersReady(true);});},FADE_OUT_DURATION*1e3);}},[features]);return{ref,display:display&&markersReady,transitionDuration};}function matchesType(airtableType,hashType){if(airtableType===\"static\"){return hashType===\"handpaint\";}if(airtableType===\"print\"){return hashType===\"vinyl\";}if(airtableType===\"motion digital\"){return hashType===\"digital\"||hashType===\"full-motion\";}return airtableType===hashType;}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function Map({style,autorotate,latitude,longitude,zoom,bearing,pitch,introZoom,marketing=false,showIconsAndText=true,manuallySelectFeatures=false,...props}){const mapboxGl=useMapboxGl();const hashState=useHash();const[loadedMapFeatures,setLoadedMapFeatures]=useState(mapFeatures);const[manuallySelectedFeatures,setManuallySelectedFeatures]=useState({});const[manualControlsVisible,setManualControlsVisible]=useState(true);useEffect(()=>{const onKeyDown=e=>{if(e.key===\"h\"){setManualControlsVisible(v=>!v);}};window.addEventListener(\"keydown\",onKeyDown);return()=>window.removeEventListener(\"keydown\",onKeyDown);},[]);// Load map features when component mounts or when mapFeatures changes\nuseEffect(()=>{if(mapFeatures){setLoadedMapFeatures(mapFeatures);}else if(USE_FRAMER_DATA){// If using Framer data and not yet loaded, try to load it\nfetchFramerFeatures().then(data=>{if(data){mapFeatures=data;setLoadedMapFeatures(data);}});}},[]);console.log(loadedMapFeatures);// Filter features based on marketing prop\nconst marketingFilteredFeatures=useMemo(()=>{if(!loadedMapFeatures)return loadedMapFeatures;if(manuallySelectFeatures){return loadedMapFeatures;}// Only apply marketing filter if marketing prop is true\nif(!marketing){return loadedMapFeatures;}return{...loadedMapFeatures,features:loadedMapFeatures.features?.filter(feature=>{// When marketing is true, only show features with marketingMap: true\nreturn feature.properties?.marketingMap===true;})};},[loadedMapFeatures,marketing,manuallySelectFeatures]);// only filter out features based on type\nconst features=useMemo(()=>{if(manuallySelectFeatures)return{...marketingFilteredFeatures,features:marketingFilteredFeatures?.features?.filter(feature=>{return manuallySelectedFeatures[feature.properties.id];})};if(!hashState.type)return marketingFilteredFeatures;return{...marketingFilteredFeatures,features:marketingFilteredFeatures?.features?.filter(feature=>{if(hashState.type){if(!feature.properties.type)return false;if(!matchesType(feature.properties.type,hashState.type))return false;}return true;})};},[hashState,marketingFilteredFeatures,manuallySelectFeatures,manuallySelectedFeatures]);// filter by location to determine bounds, but do not remove any from map\nconst boundsFeatures=useMemo(()=>{if(manuallySelectFeatures)return null;if(!marketingFilteredFeatures)return null;const{location,type}=hashState;if(!location){return marketingFilteredFeatures;}return{...marketingFilteredFeatures,features:marketingFilteredFeatures?.features?.filter(feature=>{if(location){if(!feature.properties.groups)return false;if(!feature.properties.groups.includes(`#${location}`))return false;}return true;})};},[hashState,marketingFilteredFeatures,manuallySelectFeatures]);const bounds=useMemo(()=>{if(!mapboxGl)return null;if(!boundsFeatures?.features||boundsFeatures.features.length<1||!hashState.location)return null;// set bounds if group hash is set, otherwise use default\nlet innerBounds=new mapboxGl.LngLatBounds;for(let feature of boundsFeatures.features){const[lat,lon]=feature.geometry.coordinates;innerBounds.extend([lat,lon]);}return innerBounds;},[mapboxGl,boundsFeatures?.features]);const center=useMemo(()=>{if(!features?.features||!hashState.id)return[longitude,latitude];const feature=features.features.find(feature=>{return feature.properties.slug===hashState.id;});// Gracefully ignore unrecognized slugs\nif(!feature)return[longitude,latitude];return feature.geometry.coordinates;},[hashState,latitude,longitude,features?.features]);const focusedZoom=useMemo(()=>{// When we have an id slug, use the default zoom for framing\nif(hashState.id&&features?.features){const feature=features.features.find(f=>f.properties.slug===hashState.id);if(feature)return MAP_DEFAULT_ZOOM;}return zoom;},[hashState.id,features?.features,zoom]);const focusedPitch=useMemo(()=>{// When we have an id slug, use the default pitch for framing\nif(hashState.id&&features?.features){const feature=features.features.find(f=>f.properties.slug===hashState.id);if(feature)return MAP_DEFAULT_PITCH;}return pitch;},[hashState.id,features?.features,pitch]);const autoRotateController=useMemo(()=>AutoRotateController(),[]);const flyoverController=useMemo(()=>FlyoverController(()=>{if(features?.features){const waypointFeatures=features.features// Flyover only targets Los Angeles features\n    .filter(feature=>feature?.properties?.groups?.includes(`#${LOS_ANGELES_LOCATION}`)).map(featureToWaypoint);return waypointFeatures;}}),[features?.features]);const controller=hashState.tour?flyoverController:autorotate?autoRotateController:null;const{ref,display,transitionDuration}=useMapbox({features,initialView:{center,zoom:focusedZoom,bearing,pitch:focusedPitch},controller,bounds,hashState,hideLabels:autorotate,isInteractive:true,introZoom:introZoom,showIconsAndText});const inner=/*#__PURE__*/_jsx(motion.div,{...props,style:{position:\"relative\",overflow:\"hidden\",width:1920,height:1080,...style},children:/*#__PURE__*/_jsx(\"div\",{ref:ref,style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",opacity:display?1:0,transition:`opacity ${transitionDuration}s`}})});return /*#__PURE__*/_jsxs(_Fragment,{children:[manuallySelectFeatures&&manualControlsVisible&&/*#__PURE__*/_jsx(\"div\",{children:loadedMapFeatures?.features?.map(feature=>/*#__PURE__*/_jsxs(\"label\",{children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",checked:manuallySelectedFeatures[feature.properties.id],onChange:e=>{setManuallySelectedFeatures({...manuallySelectedFeatures,[feature.properties.id]:e.target.checked});}}),feature.properties.title]},feature.properties.slug))}),inner]});}Map.displayName=\"Map\";addPropertyControls(Map,{autorotate:{title:\"Autorotate\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\"},marketing:{title:\"Marketing Map\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},longitude:{type:ControlType.Number,defaultValue:-118.26763},latitude:{type:ControlType.Number,defaultValue:34.04291},zoom:{type:ControlType.Number,defaultValue:11},bearing:{type:ControlType.Number,defaultValue:0},pitch:{type:ControlType.Number,defaultValue:0},introZoom:{type:ControlType.Number,defaultValue:15},showIconsAndText:{title:\"Icon and Text Visibility\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"Visible\",disabledTitle:\"Hidden\"},manuallySelectFeatures:{title:\"Manually Select Features\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"}});function convertToGeoJSON(inputData){// Default values for properties that aren't in the input data\nconst defaults={img_url:\"https://v5.airtableusercontent.com/v3/u/49/49/1768190400000/placeholder/placeholder.jpg\",webpage:\"https://www.kevani.com/media/\"};// City to hashtag groups mapping\nconst cityGroups={\"los-angeles-ca\":[\"#los-angeles-ca\"],\"inglewood-ca\":[\"#inglewood-ca\",\"#los-angeles-ca\"],\"new-york-city-ny\":[\"#new-york-city-ny\"],\"carson-ca\":[\"#carson-ca\",\"#los-angeles-ca\"],\"west-hollywood-ca\":[\"#west-hollywood-ca\",\"#los-angeles-ca\"],\"ontario-ca\":[\"#ontario-ca\"],\"norwalk-ca\":[\"#norwalk-ca\",\"#los-angeles-ca\"],\"lynwood-ca\":[\"#lynwood-ca\",\"#los-angeles-ca\"],\"gardena-ca\":[\"#gardena-ca\",\"#los-angeles-ca\"],\"baltimore-md\":[\"#baltimore-md\"],\"hollywood-ca\":[\"#hollywood-ca\",\"#los-angeles-ca\"],\"costa-mesa-ca\":[\"#costa-mesa-ca\"],\"la-mirada-ca\":[\"#la-mirada-ca\",\"#los-angeles-ca\"]};function convertToAirtableType(type){if(type===\"Handpaint\")return\"static\";if(type===\"Vinyl\")return\"print\";if(type===\"Full Motion\")return\"motion digital\";if(type===\"Digital\")return\"digital\";return type.toLowerCase();}return inputData.map(item=>({type:\"Feature\",properties:{id:`${item.longitude}-${item.latitude}`,title:item.title,type:item.type?convertToAirtableType(item.type):\"\",img_url:defaults.img_url,webpage:item.slug?`${defaults.webpage}${item.slug}`:defaults.webpage,groups:cityGroups[item.city]||[`#${item.city}`],slug:item.slug,marketingMap:item.marketingMap||false,mapIcon:item.mapIcon},geometry:{type:\"Point\",coordinates:[item.longitude,item.latitude]}}));}function readFramerMapDataFromDom(){const root=document.querySelector('[data-framer-name=\"MapData\"]');if(!root)return[];const FIELD_NAMES=[\"Title\",\"Slug\",\"Latitude\",\"Longitude\",\"City\",\"Type\",\"Latitude 2\",\"Longitude 2\",\"Marketing map\"];const records=[];const titleNodes=root.querySelectorAll('[data-framer-name=\"Title\"]');titleNodes.forEach(titleNode=>{let row=titleNode.parentElement;while(row&&row!==root){const hasAllFields=FIELD_NAMES.every(name=>row.querySelector(`:scope > [data-framer-name=\"${name}\"]`));const parentHasMultipleTitles=Boolean(row.parentElement?.querySelectorAll('[data-framer-name=\"Title\"]').length);if(hasAllFields&&parentHasMultipleTitles){break;}row=row.parentElement;}if(!row||row===root)return;const getField=name=>{const text=row.querySelector(`:scope > [data-framer-name=\"${name}\"] p`)?.textContent.trim();if(text)return text;const imageUrl=row.querySelector(`:scope > [data-framer-name=\"${name}\"] img`)?.src;if(imageUrl)return imageUrl;return null;};const item={title:getField(\"Title\"),slug:getField(\"Slug\"),latitude:parseFloat(getField(\"Latitude\")),longitude:parseFloat(getField(\"Longitude\")),city:getField(\"City\"),type:getField(\"Type\"),marketingMap:(getField(\"Marketing map\")||\"\").includes(\"1\"),mapIcon:getField(\"Map icon\")};const latitude2=parseFloat(getField(\"Latitude 2\"));const longitude2=parseFloat(getField(\"Longitude 2\"));if(item.title&&item.slug){records.push(item);}// If secondary coordinates are valid, add another record\nif(!isNaN(latitude2)&&!isNaN(longitude2)&&latitude2!==0&&longitude2!==0){records.push({...item,latitude:latitude2,longitude:longitude2});}});return records;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Map\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Map.map"],"mappings":"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"}