{"version":3,"file":"Map.CeOGQOkl.mjs","names":["useState","useRef","useMemo","_Fragment","__esmMin","window","pe","init_ssg_sandbox_shims","init_npm_react_18_3_1","_e","de","init_jsx_runtime","c","ce","motion","init_framer_motion_DhsWWWsN","addPropertyControls","init_framer_BWFVvmND","ControlType","RenderTarget","useHash","hashState","setHashState","href","match","key","value","ALLOWED_KEYS","handler","anchor","prev","LOS_ANGELES_LOCATION","FlyoverController","index","running","nextIndex","loop","i","len","runSegment","pts","getWaypoints","a","b","aZoom","map","bZoom","lingerMs","t","travelMs","zoomOut","featureToWaypoint","feature","lng","lat","defaults","MAP_DEFAULT_ZOOM","MAP_DEFAULT_PITCH","MAP_DEFAULT_BEARING","MAP_DEFAULT_DURATION","fetchFramerFeatures","framerFeatures","resolve","records","readFramerMapDataFromDom","data","convertToGeoJSON","loadMapboxGlOnce","mapboxGlCache","mapboxGlPromise","m","mapboxGlSubscribers","fn","useMapboxGl","mod","setMod","useMapbox","ref","visible","setVisible","display","setDisplay","markersReady","setMarkersReady","transitionDuration","setTransitionDuration","MAP_FADE_IN_SECONDS","hasRunIntro","frameRef","lastTimeRef","mapRef","popupRef","mapboxgl","observer","shouldStartController","controller","entries","entry","dt","bounds","initialView","features","MAPBOX_ACCESS_TOKEN","MAPBOX_STYLE","introZoom","MAP_MAX_ZOOM","MAP_MIN_ZOOM","templateLayer","l","MAPBOX_LAYER_ID","showIconsAndText","layerId","layerLayout","hideLabels","INTRO_ZOOM_DURATION","INTRO_ZOOM_DELAY","slug","e","f","image","error","stopFlyover","FADE_OUT_DURATION","source","matchesType","airtableType","hashType","Map","props","mapboxGl","loadedMapFeatures","setLoadedMapFeatures","mapFeatures","manuallySelectedFeatures","setManuallySelectedFeatures","manualControlsVisible","setManualControlsVisible","onKeyDown","v","marketingFilteredFeatures","manuallySelectFeatures","marketing","boundsFeatures","location","innerBounds","lon","center","longitude","latitude","focusedZoom","zoom","focusedPitch","pitch","autoRotateController","AutoRotateController","flyoverController","autorotate","inner","style","cityGroups","convertToAirtableType","type","inputData","item","root","FIELD_NAMES","row","titleNode","hasAllFields","name","parentHasMultipleTitles","getField","latitude2","longitude2","init_Map","bearing","speed","err"],"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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"}