{"version":3,"file":"MultiLocationMap.DAYwpnfP.mjs","names":["useRef","useState","style"],"sources":["https:/framerusercontent.com/modules/mXfbDf61vW6PpYyhwZ50/Ofk4xTtuqIMRDwfwd1eS/MultiLocationMap.js"],"sourcesContent":["// Multi-location map component without API key, using OpenStreetMap + Leaflet CDN\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * MultiLocationMap (OpenStreetMap powered map)\n * Shows multiple markers on a map without requiring an API key\n *\n * @framerIntrinsicWidth 480\n * @framerIntrinsicHeight 320\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function MultiLocationMap(props){const{markers,zoom,useCustomPin,customPinImage={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Custom Pin\"},customPinSize,markerColor,popoverBackground,popoverTextColor,mapTheme,borderRadius,enableClustering,showPopup,style}=props;const mapRef=useRef(null);const leafletRef=useRef(null);const firstMarkerRef=useRef(null);const defaultViewRef=useRef(null);const[currentPopup,setCurrentPopup]=useState(null);useEffect(()=>{if(!mapRef.current||typeof window===\"undefined\")return;// If leaflet already loaded, skip\nif(window.L&&leafletRef.current){leafletRef.current.remove();leafletRef.current=null;}// Dynamically load Leaflet CSS & JS if not present\nfunction ensureLeafletLoaded(){if(window.L)return Promise.resolve(window.L);return new Promise(resolve=>{const exists=document.getElementById(\"leaflet-style\");if(!exists){const link=document.createElement(\"link\");link.id=\"leaflet-style\";link.rel=\"stylesheet\";link.href=\"https://unpkg.com/leaflet@1.9.4/dist/leaflet.css\";document.head.appendChild(link);}const script=document.createElement(\"script\");script.src=\"https://unpkg.com/leaflet@1.9.4/dist/leaflet.js\";script.onload=()=>resolve(window.L);document.body.appendChild(script);});}// Dynamically load Leaflet.markercluster plugin\nfunction ensureMarkerClusterLoaded(){if(window.L&&window.L.markerClusterGroup){return Promise.resolve(window.L);}return new Promise(resolve=>{const cssExists=document.getElementById(\"leaflet-markercluster-style\");if(!cssExists){const link=document.createElement(\"link\");link.id=\"leaflet-markercluster-style\";link.rel=\"stylesheet\";link.href=\"https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css\";document.head.appendChild(link);const linkDefault=document.createElement(\"link\");linkDefault.id=\"leaflet-markercluster-default-style\";linkDefault.rel=\"stylesheet\";linkDefault.href=\"https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css\";document.head.appendChild(linkDefault);}const scriptExists=document.getElementById(\"leaflet-markercluster-script\");if(!scriptExists){const script=document.createElement(\"script\");script.id=\"leaflet-markercluster-script\";script.src=\"https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js\";script.onload=()=>resolve(window.L);document.body.appendChild(script);}else{resolve(window.L);}});}ensureLeafletLoaded().then(L=>{// Load marker cluster plugin if clustering is enabled\nconst loadPromise=enableClustering?ensureMarkerClusterLoaded():Promise.resolve(L);return loadPromise.then(()=>{if(!mapRef.current)return;// Prevent double init\nmapRef.current.innerHTML=\"\";// Load Google Font Inter\nconst fontExists=document.getElementById(\"google-font-inter\");if(!fontExists){const link=document.createElement(\"link\");link.id=\"google-font-inter\";link.rel=\"stylesheet\";link.href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap\";document.head.appendChild(link);}const map=L.map(mapRef.current,{zoomControl:false,attributionControl:false,dragging:false,touchZoom:false,scrollWheelZoom:false,doubleClickZoom:false,boxZoom:false,keyboard:false});leafletRef.current=map;// Compute bounds if markers exist\nlet bounds=null;if(markers.length>0){const validCoords=markers.map(m=>{const parts=m.coordinates.split(\",\").map(s=>s.trim());if(parts.length!==2)return null;const lat=parseFloat(parts[0]);const lng=parseFloat(parts[1]);if(isNaN(lat)||isNaN(lng))return null;return[lat,lng];}).filter(coord=>coord!==null);if(validCoords.length>0){bounds=L.latLngBounds(validCoords);}}// Select tile layer based on theme\nlet tileUrl=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\";switch(mapTheme){case\"dark\":tileUrl=\"https://{s}.basemaps.cartocdn.com/dark_nolabels/{z}/{x}/{y}{r}.png\";break;case\"satellite\":tileUrl=\"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}\";break;case\"topo\":tileUrl=\"https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png\";break;case\"light\":tileUrl=\"https://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}{r}.png\";break;case\"standard\":default:tileUrl=\"https://{s}.basemaps.cartocdn.com/rastertiles/voyager_nolabels/{z}/{x}/{y}{r}.png\";break;}L.tileLayer(tileUrl,{maxZoom:19}).addTo(map);if(markers.length>0){// Create marker cluster group if clustering is enabled\nconst markerGroup=enableClustering&&L.markerClusterGroup?L.markerClusterGroup({showCoverageOnHover:false,zoomToBoundsOnClick:true,spiderfyOnMaxZoom:true,removeOutsideVisibleBounds:true,iconCreateFunction:function(cluster){const count=cluster.getChildCount();let size=\"small\";if(count>10)size=\"medium\";if(count>50)size=\"large\";return L.divIcon({html:`<div style=\"\n                      background: ${markerColor};\n                      color: white;\n                      border-radius: 50%;\n                      width: 40px;\n                      height: 40px;\n                      display: flex;\n                      align-items: center;\n                      justify-content: center;\n                      font-family: 'Inter', sans-serif;\n                      font-weight: 600;\n                      font-size: 14px;\n                      border: 3px solid white;\n                      box-shadow: 0 2px 8px rgba(0,0,0,0.3);\n                    \">${count}</div>`,className:\"custom-cluster-icon\",iconSize:L.point(40,40)});}}):null;for(const markerData of markers){const{coordinates,name,address}=markerData;// Parse coordinates from \"lat, lng\" format\nconst parts=coordinates.split(\",\").map(s=>s.trim());if(parts.length!==2)continue;// Skip invalid format\nconst latitude=parseFloat(parts[0]);const longitude=parseFloat(parts[1]);// Skip if parsing failed\nif(isNaN(latitude)||isNaN(longitude))continue;let marker;if(useCustomPin&&customPinImage.src){// Create custom icon\nconst customIcon=L.icon({iconUrl:customPinImage.src,iconSize:[customPinSize,customPinSize],iconAnchor:[customPinSize/2,customPinSize],popupAnchor:[0,-customPinSize]});marker=L.marker([latitude,longitude],{icon:customIcon});}else{// Use default circle marker\nmarker=L.circleMarker([latitude,longitude],{radius:10,color:markerColor,fillColor:markerColor,fillOpacity:.85,weight:2});}// Store reference to first marker\nif(!firstMarkerRef.current){firstMarkerRef.current=marker;}// Add marker to cluster group or directly to map\nif(markerGroup){markerGroup.addLayer(marker);}else{marker.addTo(map);}}// Add cluster group to map if clustering is enabled\nif(markerGroup){map.addLayer(markerGroup);}if(bounds){map.fitBounds(bounds,{padding:[24,24],maxZoom:zoom});// Save default view after fitting bounds\nsetTimeout(()=>{if(leafletRef.current){defaultViewRef.current={center:leafletRef.current.getCenter(),zoom:leafletRef.current.getZoom()};}},100);}else{map.setView([37.77,-122.41],zoom);defaultViewRef.current={center:[37.77,-122.41],zoom:zoom};}}// Setup global close function\nwindow.closeMapPopup=()=>{if(currentPopup&&leafletRef.current){leafletRef.current.closePopup(currentPopup);setCurrentPopup(null);// Restore default view\nif(defaultViewRef.current){leafletRef.current.setView(defaultViewRef.current.center,defaultViewRef.current.zoom,{animate:true,duration:.5});}}};// Open popup if showPopup is enabled and there's exactly 1 marker\nif(showPopup&&markers.length===1&&firstMarkerRef.current){setTimeout(()=>{if(firstMarkerRef.current){firstMarkerRef.current.openPopup();}},100);}// Add custom CSS for popup styling\nconst styleId=\"leaflet-custom-popup-style\";if(!document.getElementById(styleId)){const style=document.createElement(\"style\");style.id=styleId;style.textContent=`\n            .custom-popup .leaflet-popup-content-wrapper {\n              background: transparent;\n              box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n              padding: 0;\n              border-radius: 8px;\n              max-height: 80vh;\n              overflow: visible;\n            }\n            .custom-popup .leaflet-popup-content {\n              margin: 0;\n              line-height: 1;\n            }\n            .custom-popup .leaflet-popup-tip {\n              background: ${popoverBackground};\n            }\n            .custom-cluster-icon {\n              background: transparent !important;\n              border: none !important;\n            }\n            .leaflet-tile-pane {\n              filter: contrast(1.1) saturate(0.9);\n            }\n            .leaflet-container text,\n            .leaflet-container .leaflet-marker-pane text {\n              display: none !important;\n            }\n            .leaflet-tile-container img {\n              pointer-events: none;\n            }\n            .leaflet-control-attribution {\n              display: none !important;\n            }\n            .leaflet-tile text,\n            .leaflet-overlay-pane text,\n            .leaflet-shadow-pane text {\n              display: none !important;\n            }\n          `;document.head.appendChild(style);}});});return()=>{if(leafletRef.current){leafletRef.current.remove();leafletRef.current=null;}firstMarkerRef.current=null;defaultViewRef.current=null;setCurrentPopup(null);if(typeof window!==\"undefined\"){delete window.closeMapPopup;}};},[markers,zoom,useCustomPin,customPinImage,customPinSize,markerColor,popoverBackground,popoverTextColor,mapTheme,enableClustering,showPopup]);if(RenderTarget.current()===RenderTarget.thumbnail)return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",background:\"#eee\",borderRadius,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",minHeight:320,minWidth:480},children:\"Map preview\"});return /*#__PURE__*/_jsx(\"div\",{ref:mapRef,style:{width:style?.width||\"100%\",height:style?.height||\"100%\",borderRadius,overflow:\"hidden\",...style},\"aria-label\":\"Map with multiple locations\",role:\"region\"});}addPropertyControls(MultiLocationMap,{markers:{type:ControlType.Array,title:\"Markers\",description:\"Add locations to display on the map. Use 'Lat, Lng' format (e.g., 59.1997, 17.6172)\",control:{type:ControlType.Object,controls:{name:{type:ControlType.String,title:\"Name\",defaultValue:\"Property Name\",description:\"Property designation or name\"},address:{type:ControlType.String,title:\"Address\",defaultValue:\"Street Address\",description:\"Street address or location\"},coordinates:{type:ControlType.String,title:\"Lat, Lng\",defaultValue:\"37.77, -122.41\",placeholder:\"59.1997, 17.6172\",description:\"Copy coordinates directly from Google Maps\"}}},defaultValue:[{coordinates:\"37.77, -122.41\",name:\"San Francisco Property\",address:\"Market Street\"},{coordinates:\"34.05, -118.25\",name:\"Los Angeles Property\",address:\"Hollywood Blvd\"},{coordinates:\"40.7128, -74.006\",name:\"New York Property\",address:\"Broadway\"}]},zoom:{type:ControlType.Number,title:\"Zoom Level\",defaultValue:4,min:1,max:18,step:1,description:\"Initial zoom level (1 = world view, 18 = street level)\"},mapTheme:{type:ControlType.Enum,title:\"Map Theme\",options:[\"standard\",\"dark\",\"satellite\",\"topo\",\"light\"],optionTitles:[\"Standard\",\"Dark\",\"Satellite\",\"Topographic\",\"Light\"],defaultValue:\"standard\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:8,min:0,max:50,step:1},enableClustering:{type:ControlType.Boolean,title:\"Cluster Pins\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Group nearby markers into clusters with count badges\"},useCustomPin:{type:ControlType.Boolean,title:\"Custom Pin\",defaultValue:false,enabledTitle:\"Custom\",disabledTitle:\"Default\"},customPinImage:{type:ControlType.ResponsiveImage,title:\"Pin Image\",hidden:({useCustomPin})=>!useCustomPin},customPinSize:{type:ControlType.Number,title:\"Pin Size\",defaultValue:40,min:20,max:100,step:1,hidden:({useCustomPin})=>!useCustomPin},markerColor:{type:ControlType.Color,title:\"Pin Color\",defaultValue:\"#1A6DFF\",hidden:({useCustomPin})=>useCustomPin},showPopup:{type:ControlType.Boolean,title:\"Auto-Open Popup\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"Automatically open popup on load (only works with exactly 1 marker)\",hidden:({markers})=>markers.length!==1},popoverBackground:{type:ControlType.Color,title:\"Popup Background\",defaultValue:\"#FFFFFF\"},popoverTextColor:{type:ControlType.Color,title:\"Popup Text Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MultiLocationMap\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"480\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"320\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MultiLocationMap.map"],"mappings":"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"}