{"version":3,"sources":["jsdelivr-header.js","/npm/pigeon-maps@0.22.0/lib/index.cjs.js"],"names":[],"mappings":"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","file":"/npm/pigeon-maps@0.22.0/lib/index.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/pigeon-maps@0.22.0/lib/index.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar React = require('react');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar React__default = /*#__PURE__*/_interopDefaultLegacy(React);\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n\n  return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n\n  _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nfunction debounce(func, wait) {\n  var timeout;\n  return function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var context = this;\n    clearTimeout(timeout);\n    timeout = setTimeout(function () {\n      return func.apply(context, args);\n    }, wait);\n  };\n}\nfunction parentHasClass(element, className) {\n  while (element) {\n    if (element.classList && element.classList.contains(className)) {\n      return true;\n    }\n\n    element = element.parentElement;\n  }\n\n  return false;\n}\nfunction parentPosition(element) {\n  var rect = element.getBoundingClientRect();\n  return {\n    x: rect.left,\n    y: rect.top\n  };\n}\n\nfunction osm(x, y, z) {\n  return \"https://tile.openstreetmap.org/\" + z + \"/\" + x + \"/\" + y + \".png\";\n}\n\nvar ANIMATION_TIME = 300;\nvar DIAGONAL_THROW_TIME = 1500;\nvar SCROLL_PIXELS_FOR_ZOOM_LEVEL = 150;\nvar MIN_DRAG_FOR_THROW = 40;\nvar CLICK_TOLERANCE = 2;\nvar DOUBLE_CLICK_DELAY = 300;\nvar DEBOUNCE_DELAY = 60;\nvar PINCH_RELEASE_THROW_DELAY = 300;\nvar WARNING_DISPLAY_TIMEOUT = 300;\n\nvar NOOP = function NOOP() {\n  return true;\n};\n\nvar lng2tile = function lng2tile(lon, zoom) {\n  return (lon + 180) / 360 * Math.pow(2, zoom);\n};\n\nvar lat2tile = function lat2tile(lat, zoom) {\n  return (1 - Math.log(Math.tan(lat * Math.PI / 180) + 1 / Math.cos(lat * Math.PI / 180)) / Math.PI) / 2 * Math.pow(2, zoom);\n};\n\nfunction tile2lng(x, z) {\n  return x / Math.pow(2, z) * 360 - 180;\n}\n\nfunction tile2lat(y, z) {\n  var n = Math.PI - 2 * Math.PI * y / Math.pow(2, z);\n  return 180 / Math.PI * Math.atan(0.5 * (Math.exp(n) - Math.exp(-n)));\n}\n\nfunction getMousePixel(dom, event) {\n  var parent = parentPosition(dom);\n  return [event.clientX - parent.x, event.clientY - parent.y];\n}\n\nfunction easeOutQuad(t) {\n  return t * (2 - t);\n}\n\nvar absoluteMinMax = [tile2lat(Math.pow(2, 10), 10), tile2lat(0, 10), tile2lng(0, 10), tile2lng(Math.pow(2, 10), 10)];\nvar hasWindow = typeof window !== 'undefined';\nvar performanceNow = hasWindow && window.performance && window.performance.now ? function () {\n  return window.performance.now();\n} : function () {\n  var timeStart = new Date().getTime();\n  return function () {\n    return new Date().getTime() - timeStart;\n  };\n}();\n\nvar requestAnimationFrame = function requestAnimationFrame(callback) {\n  if (hasWindow) {\n    return (window.requestAnimationFrame || window.setTimeout)(callback);\n  } else {\n    callback(new Date().getTime());\n    return null;\n  }\n};\n\nvar cancelAnimationFrame = function cancelAnimationFrame(animFrame) {\n  return hasWindow && animFrame ? (window.cancelAnimationFrame || window.clearTimeout)(animFrame) : false;\n};\n\nfunction srcSet(dprs, url, x, y, z) {\n  if (!dprs || dprs.length === 0) {\n    return '';\n  }\n\n  return dprs.map(function (dpr) {\n    return url(x, y, z, dpr) + (dpr === 1 ? '' : \" \" + dpr + \"x\");\n  }).join(', ');\n}\n\nvar ImgTile = function ImgTile(_ref) {\n  var tile = _ref.tile,\n      tileLoaded = _ref.tileLoaded;\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"img\", {\n    src: tile.url,\n    srcSet: tile.srcSet,\n    width: tile.width,\n    height: tile.height,\n    loading: 'lazy',\n    onLoad: tileLoaded,\n    alt: '',\n    style: {\n      position: 'absolute',\n      left: tile.left,\n      top: tile.top,\n      willChange: 'transform',\n      transformOrigin: 'top left',\n      opacity: 1\n    }\n  });\n};\n\nvar Map = /*#__PURE__*/function (_Component) {\n  _inheritsLoose(Map, _Component);\n\n  function Map(props) {\n    var _ref2, _props$defaultZoom, _ref3, _props$defaultCenter, _ref4, _props$width, _ref5, _props$height;\n\n    var _this;\n\n    _this = _Component.call(this, props) || this;\n\n    _defineProperty(_assertThisInitialized(_this), \"_containerRef\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_mousePosition\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_loadTracker\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_dragStart\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_mouseDown\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"_moveEvents\", []);\n\n    _defineProperty(_assertThisInitialized(_this), \"_lastClick\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_lastTap\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_lastWheel\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_touchStartPixel\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_touchStartMidPoint\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_touchStartDistance\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_secondTouchEnd\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_warningClearTimeout\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_isAnimating\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"_animationStart\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_animationEnd\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_zoomStart\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_centerTarget\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_zoomTarget\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_zoomAround\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_animFrame\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_boundsSynced\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"_minMaxCache\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_lastZoom\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_lastCenter\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_centerStart\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_resizeObserver\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"updateWidthHeight\", function () {\n      if (_this._containerRef) {\n        var rect = _this._containerRef.getBoundingClientRect();\n\n        if (rect && rect.width > 0 && rect.height > 0) {\n          _this.setState({\n            width: rect.width,\n            height: rect.height\n          });\n\n          return true;\n        }\n      }\n\n      return false;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"wa\", function () {\n      var _window;\n\n      return (_window = window).addEventListener.apply(_window, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"wr\", function () {\n      var _window2;\n\n      return (_window2 = window).removeEventListener.apply(_window2, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"bindMouseEvents\", function () {\n      _this.wa('mousedown', _this.handleMouseDown);\n\n      _this.wa('mouseup', _this.handleMouseUp);\n\n      _this.wa('mousemove', _this.handleMouseMove);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"bindTouchEvents\", function () {\n      _this.wa('touchstart', _this.handleTouchStart, {\n        passive: false\n      });\n\n      _this.wa('touchmove', _this.handleTouchMove, {\n        passive: false\n      });\n\n      _this.wa('touchend', _this.handleTouchEnd, {\n        passive: false\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unbindMouseEvents\", function () {\n      _this.wr('mousedown', _this.handleMouseDown);\n\n      _this.wr('mouseup', _this.handleMouseUp);\n\n      _this.wr('mousemove', _this.handleMouseMove);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unbindTouchEvents\", function () {\n      _this.wr('touchstart', _this.handleTouchStart);\n\n      _this.wr('touchmove', _this.handleTouchMove);\n\n      _this.wr('touchend', _this.handleTouchEnd);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"bindResizeEvent\", function () {\n      _this.wa('resize', _this.updateWidthHeight);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unbindResizeEvent\", function () {\n      _this.wr('resize', _this.updateWidthHeight);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"bindWheelEvent\", function () {\n      if (_this._containerRef) {\n        _this._containerRef.addEventListener('wheel', _this.handleWheel, {\n          passive: false\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unbindWheelEvent\", function () {\n      if (_this._containerRef) {\n        _this._containerRef.removeEventListener('wheel', _this.handleWheel);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"setCenterZoomTarget\", function (center, zoom, fromProps, zoomAround, animationDuration) {\n      if (fromProps === void 0) {\n        fromProps = false;\n      }\n\n      if (zoomAround === void 0) {\n        zoomAround = null;\n      }\n\n      if (animationDuration === void 0) {\n        animationDuration = ANIMATION_TIME;\n      }\n\n      if (_this.props.animate && (!fromProps || _this.distanceInScreens(center, zoom, _this.state.center, _this.state.zoom) <= _this.props.animateMaxScreens)) {\n        if (_this._isAnimating) {\n          cancelAnimationFrame(_this._animFrame);\n\n          var _this$animationStep = _this.animationStep(performanceNow()),\n              centerStep = _this$animationStep.centerStep,\n              zoomStep = _this$animationStep.zoomStep;\n\n          _this._centerStart = centerStep;\n          _this._zoomStart = zoomStep;\n        } else {\n          _this._isAnimating = true;\n          _this._centerStart = _this.limitCenterAtZoom([_this._lastCenter[0], _this._lastCenter[1]], _this._lastZoom);\n          _this._zoomStart = _this._lastZoom;\n\n          _this.onAnimationStart();\n        }\n\n        _this._animationStart = performanceNow();\n        _this._animationEnd = _this._animationStart + animationDuration;\n\n        if (zoomAround) {\n          _this._zoomAround = zoomAround;\n          _this._centerTarget = _this.calculateZoomCenter(_this._lastCenter, zoomAround, _this._lastZoom, zoom);\n        } else {\n          _this._zoomAround = null;\n          _this._centerTarget = center;\n        }\n\n        _this._zoomTarget = zoom;\n        _this._animFrame = requestAnimationFrame(_this.animate);\n      } else {\n        _this.stopAnimating();\n\n        if (zoomAround) {\n          var _center = _this.calculateZoomCenter(_this._lastCenter, zoomAround, _this._lastZoom, zoom);\n\n          _this.setCenterZoom(_center, zoom, fromProps);\n        } else {\n          _this.setCenterZoom(center || _this.state.center, zoom, fromProps);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"setCenterZoomForChildren\", function (center, zoom) {\n      _this.setCenterZoomTarget(center || _this.state.center, zoom || _this.state.zoom, true);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"distanceInScreens\", function (centerTarget, zoomTarget, center, zoom) {\n      var _this$state = _this.state,\n          width = _this$state.width,\n          height = _this$state.height;\n\n      var l1 = _this.latLngToPixel(center, center, zoom);\n\n      var l2 = _this.latLngToPixel(centerTarget, center, zoom);\n\n      var z1 = _this.latLngToPixel(center, center, zoomTarget);\n\n      var z2 = _this.latLngToPixel(centerTarget, center, zoomTarget);\n\n      var w = (Math.abs(l1[0] - l2[0]) + Math.abs(z1[0] - z2[0])) / 2 / width;\n      var h = (Math.abs(l1[1] - l2[1]) + Math.abs(z1[1] - z2[1])) / 2 / height;\n      return Math.sqrt(w * w + h * h);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"animationStep\", function (timestamp) {\n      if (!_this._animationEnd || !_this._animationStart || !_this._zoomTarget || !_this._zoomStart || !_this._centerStart || !_this._centerTarget) {\n        return {\n          centerStep: _this.state.center,\n          zoomStep: _this.state.zoom\n        };\n      }\n\n      var length = _this._animationEnd - _this._animationStart;\n      var progress = Math.max(timestamp - _this._animationStart, 0);\n      var percentage = easeOutQuad(progress / length);\n      var zoomDiff = (_this._zoomTarget - _this._zoomStart) * percentage;\n      var zoomStep = _this._zoomStart + zoomDiff;\n\n      if (_this._zoomAround) {\n        var centerStep = _this.calculateZoomCenter(_this._centerStart, _this._zoomAround, _this._zoomStart, zoomStep);\n\n        return {\n          centerStep: centerStep,\n          zoomStep: zoomStep\n        };\n      } else {\n        var _centerStep = [_this._centerStart[0] + (_this._centerTarget[0] - _this._centerStart[0]) * percentage, _this._centerStart[1] + (_this._centerTarget[1] - _this._centerStart[1]) * percentage];\n        return {\n          centerStep: _centerStep,\n          zoomStep: zoomStep\n        };\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"animate\", function (timestamp) {\n      if (!_this._animationEnd || timestamp >= _this._animationEnd) {\n        _this._isAnimating = false;\n\n        _this.setCenterZoom(_this._centerTarget, _this._zoomTarget, true);\n\n        _this.onAnimationStop();\n      } else {\n        var _this$animationStep2 = _this.animationStep(timestamp),\n            centerStep = _this$animationStep2.centerStep,\n            zoomStep = _this$animationStep2.zoomStep;\n\n        _this.setCenterZoom(centerStep, zoomStep);\n\n        _this._animFrame = requestAnimationFrame(_this.animate);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"stopAnimating\", function () {\n      if (_this._isAnimating) {\n        _this._isAnimating = false;\n\n        _this.onAnimationStop();\n\n        cancelAnimationFrame(_this._animFrame);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"limitCenterAtZoom\", function (center, zoom) {\n      var minMax = _this.getBoundsMinMax(zoom || _this.state.zoom);\n\n      return [Math.max(Math.min(!center || isNaN(center[0]) ? _this.state.center[0] : center[0], minMax[1]), minMax[0]), Math.max(Math.min(!center || isNaN(center[1]) ? _this.state.center[1] : center[1], minMax[3]), minMax[2])];\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAnimationStart\", function () {\n      _this.props.onAnimationStart && _this.props.onAnimationStart();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onAnimationStop\", function () {\n      _this.props.onAnimationStop && _this.props.onAnimationStop();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"setCenterZoom\", function (center, zoom, animationEnded) {\n      if (animationEnded === void 0) {\n        animationEnded = false;\n      }\n\n      var limitedCenter = _this.limitCenterAtZoom(center, zoom);\n\n      if (zoom && Math.round(_this.state.zoom) !== Math.round(zoom)) {\n        var tileValues = _this.tileValues(_this.state);\n\n        var nextValues = _this.tileValues({\n          center: limitedCenter,\n          zoom: zoom,\n          width: _this.state.width,\n          height: _this.state.height\n        });\n\n        var oldTiles = _this.state.oldTiles;\n\n        _this.setState({\n          oldTiles: oldTiles.filter(function (o) {\n            return o.roundedZoom !== tileValues.roundedZoom;\n          }).concat(tileValues)\n        }, NOOP);\n\n        var loadTracker = {};\n\n        for (var x = nextValues.tileMinX; x <= nextValues.tileMaxX; x++) {\n          for (var y = nextValues.tileMinY; y <= nextValues.tileMaxY; y++) {\n            var key = x + \"-\" + y + \"-\" + nextValues.roundedZoom;\n            loadTracker[key] = false;\n          }\n        }\n\n        _this._loadTracker = loadTracker;\n      }\n\n      _this.setState({\n        center: limitedCenter,\n        zoom: zoom || _this.state.zoom\n      }, NOOP);\n\n      var maybeZoom = _this.props.zoom ? _this.props.zoom : _this._lastZoom;\n      var maybeCenter = _this.props.center ? _this.props.center : _this._lastCenter;\n\n      if (zoom && (animationEnded || Math.abs(maybeZoom - zoom) > 0.001 || Math.abs(maybeCenter[0] - limitedCenter[0]) > 0.00001 || Math.abs(maybeCenter[1] - limitedCenter[1]) > 0.00001)) {\n        _this._lastZoom = zoom;\n        _this._lastCenter = [].concat(limitedCenter);\n\n        _this.syncToProps(limitedCenter, zoom);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getBoundsMinMax\", function (zoom) {\n      if (_this.props.limitBounds === 'center') {\n        return absoluteMinMax;\n      }\n\n      var _this$state2 = _this.state,\n          width = _this$state2.width,\n          height = _this$state2.height;\n\n      if (_this._minMaxCache && _this._minMaxCache[0] === zoom && _this._minMaxCache[1] === width && _this._minMaxCache[2] === height) {\n        return _this._minMaxCache[3];\n      }\n\n      var pixelsAtZoom = Math.pow(2, zoom) * 256;\n      var minLng = width > pixelsAtZoom ? 0 : tile2lng(width / 512, zoom);\n      var minLat = height > pixelsAtZoom ? 0 : tile2lat(Math.pow(2, zoom) - height / 512, zoom);\n      var maxLng = width > pixelsAtZoom ? 0 : tile2lng(Math.pow(2, zoom) - width / 512, zoom);\n      var maxLat = height > pixelsAtZoom ? 0 : tile2lat(height / 512, zoom);\n      var minMax = [minLat, maxLat, minLng, maxLng];\n      _this._minMaxCache = [zoom, width, height, minMax];\n      return minMax;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"tileLoaded\", function (key) {\n      if (_this._loadTracker && key in _this._loadTracker) {\n        _this._loadTracker[key] = true;\n        var unloadedCount = Object.values(_this._loadTracker).filter(function (v) {\n          return !v;\n        }).length;\n\n        if (unloadedCount === 0) {\n          _this.setState({\n            oldTiles: []\n          }, NOOP);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleTouchStart\", function (event) {\n      if (!_this._containerRef) {\n        return;\n      }\n\n      if (event.target && parentHasClass(event.target, 'pigeon-drag-block')) {\n        return;\n      }\n\n      if (event.touches.length === 1) {\n        var touch = event.touches[0];\n        var pixel = getMousePixel(_this._containerRef, touch);\n\n        if (_this.coordsInside(pixel)) {\n          _this._touchStartPixel = [pixel];\n\n          if (!_this.props.twoFingerDrag) {\n            _this.stopAnimating();\n\n            if (_this._lastTap && performanceNow() - _this._lastTap < DOUBLE_CLICK_DELAY) {\n              event.preventDefault();\n\n              var latLngNow = _this.pixelToLatLng(_this._touchStartPixel[0]);\n\n              _this.setCenterZoomTarget(null, Math.max(_this.props.minZoom, Math.min(_this.state.zoom + 1, _this.props.maxZoom)), false, latLngNow);\n            } else {\n              _this._lastTap = performanceNow();\n\n              _this.trackMoveEvents(pixel);\n            }\n          }\n        }\n      } else if (event.touches.length === 2 && _this._touchStartPixel) {\n        event.preventDefault();\n\n        _this.stopTrackingMoveEvents();\n\n        if (_this.state.pixelDelta || _this.state.zoomDelta) {\n          _this.sendDeltaChange();\n        }\n\n        var t1 = getMousePixel(_this._containerRef, event.touches[0]);\n        var t2 = getMousePixel(_this._containerRef, event.touches[1]);\n        _this._touchStartPixel = [t1, t2];\n        _this._touchStartMidPoint = [(t1[0] + t2[0]) / 2, (t1[1] + t2[1]) / 2];\n        _this._touchStartDistance = Math.sqrt(Math.pow(t1[0] - t2[0], 2) + Math.pow(t1[1] - t2[1], 2));\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (event) {\n      if (!_this._containerRef) {\n        _this._touchStartPixel = null;\n        return;\n      }\n\n      if (event.touches.length === 1 && _this._touchStartPixel) {\n        var touch = event.touches[0];\n        var pixel = getMousePixel(_this._containerRef, touch);\n\n        if (_this.props.twoFingerDrag) {\n          if (_this.coordsInside(pixel)) {\n            _this.showWarning('fingers');\n          }\n        } else {\n          event.preventDefault();\n\n          _this.trackMoveEvents(pixel);\n\n          _this.setState({\n            pixelDelta: [pixel[0] - _this._touchStartPixel[0][0], pixel[1] - _this._touchStartPixel[0][1]]\n          }, NOOP);\n        }\n      } else if (event.touches.length === 2 && _this._touchStartPixel && _this._touchStartMidPoint && _this._touchStartDistance) {\n        var _this$state3 = _this.state,\n            width = _this$state3.width,\n            height = _this$state3.height,\n            zoom = _this$state3.zoom;\n        event.preventDefault();\n        var t1 = getMousePixel(_this._containerRef, event.touches[0]);\n        var t2 = getMousePixel(_this._containerRef, event.touches[1]);\n        var midPoint = [(t1[0] + t2[0]) / 2, (t1[1] + t2[1]) / 2];\n        var midPointDiff = [midPoint[0] - _this._touchStartMidPoint[0], midPoint[1] - _this._touchStartMidPoint[1]];\n        var distance = Math.sqrt(Math.pow(t1[0] - t2[0], 2) + Math.pow(t1[1] - t2[1], 2));\n        var zoomDelta = Math.max(_this.props.minZoom, Math.min(_this.props.maxZoom, zoom + Math.log2(distance / _this._touchStartDistance))) - zoom;\n        var scale = Math.pow(2, zoomDelta);\n        var centerDiffDiff = [(width / 2 - midPoint[0]) * (scale - 1), (height / 2 - midPoint[1]) * (scale - 1)];\n\n        _this.setState({\n          zoomDelta: zoomDelta,\n          pixelDelta: [centerDiffDiff[0] + midPointDiff[0] * scale, centerDiffDiff[1] + midPointDiff[1] * scale]\n        }, NOOP);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleTouchEnd\", function (event) {\n      if (!_this._containerRef) {\n        _this._touchStartPixel = null;\n        return;\n      }\n\n      if (_this._touchStartPixel) {\n        var _this$props = _this.props,\n            zoomSnap = _this$props.zoomSnap,\n            twoFingerDrag = _this$props.twoFingerDrag,\n            minZoom = _this$props.minZoom,\n            maxZoom = _this$props.maxZoom;\n        var zoomDelta = _this.state.zoomDelta;\n\n        var _this$sendDeltaChange = _this.sendDeltaChange(),\n            center = _this$sendDeltaChange.center,\n            zoom = _this$sendDeltaChange.zoom;\n\n        if (event.touches.length === 0) {\n          if (twoFingerDrag) {\n            _this.clearWarning();\n          } else {\n            var oldTouchPixel = _this._touchStartPixel[0];\n            var newTouchPixel = getMousePixel(_this._containerRef, event.changedTouches[0]);\n\n            if (Math.abs(oldTouchPixel[0] - newTouchPixel[0]) > CLICK_TOLERANCE || Math.abs(oldTouchPixel[1] - newTouchPixel[1]) > CLICK_TOLERANCE) {\n              if (!_this._secondTouchEnd || performanceNow() - _this._secondTouchEnd > PINCH_RELEASE_THROW_DELAY) {\n                event.preventDefault();\n\n                _this.throwAfterMoving(newTouchPixel, center, zoom);\n              }\n            }\n\n            _this._touchStartPixel = null;\n            _this._secondTouchEnd = null;\n          }\n        } else if (event.touches.length === 1) {\n          event.preventDefault();\n          var touch = getMousePixel(_this._containerRef, event.touches[0]);\n          _this._secondTouchEnd = performanceNow();\n          _this._touchStartPixel = [touch];\n\n          _this.trackMoveEvents(touch);\n\n          if (zoomSnap) {\n            var latLng = _this._touchStartMidPoint ? _this.pixelToLatLng(_this._touchStartMidPoint) : _this.state.center;\n            var zoomTarget;\n\n            if (twoFingerDrag && Math.round(_this.state.zoom) === Math.round(_this.state.zoom + zoomDelta)) {\n              zoomTarget = Math.round(_this.state.zoom);\n            } else {\n              zoomTarget = zoomDelta > 0 ? Math.ceil(_this.state.zoom) : Math.floor(_this.state.zoom);\n            }\n\n            var _zoom = Math.max(minZoom, Math.min(zoomTarget, maxZoom));\n\n            _this.setCenterZoomTarget(latLng, _zoom, false, latLng);\n          }\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (event) {\n      if (!_this._containerRef) {\n        return;\n      }\n\n      var pixel = getMousePixel(_this._containerRef, event);\n\n      if (event.button === 0 && (!event.target || !parentHasClass(event.target, 'pigeon-drag-block')) && _this.coordsInside(pixel)) {\n        _this.stopAnimating();\n\n        event.preventDefault();\n\n        if (_this._lastClick && performanceNow() - _this._lastClick < DOUBLE_CLICK_DELAY) {\n          if (!parentHasClass(event.target, 'pigeon-click-block')) {\n            var latLngNow = _this.pixelToLatLng(_this._mousePosition || pixel);\n\n            _this.setCenterZoomTarget(null, Math.max(_this.props.minZoom, Math.min(_this.state.zoom + 1, _this.props.maxZoom)), false, latLngNow);\n          }\n        } else {\n          _this._lastClick = performanceNow();\n          _this._mouseDown = true;\n          _this._dragStart = pixel;\n\n          _this.trackMoveEvents(pixel);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (event) {\n      if (!_this._containerRef) {\n        return;\n      }\n\n      _this._mousePosition = getMousePixel(_this._containerRef, event);\n\n      if (_this._mouseDown && _this._dragStart) {\n        _this.trackMoveEvents(_this._mousePosition);\n\n        _this.setState({\n          pixelDelta: [_this._mousePosition[0] - _this._dragStart[0], _this._mousePosition[1] - _this._dragStart[1]]\n        }, NOOP);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function (event) {\n      if (!_this._containerRef) {\n        _this._mouseDown = false;\n        return;\n      }\n\n      var pixelDelta = _this.state.pixelDelta;\n\n      if (_this._mouseDown) {\n        _this._mouseDown = false;\n        var pixel = getMousePixel(_this._containerRef, event);\n\n        if (_this.props.onClick && (!event.target || !parentHasClass(event.target, 'pigeon-click-block')) && (!pixelDelta || Math.abs(pixelDelta[0]) + Math.abs(pixelDelta[1]) <= CLICK_TOLERANCE)) {\n          var latLng = _this.pixelToLatLng(pixel);\n\n          _this.props.onClick({\n            event: event,\n            latLng: latLng,\n            pixel: pixel\n          });\n\n          _this.setState({\n            pixelDelta: undefined\n          }, NOOP);\n        } else {\n          var _this$sendDeltaChange2 = _this.sendDeltaChange(),\n              center = _this$sendDeltaChange2.center,\n              zoom = _this$sendDeltaChange2.zoom;\n\n          _this.throwAfterMoving(pixel, center, zoom);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"stopTrackingMoveEvents\", function () {\n      _this._moveEvents = [];\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"trackMoveEvents\", function (coords) {\n      var timestamp = performanceNow();\n\n      if (_this._moveEvents.length === 0 || timestamp - _this._moveEvents[_this._moveEvents.length - 1].timestamp > 40) {\n        _this._moveEvents.push({\n          timestamp: timestamp,\n          coords: coords\n        });\n\n        if (_this._moveEvents.length > 2) {\n          _this._moveEvents.shift();\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"throwAfterMoving\", function (coords, center, zoom) {\n      var _this$state4 = _this.state,\n          width = _this$state4.width,\n          height = _this$state4.height;\n      var animate = _this.props.animate;\n      var timestamp = performanceNow();\n\n      var lastEvent = _this._moveEvents.shift();\n\n      if (lastEvent && animate) {\n        var deltaMs = Math.max(timestamp - lastEvent.timestamp, 1);\n        var delta = [(coords[0] - lastEvent.coords[0]) / deltaMs * 120, (coords[1] - lastEvent.coords[1]) / deltaMs * 120];\n        var distance = Math.sqrt(delta[0] * delta[0] + delta[1] * delta[1]);\n\n        if (distance > MIN_DRAG_FOR_THROW) {\n          var diagonal = Math.sqrt(width * width + height * height);\n          var throwTime = DIAGONAL_THROW_TIME * distance / diagonal;\n          var lng = tile2lng(lng2tile(center[1], zoom) - delta[0] / 256.0, zoom);\n          var lat = tile2lat(lat2tile(center[0], zoom) - delta[1] / 256.0, zoom);\n\n          _this.setCenterZoomTarget([lat, lng], zoom, false, null, throwTime);\n        }\n      }\n\n      _this.stopTrackingMoveEvents();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"sendDeltaChange\", function () {\n      var _this$state5 = _this.state,\n          center = _this$state5.center,\n          zoom = _this$state5.zoom,\n          pixelDelta = _this$state5.pixelDelta,\n          zoomDelta = _this$state5.zoomDelta;\n      var lat = center[0];\n      var lng = center[1];\n\n      if (pixelDelta || zoomDelta !== 0) {\n        lng = tile2lng(lng2tile(center[1], zoom + zoomDelta) - (pixelDelta ? pixelDelta[0] / 256.0 : 0), zoom + zoomDelta);\n        lat = tile2lat(lat2tile(center[0], zoom + zoomDelta) - (pixelDelta ? pixelDelta[1] / 256.0 : 0), zoom + zoomDelta);\n\n        _this.setCenterZoom([lat, lng], zoom + zoomDelta);\n      }\n\n      _this.setState({\n        pixelDelta: undefined,\n        zoomDelta: 0\n      }, NOOP);\n\n      return {\n        center: _this.limitCenterAtZoom([lat, lng], zoom + zoomDelta),\n        zoom: zoom + zoomDelta\n      };\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getBounds\", function (center, zoom) {\n      if (center === void 0) {\n        center = _this.state.center;\n      }\n\n      if (zoom === void 0) {\n        zoom = _this.zoomPlusDelta();\n      }\n\n      var _this$state6 = _this.state,\n          width = _this$state6.width,\n          height = _this$state6.height;\n      return {\n        ne: _this.pixelToLatLng([width - 1, 0], center, zoom),\n        sw: _this.pixelToLatLng([0, height - 1], center, zoom)\n      };\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"syncToProps\", function (center, zoom) {\n      if (center === void 0) {\n        center = _this.state.center;\n      }\n\n      if (zoom === void 0) {\n        zoom = _this.state.zoom;\n      }\n\n      var onBoundsChanged = _this.props.onBoundsChanged;\n\n      if (onBoundsChanged) {\n        var bounds = _this.getBounds(center, zoom);\n\n        onBoundsChanged({\n          center: center,\n          zoom: zoom,\n          bounds: bounds,\n          initial: !_this._boundsSynced\n        });\n        _this._boundsSynced = true;\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleWheel\", function (event) {\n      var _this$props2 = _this.props,\n          mouseEvents = _this$props2.mouseEvents,\n          metaWheelZoom = _this$props2.metaWheelZoom,\n          zoomSnap = _this$props2.zoomSnap,\n          animate = _this$props2.animate;\n\n      if (!mouseEvents) {\n        return;\n      }\n\n      if (!metaWheelZoom || event.metaKey || event.ctrlKey) {\n        event.preventDefault();\n        var addToZoom = -event.deltaY / SCROLL_PIXELS_FOR_ZOOM_LEVEL;\n\n        if (!zoomSnap && _this._zoomTarget) {\n          var stillToAdd = _this._zoomTarget - _this.state.zoom;\n\n          _this.zoomAroundMouse(addToZoom + stillToAdd, event);\n        } else {\n          if (animate) {\n            _this.zoomAroundMouse(addToZoom, event);\n          } else {\n            if (!_this._lastWheel || performanceNow() - _this._lastWheel > ANIMATION_TIME) {\n              _this._lastWheel = performanceNow();\n\n              _this.zoomAroundMouse(addToZoom, event);\n            }\n          }\n        }\n      } else {\n        _this.showWarning('wheel');\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"showWarning\", function (warningType) {\n      if (!_this.state.showWarning || _this.state.warningType !== warningType) {\n        _this.setState({\n          showWarning: true,\n          warningType: warningType\n        });\n      }\n\n      if (_this._warningClearTimeout) {\n        window.clearTimeout(_this._warningClearTimeout);\n      }\n\n      _this._warningClearTimeout = window.setTimeout(_this.clearWarning, WARNING_DISPLAY_TIMEOUT);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"clearWarning\", function () {\n      if (_this.state.showWarning) {\n        _this.setState({\n          showWarning: false\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"zoomAroundMouse\", function (zoomDiff, event) {\n      if (!_this._containerRef) {\n        return;\n      }\n\n      var zoom = _this.state.zoom;\n      var _this$props3 = _this.props,\n          minZoom = _this$props3.minZoom,\n          maxZoom = _this$props3.maxZoom,\n          zoomSnap = _this$props3.zoomSnap;\n      _this._mousePosition = getMousePixel(_this._containerRef, event);\n\n      if (!_this._mousePosition || zoom === minZoom && zoomDiff < 0 || zoom === maxZoom && zoomDiff > 0) {\n        return;\n      }\n\n      var latLngNow = _this.pixelToLatLng(_this._mousePosition);\n\n      var zoomTarget = zoom + zoomDiff;\n\n      if (zoomSnap) {\n        zoomTarget = zoomDiff < 0 ? Math.floor(zoomTarget) : Math.ceil(zoomTarget);\n      }\n\n      zoomTarget = Math.max(minZoom, Math.min(zoomTarget, maxZoom));\n\n      _this.setCenterZoomTarget(null, zoomTarget, false, latLngNow);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"zoomPlusDelta\", function () {\n      return _this.state.zoom + _this.state.zoomDelta;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"pixelToLatLng\", function (pixel, center, zoom) {\n      if (center === void 0) {\n        center = _this.state.center;\n      }\n\n      if (zoom === void 0) {\n        zoom = _this.zoomPlusDelta();\n      }\n\n      var _this$state7 = _this.state,\n          width = _this$state7.width,\n          height = _this$state7.height,\n          pixelDelta = _this$state7.pixelDelta;\n      var pointDiff = [(pixel[0] - width / 2 - (pixelDelta ? pixelDelta[0] : 0)) / 256.0, (pixel[1] - height / 2 - (pixelDelta ? pixelDelta[1] : 0)) / 256.0];\n      var tileX = lng2tile(center[1], zoom) + pointDiff[0];\n      var tileY = lat2tile(center[0], zoom) + pointDiff[1];\n      return [Math.max(absoluteMinMax[0], Math.min(absoluteMinMax[1], tile2lat(tileY, zoom))), Math.max(absoluteMinMax[2], Math.min(absoluteMinMax[3], tile2lng(tileX, zoom)))];\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"latLngToPixel\", function (latLng, center, zoom) {\n      if (center === void 0) {\n        center = _this.state.center;\n      }\n\n      if (zoom === void 0) {\n        zoom = _this.zoomPlusDelta();\n      }\n\n      var _this$state8 = _this.state,\n          width = _this$state8.width,\n          height = _this$state8.height,\n          pixelDelta = _this$state8.pixelDelta;\n      var tileCenterX = lng2tile(center[1], zoom);\n      var tileCenterY = lat2tile(center[0], zoom);\n      var tileX = lng2tile(latLng[1], zoom);\n      var tileY = lat2tile(latLng[0], zoom);\n      return [(tileX - tileCenterX) * 256.0 + width / 2 + (pixelDelta ? pixelDelta[0] : 0), (tileY - tileCenterY) * 256.0 + height / 2 + (pixelDelta ? pixelDelta[1] : 0)];\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"calculateZoomCenter\", function (center, coords, oldZoom, newZoom) {\n      var _this$state9 = _this.state,\n          width = _this$state9.width,\n          height = _this$state9.height;\n\n      var pixelBefore = _this.latLngToPixel(coords, center, oldZoom);\n\n      var pixelAfter = _this.latLngToPixel(coords, center, newZoom);\n\n      var newCenter = _this.pixelToLatLng([width / 2 + pixelAfter[0] - pixelBefore[0], height / 2 + pixelAfter[1] - pixelBefore[1]], center, newZoom);\n\n      return _this.limitCenterAtZoom(newCenter, newZoom);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"setRef\", function (dom) {\n      _this._containerRef = dom;\n    });\n\n    _this.syncToProps = debounce(_this.syncToProps, DEBOUNCE_DELAY);\n    _this._lastZoom = (_ref2 = (_props$defaultZoom = props.defaultZoom) !== null && _props$defaultZoom !== void 0 ? _props$defaultZoom : props.zoom) !== null && _ref2 !== void 0 ? _ref2 : 14;\n    _this._lastCenter = (_ref3 = (_props$defaultCenter = props.defaultCenter) !== null && _props$defaultCenter !== void 0 ? _props$defaultCenter : props.center) !== null && _ref3 !== void 0 ? _ref3 : [0, 0];\n    _this.state = {\n      zoom: _this._lastZoom,\n      center: _this._lastCenter,\n      width: (_ref4 = (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : props.defaultWidth) !== null && _ref4 !== void 0 ? _ref4 : -1,\n      height: (_ref5 = (_props$height = props.height) !== null && _props$height !== void 0 ? _props$height : props.defaultHeight) !== null && _ref5 !== void 0 ? _ref5 : -1,\n      zoomDelta: 0,\n      pixelDelta: undefined,\n      oldTiles: [],\n      showWarning: false,\n      warningType: undefined\n    };\n    return _this;\n  }\n\n  var _proto = Map.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    var _this2 = this;\n\n    this.props.mouseEvents && this.bindMouseEvents();\n    this.props.touchEvents && this.bindTouchEvents();\n\n    if (!this.props.width || !this.props.height) {\n      if (!this.updateWidthHeight()) {\n        requestAnimationFrame(this.updateWidthHeight);\n      }\n\n      this.bindResizeEvent();\n    }\n\n    this.bindWheelEvent();\n    this.syncToProps();\n\n    if (typeof window.ResizeObserver !== 'undefined') {\n      this._resizeObserver = new window.ResizeObserver(function () {\n        _this2.updateWidthHeight();\n      });\n\n      this._resizeObserver.observe(this._containerRef);\n    }\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.props.mouseEvents && this.unbindMouseEvents();\n    this.props.touchEvents && this.unbindTouchEvents();\n    this.unbindWheelEvent();\n\n    if (!this.props.width || !this.props.height) {\n      this.unbindResizeEvent();\n    }\n\n    if (this._resizeObserver) {\n      this._resizeObserver.disconnect();\n    }\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var _prevProps$center;\n\n    if (this.props.mouseEvents !== prevProps.mouseEvents) {\n      this.props.mouseEvents ? this.bindMouseEvents() : this.unbindMouseEvents();\n    }\n\n    if (this.props.touchEvents !== prevProps.touchEvents) {\n      this.props.touchEvents ? this.bindTouchEvents() : this.unbindTouchEvents();\n    }\n\n    if (this.props.width && this.props.width !== prevProps.width) {\n      this.setState({\n        width: this.props.width\n      });\n    }\n\n    if (this.props.height && this.props.height !== prevProps.height) {\n      this.setState({\n        height: this.props.height\n      });\n    }\n\n    if (!this.props.center && !this.props.zoom) {\n      return;\n    }\n\n    if ((!this.props.center || this.props.center[0] === (prevProps === null || prevProps === void 0 ? void 0 : (_prevProps$center = prevProps.center) === null || _prevProps$center === void 0 ? void 0 : _prevProps$center[0]) && this.props.center[1] === prevProps.center[1]) && this.props.zoom === prevProps.zoom) {\n      return;\n    }\n\n    var currentCenter = this._isAnimating ? this._centerTarget : this.state.center;\n    var currentZoom = this._isAnimating ? this._zoomTarget : this.state.zoom;\n\n    if (currentCenter && currentZoom) {\n      var _this$props$center, _this$props$zoom;\n\n      var nextCenter = (_this$props$center = this.props.center) !== null && _this$props$center !== void 0 ? _this$props$center : currentCenter;\n      var nextZoom = (_this$props$zoom = this.props.zoom) !== null && _this$props$zoom !== void 0 ? _this$props$zoom : currentZoom;\n\n      if (Math.abs(nextZoom - currentZoom) > 0.001 || Math.abs(nextCenter[0] - currentCenter[0]) > 0.0001 || Math.abs(nextCenter[1] - currentCenter[1]) > 0.0001) {\n        this.setCenterZoomTarget(nextCenter, nextZoom, true);\n      }\n    }\n  };\n\n  _proto.coordsInside = function coordsInside(pixel) {\n    var _this$state10 = this.state,\n        width = _this$state10.width,\n        height = _this$state10.height;\n\n    if (pixel[0] < 0 || pixel[1] < 0 || pixel[0] >= width || pixel[1] >= height) {\n      return false;\n    }\n\n    var parent = this._containerRef;\n\n    if (parent) {\n      var pos = parentPosition(parent);\n      var element = document.elementFromPoint(pixel[0] + pos.x, pixel[1] + pos.y);\n      return parent === element || parent.contains(element);\n    } else {\n      return false;\n    }\n  };\n\n  _proto.tileValues = function tileValues(_ref6) {\n    var center = _ref6.center,\n        zoom = _ref6.zoom,\n        pixelDelta = _ref6.pixelDelta,\n        zoomDelta = _ref6.zoomDelta,\n        width = _ref6.width,\n        height = _ref6.height;\n    var roundedZoom = Math.round(zoom + (zoomDelta || 0));\n    var zoomDiff = zoom + (zoomDelta || 0) - roundedZoom;\n    var scale = Math.pow(2, zoomDiff);\n    var scaleWidth = width / scale;\n    var scaleHeight = height / scale;\n    var tileCenterX = lng2tile(center[1], roundedZoom) - (pixelDelta ? pixelDelta[0] / 256.0 / scale : 0);\n    var tileCenterY = lat2tile(center[0], roundedZoom) - (pixelDelta ? pixelDelta[1] / 256.0 / scale : 0);\n    var halfWidth = scaleWidth / 2 / 256.0;\n    var halfHeight = scaleHeight / 2 / 256.0;\n    var tileMinX = Math.floor(tileCenterX - halfWidth);\n    var tileMaxX = Math.floor(tileCenterX + halfWidth);\n    var tileMinY = Math.floor(tileCenterY - halfHeight);\n    var tileMaxY = Math.floor(tileCenterY + halfHeight);\n    return {\n      tileMinX: tileMinX,\n      tileMaxX: tileMaxX,\n      tileMinY: tileMinY,\n      tileMaxY: tileMaxY,\n      tileCenterX: tileCenterX,\n      tileCenterY: tileCenterY,\n      roundedZoom: roundedZoom,\n      zoomDelta: zoomDelta || 0,\n      scaleWidth: scaleWidth,\n      scaleHeight: scaleHeight,\n      scale: scale\n    };\n  };\n\n  _proto.renderTiles = function renderTiles() {\n    var _this3 = this;\n\n    var _this$state11 = this.state,\n        oldTiles = _this$state11.oldTiles,\n        width = _this$state11.width,\n        height = _this$state11.height;\n    var dprs = this.props.dprs;\n    var mapUrl = this.props.provider || osm;\n\n    var _this$tileValues = this.tileValues(this.state),\n        tileMinX = _this$tileValues.tileMinX,\n        tileMaxX = _this$tileValues.tileMaxX,\n        tileMinY = _this$tileValues.tileMinY,\n        tileMaxY = _this$tileValues.tileMaxY,\n        tileCenterX = _this$tileValues.tileCenterX,\n        tileCenterY = _this$tileValues.tileCenterY,\n        roundedZoom = _this$tileValues.roundedZoom,\n        scaleWidth = _this$tileValues.scaleWidth,\n        scaleHeight = _this$tileValues.scaleHeight,\n        scale = _this$tileValues.scale;\n\n    var tiles = [];\n\n    for (var i = 0; i < oldTiles.length; i++) {\n      var old = oldTiles[i];\n      var zoomDiff = old.roundedZoom - roundedZoom;\n\n      if (Math.abs(zoomDiff) > 4 || zoomDiff === 0) {\n        continue;\n      }\n\n      var pow = 1 / Math.pow(2, zoomDiff);\n      var xDiff = -(tileMinX - old.tileMinX * pow) * 256;\n      var yDiff = -(tileMinY - old.tileMinY * pow) * 256;\n\n      var _xMin = Math.max(old.tileMinX, 0);\n\n      var _yMin = Math.max(old.tileMinY, 0);\n\n      var _xMax = Math.min(old.tileMaxX, Math.pow(2, old.roundedZoom) - 1);\n\n      var _yMax = Math.min(old.tileMaxY, Math.pow(2, old.roundedZoom) - 1);\n\n      for (var x = _xMin; x <= _xMax; x++) {\n        for (var y = _yMin; y <= _yMax; y++) {\n          tiles.push({\n            key: x + \"-\" + y + \"-\" + old.roundedZoom,\n            url: mapUrl(x, y, old.roundedZoom),\n            srcSet: srcSet(dprs, mapUrl, x, y, old.roundedZoom),\n            left: xDiff + (x - old.tileMinX) * 256 * pow,\n            top: yDiff + (y - old.tileMinY) * 256 * pow,\n            width: 256 * pow,\n            height: 256 * pow,\n            active: false\n          });\n        }\n      }\n    }\n\n    var xMin = Math.max(tileMinX, 0);\n    var yMin = Math.max(tileMinY, 0);\n    var xMax = Math.min(tileMaxX, Math.pow(2, roundedZoom) - 1);\n    var yMax = Math.min(tileMaxY, Math.pow(2, roundedZoom) - 1);\n\n    for (var _x = xMin; _x <= xMax; _x++) {\n      for (var _y = yMin; _y <= yMax; _y++) {\n        tiles.push({\n          key: _x + \"-\" + _y + \"-\" + roundedZoom,\n          url: mapUrl(_x, _y, roundedZoom),\n          srcSet: srcSet(dprs, mapUrl, _x, _y, roundedZoom),\n          left: (_x - tileMinX) * 256,\n          top: (_y - tileMinY) * 256,\n          width: 256,\n          height: 256,\n          active: true\n        });\n      }\n    }\n\n    var boxStyle = {\n      width: scaleWidth,\n      height: scaleHeight,\n      position: 'absolute',\n      top: \"calc((100% - \" + height + \"px) / 2)\",\n      left: \"calc((100% - \" + width + \"px) / 2)\",\n      overflow: 'hidden',\n      willChange: 'transform',\n      transform: \"scale(\" + scale + \", \" + scale + \")\",\n      transformOrigin: 'top left'\n    };\n    var boxClassname = this.props.boxClassname || 'pigeon-tiles-box';\n    var left = -((tileCenterX - tileMinX) * 256 - scaleWidth / 2);\n    var top = -((tileCenterY - tileMinY) * 256 - scaleHeight / 2);\n    var tilesStyle = {\n      position: 'absolute',\n      width: (tileMaxX - tileMinX + 1) * 256,\n      height: (tileMaxY - tileMinY + 1) * 256,\n      willChange: 'transform',\n      transform: \"translate(\" + left + \"px, \" + top + \"px)\"\n    };\n    var Tile = this.props.tileComponent;\n    return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n      style: boxStyle,\n      className: boxClassname\n    }, /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n      className: \"pigeon-tiles\",\n      style: tilesStyle\n    }, tiles.map(function (tile) {\n      return /*#__PURE__*/React__default[\"default\"].createElement(Tile, {\n        key: tile.key,\n        tile: tile,\n        tileLoaded: function tileLoaded() {\n          return _this3.tileLoaded(tile.key);\n        }\n      });\n    })));\n  };\n\n  _proto.renderOverlays = function renderOverlays() {\n    var _this4 = this;\n\n    var _this$state12 = this.state,\n        width = _this$state12.width,\n        height = _this$state12.height,\n        center = _this$state12.center;\n    var mapState = {\n      bounds: this.getBounds(),\n      zoom: this.zoomPlusDelta(),\n      center: center,\n      width: width,\n      height: height\n    };\n    var childrenWithProps = React__default[\"default\"].Children.map(this.props.children, function (child) {\n      if (!child) {\n        return null;\n      }\n\n      if (! /*#__PURE__*/React__default[\"default\"].isValidElement(child)) {\n        return child;\n      }\n\n      var _child$props = child.props,\n          anchor = _child$props.anchor,\n          position = _child$props.position,\n          offset = _child$props.offset;\n\n      var c = _this4.latLngToPixel(anchor || position || center);\n\n      return /*#__PURE__*/React__default[\"default\"].cloneElement(child, {\n        left: c[0] - (offset ? offset[0] : 0),\n        top: c[1] - (offset ? offset[1] : 0),\n        latLngToPixel: _this4.latLngToPixel,\n        pixelToLatLng: _this4.pixelToLatLng,\n        setCenterZoom: _this4.setCenterZoomForChildren,\n        mapProps: _this4.props,\n        mapState: mapState\n      });\n    });\n    var childrenStyle = {\n      position: 'absolute',\n      width: width,\n      height: height,\n      top: \"calc((100% - \" + height + \"px) / 2)\",\n      left: \"calc((100% - \" + width + \"px) / 2)\"\n    };\n    return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n      className: \"pigeon-overlays\",\n      style: childrenStyle\n    }, childrenWithProps);\n  };\n\n  _proto.renderAttribution = function renderAttribution() {\n    var _this$props4 = this.props,\n        attribution = _this$props4.attribution,\n        attributionPrefix = _this$props4.attributionPrefix;\n\n    if (attribution === false) {\n      return null;\n    }\n\n    var style = {\n      position: 'absolute',\n      bottom: 0,\n      right: 0,\n      fontSize: '11px',\n      padding: '2px 5px',\n      background: 'rgba(255, 255, 255, 0.7)',\n      fontFamily: \"'Helvetica Neue', Helvetica, Arial, sans-serif\",\n      color: '#333'\n    };\n    var linkStyle = {\n      color: '#0078A8',\n      textDecoration: 'none'\n    };\n    return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n      key: \"attr\",\n      className: \"pigeon-attribution\",\n      style: style\n    }, attributionPrefix === false ? null : /*#__PURE__*/React__default[\"default\"].createElement(\"span\", null, attributionPrefix || /*#__PURE__*/React__default[\"default\"].createElement(\"a\", {\n      href: \"https://pigeon-maps.js.org/\",\n      style: linkStyle,\n      target: \"_blank\",\n      rel: \"noreferrer noopener\"\n    }, \"Pigeon\"), ' | '), attribution || /*#__PURE__*/React__default[\"default\"].createElement(\"span\", null, ' © ', /*#__PURE__*/React__default[\"default\"].createElement(\"a\", {\n      href: \"https://www.openstreetmap.org/copyright\",\n      style: linkStyle,\n      target: \"_blank\",\n      rel: \"noreferrer noopener\"\n    }, \"OpenStreetMap\"), ' contributors'));\n  };\n\n  _proto.renderWarning = function renderWarning() {\n    var _this$props5 = this.props,\n        metaWheelZoom = _this$props5.metaWheelZoom,\n        metaWheelZoomWarning = _this$props5.metaWheelZoomWarning,\n        twoFingerDrag = _this$props5.twoFingerDrag,\n        twoFingerDragWarning = _this$props5.twoFingerDragWarning,\n        warningZIndex = _this$props5.warningZIndex;\n    var _this$state13 = this.state,\n        showWarning = _this$state13.showWarning,\n        warningType = _this$state13.warningType,\n        width = _this$state13.width,\n        height = _this$state13.height;\n\n    if (metaWheelZoom && metaWheelZoomWarning || twoFingerDrag && twoFingerDragWarning) {\n      var style = {\n        position: 'absolute',\n        top: 0,\n        left: 0,\n        width: width,\n        height: height,\n        overflow: 'hidden',\n        pointerEvents: 'none',\n        opacity: showWarning ? 100 : 0,\n        transition: 'opacity 300ms',\n        background: 'rgba(0,0,0,0.5)',\n        color: '#fff',\n        display: 'flex',\n        justifyContent: 'center',\n        alignItems: 'center',\n        fontSize: 22,\n        fontFamily: '\"Arial\", sans-serif',\n        textAlign: 'center',\n        zIndex: warningZIndex\n      };\n      var meta = typeof window !== 'undefined' && window.navigator && window.navigator.platform.toUpperCase().indexOf('MAC') >= 0 ? '⌘' : 'ctrl';\n      var warningText = warningType === 'fingers' ? twoFingerDragWarning : metaWheelZoomWarning;\n      return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n        className: \"pigeon-overlay-warning\",\n        style: style\n      }, warningText.replace('META', meta));\n    } else {\n      return null;\n    }\n  };\n\n  _proto.render = function render() {\n    var _this$props6 = this.props,\n        touchEvents = _this$props6.touchEvents,\n        twoFingerDrag = _this$props6.twoFingerDrag;\n    var _this$state14 = this.state,\n        width = _this$state14.width,\n        height = _this$state14.height;\n    var containerStyle = {\n      width: this.props.width ? width : '100%',\n      height: this.props.height ? height : '100%',\n      position: 'relative',\n      display: 'inline-block',\n      overflow: 'hidden',\n      background: '#dddddd',\n      touchAction: touchEvents ? twoFingerDrag ? 'pan-x pan-y' : 'none' : 'auto'\n    };\n    var hasSize = !!(width && height);\n    return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n      style: containerStyle,\n      ref: this.setRef,\n      dir: \"ltr\"\n    }, hasSize && this.renderTiles(), hasSize && this.renderOverlays(), hasSize && this.renderAttribution(), hasSize && this.renderWarning());\n  };\n\n  return Map;\n}(React.Component);\n\n_defineProperty(Map, \"defaultProps\", {\n  animate: true,\n  metaWheelZoom: false,\n  metaWheelZoomWarning: 'Use META + wheel to zoom!',\n  twoFingerDrag: false,\n  twoFingerDragWarning: 'Use two fingers to move the map',\n  zoomSnap: true,\n  mouseEvents: true,\n  touchEvents: true,\n  warningZIndex: 100,\n  animateMaxScreens: 5,\n  minZoom: 1,\n  maxZoom: 18,\n  limitBounds: 'center',\n  dprs: [],\n  tileComponent: ImgTile\n});\n\nfunction Marker(props) {\n  var width = typeof props.width !== 'undefined' ? props.width : typeof props.height !== 'undefined' ? props.height * 29 / 34 : 29;\n  var height = typeof props.height !== 'undefined' ? props.height : typeof props.width !== 'undefined' ? props.width * 34 / 29 : 34;\n\n  var _useState = React.useState(props.hover || false),\n      internalHover = _useState[0],\n      setInternalHover = _useState[1];\n\n  var hover = typeof props.hover === 'undefined' ? internalHover : props.hover;\n  var color = props.color || '#93C0D0';\n\n  var eventParameters = function eventParameters(event) {\n    return {\n      event: event,\n      anchor: props.anchor,\n      payload: props.payload\n    };\n  };\n\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n    style: _objectSpread2({\n      position: 'absolute',\n      transform: \"translate(\" + (props.left - width / 2) + \"px, \" + (props.top - (height - 1)) + \"px)\",\n      filter: hover ? 'drop-shadow(0 0 4px rgba(0, 0, 0, .3))' : '',\n      pointerEvents: 'none',\n      cursor: 'pointer'\n    }, props.style || {}),\n    className: props.className ? props.className + \" pigeon-click-block\" : 'pigeon-click-block',\n    onClick: props.onClick ? function (event) {\n      return props.onClick(eventParameters(event));\n    } : null,\n    onContextMenu: props.onContextMenu ? function (event) {\n      return props.onContextMenu(eventParameters(event));\n    } : null,\n    onMouseOver: function onMouseOver(event) {\n      props.onMouseOver && props.onMouseOver(eventParameters(event));\n      setInternalHover(true);\n    },\n    onMouseOut: function onMouseOut(event) {\n      props.onMouseOut && props.onMouseOut(eventParameters(event));\n      setInternalHover(false);\n    }\n  }, props.children || /*#__PURE__*/React__default[\"default\"].createElement(\"svg\", {\n    width: width,\n    height: height,\n    viewBox: \"0 0 61 71\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, /*#__PURE__*/React__default[\"default\"].createElement(\"g\", {\n    style: {\n      pointerEvents: 'auto'\n    }\n  }, /*#__PURE__*/React__default[\"default\"].createElement(\"path\", {\n    d: \"M52 31.5C52 36.8395 49.18 42.314 45.0107 47.6094C40.8672 52.872 35.619 57.678 31.1763 61.6922C30.7916 62.0398 30.2084 62.0398 29.8237 61.6922C25.381 57.678 20.1328 52.872 15.9893 47.6094C11.82 42.314 9 36.8395 9 31.5C9 18.5709 18.6801 9 30.5 9C42.3199 9 52 18.5709 52 31.5Z\",\n    fill: color,\n    stroke: \"white\",\n    strokeWidth: \"4\"\n  }), /*#__PURE__*/React__default[\"default\"].createElement(\"circle\", {\n    cx: \"30.5\",\n    cy: \"30.5\",\n    r: \"8.5\",\n    fill: \"white\",\n    opacity: hover ? 0.98 : 0.6\n  }))));\n}\n\nfunction Overlay(props) {\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n    style: _objectSpread2({\n      position: 'absolute',\n      transform: \"translate(\" + props.left + \"px, \" + props.top + \"px)\"\n    }, props.style || {}),\n    className: props.className ? props.className + \" pigeon-click-block\" : 'pigeon-click-block'\n  }, props.children);\n}\n\nvar defaultSvgAttributes = {\n  fill: '#93c0d099',\n  strokeWidth: '2',\n  stroke: 'white',\n  r: '30'\n};\nfunction PointComponent(props) {\n  var _props$svgAttributes;\n\n  var latLngToPixel = props.latLngToPixel;\n  var _props$coordinates = props.coordinates,\n      y = _props$coordinates[0],\n      x = _props$coordinates[1];\n\n  var _latLngToPixel = latLngToPixel([x, y]),\n      cx = _latLngToPixel[0],\n      cy = _latLngToPixel[1];\n\n  if ((_props$svgAttributes = props.svgAttributes) !== null && _props$svgAttributes !== void 0 && _props$svgAttributes.path) {\n    var path = \"M\" + cx + \",\" + cy + \"c\" + props.svgAttributes.path.split(/[c|C|L|l|v|V|h|H]([\\s\\S]*)/)[1];\n    return /*#__PURE__*/React__default[\"default\"].createElement(\"path\", _objectSpread2({\n      d: path\n    }, props.svgAttributes));\n  }\n\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"circle\", _objectSpread2({\n    cx: cx,\n    cy: cy\n  }, props.svgAttributes));\n}\nfunction MultiPoint(props) {\n  return /*#__PURE__*/React__default[\"default\"].createElement(React__default[\"default\"].Fragment, null, props.coordinates.map(function (point, i) {\n    return /*#__PURE__*/React__default[\"default\"].createElement(PointComponent, _objectSpread2(_objectSpread2({}, props), {}, {\n      coordinates: point,\n      key: i\n    }));\n  }));\n}\nfunction LineString(props) {\n  var latLngToPixel = props.latLngToPixel;\n  var p = 'M' + props.coordinates.reduce(function (a, _ref) {\n    var y = _ref[0],\n        x = _ref[1];\n\n    var _latLngToPixel2 = latLngToPixel([x, y]),\n        v = _latLngToPixel2[0],\n        w = _latLngToPixel2[1];\n\n    return a + ' ' + v + ' ' + w;\n  }, '');\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"path\", _objectSpread2({\n    d: p\n  }, props.svgAttributes));\n}\nfunction MultiLineString(props) {\n  return /*#__PURE__*/React__default[\"default\"].createElement(React__default[\"default\"].Fragment, null, props.coordinates.map(function (line, i) {\n    return /*#__PURE__*/React__default[\"default\"].createElement(LineString, _objectSpread2(_objectSpread2({}, props), {}, {\n      coordinates: line,\n      key: i\n    }));\n  }));\n}\nfunction Polygon(props) {\n  var latLngToPixel = props.latLngToPixel;\n  var p = props.coordinates.reduce(function (a, part) {\n    return a + ' M' + part.reduce(function (a, _ref2) {\n      var y = _ref2[0],\n          x = _ref2[1];\n\n      var _latLngToPixel3 = latLngToPixel([x, y]),\n          v = _latLngToPixel3[0],\n          w = _latLngToPixel3[1];\n\n      return a + ' ' + v + ' ' + w;\n    }, '') + 'Z';\n  }, '');\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"path\", _objectSpread2({\n    d: p\n  }, props.svgAttributes));\n}\nfunction MultiPolygon(props) {\n  return /*#__PURE__*/React__default[\"default\"].createElement(React__default[\"default\"].Fragment, null, props.coordinates.map(function (polygon, i) {\n    return /*#__PURE__*/React__default[\"default\"].createElement(Polygon, _objectSpread2(_objectSpread2({}, props), {}, {\n      coordinates: polygon,\n      key: i\n    }));\n  }));\n}\nfunction GeometryCollection(props) {\n  var renderer = {\n    Point: PointComponent,\n    MultiPoint: MultiPoint,\n    LineString: LineString,\n    MultiLineString: MultiLineString,\n    Polygon: Polygon,\n    MultiPolygon: MultiPolygon\n  };\n  var _props$geometry = props.geometry,\n      type = _props$geometry.type,\n      coordinates = _props$geometry.coordinates,\n      geometries = _props$geometry.geometries;\n\n  if (type === 'GeometryCollection') {\n    return /*#__PURE__*/React__default[\"default\"].createElement(React__default[\"default\"].Fragment, null, geometries.map(function (geometry, i) {\n      return /*#__PURE__*/React__default[\"default\"].createElement(GeometryCollection, _objectSpread2(_objectSpread2({\n        key: i\n      }, props), {}, {\n        geometry: geometry\n      }));\n    }));\n  }\n\n  var Component = renderer[type];\n\n  if (Component === undefined) {\n    console.warn(\"The GeoJson Type \" + type + \" is not known\");\n    return null;\n  }\n\n  return /*#__PURE__*/React__default[\"default\"].createElement(Component, {\n    latLngToPixel: props.latLngToPixel,\n    geometry: props.geometry,\n    coordinates: coordinates,\n    svgAttributes: props.svgAttributes\n  });\n}\nfunction GeoJsonFeature(props) {\n  var _useState = React.useState(props.hover || false),\n      internalHover = _useState[0],\n      setInternalHover = _useState[1];\n\n  var hover = props.hover !== undefined ? props.hover : internalHover;\n  var callbackSvgAttributes = props.styleCallback && props.styleCallback(props.feature, hover);\n  var svgAttributes = callbackSvgAttributes ? props.svgAttributes ? _objectSpread2(_objectSpread2({}, props.svgAttributes), callbackSvgAttributes) : callbackSvgAttributes : props.svgAttributes ? props.svgAttributes : defaultSvgAttributes;\n\n  var eventParameters = function eventParameters(event) {\n    return {\n      event: event,\n      anchor: props.anchor,\n      payload: props.feature\n    };\n  };\n\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"g\", {\n    clipRule: \"evenodd\",\n    style: {\n      pointerEvents: 'auto'\n    },\n    onClick: props.onClick ? function (event) {\n      return props.onClick(eventParameters(event));\n    } : null,\n    onContextMenu: props.onContextMenu ? function (event) {\n      return props.onContextMenu(eventParameters(event));\n    } : null,\n    onMouseOver: function onMouseOver(event) {\n      props.onMouseOver && props.onMouseOver(eventParameters(event));\n      setInternalHover(true);\n    },\n    onMouseOut: function onMouseOut(event) {\n      props.onMouseOut && props.onMouseOut(eventParameters(event));\n      setInternalHover(false);\n    }\n  }, /*#__PURE__*/React__default[\"default\"].createElement(GeometryCollection, _objectSpread2(_objectSpread2(_objectSpread2({}, props), props.feature), {}, {\n    svgAttributes: svgAttributes\n  })));\n}\nfunction GeoJson(props) {\n  var _props$mapState = props.mapState,\n      width = _props$mapState.width,\n      height = _props$mapState.height;\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n    style: _objectSpread2({\n      position: 'absolute',\n      left: '0',\n      top: '0',\n      pointerEvents: 'none',\n      cursor: 'pointer'\n    }, props.style || {}),\n    className: props.className ? props.className + \" pigeon-click-block\" : 'pigeon-click-block'\n  }, /*#__PURE__*/React__default[\"default\"].createElement(\"svg\", {\n    width: width,\n    height: height,\n    viewBox: \"0 0 \" + width + \" \" + height,\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, props.data && props.data.features.map(function (feature, i) {\n    return /*#__PURE__*/React__default[\"default\"].createElement(GeoJsonFeature, _objectSpread2(_objectSpread2({\n      key: i\n    }, props), {}, {\n      feature: feature\n    }));\n  }), React__default[\"default\"].Children.map(props.children, function (child) {\n    if (!child) {\n      return null;\n    }\n\n    if (! /*#__PURE__*/React__default[\"default\"].isValidElement(child)) {\n      return child;\n    }\n\n    return /*#__PURE__*/React__default[\"default\"].cloneElement(child, props);\n  })));\n}\nfunction GeoJsonLoader(props) {\n  var _useState2 = React.useState(props.data ? props.data : null),\n      data = _useState2[0],\n      setData = _useState2[1];\n\n  React.useEffect(function () {\n    fetch(props.link).then(function (response) {\n      return response.json();\n    }).then(function (data) {\n      return setData(data);\n    });\n  }, [props.link]);\n  return data ? /*#__PURE__*/React__default[\"default\"].createElement(GeoJson, _objectSpread2({\n    data: data\n  }, props)) : null;\n}\n\nfunction isDescendentOf(element, ancestor) {\n  while (element) {\n    if (element === ancestor) {\n      return true;\n    }\n\n    element = element.parentElement;\n  }\n\n  return false;\n}\n\nvar defaultState = {\n  isDragging: false,\n  startX: undefined,\n  startY: undefined,\n  startLeft: undefined,\n  startTop: undefined,\n  deltaX: 0,\n  deltaY: 0\n};\nfunction Draggable(props) {\n  var dragRef = React.useRef();\n  var propsRef = React.useRef(props);\n  var stateRef = React.useRef(_objectSpread2({}, defaultState));\n\n  var _useState = React.useState(defaultState),\n      _state = _useState[0],\n      _setState = _useState[1];\n\n  propsRef.current = props;\n\n  var setState = function setState(stateUpdate) {\n    var newState = _objectSpread2(_objectSpread2({}, stateRef.current), stateUpdate);\n\n    stateRef.current = newState;\n\n    _setState(newState);\n  };\n\n  var _props$mapProps = props.mapProps,\n      mouseEvents = _props$mapProps.mouseEvents,\n      touchEvents = _props$mapProps.touchEvents;\n  React.useEffect(function () {\n    var handleDragStart = function handleDragStart(event) {\n      if (isDescendentOf(event.target, dragRef.current)) {\n        event.preventDefault();\n        setState({\n          isDragging: true,\n          startX: ('touches' in event ? event.touches[0] : event).clientX,\n          startY: ('touches' in event ? event.touches[0] : event).clientY,\n          startLeft: propsRef.current.left,\n          startTop: propsRef.current.top,\n          deltaX: 0,\n          deltaY: 0\n        });\n\n        if (propsRef.current.onDragStart) {\n          var _propsRef$current = propsRef.current,\n              _left = _propsRef$current.left,\n              _top = _propsRef$current.top,\n              offset = _propsRef$current.offset,\n              pixelToLatLng = _propsRef$current.pixelToLatLng;\n          propsRef.current.onDragMove(pixelToLatLng([_left + (offset ? offset[0] : 0), _top + (offset ? offset[1] : 0)]));\n        }\n      }\n    };\n\n    var handleDragMove = function handleDragMove(event) {\n      if (!stateRef.current.isDragging) {\n        return;\n      }\n\n      event.preventDefault();\n      var x = ('touches' in event ? event.touches[0] : event).clientX;\n      var y = ('touches' in event ? event.touches[0] : event).clientY;\n      var deltaX = x - stateRef.current.startX;\n      var deltaY = y - stateRef.current.startY;\n      setState({\n        deltaX: deltaX,\n        deltaY: deltaY\n      });\n\n      if (propsRef.current.onDragMove) {\n        var _propsRef$current2 = propsRef.current,\n            offset = _propsRef$current2.offset,\n            pixelToLatLng = _propsRef$current2.pixelToLatLng;\n        var _stateRef$current = stateRef.current,\n            _startLeft = _stateRef$current.startLeft,\n            _startTop = _stateRef$current.startTop;\n        propsRef.current.onDragMove(pixelToLatLng([_startLeft + deltaX + (offset ? offset[0] : 0), _startTop + deltaY + (offset ? offset[1] : 0)]));\n      }\n    };\n\n    var handleDragEnd = function handleDragEnd(event) {\n      var _propsRef$current$onD, _propsRef$current4;\n\n      if (!stateRef.current.isDragging) {\n        return;\n      }\n\n      event.preventDefault();\n      var _propsRef$current3 = propsRef.current,\n          offset = _propsRef$current3.offset,\n          pixelToLatLng = _propsRef$current3.pixelToLatLng;\n      var _stateRef$current2 = stateRef.current,\n          deltaX = _stateRef$current2.deltaX,\n          deltaY = _stateRef$current2.deltaY,\n          startLeft = _stateRef$current2.startLeft,\n          startTop = _stateRef$current2.startTop;\n      (_propsRef$current$onD = (_propsRef$current4 = propsRef.current).onDragEnd) === null || _propsRef$current$onD === void 0 ? void 0 : _propsRef$current$onD.call(_propsRef$current4, pixelToLatLng([startLeft + deltaX + (offset ? offset[0] : 0), startTop + deltaY + (offset ? offset[1] : 0)]));\n      setState({\n        isDragging: false,\n        startX: undefined,\n        startY: undefined,\n        startLeft: undefined,\n        startTop: undefined,\n        deltaX: 0,\n        deltaY: 0\n      });\n    };\n\n    var wa = function wa(e, t, o) {\n      return window.addEventListener(e, t, o);\n    };\n\n    var wr = function wr(e, t) {\n      return window.removeEventListener(e, t);\n    };\n\n    if (mouseEvents) {\n      wa('mousedown', handleDragStart);\n      wa('mousemove', handleDragMove);\n      wa('mouseup', handleDragEnd);\n    }\n\n    if (touchEvents) {\n      wa('touchstart', handleDragStart, {\n        passive: false\n      });\n      wa('touchmove', handleDragMove, {\n        passive: false\n      });\n      wa('touchend', handleDragEnd, {\n        passive: false\n      });\n    }\n\n    return function () {\n      if (mouseEvents) {\n        wr('mousedown', handleDragStart);\n        wr('mousemove', handleDragMove);\n        wr('mouseup', handleDragEnd);\n      }\n\n      if (touchEvents) {\n        wr('touchstart', handleDragStart);\n        wr('touchmove', handleDragMove);\n        wr('touchend', handleDragEnd);\n      }\n    };\n  }, [mouseEvents, touchEvents]);\n  var left = props.left,\n      top = props.top,\n      className = props.className,\n      style = props.style;\n  var deltaX = _state.deltaX,\n      deltaY = _state.deltaY,\n      startLeft = _state.startLeft,\n      startTop = _state.startTop,\n      isDragging = _state.isDragging;\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n    style: _objectSpread2(_objectSpread2({\n      cursor: isDragging ? 'grabbing' : 'grab'\n    }, style || {}), {}, {\n      position: 'absolute',\n      transform: \"translate(\" + (isDragging ? startLeft + deltaX : left) + \"px, \" + (isDragging ? startTop + deltaY : top) + \"px)\"\n    }),\n    ref: dragRef,\n    className: \"pigeon-drag-block\" + (className ? \" \" + className : '')\n  }, props.children);\n}\n\nvar commonStyle = {\n  position: 'absolute',\n  top: 10,\n  left: 10\n};\nvar commonButtonStyle = {\n  width: 28,\n  height: 28,\n  borderRadius: 2,\n  boxShadow: '0 1px 4px -1px rgba(0,0,0,.3)',\n  background: 'white',\n  lineHeight: '26px',\n  fontSize: '20px',\n  fontWeight: 700,\n  color: '#666',\n  marginBottom: 1,\n  cursor: 'pointer',\n  border: 'none',\n  display: 'block',\n  outline: 'none'\n};\nfunction ZoomControl(_ref) {\n  var style = _ref.style,\n      buttonStyle = _ref.buttonStyle,\n      setCenterZoom = _ref.setCenterZoom,\n      mapState = _ref.mapState,\n      mapProps = _ref.mapProps;\n  return /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n    className: \"pigeon-zoom-buttons pigeon-drag-block\",\n    style: style ? _objectSpread2(_objectSpread2({}, commonStyle), style) : commonStyle\n  }, /*#__PURE__*/React__default[\"default\"].createElement(\"button\", {\n    className: \"pigeon-zoom-in\",\n    type: \"button\",\n    style: buttonStyle ? _objectSpread2(_objectSpread2({}, commonButtonStyle), buttonStyle) : commonButtonStyle,\n    onClick: function onClick() {\n      return setCenterZoom(mapState.center, Math.min(mapState.zoom + 1, mapProps.maxZoom));\n    }\n  }, \"+\"), /*#__PURE__*/React__default[\"default\"].createElement(\"button\", {\n    className: \"pigeon-zoom-out\",\n    type: \"button\",\n    style: buttonStyle ? _objectSpread2(_objectSpread2({}, commonButtonStyle), buttonStyle) : commonButtonStyle,\n    onClick: function onClick() {\n      return setCenterZoom(mapState.center, Math.max(mapState.zoom - 1, mapProps.minZoom));\n    }\n  }, \"\\u2013\"));\n}\n\nexports.Draggable = Draggable;\nexports.GeoJson = GeoJson;\nexports.GeoJsonFeature = GeoJsonFeature;\nexports.GeoJsonLoader = GeoJsonLoader;\nexports.Map = Map;\nexports.Marker = Marker;\nexports.Overlay = Overlay;\nexports.ZoomControl = ZoomControl;\n"]}