{"version":3,"file":"GeoMap.mjs","names":["React","useState","useCallback","Toolbar","Map","Layers","TileLayer","osm","fromLonLat","Controls","FullScreenControl","MapControlsStandard","BingMaps","makeStyles","useStyles","theme","toolbar","padding","minHeight","spacing","GeoMap","props","$","_c","locations","start","mapType","tooltip","bingKey","width","height","defaultZoom","classes","center","setCenter","zoom","setZoom","showLayer1","setShowLayer1","showLayer2","setShowLayer2","lat","setLat","long","setLong","displayType","setDisplayType","t0","resetPosition","t1","Symbol","for","position","console","log","sendPosition","t2","input","direction","controlZoom","t3","event","newValue","handleSliderChange","t4","event_0","target","value","Number","handleInputChange","t5","handleBlur","t6","event_1","handleInputPositionLat","t7","event_2","handleInputPositionLong","t8","setNewPosition","t9","event_3","newType","handleViewType","t10","location","getLocationValue","t11","overflow","t12","t13","t14","t15","preload","Infinity","visible","imagerySet","key","t16","t17","t18","t19"],"sources":["../../src/maps/GeoMap.jsx"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport { Toolbar } from '@material-ui/core';\nimport Map from './openLayerMaps/Map';\nimport { Layers, TileLayer } from './openLayerMaps/Layers';\nimport { osm } from './openLayerMaps/Source';\nimport { fromLonLat } from 'ol/proj';\nimport { Controls, FullScreenControl } from './openLayerMaps/Controls';\nimport MapControlsStandard from './openLayerMaps/ui/MapControlsStandard';\nimport BingMaps from 'ol/source/BingMaps';\nimport 'ol/ol.css';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n  toolbar: {\n    padding: 0,\n    minHeight: theme.spacing(6)\n  }\n}));\n\n// original default -94.9065, 38.9884\nexport const GeoMap = (props) => {\n  const {\n    locations,\n    start,\n    mapType,\n    tooltip,\n    bingKey,\n    toolbar,\n    width,\n    height,\n    defaultZoom\n  } = props;\n  const classes = useStyles();\n  const [center, setCenter] = useState(start);\n  const [zoom, setZoom] = useState(defaultZoom);\n  const [showLayer1, setShowLayer1] = useState(true);\n  const [showLayer2, setShowLayer2] = useState(true);\n  const [lat, setLat] = useState();\n  const [long, setLong] = useState();\n  // RoadOnDemand, CanvasDark, Aerial\n  const [displayType, setDisplayType] = useState(mapType);\n\n  const resetPosition = () => {\n    setCenter(start);\n    setZoom(9);\n  };\n\n  const sendPosition = (position) => {\n    setCenter(position);\n    console.log('POSITION', position);\n  };\n\n  const controlZoom = (input) => {\n    const direction = input === 'in' ? 1 : -1;\n    setZoom(zoom + direction);\n  };\n\n  const handleSliderChange = (event, newValue) => {\n    setZoom(newValue);\n  };\n\n  const handleInputChange = (event) => {\n    setZoom(event.target.value === '' ? '' : Number(event.target.value));\n  };\n\n  const handleBlur = () => {\n    if (zoom < 0) {\n      setZoom(0);\n    } else if (zoom > 100) {\n      setZoom(100);\n    }\n  };\n\n  const handleInputPositionLat = (event) => {\n    setLat(event.target.value);\n  };\n  const handleInputPositionLong = (event) => {\n    setLong(event.target.value);\n  };\n\n  const setNewPosition = () => {\n    setCenter([lat, long]);\n  };\n\n  const handleViewType = useCallback((event, newType) => {\n    setDisplayType(newType);\n  }, []);\n\n  const getLocationValue = (value) => {\n    setCenter(value.location);\n  };\n\n  return (\n    <div style={{ width: width, height: height, overflow: 'hidden' }}>\n      {toolbar && (\n        <Toolbar className={classes.toolbar}>\n          <MapControlsStandard\n            showLayer1={showLayer1}\n            showLayer2={showLayer2}\n            setShowLayer1={setShowLayer1}\n            setShowLayer2={setShowLayer2}\n            zoomIn={() => controlZoom('in')}\n            zoomOut={() => controlZoom('out')}\n            value={zoom}\n            setValue={setZoom}\n            handleSliderChange={handleSliderChange}\n            handleInputChange={handleInputChange}\n            handleBlur={handleBlur}\n            reset={resetPosition}\n            changeLat={handleInputPositionLat}\n            changeLong={handleInputPositionLong}\n            setPosition={setNewPosition}\n            handleChange={handleViewType}\n            displayType={displayType}\n            getLocation={sendPosition}\n            locations={locations}\n            tooltip={tooltip}\n            getLocationValue={getLocationValue}\n          />\n        </Toolbar>\n      )}\n      <Map center={fromLonLat(center)} zoom={zoom}>\n        <Layers>\n          <TileLayer source={osm()} zIndex={0} />\n\n          <TileLayer\n            source={\n              new BingMaps({\n                preload: Infinity,\n                visible: true,\n                imagerySet: displayType,\n                key: bingKey\n              })\n            }\n            zIndex={0}\n          />\n        </Layers>\n\n        <Controls>\n          <FullScreenControl />\n        </Controls>\n      </Map>\n    </div>\n  );\n};\n"],"mappings":"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"}