You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
276 KiB
1 lines
276 KiB
{"ast":null,"code":"/*\n Leaflet.draw 1.0.4, a plugin that adds drawing and editing tools to Leaflet powered maps.\n (c) 2012-2017, Jacob Toye, Jon West, Smartrak, Leaflet\n\n https://github.com/Leaflet/Leaflet.draw\n http://leafletjs.com\n */\n!function (t, e, i) {\n function o(t, e) {\n for (; (t = t.parentElement) && !t.classList.contains(e););\n\n return t;\n }\n\n L.drawVersion = \"1.0.4\", L.Draw = {}, L.drawLocal = {\n draw: {\n toolbar: {\n actions: {\n title: \"Cancel drawing\",\n text: \"Cancel\"\n },\n finish: {\n title: \"Finish drawing\",\n text: \"Finish\"\n },\n undo: {\n title: \"Delete last point drawn\",\n text: \"Delete last point\"\n },\n buttons: {\n polyline: \"Draw a polyline\",\n polygon: \"Draw a polygon\",\n rectangle: \"Draw a rectangle\",\n circle: \"Draw a circle\",\n marker: \"Draw a marker\",\n circlemarker: \"Draw a circlemarker\"\n }\n },\n handlers: {\n circle: {\n tooltip: {\n start: \"Click and drag to draw circle.\"\n },\n radius: \"Radius\"\n },\n circlemarker: {\n tooltip: {\n start: \"Click map to place circle marker.\"\n }\n },\n marker: {\n tooltip: {\n start: \"Click map to place marker.\"\n }\n },\n polygon: {\n tooltip: {\n start: \"Click to start drawing shape.\",\n cont: \"Click to continue drawing shape.\",\n end: \"Click first point to close this shape.\"\n }\n },\n polyline: {\n error: \"<strong>Error:</strong> shape edges cannot cross!\",\n tooltip: {\n start: \"Click to start drawing line.\",\n cont: \"Click to continue drawing line.\",\n end: \"Click last point to finish line.\"\n }\n },\n rectangle: {\n tooltip: {\n start: \"Click and drag to draw rectangle.\"\n }\n },\n simpleshape: {\n tooltip: {\n end: \"Release mouse to finish drawing.\"\n }\n }\n }\n },\n edit: {\n toolbar: {\n actions: {\n save: {\n title: \"Save changes\",\n text: \"Save\"\n },\n cancel: {\n title: \"Cancel editing, discards all changes\",\n text: \"Cancel\"\n },\n clearAll: {\n title: \"Clear all layers\",\n text: \"Clear All\"\n }\n },\n buttons: {\n edit: \"Edit layers\",\n editDisabled: \"No layers to edit\",\n remove: \"Delete layers\",\n removeDisabled: \"No layers to delete\"\n }\n },\n handlers: {\n edit: {\n tooltip: {\n text: \"Drag handles or markers to edit features.\",\n subtext: \"Click cancel to undo changes.\"\n }\n },\n remove: {\n tooltip: {\n text: \"Click on a feature to remove.\"\n }\n }\n }\n }\n }, L.Draw.Event = {}, L.Draw.Event.CREATED = \"draw:created\", L.Draw.Event.EDITED = \"draw:edited\", L.Draw.Event.DELETED = \"draw:deleted\", L.Draw.Event.DRAWSTART = \"draw:drawstart\", L.Draw.Event.DRAWSTOP = \"draw:drawstop\", L.Draw.Event.DRAWVERTEX = \"draw:drawvertex\", L.Draw.Event.EDITSTART = \"draw:editstart\", L.Draw.Event.EDITMOVE = \"draw:editmove\", L.Draw.Event.EDITRESIZE = \"draw:editresize\", L.Draw.Event.EDITVERTEX = \"draw:editvertex\", L.Draw.Event.EDITSTOP = \"draw:editstop\", L.Draw.Event.DELETESTART = \"draw:deletestart\", L.Draw.Event.DELETESTOP = \"draw:deletestop\", L.Draw.Event.TOOLBAROPENED = \"draw:toolbaropened\", L.Draw.Event.TOOLBARCLOSED = \"draw:toolbarclosed\", L.Draw.Event.MARKERCONTEXT = \"draw:markercontext\", L.Draw = L.Draw || {}, L.Draw.Feature = L.Handler.extend({\n initialize: function (t, e) {\n this._map = t, this._container = t._container, this._overlayPane = t._panes.overlayPane, this._popupPane = t._panes.popupPane, e && e.shapeOptions && (e.shapeOptions = L.Util.extend({}, this.options.shapeOptions, e.shapeOptions)), L.setOptions(this, e);\n var i = L.version.split(\".\");\n 1 === parseInt(i[0], 10) && parseInt(i[1], 10) >= 2 ? L.Draw.Feature.include(L.Evented.prototype) : L.Draw.Feature.include(L.Mixin.Events);\n },\n enable: function () {\n this._enabled || (L.Handler.prototype.enable.call(this), this.fire(\"enabled\", {\n handler: this.type\n }), this._map.fire(L.Draw.Event.DRAWSTART, {\n layerType: this.type\n }));\n },\n disable: function () {\n this._enabled && (L.Handler.prototype.disable.call(this), this._map.fire(L.Draw.Event.DRAWSTOP, {\n layerType: this.type\n }), this.fire(\"disabled\", {\n handler: this.type\n }));\n },\n addHooks: function () {\n var t = this._map;\n t && (L.DomUtil.disableTextSelection(), t.getContainer().focus(), this._tooltip = new L.Draw.Tooltip(this._map), L.DomEvent.on(this._container, \"keyup\", this._cancelDrawing, this));\n },\n removeHooks: function () {\n this._map && (L.DomUtil.enableTextSelection(), this._tooltip.dispose(), this._tooltip = null, L.DomEvent.off(this._container, \"keyup\", this._cancelDrawing, this));\n },\n setOptions: function (t) {\n L.setOptions(this, t);\n },\n _fireCreatedEvent: function (t) {\n this._map.fire(L.Draw.Event.CREATED, {\n layer: t,\n layerType: this.type\n });\n },\n _cancelDrawing: function (t) {\n 27 === t.keyCode && (this._map.fire(\"draw:canceled\", {\n layerType: this.type\n }), this.disable());\n }\n }), L.Draw.Polyline = L.Draw.Feature.extend({\n statics: {\n TYPE: \"polyline\"\n },\n Poly: L.Polyline,\n options: {\n allowIntersection: !0,\n repeatMode: !1,\n drawError: {\n color: \"#b00b00\",\n timeout: 2500\n },\n icon: new L.DivIcon({\n iconSize: new L.Point(8, 8),\n className: \"leaflet-div-icon leaflet-editing-icon\"\n }),\n touchIcon: new L.DivIcon({\n iconSize: new L.Point(20, 20),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-touch-icon\"\n }),\n guidelineDistance: 20,\n maxGuideLineLength: 4e3,\n shapeOptions: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !1,\n clickable: !0\n },\n metric: !0,\n feet: !0,\n nautic: !1,\n showLength: !0,\n zIndexOffset: 2e3,\n factor: 1,\n maxPoints: 0\n },\n initialize: function (t, e) {\n L.Browser.touch && (this.options.icon = this.options.touchIcon), this.options.drawError.message = L.drawLocal.draw.handlers.polyline.error, e && e.drawError && (e.drawError = L.Util.extend({}, this.options.drawError, e.drawError)), this.type = L.Draw.Polyline.TYPE, L.Draw.Feature.prototype.initialize.call(this, t, e);\n },\n addHooks: function () {\n L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._markers = [], this._markerGroup = new L.LayerGroup(), this._map.addLayer(this._markerGroup), this._poly = new L.Polyline([], this.options.shapeOptions), this._tooltip.updateContent(this._getTooltipText()), this._mouseMarker || (this._mouseMarker = L.marker(this._map.getCenter(), {\n icon: L.divIcon({\n className: \"leaflet-mouse-marker\",\n iconAnchor: [20, 20],\n iconSize: [40, 40]\n }),\n opacity: 0,\n zIndexOffset: this.options.zIndexOffset\n })), this._mouseMarker.on(\"mouseout\", this._onMouseOut, this).on(\"mousemove\", this._onMouseMove, this).on(\"mousedown\", this._onMouseDown, this).on(\"mouseup\", this._onMouseUp, this).addTo(this._map), this._map.on(\"mouseup\", this._onMouseUp, this).on(\"mousemove\", this._onMouseMove, this).on(\"zoomlevelschange\", this._onZoomEnd, this).on(\"touchstart\", this._onTouch, this).on(\"zoomend\", this._onZoomEnd, this));\n },\n removeHooks: function () {\n L.Draw.Feature.prototype.removeHooks.call(this), this._clearHideErrorTimeout(), this._cleanUpShape(), this._map.removeLayer(this._markerGroup), delete this._markerGroup, delete this._markers, this._map.removeLayer(this._poly), delete this._poly, this._mouseMarker.off(\"mousedown\", this._onMouseDown, this).off(\"mouseout\", this._onMouseOut, this).off(\"mouseup\", this._onMouseUp, this).off(\"mousemove\", this._onMouseMove, this), this._map.removeLayer(this._mouseMarker), delete this._mouseMarker, this._clearGuides(), this._map.off(\"mouseup\", this._onMouseUp, this).off(\"mousemove\", this._onMouseMove, this).off(\"zoomlevelschange\", this._onZoomEnd, this).off(\"zoomend\", this._onZoomEnd, this).off(\"touchstart\", this._onTouch, this).off(\"click\", this._onTouch, this);\n },\n deleteLastVertex: function () {\n if (!(this._markers.length <= 1)) {\n var t = this._markers.pop(),\n e = this._poly,\n i = e.getLatLngs(),\n o = i.splice(-1, 1)[0];\n\n this._poly.setLatLngs(i), this._markerGroup.removeLayer(t), e.getLatLngs().length < 2 && this._map.removeLayer(e), this._vertexChanged(o, !1);\n }\n },\n addVertex: function (t) {\n if (this._markers.length >= 2 && !this.options.allowIntersection && this._poly.newLatLngIntersects(t)) return void this._showErrorTooltip();\n this._errorShown && this._hideErrorTooltip(), this._markers.push(this._createMarker(t)), this._poly.addLatLng(t), 2 === this._poly.getLatLngs().length && this._map.addLayer(this._poly), this._vertexChanged(t, !0);\n },\n completeShape: function () {\n this._markers.length <= 1 || !this._shapeIsValid() || (this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable());\n },\n _finishShape: function () {\n var t = this._poly._defaultShape ? this._poly._defaultShape() : this._poly.getLatLngs(),\n e = this._poly.newLatLngIntersects(t[t.length - 1]);\n\n if (!this.options.allowIntersection && e || !this._shapeIsValid()) return void this._showErrorTooltip();\n this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable();\n },\n _shapeIsValid: function () {\n return !0;\n },\n _onZoomEnd: function () {\n null !== this._markers && this._updateGuide();\n },\n _onMouseMove: function (t) {\n var e = this._map.mouseEventToLayerPoint(t.originalEvent),\n i = this._map.layerPointToLatLng(e);\n\n this._currentLatLng = i, this._updateTooltip(i), this._updateGuide(e), this._mouseMarker.setLatLng(i), L.DomEvent.preventDefault(t.originalEvent);\n },\n _vertexChanged: function (t, e) {\n this._map.fire(L.Draw.Event.DRAWVERTEX, {\n layers: this._markerGroup\n }), this._updateFinishHandler(), this._updateRunningMeasure(t, e), this._clearGuides(), this._updateTooltip();\n },\n _onMouseDown: function (t) {\n if (!this._clickHandled && !this._touchHandled && !this._disableMarkers) {\n this._onMouseMove(t), this._clickHandled = !0, this._disableNewMarkers();\n var e = t.originalEvent,\n i = e.clientX,\n o = e.clientY;\n\n this._startPoint.call(this, i, o);\n }\n },\n _startPoint: function (t, e) {\n this._mouseDownOrigin = L.point(t, e);\n },\n _onMouseUp: function (t) {\n var e = t.originalEvent,\n i = e.clientX,\n o = e.clientY;\n this._endPoint.call(this, i, o, t), this._clickHandled = null;\n },\n _endPoint: function (e, i, o) {\n if (this._mouseDownOrigin) {\n var a = L.point(e, i).distanceTo(this._mouseDownOrigin),\n n = this._calculateFinishDistance(o.latlng);\n\n this.options.maxPoints > 1 && this.options.maxPoints == this._markers.length + 1 ? (this.addVertex(o.latlng), this._finishShape()) : n < 10 && L.Browser.touch ? this._finishShape() : Math.abs(a) < 9 * (t.devicePixelRatio || 1) && this.addVertex(o.latlng), this._enableNewMarkers();\n }\n\n this._mouseDownOrigin = null;\n },\n _onTouch: function (t) {\n var e,\n i,\n o = t.originalEvent;\n !o.touches || !o.touches[0] || this._clickHandled || this._touchHandled || this._disableMarkers || (e = o.touches[0].clientX, i = o.touches[0].clientY, this._disableNewMarkers(), this._touchHandled = !0, this._startPoint.call(this, e, i), this._endPoint.call(this, e, i, t), this._touchHandled = null), this._clickHandled = null;\n },\n _onMouseOut: function () {\n this._tooltip && this._tooltip._onMouseOut.call(this._tooltip);\n },\n _calculateFinishDistance: function (t) {\n var e;\n\n if (this._markers.length > 0) {\n var i;\n if (this.type === L.Draw.Polyline.TYPE) i = this._markers[this._markers.length - 1];else {\n if (this.type !== L.Draw.Polygon.TYPE) return 1 / 0;\n i = this._markers[0];\n }\n\n var o = this._map.latLngToContainerPoint(i.getLatLng()),\n a = new L.Marker(t, {\n icon: this.options.icon,\n zIndexOffset: 2 * this.options.zIndexOffset\n }),\n n = this._map.latLngToContainerPoint(a.getLatLng());\n\n e = o.distanceTo(n);\n } else e = 1 / 0;\n\n return e;\n },\n _updateFinishHandler: function () {\n var t = this._markers.length;\n t > 1 && this._markers[t - 1].on(\"click\", this._finishShape, this), t > 2 && this._markers[t - 2].off(\"click\", this._finishShape, this);\n },\n _createMarker: function (t) {\n var e = new L.Marker(t, {\n icon: this.options.icon,\n zIndexOffset: 2 * this.options.zIndexOffset\n });\n return this._markerGroup.addLayer(e), e;\n },\n _updateGuide: function (t) {\n var e = this._markers ? this._markers.length : 0;\n e > 0 && (t = t || this._map.latLngToLayerPoint(this._currentLatLng), this._clearGuides(), this._drawGuide(this._map.latLngToLayerPoint(this._markers[e - 1].getLatLng()), t));\n },\n _updateTooltip: function (t) {\n var e = this._getTooltipText();\n\n t && this._tooltip.updatePosition(t), this._errorShown || this._tooltip.updateContent(e);\n },\n _drawGuide: function (t, e) {\n var i,\n o,\n a,\n n = Math.floor(Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2))),\n s = this.options.guidelineDistance,\n r = this.options.maxGuideLineLength,\n l = n > r ? n - r : s;\n\n for (this._guidesContainer || (this._guidesContainer = L.DomUtil.create(\"div\", \"leaflet-draw-guides\", this._overlayPane)); l < n; l += this.options.guidelineDistance) i = l / n, o = {\n x: Math.floor(t.x * (1 - i) + i * e.x),\n y: Math.floor(t.y * (1 - i) + i * e.y)\n }, a = L.DomUtil.create(\"div\", \"leaflet-draw-guide-dash\", this._guidesContainer), a.style.backgroundColor = this._errorShown ? this.options.drawError.color : this.options.shapeOptions.color, L.DomUtil.setPosition(a, o);\n },\n _updateGuideColor: function (t) {\n if (this._guidesContainer) for (var e = 0, i = this._guidesContainer.childNodes.length; e < i; e++) this._guidesContainer.childNodes[e].style.backgroundColor = t;\n },\n _clearGuides: function () {\n if (this._guidesContainer) for (; this._guidesContainer.firstChild;) this._guidesContainer.removeChild(this._guidesContainer.firstChild);\n },\n _getTooltipText: function () {\n var t,\n e,\n i = this.options.showLength;\n return 0 === this._markers.length ? t = {\n text: L.drawLocal.draw.handlers.polyline.tooltip.start\n } : (e = i ? this._getMeasurementString() : \"\", t = 1 === this._markers.length ? {\n text: L.drawLocal.draw.handlers.polyline.tooltip.cont,\n subtext: e\n } : {\n text: L.drawLocal.draw.handlers.polyline.tooltip.end,\n subtext: e\n }), t;\n },\n _updateRunningMeasure: function (t, e) {\n var i,\n o,\n a = this._markers.length;\n 1 === this._markers.length ? this._measurementRunningTotal = 0 : (i = a - (e ? 2 : 1), o = L.GeometryUtil.isVersion07x() ? t.distanceTo(this._markers[i].getLatLng()) * (this.options.factor || 1) : this._map.distance(t, this._markers[i].getLatLng()) * (this.options.factor || 1), this._measurementRunningTotal += o * (e ? 1 : -1));\n },\n _getMeasurementString: function () {\n var t,\n e = this._currentLatLng,\n i = this._markers[this._markers.length - 1].getLatLng();\n\n return t = L.GeometryUtil.isVersion07x() ? i && e && e.distanceTo ? this._measurementRunningTotal + e.distanceTo(i) * (this.options.factor || 1) : this._measurementRunningTotal || 0 : i && e ? this._measurementRunningTotal + this._map.distance(e, i) * (this.options.factor || 1) : this._measurementRunningTotal || 0, L.GeometryUtil.readableDistance(t, this.options.metric, this.options.feet, this.options.nautic, this.options.precision);\n },\n _showErrorTooltip: function () {\n this._errorShown = !0, this._tooltip.showAsError().updateContent({\n text: this.options.drawError.message\n }), this._updateGuideColor(this.options.drawError.color), this._poly.setStyle({\n color: this.options.drawError.color\n }), this._clearHideErrorTimeout(), this._hideErrorTimeout = setTimeout(L.Util.bind(this._hideErrorTooltip, this), this.options.drawError.timeout);\n },\n _hideErrorTooltip: function () {\n this._errorShown = !1, this._clearHideErrorTimeout(), this._tooltip.removeError().updateContent(this._getTooltipText()), this._updateGuideColor(this.options.shapeOptions.color), this._poly.setStyle({\n color: this.options.shapeOptions.color\n });\n },\n _clearHideErrorTimeout: function () {\n this._hideErrorTimeout && (clearTimeout(this._hideErrorTimeout), this._hideErrorTimeout = null);\n },\n _disableNewMarkers: function () {\n this._disableMarkers = !0;\n },\n _enableNewMarkers: function () {\n setTimeout(function () {\n this._disableMarkers = !1;\n }.bind(this), 50);\n },\n _cleanUpShape: function () {\n this._markers.length > 1 && this._markers[this._markers.length - 1].off(\"click\", this._finishShape, this);\n },\n _fireCreatedEvent: function () {\n var t = new this.Poly(this._poly.getLatLngs(), this.options.shapeOptions);\n\n L.Draw.Feature.prototype._fireCreatedEvent.call(this, t);\n }\n }), L.Draw.Polygon = L.Draw.Polyline.extend({\n statics: {\n TYPE: \"polygon\"\n },\n Poly: L.Polygon,\n options: {\n showArea: !1,\n showLength: !1,\n shapeOptions: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !0,\n fillColor: null,\n fillOpacity: .2,\n clickable: !0\n },\n metric: !0,\n feet: !0,\n nautic: !1,\n precision: {}\n },\n initialize: function (t, e) {\n L.Draw.Polyline.prototype.initialize.call(this, t, e), this.type = L.Draw.Polygon.TYPE;\n },\n _updateFinishHandler: function () {\n var t = this._markers.length;\n 1 === t && this._markers[0].on(\"click\", this._finishShape, this), t > 2 && (this._markers[t - 1].on(\"dblclick\", this._finishShape, this), t > 3 && this._markers[t - 2].off(\"dblclick\", this._finishShape, this));\n },\n _getTooltipText: function () {\n var t, e;\n return 0 === this._markers.length ? t = L.drawLocal.draw.handlers.polygon.tooltip.start : this._markers.length < 3 ? (t = L.drawLocal.draw.handlers.polygon.tooltip.cont, e = this._getMeasurementString()) : (t = L.drawLocal.draw.handlers.polygon.tooltip.end, e = this._getMeasurementString()), {\n text: t,\n subtext: e\n };\n },\n _getMeasurementString: function () {\n var t = this._area,\n e = \"\";\n return t || this.options.showLength ? (this.options.showLength && (e = L.Draw.Polyline.prototype._getMeasurementString.call(this)), t && (e += \"<br>\" + L.GeometryUtil.readableArea(t, this.options.metric, this.options.precision)), e) : null;\n },\n _shapeIsValid: function () {\n return this._markers.length >= 3;\n },\n _vertexChanged: function (t, e) {\n var i;\n !this.options.allowIntersection && this.options.showArea && (i = this._poly.getLatLngs(), this._area = L.GeometryUtil.geodesicArea(i)), L.Draw.Polyline.prototype._vertexChanged.call(this, t, e);\n },\n _cleanUpShape: function () {\n var t = this._markers.length;\n t > 0 && (this._markers[0].off(\"click\", this._finishShape, this), t > 2 && this._markers[t - 1].off(\"dblclick\", this._finishShape, this));\n }\n }), L.SimpleShape = {}, L.Draw.SimpleShape = L.Draw.Feature.extend({\n options: {\n repeatMode: !1\n },\n initialize: function (t, e) {\n this._endLabelText = L.drawLocal.draw.handlers.simpleshape.tooltip.end, L.Draw.Feature.prototype.initialize.call(this, t, e);\n },\n addHooks: function () {\n L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._mapDraggable = this._map.dragging.enabled(), this._mapDraggable && this._map.dragging.disable(), this._container.style.cursor = \"crosshair\", this._tooltip.updateContent({\n text: this._initialLabelText\n }), this._map.on(\"mousedown\", this._onMouseDown, this).on(\"mousemove\", this._onMouseMove, this).on(\"touchstart\", this._onMouseDown, this).on(\"touchmove\", this._onMouseMove, this), e.addEventListener(\"touchstart\", L.DomEvent.preventDefault, {\n passive: !1\n }));\n },\n removeHooks: function () {\n L.Draw.Feature.prototype.removeHooks.call(this), this._map && (this._mapDraggable && this._map.dragging.enable(), this._container.style.cursor = \"\", this._map.off(\"mousedown\", this._onMouseDown, this).off(\"mousemove\", this._onMouseMove, this).off(\"touchstart\", this._onMouseDown, this).off(\"touchmove\", this._onMouseMove, this), L.DomEvent.off(e, \"mouseup\", this._onMouseUp, this), L.DomEvent.off(e, \"touchend\", this._onMouseUp, this), e.removeEventListener(\"touchstart\", L.DomEvent.preventDefault), this._shape && (this._map.removeLayer(this._shape), delete this._shape)), this._isDrawing = !1;\n },\n _getTooltipText: function () {\n return {\n text: this._endLabelText\n };\n },\n _onMouseDown: function (t) {\n this._isDrawing = !0, this._startLatLng = t.latlng, L.DomEvent.on(e, \"mouseup\", this._onMouseUp, this).on(e, \"touchend\", this._onMouseUp, this).preventDefault(t.originalEvent);\n },\n _onMouseMove: function (t) {\n var e = t.latlng;\n this._tooltip.updatePosition(e), this._isDrawing && (this._tooltip.updateContent(this._getTooltipText()), this._drawShape(e));\n },\n _onMouseUp: function () {\n this._shape && this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable();\n }\n }), L.Draw.Rectangle = L.Draw.SimpleShape.extend({\n statics: {\n TYPE: \"rectangle\"\n },\n options: {\n shapeOptions: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !0,\n fillColor: null,\n fillOpacity: .2,\n clickable: !0\n },\n showArea: !0,\n metric: !0\n },\n initialize: function (t, e) {\n this.type = L.Draw.Rectangle.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.rectangle.tooltip.start, L.Draw.SimpleShape.prototype.initialize.call(this, t, e);\n },\n disable: function () {\n this._enabled && (this._isCurrentlyTwoClickDrawing = !1, L.Draw.SimpleShape.prototype.disable.call(this));\n },\n _onMouseUp: function (t) {\n if (!this._shape && !this._isCurrentlyTwoClickDrawing) return void (this._isCurrentlyTwoClickDrawing = !0);\n this._isCurrentlyTwoClickDrawing && !o(t.target, \"leaflet-pane\") || L.Draw.SimpleShape.prototype._onMouseUp.call(this);\n },\n _drawShape: function (t) {\n this._shape ? this._shape.setBounds(new L.LatLngBounds(this._startLatLng, t)) : (this._shape = new L.Rectangle(new L.LatLngBounds(this._startLatLng, t), this.options.shapeOptions), this._map.addLayer(this._shape));\n },\n _fireCreatedEvent: function () {\n var t = new L.Rectangle(this._shape.getBounds(), this.options.shapeOptions);\n\n L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t);\n },\n _getTooltipText: function () {\n var t,\n e,\n i,\n o = L.Draw.SimpleShape.prototype._getTooltipText.call(this),\n a = this._shape,\n n = this.options.showArea;\n\n return a && (t = this._shape._defaultShape ? this._shape._defaultShape() : this._shape.getLatLngs(), e = L.GeometryUtil.geodesicArea(t), i = n ? L.GeometryUtil.readableArea(e, this.options.metric) : \"\"), {\n text: o.text,\n subtext: i\n };\n }\n }), L.Draw.Marker = L.Draw.Feature.extend({\n statics: {\n TYPE: \"marker\"\n },\n options: {\n icon: new L.Icon.Default(),\n repeatMode: !1,\n zIndexOffset: 2e3\n },\n initialize: function (t, e) {\n this.type = L.Draw.Marker.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.marker.tooltip.start, L.Draw.Feature.prototype.initialize.call(this, t, e);\n },\n addHooks: function () {\n L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._tooltip.updateContent({\n text: this._initialLabelText\n }), this._mouseMarker || (this._mouseMarker = L.marker(this._map.getCenter(), {\n icon: L.divIcon({\n className: \"leaflet-mouse-marker\",\n iconAnchor: [20, 20],\n iconSize: [40, 40]\n }),\n opacity: 0,\n zIndexOffset: this.options.zIndexOffset\n })), this._mouseMarker.on(\"click\", this._onClick, this).addTo(this._map), this._map.on(\"mousemove\", this._onMouseMove, this), this._map.on(\"click\", this._onTouch, this));\n },\n removeHooks: function () {\n L.Draw.Feature.prototype.removeHooks.call(this), this._map && (this._map.off(\"click\", this._onClick, this).off(\"click\", this._onTouch, this), this._marker && (this._marker.off(\"click\", this._onClick, this), this._map.removeLayer(this._marker), delete this._marker), this._mouseMarker.off(\"click\", this._onClick, this), this._map.removeLayer(this._mouseMarker), delete this._mouseMarker, this._map.off(\"mousemove\", this._onMouseMove, this));\n },\n _onMouseMove: function (t) {\n var e = t.latlng;\n this._tooltip.updatePosition(e), this._mouseMarker.setLatLng(e), this._marker ? (e = this._mouseMarker.getLatLng(), this._marker.setLatLng(e)) : (this._marker = this._createMarker(e), this._marker.on(\"click\", this._onClick, this), this._map.on(\"click\", this._onClick, this).addLayer(this._marker));\n },\n _createMarker: function (t) {\n return new L.Marker(t, {\n icon: this.options.icon,\n zIndexOffset: this.options.zIndexOffset\n });\n },\n _onClick: function () {\n this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable();\n },\n _onTouch: function (t) {\n this._onMouseMove(t), this._onClick();\n },\n _fireCreatedEvent: function () {\n var t = new L.Marker.Touch(this._marker.getLatLng(), {\n icon: this.options.icon\n });\n\n L.Draw.Feature.prototype._fireCreatedEvent.call(this, t);\n }\n }), L.Draw.CircleMarker = L.Draw.Marker.extend({\n statics: {\n TYPE: \"circlemarker\"\n },\n options: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !0,\n fillColor: null,\n fillOpacity: .2,\n clickable: !0,\n zIndexOffset: 2e3\n },\n initialize: function (t, e) {\n this.type = L.Draw.CircleMarker.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.circlemarker.tooltip.start, L.Draw.Feature.prototype.initialize.call(this, t, e);\n },\n _fireCreatedEvent: function () {\n var t = new L.CircleMarker(this._marker.getLatLng(), this.options);\n\n L.Draw.Feature.prototype._fireCreatedEvent.call(this, t);\n },\n _createMarker: function (t) {\n return new L.CircleMarker(t, this.options);\n }\n }), L.Draw.Circle = L.Draw.SimpleShape.extend({\n statics: {\n TYPE: \"circle\"\n },\n options: {\n shapeOptions: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !0,\n fillColor: null,\n fillOpacity: .2,\n clickable: !0\n },\n showRadius: !0,\n metric: !0,\n feet: !0,\n nautic: !1\n },\n initialize: function (t, e) {\n this.type = L.Draw.Circle.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.circle.tooltip.start, L.Draw.SimpleShape.prototype.initialize.call(this, t, e);\n },\n _drawShape: function (t) {\n if (L.GeometryUtil.isVersion07x()) var e = this._startLatLng.distanceTo(t);else var e = this._map.distance(this._startLatLng, t);\n this._shape ? this._shape.setRadius(e) : (this._shape = new L.Circle(this._startLatLng, e, this.options.shapeOptions), this._map.addLayer(this._shape));\n },\n _fireCreatedEvent: function () {\n var t = new L.Circle(this._startLatLng, this._shape.getRadius(), this.options.shapeOptions);\n\n L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t);\n },\n _onMouseMove: function (t) {\n var e,\n i = t.latlng,\n o = this.options.showRadius,\n a = this.options.metric;\n\n if (this._tooltip.updatePosition(i), this._isDrawing) {\n this._drawShape(i), e = this._shape.getRadius().toFixed(1);\n var n = \"\";\n o && (n = L.drawLocal.draw.handlers.circle.radius + \": \" + L.GeometryUtil.readableDistance(e, a, this.options.feet, this.options.nautic)), this._tooltip.updateContent({\n text: this._endLabelText,\n subtext: n\n });\n }\n }\n }), L.Edit = L.Edit || {}, L.Edit.Marker = L.Handler.extend({\n initialize: function (t, e) {\n this._marker = t, L.setOptions(this, e);\n },\n addHooks: function () {\n var t = this._marker;\n t.dragging.enable(), t.on(\"dragend\", this._onDragEnd, t), this._toggleMarkerHighlight();\n },\n removeHooks: function () {\n var t = this._marker;\n t.dragging.disable(), t.off(\"dragend\", this._onDragEnd, t), this._toggleMarkerHighlight();\n },\n _onDragEnd: function (t) {\n var e = t.target;\n e.edited = !0, this._map.fire(L.Draw.Event.EDITMOVE, {\n layer: e\n });\n },\n _toggleMarkerHighlight: function () {\n var t = this._marker._icon;\n t && (t.style.display = \"none\", L.DomUtil.hasClass(t, \"leaflet-edit-marker-selected\") ? (L.DomUtil.removeClass(t, \"leaflet-edit-marker-selected\"), this._offsetMarker(t, -4)) : (L.DomUtil.addClass(t, \"leaflet-edit-marker-selected\"), this._offsetMarker(t, 4)), t.style.display = \"\");\n },\n _offsetMarker: function (t, e) {\n var i = parseInt(t.style.marginTop, 10) - e,\n o = parseInt(t.style.marginLeft, 10) - e;\n t.style.marginTop = i + \"px\", t.style.marginLeft = o + \"px\";\n }\n }), L.Marker.addInitHook(function () {\n L.Edit.Marker && (this.editing = new L.Edit.Marker(this), this.options.editable && this.editing.enable());\n }), L.Edit = L.Edit || {}, L.Edit.Poly = L.Handler.extend({\n initialize: function (t) {\n this.latlngs = [t._latlngs], t._holes && (this.latlngs = this.latlngs.concat(t._holes)), this._poly = t, this._poly.on(\"revert-edited\", this._updateLatLngs, this);\n },\n _defaultShape: function () {\n return L.Polyline._flat ? L.Polyline._flat(this._poly._latlngs) ? this._poly._latlngs : this._poly._latlngs[0] : this._poly._latlngs;\n },\n _eachVertexHandler: function (t) {\n for (var e = 0; e < this._verticesHandlers.length; e++) t(this._verticesHandlers[e]);\n },\n addHooks: function () {\n this._initHandlers(), this._eachVertexHandler(function (t) {\n t.addHooks();\n });\n },\n removeHooks: function () {\n this._eachVertexHandler(function (t) {\n t.removeHooks();\n });\n },\n updateMarkers: function () {\n this._eachVertexHandler(function (t) {\n t.updateMarkers();\n });\n },\n _initHandlers: function () {\n this._verticesHandlers = [];\n\n for (var t = 0; t < this.latlngs.length; t++) this._verticesHandlers.push(new L.Edit.PolyVerticesEdit(this._poly, this.latlngs[t], this._poly.options.poly));\n },\n _updateLatLngs: function (t) {\n this.latlngs = [t.layer._latlngs], t.layer._holes && (this.latlngs = this.latlngs.concat(t.layer._holes));\n }\n }), L.Edit.PolyVerticesEdit = L.Handler.extend({\n options: {\n icon: new L.DivIcon({\n iconSize: new L.Point(8, 8),\n className: \"leaflet-div-icon leaflet-editing-icon\"\n }),\n touchIcon: new L.DivIcon({\n iconSize: new L.Point(20, 20),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-touch-icon\"\n }),\n drawError: {\n color: \"#b00b00\",\n timeout: 1e3\n }\n },\n initialize: function (t, e, i) {\n L.Browser.touch && (this.options.icon = this.options.touchIcon), this._poly = t, i && i.drawError && (i.drawError = L.Util.extend({}, this.options.drawError, i.drawError)), this._latlngs = e, L.setOptions(this, i);\n },\n _defaultShape: function () {\n return L.Polyline._flat ? L.Polyline._flat(this._latlngs) ? this._latlngs : this._latlngs[0] : this._latlngs;\n },\n addHooks: function () {\n var t = this._poly,\n e = t._path;\n t instanceof L.Polygon || (t.options.fill = !1, t.options.editing && (t.options.editing.fill = !1)), e && t.options.editing && t.options.editing.className && (t.options.original.className && t.options.original.className.split(\" \").forEach(function (t) {\n L.DomUtil.removeClass(e, t);\n }), t.options.editing.className.split(\" \").forEach(function (t) {\n L.DomUtil.addClass(e, t);\n })), t.setStyle(t.options.editing), this._poly._map && (this._map = this._poly._map, this._markerGroup || this._initMarkers(), this._poly._map.addLayer(this._markerGroup));\n },\n removeHooks: function () {\n var t = this._poly,\n e = t._path;\n e && t.options.editing && t.options.editing.className && (t.options.editing.className.split(\" \").forEach(function (t) {\n L.DomUtil.removeClass(e, t);\n }), t.options.original.className && t.options.original.className.split(\" \").forEach(function (t) {\n L.DomUtil.addClass(e, t);\n })), t.setStyle(t.options.original), t._map && (t._map.removeLayer(this._markerGroup), delete this._markerGroup, delete this._markers);\n },\n updateMarkers: function () {\n this._markerGroup.clearLayers(), this._initMarkers();\n },\n _initMarkers: function () {\n this._markerGroup || (this._markerGroup = new L.LayerGroup()), this._markers = [];\n\n var t,\n e,\n i,\n o,\n a = this._defaultShape();\n\n for (t = 0, i = a.length; t < i; t++) o = this._createMarker(a[t], t), o.on(\"click\", this._onMarkerClick, this), o.on(\"contextmenu\", this._onContextMenu, this), this._markers.push(o);\n\n var n, s;\n\n for (t = 0, e = i - 1; t < i; e = t++) (0 !== t || L.Polygon && this._poly instanceof L.Polygon) && (n = this._markers[e], s = this._markers[t], this._createMiddleMarker(n, s), this._updatePrevNext(n, s));\n },\n _createMarker: function (t, e) {\n var i = new L.Marker.Touch(t, {\n draggable: !0,\n icon: this.options.icon\n });\n return i._origLatLng = t, i._index = e, i.on(\"dragstart\", this._onMarkerDragStart, this).on(\"drag\", this._onMarkerDrag, this).on(\"dragend\", this._fireEdit, this).on(\"touchmove\", this._onTouchMove, this).on(\"touchend\", this._fireEdit, this).on(\"MSPointerMove\", this._onTouchMove, this).on(\"MSPointerUp\", this._fireEdit, this), this._markerGroup.addLayer(i), i;\n },\n _onMarkerDragStart: function () {\n this._poly.fire(\"editstart\");\n },\n _spliceLatLngs: function () {\n var t = this._defaultShape(),\n e = [].splice.apply(t, arguments);\n\n return this._poly._convertLatLngs(t, !0), this._poly.redraw(), e;\n },\n _removeMarker: function (t) {\n var e = t._index;\n this._markerGroup.removeLayer(t), this._markers.splice(e, 1), this._spliceLatLngs(e, 1), this._updateIndexes(e, -1), t.off(\"dragstart\", this._onMarkerDragStart, this).off(\"drag\", this._onMarkerDrag, this).off(\"dragend\", this._fireEdit, this).off(\"touchmove\", this._onMarkerDrag, this).off(\"touchend\", this._fireEdit, this).off(\"click\", this._onMarkerClick, this).off(\"MSPointerMove\", this._onTouchMove, this).off(\"MSPointerUp\", this._fireEdit, this);\n },\n _fireEdit: function () {\n this._poly.edited = !0, this._poly.fire(\"edit\"), this._poly._map.fire(L.Draw.Event.EDITVERTEX, {\n layers: this._markerGroup,\n poly: this._poly\n });\n },\n _onMarkerDrag: function (t) {\n var e = t.target,\n i = this._poly,\n o = L.LatLngUtil.cloneLatLng(e._origLatLng);\n\n if (L.extend(e._origLatLng, e._latlng), i.options.poly) {\n var a = i._map._editTooltip;\n\n if (!i.options.poly.allowIntersection && i.intersects()) {\n L.extend(e._origLatLng, o), e.setLatLng(o);\n var n = i.options.color;\n i.setStyle({\n color: this.options.drawError.color\n }), a && a.updateContent({\n text: L.drawLocal.draw.handlers.polyline.error\n }), setTimeout(function () {\n i.setStyle({\n color: n\n }), a && a.updateContent({\n text: L.drawLocal.edit.handlers.edit.tooltip.text,\n subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext\n });\n }, 1e3);\n }\n }\n\n e._middleLeft && e._middleLeft.setLatLng(this._getMiddleLatLng(e._prev, e)), e._middleRight && e._middleRight.setLatLng(this._getMiddleLatLng(e, e._next)), this._poly._bounds._southWest = L.latLng(1 / 0, 1 / 0), this._poly._bounds._northEast = L.latLng(-1 / 0, -1 / 0);\n\n var s = this._poly.getLatLngs();\n\n this._poly._convertLatLngs(s, !0), this._poly.redraw(), this._poly.fire(\"editdrag\");\n },\n _onMarkerClick: function (t) {\n var e = L.Polygon && this._poly instanceof L.Polygon ? 4 : 3,\n i = t.target;\n this._defaultShape().length < e || (this._removeMarker(i), this._updatePrevNext(i._prev, i._next), i._middleLeft && this._markerGroup.removeLayer(i._middleLeft), i._middleRight && this._markerGroup.removeLayer(i._middleRight), i._prev && i._next ? this._createMiddleMarker(i._prev, i._next) : i._prev ? i._next || (i._prev._middleRight = null) : i._next._middleLeft = null, this._fireEdit());\n },\n _onContextMenu: function (t) {\n var e = t.target;\n this._poly;\n this._poly._map.fire(L.Draw.Event.MARKERCONTEXT, {\n marker: e,\n layers: this._markerGroup,\n poly: this._poly\n }), L.DomEvent.stopPropagation;\n },\n _onTouchMove: function (t) {\n var e = this._map.mouseEventToLayerPoint(t.originalEvent.touches[0]),\n i = this._map.layerPointToLatLng(e),\n o = t.target;\n\n L.extend(o._origLatLng, i), o._middleLeft && o._middleLeft.setLatLng(this._getMiddleLatLng(o._prev, o)), o._middleRight && o._middleRight.setLatLng(this._getMiddleLatLng(o, o._next)), this._poly.redraw(), this.updateMarkers();\n },\n _updateIndexes: function (t, e) {\n this._markerGroup.eachLayer(function (i) {\n i._index > t && (i._index += e);\n });\n },\n _createMiddleMarker: function (t, e) {\n var i,\n o,\n a,\n n = this._getMiddleLatLng(t, e),\n s = this._createMarker(n);\n\n s.setOpacity(.6), t._middleRight = e._middleLeft = s, o = function () {\n s.off(\"touchmove\", o, this);\n var a = e._index;\n s._index = a, s.off(\"click\", i, this).on(\"click\", this._onMarkerClick, this), n.lat = s.getLatLng().lat, n.lng = s.getLatLng().lng, this._spliceLatLngs(a, 0, n), this._markers.splice(a, 0, s), s.setOpacity(1), this._updateIndexes(a, 1), e._index++, this._updatePrevNext(t, s), this._updatePrevNext(s, e), this._poly.fire(\"editstart\");\n }, a = function () {\n s.off(\"dragstart\", o, this), s.off(\"dragend\", a, this), s.off(\"touchmove\", o, this), this._createMiddleMarker(t, s), this._createMiddleMarker(s, e);\n }, i = function () {\n o.call(this), a.call(this), this._fireEdit();\n }, s.on(\"click\", i, this).on(\"dragstart\", o, this).on(\"dragend\", a, this).on(\"touchmove\", o, this), this._markerGroup.addLayer(s);\n },\n _updatePrevNext: function (t, e) {\n t && (t._next = e), e && (e._prev = t);\n },\n _getMiddleLatLng: function (t, e) {\n var i = this._poly._map,\n o = i.project(t.getLatLng()),\n a = i.project(e.getLatLng());\n return i.unproject(o._add(a)._divideBy(2));\n }\n }), L.Polyline.addInitHook(function () {\n this.editing || (L.Edit.Poly && (this.editing = new L.Edit.Poly(this), this.options.editable && this.editing.enable()), this.on(\"add\", function () {\n this.editing && this.editing.enabled() && this.editing.addHooks();\n }), this.on(\"remove\", function () {\n this.editing && this.editing.enabled() && this.editing.removeHooks();\n }));\n }), L.Edit = L.Edit || {}, L.Edit.SimpleShape = L.Handler.extend({\n options: {\n moveIcon: new L.DivIcon({\n iconSize: new L.Point(8, 8),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-edit-move\"\n }),\n resizeIcon: new L.DivIcon({\n iconSize: new L.Point(8, 8),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize\"\n }),\n touchMoveIcon: new L.DivIcon({\n iconSize: new L.Point(20, 20),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-edit-move leaflet-touch-icon\"\n }),\n touchResizeIcon: new L.DivIcon({\n iconSize: new L.Point(20, 20),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize leaflet-touch-icon\"\n })\n },\n initialize: function (t, e) {\n L.Browser.touch && (this.options.moveIcon = this.options.touchMoveIcon, this.options.resizeIcon = this.options.touchResizeIcon), this._shape = t, L.Util.setOptions(this, e);\n },\n addHooks: function () {\n var t = this._shape;\n this._shape._map && (this._map = this._shape._map, t.setStyle(t.options.editing), t._map && (this._map = t._map, this._markerGroup || this._initMarkers(), this._map.addLayer(this._markerGroup)));\n },\n removeHooks: function () {\n var t = this._shape;\n\n if (t.setStyle(t.options.original), t._map) {\n this._unbindMarker(this._moveMarker);\n\n for (var e = 0, i = this._resizeMarkers.length; e < i; e++) this._unbindMarker(this._resizeMarkers[e]);\n\n this._resizeMarkers = null, this._map.removeLayer(this._markerGroup), delete this._markerGroup;\n }\n\n this._map = null;\n },\n updateMarkers: function () {\n this._markerGroup.clearLayers(), this._initMarkers();\n },\n _initMarkers: function () {\n this._markerGroup || (this._markerGroup = new L.LayerGroup()), this._createMoveMarker(), this._createResizeMarker();\n },\n _createMoveMarker: function () {},\n _createResizeMarker: function () {},\n _createMarker: function (t, e) {\n var i = new L.Marker.Touch(t, {\n draggable: !0,\n icon: e,\n zIndexOffset: 10\n });\n return this._bindMarker(i), this._markerGroup.addLayer(i), i;\n },\n _bindMarker: function (t) {\n t.on(\"dragstart\", this._onMarkerDragStart, this).on(\"drag\", this._onMarkerDrag, this).on(\"dragend\", this._onMarkerDragEnd, this).on(\"touchstart\", this._onTouchStart, this).on(\"touchmove\", this._onTouchMove, this).on(\"MSPointerMove\", this._onTouchMove, this).on(\"touchend\", this._onTouchEnd, this).on(\"MSPointerUp\", this._onTouchEnd, this);\n },\n _unbindMarker: function (t) {\n t.off(\"dragstart\", this._onMarkerDragStart, this).off(\"drag\", this._onMarkerDrag, this).off(\"dragend\", this._onMarkerDragEnd, this).off(\"touchstart\", this._onTouchStart, this).off(\"touchmove\", this._onTouchMove, this).off(\"MSPointerMove\", this._onTouchMove, this).off(\"touchend\", this._onTouchEnd, this).off(\"MSPointerUp\", this._onTouchEnd, this);\n },\n _onMarkerDragStart: function (t) {\n t.target.setOpacity(0), this._shape.fire(\"editstart\");\n },\n _fireEdit: function () {\n this._shape.edited = !0, this._shape.fire(\"edit\");\n },\n _onMarkerDrag: function (t) {\n var e = t.target,\n i = e.getLatLng();\n e === this._moveMarker ? this._move(i) : this._resize(i), this._shape.redraw(), this._shape.fire(\"editdrag\");\n },\n _onMarkerDragEnd: function (t) {\n t.target.setOpacity(1), this._fireEdit();\n },\n _onTouchStart: function (t) {\n if (L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t), \"function\" == typeof this._getCorners) {\n var e = this._getCorners(),\n i = t.target,\n o = i._cornerIndex;\n\n i.setOpacity(0), this._oppositeCorner = e[(o + 2) % 4], this._toggleCornerMarkers(0, o);\n }\n\n this._shape.fire(\"editstart\");\n },\n _onTouchMove: function (t) {\n var e = this._map.mouseEventToLayerPoint(t.originalEvent.touches[0]),\n i = this._map.layerPointToLatLng(e);\n\n return t.target === this._moveMarker ? this._move(i) : this._resize(i), this._shape.redraw(), !1;\n },\n _onTouchEnd: function (t) {\n t.target.setOpacity(1), this.updateMarkers(), this._fireEdit();\n },\n _move: function () {},\n _resize: function () {}\n }), L.Edit = L.Edit || {}, L.Edit.Rectangle = L.Edit.SimpleShape.extend({\n _createMoveMarker: function () {\n var t = this._shape.getBounds(),\n e = t.getCenter();\n\n this._moveMarker = this._createMarker(e, this.options.moveIcon);\n },\n _createResizeMarker: function () {\n var t = this._getCorners();\n\n this._resizeMarkers = [];\n\n for (var e = 0, i = t.length; e < i; e++) this._resizeMarkers.push(this._createMarker(t[e], this.options.resizeIcon)), this._resizeMarkers[e]._cornerIndex = e;\n },\n _onMarkerDragStart: function (t) {\n L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t);\n\n var e = this._getCorners(),\n i = t.target,\n o = i._cornerIndex;\n\n this._oppositeCorner = e[(o + 2) % 4], this._toggleCornerMarkers(0, o);\n },\n _onMarkerDragEnd: function (t) {\n var e,\n i,\n o = t.target;\n o === this._moveMarker && (e = this._shape.getBounds(), i = e.getCenter(), o.setLatLng(i)), this._toggleCornerMarkers(1), this._repositionCornerMarkers(), L.Edit.SimpleShape.prototype._onMarkerDragEnd.call(this, t);\n },\n _move: function (t) {\n for (var e, i = this._shape._defaultShape ? this._shape._defaultShape() : this._shape.getLatLngs(), o = this._shape.getBounds(), a = o.getCenter(), n = [], s = 0, r = i.length; s < r; s++) e = [i[s].lat - a.lat, i[s].lng - a.lng], n.push([t.lat + e[0], t.lng + e[1]]);\n\n this._shape.setLatLngs(n), this._repositionCornerMarkers(), this._map.fire(L.Draw.Event.EDITMOVE, {\n layer: this._shape\n });\n },\n _resize: function (t) {\n var e;\n this._shape.setBounds(L.latLngBounds(t, this._oppositeCorner)), e = this._shape.getBounds(), this._moveMarker.setLatLng(e.getCenter()), this._map.fire(L.Draw.Event.EDITRESIZE, {\n layer: this._shape\n });\n },\n _getCorners: function () {\n var t = this._shape.getBounds();\n\n return [t.getNorthWest(), t.getNorthEast(), t.getSouthEast(), t.getSouthWest()];\n },\n _toggleCornerMarkers: function (t) {\n for (var e = 0, i = this._resizeMarkers.length; e < i; e++) this._resizeMarkers[e].setOpacity(t);\n },\n _repositionCornerMarkers: function () {\n for (var t = this._getCorners(), e = 0, i = this._resizeMarkers.length; e < i; e++) this._resizeMarkers[e].setLatLng(t[e]);\n }\n }), L.Rectangle.addInitHook(function () {\n L.Edit.Rectangle && (this.editing = new L.Edit.Rectangle(this), this.options.editable && this.editing.enable());\n }), L.Edit = L.Edit || {}, L.Edit.CircleMarker = L.Edit.SimpleShape.extend({\n _createMoveMarker: function () {\n var t = this._shape.getLatLng();\n\n this._moveMarker = this._createMarker(t, this.options.moveIcon);\n },\n _createResizeMarker: function () {\n this._resizeMarkers = [];\n },\n _move: function (t) {\n if (this._resizeMarkers.length) {\n var e = this._getResizeMarkerPoint(t);\n\n this._resizeMarkers[0].setLatLng(e);\n }\n\n this._shape.setLatLng(t), this._map.fire(L.Draw.Event.EDITMOVE, {\n layer: this._shape\n });\n }\n }), L.CircleMarker.addInitHook(function () {\n L.Edit.CircleMarker && (this.editing = new L.Edit.CircleMarker(this), this.options.editable && this.editing.enable()), this.on(\"add\", function () {\n this.editing && this.editing.enabled() && this.editing.addHooks();\n }), this.on(\"remove\", function () {\n this.editing && this.editing.enabled() && this.editing.removeHooks();\n });\n }), L.Edit = L.Edit || {}, L.Edit.Circle = L.Edit.CircleMarker.extend({\n _createResizeMarker: function () {\n var t = this._shape.getLatLng(),\n e = this._getResizeMarkerPoint(t);\n\n this._resizeMarkers = [], this._resizeMarkers.push(this._createMarker(e, this.options.resizeIcon));\n },\n _getResizeMarkerPoint: function (t) {\n var e = this._shape._radius * Math.cos(Math.PI / 4),\n i = this._map.project(t);\n\n return this._map.unproject([i.x + e, i.y - e]);\n },\n _resize: function (t) {\n var e = this._moveMarker.getLatLng();\n\n L.GeometryUtil.isVersion07x() ? radius = e.distanceTo(t) : radius = this._map.distance(e, t), this._shape.setRadius(radius), this._map.editTooltip && this._map._editTooltip.updateContent({\n text: L.drawLocal.edit.handlers.edit.tooltip.subtext + \"<br />\" + L.drawLocal.edit.handlers.edit.tooltip.text,\n subtext: L.drawLocal.draw.handlers.circle.radius + \": \" + L.GeometryUtil.readableDistance(radius, !0, this.options.feet, this.options.nautic)\n }), this._shape.setRadius(radius), this._map.fire(L.Draw.Event.EDITRESIZE, {\n layer: this._shape\n });\n }\n }), L.Circle.addInitHook(function () {\n L.Edit.Circle && (this.editing = new L.Edit.Circle(this), this.options.editable && this.editing.enable());\n }), L.Map.mergeOptions({\n touchExtend: !0\n }), L.Map.TouchExtend = L.Handler.extend({\n initialize: function (t) {\n this._map = t, this._container = t._container, this._pane = t._panes.overlayPane;\n },\n addHooks: function () {\n L.DomEvent.on(this._container, \"touchstart\", this._onTouchStart, this), L.DomEvent.on(this._container, \"touchend\", this._onTouchEnd, this), L.DomEvent.on(this._container, \"touchmove\", this._onTouchMove, this), this._detectIE() ? (L.DomEvent.on(this._container, \"MSPointerDown\", this._onTouchStart, this), L.DomEvent.on(this._container, \"MSPointerUp\", this._onTouchEnd, this), L.DomEvent.on(this._container, \"MSPointerMove\", this._onTouchMove, this), L.DomEvent.on(this._container, \"MSPointerCancel\", this._onTouchCancel, this)) : (L.DomEvent.on(this._container, \"touchcancel\", this._onTouchCancel, this), L.DomEvent.on(this._container, \"touchleave\", this._onTouchLeave, this));\n },\n removeHooks: function () {\n L.DomEvent.off(this._container, \"touchstart\", this._onTouchStart, this), L.DomEvent.off(this._container, \"touchend\", this._onTouchEnd, this), L.DomEvent.off(this._container, \"touchmove\", this._onTouchMove, this), this._detectIE() ? (L.DomEvent.off(this._container, \"MSPointerDown\", this._onTouchStart, this), L.DomEvent.off(this._container, \"MSPointerUp\", this._onTouchEnd, this), L.DomEvent.off(this._container, \"MSPointerMove\", this._onTouchMove, this), L.DomEvent.off(this._container, \"MSPointerCancel\", this._onTouchCancel, this)) : (L.DomEvent.off(this._container, \"touchcancel\", this._onTouchCancel, this), L.DomEvent.off(this._container, \"touchleave\", this._onTouchLeave, this));\n },\n _touchEvent: function (t, e) {\n var i = {};\n\n if (void 0 !== t.touches) {\n if (!t.touches.length) return;\n i = t.touches[0];\n } else {\n if (\"touch\" !== t.pointerType) return;\n if (i = t, !this._filterClick(t)) return;\n }\n\n var o = this._map.mouseEventToContainerPoint(i),\n a = this._map.mouseEventToLayerPoint(i),\n n = this._map.layerPointToLatLng(a);\n\n this._map.fire(e, {\n latlng: n,\n layerPoint: a,\n containerPoint: o,\n pageX: i.pageX,\n pageY: i.pageY,\n originalEvent: t\n });\n },\n _filterClick: function (t) {\n var e = t.timeStamp || t.originalEvent.timeStamp,\n i = L.DomEvent._lastClick && e - L.DomEvent._lastClick;\n return i && i > 100 && i < 500 || t.target._simulatedClick && !t._simulated ? (L.DomEvent.stop(t), !1) : (L.DomEvent._lastClick = e, !0);\n },\n _onTouchStart: function (t) {\n if (this._map._loaded) {\n this._touchEvent(t, \"touchstart\");\n }\n },\n _onTouchEnd: function (t) {\n if (this._map._loaded) {\n this._touchEvent(t, \"touchend\");\n }\n },\n _onTouchCancel: function (t) {\n if (this._map._loaded) {\n var e = \"touchcancel\";\n this._detectIE() && (e = \"pointercancel\"), this._touchEvent(t, e);\n }\n },\n _onTouchLeave: function (t) {\n if (this._map._loaded) {\n this._touchEvent(t, \"touchleave\");\n }\n },\n _onTouchMove: function (t) {\n if (this._map._loaded) {\n this._touchEvent(t, \"touchmove\");\n }\n },\n _detectIE: function () {\n var e = t.navigator.userAgent,\n i = e.indexOf(\"MSIE \");\n if (i > 0) return parseInt(e.substring(i + 5, e.indexOf(\".\", i)), 10);\n\n if (e.indexOf(\"Trident/\") > 0) {\n var o = e.indexOf(\"rv:\");\n return parseInt(e.substring(o + 3, e.indexOf(\".\", o)), 10);\n }\n\n var a = e.indexOf(\"Edge/\");\n return a > 0 && parseInt(e.substring(a + 5, e.indexOf(\".\", a)), 10);\n }\n }), L.Map.addInitHook(\"addHandler\", \"touchExtend\", L.Map.TouchExtend), L.Marker.Touch = L.Marker.extend({\n _initInteraction: function () {\n return this.addInteractiveTarget ? L.Marker.prototype._initInteraction.apply(this) : this._initInteractionLegacy();\n },\n _initInteractionLegacy: function () {\n if (this.options.clickable) {\n var t = this._icon,\n e = [\"dblclick\", \"mousedown\", \"mouseover\", \"mouseout\", \"contextmenu\", \"touchstart\", \"touchend\", \"touchmove\"];\n this._detectIE ? e.concat([\"MSPointerDown\", \"MSPointerUp\", \"MSPointerMove\", \"MSPointerCancel\"]) : e.concat([\"touchcancel\"]), L.DomUtil.addClass(t, \"leaflet-clickable\"), L.DomEvent.on(t, \"click\", this._onMouseClick, this), L.DomEvent.on(t, \"keypress\", this._onKeyPress, this);\n\n for (var i = 0; i < e.length; i++) L.DomEvent.on(t, e[i], this._fireMouseEvent, this);\n\n L.Handler.MarkerDrag && (this.dragging = new L.Handler.MarkerDrag(this), this.options.draggable && this.dragging.enable());\n }\n },\n _detectIE: function () {\n var e = t.navigator.userAgent,\n i = e.indexOf(\"MSIE \");\n if (i > 0) return parseInt(e.substring(i + 5, e.indexOf(\".\", i)), 10);\n\n if (e.indexOf(\"Trident/\") > 0) {\n var o = e.indexOf(\"rv:\");\n return parseInt(e.substring(o + 3, e.indexOf(\".\", o)), 10);\n }\n\n var a = e.indexOf(\"Edge/\");\n return a > 0 && parseInt(e.substring(a + 5, e.indexOf(\".\", a)), 10);\n }\n }), L.LatLngUtil = {\n cloneLatLngs: function (t) {\n for (var e = [], i = 0, o = t.length; i < o; i++) Array.isArray(t[i]) ? e.push(L.LatLngUtil.cloneLatLngs(t[i])) : e.push(this.cloneLatLng(t[i]));\n\n return e;\n },\n cloneLatLng: function (t) {\n return L.latLng(t.lat, t.lng);\n }\n }, function () {\n var t = {\n km: 2,\n ha: 2,\n m: 0,\n mi: 2,\n ac: 2,\n yd: 0,\n ft: 0,\n nm: 2\n };\n L.GeometryUtil = L.extend(L.GeometryUtil || {}, {\n geodesicArea: function (t) {\n var e,\n i,\n o = t.length,\n a = 0,\n n = Math.PI / 180;\n\n if (o > 2) {\n for (var s = 0; s < o; s++) e = t[s], i = t[(s + 1) % o], a += (i.lng - e.lng) * n * (2 + Math.sin(e.lat * n) + Math.sin(i.lat * n));\n\n a = 6378137 * a * 6378137 / 2;\n }\n\n return Math.abs(a);\n },\n formattedNumber: function (t, e) {\n var i = parseFloat(t).toFixed(e),\n o = L.drawLocal.format && L.drawLocal.format.numeric,\n a = o && o.delimiters,\n n = a && a.thousands,\n s = a && a.decimal;\n\n if (n || s) {\n var r = i.split(\".\");\n i = n ? r[0].replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1\" + n) : r[0], s = s || \".\", r.length > 1 && (i = i + s + r[1]);\n }\n\n return i;\n },\n readableArea: function (e, i, o) {\n var a,\n n,\n o = L.Util.extend({}, t, o);\n return i ? (n = [\"ha\", \"m\"], type = typeof i, \"string\" === type ? n = [i] : \"boolean\" !== type && (n = i), a = e >= 1e6 && -1 !== n.indexOf(\"km\") ? L.GeometryUtil.formattedNumber(1e-6 * e, o.km) + \" km²\" : e >= 1e4 && -1 !== n.indexOf(\"ha\") ? L.GeometryUtil.formattedNumber(1e-4 * e, o.ha) + \" ha\" : L.GeometryUtil.formattedNumber(e, o.m) + \" m²\") : (e /= .836127, a = e >= 3097600 ? L.GeometryUtil.formattedNumber(e / 3097600, o.mi) + \" mi²\" : e >= 4840 ? L.GeometryUtil.formattedNumber(e / 4840, o.ac) + \" acres\" : L.GeometryUtil.formattedNumber(e, o.yd) + \" yd²\"), a;\n },\n readableDistance: function (e, i, o, a, n) {\n var s,\n n = L.Util.extend({}, t, n);\n\n switch (i ? \"string\" == typeof i ? i : \"metric\" : o ? \"feet\" : a ? \"nauticalMile\" : \"yards\") {\n case \"metric\":\n s = e > 1e3 ? L.GeometryUtil.formattedNumber(e / 1e3, n.km) + \" km\" : L.GeometryUtil.formattedNumber(e, n.m) + \" m\";\n break;\n\n case \"feet\":\n e *= 3.28083, s = L.GeometryUtil.formattedNumber(e, n.ft) + \" ft\";\n break;\n\n case \"nauticalMile\":\n e *= .53996, s = L.GeometryUtil.formattedNumber(e / 1e3, n.nm) + \" nm\";\n break;\n\n case \"yards\":\n default:\n e *= 1.09361, s = e > 1760 ? L.GeometryUtil.formattedNumber(e / 1760, n.mi) + \" miles\" : L.GeometryUtil.formattedNumber(e, n.yd) + \" yd\";\n }\n\n return s;\n },\n isVersion07x: function () {\n var t = L.version.split(\".\");\n return 0 === parseInt(t[0], 10) && 7 === parseInt(t[1], 10);\n }\n });\n }(), L.Util.extend(L.LineUtil, {\n segmentsIntersect: function (t, e, i, o) {\n return this._checkCounterclockwise(t, i, o) !== this._checkCounterclockwise(e, i, o) && this._checkCounterclockwise(t, e, i) !== this._checkCounterclockwise(t, e, o);\n },\n _checkCounterclockwise: function (t, e, i) {\n return (i.y - t.y) * (e.x - t.x) > (e.y - t.y) * (i.x - t.x);\n }\n }), L.Polyline.include({\n intersects: function () {\n var t,\n e,\n i,\n o = this._getProjectedPoints(),\n a = o ? o.length : 0;\n\n if (this._tooFewPointsForIntersection()) return !1;\n\n for (t = a - 1; t >= 3; t--) if (e = o[t - 1], i = o[t], this._lineSegmentsIntersectsRange(e, i, t - 2)) return !0;\n\n return !1;\n },\n newLatLngIntersects: function (t, e) {\n return !!this._map && this.newPointIntersects(this._map.latLngToLayerPoint(t), e);\n },\n newPointIntersects: function (t, e) {\n var i = this._getProjectedPoints(),\n o = i ? i.length : 0,\n a = i ? i[o - 1] : null,\n n = o - 2;\n\n return !this._tooFewPointsForIntersection(1) && this._lineSegmentsIntersectsRange(a, t, n, e ? 1 : 0);\n },\n _tooFewPointsForIntersection: function (t) {\n var e = this._getProjectedPoints(),\n i = e ? e.length : 0;\n\n return i += t || 0, !e || i <= 3;\n },\n _lineSegmentsIntersectsRange: function (t, e, i, o) {\n var a,\n n,\n s = this._getProjectedPoints();\n\n o = o || 0;\n\n for (var r = i; r > o; r--) if (a = s[r - 1], n = s[r], L.LineUtil.segmentsIntersect(t, e, a, n)) return !0;\n\n return !1;\n },\n _getProjectedPoints: function () {\n if (!this._defaultShape) return this._originalPoints;\n\n for (var t = [], e = this._defaultShape(), i = 0; i < e.length; i++) t.push(this._map.latLngToLayerPoint(e[i]));\n\n return t;\n }\n }), L.Polygon.include({\n intersects: function () {\n var t,\n e,\n i,\n o,\n a = this._getProjectedPoints();\n\n return !this._tooFewPointsForIntersection() && (!!L.Polyline.prototype.intersects.call(this) || (t = a.length, e = a[0], i = a[t - 1], o = t - 2, this._lineSegmentsIntersectsRange(i, e, o, 1)));\n }\n }), L.Control.Draw = L.Control.extend({\n options: {\n position: \"topleft\",\n draw: {},\n edit: !1\n },\n initialize: function (t) {\n if (L.version < \"0.7\") throw new Error(\"Leaflet.draw 0.2.3+ requires Leaflet 0.7.0+. Download latest from https://github.com/Leaflet/Leaflet/\");\n L.Control.prototype.initialize.call(this, t);\n var e;\n this._toolbars = {}, L.DrawToolbar && this.options.draw && (e = new L.DrawToolbar(this.options.draw), this._toolbars[L.DrawToolbar.TYPE] = e, this._toolbars[L.DrawToolbar.TYPE].on(\"enable\", this._toolbarEnabled, this)), L.EditToolbar && this.options.edit && (e = new L.EditToolbar(this.options.edit), this._toolbars[L.EditToolbar.TYPE] = e, this._toolbars[L.EditToolbar.TYPE].on(\"enable\", this._toolbarEnabled, this)), L.toolbar = this;\n },\n onAdd: function (t) {\n var e,\n i = L.DomUtil.create(\"div\", \"leaflet-draw\"),\n o = !1;\n\n for (var a in this._toolbars) this._toolbars.hasOwnProperty(a) && (e = this._toolbars[a].addToolbar(t)) && (o || (L.DomUtil.hasClass(e, \"leaflet-draw-toolbar-top\") || L.DomUtil.addClass(e.childNodes[0], \"leaflet-draw-toolbar-top\"), o = !0), i.appendChild(e));\n\n return i;\n },\n onRemove: function () {\n for (var t in this._toolbars) this._toolbars.hasOwnProperty(t) && this._toolbars[t].removeToolbar();\n },\n setDrawingOptions: function (t) {\n for (var e in this._toolbars) this._toolbars[e] instanceof L.DrawToolbar && this._toolbars[e].setOptions(t);\n },\n _toolbarEnabled: function (t) {\n var e = t.target;\n\n for (var i in this._toolbars) this._toolbars[i] !== e && this._toolbars[i].disable();\n }\n }), L.Map.mergeOptions({\n drawControlTooltips: !0,\n drawControl: !1\n }), L.Map.addInitHook(function () {\n this.options.drawControl && (this.drawControl = new L.Control.Draw(), this.addControl(this.drawControl));\n }), L.Toolbar = L.Class.extend({\n initialize: function (t) {\n L.setOptions(this, t), this._modes = {}, this._actionButtons = [], this._activeMode = null;\n var e = L.version.split(\".\");\n 1 === parseInt(e[0], 10) && parseInt(e[1], 10) >= 2 ? L.Toolbar.include(L.Evented.prototype) : L.Toolbar.include(L.Mixin.Events);\n },\n enabled: function () {\n return null !== this._activeMode;\n },\n disable: function () {\n this.enabled() && this._activeMode.handler.disable();\n },\n addToolbar: function (t) {\n var e,\n i = L.DomUtil.create(\"div\", \"leaflet-draw-section\"),\n o = 0,\n a = this._toolbarClass || \"\",\n n = this.getModeHandlers(t);\n\n for (this._toolbarContainer = L.DomUtil.create(\"div\", \"leaflet-draw-toolbar leaflet-bar\"), this._map = t, e = 0; e < n.length; e++) n[e].enabled && this._initModeHandler(n[e].handler, this._toolbarContainer, o++, a, n[e].title);\n\n if (o) return this._lastButtonIndex = --o, this._actionsContainer = L.DomUtil.create(\"ul\", \"leaflet-draw-actions\"), i.appendChild(this._toolbarContainer), i.appendChild(this._actionsContainer), i;\n },\n removeToolbar: function () {\n for (var t in this._modes) this._modes.hasOwnProperty(t) && (this._disposeButton(this._modes[t].button, this._modes[t].handler.enable, this._modes[t].handler), this._modes[t].handler.disable(), this._modes[t].handler.off(\"enabled\", this._handlerActivated, this).off(\"disabled\", this._handlerDeactivated, this));\n\n this._modes = {};\n\n for (var e = 0, i = this._actionButtons.length; e < i; e++) this._disposeButton(this._actionButtons[e].button, this._actionButtons[e].callback, this);\n\n this._actionButtons = [], this._actionsContainer = null;\n },\n _initModeHandler: function (t, e, i, o, a) {\n var n = t.type;\n this._modes[n] = {}, this._modes[n].handler = t, this._modes[n].button = this._createButton({\n type: n,\n title: a,\n className: o + \"-\" + n,\n container: e,\n callback: this._modes[n].handler.enable,\n context: this._modes[n].handler\n }), this._modes[n].buttonIndex = i, this._modes[n].handler.on(\"enabled\", this._handlerActivated, this).on(\"disabled\", this._handlerDeactivated, this);\n },\n _detectIOS: function () {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !t.MSStream;\n },\n _createButton: function (t) {\n var e = L.DomUtil.create(\"a\", t.className || \"\", t.container),\n i = L.DomUtil.create(\"span\", \"sr-only\", t.container);\n e.href = \"#\", e.appendChild(i), t.title && (e.title = t.title, i.innerHTML = t.title), t.text && (e.innerHTML = t.text, i.innerHTML = t.text);\n var o = this._detectIOS() ? \"touchstart\" : \"click\";\n return L.DomEvent.on(e, \"click\", L.DomEvent.stopPropagation).on(e, \"mousedown\", L.DomEvent.stopPropagation).on(e, \"dblclick\", L.DomEvent.stopPropagation).on(e, \"touchstart\", L.DomEvent.stopPropagation).on(e, \"click\", L.DomEvent.preventDefault).on(e, o, t.callback, t.context), e;\n },\n _disposeButton: function (t, e) {\n var i = this._detectIOS() ? \"touchstart\" : \"click\";\n L.DomEvent.off(t, \"click\", L.DomEvent.stopPropagation).off(t, \"mousedown\", L.DomEvent.stopPropagation).off(t, \"dblclick\", L.DomEvent.stopPropagation).off(t, \"touchstart\", L.DomEvent.stopPropagation).off(t, \"click\", L.DomEvent.preventDefault).off(t, i, e);\n },\n _handlerActivated: function (t) {\n this.disable(), this._activeMode = this._modes[t.handler], L.DomUtil.addClass(this._activeMode.button, \"leaflet-draw-toolbar-button-enabled\"), this._showActionsToolbar(), this.fire(\"enable\");\n },\n _handlerDeactivated: function () {\n this._hideActionsToolbar(), L.DomUtil.removeClass(this._activeMode.button, \"leaflet-draw-toolbar-button-enabled\"), this._activeMode = null, this.fire(\"disable\");\n },\n _createActions: function (t) {\n var e,\n i,\n o,\n a,\n n = this._actionsContainer,\n s = this.getActions(t),\n r = s.length;\n\n for (i = 0, o = this._actionButtons.length; i < o; i++) this._disposeButton(this._actionButtons[i].button, this._actionButtons[i].callback);\n\n for (this._actionButtons = []; n.firstChild;) n.removeChild(n.firstChild);\n\n for (var l = 0; l < r; l++) \"enabled\" in s[l] && !s[l].enabled || (e = L.DomUtil.create(\"li\", \"\", n), a = this._createButton({\n title: s[l].title,\n text: s[l].text,\n container: e,\n callback: s[l].callback,\n context: s[l].context\n }), this._actionButtons.push({\n button: a,\n callback: s[l].callback\n }));\n },\n _showActionsToolbar: function () {\n var t = this._activeMode.buttonIndex,\n e = this._lastButtonIndex,\n i = this._activeMode.button.offsetTop - 1;\n this._createActions(this._activeMode.handler), this._actionsContainer.style.top = i + \"px\", 0 === t && (L.DomUtil.addClass(this._toolbarContainer, \"leaflet-draw-toolbar-notop\"), L.DomUtil.addClass(this._actionsContainer, \"leaflet-draw-actions-top\")), t === e && (L.DomUtil.addClass(this._toolbarContainer, \"leaflet-draw-toolbar-nobottom\"), L.DomUtil.addClass(this._actionsContainer, \"leaflet-draw-actions-bottom\")), this._actionsContainer.style.display = \"block\", this._map.fire(L.Draw.Event.TOOLBAROPENED);\n },\n _hideActionsToolbar: function () {\n this._actionsContainer.style.display = \"none\", L.DomUtil.removeClass(this._toolbarContainer, \"leaflet-draw-toolbar-notop\"), L.DomUtil.removeClass(this._toolbarContainer, \"leaflet-draw-toolbar-nobottom\"), L.DomUtil.removeClass(this._actionsContainer, \"leaflet-draw-actions-top\"), L.DomUtil.removeClass(this._actionsContainer, \"leaflet-draw-actions-bottom\"), this._map.fire(L.Draw.Event.TOOLBARCLOSED);\n }\n }), L.Draw = L.Draw || {}, L.Draw.Tooltip = L.Class.extend({\n initialize: function (t) {\n this._map = t, this._popupPane = t._panes.popupPane, this._visible = !1, this._container = t.options.drawControlTooltips ? L.DomUtil.create(\"div\", \"leaflet-draw-tooltip\", this._popupPane) : null, this._singleLineLabel = !1, this._map.on(\"mouseout\", this._onMouseOut, this);\n },\n dispose: function () {\n this._map.off(\"mouseout\", this._onMouseOut, this), this._container && (this._popupPane.removeChild(this._container), this._container = null);\n },\n updateContent: function (t) {\n return this._container ? (t.subtext = t.subtext || \"\", 0 !== t.subtext.length || this._singleLineLabel ? t.subtext.length > 0 && this._singleLineLabel && (L.DomUtil.removeClass(this._container, \"leaflet-draw-tooltip-single\"), this._singleLineLabel = !1) : (L.DomUtil.addClass(this._container, \"leaflet-draw-tooltip-single\"), this._singleLineLabel = !0), this._container.innerHTML = (t.subtext.length > 0 ? '<span class=\"leaflet-draw-tooltip-subtext\">' + t.subtext + \"</span><br />\" : \"\") + \"<span>\" + t.text + \"</span>\", t.text || t.subtext ? (this._visible = !0, this._container.style.visibility = \"inherit\") : (this._visible = !1, this._container.style.visibility = \"hidden\"), this) : this;\n },\n updatePosition: function (t) {\n var e = this._map.latLngToLayerPoint(t),\n i = this._container;\n\n return this._container && (this._visible && (i.style.visibility = \"inherit\"), L.DomUtil.setPosition(i, e)), this;\n },\n showAsError: function () {\n return this._container && L.DomUtil.addClass(this._container, \"leaflet-error-draw-tooltip\"), this;\n },\n removeError: function () {\n return this._container && L.DomUtil.removeClass(this._container, \"leaflet-error-draw-tooltip\"), this;\n },\n _onMouseOut: function () {\n this._container && (this._container.style.visibility = \"hidden\");\n }\n }), L.DrawToolbar = L.Toolbar.extend({\n statics: {\n TYPE: \"draw\"\n },\n options: {\n polyline: {},\n polygon: {},\n rectangle: {},\n circle: {},\n marker: {},\n circlemarker: {}\n },\n initialize: function (t) {\n for (var e in this.options) this.options.hasOwnProperty(e) && t[e] && (t[e] = L.extend({}, this.options[e], t[e]));\n\n this._toolbarClass = \"leaflet-draw-draw\", L.Toolbar.prototype.initialize.call(this, t);\n },\n getModeHandlers: function (t) {\n return [{\n enabled: this.options.polyline,\n handler: new L.Draw.Polyline(t, this.options.polyline),\n title: L.drawLocal.draw.toolbar.buttons.polyline\n }, {\n enabled: this.options.polygon,\n handler: new L.Draw.Polygon(t, this.options.polygon),\n title: L.drawLocal.draw.toolbar.buttons.polygon\n }, {\n enabled: this.options.rectangle,\n handler: new L.Draw.Rectangle(t, this.options.rectangle),\n title: L.drawLocal.draw.toolbar.buttons.rectangle\n }, {\n enabled: this.options.circle,\n handler: new L.Draw.Circle(t, this.options.circle),\n title: L.drawLocal.draw.toolbar.buttons.circle\n }, {\n enabled: this.options.marker,\n handler: new L.Draw.Marker(t, this.options.marker),\n title: L.drawLocal.draw.toolbar.buttons.marker\n }, {\n enabled: this.options.circlemarker,\n handler: new L.Draw.CircleMarker(t, this.options.circlemarker),\n title: L.drawLocal.draw.toolbar.buttons.circlemarker\n }];\n },\n getActions: function (t) {\n return [{\n enabled: t.completeShape,\n title: L.drawLocal.draw.toolbar.finish.title,\n text: L.drawLocal.draw.toolbar.finish.text,\n callback: t.completeShape,\n context: t\n }, {\n enabled: t.deleteLastVertex,\n title: L.drawLocal.draw.toolbar.undo.title,\n text: L.drawLocal.draw.toolbar.undo.text,\n callback: t.deleteLastVertex,\n context: t\n }, {\n title: L.drawLocal.draw.toolbar.actions.title,\n text: L.drawLocal.draw.toolbar.actions.text,\n callback: this.disable,\n context: this\n }];\n },\n setOptions: function (t) {\n L.setOptions(this, t);\n\n for (var e in this._modes) this._modes.hasOwnProperty(e) && t.hasOwnProperty(e) && this._modes[e].handler.setOptions(t[e]);\n }\n }), L.EditToolbar = L.Toolbar.extend({\n statics: {\n TYPE: \"edit\"\n },\n options: {\n edit: {\n selectedPathOptions: {\n dashArray: \"10, 10\",\n fill: !0,\n fillColor: \"#fe57a1\",\n fillOpacity: .1,\n maintainColor: !1\n }\n },\n remove: {},\n poly: null,\n featureGroup: null\n },\n initialize: function (t) {\n t.edit && (void 0 === t.edit.selectedPathOptions && (t.edit.selectedPathOptions = this.options.edit.selectedPathOptions), t.edit.selectedPathOptions = L.extend({}, this.options.edit.selectedPathOptions, t.edit.selectedPathOptions)), t.remove && (t.remove = L.extend({}, this.options.remove, t.remove)), t.poly && (t.poly = L.extend({}, this.options.poly, t.poly)), this._toolbarClass = \"leaflet-draw-edit\", L.Toolbar.prototype.initialize.call(this, t), this._selectedFeatureCount = 0;\n },\n getModeHandlers: function (t) {\n var e = this.options.featureGroup;\n return [{\n enabled: this.options.edit,\n handler: new L.EditToolbar.Edit(t, {\n featureGroup: e,\n selectedPathOptions: this.options.edit.selectedPathOptions,\n poly: this.options.poly\n }),\n title: L.drawLocal.edit.toolbar.buttons.edit\n }, {\n enabled: this.options.remove,\n handler: new L.EditToolbar.Delete(t, {\n featureGroup: e\n }),\n title: L.drawLocal.edit.toolbar.buttons.remove\n }];\n },\n getActions: function (t) {\n var e = [{\n title: L.drawLocal.edit.toolbar.actions.save.title,\n text: L.drawLocal.edit.toolbar.actions.save.text,\n callback: this._save,\n context: this\n }, {\n title: L.drawLocal.edit.toolbar.actions.cancel.title,\n text: L.drawLocal.edit.toolbar.actions.cancel.text,\n callback: this.disable,\n context: this\n }];\n return t.removeAllLayers && e.push({\n title: L.drawLocal.edit.toolbar.actions.clearAll.title,\n text: L.drawLocal.edit.toolbar.actions.clearAll.text,\n callback: this._clearAllLayers,\n context: this\n }), e;\n },\n addToolbar: function (t) {\n var e = L.Toolbar.prototype.addToolbar.call(this, t);\n return this._checkDisabled(), this.options.featureGroup.on(\"layeradd layerremove\", this._checkDisabled, this), e;\n },\n removeToolbar: function () {\n this.options.featureGroup.off(\"layeradd layerremove\", this._checkDisabled, this), L.Toolbar.prototype.removeToolbar.call(this);\n },\n disable: function () {\n this.enabled() && (this._activeMode.handler.revertLayers(), L.Toolbar.prototype.disable.call(this));\n },\n _save: function () {\n this._activeMode.handler.save(), this._activeMode && this._activeMode.handler.disable();\n },\n _clearAllLayers: function () {\n this._activeMode.handler.removeAllLayers(), this._activeMode && this._activeMode.handler.disable();\n },\n _checkDisabled: function () {\n var t,\n e = this.options.featureGroup,\n i = 0 !== e.getLayers().length;\n this.options.edit && (t = this._modes[L.EditToolbar.Edit.TYPE].button, i ? L.DomUtil.removeClass(t, \"leaflet-disabled\") : L.DomUtil.addClass(t, \"leaflet-disabled\"), t.setAttribute(\"title\", i ? L.drawLocal.edit.toolbar.buttons.edit : L.drawLocal.edit.toolbar.buttons.editDisabled)), this.options.remove && (t = this._modes[L.EditToolbar.Delete.TYPE].button, i ? L.DomUtil.removeClass(t, \"leaflet-disabled\") : L.DomUtil.addClass(t, \"leaflet-disabled\"), t.setAttribute(\"title\", i ? L.drawLocal.edit.toolbar.buttons.remove : L.drawLocal.edit.toolbar.buttons.removeDisabled));\n }\n }), L.EditToolbar.Edit = L.Handler.extend({\n statics: {\n TYPE: \"edit\"\n },\n initialize: function (t, e) {\n if (L.Handler.prototype.initialize.call(this, t), L.setOptions(this, e), this._featureGroup = e.featureGroup, !(this._featureGroup instanceof L.FeatureGroup)) throw new Error(\"options.featureGroup must be a L.FeatureGroup\");\n this._uneditedLayerProps = {}, this.type = L.EditToolbar.Edit.TYPE;\n var i = L.version.split(\".\");\n 1 === parseInt(i[0], 10) && parseInt(i[1], 10) >= 2 ? L.EditToolbar.Edit.include(L.Evented.prototype) : L.EditToolbar.Edit.include(L.Mixin.Events);\n },\n enable: function () {\n !this._enabled && this._hasAvailableLayers() && (this.fire(\"enabled\", {\n handler: this.type\n }), this._map.fire(L.Draw.Event.EDITSTART, {\n handler: this.type\n }), L.Handler.prototype.enable.call(this), this._featureGroup.on(\"layeradd\", this._enableLayerEdit, this).on(\"layerremove\", this._disableLayerEdit, this));\n },\n disable: function () {\n this._enabled && (this._featureGroup.off(\"layeradd\", this._enableLayerEdit, this).off(\"layerremove\", this._disableLayerEdit, this), L.Handler.prototype.disable.call(this), this._map.fire(L.Draw.Event.EDITSTOP, {\n handler: this.type\n }), this.fire(\"disabled\", {\n handler: this.type\n }));\n },\n addHooks: function () {\n var t = this._map;\n t && (t.getContainer().focus(), this._featureGroup.eachLayer(this._enableLayerEdit, this), this._tooltip = new L.Draw.Tooltip(this._map), this._tooltip.updateContent({\n text: L.drawLocal.edit.handlers.edit.tooltip.text,\n subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext\n }), t._editTooltip = this._tooltip, this._updateTooltip(), this._map.on(\"mousemove\", this._onMouseMove, this).on(\"touchmove\", this._onMouseMove, this).on(\"MSPointerMove\", this._onMouseMove, this).on(L.Draw.Event.EDITVERTEX, this._updateTooltip, this));\n },\n removeHooks: function () {\n this._map && (this._featureGroup.eachLayer(this._disableLayerEdit, this), this._uneditedLayerProps = {}, this._tooltip.dispose(), this._tooltip = null, this._map.off(\"mousemove\", this._onMouseMove, this).off(\"touchmove\", this._onMouseMove, this).off(\"MSPointerMove\", this._onMouseMove, this).off(L.Draw.Event.EDITVERTEX, this._updateTooltip, this));\n },\n revertLayers: function () {\n this._featureGroup.eachLayer(function (t) {\n this._revertLayer(t);\n }, this);\n },\n save: function () {\n var t = new L.LayerGroup();\n this._featureGroup.eachLayer(function (e) {\n e.edited && (t.addLayer(e), e.edited = !1);\n }), this._map.fire(L.Draw.Event.EDITED, {\n layers: t\n });\n },\n _backupLayer: function (t) {\n var e = L.Util.stamp(t);\n this._uneditedLayerProps[e] || (t instanceof L.Polyline || t instanceof L.Polygon || t instanceof L.Rectangle ? this._uneditedLayerProps[e] = {\n latlngs: L.LatLngUtil.cloneLatLngs(t.getLatLngs())\n } : t instanceof L.Circle ? this._uneditedLayerProps[e] = {\n latlng: L.LatLngUtil.cloneLatLng(t.getLatLng()),\n radius: t.getRadius()\n } : (t instanceof L.Marker || t instanceof L.CircleMarker) && (this._uneditedLayerProps[e] = {\n latlng: L.LatLngUtil.cloneLatLng(t.getLatLng())\n }));\n },\n _getTooltipText: function () {\n return {\n text: L.drawLocal.edit.handlers.edit.tooltip.text,\n subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext\n };\n },\n _updateTooltip: function () {\n this._tooltip.updateContent(this._getTooltipText());\n },\n _revertLayer: function (t) {\n var e = L.Util.stamp(t);\n t.edited = !1, this._uneditedLayerProps.hasOwnProperty(e) && (t instanceof L.Polyline || t instanceof L.Polygon || t instanceof L.Rectangle ? t.setLatLngs(this._uneditedLayerProps[e].latlngs) : t instanceof L.Circle ? (t.setLatLng(this._uneditedLayerProps[e].latlng), t.setRadius(this._uneditedLayerProps[e].radius)) : (t instanceof L.Marker || t instanceof L.CircleMarker) && t.setLatLng(this._uneditedLayerProps[e].latlng), t.fire(\"revert-edited\", {\n layer: t\n }));\n },\n _enableLayerEdit: function (t) {\n var e,\n i,\n o = t.layer || t.target || t;\n this._backupLayer(o), this.options.poly && (i = L.Util.extend({}, this.options.poly), o.options.poly = i), this.options.selectedPathOptions && (e = L.Util.extend({}, this.options.selectedPathOptions), e.maintainColor && (e.color = o.options.color, e.fillColor = o.options.fillColor), o.options.original = L.extend({}, o.options), o.options.editing = e), o instanceof L.Marker ? (o.editing && o.editing.enable(), o.dragging.enable(), o.on(\"dragend\", this._onMarkerDragEnd).on(\"touchmove\", this._onTouchMove, this).on(\"MSPointerMove\", this._onTouchMove, this).on(\"touchend\", this._onMarkerDragEnd, this).on(\"MSPointerUp\", this._onMarkerDragEnd, this)) : o.editing.enable();\n },\n _disableLayerEdit: function (t) {\n var e = t.layer || t.target || t;\n e.edited = !1, e.editing && e.editing.disable(), delete e.options.editing, delete e.options.original, this._selectedPathOptions && (e instanceof L.Marker ? this._toggleMarkerHighlight(e) : (e.setStyle(e.options.previousOptions), delete e.options.previousOptions)), e instanceof L.Marker ? (e.dragging.disable(), e.off(\"dragend\", this._onMarkerDragEnd, this).off(\"touchmove\", this._onTouchMove, this).off(\"MSPointerMove\", this._onTouchMove, this).off(\"touchend\", this._onMarkerDragEnd, this).off(\"MSPointerUp\", this._onMarkerDragEnd, this)) : e.editing.disable();\n },\n _onMouseMove: function (t) {\n this._tooltip.updatePosition(t.latlng);\n },\n _onMarkerDragEnd: function (t) {\n var e = t.target;\n e.edited = !0, this._map.fire(L.Draw.Event.EDITMOVE, {\n layer: e\n });\n },\n _onTouchMove: function (t) {\n var e = t.originalEvent.changedTouches[0],\n i = this._map.mouseEventToLayerPoint(e),\n o = this._map.layerPointToLatLng(i);\n\n t.target.setLatLng(o);\n },\n _hasAvailableLayers: function () {\n return 0 !== this._featureGroup.getLayers().length;\n }\n }), L.EditToolbar.Delete = L.Handler.extend({\n statics: {\n TYPE: \"remove\"\n },\n initialize: function (t, e) {\n if (L.Handler.prototype.initialize.call(this, t), L.Util.setOptions(this, e), this._deletableLayers = this.options.featureGroup, !(this._deletableLayers instanceof L.FeatureGroup)) throw new Error(\"options.featureGroup must be a L.FeatureGroup\");\n this.type = L.EditToolbar.Delete.TYPE;\n var i = L.version.split(\".\");\n 1 === parseInt(i[0], 10) && parseInt(i[1], 10) >= 2 ? L.EditToolbar.Delete.include(L.Evented.prototype) : L.EditToolbar.Delete.include(L.Mixin.Events);\n },\n enable: function () {\n !this._enabled && this._hasAvailableLayers() && (this.fire(\"enabled\", {\n handler: this.type\n }), this._map.fire(L.Draw.Event.DELETESTART, {\n handler: this.type\n }), L.Handler.prototype.enable.call(this), this._deletableLayers.on(\"layeradd\", this._enableLayerDelete, this).on(\"layerremove\", this._disableLayerDelete, this));\n },\n disable: function () {\n this._enabled && (this._deletableLayers.off(\"layeradd\", this._enableLayerDelete, this).off(\"layerremove\", this._disableLayerDelete, this), L.Handler.prototype.disable.call(this), this._map.fire(L.Draw.Event.DELETESTOP, {\n handler: this.type\n }), this.fire(\"disabled\", {\n handler: this.type\n }));\n },\n addHooks: function () {\n var t = this._map;\n t && (t.getContainer().focus(), this._deletableLayers.eachLayer(this._enableLayerDelete, this), this._deletedLayers = new L.LayerGroup(), this._tooltip = new L.Draw.Tooltip(this._map), this._tooltip.updateContent({\n text: L.drawLocal.edit.handlers.remove.tooltip.text\n }), this._map.on(\"mousemove\", this._onMouseMove, this));\n },\n removeHooks: function () {\n this._map && (this._deletableLayers.eachLayer(this._disableLayerDelete, this), this._deletedLayers = null, this._tooltip.dispose(), this._tooltip = null, this._map.off(\"mousemove\", this._onMouseMove, this));\n },\n revertLayers: function () {\n this._deletedLayers.eachLayer(function (t) {\n this._deletableLayers.addLayer(t), t.fire(\"revert-deleted\", {\n layer: t\n });\n }, this);\n },\n save: function () {\n this._map.fire(L.Draw.Event.DELETED, {\n layers: this._deletedLayers\n });\n },\n removeAllLayers: function () {\n this._deletableLayers.eachLayer(function (t) {\n this._removeLayer({\n layer: t\n });\n }, this), this.save();\n },\n _enableLayerDelete: function (t) {\n (t.layer || t.target || t).on(\"click\", this._removeLayer, this);\n },\n _disableLayerDelete: function (t) {\n var e = t.layer || t.target || t;\n e.off(\"click\", this._removeLayer, this), this._deletedLayers.removeLayer(e);\n },\n _removeLayer: function (t) {\n var e = t.layer || t.target || t;\n this._deletableLayers.removeLayer(e), this._deletedLayers.addLayer(e), e.fire(\"deleted\");\n },\n _onMouseMove: function (t) {\n this._tooltip.updatePosition(t.latlng);\n },\n _hasAvailableLayers: function () {\n return 0 !== this._deletableLayers.getLayers().length;\n }\n });\n}(window, document);","map":{"version":3,"names":["t","e","i","o","parentElement","classList","contains","L","drawVersion","Draw","drawLocal","draw","toolbar","actions","title","text","finish","undo","buttons","polyline","polygon","rectangle","circle","marker","circlemarker","handlers","tooltip","start","radius","cont","end","error","simpleshape","edit","save","cancel","clearAll","editDisabled","remove","removeDisabled","subtext","Event","CREATED","EDITED","DELETED","DRAWSTART","DRAWSTOP","DRAWVERTEX","EDITSTART","EDITMOVE","EDITRESIZE","EDITVERTEX","EDITSTOP","DELETESTART","DELETESTOP","TOOLBAROPENED","TOOLBARCLOSED","MARKERCONTEXT","Feature","Handler","extend","initialize","_map","_container","_overlayPane","_panes","overlayPane","_popupPane","popupPane","shapeOptions","Util","options","setOptions","version","split","parseInt","include","Evented","prototype","Mixin","Events","enable","_enabled","call","fire","handler","type","layerType","disable","addHooks","DomUtil","disableTextSelection","getContainer","focus","_tooltip","Tooltip","DomEvent","on","_cancelDrawing","removeHooks","enableTextSelection","dispose","off","_fireCreatedEvent","layer","keyCode","Polyline","statics","TYPE","Poly","allowIntersection","repeatMode","drawError","color","timeout","icon","DivIcon","iconSize","Point","className","touchIcon","guidelineDistance","maxGuideLineLength","stroke","weight","opacity","fill","clickable","metric","feet","nautic","showLength","zIndexOffset","factor","maxPoints","Browser","touch","message","_markers","_markerGroup","LayerGroup","addLayer","_poly","updateContent","_getTooltipText","_mouseMarker","getCenter","divIcon","iconAnchor","_onMouseOut","_onMouseMove","_onMouseDown","_onMouseUp","addTo","_onZoomEnd","_onTouch","_clearHideErrorTimeout","_cleanUpShape","removeLayer","_clearGuides","deleteLastVertex","length","pop","getLatLngs","splice","setLatLngs","_vertexChanged","addVertex","newLatLngIntersects","_showErrorTooltip","_errorShown","_hideErrorTooltip","push","_createMarker","addLatLng","completeShape","_shapeIsValid","_finishShape","_defaultShape","_updateGuide","mouseEventToLayerPoint","originalEvent","layerPointToLatLng","_currentLatLng","_updateTooltip","setLatLng","preventDefault","layers","_updateFinishHandler","_updateRunningMeasure","_clickHandled","_touchHandled","_disableMarkers","_disableNewMarkers","clientX","clientY","_startPoint","_mouseDownOrigin","point","_endPoint","a","distanceTo","n","_calculateFinishDistance","latlng","Math","abs","devicePixelRatio","_enableNewMarkers","touches","Polygon","latLngToContainerPoint","getLatLng","Marker","latLngToLayerPoint","_drawGuide","updatePosition","floor","sqrt","pow","x","y","s","r","l","_guidesContainer","create","style","backgroundColor","setPosition","_updateGuideColor","childNodes","firstChild","removeChild","_getMeasurementString","_measurementRunningTotal","GeometryUtil","isVersion07x","distance","readableDistance","precision","showAsError","setStyle","_hideErrorTimeout","setTimeout","bind","removeError","clearTimeout","showArea","fillColor","fillOpacity","_area","readableArea","geodesicArea","SimpleShape","_endLabelText","_mapDraggable","dragging","enabled","cursor","_initialLabelText","addEventListener","passive","removeEventListener","_shape","_isDrawing","_startLatLng","_drawShape","Rectangle","_isCurrentlyTwoClickDrawing","target","setBounds","LatLngBounds","getBounds","Icon","Default","_onClick","_marker","Touch","CircleMarker","Circle","showRadius","setRadius","getRadius","toFixed","Edit","_onDragEnd","_toggleMarkerHighlight","edited","_icon","display","hasClass","removeClass","_offsetMarker","addClass","marginTop","marginLeft","addInitHook","editing","editable","latlngs","_latlngs","_holes","concat","_updateLatLngs","_flat","_eachVertexHandler","_verticesHandlers","_initHandlers","updateMarkers","PolyVerticesEdit","poly","_path","original","forEach","_initMarkers","clearLayers","_onMarkerClick","_onContextMenu","_createMiddleMarker","_updatePrevNext","draggable","_origLatLng","_index","_onMarkerDragStart","_onMarkerDrag","_fireEdit","_onTouchMove","_spliceLatLngs","apply","arguments","_convertLatLngs","redraw","_removeMarker","_updateIndexes","LatLngUtil","cloneLatLng","_latlng","_editTooltip","intersects","_middleLeft","_getMiddleLatLng","_prev","_middleRight","_next","_bounds","_southWest","latLng","_northEast","stopPropagation","eachLayer","setOpacity","lat","lng","project","unproject","_add","_divideBy","moveIcon","resizeIcon","touchMoveIcon","touchResizeIcon","_unbindMarker","_moveMarker","_resizeMarkers","_createMoveMarker","_createResizeMarker","_bindMarker","_onMarkerDragEnd","_onTouchStart","_onTouchEnd","_move","_resize","_getCorners","_cornerIndex","_oppositeCorner","_toggleCornerMarkers","_repositionCornerMarkers","latLngBounds","getNorthWest","getNorthEast","getSouthEast","getSouthWest","_getResizeMarkerPoint","_radius","cos","PI","editTooltip","Map","mergeOptions","touchExtend","TouchExtend","_pane","_detectIE","_onTouchCancel","_onTouchLeave","_touchEvent","pointerType","_filterClick","mouseEventToContainerPoint","layerPoint","containerPoint","pageX","pageY","timeStamp","_lastClick","_simulatedClick","_simulated","stop","_loaded","navigator","userAgent","indexOf","substring","_initInteraction","addInteractiveTarget","_initInteractionLegacy","_onMouseClick","_onKeyPress","_fireMouseEvent","MarkerDrag","cloneLatLngs","Array","isArray","km","ha","m","mi","ac","yd","ft","nm","sin","formattedNumber","parseFloat","format","numeric","delimiters","thousands","decimal","replace","LineUtil","segmentsIntersect","_checkCounterclockwise","_getProjectedPoints","_tooFewPointsForIntersection","_lineSegmentsIntersectsRange","newPointIntersects","_originalPoints","Control","position","Error","_toolbars","DrawToolbar","_toolbarEnabled","EditToolbar","onAdd","hasOwnProperty","addToolbar","appendChild","onRemove","removeToolbar","setDrawingOptions","drawControlTooltips","drawControl","addControl","Toolbar","Class","_modes","_actionButtons","_activeMode","_toolbarClass","getModeHandlers","_toolbarContainer","_initModeHandler","_lastButtonIndex","_actionsContainer","_disposeButton","button","_handlerActivated","_handlerDeactivated","callback","_createButton","container","context","buttonIndex","_detectIOS","test","MSStream","href","innerHTML","_showActionsToolbar","_hideActionsToolbar","_createActions","getActions","offsetTop","top","_visible","_singleLineLabel","visibility","selectedPathOptions","dashArray","maintainColor","featureGroup","_selectedFeatureCount","Delete","_save","removeAllLayers","_clearAllLayers","_checkDisabled","revertLayers","getLayers","setAttribute","_featureGroup","FeatureGroup","_uneditedLayerProps","_hasAvailableLayers","_enableLayerEdit","_disableLayerEdit","_revertLayer","_backupLayer","stamp","_selectedPathOptions","previousOptions","changedTouches","_deletableLayers","_enableLayerDelete","_disableLayerDelete","_deletedLayers","_removeLayer","window","document"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/leaflet-draw/dist/leaflet.draw.js"],"sourcesContent":["/*\n Leaflet.draw 1.0.4, a plugin that adds drawing and editing tools to Leaflet powered maps.\n (c) 2012-2017, Jacob Toye, Jon West, Smartrak, Leaflet\n\n https://github.com/Leaflet/Leaflet.draw\n http://leafletjs.com\n */\n!function(t,e,i){function o(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}L.drawVersion=\"1.0.4\",L.Draw={},L.drawLocal={draw:{toolbar:{actions:{title:\"Cancel drawing\",text:\"Cancel\"},finish:{title:\"Finish drawing\",text:\"Finish\"},undo:{title:\"Delete last point drawn\",text:\"Delete last point\"},buttons:{polyline:\"Draw a polyline\",polygon:\"Draw a polygon\",rectangle:\"Draw a rectangle\",circle:\"Draw a circle\",marker:\"Draw a marker\",circlemarker:\"Draw a circlemarker\"}},handlers:{circle:{tooltip:{start:\"Click and drag to draw circle.\"},radius:\"Radius\"},circlemarker:{tooltip:{start:\"Click map to place circle marker.\"}},marker:{tooltip:{start:\"Click map to place marker.\"}},polygon:{tooltip:{start:\"Click to start drawing shape.\",cont:\"Click to continue drawing shape.\",end:\"Click first point to close this shape.\"}},polyline:{error:\"<strong>Error:</strong> shape edges cannot cross!\",tooltip:{start:\"Click to start drawing line.\",cont:\"Click to continue drawing line.\",end:\"Click last point to finish line.\"}},rectangle:{tooltip:{start:\"Click and drag to draw rectangle.\"}},simpleshape:{tooltip:{end:\"Release mouse to finish drawing.\"}}}},edit:{toolbar:{actions:{save:{title:\"Save changes\",text:\"Save\"},cancel:{title:\"Cancel editing, discards all changes\",text:\"Cancel\"},clearAll:{title:\"Clear all layers\",text:\"Clear All\"}},buttons:{edit:\"Edit layers\",editDisabled:\"No layers to edit\",remove:\"Delete layers\",removeDisabled:\"No layers to delete\"}},handlers:{edit:{tooltip:{text:\"Drag handles or markers to edit features.\",subtext:\"Click cancel to undo changes.\"}},remove:{tooltip:{text:\"Click on a feature to remove.\"}}}}},L.Draw.Event={},L.Draw.Event.CREATED=\"draw:created\",L.Draw.Event.EDITED=\"draw:edited\",L.Draw.Event.DELETED=\"draw:deleted\",L.Draw.Event.DRAWSTART=\"draw:drawstart\",L.Draw.Event.DRAWSTOP=\"draw:drawstop\",L.Draw.Event.DRAWVERTEX=\"draw:drawvertex\",L.Draw.Event.EDITSTART=\"draw:editstart\",L.Draw.Event.EDITMOVE=\"draw:editmove\",L.Draw.Event.EDITRESIZE=\"draw:editresize\",L.Draw.Event.EDITVERTEX=\"draw:editvertex\",L.Draw.Event.EDITSTOP=\"draw:editstop\",L.Draw.Event.DELETESTART=\"draw:deletestart\",L.Draw.Event.DELETESTOP=\"draw:deletestop\",L.Draw.Event.TOOLBAROPENED=\"draw:toolbaropened\",L.Draw.Event.TOOLBARCLOSED=\"draw:toolbarclosed\",L.Draw.Event.MARKERCONTEXT=\"draw:markercontext\",L.Draw=L.Draw||{},L.Draw.Feature=L.Handler.extend({initialize:function(t,e){this._map=t,this._container=t._container,this._overlayPane=t._panes.overlayPane,this._popupPane=t._panes.popupPane,e&&e.shapeOptions&&(e.shapeOptions=L.Util.extend({},this.options.shapeOptions,e.shapeOptions)),L.setOptions(this,e);var i=L.version.split(\".\");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.Draw.Feature.include(L.Evented.prototype):L.Draw.Feature.include(L.Mixin.Events)},enable:function(){this._enabled||(L.Handler.prototype.enable.call(this),this.fire(\"enabled\",{handler:this.type}),this._map.fire(L.Draw.Event.DRAWSTART,{layerType:this.type}))},disable:function(){this._enabled&&(L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.DRAWSTOP,{layerType:this.type}),this.fire(\"disabled\",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(L.DomUtil.disableTextSelection(),t.getContainer().focus(),this._tooltip=new L.Draw.Tooltip(this._map),L.DomEvent.on(this._container,\"keyup\",this._cancelDrawing,this))},removeHooks:function(){this._map&&(L.DomUtil.enableTextSelection(),this._tooltip.dispose(),this._tooltip=null,L.DomEvent.off(this._container,\"keyup\",this._cancelDrawing,this))},setOptions:function(t){L.setOptions(this,t)},_fireCreatedEvent:function(t){this._map.fire(L.Draw.Event.CREATED,{layer:t,layerType:this.type})},_cancelDrawing:function(t){27===t.keyCode&&(this._map.fire(\"draw:canceled\",{layerType:this.type}),this.disable())}}),L.Draw.Polyline=L.Draw.Feature.extend({statics:{TYPE:\"polyline\"},Poly:L.Polyline,options:{allowIntersection:!0,repeatMode:!1,drawError:{color:\"#b00b00\",timeout:2500},icon:new L.DivIcon({iconSize:new L.Point(8,8),className:\"leaflet-div-icon leaflet-editing-icon\"}),touchIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:\"leaflet-div-icon leaflet-editing-icon leaflet-touch-icon\"}),guidelineDistance:20,maxGuideLineLength:4e3,shapeOptions:{stroke:!0,color:\"#3388ff\",weight:4,opacity:.5,fill:!1,clickable:!0},metric:!0,feet:!0,nautic:!1,showLength:!0,zIndexOffset:2e3,factor:1,maxPoints:0},initialize:function(t,e){L.Browser.touch&&(this.options.icon=this.options.touchIcon),this.options.drawError.message=L.drawLocal.draw.handlers.polyline.error,e&&e.drawError&&(e.drawError=L.Util.extend({},this.options.drawError,e.drawError)),this.type=L.Draw.Polyline.TYPE,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._markers=[],this._markerGroup=new L.LayerGroup,this._map.addLayer(this._markerGroup),this._poly=new L.Polyline([],this.options.shapeOptions),this._tooltip.updateContent(this._getTooltipText()),this._mouseMarker||(this._mouseMarker=L.marker(this._map.getCenter(),{icon:L.divIcon({className:\"leaflet-mouse-marker\",iconAnchor:[20,20],iconSize:[40,40]}),opacity:0,zIndexOffset:this.options.zIndexOffset})),this._mouseMarker.on(\"mouseout\",this._onMouseOut,this).on(\"mousemove\",this._onMouseMove,this).on(\"mousedown\",this._onMouseDown,this).on(\"mouseup\",this._onMouseUp,this).addTo(this._map),this._map.on(\"mouseup\",this._onMouseUp,this).on(\"mousemove\",this._onMouseMove,this).on(\"zoomlevelschange\",this._onZoomEnd,this).on(\"touchstart\",this._onTouch,this).on(\"zoomend\",this._onZoomEnd,this))},removeHooks:function(){L.Draw.Feature.prototype.removeHooks.call(this),this._clearHideErrorTimeout(),this._cleanUpShape(),this._map.removeLayer(this._markerGroup),delete this._markerGroup,delete this._markers,this._map.removeLayer(this._poly),delete this._poly,this._mouseMarker.off(\"mousedown\",this._onMouseDown,this).off(\"mouseout\",this._onMouseOut,this).off(\"mouseup\",this._onMouseUp,this).off(\"mousemove\",this._onMouseMove,this),this._map.removeLayer(this._mouseMarker),delete this._mouseMarker,this._clearGuides(),this._map.off(\"mouseup\",this._onMouseUp,this).off(\"mousemove\",this._onMouseMove,this).off(\"zoomlevelschange\",this._onZoomEnd,this).off(\"zoomend\",this._onZoomEnd,this).off(\"touchstart\",this._onTouch,this).off(\"click\",this._onTouch,this)},deleteLastVertex:function(){if(!(this._markers.length<=1)){var t=this._markers.pop(),e=this._poly,i=e.getLatLngs(),o=i.splice(-1,1)[0];this._poly.setLatLngs(i),this._markerGroup.removeLayer(t),e.getLatLngs().length<2&&this._map.removeLayer(e),this._vertexChanged(o,!1)}},addVertex:function(t){if(this._markers.length>=2&&!this.options.allowIntersection&&this._poly.newLatLngIntersects(t))return void this._showErrorTooltip();this._errorShown&&this._hideErrorTooltip(),this._markers.push(this._createMarker(t)),this._poly.addLatLng(t),2===this._poly.getLatLngs().length&&this._map.addLayer(this._poly),this._vertexChanged(t,!0)},completeShape:function(){this._markers.length<=1||!this._shapeIsValid()||(this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable())},_finishShape:function(){var t=this._poly._defaultShape?this._poly._defaultShape():this._poly.getLatLngs(),e=this._poly.newLatLngIntersects(t[t.length-1]);if(!this.options.allowIntersection&&e||!this._shapeIsValid())return void this._showErrorTooltip();this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable()},_shapeIsValid:function(){return!0},_onZoomEnd:function(){null!==this._markers&&this._updateGuide()},_onMouseMove:function(t){var e=this._map.mouseEventToLayerPoint(t.originalEvent),i=this._map.layerPointToLatLng(e);this._currentLatLng=i,this._updateTooltip(i),this._updateGuide(e),this._mouseMarker.setLatLng(i),L.DomEvent.preventDefault(t.originalEvent)},_vertexChanged:function(t,e){this._map.fire(L.Draw.Event.DRAWVERTEX,{layers:this._markerGroup}),this._updateFinishHandler(),this._updateRunningMeasure(t,e),this._clearGuides(),this._updateTooltip()},_onMouseDown:function(t){if(!this._clickHandled&&!this._touchHandled&&!this._disableMarkers){this._onMouseMove(t),this._clickHandled=!0,this._disableNewMarkers();var e=t.originalEvent,i=e.clientX,o=e.clientY;this._startPoint.call(this,i,o)}},_startPoint:function(t,e){this._mouseDownOrigin=L.point(t,e)},_onMouseUp:function(t){var e=t.originalEvent,i=e.clientX,o=e.clientY;this._endPoint.call(this,i,o,t),this._clickHandled=null},_endPoint:function(e,i,o){if(this._mouseDownOrigin){var a=L.point(e,i).distanceTo(this._mouseDownOrigin),n=this._calculateFinishDistance(o.latlng);this.options.maxPoints>1&&this.options.maxPoints==this._markers.length+1?(this.addVertex(o.latlng),this._finishShape()):n<10&&L.Browser.touch?this._finishShape():Math.abs(a)<9*(t.devicePixelRatio||1)&&this.addVertex(o.latlng),this._enableNewMarkers()}this._mouseDownOrigin=null},_onTouch:function(t){var e,i,o=t.originalEvent;!o.touches||!o.touches[0]||this._clickHandled||this._touchHandled||this._disableMarkers||(e=o.touches[0].clientX,i=o.touches[0].clientY,this._disableNewMarkers(),this._touchHandled=!0,this._startPoint.call(this,e,i),this._endPoint.call(this,e,i,t),this._touchHandled=null),this._clickHandled=null},_onMouseOut:function(){this._tooltip&&this._tooltip._onMouseOut.call(this._tooltip)},_calculateFinishDistance:function(t){var e;if(this._markers.length>0){var i;if(this.type===L.Draw.Polyline.TYPE)i=this._markers[this._markers.length-1];else{if(this.type!==L.Draw.Polygon.TYPE)return 1/0;i=this._markers[0]}var o=this._map.latLngToContainerPoint(i.getLatLng()),a=new L.Marker(t,{icon:this.options.icon,zIndexOffset:2*this.options.zIndexOffset}),n=this._map.latLngToContainerPoint(a.getLatLng());e=o.distanceTo(n)}else e=1/0;return e},_updateFinishHandler:function(){var t=this._markers.length;t>1&&this._markers[t-1].on(\"click\",this._finishShape,this),t>2&&this._markers[t-2].off(\"click\",this._finishShape,this)},_createMarker:function(t){var e=new L.Marker(t,{icon:this.options.icon,zIndexOffset:2*this.options.zIndexOffset});return this._markerGroup.addLayer(e),e},_updateGuide:function(t){var e=this._markers?this._markers.length:0;e>0&&(t=t||this._map.latLngToLayerPoint(this._currentLatLng),this._clearGuides(),this._drawGuide(this._map.latLngToLayerPoint(this._markers[e-1].getLatLng()),t))},_updateTooltip:function(t){var e=this._getTooltipText();t&&this._tooltip.updatePosition(t),this._errorShown||this._tooltip.updateContent(e)},_drawGuide:function(t,e){var i,o,a,n=Math.floor(Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))),s=this.options.guidelineDistance,r=this.options.maxGuideLineLength,l=n>r?n-r:s;for(this._guidesContainer||(this._guidesContainer=L.DomUtil.create(\"div\",\"leaflet-draw-guides\",this._overlayPane));l<n;l+=this.options.guidelineDistance)i=l/n,o={x:Math.floor(t.x*(1-i)+i*e.x),y:Math.floor(t.y*(1-i)+i*e.y)},a=L.DomUtil.create(\"div\",\"leaflet-draw-guide-dash\",this._guidesContainer),a.style.backgroundColor=this._errorShown?this.options.drawError.color:this.options.shapeOptions.color,L.DomUtil.setPosition(a,o)},_updateGuideColor:function(t){if(this._guidesContainer)for(var e=0,i=this._guidesContainer.childNodes.length;e<i;e++)this._guidesContainer.childNodes[e].style.backgroundColor=t},_clearGuides:function(){if(this._guidesContainer)for(;this._guidesContainer.firstChild;)this._guidesContainer.removeChild(this._guidesContainer.firstChild)},_getTooltipText:function(){var t,e,i=this.options.showLength;return 0===this._markers.length?t={text:L.drawLocal.draw.handlers.polyline.tooltip.start}:(e=i?this._getMeasurementString():\"\",t=1===this._markers.length?{text:L.drawLocal.draw.handlers.polyline.tooltip.cont,subtext:e}:{text:L.drawLocal.draw.handlers.polyline.tooltip.end,subtext:e}),t},_updateRunningMeasure:function(t,e){var i,o,a=this._markers.length;1===this._markers.length?this._measurementRunningTotal=0:(i=a-(e?2:1),o=L.GeometryUtil.isVersion07x()?t.distanceTo(this._markers[i].getLatLng())*(this.options.factor||1):this._map.distance(t,this._markers[i].getLatLng())*(this.options.factor||1),this._measurementRunningTotal+=o*(e?1:-1))},_getMeasurementString:function(){var t,e=this._currentLatLng,i=this._markers[this._markers.length-1].getLatLng();return t=L.GeometryUtil.isVersion07x()?i&&e&&e.distanceTo?this._measurementRunningTotal+e.distanceTo(i)*(this.options.factor||1):this._measurementRunningTotal||0:i&&e?this._measurementRunningTotal+this._map.distance(e,i)*(this.options.factor||1):this._measurementRunningTotal||0,L.GeometryUtil.readableDistance(t,this.options.metric,this.options.feet,this.options.nautic,this.options.precision)},_showErrorTooltip:function(){this._errorShown=!0,this._tooltip.showAsError().updateContent({text:this.options.drawError.message}),this._updateGuideColor(this.options.drawError.color),this._poly.setStyle({color:this.options.drawError.color}),this._clearHideErrorTimeout(),this._hideErrorTimeout=setTimeout(L.Util.bind(this._hideErrorTooltip,this),this.options.drawError.timeout)},_hideErrorTooltip:function(){this._errorShown=!1,this._clearHideErrorTimeout(),this._tooltip.removeError().updateContent(this._getTooltipText()),this._updateGuideColor(this.options.shapeOptions.color),this._poly.setStyle({color:this.options.shapeOptions.color})},_clearHideErrorTimeout:function(){this._hideErrorTimeout&&(clearTimeout(this._hideErrorTimeout),this._hideErrorTimeout=null)},_disableNewMarkers:function(){this._disableMarkers=!0},_enableNewMarkers:function(){setTimeout(function(){this._disableMarkers=!1}.bind(this),50)},_cleanUpShape:function(){this._markers.length>1&&this._markers[this._markers.length-1].off(\"click\",this._finishShape,this)},_fireCreatedEvent:function(){var t=new this.Poly(this._poly.getLatLngs(),this.options.shapeOptions);L.Draw.Feature.prototype._fireCreatedEvent.call(this,t)}}),L.Draw.Polygon=L.Draw.Polyline.extend({statics:{TYPE:\"polygon\"},Poly:L.Polygon,options:{showArea:!1,showLength:!1,shapeOptions:{stroke:!0,color:\"#3388ff\",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0},metric:!0,feet:!0,nautic:!1,precision:{}},initialize:function(t,e){L.Draw.Polyline.prototype.initialize.call(this,t,e),this.type=L.Draw.Polygon.TYPE},_updateFinishHandler:function(){var t=this._markers.length;1===t&&this._markers[0].on(\"click\",this._finishShape,this),t>2&&(this._markers[t-1].on(\"dblclick\",this._finishShape,this),t>3&&this._markers[t-2].off(\"dblclick\",this._finishShape,this))},_getTooltipText:function(){var t,e;return 0===this._markers.length?t=L.drawLocal.draw.handlers.polygon.tooltip.start:this._markers.length<3?(t=L.drawLocal.draw.handlers.polygon.tooltip.cont,e=this._getMeasurementString()):(t=L.drawLocal.draw.handlers.polygon.tooltip.end,e=this._getMeasurementString()),{text:t,subtext:e}},_getMeasurementString:function(){var t=this._area,e=\"\";return t||this.options.showLength?(this.options.showLength&&(e=L.Draw.Polyline.prototype._getMeasurementString.call(this)),t&&(e+=\"<br>\"+L.GeometryUtil.readableArea(t,this.options.metric,this.options.precision)),e):null},_shapeIsValid:function(){return this._markers.length>=3},_vertexChanged:function(t,e){var i;!this.options.allowIntersection&&this.options.showArea&&(i=this._poly.getLatLngs(),this._area=L.GeometryUtil.geodesicArea(i)),L.Draw.Polyline.prototype._vertexChanged.call(this,t,e)},_cleanUpShape:function(){var t=this._markers.length;t>0&&(this._markers[0].off(\"click\",this._finishShape,this),t>2&&this._markers[t-1].off(\"dblclick\",this._finishShape,this))}}),L.SimpleShape={},L.Draw.SimpleShape=L.Draw.Feature.extend({options:{repeatMode:!1},initialize:function(t,e){this._endLabelText=L.drawLocal.draw.handlers.simpleshape.tooltip.end,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._mapDraggable=this._map.dragging.enabled(),this._mapDraggable&&this._map.dragging.disable(),this._container.style.cursor=\"crosshair\",this._tooltip.updateContent({text:this._initialLabelText}),this._map.on(\"mousedown\",this._onMouseDown,this).on(\"mousemove\",this._onMouseMove,this).on(\"touchstart\",this._onMouseDown,this).on(\"touchmove\",this._onMouseMove,this),e.addEventListener(\"touchstart\",L.DomEvent.preventDefault,{passive:!1}))},removeHooks:function(){L.Draw.Feature.prototype.removeHooks.call(this),this._map&&(this._mapDraggable&&this._map.dragging.enable(),this._container.style.cursor=\"\",this._map.off(\"mousedown\",this._onMouseDown,this).off(\"mousemove\",this._onMouseMove,this).off(\"touchstart\",this._onMouseDown,this).off(\"touchmove\",this._onMouseMove,this),L.DomEvent.off(e,\"mouseup\",this._onMouseUp,this),L.DomEvent.off(e,\"touchend\",this._onMouseUp,this),e.removeEventListener(\"touchstart\",L.DomEvent.preventDefault),this._shape&&(this._map.removeLayer(this._shape),delete this._shape)),this._isDrawing=!1},_getTooltipText:function(){return{text:this._endLabelText}},_onMouseDown:function(t){this._isDrawing=!0,this._startLatLng=t.latlng,L.DomEvent.on(e,\"mouseup\",this._onMouseUp,this).on(e,\"touchend\",this._onMouseUp,this).preventDefault(t.originalEvent)},_onMouseMove:function(t){var e=t.latlng;this._tooltip.updatePosition(e),this._isDrawing&&(this._tooltip.updateContent(this._getTooltipText()),this._drawShape(e))},_onMouseUp:function(){this._shape&&this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable()}}),L.Draw.Rectangle=L.Draw.SimpleShape.extend({statics:{TYPE:\"rectangle\"},options:{shapeOptions:{stroke:!0,color:\"#3388ff\",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0},showArea:!0,metric:!0},initialize:function(t,e){this.type=L.Draw.Rectangle.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.rectangle.tooltip.start,L.Draw.SimpleShape.prototype.initialize.call(this,t,e)},disable:function(){this._enabled&&(this._isCurrentlyTwoClickDrawing=!1,L.Draw.SimpleShape.prototype.disable.call(this))},_onMouseUp:function(t){if(!this._shape&&!this._isCurrentlyTwoClickDrawing)return void(this._isCurrentlyTwoClickDrawing=!0);this._isCurrentlyTwoClickDrawing&&!o(t.target,\"leaflet-pane\")||L.Draw.SimpleShape.prototype._onMouseUp.call(this)},_drawShape:function(t){this._shape?this._shape.setBounds(new L.LatLngBounds(this._startLatLng,t)):(this._shape=new L.Rectangle(new L.LatLngBounds(this._startLatLng,t),this.options.shapeOptions),this._map.addLayer(this._shape))},_fireCreatedEvent:function(){var t=new L.Rectangle(this._shape.getBounds(),this.options.shapeOptions);L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this,t)},_getTooltipText:function(){var t,e,i,o=L.Draw.SimpleShape.prototype._getTooltipText.call(this),a=this._shape,n=this.options.showArea;return a&&(t=this._shape._defaultShape?this._shape._defaultShape():this._shape.getLatLngs(),e=L.GeometryUtil.geodesicArea(t),i=n?L.GeometryUtil.readableArea(e,this.options.metric):\"\"),{text:o.text,subtext:i}}}),L.Draw.Marker=L.Draw.Feature.extend({statics:{TYPE:\"marker\"},options:{icon:new L.Icon.Default,repeatMode:!1,zIndexOffset:2e3},initialize:function(t,e){this.type=L.Draw.Marker.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.marker.tooltip.start,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._tooltip.updateContent({text:this._initialLabelText}),this._mouseMarker||(this._mouseMarker=L.marker(this._map.getCenter(),{icon:L.divIcon({className:\"leaflet-mouse-marker\",iconAnchor:[20,20],iconSize:[40,40]}),opacity:0,zIndexOffset:this.options.zIndexOffset})),this._mouseMarker.on(\"click\",this._onClick,this).addTo(this._map),this._map.on(\"mousemove\",this._onMouseMove,this),this._map.on(\"click\",this._onTouch,this))},removeHooks:function(){L.Draw.Feature.prototype.removeHooks.call(this),this._map&&(this._map.off(\"click\",this._onClick,this).off(\"click\",this._onTouch,this),this._marker&&(this._marker.off(\"click\",this._onClick,this),this._map.removeLayer(this._marker),delete this._marker),this._mouseMarker.off(\"click\",this._onClick,this),this._map.removeLayer(this._mouseMarker),delete this._mouseMarker,this._map.off(\"mousemove\",this._onMouseMove,this))},_onMouseMove:function(t){var e=t.latlng;this._tooltip.updatePosition(e),this._mouseMarker.setLatLng(e),this._marker?(e=this._mouseMarker.getLatLng(),this._marker.setLatLng(e)):(this._marker=this._createMarker(e),this._marker.on(\"click\",this._onClick,this),this._map.on(\"click\",this._onClick,this).addLayer(this._marker))},_createMarker:function(t){return new L.Marker(t,{icon:this.options.icon,zIndexOffset:this.options.zIndexOffset})},_onClick:function(){this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable()},_onTouch:function(t){this._onMouseMove(t),this._onClick()},_fireCreatedEvent:function(){var t=new L.Marker.Touch(this._marker.getLatLng(),{icon:this.options.icon});L.Draw.Feature.prototype._fireCreatedEvent.call(this,t)}}),L.Draw.CircleMarker=L.Draw.Marker.extend({statics:{TYPE:\"circlemarker\"},options:{stroke:!0,color:\"#3388ff\",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0,zIndexOffset:2e3},initialize:function(t,e){this.type=L.Draw.CircleMarker.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.circlemarker.tooltip.start,L.Draw.Feature.prototype.initialize.call(this,t,e)},_fireCreatedEvent:function(){var t=new L.CircleMarker(this._marker.getLatLng(),this.options);L.Draw.Feature.prototype._fireCreatedEvent.call(this,t)},_createMarker:function(t){return new L.CircleMarker(t,this.options)}}),L.Draw.Circle=L.Draw.SimpleShape.extend({statics:{TYPE:\"circle\"},options:{shapeOptions:{stroke:!0,color:\"#3388ff\",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0},showRadius:!0,metric:!0,feet:!0,nautic:!1},initialize:function(t,e){this.type=L.Draw.Circle.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.circle.tooltip.start,L.Draw.SimpleShape.prototype.initialize.call(this,t,e)},_drawShape:function(t){if(L.GeometryUtil.isVersion07x())var e=this._startLatLng.distanceTo(t);else var e=this._map.distance(this._startLatLng,t);this._shape?this._shape.setRadius(e):(this._shape=new L.Circle(this._startLatLng,e,this.options.shapeOptions),this._map.addLayer(this._shape))},_fireCreatedEvent:function(){var t=new L.Circle(this._startLatLng,this._shape.getRadius(),this.options.shapeOptions);L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this,t)},_onMouseMove:function(t){var e,i=t.latlng,o=this.options.showRadius,a=this.options.metric;if(this._tooltip.updatePosition(i),this._isDrawing){this._drawShape(i),e=this._shape.getRadius().toFixed(1);var n=\"\";o&&(n=L.drawLocal.draw.handlers.circle.radius+\": \"+L.GeometryUtil.readableDistance(e,a,this.options.feet,this.options.nautic)),this._tooltip.updateContent({text:this._endLabelText,subtext:n})}}}),L.Edit=L.Edit||{},L.Edit.Marker=L.Handler.extend({initialize:function(t,e){this._marker=t,L.setOptions(this,e)},addHooks:function(){var t=this._marker;t.dragging.enable(),t.on(\"dragend\",this._onDragEnd,t),this._toggleMarkerHighlight()},removeHooks:function(){var t=this._marker;t.dragging.disable(),t.off(\"dragend\",this._onDragEnd,t),this._toggleMarkerHighlight()},_onDragEnd:function(t){var e=t.target;e.edited=!0,this._map.fire(L.Draw.Event.EDITMOVE,{layer:e})},_toggleMarkerHighlight:function(){var t=this._marker._icon;t&&(t.style.display=\"none\",L.DomUtil.hasClass(t,\"leaflet-edit-marker-selected\")?(L.DomUtil.removeClass(t,\"leaflet-edit-marker-selected\"),this._offsetMarker(t,-4)):(L.DomUtil.addClass(t,\"leaflet-edit-marker-selected\"),this._offsetMarker(t,4)),t.style.display=\"\")},_offsetMarker:function(t,e){var i=parseInt(t.style.marginTop,10)-e,o=parseInt(t.style.marginLeft,10)-e;t.style.marginTop=i+\"px\",t.style.marginLeft=o+\"px\"}}),L.Marker.addInitHook(function(){L.Edit.Marker&&(this.editing=new L.Edit.Marker(this),this.options.editable&&this.editing.enable())}),L.Edit=L.Edit||{},L.Edit.Poly=L.Handler.extend({initialize:function(t){this.latlngs=[t._latlngs],t._holes&&(this.latlngs=this.latlngs.concat(t._holes)),this._poly=t,this._poly.on(\"revert-edited\",this._updateLatLngs,this)},_defaultShape:function(){return L.Polyline._flat?L.Polyline._flat(this._poly._latlngs)?this._poly._latlngs:this._poly._latlngs[0]:this._poly._latlngs},_eachVertexHandler:function(t){for(var e=0;e<this._verticesHandlers.length;e++)t(this._verticesHandlers[e])},addHooks:function(){this._initHandlers(),this._eachVertexHandler(function(t){t.addHooks()})},removeHooks:function(){this._eachVertexHandler(function(t){t.removeHooks()})},updateMarkers:function(){this._eachVertexHandler(function(t){t.updateMarkers()})},_initHandlers:function(){this._verticesHandlers=[];for(var t=0;t<this.latlngs.length;t++)this._verticesHandlers.push(new L.Edit.PolyVerticesEdit(this._poly,this.latlngs[t],this._poly.options.poly))},_updateLatLngs:function(t){this.latlngs=[t.layer._latlngs],t.layer._holes&&(this.latlngs=this.latlngs.concat(t.layer._holes))}}),L.Edit.PolyVerticesEdit=L.Handler.extend({options:{icon:new L.DivIcon({iconSize:new L.Point(8,8),className:\"leaflet-div-icon leaflet-editing-icon\"}),touchIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:\"leaflet-div-icon leaflet-editing-icon leaflet-touch-icon\"}),drawError:{color:\"#b00b00\",timeout:1e3}},initialize:function(t,e,i){L.Browser.touch&&(this.options.icon=this.options.touchIcon),this._poly=t,i&&i.drawError&&(i.drawError=L.Util.extend({},this.options.drawError,i.drawError)),this._latlngs=e,L.setOptions(this,i)},_defaultShape:function(){return L.Polyline._flat?L.Polyline._flat(this._latlngs)?this._latlngs:this._latlngs[0]:this._latlngs},addHooks:function(){var t=this._poly,e=t._path;t instanceof L.Polygon||(t.options.fill=!1,t.options.editing&&(t.options.editing.fill=!1)),e&&t.options.editing&&t.options.editing.className&&(t.options.original.className&&t.options.original.className.split(\" \").forEach(function(t){L.DomUtil.removeClass(e,t)}),t.options.editing.className.split(\" \").forEach(function(t){L.DomUtil.addClass(e,t)})),t.setStyle(t.options.editing),this._poly._map&&(this._map=this._poly._map,this._markerGroup||this._initMarkers(),this._poly._map.addLayer(this._markerGroup))},removeHooks:function(){var t=this._poly,e=t._path;e&&t.options.editing&&t.options.editing.className&&(t.options.editing.className.split(\" \").forEach(function(t){L.DomUtil.removeClass(e,t)}),t.options.original.className&&t.options.original.className.split(\" \").forEach(function(t){L.DomUtil.addClass(e,t)})),t.setStyle(t.options.original),t._map&&(t._map.removeLayer(this._markerGroup),delete this._markerGroup,delete this._markers)},updateMarkers:function(){this._markerGroup.clearLayers(),this._initMarkers()},_initMarkers:function(){this._markerGroup||(this._markerGroup=new L.LayerGroup),this._markers=[];var t,e,i,o,a=this._defaultShape();for(t=0,i=a.length;t<i;t++)o=this._createMarker(a[t],t),o.on(\"click\",this._onMarkerClick,this),o.on(\"contextmenu\",this._onContextMenu,this),this._markers.push(o);var n,s;for(t=0,e=i-1;t<i;e=t++)(0!==t||L.Polygon&&this._poly instanceof L.Polygon)&&(n=this._markers[e],s=this._markers[t],this._createMiddleMarker(n,s),this._updatePrevNext(n,s))},_createMarker:function(t,e){var i=new L.Marker.Touch(t,{draggable:!0,icon:this.options.icon});return i._origLatLng=t,i._index=e,i.on(\"dragstart\",this._onMarkerDragStart,this).on(\"drag\",this._onMarkerDrag,this).on(\"dragend\",this._fireEdit,this).on(\"touchmove\",this._onTouchMove,this).on(\"touchend\",this._fireEdit,this).on(\"MSPointerMove\",this._onTouchMove,this).on(\"MSPointerUp\",this._fireEdit,this),this._markerGroup.addLayer(i),i},_onMarkerDragStart:function(){this._poly.fire(\"editstart\")},_spliceLatLngs:function(){var t=this._defaultShape(),e=[].splice.apply(t,arguments);return this._poly._convertLatLngs(t,!0),this._poly.redraw(),e},_removeMarker:function(t){var e=t._index;this._markerGroup.removeLayer(t),this._markers.splice(e,1),this._spliceLatLngs(e,1),this._updateIndexes(e,-1),t.off(\"dragstart\",this._onMarkerDragStart,this).off(\"drag\",this._onMarkerDrag,this).off(\"dragend\",this._fireEdit,this).off(\"touchmove\",this._onMarkerDrag,this).off(\"touchend\",this._fireEdit,this).off(\"click\",this._onMarkerClick,this).off(\"MSPointerMove\",this._onTouchMove,this).off(\"MSPointerUp\",this._fireEdit,this)},_fireEdit:function(){this._poly.edited=!0,this._poly.fire(\"edit\"),this._poly._map.fire(L.Draw.Event.EDITVERTEX,{layers:this._markerGroup,poly:this._poly})},_onMarkerDrag:function(t){var e=t.target,i=this._poly,o=L.LatLngUtil.cloneLatLng(e._origLatLng);if(L.extend(e._origLatLng,e._latlng),i.options.poly){var a=i._map._editTooltip;if(!i.options.poly.allowIntersection&&i.intersects()){L.extend(e._origLatLng,o),e.setLatLng(o);var n=i.options.color;i.setStyle({color:this.options.drawError.color}),a&&a.updateContent({text:L.drawLocal.draw.handlers.polyline.error}),setTimeout(function(){i.setStyle({color:n}),a&&a.updateContent({text:L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.edit.handlers.edit.tooltip.subtext})},1e3)}}e._middleLeft&&e._middleLeft.setLatLng(this._getMiddleLatLng(e._prev,e)),e._middleRight&&e._middleRight.setLatLng(this._getMiddleLatLng(e,e._next)),this._poly._bounds._southWest=L.latLng(1/0,1/0),this._poly._bounds._northEast=L.latLng(-1/0,-1/0);var s=this._poly.getLatLngs();this._poly._convertLatLngs(s,!0),this._poly.redraw(),this._poly.fire(\"editdrag\")},_onMarkerClick:function(t){var e=L.Polygon&&this._poly instanceof L.Polygon?4:3,i=t.target;this._defaultShape().length<e||(this._removeMarker(i),this._updatePrevNext(i._prev,i._next),i._middleLeft&&this._markerGroup.removeLayer(i._middleLeft),i._middleRight&&this._markerGroup.removeLayer(i._middleRight),i._prev&&i._next?this._createMiddleMarker(i._prev,i._next):i._prev?i._next||(i._prev._middleRight=null):i._next._middleLeft=null,this._fireEdit())},_onContextMenu:function(t){var e=t.target;this._poly;this._poly._map.fire(L.Draw.Event.MARKERCONTEXT,{marker:e,layers:this._markerGroup,poly:this._poly}),L.DomEvent.stopPropagation},_onTouchMove:function(t){var e=this._map.mouseEventToLayerPoint(t.originalEvent.touches[0]),i=this._map.layerPointToLatLng(e),o=t.target;L.extend(o._origLatLng,i),o._middleLeft&&o._middleLeft.setLatLng(this._getMiddleLatLng(o._prev,o)),o._middleRight&&o._middleRight.setLatLng(this._getMiddleLatLng(o,o._next)),this._poly.redraw(),this.updateMarkers()},_updateIndexes:function(t,e){this._markerGroup.eachLayer(function(i){i._index>t&&(i._index+=e)})},_createMiddleMarker:function(t,e){var i,o,a,n=this._getMiddleLatLng(t,e),s=this._createMarker(n);s.setOpacity(.6),t._middleRight=e._middleLeft=s,o=function(){s.off(\"touchmove\",o,this);var a=e._index;s._index=a,s.off(\"click\",i,this).on(\"click\",this._onMarkerClick,this),n.lat=s.getLatLng().lat,n.lng=s.getLatLng().lng,this._spliceLatLngs(a,0,n),this._markers.splice(a,0,s),s.setOpacity(1),this._updateIndexes(a,1),e._index++,this._updatePrevNext(t,s),this._updatePrevNext(s,e),this._poly.fire(\"editstart\")},a=function(){s.off(\"dragstart\",o,this),s.off(\"dragend\",a,this),s.off(\"touchmove\",o,this),this._createMiddleMarker(t,s),this._createMiddleMarker(s,e)},i=function(){o.call(this),a.call(this),this._fireEdit()},s.on(\"click\",i,this).on(\"dragstart\",o,this).on(\"dragend\",a,this).on(\"touchmove\",o,this),this._markerGroup.addLayer(s)},_updatePrevNext:function(t,e){t&&(t._next=e),e&&(e._prev=t)},_getMiddleLatLng:function(t,e){var i=this._poly._map,o=i.project(t.getLatLng()),a=i.project(e.getLatLng());return i.unproject(o._add(a)._divideBy(2))}}),L.Polyline.addInitHook(function(){this.editing||(L.Edit.Poly&&(this.editing=new L.Edit.Poly(this),this.options.editable&&this.editing.enable()),this.on(\"add\",function(){this.editing&&this.editing.enabled()&&this.editing.addHooks()}),this.on(\"remove\",function(){this.editing&&this.editing.enabled()&&this.editing.removeHooks()}))}),L.Edit=L.Edit||{},L.Edit.SimpleShape=L.Handler.extend({options:{moveIcon:new L.DivIcon({iconSize:new L.Point(8,8),className:\"leaflet-div-icon leaflet-editing-icon leaflet-edit-move\"}),resizeIcon:new L.DivIcon({iconSize:new L.Point(8,8),\nclassName:\"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize\"}),touchMoveIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:\"leaflet-div-icon leaflet-editing-icon leaflet-edit-move leaflet-touch-icon\"}),touchResizeIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:\"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize leaflet-touch-icon\"})},initialize:function(t,e){L.Browser.touch&&(this.options.moveIcon=this.options.touchMoveIcon,this.options.resizeIcon=this.options.touchResizeIcon),this._shape=t,L.Util.setOptions(this,e)},addHooks:function(){var t=this._shape;this._shape._map&&(this._map=this._shape._map,t.setStyle(t.options.editing),t._map&&(this._map=t._map,this._markerGroup||this._initMarkers(),this._map.addLayer(this._markerGroup)))},removeHooks:function(){var t=this._shape;if(t.setStyle(t.options.original),t._map){this._unbindMarker(this._moveMarker);for(var e=0,i=this._resizeMarkers.length;e<i;e++)this._unbindMarker(this._resizeMarkers[e]);this._resizeMarkers=null,this._map.removeLayer(this._markerGroup),delete this._markerGroup}this._map=null},updateMarkers:function(){this._markerGroup.clearLayers(),this._initMarkers()},_initMarkers:function(){this._markerGroup||(this._markerGroup=new L.LayerGroup),this._createMoveMarker(),this._createResizeMarker()},_createMoveMarker:function(){},_createResizeMarker:function(){},_createMarker:function(t,e){var i=new L.Marker.Touch(t,{draggable:!0,icon:e,zIndexOffset:10});return this._bindMarker(i),this._markerGroup.addLayer(i),i},_bindMarker:function(t){t.on(\"dragstart\",this._onMarkerDragStart,this).on(\"drag\",this._onMarkerDrag,this).on(\"dragend\",this._onMarkerDragEnd,this).on(\"touchstart\",this._onTouchStart,this).on(\"touchmove\",this._onTouchMove,this).on(\"MSPointerMove\",this._onTouchMove,this).on(\"touchend\",this._onTouchEnd,this).on(\"MSPointerUp\",this._onTouchEnd,this)},_unbindMarker:function(t){t.off(\"dragstart\",this._onMarkerDragStart,this).off(\"drag\",this._onMarkerDrag,this).off(\"dragend\",this._onMarkerDragEnd,this).off(\"touchstart\",this._onTouchStart,this).off(\"touchmove\",this._onTouchMove,this).off(\"MSPointerMove\",this._onTouchMove,this).off(\"touchend\",this._onTouchEnd,this).off(\"MSPointerUp\",this._onTouchEnd,this)},_onMarkerDragStart:function(t){t.target.setOpacity(0),this._shape.fire(\"editstart\")},_fireEdit:function(){this._shape.edited=!0,this._shape.fire(\"edit\")},_onMarkerDrag:function(t){var e=t.target,i=e.getLatLng();e===this._moveMarker?this._move(i):this._resize(i),this._shape.redraw(),this._shape.fire(\"editdrag\")},_onMarkerDragEnd:function(t){t.target.setOpacity(1),this._fireEdit()},_onTouchStart:function(t){if(L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this,t),\"function\"==typeof this._getCorners){var e=this._getCorners(),i=t.target,o=i._cornerIndex;i.setOpacity(0),this._oppositeCorner=e[(o+2)%4],this._toggleCornerMarkers(0,o)}this._shape.fire(\"editstart\")},_onTouchMove:function(t){var e=this._map.mouseEventToLayerPoint(t.originalEvent.touches[0]),i=this._map.layerPointToLatLng(e);return t.target===this._moveMarker?this._move(i):this._resize(i),this._shape.redraw(),!1},_onTouchEnd:function(t){t.target.setOpacity(1),this.updateMarkers(),this._fireEdit()},_move:function(){},_resize:function(){}}),L.Edit=L.Edit||{},L.Edit.Rectangle=L.Edit.SimpleShape.extend({_createMoveMarker:function(){var t=this._shape.getBounds(),e=t.getCenter();this._moveMarker=this._createMarker(e,this.options.moveIcon)},_createResizeMarker:function(){var t=this._getCorners();this._resizeMarkers=[];for(var e=0,i=t.length;e<i;e++)this._resizeMarkers.push(this._createMarker(t[e],this.options.resizeIcon)),this._resizeMarkers[e]._cornerIndex=e},_onMarkerDragStart:function(t){L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this,t);var e=this._getCorners(),i=t.target,o=i._cornerIndex;this._oppositeCorner=e[(o+2)%4],this._toggleCornerMarkers(0,o)},_onMarkerDragEnd:function(t){var e,i,o=t.target;o===this._moveMarker&&(e=this._shape.getBounds(),i=e.getCenter(),o.setLatLng(i)),this._toggleCornerMarkers(1),this._repositionCornerMarkers(),L.Edit.SimpleShape.prototype._onMarkerDragEnd.call(this,t)},_move:function(t){for(var e,i=this._shape._defaultShape?this._shape._defaultShape():this._shape.getLatLngs(),o=this._shape.getBounds(),a=o.getCenter(),n=[],s=0,r=i.length;s<r;s++)e=[i[s].lat-a.lat,i[s].lng-a.lng],n.push([t.lat+e[0],t.lng+e[1]]);this._shape.setLatLngs(n),this._repositionCornerMarkers(),this._map.fire(L.Draw.Event.EDITMOVE,{layer:this._shape})},_resize:function(t){var e;this._shape.setBounds(L.latLngBounds(t,this._oppositeCorner)),e=this._shape.getBounds(),this._moveMarker.setLatLng(e.getCenter()),this._map.fire(L.Draw.Event.EDITRESIZE,{layer:this._shape})},_getCorners:function(){var t=this._shape.getBounds();return[t.getNorthWest(),t.getNorthEast(),t.getSouthEast(),t.getSouthWest()]},_toggleCornerMarkers:function(t){for(var e=0,i=this._resizeMarkers.length;e<i;e++)this._resizeMarkers[e].setOpacity(t)},_repositionCornerMarkers:function(){for(var t=this._getCorners(),e=0,i=this._resizeMarkers.length;e<i;e++)this._resizeMarkers[e].setLatLng(t[e])}}),L.Rectangle.addInitHook(function(){L.Edit.Rectangle&&(this.editing=new L.Edit.Rectangle(this),this.options.editable&&this.editing.enable())}),L.Edit=L.Edit||{},L.Edit.CircleMarker=L.Edit.SimpleShape.extend({_createMoveMarker:function(){var t=this._shape.getLatLng();this._moveMarker=this._createMarker(t,this.options.moveIcon)},_createResizeMarker:function(){this._resizeMarkers=[]},_move:function(t){if(this._resizeMarkers.length){var e=this._getResizeMarkerPoint(t);this._resizeMarkers[0].setLatLng(e)}this._shape.setLatLng(t),this._map.fire(L.Draw.Event.EDITMOVE,{layer:this._shape})}}),L.CircleMarker.addInitHook(function(){L.Edit.CircleMarker&&(this.editing=new L.Edit.CircleMarker(this),this.options.editable&&this.editing.enable()),this.on(\"add\",function(){this.editing&&this.editing.enabled()&&this.editing.addHooks()}),this.on(\"remove\",function(){this.editing&&this.editing.enabled()&&this.editing.removeHooks()})}),L.Edit=L.Edit||{},L.Edit.Circle=L.Edit.CircleMarker.extend({_createResizeMarker:function(){var t=this._shape.getLatLng(),e=this._getResizeMarkerPoint(t);this._resizeMarkers=[],this._resizeMarkers.push(this._createMarker(e,this.options.resizeIcon))},_getResizeMarkerPoint:function(t){var e=this._shape._radius*Math.cos(Math.PI/4),i=this._map.project(t);return this._map.unproject([i.x+e,i.y-e])},_resize:function(t){var e=this._moveMarker.getLatLng();L.GeometryUtil.isVersion07x()?radius=e.distanceTo(t):radius=this._map.distance(e,t),this._shape.setRadius(radius),this._map.editTooltip&&this._map._editTooltip.updateContent({text:L.drawLocal.edit.handlers.edit.tooltip.subtext+\"<br />\"+L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.draw.handlers.circle.radius+\": \"+L.GeometryUtil.readableDistance(radius,!0,this.options.feet,this.options.nautic)}),this._shape.setRadius(radius),this._map.fire(L.Draw.Event.EDITRESIZE,{layer:this._shape})}}),L.Circle.addInitHook(function(){L.Edit.Circle&&(this.editing=new L.Edit.Circle(this),this.options.editable&&this.editing.enable())}),L.Map.mergeOptions({touchExtend:!0}),L.Map.TouchExtend=L.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane},addHooks:function(){L.DomEvent.on(this._container,\"touchstart\",this._onTouchStart,this),L.DomEvent.on(this._container,\"touchend\",this._onTouchEnd,this),L.DomEvent.on(this._container,\"touchmove\",this._onTouchMove,this),this._detectIE()?(L.DomEvent.on(this._container,\"MSPointerDown\",this._onTouchStart,this),L.DomEvent.on(this._container,\"MSPointerUp\",this._onTouchEnd,this),L.DomEvent.on(this._container,\"MSPointerMove\",this._onTouchMove,this),L.DomEvent.on(this._container,\"MSPointerCancel\",this._onTouchCancel,this)):(L.DomEvent.on(this._container,\"touchcancel\",this._onTouchCancel,this),L.DomEvent.on(this._container,\"touchleave\",this._onTouchLeave,this))},removeHooks:function(){L.DomEvent.off(this._container,\"touchstart\",this._onTouchStart,this),L.DomEvent.off(this._container,\"touchend\",this._onTouchEnd,this),L.DomEvent.off(this._container,\"touchmove\",this._onTouchMove,this),this._detectIE()?(L.DomEvent.off(this._container,\"MSPointerDown\",this._onTouchStart,this),L.DomEvent.off(this._container,\"MSPointerUp\",this._onTouchEnd,this),L.DomEvent.off(this._container,\"MSPointerMove\",this._onTouchMove,this),L.DomEvent.off(this._container,\"MSPointerCancel\",this._onTouchCancel,this)):(L.DomEvent.off(this._container,\"touchcancel\",this._onTouchCancel,this),L.DomEvent.off(this._container,\"touchleave\",this._onTouchLeave,this))},_touchEvent:function(t,e){var i={};if(void 0!==t.touches){if(!t.touches.length)return;i=t.touches[0]}else{if(\"touch\"!==t.pointerType)return;if(i=t,!this._filterClick(t))return}var o=this._map.mouseEventToContainerPoint(i),a=this._map.mouseEventToLayerPoint(i),n=this._map.layerPointToLatLng(a);this._map.fire(e,{latlng:n,layerPoint:a,containerPoint:o,pageX:i.pageX,pageY:i.pageY,originalEvent:t})},_filterClick:function(t){var e=t.timeStamp||t.originalEvent.timeStamp,i=L.DomEvent._lastClick&&e-L.DomEvent._lastClick;return i&&i>100&&i<500||t.target._simulatedClick&&!t._simulated?(L.DomEvent.stop(t),!1):(L.DomEvent._lastClick=e,!0)},_onTouchStart:function(t){if(this._map._loaded){this._touchEvent(t,\"touchstart\")}},_onTouchEnd:function(t){if(this._map._loaded){this._touchEvent(t,\"touchend\")}},_onTouchCancel:function(t){if(this._map._loaded){var e=\"touchcancel\";this._detectIE()&&(e=\"pointercancel\"),this._touchEvent(t,e)}},_onTouchLeave:function(t){if(this._map._loaded){this._touchEvent(t,\"touchleave\")}},_onTouchMove:function(t){if(this._map._loaded){this._touchEvent(t,\"touchmove\")}},_detectIE:function(){var e=t.navigator.userAgent,i=e.indexOf(\"MSIE \");if(i>0)return parseInt(e.substring(i+5,e.indexOf(\".\",i)),10);if(e.indexOf(\"Trident/\")>0){var o=e.indexOf(\"rv:\");return parseInt(e.substring(o+3,e.indexOf(\".\",o)),10)}var a=e.indexOf(\"Edge/\");return a>0&&parseInt(e.substring(a+5,e.indexOf(\".\",a)),10)}}),L.Map.addInitHook(\"addHandler\",\"touchExtend\",L.Map.TouchExtend),L.Marker.Touch=L.Marker.extend({_initInteraction:function(){return this.addInteractiveTarget?L.Marker.prototype._initInteraction.apply(this):this._initInteractionLegacy()},_initInteractionLegacy:function(){if(this.options.clickable){var t=this._icon,e=[\"dblclick\",\"mousedown\",\"mouseover\",\"mouseout\",\"contextmenu\",\"touchstart\",\"touchend\",\"touchmove\"];this._detectIE?e.concat([\"MSPointerDown\",\"MSPointerUp\",\"MSPointerMove\",\"MSPointerCancel\"]):e.concat([\"touchcancel\"]),L.DomUtil.addClass(t,\"leaflet-clickable\"),L.DomEvent.on(t,\"click\",this._onMouseClick,this),L.DomEvent.on(t,\"keypress\",this._onKeyPress,this);for(var i=0;i<e.length;i++)L.DomEvent.on(t,e[i],this._fireMouseEvent,this);L.Handler.MarkerDrag&&(this.dragging=new L.Handler.MarkerDrag(this),this.options.draggable&&this.dragging.enable())}},_detectIE:function(){var e=t.navigator.userAgent,i=e.indexOf(\"MSIE \");if(i>0)return parseInt(e.substring(i+5,e.indexOf(\".\",i)),10);if(e.indexOf(\"Trident/\")>0){var o=e.indexOf(\"rv:\");return parseInt(e.substring(o+3,e.indexOf(\".\",o)),10)}var a=e.indexOf(\"Edge/\");return a>0&&parseInt(e.substring(a+5,e.indexOf(\".\",a)),10)}}),L.LatLngUtil={cloneLatLngs:function(t){for(var e=[],i=0,o=t.length;i<o;i++)Array.isArray(t[i])?e.push(L.LatLngUtil.cloneLatLngs(t[i])):e.push(this.cloneLatLng(t[i]));return e},cloneLatLng:function(t){return L.latLng(t.lat,t.lng)}},function(){var t={km:2,ha:2,m:0,mi:2,ac:2,yd:0,ft:0,nm:2};L.GeometryUtil=L.extend(L.GeometryUtil||{},{geodesicArea:function(t){var e,i,o=t.length,a=0,n=Math.PI/180;if(o>2){for(var s=0;s<o;s++)e=t[s],i=t[(s+1)%o],a+=(i.lng-e.lng)*n*(2+Math.sin(e.lat*n)+Math.sin(i.lat*n));a=6378137*a*6378137/2}return Math.abs(a)},formattedNumber:function(t,e){var i=parseFloat(t).toFixed(e),o=L.drawLocal.format&&L.drawLocal.format.numeric,a=o&&o.delimiters,n=a&&a.thousands,s=a&&a.decimal;if(n||s){var r=i.split(\".\");i=n?r[0].replace(/(\\d)(?=(\\d{3})+(?!\\d))/g,\"$1\"+n):r[0],s=s||\".\",r.length>1&&(i=i+s+r[1])}return i},readableArea:function(e,i,o){var a,n,o=L.Util.extend({},t,o);return i?(n=[\"ha\",\"m\"],type=typeof i,\"string\"===type?n=[i]:\"boolean\"!==type&&(n=i),a=e>=1e6&&-1!==n.indexOf(\"km\")?L.GeometryUtil.formattedNumber(1e-6*e,o.km)+\" km²\":e>=1e4&&-1!==n.indexOf(\"ha\")?L.GeometryUtil.formattedNumber(1e-4*e,o.ha)+\" ha\":L.GeometryUtil.formattedNumber(e,o.m)+\" m²\"):(e/=.836127,a=e>=3097600?L.GeometryUtil.formattedNumber(e/3097600,o.mi)+\" mi²\":e>=4840?L.GeometryUtil.formattedNumber(e/4840,o.ac)+\" acres\":L.GeometryUtil.formattedNumber(e,o.yd)+\" yd²\"),a},readableDistance:function(e,i,o,a,n){var s,n=L.Util.extend({},t,n);switch(i?\"string\"==typeof i?i:\"metric\":o?\"feet\":a?\"nauticalMile\":\"yards\"){case\"metric\":s=e>1e3?L.GeometryUtil.formattedNumber(e/1e3,n.km)+\" km\":L.GeometryUtil.formattedNumber(e,n.m)+\" m\";break;case\"feet\":e*=3.28083,s=L.GeometryUtil.formattedNumber(e,n.ft)+\" ft\";break;case\"nauticalMile\":e*=.53996,s=L.GeometryUtil.formattedNumber(e/1e3,n.nm)+\" nm\";break;case\"yards\":default:e*=1.09361,s=e>1760?L.GeometryUtil.formattedNumber(e/1760,n.mi)+\" miles\":L.GeometryUtil.formattedNumber(e,n.yd)+\" yd\"}return s},isVersion07x:function(){var t=L.version.split(\".\");return 0===parseInt(t[0],10)&&7===parseInt(t[1],10)}})}(),L.Util.extend(L.LineUtil,{segmentsIntersect:function(t,e,i,o){return this._checkCounterclockwise(t,i,o)!==this._checkCounterclockwise(e,i,o)&&this._checkCounterclockwise(t,e,i)!==this._checkCounterclockwise(t,e,o)},_checkCounterclockwise:function(t,e,i){return(i.y-t.y)*(e.x-t.x)>(e.y-t.y)*(i.x-t.x)}}),L.Polyline.include({intersects:function(){var t,e,i,o=this._getProjectedPoints(),a=o?o.length:0;if(this._tooFewPointsForIntersection())return!1;for(t=a-1;t>=3;t--)if(e=o[t-1],i=o[t],this._lineSegmentsIntersectsRange(e,i,t-2))return!0;return!1},newLatLngIntersects:function(t,e){return!!this._map&&this.newPointIntersects(this._map.latLngToLayerPoint(t),e)},newPointIntersects:function(t,e){var i=this._getProjectedPoints(),o=i?i.length:0,a=i?i[o-1]:null,n=o-2;return!this._tooFewPointsForIntersection(1)&&this._lineSegmentsIntersectsRange(a,t,n,e?1:0)},_tooFewPointsForIntersection:function(t){var e=this._getProjectedPoints(),i=e?e.length:0;return i+=t||0,!e||i<=3},_lineSegmentsIntersectsRange:function(t,e,i,o){var a,n,s=this._getProjectedPoints();o=o||0;for(var r=i;r>o;r--)if(a=s[r-1],n=s[r],L.LineUtil.segmentsIntersect(t,e,a,n))return!0;return!1},_getProjectedPoints:function(){if(!this._defaultShape)return this._originalPoints;for(var t=[],e=this._defaultShape(),i=0;i<e.length;i++)t.push(this._map.latLngToLayerPoint(e[i]));return t}}),L.Polygon.include({intersects:function(){var t,e,i,o,a=this._getProjectedPoints();return!this._tooFewPointsForIntersection()&&(!!L.Polyline.prototype.intersects.call(this)||(t=a.length,e=a[0],i=a[t-1],o=t-2,this._lineSegmentsIntersectsRange(i,e,o,1)))}}),L.Control.Draw=L.Control.extend({options:{position:\"topleft\",draw:{},edit:!1},initialize:function(t){if(L.version<\"0.7\")throw new Error(\"Leaflet.draw 0.2.3+ requires Leaflet 0.7.0+. Download latest from https://github.com/Leaflet/Leaflet/\");L.Control.prototype.initialize.call(this,t);var e;this._toolbars={},L.DrawToolbar&&this.options.draw&&(e=new L.DrawToolbar(this.options.draw),this._toolbars[L.DrawToolbar.TYPE]=e,this._toolbars[L.DrawToolbar.TYPE].on(\"enable\",this._toolbarEnabled,this)),L.EditToolbar&&this.options.edit&&(e=new L.EditToolbar(this.options.edit),this._toolbars[L.EditToolbar.TYPE]=e,this._toolbars[L.EditToolbar.TYPE].on(\"enable\",this._toolbarEnabled,this)),L.toolbar=this},onAdd:function(t){var e,i=L.DomUtil.create(\"div\",\"leaflet-draw\"),o=!1;for(var a in this._toolbars)this._toolbars.hasOwnProperty(a)&&(e=this._toolbars[a].addToolbar(t))&&(o||(L.DomUtil.hasClass(e,\"leaflet-draw-toolbar-top\")||L.DomUtil.addClass(e.childNodes[0],\"leaflet-draw-toolbar-top\"),o=!0),i.appendChild(e));return i},onRemove:function(){for(var t in this._toolbars)this._toolbars.hasOwnProperty(t)&&this._toolbars[t].removeToolbar()},setDrawingOptions:function(t){for(var e in this._toolbars)this._toolbars[e]instanceof L.DrawToolbar&&this._toolbars[e].setOptions(t)},_toolbarEnabled:function(t){var e=t.target;for(var i in this._toolbars)this._toolbars[i]!==e&&this._toolbars[i].disable()}}),L.Map.mergeOptions({drawControlTooltips:!0,drawControl:!1}),L.Map.addInitHook(function(){this.options.drawControl&&(this.drawControl=new L.Control.Draw,this.addControl(this.drawControl))}),L.Toolbar=L.Class.extend({initialize:function(t){L.setOptions(this,t),this._modes={},this._actionButtons=[],this._activeMode=null;var e=L.version.split(\".\");1===parseInt(e[0],10)&&parseInt(e[1],10)>=2?L.Toolbar.include(L.Evented.prototype):L.Toolbar.include(L.Mixin.Events)},enabled:function(){return null!==this._activeMode},disable:function(){this.enabled()&&this._activeMode.handler.disable()},addToolbar:function(t){var e,i=L.DomUtil.create(\"div\",\"leaflet-draw-section\"),o=0,a=this._toolbarClass||\"\",n=this.getModeHandlers(t);for(this._toolbarContainer=L.DomUtil.create(\"div\",\"leaflet-draw-toolbar leaflet-bar\"),this._map=t,e=0;e<n.length;e++)n[e].enabled&&this._initModeHandler(n[e].handler,this._toolbarContainer,o++,a,n[e].title);if(o)return this._lastButtonIndex=--o,this._actionsContainer=L.DomUtil.create(\"ul\",\"leaflet-draw-actions\"),i.appendChild(this._toolbarContainer),i.appendChild(this._actionsContainer),i},removeToolbar:function(){for(var t in this._modes)this._modes.hasOwnProperty(t)&&(this._disposeButton(this._modes[t].button,this._modes[t].handler.enable,this._modes[t].handler),this._modes[t].handler.disable(),this._modes[t].handler.off(\"enabled\",this._handlerActivated,this).off(\"disabled\",this._handlerDeactivated,this));this._modes={};for(var e=0,i=this._actionButtons.length;e<i;e++)this._disposeButton(this._actionButtons[e].button,this._actionButtons[e].callback,this);this._actionButtons=[],this._actionsContainer=null},_initModeHandler:function(t,e,i,o,a){var n=t.type;this._modes[n]={},this._modes[n].handler=t,this._modes[n].button=this._createButton({type:n,title:a,className:o+\"-\"+n,container:e,callback:this._modes[n].handler.enable,context:this._modes[n].handler}),this._modes[n].buttonIndex=i,this._modes[n].handler.on(\"enabled\",this._handlerActivated,this).on(\"disabled\",this._handlerDeactivated,this)},_detectIOS:function(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!t.MSStream},_createButton:function(t){var e=L.DomUtil.create(\"a\",t.className||\"\",t.container),i=L.DomUtil.create(\"span\",\"sr-only\",t.container);e.href=\"#\",e.appendChild(i),t.title&&(e.title=t.title,i.innerHTML=t.title),t.text&&(e.innerHTML=t.text,i.innerHTML=t.text);var o=this._detectIOS()?\"touchstart\":\"click\";return L.DomEvent.on(e,\"click\",L.DomEvent.stopPropagation).on(e,\"mousedown\",L.DomEvent.stopPropagation).on(e,\"dblclick\",L.DomEvent.stopPropagation).on(e,\"touchstart\",L.DomEvent.stopPropagation).on(e,\"click\",L.DomEvent.preventDefault).on(e,o,t.callback,t.context),e},_disposeButton:function(t,e){var i=this._detectIOS()?\"touchstart\":\"click\";L.DomEvent.off(t,\"click\",L.DomEvent.stopPropagation).off(t,\"mousedown\",L.DomEvent.stopPropagation).off(t,\"dblclick\",L.DomEvent.stopPropagation).off(t,\"touchstart\",L.DomEvent.stopPropagation).off(t,\"click\",L.DomEvent.preventDefault).off(t,i,e)},_handlerActivated:function(t){this.disable(),this._activeMode=this._modes[t.handler],L.DomUtil.addClass(this._activeMode.button,\"leaflet-draw-toolbar-button-enabled\"),this._showActionsToolbar(),this.fire(\"enable\")},_handlerDeactivated:function(){this._hideActionsToolbar(),L.DomUtil.removeClass(this._activeMode.button,\"leaflet-draw-toolbar-button-enabled\"),this._activeMode=null,this.fire(\"disable\")},_createActions:function(t){var e,i,o,a,n=this._actionsContainer,s=this.getActions(t),r=s.length;for(i=0,o=this._actionButtons.length;i<o;i++)this._disposeButton(this._actionButtons[i].button,this._actionButtons[i].callback);for(this._actionButtons=[];n.firstChild;)n.removeChild(n.firstChild);for(var l=0;l<r;l++)\"enabled\"in s[l]&&!s[l].enabled||(e=L.DomUtil.create(\"li\",\"\",n),a=this._createButton({title:s[l].title,text:s[l].text,container:e,callback:s[l].callback,context:s[l].context}),this._actionButtons.push({button:a,callback:s[l].callback}))},_showActionsToolbar:function(){var t=this._activeMode.buttonIndex,e=this._lastButtonIndex,i=this._activeMode.button.offsetTop-1;this._createActions(this._activeMode.handler),this._actionsContainer.style.top=i+\"px\",0===t&&(L.DomUtil.addClass(this._toolbarContainer,\"leaflet-draw-toolbar-notop\"),L.DomUtil.addClass(this._actionsContainer,\"leaflet-draw-actions-top\")),t===e&&(L.DomUtil.addClass(this._toolbarContainer,\"leaflet-draw-toolbar-nobottom\"),L.DomUtil.addClass(this._actionsContainer,\"leaflet-draw-actions-bottom\")),this._actionsContainer.style.display=\"block\",this._map.fire(L.Draw.Event.TOOLBAROPENED)},_hideActionsToolbar:function(){this._actionsContainer.style.display=\"none\",L.DomUtil.removeClass(this._toolbarContainer,\"leaflet-draw-toolbar-notop\"),L.DomUtil.removeClass(this._toolbarContainer,\"leaflet-draw-toolbar-nobottom\"),L.DomUtil.removeClass(this._actionsContainer,\"leaflet-draw-actions-top\"),L.DomUtil.removeClass(this._actionsContainer,\"leaflet-draw-actions-bottom\"),this._map.fire(L.Draw.Event.TOOLBARCLOSED)}}),L.Draw=L.Draw||{},L.Draw.Tooltip=L.Class.extend({initialize:function(t){this._map=t,this._popupPane=t._panes.popupPane,this._visible=!1,this._container=t.options.drawControlTooltips?L.DomUtil.create(\"div\",\"leaflet-draw-tooltip\",this._popupPane):null,this._singleLineLabel=!1,this._map.on(\"mouseout\",this._onMouseOut,this)},dispose:function(){this._map.off(\"mouseout\",this._onMouseOut,this),this._container&&(this._popupPane.removeChild(this._container),this._container=null)},updateContent:function(t){return this._container?(t.subtext=t.subtext||\"\",0!==t.subtext.length||this._singleLineLabel?t.subtext.length>0&&this._singleLineLabel&&(L.DomUtil.removeClass(this._container,\"leaflet-draw-tooltip-single\"),this._singleLineLabel=!1):(L.DomUtil.addClass(this._container,\"leaflet-draw-tooltip-single\"),this._singleLineLabel=!0),this._container.innerHTML=(t.subtext.length>0?'<span class=\"leaflet-draw-tooltip-subtext\">'+t.subtext+\"</span><br />\":\"\")+\"<span>\"+t.text+\"</span>\",t.text||t.subtext?(this._visible=!0,this._container.style.visibility=\"inherit\"):(this._visible=!1,this._container.style.visibility=\"hidden\"),this):this},updatePosition:function(t){var e=this._map.latLngToLayerPoint(t),i=this._container;return this._container&&(this._visible&&(i.style.visibility=\"inherit\"),L.DomUtil.setPosition(i,e)),this},showAsError:function(){return this._container&&L.DomUtil.addClass(this._container,\"leaflet-error-draw-tooltip\"),this},removeError:function(){return this._container&&L.DomUtil.removeClass(this._container,\"leaflet-error-draw-tooltip\"),this},_onMouseOut:function(){this._container&&(this._container.style.visibility=\"hidden\")}}),L.DrawToolbar=L.Toolbar.extend({statics:{TYPE:\"draw\"},options:{polyline:{},polygon:{},rectangle:{},circle:{},marker:{},circlemarker:{}},initialize:function(t){for(var e in this.options)this.options.hasOwnProperty(e)&&t[e]&&(t[e]=L.extend({},this.options[e],t[e]));this._toolbarClass=\"leaflet-draw-draw\",L.Toolbar.prototype.initialize.call(this,t)},getModeHandlers:function(t){return[{enabled:this.options.polyline,handler:new L.Draw.Polyline(t,this.options.polyline),title:L.drawLocal.draw.toolbar.buttons.polyline},{enabled:this.options.polygon,handler:new L.Draw.Polygon(t,this.options.polygon),title:L.drawLocal.draw.toolbar.buttons.polygon},{enabled:this.options.rectangle,handler:new L.Draw.Rectangle(t,this.options.rectangle),title:L.drawLocal.draw.toolbar.buttons.rectangle},{enabled:this.options.circle,handler:new L.Draw.Circle(t,this.options.circle),title:L.drawLocal.draw.toolbar.buttons.circle},{enabled:this.options.marker,handler:new L.Draw.Marker(t,this.options.marker),title:L.drawLocal.draw.toolbar.buttons.marker},{enabled:this.options.circlemarker,handler:new L.Draw.CircleMarker(t,this.options.circlemarker),title:L.drawLocal.draw.toolbar.buttons.circlemarker}]},getActions:function(t){return[{enabled:t.completeShape,title:L.drawLocal.draw.toolbar.finish.title,text:L.drawLocal.draw.toolbar.finish.text,callback:t.completeShape,context:t},{enabled:t.deleteLastVertex,title:L.drawLocal.draw.toolbar.undo.title,text:L.drawLocal.draw.toolbar.undo.text,callback:t.deleteLastVertex,context:t},{title:L.drawLocal.draw.toolbar.actions.title,text:L.drawLocal.draw.toolbar.actions.text,callback:this.disable,context:this}]},setOptions:function(t){L.setOptions(this,t);for(var e in this._modes)this._modes.hasOwnProperty(e)&&t.hasOwnProperty(e)&&this._modes[e].handler.setOptions(t[e])}}),L.EditToolbar=L.Toolbar.extend({statics:{TYPE:\"edit\"},options:{edit:{selectedPathOptions:{dashArray:\"10, 10\",fill:!0,fillColor:\"#fe57a1\",fillOpacity:.1,maintainColor:!1}},remove:{},poly:null,featureGroup:null},initialize:function(t){t.edit&&(void 0===t.edit.selectedPathOptions&&(t.edit.selectedPathOptions=this.options.edit.selectedPathOptions),t.edit.selectedPathOptions=L.extend({},this.options.edit.selectedPathOptions,t.edit.selectedPathOptions)),t.remove&&(t.remove=L.extend({},this.options.remove,t.remove)),t.poly&&(t.poly=L.extend({},this.options.poly,t.poly)),this._toolbarClass=\"leaflet-draw-edit\",L.Toolbar.prototype.initialize.call(this,t),this._selectedFeatureCount=0},getModeHandlers:function(t){var e=this.options.featureGroup;return[{enabled:this.options.edit,handler:new L.EditToolbar.Edit(t,{featureGroup:e,selectedPathOptions:this.options.edit.selectedPathOptions,poly:this.options.poly}),title:L.drawLocal.edit.toolbar.buttons.edit},{enabled:this.options.remove,handler:new L.EditToolbar.Delete(t,{featureGroup:e}),title:L.drawLocal.edit.toolbar.buttons.remove}]},getActions:function(t){var e=[{title:L.drawLocal.edit.toolbar.actions.save.title,text:L.drawLocal.edit.toolbar.actions.save.text,callback:this._save,context:this},{title:L.drawLocal.edit.toolbar.actions.cancel.title,text:L.drawLocal.edit.toolbar.actions.cancel.text,callback:this.disable,context:this}];return t.removeAllLayers&&e.push({title:L.drawLocal.edit.toolbar.actions.clearAll.title,text:L.drawLocal.edit.toolbar.actions.clearAll.text,callback:this._clearAllLayers,context:this}),e},addToolbar:function(t){var e=L.Toolbar.prototype.addToolbar.call(this,t);return this._checkDisabled(),this.options.featureGroup.on(\"layeradd layerremove\",this._checkDisabled,this),e},removeToolbar:function(){this.options.featureGroup.off(\"layeradd layerremove\",this._checkDisabled,this),L.Toolbar.prototype.removeToolbar.call(this)},disable:function(){this.enabled()&&(this._activeMode.handler.revertLayers(),L.Toolbar.prototype.disable.call(this))},_save:function(){this._activeMode.handler.save(),this._activeMode&&this._activeMode.handler.disable()},_clearAllLayers:function(){this._activeMode.handler.removeAllLayers(),this._activeMode&&this._activeMode.handler.disable()},_checkDisabled:function(){var t,e=this.options.featureGroup,i=0!==e.getLayers().length;this.options.edit&&(t=this._modes[L.EditToolbar.Edit.TYPE].button,i?L.DomUtil.removeClass(t,\"leaflet-disabled\"):L.DomUtil.addClass(t,\"leaflet-disabled\"),t.setAttribute(\"title\",i?L.drawLocal.edit.toolbar.buttons.edit:L.drawLocal.edit.toolbar.buttons.editDisabled)),this.options.remove&&(t=this._modes[L.EditToolbar.Delete.TYPE].button,i?L.DomUtil.removeClass(t,\"leaflet-disabled\"):L.DomUtil.addClass(t,\"leaflet-disabled\"),t.setAttribute(\"title\",i?L.drawLocal.edit.toolbar.buttons.remove:L.drawLocal.edit.toolbar.buttons.removeDisabled))}}),L.EditToolbar.Edit=L.Handler.extend({statics:{TYPE:\"edit\"},initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.setOptions(this,e),this._featureGroup=e.featureGroup,!(this._featureGroup instanceof L.FeatureGroup))throw new Error(\"options.featureGroup must be a L.FeatureGroup\");this._uneditedLayerProps={},this.type=L.EditToolbar.Edit.TYPE;var i=L.version.split(\".\");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.EditToolbar.Edit.include(L.Evented.prototype):L.EditToolbar.Edit.include(L.Mixin.Events)},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire(\"enabled\",{handler:this.type}),this._map.fire(L.Draw.Event.EDITSTART,{handler:this.type}),L.Handler.prototype.enable.call(this),this._featureGroup.on(\"layeradd\",this._enableLayerEdit,this).on(\"layerremove\",this._disableLayerEdit,this))},disable:function(){this._enabled&&(this._featureGroup.off(\"layeradd\",this._enableLayerEdit,this).off(\"layerremove\",this._disableLayerEdit,this),L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.EDITSTOP,{handler:this.type}),this.fire(\"disabled\",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._featureGroup.eachLayer(this._enableLayerEdit,this),this._tooltip=new L.Draw.Tooltip(this._map),this._tooltip.updateContent({text:L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.edit.handlers.edit.tooltip.subtext}),t._editTooltip=this._tooltip,this._updateTooltip(),this._map.on(\"mousemove\",this._onMouseMove,this).on(\"touchmove\",this._onMouseMove,this).on(\"MSPointerMove\",this._onMouseMove,this).on(L.Draw.Event.EDITVERTEX,this._updateTooltip,this))},removeHooks:function(){this._map&&(this._featureGroup.eachLayer(this._disableLayerEdit,this),this._uneditedLayerProps={},this._tooltip.dispose(),this._tooltip=null,this._map.off(\"mousemove\",this._onMouseMove,this).off(\"touchmove\",this._onMouseMove,this).off(\"MSPointerMove\",this._onMouseMove,this).off(L.Draw.Event.EDITVERTEX,this._updateTooltip,this))},revertLayers:function(){this._featureGroup.eachLayer(function(t){this._revertLayer(t)},this)},save:function(){var t=new L.LayerGroup;this._featureGroup.eachLayer(function(e){e.edited&&(t.addLayer(e),e.edited=!1)}),this._map.fire(L.Draw.Event.EDITED,{layers:t})},_backupLayer:function(t){var e=L.Util.stamp(t);this._uneditedLayerProps[e]||(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?this._uneditedLayerProps[e]={latlngs:L.LatLngUtil.cloneLatLngs(t.getLatLngs())}:t instanceof L.Circle?this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng()),radius:t.getRadius()}:(t instanceof L.Marker||t instanceof L.CircleMarker)&&(this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng())}))},_getTooltipText:function(){return{text:L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.edit.handlers.edit.tooltip.subtext}},_updateTooltip:function(){this._tooltip.updateContent(this._getTooltipText())},_revertLayer:function(t){var e=L.Util.stamp(t);t.edited=!1,this._uneditedLayerProps.hasOwnProperty(e)&&(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?t.setLatLngs(this._uneditedLayerProps[e].latlngs):t instanceof L.Circle?(t.setLatLng(this._uneditedLayerProps[e].latlng),t.setRadius(this._uneditedLayerProps[e].radius)):(t instanceof L.Marker||t instanceof L.CircleMarker)&&t.setLatLng(this._uneditedLayerProps[e].latlng),t.fire(\"revert-edited\",{layer:t}))},_enableLayerEdit:function(t){var e,i,o=t.layer||t.target||t;this._backupLayer(o),this.options.poly&&(i=L.Util.extend({},this.options.poly),o.options.poly=i),this.options.selectedPathOptions&&(e=L.Util.extend({},this.options.selectedPathOptions),e.maintainColor&&(e.color=o.options.color,e.fillColor=o.options.fillColor),o.options.original=L.extend({},o.options),o.options.editing=e),o instanceof L.Marker?(o.editing&&o.editing.enable(),o.dragging.enable(),o.on(\"dragend\",this._onMarkerDragEnd).on(\"touchmove\",this._onTouchMove,this).on(\"MSPointerMove\",this._onTouchMove,this).on(\"touchend\",this._onMarkerDragEnd,this).on(\"MSPointerUp\",this._onMarkerDragEnd,this)):o.editing.enable()},_disableLayerEdit:function(t){var e=t.layer||t.target||t;e.edited=!1,e.editing&&e.editing.disable(),delete e.options.editing,delete e.options.original,\nthis._selectedPathOptions&&(e instanceof L.Marker?this._toggleMarkerHighlight(e):(e.setStyle(e.options.previousOptions),delete e.options.previousOptions)),e instanceof L.Marker?(e.dragging.disable(),e.off(\"dragend\",this._onMarkerDragEnd,this).off(\"touchmove\",this._onTouchMove,this).off(\"MSPointerMove\",this._onTouchMove,this).off(\"touchend\",this._onMarkerDragEnd,this).off(\"MSPointerUp\",this._onMarkerDragEnd,this)):e.editing.disable()},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_onMarkerDragEnd:function(t){var e=t.target;e.edited=!0,this._map.fire(L.Draw.Event.EDITMOVE,{layer:e})},_onTouchMove:function(t){var e=t.originalEvent.changedTouches[0],i=this._map.mouseEventToLayerPoint(e),o=this._map.layerPointToLatLng(i);t.target.setLatLng(o)},_hasAvailableLayers:function(){return 0!==this._featureGroup.getLayers().length}}),L.EditToolbar.Delete=L.Handler.extend({statics:{TYPE:\"remove\"},initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.Util.setOptions(this,e),this._deletableLayers=this.options.featureGroup,!(this._deletableLayers instanceof L.FeatureGroup))throw new Error(\"options.featureGroup must be a L.FeatureGroup\");this.type=L.EditToolbar.Delete.TYPE;var i=L.version.split(\".\");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.EditToolbar.Delete.include(L.Evented.prototype):L.EditToolbar.Delete.include(L.Mixin.Events)},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire(\"enabled\",{handler:this.type}),this._map.fire(L.Draw.Event.DELETESTART,{handler:this.type}),L.Handler.prototype.enable.call(this),this._deletableLayers.on(\"layeradd\",this._enableLayerDelete,this).on(\"layerremove\",this._disableLayerDelete,this))},disable:function(){this._enabled&&(this._deletableLayers.off(\"layeradd\",this._enableLayerDelete,this).off(\"layerremove\",this._disableLayerDelete,this),L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.DELETESTOP,{handler:this.type}),this.fire(\"disabled\",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._deletableLayers.eachLayer(this._enableLayerDelete,this),this._deletedLayers=new L.LayerGroup,this._tooltip=new L.Draw.Tooltip(this._map),this._tooltip.updateContent({text:L.drawLocal.edit.handlers.remove.tooltip.text}),this._map.on(\"mousemove\",this._onMouseMove,this))},removeHooks:function(){this._map&&(this._deletableLayers.eachLayer(this._disableLayerDelete,this),this._deletedLayers=null,this._tooltip.dispose(),this._tooltip=null,this._map.off(\"mousemove\",this._onMouseMove,this))},revertLayers:function(){this._deletedLayers.eachLayer(function(t){this._deletableLayers.addLayer(t),t.fire(\"revert-deleted\",{layer:t})},this)},save:function(){this._map.fire(L.Draw.Event.DELETED,{layers:this._deletedLayers})},removeAllLayers:function(){this._deletableLayers.eachLayer(function(t){this._removeLayer({layer:t})},this),this.save()},_enableLayerDelete:function(t){(t.layer||t.target||t).on(\"click\",this._removeLayer,this)},_disableLayerDelete:function(t){var e=t.layer||t.target||t;e.off(\"click\",this._removeLayer,this),this._deletedLayers.removeLayer(e)},_removeLayer:function(t){var e=t.layer||t.target||t;this._deletableLayers.removeLayer(e),this._deletedLayers.addLayer(e),e.fire(\"deleted\")},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_hasAvailableLayers:function(){return 0!==this._deletableLayers.getLayers().length}})}(window,document);"],"mappings":"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"},"metadata":{},"sourceType":"script"} |