diff --git a/core/vendor/geolocation/images/appareil-photo.png b/core/vendor/geolocation/images/appareil-photo.png
deleted file mode 100644
index 7d06170..0000000
Binary files a/core/vendor/geolocation/images/appareil-photo.png and /dev/null differ
diff --git a/core/vendor/geolocation/images/elevation-lime.png b/core/vendor/geolocation/images/elevation-lime.png
deleted file mode 100644
index 68fb537..0000000
Binary files a/core/vendor/geolocation/images/elevation-lime.png and /dev/null differ
diff --git a/core/vendor/geolocation/images/elevation-lime.svg b/core/vendor/geolocation/images/elevation-lime.svg
deleted file mode 100644
index f141cd6..0000000
--- a/core/vendor/geolocation/images/elevation-lime.svg
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
diff --git a/core/vendor/geolocation/images/elevation-locate.png b/core/vendor/geolocation/images/elevation-locate.png
deleted file mode 100644
index 9505daa..0000000
Binary files a/core/vendor/geolocation/images/elevation-locate.png and /dev/null differ
diff --git a/core/vendor/geolocation/images/elevation-poi.png b/core/vendor/geolocation/images/elevation-poi.png
deleted file mode 100644
index d29e63e..0000000
Binary files a/core/vendor/geolocation/images/elevation-poi.png and /dev/null differ
diff --git a/core/vendor/geolocation/images/elevation-position.png b/core/vendor/geolocation/images/elevation-position.png
deleted file mode 100644
index 509f063..0000000
Binary files a/core/vendor/geolocation/images/elevation-position.png and /dev/null differ
diff --git a/core/vendor/geolocation/images/elevation-purple.png b/core/vendor/geolocation/images/elevation-purple.png
deleted file mode 100644
index 4e0bcb8..0000000
Binary files a/core/vendor/geolocation/images/elevation-purple.png and /dev/null differ
diff --git a/core/vendor/geolocation/images/elevation-purple.svg b/core/vendor/geolocation/images/elevation-purple.svg
deleted file mode 100644
index a693f70..0000000
--- a/core/vendor/geolocation/images/elevation-purple.svg
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
diff --git a/core/vendor/geolocation/images/elevation-pushpin.png b/core/vendor/geolocation/images/elevation-pushpin.png
deleted file mode 100644
index f4ec493..0000000
Binary files a/core/vendor/geolocation/images/elevation-pushpin.png and /dev/null differ
diff --git a/core/vendor/geolocation/images/elevation-steelblue.png b/core/vendor/geolocation/images/elevation-steelblue.png
deleted file mode 100644
index 02d1712..0000000
Binary files a/core/vendor/geolocation/images/elevation-steelblue.png and /dev/null differ
diff --git a/core/vendor/geolocation/images/elevation-steelblue.svg b/core/vendor/geolocation/images/elevation-steelblue.svg
deleted file mode 100644
index 6b186b3..0000000
--- a/core/vendor/geolocation/images/elevation-steelblue.svg
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
diff --git a/core/vendor/geolocation/images/elevation.png b/core/vendor/geolocation/images/elevation.png
deleted file mode 100644
index e3d9348..0000000
Binary files a/core/vendor/geolocation/images/elevation.png and /dev/null differ
diff --git a/core/vendor/geolocation/images/remove.svg b/core/vendor/geolocation/images/remove.svg
deleted file mode 100644
index f063b3d..0000000
--- a/core/vendor/geolocation/images/remove.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/core/vendor/geolocation/leaflet/Control.FullScreen.css b/core/vendor/geolocation/leaflet/Control.FullScreen.css
deleted file mode 100644
index e07fea5..0000000
--- a/core/vendor/geolocation/leaflet/Control.FullScreen.css
+++ /dev/null
@@ -1,10 +0,0 @@
-.fullscreen-icon { background-image: url(icon-fullscreen.svg); background-size:26px 52px; }
-.fullscreen-icon.leaflet-fullscreen-on { background-position:0 -26px; }
-.leaflet-touch .fullscreen-icon { background-position: 2px 2px; }
-.leaflet-touch .fullscreen-icon.leaflet-fullscreen-on { background-position: 2px -24px; }
-/* one selector per rule as explained here : http://www.sitepoint.com/html5-full-screen-api/ */
-.leaflet-container:-webkit-full-screen { width: 100% !important; height: 100% !important; z-index: 99999; }
-.leaflet-container:-ms-fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; }
-.leaflet-container:full-screen { width: 100% !important; height: 100% !important; z-index: 99999; }
-.leaflet-container:fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; }
-.leaflet-pseudo-fullscreen { position: fixed !important; width: 100% !important; height: 100% !important; top: 0px !important; left: 0px !important; z-index: 99999; }
\ No newline at end of file
diff --git a/core/vendor/geolocation/leaflet/Control.FullScreen.js b/core/vendor/geolocation/leaflet/Control.FullScreen.js
deleted file mode 100644
index 29a594c..0000000
--- a/core/vendor/geolocation/leaflet/Control.FullScreen.js
+++ /dev/null
@@ -1,271 +0,0 @@
-/*!_map
-* leaflet.fullscreen
-* (c) Bruno B.; MIT License
-* Uses fragments from the package 'screenfull'
-*/
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- // define an AMD module that requires 'leaflet'
- // and resolve to an object containing leaflet
- define('leafletFullScreen', ['leaflet'], factory);
- } else if (typeof module === 'object' && module.exports) {
- // define a CommonJS module that requires 'leaflet'
- module.exports = factory(require('leaflet'));
- } else {
- // Assume 'leaflet' are loaded into global variable already
- factory(root.L);
- }
-}(typeof self !== 'undefined' ? self : this, function (leaflet) {
- 'use strict';
-
- if (typeof document === 'undefined') {
- console.warn('"window.document" is undefined; leaflet.fullscreen requires this object to access the DOM');
- return false;
- }
-
- const nativeAPI = (() => {
- const methodMap = [
- // Standard
- [
- 'requestFullscreen',
- 'exitFullscreen',
- 'fullscreenElement',
- 'fullscreenEnabled',
- 'fullscreenchange',
- 'fullscreenerror'
- ],
- // New WebKit
- [
- 'webkitRequestFullscreen',
- 'webkitExitFullscreen',
- 'webkitFullscreenElement',
- 'webkitFullscreenEnabled',
- 'webkitfullscreenchange',
- 'webkitfullscreenerror'
- ]
- ];
-
- const baseList = methodMap[0];
- const ret = {};
-
- for (const methodList of methodMap) {
- if (methodList[1] in document) {
- for (let i = 0; i < methodList.length; i++) {
- ret[baseList[i]] = methodList[i];
- }
- return ret;
- }
- }
-
- return false;
- })();
-
- const eventNameMap = {
- change: nativeAPI.fullscreenchange,
- error: nativeAPI.fullscreenerror,
- };
-
- const fullscreenAPI = {
- request: function (element, options) {
- return new Promise(function (resolve, reject) {
- const onFullScreenEntered = function () {
- this.off('change', onFullScreenEntered);
- resolve();
- }.bind(this);
-
- this.on('change', onFullScreenEntered);
- element = element || document.documentElement;
- const returnPromise = element[nativeAPI.requestFullscreen](options);
- if (returnPromise instanceof Promise) {
- returnPromise.then(onFullScreenEntered).catch(reject);
- }
- }.bind(this));
- },
- exit: function () {
- return new Promise(function (resolve, reject) {
- if (!this.isFullscreen) {
- resolve();
- return;
- }
-
- const onFullScreenExit = function () {
- this.off('change', onFullScreenExit);
- resolve();
- }.bind(this);
-
- this.on('change', onFullScreenExit);
- const returnPromise = document[nativeAPI.exitFullscreen]();
- if (returnPromise instanceof Promise) {
- returnPromise.then(onFullScreenExit).catch(reject);
- }
- }.bind(this));
- },
- on: function (event, callback) {
- var eventName = eventNameMap[event];
- if (eventName) {
- document.addEventListener(eventName, callback, false);
- }
- },
- off: function (event, callback) {
- var eventName = eventNameMap[event];
- if (eventName) {
- document.removeEventListener(eventName, callback, false);
- }
- },
- nativeAPI: nativeAPI
-};
-
- Object.defineProperties(fullscreenAPI, {
- isFullscreen: {
- get: function () {
- return Boolean(document[nativeAPI.fullscreenElement]);
- }
- },
- isEnabled: {
- enumerable: true,
- get: function () {
- // Coerce to boolean in case of old WebKit
- return Boolean(document[nativeAPI.fullscreenEnabled]);
- }
- }
- });
-
- leaflet.Control.FullScreen = leaflet.Control.extend({
- options: {
- position: 'topleft',
- title: 'Full Screen',
- titleCancel: 'Exit Full Screen',
- forceSeparateButton: false,
- forcePseudoFullscreen: false,
- fullscreenElement: false
- },
-
- _screenfull: fullscreenAPI,
-
- onAdd: function (map) {
- var className = 'leaflet-control-zoom-fullscreen', container, content = '';
-
- if (map.zoomControl && !this.options.forceSeparateButton) {
- container = map.zoomControl._container;
- } else {
- container = leaflet.DomUtil.create('div', 'leaflet-bar');
- }
-
- if (this.options.content) {
- content = this.options.content;
- } else {
- className += ' fullscreen-icon';
- }
-
- this._createButton(this.options.title, className, content, container, this.toggleFullScreen, this);
- this._map.fullscreenControl = this;
-
- this._map.on('enterFullscreen exitFullscreen', this._toggleState, this);
-
- return container;
- },
-
- onRemove: function () {
- leaflet.DomEvent
- .off(this.link, 'click', leaflet.DomEvent.stop)
- .off(this.link, 'click', this.toggleFullScreen, this);
-
- if (this._screenfull.isEnabled) {
- leaflet.DomEvent
- .off(this._container, this._screenfull.nativeAPI.fullscreenchange, leaflet.DomEvent.stop)
- .off(this._container, this._screenfull.nativeAPI.fullscreenchange, this._handleFullscreenChange, this);
-
- leaflet.DomEvent
- .off(document, this._screenfull.nativeAPI.fullscreenchange, leaflet.DomEvent.stop)
- .off(document, this._screenfull.nativeAPI.fullscreenchange, this._handleFullscreenChange, this);
- }
- },
-
- _createButton: function (title, className, content, container, fn, context) {
- this.link = leaflet.DomUtil.create('a', className, container);
- this.link.href = '#';
- this.link.title = title;
- this.link.innerHTML = content;
-
- this.link.setAttribute('role', 'button');
- this.link.setAttribute('aria-label', title);
-
- L.DomEvent.disableClickPropagation(container);
-
- leaflet.DomEvent
- .on(this.link, 'click', leaflet.DomEvent.stop)
- .on(this.link, 'click', fn, context);
-
- if (this._screenfull.isEnabled) {
- leaflet.DomEvent
- .on(container, this._screenfull.nativeAPI.fullscreenchange, leaflet.DomEvent.stop)
- .on(container, this._screenfull.nativeAPI.fullscreenchange, this._handleFullscreenChange, context);
-
- leaflet.DomEvent
- .on(document, this._screenfull.nativeAPI.fullscreenchange, leaflet.DomEvent.stop)
- .on(document, this._screenfull.nativeAPI.fullscreenchange, this._handleFullscreenChange, context);
- }
-
- return this.link;
- },
-
- toggleFullScreen: function () {
- var map = this._map;
- map._exitFired = false;
- if (map._isFullscreen) {
- if (this._screenfull.isEnabled && !this.options.forcePseudoFullscreen) {
- this._screenfull.exit();
- } else {
- leaflet.DomUtil.removeClass(this.options.fullscreenElement ? this.options.fullscreenElement : map._container, 'leaflet-pseudo-fullscreen');
- map.invalidateSize();
- }
- map.fire('exitFullscreen');
- map._exitFired = true;
- map._isFullscreen = false;
- }
- else {
- if (this._screenfull.isEnabled && !this.options.forcePseudoFullscreen) {
- this._screenfull.request(this.options.fullscreenElement ? this.options.fullscreenElement : map._container);
- } else {
- leaflet.DomUtil.addClass(this.options.fullscreenElement ? this.options.fullscreenElement : map._container, 'leaflet-pseudo-fullscreen');
- map.invalidateSize();
- }
- map.fire('enterFullscreen');
- map._isFullscreen = true;
- }
- },
-
- _toggleState: function () {
- this.link.title = this._map._isFullscreen ? this.options.title : this.options.titleCancel;
- this._map._isFullscreen ? L.DomUtil.removeClass(this.link, 'leaflet-fullscreen-on') : L.DomUtil.addClass(this.link, 'leaflet-fullscreen-on');
- },
-
- _handleFullscreenChange: function () {
- var map = this._map;
- map.invalidateSize();
- if (!this._screenfull.isFullscreen && !map._exitFired) {
- map.fire('exitFullscreen');
- map._exitFired = true;
- map._isFullscreen = false;
- }
- }
- });
-
- leaflet.Map.include({
- toggleFullscreen: function () {
- this.fullscreenControl.toggleFullScreen();
- }
- });
-
- leaflet.Map.addInitHook(function () {
- if (this.options.fullscreenControl) {
- this.addControl(leaflet.control.fullscreen(this.options.fullscreenControlOptions));
- }
- });
-
- leaflet.control.fullscreen = function (options) {
- return new leaflet.Control.FullScreen(options);
- };
-
- return {leaflet: leaflet};
-}));
diff --git a/core/vendor/geolocation/leaflet/MarkerCluster.Default.css b/core/vendor/geolocation/leaflet/MarkerCluster.Default.css
deleted file mode 100644
index ce1fa85..0000000
--- a/core/vendor/geolocation/leaflet/MarkerCluster.Default.css
+++ /dev/null
@@ -1,31 +0,0 @@
-/* tour du point de regroupement */
-.marker-cluster-small {
- background-color: rgba(181, 226, 140, 0.5);
- }
-/* zone centrale du point de regroupement */
-.marker-cluster-small div, .marker-cluster-medium div, .marker-cluster-large div {
- background-color: rgba(0,0,0,0.75);
- }
-.marker-cluster-medium {
- background-color: rgba(241, 211, 87, 0.5);
- }
-.marker-cluster-large {
- background-color: rgba(253, 156, 115, 0.5);
- }
-.marker-cluster {
- background-clip: padding-box;
- border-radius: 20px;
- }
-.marker-cluster div {
- width: 30px;
- height: 30px;
- margin-left: 5px;
- margin-top: 5px;
- text-align: center;
- border-radius: 15px;
- font: 14px monospace;
- color: white;
- }
-.marker-cluster span {
- line-height: 30px;
- }
diff --git a/core/vendor/geolocation/leaflet/MarkerCluster.css b/core/vendor/geolocation/leaflet/MarkerCluster.css
deleted file mode 100644
index 3b7e6f6..0000000
--- a/core/vendor/geolocation/leaflet/MarkerCluster.css
+++ /dev/null
@@ -1,7 +0,0 @@
-.leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {
- transition: transform 0.3s ease-out, opacity 0.3s ease-in;
-}
-
-.leaflet-cluster-spider-leg {
- transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;
-}
diff --git a/core/vendor/geolocation/leaflet/icon-fullscreen.svg b/core/vendor/geolocation/leaflet/icon-fullscreen.svg
deleted file mode 100644
index 6107d8c..0000000
--- a/core/vendor/geolocation/leaflet/icon-fullscreen.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/core/vendor/geolocation/leaflet/images/black-marker-icon.png b/core/vendor/geolocation/leaflet/images/black-marker-icon.png
deleted file mode 100644
index 0fbe24b..0000000
Binary files a/core/vendor/geolocation/leaflet/images/black-marker-icon.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/black-marker-shadow.png b/core/vendor/geolocation/leaflet/images/black-marker-shadow.png
deleted file mode 100644
index 9fd2979..0000000
Binary files a/core/vendor/geolocation/leaflet/images/black-marker-shadow.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/icones-info.lio b/core/vendor/geolocation/leaflet/images/icones-info.lio
deleted file mode 100644
index 6606b28..0000000
--- a/core/vendor/geolocation/leaflet/images/icones-info.lio
+++ /dev/null
@@ -1,2 +0,0 @@
-le nom doit comporter
--marker
\ No newline at end of file
diff --git a/core/vendor/geolocation/leaflet/images/layers-2x.png b/core/vendor/geolocation/leaflet/images/layers-2x.png
deleted file mode 100644
index 200c333..0000000
Binary files a/core/vendor/geolocation/leaflet/images/layers-2x.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/layers.png b/core/vendor/geolocation/leaflet/images/layers.png
deleted file mode 100644
index 1a72e57..0000000
Binary files a/core/vendor/geolocation/leaflet/images/layers.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/leaflet-minimap/dist/imagestoggle.png b/core/vendor/geolocation/leaflet/images/leaflet-minimap/dist/imagestoggle.png
deleted file mode 100644
index 7a55db4..0000000
Binary files a/core/vendor/geolocation/leaflet/images/leaflet-minimap/dist/imagestoggle.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/leaflet-minimap/dist/imagestoggle.svg b/core/vendor/geolocation/leaflet/images/leaflet-minimap/dist/imagestoggle.svg
deleted file mode 100644
index b293270..0000000
--- a/core/vendor/geolocation/leaflet/images/leaflet-minimap/dist/imagestoggle.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/core/vendor/geolocation/leaflet/images/leaflet-pegman/maps.gstatic.com/api-3cb_scout5.png b/core/vendor/geolocation/leaflet/images/leaflet-pegman/maps.gstatic.com/api-3cb_scout5.png
deleted file mode 100644
index 83206dd..0000000
Binary files a/core/vendor/geolocation/leaflet/images/leaflet-pegman/maps.gstatic.com/api-3cb_scout5.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/leaflet-pegman/maps.gstatic.com/pegman_v3runway-1x.png b/core/vendor/geolocation/leaflet/images/leaflet-pegman/maps.gstatic.com/pegman_v3runway-1x.png
deleted file mode 100644
index 0d41163..0000000
Binary files a/core/vendor/geolocation/leaflet/images/leaflet-pegman/maps.gstatic.com/pegman_v3runway-1x.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/leaflet-pegman/maps.gstatic.com/pegman_v3runway-2x.png b/core/vendor/geolocation/leaflet/images/leaflet-pegman/maps.gstatic.com/pegman_v3runway-2x.png
deleted file mode 100644
index a736232..0000000
Binary files a/core/vendor/geolocation/leaflet/images/leaflet-pegman/maps.gstatic.com/pegman_v3runway-2x.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/leaflet-search/imagesloader.gif b/core/vendor/geolocation/leaflet/images/leaflet-search/imagesloader.gif
deleted file mode 100644
index d3ef195..0000000
Binary files a/core/vendor/geolocation/leaflet/images/leaflet-search/imagesloader.gif and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/leaflet-search/imagessearch-icon.png b/core/vendor/geolocation/leaflet/images/leaflet-search/imagessearch-icon.png
deleted file mode 100644
index 231df74..0000000
Binary files a/core/vendor/geolocation/leaflet/images/leaflet-search/imagessearch-icon.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/leaflet.fullscreenicon-fullscreen-2x.png b/core/vendor/geolocation/leaflet/images/leaflet.fullscreenicon-fullscreen-2x.png
deleted file mode 100644
index efc0dfb..0000000
Binary files a/core/vendor/geolocation/leaflet/images/leaflet.fullscreenicon-fullscreen-2x.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/leaflet.fullscreenicon-fullscreen.png b/core/vendor/geolocation/leaflet/images/leaflet.fullscreenicon-fullscreen.png
deleted file mode 100644
index 8ee2447..0000000
Binary files a/core/vendor/geolocation/leaflet/images/leaflet.fullscreenicon-fullscreen.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/leaflet.fullscreenicon-fullscreen.svg b/core/vendor/geolocation/leaflet/images/leaflet.fullscreenicon-fullscreen.svg
deleted file mode 100644
index 6107d8c..0000000
--- a/core/vendor/geolocation/leaflet/images/leaflet.fullscreenicon-fullscreen.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/core/vendor/geolocation/leaflet/images/leaflet.locatecontrollocation-arrow-solid.svg b/core/vendor/geolocation/leaflet/images/leaflet.locatecontrollocation-arrow-solid.svg
deleted file mode 100644
index 9fea156..0000000
--- a/core/vendor/geolocation/leaflet/images/leaflet.locatecontrollocation-arrow-solid.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/core/vendor/geolocation/leaflet/images/leaflet.locatecontrolspinner-solid.svg b/core/vendor/geolocation/leaflet/images/leaflet.locatecontrolspinner-solid.svg
deleted file mode 100644
index f795980..0000000
--- a/core/vendor/geolocation/leaflet/images/leaflet.locatecontrolspinner-solid.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/core/vendor/geolocation/leaflet/images/marker-icon-2x.png b/core/vendor/geolocation/leaflet/images/marker-icon-2x.png
deleted file mode 100644
index 4318c63..0000000
Binary files a/core/vendor/geolocation/leaflet/images/marker-icon-2x.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/marker-icon.png b/core/vendor/geolocation/leaflet/images/marker-icon.png
deleted file mode 100644
index 0fbe24b..0000000
Binary files a/core/vendor/geolocation/leaflet/images/marker-icon.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/marker-shadow.png b/core/vendor/geolocation/leaflet/images/marker-shadow.png
deleted file mode 100644
index 9fd2979..0000000
Binary files a/core/vendor/geolocation/leaflet/images/marker-shadow.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/pin-marker-icon-2x.png b/core/vendor/geolocation/leaflet/images/pin-marker-icon-2x.png
deleted file mode 100644
index 1d62ead..0000000
Binary files a/core/vendor/geolocation/leaflet/images/pin-marker-icon-2x.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/pin-marker-icon.png b/core/vendor/geolocation/leaflet/images/pin-marker-icon.png
deleted file mode 100644
index a917ee4..0000000
Binary files a/core/vendor/geolocation/leaflet/images/pin-marker-icon.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/images/pin-marker-shadow.png b/core/vendor/geolocation/leaflet/images/pin-marker-shadow.png
deleted file mode 100644
index 9fd2979..0000000
Binary files a/core/vendor/geolocation/leaflet/images/pin-marker-shadow.png and /dev/null differ
diff --git a/core/vendor/geolocation/leaflet/leaflet-elevation.css b/core/vendor/geolocation/leaflet/leaflet-elevation.css
deleted file mode 100644
index f14feee..0000000
--- a/core/vendor/geolocation/leaflet/leaflet-elevation.css
+++ /dev/null
@@ -1,389 +0,0 @@
-.leaflet-container {
- z-index: 0;
- /* prevent overlapping the .elevation-detached chart */
-}
-
-.elevation-detached {
- font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
- height: auto;
- width: 100%;
- position: relative;
- z-index: 0;
-}
-
-.elevation-detached .elevation {
- width: 100%;
-}
-
-.elevation-detached .background {
- max-width: 100%;
-}
-
-.elevation-control.elevation .background {
- background-color: rgba(70, 130, 180, 0.2);
- border-radius: 5px;
- -moz-border-radius: 5px;
- -ms-border-radius: 5px;
- -o-border-radius: 5px;
- -webkit-border-radius: 5px;
- overflow: visible;
- display: block;
-}
-
-.elevation-control.elevation .axis line,
-.elevation-control.elevation .axis path {
- stroke: #2D1130;
- stroke-width: 2;
- fill: none;
-}
-
-.elevation-control.elevation .grid .tick line {
- stroke: #EEE;
- stroke-width: 1px;
- shape-rendering: crispEdges;
-}
-
-.elevation-control.elevation .grid path {
- stroke-width: 0;
- pointer-events: none;
-}
-
-.elevation-control.elevation .axis text {
- text-anchor: end;
- fill: #000;
- font-weight: 700;
-}
-
-.elevation-control.elevation .area {
- fill: #4682B4;
- stroke: #000;
- stroke-width: 1.8;
- paint-order: stroke fill;
-}
-
-.elevation-control.elevation .mouse-focus-line {
- stroke: #0D1821;
- stroke-width: 1;
- pointer-events: none;
-}
-
-.elevation-control.elevation .mouse-focus-label {
- fill: #000;
- fill-opacity: 0.75;
- pointer-events: none;
-}
-
-.elevation-control.elevation .mouse-focus-label-text {
- fill: #FFF;
- pointer-events: none;
-}
-
-.elevation-control.elevation .mouse-drag {
- fill: rgba(23, 74, 117, 0.4);
-}
-
-.elevation-control.elevation .elevation-toggle {
- cursor: pointer;
- box-shadow: 0 1px 7px rgba(0, 0, 0, 0.4);
- -webkit-border-radius: 5px;
- border-radius: 5px;
- width: 36px;
- height: 36px;
- background-color: #F8F8F9;
-}
-
-.elevation-summary {
- font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
- font-size: 12px;
- margin-left: 45px;
-}
-
-.leaflet-control-container .elevation-summary {
- text-shadow:
- 1.5px 0 0 #FFF,
- -1.5px 0 0 #FFF,
- 0 1.5px 0 #FFF,
- 0 -1.5px 0 #FFF,
- 1px 1px #FFF,
- -1px -1px 0 #FFF,
- 1px -1px 0 #FFF,
- -1px 1px 0 #FFF;
-}
-
-.elevation-summary.multiline-summary {
- margin-right: 30px;
-}
-
-.elevation-detached .elevation-summary.multiline-summary {
- margin-bottom: 12px;
- margin-top: 12px;
- line-height: 2;
-}
-
-.elevation-summary.inline-summary>span:not(:last-child):after {
- content: "\0020\2014\0020";
-}
-
-.elevation-summary.multiline-summary>span {
- display: block;
-}
-
-.elevation-summary.multiline-summary .download {
- float: right;
- margin-top: -2.5em;
- font-weight: bold;
- font-size: 1.2em;
-}
-
-.elevation-detached .elevation-summary.multiline-summary .download {
- margin-top: -3.5em;
-}
-
-.elevation-summary .summaryvalue {
- font-weight: bold;
-}
-
-.elevation-control.elevation-collapsed .background,
-.elevation-control.elevation-collapsed .elevation-summary {
- display: none;
-}
-
-.elevation-control.elevation-collapsed .elevation-toggle {
- display: block;
-}
-
-.elevation-control.elevation .elevation-toggle-icon {
- background: url(../images/elevation.png) no-repeat center center;
-}
-
-.elevation-control.elevation.elevation-expanded .elevation-toggle-icon.close-button {
- background: transparent url(../images/remove.svg) no-repeat center center;
- background-size: 14px 14px;
- position: absolute;
- right: 5px;
- top: 5px;
- height: 20px;
- width: 20px;
-}
-
-.leaflet-elevation-pane .height-focus,
-.leaflet-overlay-pane .height-focus {
- stroke: #000;
- fill: #FFF;
-}
-
-.leaflet-elevation-pane .height-focus.line,
-.leaflet-overlay-pane .height-focus.line {
- pointer-events: none;
- stroke-width: 2;
-}
-
-.leaflet-elevation-pane .height-focus-label,
-.leaflet-overlay-pane .height-focus-label {
- font-size: 14px;
- font-weight: 600;
- fill: #000;
- paint-order: stroke;
- stroke: #FFF;
- stroke-width: 2px;
-}
-
-.elevation-waypoint-icon:before {
- background: url(../images/elevation-pushpin.png) no-repeat center center / contain;
- content: "";
- width: 100%;
- height: 100%;
- display: inline-block;
-}
-
-.elevation-position-icon:before {
- background: url(../images/elevation-position.png) no-repeat center center / contain;
- content: "";
- width: 100%;
- height: 100%;
- display: inline-block;
-}
-
-.elevation-polyline {
- filter: drop-shadow(1px 1px 0 #FFF) drop-shadow(-1px -1px 0 #FFF) drop-shadow(1px -1px 0 #FFF) drop-shadow(-1px 1px 0 #FFF);
-}
-
-.elevation-placeholder {
- margin: auto;
- height: auto;
- width: 100%;
-}
-
-.elevation-placeholder~* {
- display: none !important;
-}
-
-/* LIME THEME //////////////////////////////////////////////// */
-
-.lime-theme.elevation-control.elevation .background {
- background-color: rgba(156, 194, 34, 0.2);
-}
-
-.lime-theme.elevation-control.elevation .axis line,
-.lime-theme.elevation-control.elevation .axis path {
- stroke: #566B13;
-}
-
-.lime-theme.elevation-control.elevation .grid .tick line {
- stroke: #CCC;
-}
-
-.lime-theme.elevation-control.elevation .mouse-drag {
- fill: rgba(99, 126, 11, 0.4);
-}
-
-.lime-theme.elevation-control.elevation .elevation-toggle-icon {
- background: url(../images/elevation-lime.png) no-repeat center center;
-}
-
-.lime-theme.elevation-control.elevation .area {
- fill: #9CC222;
-}
-
-.lime-theme.elevation-control.elevation .mouse-focus-line {
- stroke: #101404;
-}
-
-.lime-theme.height-focus {
- stroke: #000;
- fill: #9CC222;
-}
-
-.lime-theme.elevation-polyline {
- stroke: #566B13;
-}
-
-/* STEELBLUE THEME //////////////////////////////////////////////// */
-
-.steelblue-theme.elevation-control.elevation .background {
- background-color: rgba(70, 130, 180, 0.2);
-}
-
-.steelblue-theme.elevation-control.elevation .axis line,
-.steelblue-theme.elevation-control.elevation .axis path {
- stroke: #0D1821;
-}
-
-.steelblue-theme.elevation-control.elevation .mouse-drag {
- fill: rgba(23, 74, 117, 0.4);
-}
-
-.steelblue-theme.elevation-control.elevation .elevation-toggle-icon {
- background: url(../images/elevation-steelblue.png) no-repeat center center;
-}
-
-.steelblue-theme.elevation-control.elevation .area {
- fill: #4682B4;
-}
-
-.steelblue-theme.elevation-control.elevation .mouse-focus-line {
- stroke: #0D1821;
-}
-
-.steelblue-theme.height-focus {
- stroke: #000;
- fill: #4682B4;
-}
-
-.steelblue-theme.elevation-polyline {
- stroke: #4682B4;
-}
-
-/* PURPLE THEME //////////////////////////////////////////////// */
-
-.purple-theme.elevation-control.elevation .background {
- background-color: rgba(115, 44, 123, 0.2);
-}
-
-.purple-theme.elevation-control.elevation .axis line,
-.purple-theme.elevation-control.elevation .axis path {
- stroke: #2D1130;
-}
-
-.purple-theme.elevation-control.elevation .mouse-drag {
- fill: rgba(74, 14, 80, 0.4);
-}
-
-.purple-theme.elevation-control.elevation .elevation-toggle-icon {
- background: url(../images/elevation-purple.png) no-repeat center center;
-}
-
-.purple-theme.elevation-control.elevation .area {
- fill: #732C7B;
-}
-
-.purple-theme.elevation-control.elevation .mouse-focus-line {
- stroke: #000;
-}
-
-.purple-theme.height-focus {
- stroke: #000;
- fill: #732C7B;
-}
-
-.purple-theme.elevation-polyline {
- stroke: #732C7B;
-}
-
-/* YELLOW THEME //////////////////////////////////////////////// */
-
-.yellow-theme.elevation-control.elevation .area {
- fill: #FF0;
-}
-
-.yellow-theme.elevation-polyline {
- stroke: #FF0;
-}
-
-/* RED THEME //////////////////////////////////////////////// */
-
-.red-theme.elevation-control.elevation .area {
- fill: #F00;
- stroke: #000;
-}
-
-.red-theme.elevation-polyline {
- stroke: #F00;
-}
-
-/* MAGENTA THEME //////////////////////////////////////////////// */
-
-.magenta-theme.elevation-control.elevation .background {
- background-color: rgba(255, 255, 255, 0.47);
-}
-
-.magenta-theme.elevation-control.elevation .area {
- fill: #FF005E;
- stroke: #000;
-}
-
-.magenta-theme.elevation-polyline {
- stroke: #FF005E;
-}
-
-/* LIGHTBLUE THEME //////////////////////////////////////////////// */
-
-.lightblue-theme.elevation-control.elevation .area {
- fill: #3366CC;
- stroke: #000;
- stroke-width: 1.25;
-}
-
-.elevation-detached .lightblue-theme.elevation-control.elevation .area {
- stroke: #3366CC;
- fill-opacity: 0.45;
-}
-
-.lightblue-theme.height-focus {
- stroke: #000;
- fill: #FFFFFF;
-}
-
-.lightblue-theme.elevation-polyline {
- stroke: #3366CC;
-}
diff --git a/core/vendor/geolocation/leaflet/leaflet-elevation.js b/core/vendor/geolocation/leaflet/leaflet-elevation.js
deleted file mode 100644
index 6aa71db..0000000
--- a/core/vendor/geolocation/leaflet/leaflet-elevation.js
+++ /dev/null
@@ -1,1822 +0,0 @@
-(function (factory) {
- typeof define === 'function' && define.amd ? define(factory) :
- factory();
-}((function () { 'use strict';
-
- // Following https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md
- (function (factory, window) {
-
- // define an AMD module that relies on 'leaflet'
- if (typeof define === 'function' && define.amd) {
- define(['leaflet'], factory);
-
- // define a Common JS module that relies on 'leaflet'
- } else if (typeof exports === 'object') {
- module.exports = factory(require('leaflet'));
- }
-
- // attach your plugin to the global 'L' variable
- if (typeof window !== 'undefined' && window.L) {
- factory(window.L);
-
- }
- }(function (L) {
- L.locales = {};
- L.locale = null;
- L.registerLocale = function registerLocale(code, locale) {
- L.locales[code] = L.Util.extend({}, L.locales[code], locale);
- };
- L.setLocale = function setLocale(code) {
- L.locale = code;
- };
- return L.i18n = L._ = function translate(string, data) {
- if (L.locale && L.locales[L.locale] && L.locales[L.locale][string]) {
- string = L.locales[L.locale][string];
- }
- try {
- // Do not fail if some data is missing
- // a bad translation should not break the app
- string = L.Util.template(string, data);
- }
- catch (err) {/*pass*/
- }
-
- return string;
- };
- }, window));
-
- /*
- * Copyright (c) 2019, GPL-3.0+ Project, Raruto
- *
- * This file is free software: you may copy, redistribute and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation, either version 2 of the License, or (at your
- * option) any later version.
- *
- * This file is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- * This file incorporates work covered by the following copyright and
- * permission notice:
- *
- * Copyright (c) 2013-2016, MIT License, Felix “MrMufflon” Bache
- *
- * Permission to use, copy, modify, and/or distribute this software
- * for any purpose with or without fee is hereby granted, provided
- * that the above copyright notice and this permission notice appear
- * in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
- * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
- * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
- L.Control.Elevation = L.Control.extend({
-
- includes: L.Evented ? L.Evented.prototype : L.Mixin.Events,
-
- options: {
- autohide: !L.Browser.mobile,
- autohideMarker: true,
- collapsed: false,
- controlButton: {
- iconCssClass: "elevation-toggle-icon",
- title: "Elevation"
- },
- detached: true,
- distanceFactor: 1,
- dragging: !L.Browser.mobile,
- downloadLink: 'link',
- elevationDiv: "#elevation-div",
- followMarker: true,
- forceAxisBounds: false,
- gpxOptions: {
- async: true,
- marker_options: {
- startIconUrl: null,
- endIconUrl: null,
- shadowUrl: null,
- wptIcons: {
- '': L.divIcon({
- className: 'elevation-waypoint-marker',
- html: '',
- iconSize: [30, 30],
- iconAnchor: [8, 30],
- })
- },
- },
- },
- height: 200,
- heightFactor: 1,
- hoverNumber: {
- decimalsX: 2,
- decimalsY: 0,
- formatter: undefined
- },
- imperial: false,
- interpolation: "curveLinear",
- lazyLoadJS: true,
- legend: true,
- loadData: {
- defer: false,
- lazy: false,
- },
- marker: 'elevation-line',
- markerIcon: L.divIcon({
- className: 'elevation-position-marker',
- html: '',
- iconSize: [32, 32],
- iconAnchor: [16, 16],
- }),
- placeholder: false,
- position: "topright",
- polyline: {
- className: 'elevation-polyline',
- color: '#000',
- opacity: 0.75,
- weight: 5,
- lineCap: 'round'
- },
- reverseCoords: false,
- skipNullZCoords: false,
- theme: "lightblue-theme",
- margins: {
- top: 10,
- right: 20,
- bottom: 30,
- left: 50
- },
- responsive: true,
- summary: 'inline',
- width: 600,
- xLabel: "km",
- xTicks: undefined,
- yAxisMax: undefined,
- yAxisMin: undefined,
- yLabel: "m",
- yTicks: undefined,
- zFollow: 13,
- },
- __mileFactor: 0.621371,
- __footFactor: 3.28084,
-
- /*
- * Add data to the diagram either from GPX or GeoJSON and update the axis domain and data
- */
- addData: function(d, layer) {
- L.Control.Elevation._d3LazyLoader = this._lazyLoadJS(
- 'https://unpkg.com/d3@5.15.0/dist/d3.min.js',
- typeof d3 !== 'object',
- L.Control.Elevation._d3LazyLoader
- ).then(
- function(d, layer) {
- this._addData(d);
-
- if (this._container) {
- this._applyData();
- }
- if ((typeof layer === "undefined" || layer === null) && d.on) {
- layer = d;
- }
- if (layer) {
- if (layer._path) {
- L.DomUtil.addClass(layer._path, this.options.polyline.className + ' ' + this.options.theme);
- }
- layer
- .on("mousemove", this._mousemoveLayerHandler, this)
- .on("mouseout", this._mouseoutHandler, this);
- }
-
- this.track_info = L.extend({}, this.track_info, {
- distance: this._distance,
- elevation_max: this._maxElevation,
- elevation_min: this._minElevation
- });
-
- this._layers = this._layers || {};
- this._layers[L.Util.stamp(layer)] = layer;
-
- this._fireEvt("eledata_added", { data: d, layer: layer, track_info: this.track_info }, true);
- }.bind(this, d, layer));
- },
-
- /**
- * Adds the control to the given map.
- */
- addTo: function(map) {
- if (this.options.detached) {
- this._appendElevationDiv(map._container).appendChild(this.onAdd(map));
- } else {
- L.Control.prototype.addTo.call(this, map);
- }
- return this;
- },
-
- /*
- * Reset data and display
- */
- clear: function() {
- this._clearPath();
- this._clearChart();
- this._clearData();
-
- this._fireEvt("eledata_clear");
- },
-
- /**
- * Disable dragging chart on touch events.
- */
- disableDragging: function() {
- this._draggingEnabled = false;
- this._resetDrag();
- },
-
- /**
- * Enable dragging chart on touch events.
- */
- enableDragging: function() {
- this._draggingEnabled = true;
- },
-
- /**
- * Sets a map view that contains the given geographical bounds.
- */
- fitBounds: function(bounds) {
- bounds = bounds || this._fullExtent;
- if (this._map && bounds) this._map.fitBounds(bounds);
- },
-
- /**
- * Get default zoom level when "followMarker" is true.
- */
- getZFollow: function() {
- return this._zFollow;
- },
-
- /**
- * Hide current elevation chart profile.
- */
- hide: function() {
- this._container.style.display = "none";
- },
-
- /**
- * Initialize chart control "options" and "container".
- */
- initialize: function(options) {
- this.options = this._deepMerge({}, this.options, options);
-
- if (this.options.imperial) {
- this._distanceFactor = this.__mileFactor;
- this._heightFactor = this.__footFactor;
- this._xLabel = "mi";
- this._yLabel = "ft";
- } else {
- this._distanceFactor = this.options.distanceFactor;
- this._heightFactor = this.options.heightFactor;
- this._xLabel = this.options.xLabel;
- this._yLabel = this.options.yLabel;
- }
-
- this._chartEnabled = true;
- this._draggingEnabled = this.options.dragging;
- this._zFollow = this.options.zFollow;
-
- if (this.options.followMarker) this._setMapView = L.Util.throttle(this._setMapView, 300, this);
- if (this.options.placeholder) this.options.loadData.lazy = this.options.loadData.defer = true;
-
- this.on('waypoint_added', function(e) {
- if (e.point._popup) {
- e.point._popup.options.className = 'elevation-popup';
- e.point._popup._content = decodeURI(e.point._popup._content);
- }
- if (e.point._popup && e.point._popup._content) {
- e.point.bindTooltip(e.point._popup._content, { direction: 'top', sticky: true, opacity: 1, className: 'elevation-tooltip' }).openTooltip();
- }
- });
- },
-
- /**
- * Alias for loadData
- */
- load: function(data, opts) {
- this.loadData(data, opts);
- },
-
- /**
- * Alias for addTo
- */
- loadChart: function(map) {
- this.addTo(map);
- },
-
- /**
- * Load elevation data (GPX or GeoJSON).
- */
- loadData: function(data, opts) {
- opts = L.extend({}, this.options.loadData, opts);
- if (opts.defer) {
- this.loadDefer(data, opts);
- } else if (opts.lazy) {
- this.loadLazy(data, opts);
- } else if (this._isXMLDoc(data)) {
- this.loadGPX(data);
- } else if (this._isJSONDoc(data)) {
- this.loadGeoJSON(data);
- } else {
- this.loadFile(data);
- }
- },
-
- /**
- * Wait for document load before download data.
- */
- loadDefer: function(data, opts) {
- opts = L.extend({}, this.options.loadData, opts);
- opts.defer = false;
- if (document.readyState !== 'complete') window.addEventListener("load", L.bind(this.loadData, this, data, opts), { once: true });
- else this.loadData(data, opts);
- },
-
- /**
- * Load data from a remote url.
- */
- loadFile: function(url) {
- this._downloadURL = url; // TODO: handle multiple urls?
- try {
- let xhr = new XMLHttpRequest();
- xhr.responseType = "text";
- xhr.open('GET', url);
- xhr.onload = function() {
- if (xhr.status !== 200) {
- throw "Error " + xhr.status + " while fetching remote file: " + url;
- } else {
- this.loadData(xhr.response, { lazy: false, defer: false });
- }
- }.bind(this);
- xhr.send();
- } catch (e) {
- console.warn(e);
- }
- },
-
- /**
- * Load raw GeoJSON data.
- */
- loadGeoJSON: function(data) {
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- this.layer = this.geojson = L.geoJson(data, {
- style: function(feature) {
- let style = L.extend({}, this.options.polyline);
- if (this.options.theme) {
- style.className += ' ' + this.options.theme;
- }
- return style;
- }.bind(this),
- pointToLayer: function(feature, latlng) {
- let marker = L.marker(latlng, { icon: this.options.gpxOptions.marker_options.wptIcons[''] });
- let desc = feature.properties.desc ? feature.properties.desc : '';
- let name = feature.properties.name ? feature.properties.name : '';
- if (name || desc) {
- marker.bindPopup("" + name + "" + (desc.length > 0 ? '
' + desc : '')).openPopup();
- }
- this.fire('waypoint_added', { point: marker, point_type: 'waypoint', element: latlng });
- return marker;
- }.bind(this),
- onEachFeature: function(feature, layer) {
- if (feature.geometry.type == 'Point') return;
-
- this.addData(feature, layer);
-
- this.track_info = L.extend({}, this.track_info, { type: "geojson", name: data.name });
- }.bind(this),
- });
- if (this._map) {
- this._map.once('layeradd', function(e) {
- this.fitBounds(this.layer.getBounds());
- this._fireEvt("eledata_loaded", { data: data, layer: this.layer, name: this.track_info.name, track_info: this.track_info }, true);
- }, this);
-
- this.layer.addTo(this._map);
- } else {
- console.warn("Undefined elevation map object");
- }
- },
-
- /**
- * Load raw GPX data.
- */
- loadGPX: function(data) {
- L.Control.Elevation._gpxLazyLoader = this._lazyLoadJS(
- 'https://unpkg.com/leaflet-gpx@1.5.0/gpx.js',
- typeof L.GPX !== 'function',
- L.Control.Elevation._gpxLazyLoader
- ).then(
- function(data) {
- this.options.gpxOptions.polyline_options = L.extend({}, this.options.polyline, this.options.gpxOptions.polyline_options);
-
- if (this.options.theme) {
- this.options.gpxOptions.polyline_options.className += ' ' + this.options.theme;
- }
-
- this.layer = this.gpx = new L.GPX(data, this.options.gpxOptions);
-
- this.layer.on('loaded', function(e) { this.fitBounds(e.target.getBounds()); }, this);
- this.layer.on('addpoint', function(e) { this.fire("waypoint_added", e, true); }, this);
- this.layer.once("addline", function(e) {
- this.addData(e.line /*, this.layer*/ );
-
- this.track_info = L.extend({}, this.track_info, { type: "gpx", name: this.layer.get_name() });
-
- this._fireEvt("eledata_loaded", { data: data, layer: this.layer, name: this.track_info.name, track_info: this.track_info }, true);
- }, this);
-
- if (this._map) {
- this.layer.addTo(this._map);
- } else {
- console.warn("Undefined elevation map object");
- }
- }.bind(this, data)
- );
- },
-
- /**
- * Wait for chart container visible before download data.
- */
- loadLazy: function(data, opts) {
- opts = L.extend({}, this.options.loadData, opts);
- opts.lazy = false;
- let ticking = false;
- let scrollFn = L.bind(function(data) {
- if (!ticking) {
- L.Util.requestAnimFrame(function() {
- if (this._isVisible(this.placeholder)) {
- window.removeEventListener('scroll', scrollFn);
- this.loadData(data, opts);
- this.once('eledata_loaded', function() {
- if (this.placeholder && this.placeholder.parentNode) {
- this.placeholder.parentNode.removeChild(this.placeholder);
- }
- }, this);
- }
- ticking = false;
- }, this);
- ticking = true;
- }
- }, this, data);
- window.addEventListener('scroll', scrollFn);
- if (this.placeholder) this.placeholder.addEventListener('mouseenter', scrollFn, { once: true });
- scrollFn();
- },
-
- /**
- * Create container DOM element and related event listeners.
- * Called on control.addTo(map).
- */
- onAdd: function(map) {
- this._map = map;
-
- let container = this._container = L.DomUtil.create("div", "elevation-control elevation");
-
- if (!this.options.detached) {
- L.DomUtil.addClass(container, 'leaflet-control');
- }
-
- if (this.options.theme) {
- L.DomUtil.addClass(container, this.options.theme); // append theme to control
- }
-
- if (this.options.placeholder && !this._data) {
- this.placeholder = L.DomUtil.create('img', 'elevation-placeholder');
- if (typeof this.options.placeholder === 'string') {
- this.placeholder.src = this.options.placeholder;
- this.placeholder.alt = '';
- } else {
- for (let i in this.options.placeholder) { this.placeholder.setAttribute(i, this.options.placeholder[i]); }
- }
- container.insertBefore(this.placeholder, container.firstChild);
- }
-
- L.Control.Elevation._d3LazyLoader = this._lazyLoadJS(
- 'https://unpkg.com/d3@5.15.0/dist/d3.min.js',
- typeof d3 !== 'object',
- L.Control.Elevation._d3LazyLoader
- ).then(
- function(map, container) {
- this._initToggle(container);
- this._initChart(container);
-
- this._applyData();
-
- this._map.on('zoom viewreset zoomanim', this._hidePositionMarker, this);
- this._map.on('resize', this._resetView, this);
- this._map.on('resize', this._resizeChart, this);
- this._map.on('mousedown', this._resetDrag, this);
-
- this._map.on('eledata_added', this._updateSummary, this);
-
- L.DomEvent.on(this._map._container, 'mousewheel', this._resetDrag, this);
- L.DomEvent.on(this._map._container, 'touchstart', this._resetDrag, this);
-
- }.bind(this, map, container)
- );
-
- return container;
- },
-
- /**
- * Clean up control code and related event listeners.
- * Called on control.remove().
- */
- onRemove: function(map) {
- this._container = null;
- },
-
- /**
- * Redraws the chart control. Sometimes useful after screen resize.
- */
- redraw: function() {
- this._resizeChart();
- },
-
- /**
- * Set default zoom level when "followMarker" is true.
- */
- setZFollow: function(zoom) {
- this._zFollow = zoom;
- },
-
- /**
- * Hide current elevation chart profile.
- */
- show: function() {
- this._container.style.display = "block";
- },
-
- /*
- * Parsing data either from GPX or GeoJSON and update the diagram data
- */
- _addData: function(d) {
- let geom = d && d.geometry;
- let feat = d && d.type === "FeatureCollection";
- let gpx = d && d._latlngs;
-
- if (geom) {
- switch (geom.type) {
- case 'LineString':
- this._addGeoJSONData(geom.coordinates);
- break;
-
- case 'MultiLineString':
- geom.coordinates.forEach(coords => this._addGeoJSONData(coords));
- break;
-
- default:
- console.warn('Unsopperted GeoJSON feature geometry type:' + geom.type);
- }
- }
-
- if (feat) {
- d.features.forEach(feature => this._addData(feature));
- }
-
- if (gpx) {
- this._addGPXdata(d._latlngs);
- }
- },
-
- /*
- * Parsing of GeoJSON data lines and their elevation in z-coordinate
- */
- _addGeoJSONData: function(coords) {
- if (coords) {
- coords.forEach(point => this._addPoint(point[1], point[0], point[2]));
- }
- },
-
- /*
- * Parsing function for GPX data and their elevation in z-coordinate
- */
- _addGPXdata: function(coords) {
- if (coords) {
- coords.forEach(point => this._addPoint(point.lat, point.lng, point.meta.ele));
- }
- },
-
- /*
- * Parse and push a single (x, y, z) point to current elevation profile.
- */
- _addPoint: function(x, y, z) {
- if (this.options.reverseCoords) {
- [x, y] = [y, x];
- }
-
- let data = this._data || [];
- let eleMax = this._maxElevation || -Infinity;
- let eleMin = this._minElevation || +Infinity;
- let dist = this._distance || 0;
-
- let curr = new L.LatLng(x, y);
- let prev = data.length ? data[data.length - 1].latlng : curr;
-
- let delta = curr.distanceTo(prev) * this._distanceFactor;
-
- dist = dist + Math.round(delta / 1000 * 100000) / 100000;
-
- // check and fix missing elevation data on last added point
- if (!this.options.skipNullZCoords && data.length > 0) {
- let prevZ = data[data.length - 1].z;
- if (isNaN(prevZ)) {
- let lastZ = this._lastValidZ;
- let currZ = z * this._heightFactor;
- if (!isNaN(lastZ) && !isNaN(currZ)) {
- prevZ = (lastZ + currZ) / 2;
- } else if (!isNaN(lastZ)) {
- prevZ = lastZ;
- } else if (!isNaN(currZ)) {
- prevZ = currZ;
- }
- if (!isNaN(prevZ)) data[data.length - 1].z = prevZ;
- else data.splice(data.length - 1, 1);
- }
- }
-
- z = z * this._heightFactor;
-
- // skip point if it has not elevation
- if (!isNaN(z)) {
- eleMax = eleMax < z ? z : eleMax;
- eleMin = eleMin > z ? z : eleMin;
- this._lastValidZ = z;
- }
-
- data.push({
- dist: dist,
- x: x,
- y: y,
- z: z,
- latlng: curr
- });
-
- this._data = data;
- this._distance = dist;
- this._maxElevation = eleMax;
- this._minElevation = eleMin;
- },
-
- /**
- * Generate "svg" chart container.
- */
- _appendChart: function(svg) {
- let g = svg
- .append("g")
- .attr("transform", "translate(" + this.options.margins.left + "," + this.options.margins.top + ")");
-
- this._appendGrid(g);
- this._appendAreaPath(g);
- this._appendAxis(g);
- this._appendFocusRect(g);
- this._appendMouseFocusG(g);
- this._appendLegend(g);
- },
-
- /**
- * Adds the control to the given "detached" div.
- */
- _appendElevationDiv: function(container) {
- let eleDiv = document.querySelector(this.options.elevationDiv);
- if (!eleDiv) {
- eleDiv = L.DomUtil.create('div', 'leaflet-control elevation elevation-div');
- this.options.elevationDiv = '#elevation-div_' + Math.random().toString(36).substr(2, 9);
- eleDiv.id = this.options.elevationDiv.substr(1);
- container.parentNode.insertBefore(eleDiv, container.nextSibling); // insert after end of container.
- }
- if (this.options.detached) {
- L.DomUtil.addClass(eleDiv, 'elevation-detached');
- L.DomUtil.removeClass(eleDiv, 'leaflet-control');
- }
- this.eleDiv = eleDiv;
- return this.eleDiv;
- },
-
- /**
- * Generate "x-axis".
- */
- _appendXaxis: function(axis) {
- axis
- .append("g")
- .attr("class", "x axis")
- .attr("transform", "translate(0," + this._height() + ")")
- .call(
- d3
- .axisBottom()
- .scale(this._x)
- .ticks(this.options.xTicks)
- )
- .append("text")
- .attr("x", this._width() + 6)
- .attr("y", 30)
- .text(this._xLabel);
- },
-
- /**
- * Generate "x-grid".
- */
- _appendXGrid: function(grid) {
- grid.append("g")
- .attr("class", "x grid")
- .attr("transform", "translate(0," + this._height() + ")")
- .call(
- d3
- .axisBottom()
- .scale(this._x)
- .ticks(this.options.xTicks)
- .tickSize(-this._height())
- .tickFormat("")
- );
-
- },
-
- /**
- * Generate "y-axis".
- */
- _appendYaxis: function(axis) {
- axis
- .append("g")
- .attr("class", "y axis")
- .call(
- d3
- .axisLeft()
- .scale(this._y)
- .ticks(this.options.yTicks)
- )
- .append("text")
- .attr("x", -30)
- .attr("y", 3)
- .text(this._yLabel);
- },
-
- /**
- * Generate "y-grid".
- */
- _appendYGrid: function(grid) {
- grid.append("g")
- .attr("class", "y grid")
- .call(
- d3
- .axisLeft()
- .scale(this._y)
- .ticks(this.options.yTicks)
- .tickSize(-this._width())
- .tickFormat("")
- );
- },
-
- /**
- * Generate "path".
- */
- _appendAreaPath: function(g) {
- this._areapath = g.append("path")
- .attr("class", "area");
- },
-
- /**
- * Generate "axis".
- */
- _appendAxis: function(g) {
- this._axis = g.append("g")
- .attr("class", "axis");
- this._appendXaxis(this._axis);
- this._appendYaxis(this._axis);
- },
-
- /**
- * Generate "mouse-focus" and "drag-rect".
- */
- _appendFocusRect: function(g) {
- let focusRect = this._focusRect = g.append("rect")
- .attr("width", this._width())
- .attr("height", this._height())
- .style("fill", "none")
- .style("stroke", "none")
- .style("pointer-events", "all");
-
- if (L.Browser.mobile) {
- focusRect
- .on("touchmove.drag", this._dragHandler.bind(this))
- .on("touchstart.drag", this._dragStartHandler.bind(this))
- .on("touchstart.focus", this._mousemoveHandler.bind(this))
- .on("touchmove.focus", this._mousemoveHandler.bind(this));
- L.DomEvent.on(this._container, 'touchend', this._dragEndHandler, this);
- }
-
- focusRect
- .on("mousemove.drag", this._dragHandler.bind(this))
- .on("mousedown.drag", this._dragStartHandler.bind(this))
- .on("mouseenter.focus", this._mouseenterHandler.bind(this))
- .on("mousemove.focus", this._mousemoveHandler.bind(this))
- .on("mouseout.focus", this._mouseoutHandler.bind(this));
- L.DomEvent.on(this._container, 'mouseup', this._dragEndHandler, this);
- },
-
- /**
- * Generate "grid".
- */
- _appendGrid: function(g) {
- this._grid = g.append("g")
- .attr("class", "grid");
- this._appendXGrid(this._grid);
- this._appendYGrid(this._grid);
- },
-
- /**
- * Generate "mouse-focus".
- */
- _appendMouseFocusG: function(g) {
- let focusG = this._focusG = g.append("g")
- .attr("class", "mouse-focus-group");
-
- this._mousefocus = focusG.append('svg:line')
- .attr('class', 'mouse-focus-line')
- .attr('x2', '0')
- .attr('y2', '0')
- .attr('x1', '0')
- .attr('y1', '0');
-
- this._focuslabelrect = focusG.append("rect")
- .attr('class', 'mouse-focus-label')
- .attr("x", 0)
- .attr("y", 0)
- .attr("width", 0)
- .attr("height", 0)
- .attr("rx", 3)
- .attr("ry", 3);
-
- this._focuslabeltext = focusG.append("svg:text")
- .attr("class", "mouse-focus-label-text");
- this._focuslabelY = this._focuslabeltext.append("svg:tspan")
- .attr("class", "mouse-focus-label-y")
- .attr("dy", "-1em");
- this._focuslabelX = this._focuslabeltext.append("svg:tspan")
- .attr("class", "mouse-focus-label-x")
- .attr("dy", "2em");
- },
-
- /**
- * Generate "legend".
- */
- _appendLegend: function(g) {
- if (!this.options.legend) return;
-
- let legend = this._legend = g.append('g')
- .attr("class", "legend");
-
- let altitude = this._altitudeLegend = this._legend.append('g')
- .attr("class", "legend-altitude");
-
- altitude.append("rect")
- .attr("class", "area")
- .attr("x", (this._width() / 2) - 50)
- .attr("y", this._height() + this.options.margins.bottom - 17)
- .attr("width", 50)
- .attr("height", 5)
- .attr("opacity", 0.75);
-
- altitude.append('text')
- .text(L._('Altitude'))
- .attr("x", (this._width() / 2) + 5)
- .attr("font-size", 10)
- .style("text-decoration-thickness", "2px")
- .style("font-weight", "700")
- .attr('y', this._height() + this.options.margins.bottom - 11);
-
- // autotoggle chart data on single click
- legend.on('click', function() {
- if (this._chartEnabled) {
- this._clearChart();
- this._clearPath();
- this._chartEnabled = false;
- } else {
- this._resizeChart();
- for (let id in this._layers) {
- L.DomUtil.addClass(this._layers[id]._path, this.options.polyline.className + ' ' + this.options.theme);
- }
- this._chartEnabled = true;
- }
- }.bind(this));
-
- },
-
- /**
- * Generate "svg:line".
- */
- _appendPositionMarker: function(pane) {
- let theme = this.options.theme;
- let heightG = pane.select("g");
-
- this._mouseHeightFocus = heightG.append('svg:line')
- .attr("class", theme + " height-focus line")
- .attr("x2", 0)
- .attr("y2", 0)
- .attr("x1", 0)
- .attr("y1", 0);
-
- this._pointG = heightG.append("g");
- this._pointG.append("svg:circle")
- .attr("class", theme + " height-focus circle-lower")
- .attr("r", 6)
- .attr("cx", 0)
- .attr("cy", 0);
-
- this._mouseHeightFocusLabel = heightG.append("svg:text")
- .attr("class", theme + " height-focus-label")
- .style("pointer-events", "none");
- },
-
- /**
- * Calculates [x, y] domain and then update chart.
- */
- _applyData: function() {
- if (!this._data) return;
-
- let xdomain = d3.extent(this._data, d => d.dist);
- let ydomain = d3.extent(this._data, d => d.z);
- let opts = this.options;
-
- if (opts.yAxisMin !== undefined && (opts.yAxisMin < ydomain[0] || opts.forceAxisBounds)) {
- ydomain[0] = opts.yAxisMin;
- }
- if (opts.yAxisMax !== undefined && (opts.yAxisMax > ydomain[1] || opts.forceAxisBounds)) {
- ydomain[1] = opts.yAxisMax;
- }
-
- this._x.domain(xdomain);
- this._y.domain(ydomain);
- this._areapath.datum(this._data)
- .attr("d", this._area);
- this._updateAxis();
-
- this._fullExtent = this._calculateFullExtent(this._data);
- },
-
- /*
- * Calculates the full extent of the data array
- */
- _calculateFullExtent: function(data) {
- if (!data || data.length < 1) {
- throw new Error("no data in parameters");
- }
-
- let ext = new L.latLngBounds(data[0].latlng, data[0].latlng);
-
- data.forEach(item => ext.extend(item.latlng));
-
- return ext;
- },
-
- /*
- * Reset chart.
- */
- _clearChart: function() {
- this._resetDrag();
- if (this._areapath) {
- // workaround for 'Error: Problem parsing d=""' in Webkit when empty data
- // https://groups.google.com/d/msg/d3-js/7rFxpXKXFhI/HzIO_NPeDuMJ
- //this._areapath.datum(this._data).attr("d", this._area);
- this._areapath.attr("d", "M0 0");
-
- this._x.domain([0, 1]);
- this._y.domain([0, 1]);
- this._updateAxis();
- }
- if (this._altitudeLegend) {
- this._altitudeLegend.select('text').style("text-decoration-line", "line-through");
- }
- },
-
- /*
- * Reset data.
- */
- _clearData: function() {
- this._data = null;
- this._distance = null;
- this._maxElevation = null;
- this._minElevation = null;
- this.track_info = null;
- this._layers = null;
- // if (this.layer) {
- // this.layer.removeFrom(this._map);
- // }
- },
-
- /*
- * Reset path.
- */
- _clearPath: function() {
- this._hidePositionMarker();
- for (let id in this._layers) {
- L.DomUtil.removeClass(this._layers[id]._path, this.options.polyline.className);
- L.DomUtil.removeClass(this._layers[id]._path, this.options.theme);
- }
- },
-
- /*
- * Collapse current chart control.
- */
- _collapse: function() {
- if (this._container) {
- L.DomUtil.removeClass(this._container, 'elevation-expanded');
- L.DomUtil.addClass(this._container, 'elevation-collapsed');
- }
- },
-
- /**
- * Recursive deep merge objects.
- * Alternative to L.Util.setOptions(this, options).
- */
- _deepMerge: function(target, ...sources) {
- if (!sources.length) return target;
- const source = sources.shift();
- if (this._isObject(target) && this._isObject(source)) {
- for (const key in source) {
- if (this._isObject(source[key])) {
- if (!target[key]) Object.assign(target, {
- [key]: {}
- });
- this._deepMerge(target[key], source[key]);
- } else {
- Object.assign(target, {
- [key]: source[key]
- });
- }
- }
- }
- return this._deepMerge(target, ...sources);
- },
-
- /*
- * Handle drag operations.
- */
- _dragHandler: function() {
- //we don't want map events to occur here
- d3.event.preventDefault();
- d3.event.stopPropagation();
-
- this._gotDragged = true;
- this._drawDragRectangle();
- },
-
- /*
- * Handles end of drag operations. Zooms the map to the selected items extent.
- */
- _dragEndHandler: function() {
- if (!this._dragStartCoords || !this._dragCurrentCoords || !this._gotDragged) {
- this._dragStartCoords = null;
- this._gotDragged = false;
- if (this._draggingEnabled) this._resetDrag();
- return;
- }
-
- let item1 = this._findItemForX(this._dragStartCoords[0]);
- let item2 = this._findItemForX(this._dragCurrentCoords[0]);
-
- if (item1 == item2) return;
-
- this._hidePositionMarker();
-
- this._fitSection(item1, item2);
-
- this._dragStartCoords = null;
- this._gotDragged = false;
-
- this._fireEvt("elechart_dragged", { data: { dragstart: this._data[item1], dragend: this._data[item2] } }, true);
- },
-
- /*
- * Handles start of drag operations.
- */
- _dragStartHandler: function() {
- d3.event.preventDefault();
- d3.event.stopPropagation();
-
- this._gotDragged = false;
- this._dragStartCoords = d3.mouse(this._focusRect.node());
- },
-
- /*
- * Draws the currently dragged rectangle over the chart.
- */
- _drawDragRectangle: function() {
- if (!this._dragStartCoords || !this._draggingEnabled) {
- return;
- }
-
- let dragEndCoords = this._dragCurrentCoords = d3.mouse(this._focusRect.node());
-
- let x1 = Math.min(this._dragStartCoords[0], dragEndCoords[0]);
- let x2 = Math.max(this._dragStartCoords[0], dragEndCoords[0]);
-
- if (!this._dragRectangle && !this._dragRectangleG) {
- let g = d3.select(this._container).select("svg").select("g");
-
- this._dragRectangleG = g.insert("g", ".mouse-focus-group");
-
- this._dragRectangle = this._dragRectangleG.append("rect")
- .attr("width", x2 - x1)
- .attr("height", this._height())
- .attr("x", x1)
- .attr('class', 'mouse-drag')
- .style("pointer-events", "none");
- } else {
- this._dragRectangle.attr("width", x2 - x1)
- .attr("x", x1);
- }
- },
-
- /*
- * Expand current chart control.
- */
- _expand: function() {
- if (this._container) {
- L.DomUtil.removeClass(this._container, 'elevation-collapsed');
- L.DomUtil.addClass(this._container, 'elevation-expanded');
- }
- },
-
- /*
- * Finds an item with the smallest delta in distance to the given latlng coords
- */
- _findItemForLatLng: function(latlng) {
- let result = null;
- let d = Infinity;
- this._data.forEach(item => {
- let dist = latlng.distanceTo(item.latlng);
- if (dist < d) {
- d = dist;
- result = item;
- }
- });
- return result;
- },
-
- /*
- * Finds a data entry for a given x-coordinate of the diagram
- */
- _findItemForX: function(x) {
- let data = this._data ? this._data : [0, 1];
- let bisect = d3.bisector(d => d.dist).left;
- let xinvert = this._x.invert(x);
- return bisect(data, xinvert);
- },
-
- /**
- * Fires an event of the specified type.
- */
- _fireEvt: function(type, data, propagate) {
- if (this.fire) {
- this.fire(type, data, propagate);
- }
- if (this._map) {
- this._map.fire(type, data, propagate);
- }
- },
-
- /**
- * Make the map fit the route section between given indexes.
- */
- _fitSection: function(index1, index2) {
- let start = Math.min(index1, index2);
- let end = Math.max(index1, index2);
- let ext = this._calculateFullExtent(this._data.slice(start, end));
- this.fitBounds(ext);
- },
-
- /*
- * Fromatting funciton using the given decimals and seperator
- */
- _formatter: function(num, dec, sep) {
- let res = L.Util.formatNum(num, dec).toString();
- let numbers = res.split(".");
- if (numbers[1]) {
- for (let d = dec - numbers[1].length; d > 0; d--) {
- numbers[1] += "0";
- }
- res = numbers.join(sep || ".");
- }
- return res;
- },
-
- /**
- * Calculates chart height.
- */
- _height: function() {
- let opts = this.options;
- return opts.height - opts.margins.top - opts.margins.bottom;
- },
-
- /*
- * Hides the position/height indicator marker drawn onto the map
- */
- _hidePositionMarker: function() {
- if (!this.options.autohideMarker) {
- return;
- }
-
- this._selectedItem = null;
-
- if (this._marker) {
- if (this._map) this._map.removeLayer(this._marker);
- this._marker = null;
- }
- if (this._mouseHeightFocus) {
- this._mouseHeightFocus.style("visibility", "hidden");
- this._mouseHeightFocusLabel.style("visibility", "hidden");
- }
- if (this._pointG) {
- this._pointG.style("visibility", "hidden");
- }
- if (this._focusG) {
- this._focusG.style("visibility", "hidden");
- }
- },
-
- /**
- * Generate "svg" chart DOM element.
- */
- _initChart: function() {
- let opts = this.options;
- opts.xTicks = opts.xTicks || Math.round(this._width() / 75);
- opts.yTicks = opts.yTicks || Math.round(this._height() / 30);
- opts.hoverNumber.formatter = opts.hoverNumber.formatter || this._formatter;
-
- if (opts.responsive) {
- if (opts.detached) {
- let offWi = this.eleDiv.offsetWidth;
- let offHe = this.eleDiv.offsetHeight;
- opts.width = offWi > 0 ? offWi : opts.width;
- opts.height = (offHe - 20) > 0 ? offHe - 20 : opts.height; // 20 = horizontal scrollbar size.
- } else {
- opts._maxWidth = opts._maxWidth > opts.width ? opts._maxWidth : opts.width;
- let containerWidth = this._map._container.clientWidth;
- opts.width = opts._maxWidth > containerWidth ? containerWidth - 30 : opts.width;
- }
- }
-
- let x = this._x = d3.scaleLinear().range([0, this._width()]);
- let y = this._y = d3.scaleLinear().range([this._height(), 0]);
-
- let interpolation = typeof opts.interpolation === 'function' ? opts.interpolation : d3[opts.interpolation];
-
- let area = this._area = d3.area().curve(interpolation)
- .x(d => (d.xDiagCoord = x(d.dist)))
- .y0(this._height())
- .y1(d => y(d.z));
- let line = this._line = d3.line()
- .x(d => d3.mouse(svg.select("g"))[0])
- .y(d => this._height());
-
- let container = d3.select(this._container);
-
- let svg = container.append("svg")
- .attr("class", "background")
- .attr("width", opts.width)
- .attr("height", opts.height);
-
- let summary = this.summaryDiv = container.append("div")
- .attr("class", "elevation-summary " + this.options.summary + "-summary").node();
-
- this._appendChart(svg);
- this._updateSummary();
-
- },
-
- /**
- * Inspired by L.Control.Layers
- */
- _initToggle: function(container) {
- //Makes this work on IE10 Touch devices by stopping it from firing a mouseout event when the touch is released
- container.setAttribute('aria-haspopup', true);
-
- if (!this.options.detached) {
- L.DomEvent
- .disableClickPropagation(container);
- //.disableScrollPropagation(container);
- }
-
- if (L.Browser.mobile) {
- L.DomEvent.on(container, 'click', L.DomEvent.stopPropagation);
- }
-
- L.DomEvent.on(container, 'mousewheel', this._mousewheelHandler, this);
-
- if (!this.options.detached) {
- let iconCssClass = "elevation-toggle " + this.options.controlButton.iconCssClass + (this.options.autohide ? "" : " close-button");
- let link = this._button = L.DomUtil.create('a', iconCssClass, container);
- link.href = '#';
- link.title = this.options.controlButton.title;
-
- if (this.options.collapsed) {
- this._collapse();
- if (this.options.autohide) {
- L.DomEvent
- .on(container, 'mouseover', this._expand, this)
- .on(container, 'mouseout', this._collapse, this);
- } else {
- L.DomEvent
- .on(link, 'click', L.DomEvent.stop)
- .on(link, 'click', this._toggle, this);
- }
-
- L.DomEvent.on(link, 'focus', this._toggle, this);
-
- this._map.on('click', this._collapse, this);
- // TODO: keyboard accessibility
- }
- }
- },
-
- /**
- * Check object type.
- */
- _isObject: function(item) {
- return (item && typeof item === 'object' && !Array.isArray(item));
- },
-
- /**
- * Check JSON object type.
- */
- _isJSONDoc: function(doc, lazy) {
- lazy = typeof lazy === "undefined" ? true : lazy;
- if (typeof doc === "string" && lazy) {
- doc = doc.trim();
- return doc.indexOf("{") == 0 || doc.indexOf("[") == 0;
- } else {
- try {
- JSON.parse(doc.toString());
- } catch (e) {
- if (typeof doc === "object" && lazy) return true;
- console.warn(e);
- return false;
- }
- return true;
- }
- },
-
- /**
- * Check XML object type.
- */
- _isXMLDoc: function(doc, lazy) {
- lazy = typeof lazy === "undefined" ? true : lazy;
- if (typeof doc === "string" && lazy) {
- doc = doc.trim();
- return doc.indexOf("<") == 0;
- } else {
- let documentElement = (doc ? doc.ownerDocument || doc : 0).documentElement;
- return documentElement ? documentElement.nodeName !== "HTML" : false;
- }
- },
-
- /**
- * Check DOM element visibility.
- */
- _isDomVisible: function(elem) {
- return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
- },
-
- /**
- * Check DOM element viewport visibility.
- */
- _isVisible: function(elem) {
- if (!elem) return false;
-
- let styles = window.getComputedStyle(elem);
-
- function isVisibleByStyles(elem, styles) {
- return styles.visibility !== 'hidden' && styles.display !== 'none';
- }
-
- function isAboveOtherElements(elem, styles) {
- let boundingRect = elem.getBoundingClientRect();
- let left = boundingRect.left + 1;
- let right = boundingRect.right - 1;
- let top = boundingRect.top + 1;
- let bottom = boundingRect.bottom - 1;
- let above = true;
-
- let pointerEvents = elem.style.pointerEvents;
-
- if (styles['pointer-events'] == 'none') elem.style.pointerEvents = 'auto';
-
- if (document.elementFromPoint(left, top) !== elem) above = false;
- if (document.elementFromPoint(right, top) !== elem) above = false;
-
- // Only for completely visible elements
- // if (document.elementFromPoint(left, bottom) !== elem) above = false;
- // if (document.elementFromPoint(right, bottom) !== elem) above = false;
-
- elem.style.pointerEvents = pointerEvents;
-
- return above;
- }
-
- if (!isVisibleByStyles(elem, styles)) return false;
- if (!isAboveOtherElements(elem, styles)) return false;
- return true;
- },
-
- /**
- * Async JS script download.
- */
- _lazyLoadJS: function(url, skip, loader) {
- if (skip === false || !this.options.lazyLoadJS) {
- return Promise.resolve();
- }
- if (loader instanceof Promise) {
- return loader;
- }
- return new Promise((resolve, reject) => {
- let tag = document.createElement("script");
- tag.addEventListener('load', resolve, { once: true });
- tag.src = url;
- document.head.appendChild(tag);
- });
- },
-
- /*
- * Handles the moueseenter over the chart.
- */
- _mouseenterHandler: function() {
- this._fireEvt("elechart_enter", null, true);
- },
-
- /*
- * Handles the moueseover the chart and displays distance and altitude level.
- */
- _mousemoveHandler: function(d, i, ctx) {
- if (!this._data || this._data.length === 0 || !this._chartEnabled) {
- return;
- }
- let coords = d3.mouse(this._focusRect.node());
- let xCoord = coords[0];
- let item = this._data[this._findItemForX(xCoord)];
-
- this._hidePositionMarker();
- this._showDiagramIndicator(item, xCoord);
- this._showPositionMarker(item);
- this._setMapView(item);
-
- if (this._map && this._map._container) {
- L.DomUtil.addClass(this._map._container, 'elechart-hover');
- }
-
- this._fireEvt("elechart_change", { data: item }, true);
- this._fireEvt("elechart_hover", { data: item }, true);
- },
-
- /*
- * Handles mouseover events of the data layers on the map.
- */
- _mousemoveLayerHandler: function(e) {
- if (!this._data || this._data.length === 0) {
- return;
- }
- let latlng = e.latlng;
- let item = this._findItemForLatLng(latlng);
- if (item) {
- let xCoord = item.xDiagCoord;
-
- this._hidePositionMarker();
- this._showDiagramIndicator(item, xCoord);
- this._showPositionMarker(item);
- }
- },
-
- /*
- * Handles the moueseout over the chart.
- */
- _mouseoutHandler: function() {
- if (!this.options.detached) {
- this._hidePositionMarker();
- }
-
- if (this._map && this._map._container) {
- L.DomUtil.removeClass(this._map._container, 'elechart-hover');
- }
-
- this._fireEvt("elechart_leave", null, true);
- },
-
- /*
- * Handles the mouesewheel over the chart.
- */
- _mousewheelHandler: function(e) {
- if (this._map.gestureHandling && this._map.gestureHandling._enabled) return;
- let ll = this._selectedItem ? this._selectedItem.latlng : this._map.getCenter();
- let z = e.deltaY > 0 ? this._map.getZoom() - 1 : this._map.getZoom() + 1;
- this._resetDrag();
- this._map.flyTo(ll, z);
-
- },
-
- /*
- * Removes the drag rectangle and zoms back to the total extent of the data.
- */
- _resetDrag: function() {
- if (this._dragRectangleG) {
- this._dragRectangleG.remove();
- this._dragRectangleG = null;
- this._dragRectangle = null;
- this._hidePositionMarker();
- }
- },
-
- /**
- * Resets drag, marker and bounds.
- */
- _resetView: function() {
- if (this._map && this._map._isFullscreen) return;
- this._resetDrag();
- this._hidePositionMarker();
- this.fitBounds(this._fullExtent);
- },
-
- /**
- * Hacky way for handling chart resize. Deletes it and redraw chart.
- */
- _resizeChart: function() {
- if (this.options.responsive) {
- if (this.options.detached) {
- let newWidth = this.eleDiv.offsetWidth; // - 20;
-
- if (newWidth <= 0) return;
-
- this.options.width = newWidth;
- this.eleDiv.innerHTML = "";
- this.eleDiv.appendChild(this.onAdd(this._map));
- } else {
- this._map.removeControl(this._container);
- this.addTo(this._map);
- }
- }
- },
-
- /**
- * Generate GPX / GeoJSON download event.
- */
- _saveFile: function(fileUrl) {
- let d = document,
- a = d.createElement('a'),
- b = d.body;
- a.href = fileUrl;
- a.target = '_new';
- a.download = ""; // fileName
- a.style.display = 'none';
- b.appendChild(a);
- a.click();
- b.removeChild(a);
- },
-
- /**
- * Display distance and altitude level ("focus-rect").
- */
- _showDiagramIndicator: function(item, xCoordinate) {
- if (!this._chartEnabled) return;
-
- let opts = this.options;
- this._focusG.style("visibility", "visible");
-
- this._mousefocus.attr('x1', xCoordinate)
- .attr('y1', 0)
- .attr('x2', xCoordinate)
- .attr('y2', this._height())
- .classed('hidden', false);
-
- let alt = item.z,
- dist = item.dist,
- ll = item.latlng,
- numY = opts.hoverNumber.formatter(alt, opts.hoverNumber.decimalsY),
- numX = opts.hoverNumber.formatter(dist, opts.hoverNumber.decimalsX);
-
- this._focuslabeltext
- // .attr("x", xCoordinate)
- .attr("y", this._y(item.z))
- .style("font-weight", "700");
-
- this._focuslabelX
- .text(numX + " " + this._xLabel)
- .attr("x", xCoordinate + 10);
-
- this._focuslabelY
- .text(numY + " " + this._yLabel)
- .attr("x", xCoordinate + 10);
-
- let focuslabeltext = this._focuslabeltext.node();
- if (this._isDomVisible(focuslabeltext)) {
- let bbox = focuslabeltext.getBBox();
- let padding = 2;
-
- this._focuslabelrect
- .attr("x", bbox.x - padding)
- .attr("y", bbox.y - padding)
- .attr("width", bbox.width + (padding * 2))
- .attr("height", bbox.height + (padding * 2));
-
- // move focus label to left
- if (xCoordinate >= this._width() / 2) {
- this._focuslabelrect.attr("x", this._focuslabelrect.attr("x") - this._focuslabelrect.attr("width") - (padding * 2) - 10);
- this._focuslabelX.attr("x", this._focuslabelX.attr("x") - this._focuslabelrect.attr("width") - (padding * 2) - 10);
- this._focuslabelY.attr("x", this._focuslabelY.attr("x") - this._focuslabelrect.attr("width") - (padding * 2) - 10);
- }
- }
-
- },
-
- /**
- * Collapse or Expand current chart control.
- */
- _toggle: function() {
- if (L.DomUtil.hasClass(this._container, "elevation-expanded"))
- this._collapse();
- else
- this._expand();
- },
-
- /**
- * Sets the view of the map (center and zoom). Useful when "followMarker" is true.
- */
- _setMapView: function(item) {
- if (!this.options.followMarker || !this._map) return;
- let zoom = this._map.getZoom();
- zoom = zoom < this._zFollow ? this._zFollow : zoom;
- this._map.setView(item.latlng, zoom, { animate: true, duration: 0.25 });
- },
-
- /*
- * Shows the position/height indicator marker drawn onto the map
- */
- _showPositionMarker: function(item) {
- this._selectedItem = item;
-
- if (this._map && !this._map.getPane('elevationPane')) {
- this._map.createPane('elevationPane');
- this._map.getPane('elevationPane').style.zIndex = 625; // This pane is above markers but below popups.
- this._map.getPane('elevationPane').style.pointerEvents = 'none';
- }
-
- if (this.options.marker == 'elevation-line') {
- this._updatePositionMarker(item);
- } else if (this.options.marker == 'position-marker') {
- this._updateLeafletMarker(item);
- }
- },
-
- /**
- * Update chart axis.
- */
- _updateAxis: function() {
- this._grid.selectAll("g").remove();
- this._axis.selectAll("g").remove();
- this._appendXGrid(this._grid);
- this._appendYGrid(this._grid);
- this._appendXaxis(this._axis);
- this._appendYaxis(this._axis);
- },
-
- /**
- * Update distance and altitude level ("leaflet-marker").
- */
- _updateHeightIndicator: function(item) {
- let opts = this.options;
-
- let numY = opts.hoverNumber.formatter(item.z, opts.hoverNumber.decimalsY);
- let numX = opts.hoverNumber.formatter(item.dist, opts.hoverNumber.decimalsX);
-
- let normalizedAlt = this._height() / this._maxElevation * item.z;
- let normalizedY = item.y - normalizedAlt;
-
- this._mouseHeightFocus
- .attr("x1", item.x)
- .attr("x2", item.x)
- .attr("y1", item.y)
- .attr("y2", normalizedY)
- .style("visibility", "visible");
-
- this._mouseHeightFocusLabel
- .attr("x", item.x)
- .attr("y", normalizedY)
- .text(numY + " " + this._yLabel)
- .style("visibility", "visible");
- },
-
- /**
- * Update position marker ("leaflet-marker").
- */
- _updateLeafletMarker: function(item) {
- let ll = item.latlng;
-
- if (!this._marker) {
- this._marker = new L.Marker(ll, {
- icon: this.options.markerIcon,
- zIndexOffset: 1000000,
- });
- this._marker.addTo(this._map, {
- pane: 'elevationPane',
- });
- } else {
- this._marker.setLatLng(ll);
- }
- },
-
- /**
- * Update focus point ("leaflet-marker").
- */
- _updatePointG: function(item) {
- this._pointG
- .attr("transform", "translate(" + item.x + "," + item.y + ")")
- .style("visibility", "visible");
- },
-
- /**
- * Update position marker ("leaflet-marker").
- */
- _updatePositionMarker: function(item) {
- let point = this._map.latLngToLayerPoint(item.latlng);
- let layerpoint = {
- dist: item.dist,
- x: point.x,
- y: point.y,
- z: item.z,
- };
-
- if (!this._mouseHeightFocus) {
- L.svg({ pane: "elevationPane" }).addTo(this._map); // default leaflet svg renderer
- let layerpane = d3.select(this._map.getContainer()).select(".leaflet-elevation-pane svg");
- this._appendPositionMarker(layerpane);
- }
-
- this._updatePointG(layerpoint);
- this._updateHeightIndicator(layerpoint);
- },
-
- /**
- * Update chart summary.
- */
- _updateSummary: function() {
- if (this.options.summary && this.summaryDiv) {
- this.track_info = this.track_info || {};
- this.track_info.distance = this._distance || 0;
- this.track_info.elevation_max = this._maxElevation || 0;
- this.track_info.elevation_min = this._minElevation || 0;
- d3.select(this.summaryDiv).html('' + L._("Total Length: ") + '' + this.track_info.distance.toFixed(2) + ' ' + this._xLabel + '' + L._("Max Elevation: ") + '' + this.track_info.elevation_max.toFixed(2) + ' ' + this._yLabel + '' + L._("Min Elevation: ") + '' + this.track_info.elevation_min.toFixed(2) + ' ' + this._yLabel + '');
- }
- if (this.options.downloadLink && this._downloadURL) { // TODO: generate dynamically file content instead of using static file urls.
- let span = document.createElement('span');
- span.className = 'download';
- let save = document.createElement('a');
- save.innerHTML = "Télécharger"; //modif
- save.href = "#";
- save.onclick = function(e) {
- e.preventDefault();
- let evt = { confirm: this._saveFile.bind(this, this._downloadURL) };
- let type = this.options.downloadLink;
- if (type == 'modal') {
- if (typeof CustomEvent === "function") document.dispatchEvent(new CustomEvent("eletrack_download", { detail: evt }));
- this._fireEvt('eletrack_download', evt);
- } else if (type == 'link' || type === true) {
- evt.confirm();
- }
- }.bind(this);
-
- this.summaryDiv.appendChild(span).appendChild(save);
- }
- },
-
- /**
- * Calculates chart width.
- */
- _width: function() {
- let opts = this.options;
- return opts.width - opts.margins.left - opts.margins.right;
- },
-
- });
-
- L.control.elevation = function(options) {
- return new L.Control.Elevation(options);
- };
-
-})));
-//# sourceMappingURL=leaflet-elevation.js.map
diff --git a/core/vendor/geolocation/leaflet/leaflet-omnivore.min.js b/core/vendor/geolocation/leaflet/leaflet-omnivore.min.js
deleted file mode 100644
index 1b62dce..0000000
--- a/core/vendor/geolocation/leaflet/leaflet-omnivore.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-
-!function(n){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.omnivore=n()}}(function(){var e;return function r(n,e,t){function o(u,a){if(!e[u]){if(!n[u]){var s="function"==typeof require&&require;if(!a&&s)return s(u,!0);if(i)return i(u,!0);throw new Error("Cannot find module '"+u+"'")}var f=e[u]={exports:{}};n[u][0].call(f.exports,function(e){var r=n[u][1][e];return o(r?r:e)},f,f.exports,r,n,e,t)}return e[u].exports}for(var i="function"==typeof require&&require,u=0;u0)){var t=r.shift();t()}},!0),function(n){r.push(n),window.postMessage("process-tick","*")}}return function(n){setTimeout(n,0)}}(),t.title="browser",t.browser=!0,t.env={},t.argv=[],t.on=r,t.addListener=r,t.once=r,t.off=r,t.removeListener=r,t.removeAllListeners=r,t.emit=r,t.binding=function(){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(){throw new Error("process.chdir is not supported")}},{}],5:[function(n,e){function r(n,e,r){function t(n){return n>=200&&300>n||304===n}function o(){void 0===a.status||t(a.status)?e.call(a,null,a):e.call(a,a,null)}var i=!1;if("undefined"==typeof window.XMLHttpRequest)return e(Error("Browser not supported"));if("undefined"==typeof r){var u=n.match(/^\s*https?:\/\/[^\/]*/);r=u&&u[0]!==location.protocol+"//"+location.domain+(location.port?":"+location.port:"")}var a=new window.XMLHttpRequest;if(r&&!("withCredentials"in a)){a=new window.XDomainRequest;var s=e;e=function(){if(i)s.apply(this,arguments);else{var n=this,e=arguments;setTimeout(function(){s.apply(n,e)},0)}}}return"onload"in a?a.onload=o:a.onreadystatechange=function(){4===a.readyState&&o()},a.onerror=function(n){e.call(this,n||!0,null),e=function(){}},a.onprogress=function(){},a.ontimeout=function(n){e.call(this,n,null),e=function(){}},a.onabort=function(n){e.call(this,n,null),e=function(){}},a.open("GET",n,!0),a.send(null),i=!0,a}"undefined"!=typeof e&&(e.exports=r)},{}],6:[function(n,e){function r(n){return!!n.match(/(Lat)(itude)?/gi)}function t(n){return!!n.match(/(L)(on|ng)(gitude)?/i)}function o(n){return"object"==typeof n?Object.keys(n).length:0}function i(n){var e=[",",";"," ","|"],r=[];return e.forEach(function(e){var t=c(e).parse(n);if(t.length>=1){for(var i=o(t[0]),u=0;u= N) return EOF; // special case: end of file\n if (eol) return eol = false, EOL; // special case: end of line\n\n // special case: quotes\n var j = I;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n var c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.substring(j + 1, i).replace(/""/g, "\\"");\n }\n\n // common case: find next delimiter or newline\n while (I < N) {\n var c = text.charCodeAt(I++), k = 1;\n if (c === 10) eol = true; // \\n\n else if (c === 13) { eol = true; if (text.charCodeAt(I) === 10) ++I, ++k; } // \\r|\\r\\n\n else if (c !== delimiterCode) continue;\n return text.substring(j, I - k);\n }\n\n // special case: last token before EOF\n return text.substring(j);\n }\n\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && !(a = f(a, n++))) continue;\n rows.push(a);\n }\n\n return rows;\n };\n\n dsv.format = function(rows) {\n if (Array.isArray(rows[0])) return dsv.formatRows(rows); // deprecated; use formatRows\n var fieldSet = {}, fields = [];\n\n // Compute unique fields in order of discovery.\n rows.forEach(function(row) {\n for (var field in row) {\n if (!(field in fieldSet)) {\n fields.push(fieldSet[field] = field);\n }\n }\n });\n\n return [fields.map(formatValue).join(delimiter)].concat(rows.map(function(row) {\n return fields.map(function(field) {\n return formatValue(row[field]);\n }).join(delimiter);\n })).join("\\n");\n };\n\n dsv.formatRows = function(rows) {\n return rows.map(formatRow).join("\\n");\n };\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(text) {\n return reFormat.test(text) ? "\\"" + text.replace(/\\"/g, "\\"\\"") + "\\"" : text;\n }\n\n return dsv;\n}\n;return dsv')()},{fs:2}],8:[function(n,e){e.exports=function(n,e){if(e||(e="NSEW"),"string"!=typeof n)return null;var r=/^([0-9.]+)°? *(?:([0-9.]+)['’′‘] *)?(?:([0-9.]+)(?:''|"|”|″) *)?([NSEW])?/,t=n.match(r);return t?t[4]&&-1===e.indexOf(t[4])?null:((t[1]?parseFloat(t[1]):0)+(t[2]?parseFloat(t[2])/60:0)+(t[3]?parseFloat(t[3])/3600:0))*(t[4]&&"S"===t[4]||"W"===t[4]?-1:1):null}},{}],9:[function(n,e,r){(function(t){toGeoJSON=function(){"use strict";function e(n){if(!n||!n.length)return 0;for(var e=0,r=0;ee?~e:e],o=t[0];return n.transform?(r=[0,0],t.forEach(function(n){r[0]+=n[0],r[1]+=n[1]})):r=t[t.length-1],0>e?[r,o]:[o,r]}function t(n,e){for(var r in n){var t=n[r];delete e[t.start],delete t.start,delete t.end,t.forEach(function(n){o[0>n?~n:n]=1}),a.push(t)}}var o={},i={},u={},a=[],s=-1;return e.forEach(function(r,t){var o,i=n.arcs[0>r?~r:r];i.length<3&&!i[1][0]&&!i[1][1]&&(o=e[++s],e[s]=r,e[t]=o)}),e.forEach(function(n){var e,t,o=r(n),a=o[0],s=o[1];if(e=u[a])if(delete u[e.end],e.push(n),e.end=s,t=i[s]){delete i[t.start];var f=t===e?e:e.concat(t);i[f.start=e.start]=u[f.end=t.end]=f}else i[e.start]=u[e.end]=e;else if(e=i[s])if(delete i[e.start],e.unshift(n),e.start=a,t=u[a]){delete u[t.end];var c=t===e?e:t.concat(e);i[c.start=t.start]=u[c.end=e.end]=c}else i[e.start]=u[e.end]=e;else e=[n],i[e.start=a]=u[e.end=s]=e}),t(u,i),t(i,u),e.forEach(function(n){o[0>n?~n:n]||a.push([n])}),a}function o(n,e,t){function o(n){var e=0>n?~n:n;(c[e]||(c[e]=[])).push({i:n,g:f})}function i(n){n.forEach(o)}function u(n){n.forEach(i)}function a(n){"GeometryCollection"===n.type?n.geometries.forEach(a):n.type in l&&(f=n,l[n.type](n.arcs))}var s=[];if(arguments.length>1){var f,c=[],l={LineString:i,MultiLineString:u,Polygon:u,MultiPolygon:function(n){n.forEach(u)}};a(e),c.forEach(arguments.length<3?function(n){s.push(n[0].i)}:function(n){t(n[0].g,n[n.length-1].g)&&s.push(n[0].i)})}else for(var p=0,d=n.arcs.length;d>p;++p)s.push(p);return{type:"MultiLineString",arcs:r(n,s)}}function i(e,t){function o(n){n.forEach(function(e){e.forEach(function(e){(u[e=0>e?~e:e]||(u[e]=[])).push(n)})}),a.push(n)}function i(n){return d(s(e,{type:"Polygon",arcs:[n]}).coordinates[0])>0}var u={},a=[],f=[];return t.forEach(function(n){"Polygon"===n.type?o(n.arcs):"MultiPolygon"===n.type&&n.arcs.forEach(o)}),a.forEach(function(n){if(!n._){var e=[],r=[n];for(n._=1,f.push(e);n=r.pop();)e.push(n),n.forEach(function(n){n.forEach(function(n){u[0>n?~n:n].forEach(function(n){n._||(n._=1,r.push(n))})})})}}),a.forEach(function(n){delete n._}),{type:"MultiPolygon",arcs:f.map(function(t){var o=[];if(t.forEach(function(n){n.forEach(function(n){n.forEach(function(n){u[0>n?~n:n].length<2&&o.push(n)})})}),o=r(e,o),(n=o.length)>1)for(var a,s=i(t[0][0]),f=0;n>f;++f)if(s===i(o[f])){a=o[0],o[0]=o[f],o[f]=a;break}return o})}}function u(n,e){return"GeometryCollection"===e.type?{type:"FeatureCollection",features:e.geometries.map(function(e){return a(n,e)})}:a(n,e)}function a(n,e){var r={type:"Feature",id:e.id,properties:e.properties||{},geometry:s(n,e)};return null==e.id&&delete r.id,r}function s(n,e){function r(n,e){e.length&&e.pop();for(var r,t=c[0>n?~n:n],o=0,i=t.length;i>o;++o)e.push(r=t[o].slice()),s(r,o);0>n&&f(e,i)}function t(n){return n=n.slice(),s(n,0),n}function o(n){for(var e=[],t=0,o=n.length;o>t;++t)r(n[t],e);return e.length<2&&e.push(e[0].slice()),e}function i(n){for(var e=o(n);e.length<4;)e.push(e[0].slice());return e}function u(n){return n.map(i)}function a(n){var e=n.type;return"GeometryCollection"===e?{type:e,geometries:n.geometries.map(a)}:e in l?{type:e,coordinates:l[e](n)}:null}var s=m(n.transform),c=n.arcs,l={Point:function(n){return t(n.coordinates)},MultiPoint:function(n){return n.coordinates.map(t)},LineString:function(n){return o(n.arcs)},MultiLineString:function(n){return n.arcs.map(o)},Polygon:function(n){return u(n.arcs)},MultiPolygon:function(n){return n.arcs.map(u)}};return a(e)}function f(n,e){for(var r,t=n.length,o=t-e;o<--t;)r=n[o],n[o++]=n[t],n[t]=r}function c(n,e){for(var r=0,t=n.length;t>r;){var o=r+t>>>1;n[o]n&&(n=~n);var r=o[n];r?r.push(e):o[n]=[e]})}function r(n,r){n.forEach(function(n){e(n,r)})}function t(n,e){"GeometryCollection"===n.type?n.geometries.forEach(function(n){t(n,e)}):n.type in u&&u[n.type](n.arcs,e)}var o={},i=n.map(function(){return[]}),u={LineString:e,MultiLineString:r,Polygon:r,MultiPolygon:function(n,e){n.forEach(function(n){r(n,e)})}};n.forEach(t);for(var a in o)for(var s=o[a],f=s.length,l=0;f>l;++l)for(var p=l+1;f>p;++p){var d,g=s[l],v=s[p];(d=i[g])[a=c(d,v)]!==v&&d.splice(a,0,v),(d=i[v])[a=c(d,g)]!==g&&d.splice(a,0,g)}return i}function p(n,e){function r(n){u.remove(n),n[1][2]=e(n),u.push(n)}var t,o=m(n.transform),i=y(n.transform),u=h(),a=0;for(e||(e=g),n.arcs.forEach(function(n){var r=[];n.forEach(o);for(var i=1,a=n.length-1;a>i;++i)t=n.slice(i-1,i+2),t[1][2]=e(t),r.push(t),u.push(t);n[0][2]=n[a][2]=1/0;for(var i=0,a=r.length;a>i;++i)t=r[i],t.previous=r[i-1],t.next=r[i+1]});t=u.pop();){var s=t.previous,f=t.next;t[1][2]0;){var r=(e+1>>1)-1,o=t[r];if(v(n,o)>=0)break;t[o._=e]=o,t[n._=e=r]=n}}function e(n,e){for(;;){var r=e+1<<1,i=r-1,u=e,a=t[u];if(o>i&&v(t[i],a)<0&&(a=t[u=i]),o>r&&v(t[r],a)<0&&(a=t[u=r]),u===e)break;t[a._=e]=a,t[n._=e=u]=n}}var r={},t=[],o=0;return r.push=function(e){return n(t[e._=o]=e,o++),o},r.pop=function(){if(!(0>=o)){var n,r=t[0];return--o>0&&(n=t[o],e(t[n._=0]=n,0)),r}},r.remove=function(r){var i,u=r._;if(t[u]===r)return u!==--o&&(i=t[o],(v(i,r)<0?n:e)(t[i._=u]=i,u)),u},r}function m(n){if(!n)return w;var e,r,t=n.scale[0],o=n.scale[1],i=n.translate[0],u=n.translate[1];return function(n,a){a||(e=r=0),n[0]=(e+=n[0])*t+i,n[1]=(r+=n[1])*o+u}}function y(n){if(!n)return w;var e,r,t=n.scale[0],o=n.scale[1],i=n.translate[0],u=n.translate[1];return function(n,a){a||(e=r=0);var s=(n[0]-i)/t|0,f=(n[1]-u)/o|0;n[0]=s-e,n[1]=f-r,e=s,r=f}}function w(){}var x={version:"1.6.8",mesh:function(n){return s(n,o.apply(this,arguments))},meshArcs:o,merge:function(n){return s(n,i.apply(this,arguments))},mergeArcs:i,feature:u,neighbors:l,presimplify:p};"function"==typeof e&&e.amd?e(x):"object"==typeof t&&t.exports?t.exports=x:this.topojson=x}()},{}],11:[function(n,e){function r(n){function e(e){var r=n.substring(h).match(e);return r?(h+=r[0].length,r[0]):null}function r(n){return n&&v.match(/\d+/)&&(n.crs={type:"name",properties:{name:"urn:ogc:def:crs:EPSG::"+v}}),n}function t(){e(/^\s*/)}function o(){t();for(var n,r=0,o=[],i=[o],u=o;n=e(/^(\()/)||e(/^(\))/)||e(/^(\,)/)||e(/^[-+]?([0-9]*\.[0-9]+|[0-9]+)/);){if("("==n)i.push(u),u=[],i[i.length-1].push(u),r++;else if(")"==n){if(u=i.pop(),!u)return;if(r--,0===r)break}else if(","===n)u=[],i[i.length-1].push(u);else{if(isNaN(parseFloat(n)))return null;u.push(parseFloat(n))}t()}return 0!==r?null:o}function i(){for(var n,r,o=[];r=e(/^[-+]?([0-9]*\.[0-9]+|[0-9]+)/)||e(/^(\,)/);)","==r?(o.push(n),n=[]):(n||(n=[]),n.push(parseFloat(r))),t();return n&&o.push(n),o.length?o:null}function u(){if(!e(/^(point)/i))return null;if(t(),!e(/^(\()/))return null;var n=i();return n?(t(),e(/^(\))/)?{type:"Point",coordinates:n[0]}:null):null}function a(){if(!e(/^(multipoint)/i))return null;t();var n=o();return n?(t(),{type:"MultiPoint",coordinates:n}):null}function s(){if(!e(/^(multilinestring)/i))return null;t();var n=o();return n?(t(),{type:"MultiLineString",coordinates:n}):null}function f(){if(!e(/^(linestring)/i))return null;if(t(),!e(/^(\()/))return null;var n=i();return n?e(/^(\))/)?{type:"LineString",coordinates:n}:null:null}function c(){return e(/^(polygon)/i)?(t(),{type:"Polygon",coordinates:o()}):null}function l(){return e(/^(multipolygon)/i)?(t(),{type:"MultiPolygon",coordinates:o()}):null}function p(){var n,r=[];if(!e(/^(geometrycollection)/i))return null;if(t(),!e(/^(\()/))return null;for(;n=d();)r.push(n),t(),e(/^(\,)/),t();return e(/^(\))/)?{type:"GeometryCollection",geometries:r}:null}function d(){return u()||f()||c()||a()||s()||l()||p()}var g=n.split(";"),n=g.pop(),v=(g.shift()||"").split("=").pop(),h=0;return r(d())}function t(n){function e(n){return 2===n.length?n[0]+" "+n[1]:3===n.length?n[0]+" "+n[1]+" "+n[2]:void 0}function r(n){return n.map(e).join(", ")}function o(n){return n.map(r).map(u).join(", ")}function i(n){return n.map(o).map(u).join(", ")}function u(n){return"("+n+")"}switch("Feature"===n.type&&(n=n.geometry),n.type){case"Point":return"POINT ("+e(n.coordinates)+")";case"LineString":return"LINESTRING ("+r(n.coordinates)+")";case"Polygon":return"POLYGON ("+o(n.coordinates)+")";case"MultiPoint":return"MULTIPOINT ("+r(n.coordinates)+")";case"MultiPolygon":return"MULTIPOLYGON ("+i(n.coordinates)+")";case"MultiLineString":return"MULTILINESTRING ("+o(n.coordinates)+")";case"GeometryCollection":return"GEOMETRYCOLLECTION ("+n.geometries.map(t).join(", ")+")";default:throw new Error("stringify requires a valid GeoJSON Feature or geometry object as input")}}e.exports=r,e.exports.parse=r,e.exports.stringify=t},{}]},{},[1])(1)});
diff --git a/core/vendor/geolocation/leaflet/leaflet-ui.css b/core/vendor/geolocation/leaflet/leaflet-ui.css
deleted file mode 100644
index 93c297b..0000000
--- a/core/vendor/geolocation/leaflet/leaflet-ui.css
+++ /dev/null
@@ -1 +0,0 @@
-.pano-canvas{position:absolute!important;width:100%;height:100%;top:0;right:0;bottom:0;left:0;margin:0;padding:0;z-index:1000;display:none}.pegman-control{width:30px;height:30px;background-color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.3);cursor:grab}.pegman-control.dragging{cursor:grabbing}.pegman-control .pegman-button{position:relative;width:100%;height:100%;background-image:url(images/leaflet-pegman/maps.gstatic.com/api-3cb_scout5.png);background-position:-145px -23px;background-repeat:no-repeat}.pegman-control:hover .pegman-button{background-position:-145px -75px}.pegman-control.active .pegman-button,.pegman-control.dragging .pegman-button{background-position:-145px -50px}.pegman-control.active .pegman-button:before{position:absolute;width:100%;height:100%;content:" ";display:block;z-index:-1;opacity:.5;background:linear-gradient(#d1d1d1,#f5f5f5,#fbfbfb)}.pegman-control.streetview-layer-active{background:linear-gradient(#d1d1d1,#f5f5f5,#fbfbfb);background-clip:padding-box}.pegman{position:absolute;z-index:9999999;display:block;width:100%;height:100%;opacity:0}.pegman:before{position:relative;z-index:5;display:block;width:19px;height:32px;content:" ";background-image:url(images/leaflet-pegman/maps.gstatic.com/api-3cb_scout5.png);background-repeat:no-repeat;background-position:-112px -4px}.pegman:after{position:absolute;width:22px;height:22px;content:" ";bottom:-18px;left:50%;margin-left:-11px;z-index:4;display:block;overflow:visible;visibility:visible;border:1px dotted rgba(51,51,51,.9);border-radius:30px;background-color:rgba(105,185,70,.7);box-shadow:3px 10px 25px rgba(105,185,70,.9)}.pegman.active{opacity:1!important}.pegman.active.left:before{background-position:-119px -55px}.pegman.active.right:before{background-position:-114px -158px}.pegman.active.bottom:before,.pegman.active.top:before{background-position:-112px -4px}.pegman.dropped{opacity:1}.pegman.dropped:before{background-position:-112px -4px}.pegman-marker{background:transparent url(images/leaflet-pegman/maps.gstatic.com/api-3cb_scout5.png) no-repeat scroll 0 -364px}.pegman-marker:not(.leaflet-drag-target){transition:transform .2s linear}.leaflet-left .pegman-control:hover .pegman-button{transform:scaleX(-1)}.leaflet-pegman-v3-default .pegman-control{width:40px;height:40px}.leaflet-pegman-v3-default .pegman-control .pegman-button{background-image:url(images/leaflet-pegman/maps.gstatic.com/pegman_v3runway-2x.png);background-position:-3px -55px;background-size:45px}.leaflet-pegman-v3-default .pegman-control.streetview-layer-active .pegman-button{background-position:-3px -7px}.leaflet-pegman-v3-default .pegman-control:hover .pegman-button{background-position:-3px -152px}.leaflet-pegman-v3-default .pegman-control.dragging .pegman-button{background-position:-3px -104px}.leaflet-pegman-v3-small .pegman-control{width:30px;height:30px}.leaflet-pegman-v3-small .pegman-control .pegman-button{background-image:url(images/leaflet-pegman/maps.gstatic.com/pegman_v3runway-1x.png);background-position:2px -27px;background-size:25px}.leaflet-pegman-v3-small .pegman-control.streetview-layer-active .pegman-button{background-position:2px 0}.leaflet-pegman-v3-small .pegman-control:hover .pegman-button{background-position:2px -79px}.leaflet-pegman-v3-small .pegman-control.dragging .pegman-button{background-position:2px -53px}.leaflet-container:not(.leaflet-touch).leaflet-pegman-v3-small .pegman-control{width:26px;height:26px;box-shadow:0 1px 5px rgba(0,0,0,.65)}.leaflet-container:not(.leaflet-touch).leaflet-pegman-v3-small .pegman-control .pegman-button{background-position:0 -29px}.leaflet-container:not(.leaflet-touch).leaflet-pegman-v3-small .pegman-control:hover .pegman-button{background-position:0 -81px}.leaflet-container:not(.leaflet-touch).leaflet-pegman-v3-default .pegman-control{width:36px;height:36px;box-shadow:0 1px 5px rgba(0,0,0,.65)}.leaflet-container:not(.leaflet-touch).leaflet-pegman-v3-default .pegman-control .pegman-button{background-position:-3px -53px;background-size:42px}.leaflet-container:not(.leaflet-touch).leaflet-pegman-v3-default .pegman-control:hover .pegman-button{background-position:-3px -143px}.leaflet-control-locate a{cursor:pointer}.leaflet-control-locate a .leaflet-control-locate-location-arrow{-webkit-mask-image:url(images/leaflet.locatecontrollocation-arrow-solid.svg);mask-image:url(images/leaflet.locatecontrollocation-arrow-solid.svg)}.leaflet-control-locate a .leaflet-control-locate-location-arrow,.leaflet-control-locate a .leaflet-control-locate-spinner{display:inline-block;width:16px;height:16px;margin:7px;background-color:#000;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.leaflet-control-locate a .leaflet-control-locate-spinner{-webkit-mask-image:url(images/leaflet.locatecontrolspinner-solid.svg);mask-image:url(images/leaflet.locatecontrolspinner-solid.svg);animation:leaflet-control-locate-spin 2s linear infinite}.leaflet-control-locate.active a .leaflet-control-locate-location-arrow{background-color:#2074b6}.leaflet-control-locate.following a .leaflet-control-locate-location-arrow{background-color:#fc8428}.leaflet-touch .leaflet-bar .leaflet-locate-text-active{width:100%;max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 10px}.leaflet-touch .leaflet-bar .leaflet-locate-text-active .leaflet-locate-icon{padding:0 5px 0 0}.leaflet-control-locate-location circle{animation:leaflet-control-locate-throb 4s ease infinite}@keyframes leaflet-control-locate-throb{0%{stroke-width:1}50%{stroke-width:3;transform:scale(.8)}to{stroke-width:1}}@keyframes leaflet-control-locate-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fullscreen-icon{background-image:url(images/leaflet.fullscreenicon-fullscreen.svg);background-size:26px 52px}.fullscreen-icon.leaflet-fullscreen-on{background-position:0 -26px}.leaflet-touch .fullscreen-icon{background-position:2px 2px}.leaflet-touch .fullscreen-icon.leaflet-fullscreen-on{background-position:2px -24px}.leaflet-container:-webkit-full-screen{width:100%!important;height:100%!important;z-index:99999}.leaflet-container:-ms-fullscreen{width:100%!important;height:100%!important;z-index:99999}.leaflet-container:full-screen,.leaflet-container:fullscreen,.leaflet-pseudo-fullscreen{width:100%!important;height:100%!important;z-index:99999}.leaflet-pseudo-fullscreen{position:fixed!important;top:0!important;left:0!important}.leaflet-gesture-handling:after{color:#fff;font-family:Roboto,Arial,sans-serif;font-size:22px;justify-content:center;display:flex;align-items:center;padding:15px;position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1001;pointer-events:none;text-align:center;transition:opacity .8s ease-in-out;opacity:0;content:""}.leaflet-gesture-handling-warning:after{transition-duration:.3s;opacity:1}.leaflet-gesture-handling-touch:after{content:attr(data-gesture-handling-touch-content)}.leaflet-gesture-handling-scroll:after{content:attr(data-gesture-handling-scroll-content)}.leaflet-edit-osm.leaflet-control a{padding-right:5px}.leaflet-edit-osm.leaflet-control-attribution.leaflet-control{clear:both}.leaflet-edit-osm~.leaflet-control-attribution.leaflet-control{clear:none}.leaflet-control-layers-inline{margin:0;padding:0}.leaflet-control-layers-inline.leaflet-control-layers{border:transparent;background-color:transparent}.leaflet-control-layers-inline .leaflet-control-layers-base{margin:0;padding:0}.leaflet-control-layers-inline .leaflet-control-layers-base input{display:none}.leaflet-control-layers-inline .leaflet-control-layers-base span{display:inline-block;padding:9.5px;font-size:15px;font-weight:600}.leaflet-control-layers-inline .leaflet-control-layers-base label{display:inline-block;cursor:pointer;box-shadow:0 1px 4px -1px rgba(0,0,0,.3);background-color:#fff;background-clip:padding-box;border:2px solid rgba(0,0,0,.2);border-right:none;border-left:none}.leaflet-control-layers-inline .leaflet-control-layers-base label:hover{background-color:#f4f4f4}.leaflet-control-layers-inline .leaflet-control-layers-base label:first-of-type{border-left:2px solid rgba(0,0,0,.2);border-top-left-radius:4px;border-bottom-left-radius:4px}.leaflet-control-layers-inline .leaflet-control-layers-base label:last-of-type{border-right:2px solid rgba(0,0,0,.2);border-top-right-radius:4px;border-bottom-right-radius:4px}.leaflet-control-layers-inline .leaflet-control-layers-base input+span{color:#565656}.leaflet-control-layers-inline .leaflet-control-layers-base input:checked+span{font-weight:700;color:inherit}.leaflet-container:not(.leaflet-touch) .leaflet-control-layers-inline .leaflet-control-layers-base span{padding:8px;font-size:14px}.leaflet-container:not(.leaflet-touch) .leaflet-control-layers-inline .leaflet-control-layers-base label{border:none}.leaflet-control-minimap{border:solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:3px;background:#f8f8f9;transition:all .6s}.leaflet-control-minimap a{background-color:#fff;background-repeat:no-repeat;z-index:99999;transition:all .6s}.leaflet-control-minimap a.minimized-bottomright{-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:0}.leaflet-control-minimap a.minimized-topleft{-webkit-transform:rotate(0deg);transform:rotate(0deg);border-radius:0}.leaflet-control-minimap a.minimized-bottomleft{-webkit-transform:rotate(270deg);transform:rotate(270deg);border-radius:0}.leaflet-control-minimap a.minimized-topright{-webkit-transform:rotate(90deg);transform:rotate(90deg);border-radius:0}.leaflet-control-minimap-toggle-display{background-image:url(images/leaflet-minimap/dist/imagestoggle.svg);background-size:cover;position:absolute;border-radius:3px 0 0}.leaflet-oldie .leaflet-control-minimap-toggle-display{background-image:url(images/leaflet-minimap/dist/imagestoggle.png)}.leaflet-control-minimap-toggle-display-bottomright{bottom:0;right:0}.leaflet-control-minimap-toggle-display-topleft{top:0;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.leaflet-control-minimap-toggle-display-bottomleft{bottom:0;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.leaflet-control-minimap-toggle-display-topright{top:0;right:0;-webkit-transform:rotate(270deg);transform:rotate(270deg)}.leaflet-oldie .leaflet-control-minimap{border:1px solid #999}.leaflet-oldie .leaflet-control-minimap a{background-color:#fff}.leaflet-oldie .leaflet-control-minimap a.minimized{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.leaflet-control-loading:empty{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///wAAAPDw8IqKiuDg4EZGRnp6egAAAFhYWCQkJKysrL6+vhQUFJycnAQEBDY2NmhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==);background-repeat:no-repeat}.leaflet-control-layer-container,.leaflet-control-loading,.leaflet-control-zoom a.leaflet-control-loading,.leaflet-control-zoomslider a.leaflet-control-loading{display:none}.leaflet-control-layer-container.is-loading,.leaflet-control-loading.is-loading,.leaflet-control-zoom a.leaflet-control-loading.is-loading,.leaflet-control-zoomslider a.leaflet-control-loading.is-loading{display:block}.leaflet-bar-part-bottom{border-bottom:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.leaflet-container .leaflet-control-search{position:relative;float:left;background:#fff;color:#1978cf;border:2px solid rgba(0,0,0,.2);background-clip:padding-box;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:hsla(0,0%,100%,.8);z-index:1000;margin-left:10px;margin-top:10px}.leaflet-control-search.search-exp{background:#fff;border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-control-search .search-input{display:block;float:left;background:#fff;border:1px solid #666;border-radius:2px;height:22px;padding:0 20px 0 2px;margin:4px 0 4px 4px}.leaflet-control-search.search-load .search-input{background:url(images/leaflet-search/imagesloader.gif) no-repeat 100% #fff}.leaflet-control-search.search-load .search-cancel{visibility:hidden}.leaflet-control-search .search-cancel{display:block;width:22px;height:22px;position:absolute;right:28px;margin:6px 0;background:url(images/leaflet-search/imagessearch-icon.png) no-repeat 0 -46px;text-decoration:none;filter:alpha(opacity=80);opacity:.8}.leaflet-control-search .search-cancel:hover{filter:alpha(opacity=100);opacity:1}.leaflet-control-search .search-cancel span{display:none;font-size:18px;line-height:20px;color:#ccc;font-weight:700}.leaflet-control-search .search-cancel:hover span{color:#aaa}.leaflet-control-search .search-button{display:block;float:left;width:30px;height:30px;background:url(images/leaflet-search/imagessearch-icon.png) no-repeat 4px 4px #fff;border-radius:4px}.leaflet-control-search .search-button:hover{background:url(images/leaflet-search/imagessearch-icon.png) no-repeat 4px -20px #fafafa}.leaflet-control-search .search-tooltip{position:absolute;top:100%;left:0;float:left;list-style:none;padding-left:0;min-width:120px;max-height:122px;box-shadow:1px 1px 6px rgba(0,0,0,.4);background-color:rgba(0,0,0,.25);z-index:1010;overflow-y:auto;overflow-x:hidden;cursor:pointer}.leaflet-control-search .search-tip{margin:2px;padding:2px 4px;display:block;color:#000;background:#eee;border-radius:.25em;text-decoration:none;white-space:nowrap;vertical-align:center}.leaflet-control-search .search-button:hover{background-color:#f4f4f4}.leaflet-control-search .search-tip-select,.leaflet-control-search .search-tip:hover{background-color:#fff}.leaflet-control-search .search-alert{cursor:pointer;clear:both;font-size:.75em;margin-bottom:5px;padding:0 .25em;color:#e00;font-weight:700;border-radius:.25em}.leaflet-control-resizer-corner-e,.leaflet-control-resizer-corner-s,.leaflet-control-resizer-corner-se{z-index:1000;position:absolute}.leaflet-control-resizer-corner-e{right:0;height:100%}.leaflet-control-resizer-corner-s{bottom:0;width:100%}.leaflet-control-resizer-corner-se{right:0;bottom:0}.leaflet-control-resizer-transparent{background-color:transparent;user-select:none;transition:.5s}.leaflet-control-resizer-transparent:after{border-color:transparent;transition:.5s}.leaflet-control-resizer-opaque,.leaflet-control-resizer-transparent-fakedhover,.leaflet-control-resizer-transparent:hover{background-color:rgba(255,250,170,.8)}.leaflet-control-resizer-opaque:after,.leaflet-control-resizer-transparent-fakedhover:after,.leaflet-control-resizer-transparent:hover:after{border-color:rgba(85,85,85,.9)}.leaflet-control-resizer-e{width:25px;height:50px;border-top-left-radius:25px;border-bottom-left-radius:25px;cursor:e-resize;right:0;top:50%;transform:translateY(-50%)}.leaflet-control-resizer-s{width:50px;height:25px;border-top-left-radius:25px;border-top-right-radius:25px;cursor:s-resize;left:50%;bottom:0;transform:translateX(-50%)}.leaflet-control-resizer-se{width:35px;height:35px;border-top-left-radius:35px;cursor:se-resize;right:0;bottom:0;position:absolute}.leaflet-control-resizer-e:after,.leaflet-control-resizer-s:after,.leaflet-control-resizer-se:after{content:"";position:absolute;z-index:999;border-width:1px;bottom:20%;right:20%}.leaflet-control-resizer-e:after,.leaflet-control-resizer-s:after{width:60%;height:60%}.leaflet-control-resizer-se:after{width:40%;height:40%}.leaflet-control-resizer-e:after,.leaflet-control-resizer-se:after{border-right-style:solid}.leaflet-control-resizer-s:after,.leaflet-control-resizer-se:after{border-bottom-style:solid}.leaflet-visualclick-icon{border-radius:100%;pointer-events:none}.leaflet-visualclick-icon:after{height:60px;width:60px;margin-left:-30px;margin-top:-30px;-webkit-animation:visualclick-pulsate .7s ease-out;animation:visualclick-pulsate .7s ease-out;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-delay:0s;animation-delay:0s}.leaflet-visualclick-icon-touch:after,.leaflet-visualclick-icon:after{content:"";border-radius:100%;position:absolute;pointer-events:none;box-shadow:inset 0 0 25px -1px #e1e3e4,0 0 10px -1px #c5c5c5;opacity:0}.leaflet-visualclick-icon-touch:after{height:140px;width:140px;margin-left:-70px;margin-top:-70px;-webkit-animation:visualclick-pulsate-touch .7s ease-out;animation:visualclick-pulsate-touch .7s ease-out;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-delay:0s;animation-delay:0s}@-webkit-keyframes visualclick-pulsate{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:0}}@keyframes visualclick-pulsate{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:0}}@-webkit-keyframes visualclick-pulsate-touch{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.8}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes visualclick-pulsate-touch{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.8}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}.leaflet-pane.leaflet-ie10-visual-click-pane-pane{z-index:300}.leaflet-control-locate a .leaflet-control-locate-location-arrow{mask-image:url(https://unpkg.com/@raruto/leaflet-elevation@0.3.9/images/elevation-locate.png)}.leaflet-control-minimap.leaflet-control{cursor:pointer}.leaflet-control-layers-inline .leaflet-control-layers-base span{line-height:1}.leaflet-control-zoom~.leaflet-control-scale.leaflet-control{clear:both;margin:0}.leaflet-control-scale-line{line-height:1}.leaflet-control-scale~.leaflet-control-attribution.leaflet-control{clear:none}.leaflet-right .leaflet-control-search{float:right;margin-left:0;margin-top:0}.leaflet-control-search .search-input{width:215px}.leaflet-control-search .search-tooltip{width:260px}.leaflet-container:not(.leaflet-touch) .leaflet-control-search .search-button{width:26px;height:26px;background-position:2.5px 2.5px}.leaflet-container:not(.leaflet-touch) .leaflet-control-search{border:none;box-shadow:0 1px 5px rgba(0,0,0,.65)}.leaflet-container:not(.leaflet-touch) .leaflet-control-search.search-exp .search-button{margin:4px 0 0}.leaflet-control-easyPrint .leaflet-control-easyPrint-button-export{background-image:url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMTI4LDMyaDI1NnY2NEgxMjhWMzJ6IE00ODAsMTI4SDMyYy0xNy42LDAtMzIsMTQuNC0zMiwzMnYxNjBjMCwxNy42LDE0LjM5OCwzMiwzMiwzMmg5NnYxMjhoMjU2VjM1Mmg5NiAgIGMxNy42LDAsMzItMTQuNCwzMi0zMlYxNjBDNTEyLDE0Mi40LDQ5Ny42LDEyOCw0ODAsMTI4eiBNMzUyLDQ0OEgxNjBWMjg4aDE5MlY0NDh6IE00ODcuMTk5LDE3NmMwLDEyLjgxMy0xMC4zODcsMjMuMi0yMy4xOTcsMjMuMiAgIGMtMTIuODEyLDAtMjMuMjAxLTEwLjM4Ny0yMy4yMDEtMjMuMnMxMC4zODktMjMuMiwyMy4xOTktMjMuMkM0NzYuODE0LDE1Mi44LDQ4Ny4xOTksMTYzLjE4Nyw0ODcuMTk5LDE3NnoiIGZpbGw9IiMwMDAwMDAiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);background-size:16px 16px;cursor:pointer}.leaflet-control-resizer-opaque,.leaflet-control-resizer-transparent-fakedhover,.leaflet-control-resizer-transparent:hover{background-color:#fff;border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-control-resizer-s,.leaflet-control-resizer-se{border-bottom:none!important}.leaflet-control-resizer-e,.leaflet-control-resizer-se{border-right:none!important}.leaflet-control-resizer-opaque:after,.leaflet-control-resizer-transparent-fakedhover:after,.leaflet-control-resizer-transparent:hover:after{border-width:2px}.leaflet-control-resizer-corner-e,.leaflet-control-resizer-corner-s,.leaflet-control-resizer-corner-se{pointer-events:none}
\ No newline at end of file
diff --git a/core/vendor/geolocation/leaflet/leaflet-ui.js b/core/vendor/geolocation/leaflet/leaflet-ui.js
deleted file mode 100644
index 7f6d560..0000000
--- a/core/vendor/geolocation/leaflet/leaflet-ui.js
+++ /dev/null
@@ -1,39 +0,0 @@
-!function(t){"function"==typeof define&&define.amd?define(t):t()}((function(){"use strict";!function(t,e){"function"==typeof define&&define.amd?define(["leaflet"],t):"object"==typeof exports&&(module.exports=t(require("leaflet"))),void 0!==e&&e.L&&t(e.L)}((function(t){return t.locales={},t.locale=null,t.registerLocale=function(e,i){t.locales[e]=t.Util.extend({},t.locales[e],i)},t.setLocale=function(e){t.locale=e},t.i18n=t._=function(e,i){t.locale&&t.locales[t.locale]&&t.locales[t.locale][e]&&(e=t.locales[t.locale][e]);try{e=t.Util.template(e,i)}catch(t){}return e}}),window);const t=L.extend({},L.DomUtil);L.extend(L.DomUtil,{setTransform:function(e,i,o,n,s){var a=i||new L.Point(0,0);if(!n)return i=a._round(),t.setTransform.call(this,e,i,o);a=a.rotateFrom(n,s),e.style[L.DomUtil.TRANSFORM]="translate3d("+a.x+"px,"+a.y+"px,0)"+(o?" scale("+o+")":"")+" rotate("+n+"rad)"},setPosition:function(e,i,o,n){if(!o)return t.setPosition.call(this,e,i);e._leaflet_pos=i,L.Browser.any3d?L.DomUtil.setTransform(e,i,void 0,o,n):(e.style.left=i.x+"px",e.style.top=i.y+"px")},DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI}),L.Draggable.include({updateMapBearing:function(t){this._mapBearing=t}}),L.extend(L.Point.prototype,{rotate:function(t){if(!t)return this;var e=Math.sin(t),i=Math.cos(t);return new L.Point(this.x*i-this.y*e,this.x*e+this.y*i)},rotateFrom:function(t,e){if(!t)return this;var i=Math.sin(t),o=Math.cos(t),n=e.x,s=e.y,a=this.x-n,r=this.y-s;return new L.Point(a*o-r*i+n,a*i+r*o+s)}});const e=L.extend({},L.DivOverlay.prototype);L.DivOverlay.include({getEvents:function(){return L.extend(e.getEvents.call(this),{rotate:this._updatePosition})},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),e=L.point(this.options.offset),i=this._getAnchor();this._zoomAnimated?(this._map._rotate&&(t=this._map.rotatedPointToMapPanePoint(t)),L.DomUtil.setPosition(this._container,t.add(i))):e=e.add(t).add(i);var o=this._containerBottom=-e.y,n=this._containerLeft=-Math.round(this._containerWidth/2)+e.x;this._container.style.bottom=o+"px",this._container.style.left=n+"px"}}});const i=L.extend({},L.Popup.prototype);L.Popup.include({_animateZoom:function(t){this._map._rotate||i._animateZoom.call(this,t);var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),o=this._getAnchor();e=this._map.rotatedPointToMapPanePoint(e),L.DomUtil.setPosition(this._container,e.add(o))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,e=parseInt(L.DomUtil.getStyle(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,o=this._containerWidth,n=new L.Point(this._containerLeft,-i-this._containerBottom);n._add(L.DomUtil.getPosition(this._container));var s=n._add(this._map._getMapPanePos()),a=L.point(this.options.autoPanPadding),r=L.point(this.options.autoPanPaddingTopLeft||a),l=L.point(this.options.autoPanPaddingBottomRight||a),h=t.getSize(),c=0,p=0;s.x+o+l.x>h.x&&(c=s.x+o-h.x+l.x),s.x-c-r.x<0&&(c=s.x-r.x),s.y+i+l.y>h.y&&(p=s.y+i-h.y+l.y),s.y-p-r.y<0&&(p=s.y-r.y),(c||p)&&t.fire("autopanstart").panBy([c,p])}}});const o=L.extend({},L.Tooltip.prototype);L.Tooltip.include({_updatePosition:function(){if(!this._map._rotate)return o._updatePosition.call(this);var t=this._map.latLngToLayerPoint(this._latlng);t=this._map.rotatedPointToMapPanePoint(t),this._setPosition(t)},_animateZoom:function(t){if(!this._map._rotate)return o._animateZoom.call(this,t);var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);e=this._map.rotatedPointToMapPanePoint(e),this._setPosition(e)}});L.extend({},L.Icon.prototype);var n;L.Icon.include({_setIconStyles:function(t,e){var i=this.options,o=i[e+"Size"];"number"==typeof o&&(o=[o,o]);var n=L.point(o),s=L.point("shadow"===e&&i.shadowAnchor||i.iconAnchor||n&&n.divideBy(2,!0));t.className="leaflet-marker-"+e+" "+(i.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px",t.style[L.DomUtil.TRANSFORM+"Origin"]=s.x+"px "+s.y+"px 0px"),n&&(t.style.width=n.x+"px",t.style.height=n.y+"px")}});var s={_onDragStart:function(){if(!this._marker._map._rotate)return n._onDragStart.call(this);this._draggable.updateMapBearing(this._marker._map._bearing)},_onDrag:function(t){var e=this._marker,i=e.options.rotation||e.options.rotateWithView,o=e._shadow,n=L.DomUtil.getPosition(e._icon);!i&&o&&L.DomUtil.setPosition(o,n),e._map._rotate&&(n=e._map.mapPanePointToRotatedPoint(n));var s=e._map.layerPointToLatLng(n);e._latlng=s,t.latlng=s,t.oldLatLng=this._oldLatLng,i?e.setLatLng(s):e.fire("move",t),e.fire("drag",t)},_onDragEnd:function(t){this._marker._map._rotate&&this._marker.update(),n._onDragEnd.call(this,t)}};const a=L.extend({},L.Marker.prototype);L.Marker.mergeOptions({rotation:0,rotateWithView:!1}),L.Marker.include({getEvents:function(){return L.extend(a.getEvents.call(this),{rotate:this.update})},onAdd:function(t){a.onAdd.call(this,t),t.on("rotate",this.update,this)},_initInteraction:function(){var t=a._initInteraction.call(this);return this.dragging&&this.dragging.enabled()&&this._map&&this._map._rotate&&(n=n||Object.getPrototypeOf(this.dragging),this.dragging._onDragStart=s._onDragStart.bind(this.dragging),this.dragging._onDrag=s._onDrag.bind(this.dragging),this.dragging._onDragEnd=s._onDragEnd.bind(this.dragging),this.dragging.disable(),this.dragging.enable()),t},_setPos:function(t){this._map._rotate&&(t=this._map.rotatedPointToMapPanePoint(t));var e=this.options.rotation||0;this.options.rotateWithView&&(e+=this._map._bearing),L.DomUtil.setPosition(this._icon,t,e,t),this._shadow&&L.DomUtil.setPosition(this._shadow,t,e,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){if(!this._map._rotate)return a._updateZIndex.call(this,t);this._icon.style.zIndex=Math.round(this._zIndex+t)},setRotation:function(t){this.options.rotation=t,this.update()}});const r=L.extend({},L.GridLayer.prototype);L.GridLayer.include({getEvents:function(){var t=r.getEvents.call(this);return this._map._rotate&&!this.options.updateWhenIdle&&(this._onRotate||(this._onRotate=L.Util.throttle(this._onMoveEnd,this.options.updateInterval,this)),t.rotate=this._onRotate),t},_getTiledPixelBounds:function(t){if(!this._map._rotate)return r._getTiledPixelBounds.call(this,t);var e=this._map,i=e._animatingZoom?Math.max(e._animateToZoom,e.getZoom()):e.getZoom(),o=e.getZoomScale(i,this._tileZoom),n=e.project(t,this._tileZoom).floor(),s=e.getSize(),a=new L.Bounds([e.containerPointToLayerPoint([0,0]).floor(),e.containerPointToLayerPoint([s.x,0]).floor(),e.containerPointToLayerPoint([0,s.y]).floor(),e.containerPointToLayerPoint([s.x,s.y]).floor()]).getSize().divideBy(2*o);return new L.Bounds(n.subtract(a),n.add(a))}});const l=L.extend({},L.Canvas.prototype);L.Canvas.include({onAdd:function(){l.onAdd.call(this),this._map.on("rotate",this._redraw,this)},onRemove:function(){l.onRemove.call(this),this._map.off("rotate",this._redraw,this)},_update:function(){l._update.call(this),this.fire("update")}});const h=L.extend({},L.Renderer.prototype);L.Renderer.include({onAdd:function(){h.onAdd.call(this)},onRemove:function(){h.onRemove.call(this)},_updateTransform:function(t,e){if(!this._map._rotate)return h._updateTransform.call(this,t,e);var i=this._map.getZoomScale(e,this._zoom),o=this._map._latLngToNewLayerPoint(this._topLeft,e,t);L.Browser.any3d?L.DomUtil.setTransform(this._container,o,i):L.DomUtil.setPosition(this._container,o)},_update:function(){if(!this._map._rotate)return h._update.call(this);var t=this.options.padding,e=this._map,i=this._map.getSize(),o=i.multiplyBy(-t),n=i.multiplyBy(1+t),s=new L.Bounds([e.containerPointToLayerPoint([o.x,o.y]).floor(),e.containerPointToLayerPoint([o.x,n.y]).floor(),e.containerPointToLayerPoint([n.x,o.y]).floor(),e.containerPointToLayerPoint([n.x,n.y]).floor()]);this._bounds=s,this._topLeft=this._map.layerPointToLatLng(s.min),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}});const c=L.extend({},L.SVG.prototype);L.SVG.include({_update:function(){c._update.call(this),this._map._rotate&&this.fire("update")}});const p=L.extend({},L.Map.prototype);
-/*!
- * Based on package 'screenfull'
- * v5.2.0 - 2021-11-03
- * (c) Sindre Sorhus; MIT License
- * Added definition for using screenfull as an amd module
- * Must be placed before the definition of leaflet.fullscreen
- * as it is required by that
- */var d,u;L.Map.mergeOptions({rotate:!1,bearing:0}),L.Map.include({initialize:function(t,e){e.rotate&&(this._rotate=!0,this._bearing=0),p.initialize.call(this,t,e),this.options.rotate&&this.setBearing(this.options.bearing)},containerPointToLayerPoint:function(t){return this._rotate?L.point(t).subtract(this._getMapPanePos()).rotateFrom(-this._bearing,this._getRotatePanePos()).subtract(this._getRotatePanePos()):p.containerPointToLayerPoint.call(this,t)},getBounds:function(){if(!this._rotate)return p.getBounds.call(this);var t=this.getSize(),e=this.layerPointToLatLng(this.containerPointToLayerPoint([0,0])),i=this.layerPointToLatLng(this.containerPointToLayerPoint([t.x,0])),o=this.layerPointToLatLng(this.containerPointToLayerPoint([t.x,t.y])),n=this.layerPointToLatLng(this.containerPointToLayerPoint([0,t.y]));return new L.LatLngBounds([e,i,o,n])},layerPointToContainerPoint:function(t){return this._rotate?L.point(t).add(this._getRotatePanePos()).rotateFrom(this._bearing,this._getRotatePanePos()).add(this._getMapPanePos()):p.layerPointToContainerPoint.call(this,t)},setBearing:function(t){if(L.Browser.any3d&&this._rotate){var e=this._getRotatePanePos(),i=this.getSize().divideBy(2);this._pivot=this._getMapPanePos().clone().multiplyBy(-1).add(i),e=e.rotateFrom(-this._bearing,this._pivot),this._bearing=t*L.DomUtil.DEG_TO_RAD,this._rotatePanePos=e.rotateFrom(this._bearing,this._pivot),L.DomUtil.setPosition(this._rotatePane,e,this._bearing,this._pivot),this.fire("rotate")}},getBearing:function(){return this._bearing*L.DomUtil.RAD_TO_DEG},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),L.DomUtil.setPosition(this._mapPane,new L.Point(0,0)),this._rotate?(this._rotatePane=this.createPane("rotatePane",this._mapPane),this._norotatePane=this.createPane("norotatePane",this._mapPane),this.createPane("tilePane",this._rotatePane),this.createPane("overlayPane",this._rotatePane),this.createPane("shadowPane",this._norotatePane),this.createPane("markerPane",this._norotatePane),this.createPane("tooltipPane",this._norotatePane),this.createPane("popupPane",this._norotatePane)):(this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane")),this.options.markerZoomAnimation||(L.DomUtil.addClass(t.markerPane,"leaflet-zoom-hide"),L.DomUtil.addClass(t.shadowPane,"leaflet-zoom-hide"))},rotatedPointToMapPanePoint:function(t){return L.point(t).rotate(this._bearing)._add(this._getRotatePanePos())},mapPanePointToRotatedPoint:function(t){return L.point(t)._subtract(this._getRotatePanePos()).rotate(-this._bearing)},_getCenterOffset:function(t){var e=p._getCenterOffset.call(this,t);return this._rotate&&(e=e.rotate(this._bearing)),e},_getRotatePanePos:function(){return this._rotatePanePos||new L.Point(0,0)},_getNewPixelOrigin:function(t,e){var i=this.getSize()._divideBy(2);return this._rotate||p._getNewPixelOrigin.call(this,t,e),this.project(t,e).rotate(this._bearing)._subtract(i)._add(this._getMapPanePos())._add(this._getRotatePanePos()).rotate(-this._bearing)._round()},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,o=t.coords.heading,n=new L.LatLng(e,i),s=n.toBounds(t.coords.accuracy),a=this._locateOptions;if(a.setView){var r=this.getBoundsZoom(s);this.setView(n,a.maxZoom?Math.min(r,a.maxZoom):r)}var l={latlng:n,bounds:s,timestamp:t.timestamp,heading:o};for(var h in t.coords)"number"==typeof t.coords[h]&&(l[h]=t.coords[h]);this.fire("locationfound",l)}}),L.Map.CompassBearing=L.Handler.extend({initialize:function(t){window.DeviceOrientationEvent?(this._capable=!0,this._map=t,this._throttled=L.Util.throttle(this._onDeviceOrientation,1e3,this)):this._capable=!1},addHooks:function(){this._capable&&this._map._rotate&&L.DomEvent.on(window,"deviceorientation",this._throttled,this)},removeHooks:function(){this._capable&&this._map._rotate&&L.DomEvent.off(window,"deviceorientation",this._throttled,this)},_onDeviceOrientation:function(t){null!==t.alpha&&this._map.setBearing(t.alpha-window.orientation)}}),L.Map.addInitHook("addHandler","compassBearing",L.Map.CompassBearing),L.Map.mergeOptions({trackContainerMutation:!1}),L.Map.ContainerMutation=L.Handler.extend({addHooks:function(){L.Browser.mutation&&(this._observer||(this._observer=new MutationObserver(L.Util.bind(this._onMutation,this))),this._observer.observe(this._map.getContainer(),{childList:!1,attributes:!0,characterData:!1,subtree:!1,attributeFilter:["style"]}))},removeHooks:function(){L.Browser.mutation&&this._observer.disconnect()},_onMutation:function(){this._map.invalidateSize()}}),L.Map.addInitHook("addHandler","trackContainerMutation",L.Map.ContainerMutation),L.Map.mergeOptions({bounceAtZoomLimits:!0}),L.Map.TouchGestures=L.Handler.extend({initialize:function(t){this._map=t,this.rotate=!!this._map.options.touchRotate,this.zoom=!!this._map.options.touchZoom},addHooks:function(){L.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){L.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming&&!this._rotating){var i=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]),n=i.subtract(o);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),this.zoom?("center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(o)._divideBy(2))),this._startDist=i.distanceTo(o),this._startZoom=e.getZoom(),this._zooming=!0):this._zooming=!1,this.rotate?(this._startTheta=Math.atan(n.x/n.y),this._startBearing=e.getBearing(),n.y<0&&(this._startBearing+=180),this._rotating=!0):this._rotating=!1,this._moved=!1,e.stop(),L.DomEvent.on(document,"touchmove",this._onTouchMove,this).on(document,"touchend",this._onTouchEnd,this),L.DomEvent.preventDefault(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&(this._zooming||this._rotating)){var e,i=this._map,o=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]),s=o.subtract(n),a=o.distanceTo(n)/this._startDist;if(this._rotating){var r=(Math.atan(s.x/s.y)-this._startTheta)*L.DomUtil.RAD_TO_DEG;s.y<0&&(r+=180),r&&i.setBearing(this._startBearing-r)}if(this._zooming)if(this._zoom=i.getScaleZoom(a,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoomi.getMaxZoom()&&a>1)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1===a)return}else{if(e=o._add(n)._divideBy(2)._subtract(this._centerPoint),1===a&&0===e.x&&0===e.y)return;var l=-i.getBearing()*L.DomUtil.DEG_TO_RAD;this._center=i.unproject(i.project(this._pinchStartLatLng).subtract(e.rotate(l)))}this._moved||(i._moveStart(!0),this._moved=!0),L.Util.cancelAnimFrame(this._animRequest);var h=L.bind(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=L.Util.requestAnimFrame(h,this,!0),L.DomEvent.preventDefault(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,this._rotating=!1,L.Util.cancelAnimFrame(this._animRequest),L.DomEvent.off(document,"touchmove",this._onTouchMove).off(document,"touchend",this._onTouchEnd),this.zoom&&(this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.snapZoom):this._map._resetView(this._center,this._map._limitZoom(this._zoom)))):this._zooming=!1}}),L.Map.addInitHook("addHandler","touchGestures",L.Map.TouchGestures),L.Map.mergeOptions({touchRotate:!1}),L.Map.TouchRotate=L.Handler.extend({addHooks:function(){this._map.touchGestures.enable(),this._map.touchGestures.rotate=!0},removeHooks:function(){this._map.touchGestures.rotate=!1}}),L.Map.addInitHook("addHandler","touchRotate",L.Map.TouchRotate),L.Map.mergeOptions({shiftKeyRotate:!0}),L.Map.ShiftKeyRotate=L.Handler.extend({addHooks:function(){L.DomEvent.on(this._map._container,"wheel",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!0},removeHooks:function(){L.DomEvent.off(this._map._container,"wheel",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!1},_handleShiftScroll:function(t){t.shiftKey?(t.preventDefault(),this._map.scrollWheelZoom.disable(),this._map.setBearing(this._map._bearing*L.DomUtil.RAD_TO_DEG+5*Math.sign(t.deltaY))):this._map.scrollWheelZoom.enable()}}),L.Map.addInitHook("addHandler","shiftKeyRotate",L.Map.ShiftKeyRotate),L.Map.addInitHook((function(){this.scrollWheelZoom.enabled()&&this.shiftKeyRotate.enabled()&&(this.scrollWheelZoom.disable(),this.scrollWheelZoom.enable())})),L.Map.mergeOptions({touchZoom:L.Browser.touch&&!L.Browser.android23,bounceAtZoomLimits:!1}),L.Map.TouchZoom=L.Handler.extend({addHooks:function(){L.DomUtil.addClass(this._map._container,"leaflet-touch-zoom"),this._map.touchGestures.enable(),this._map.touchGestures.zoom=!0},removeHooks:function(){L.DomUtil.removeClass(this._map._container,"leaflet-touch-zoom"),this._map.touchGestures.zoom=!1}}),L.Map.addInitHook("addHandler","touchZoom",L.Map.TouchZoom),L.Control.Rotate=L.Control.extend({options:{position:"topleft",closeOnZeroBearing:!0},onAdd:function(t){this._onDeviceOrientation=L.Util.throttle(this._unthrottledOnDeviceOrientation,100,this);var e=this._container=L.DomUtil.create("div","leaflet-control-rotate leaflet-bar"),i=this._arrow=L.DomUtil.create("span","leaflet-control-rotate-arrow");i.style.backgroundImage="url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\")",i.style.cursor="grab",i.style.display="block",i.style.width="100%",i.style.height="100%",i.style.backgroundRepeat="no-repeat",i.style.backgroundPosition="50%";var o=this._link=L.DomUtil.create("a","leaflet-control-rotate-toggle",e);return o.appendChild(i),o.href="#",o.title="Rotate map",L.DomEvent.on(o,"dblclick",L.DomEvent.stopPropagation).on(o,"mousedown",this._handleMouseDown,this).on(o,"click",L.DomEvent.stop).on(o,"click",this._cycleState,this).on(o,"click",this._refocusOnMap,this),L.Browser.any3d||L.DomUtil.addClass(o,"leaflet-disabled"),this._restyle(),t.on("rotate",this._restyle.bind(this)),this._follow=!1,this._canFollow=!1,this.options.closeOnZeroBearing&&0===t.getBearing()&&(e.style.display="none"),e},_handleMouseDown:function(t){L.DomEvent.stopPropagation(t),this.dragging=!0,this.dragstartX=t.pageX,this.dragstartY=t.pageY,L.DomEvent.on(document,"mousemove",this._handleMouseDrag,this).on(document,"mouseup",this._handleMouseUp,this)},_handleMouseUp:function(t){L.DomEvent.stopPropagation(t),this.dragging=!1,L.DomEvent.off(document,"mousemove",this._handleMouseDrag,this).off(document,"mouseup",this._handleMouseUp,this)},_handleMouseDrag:function(t){if(this.dragging){var e=t.clientX-this.dragstartX;this._map.setBearing(e)}},_cycleState:function(t){var e=this._map;e&&(e.touchRotate.enabled()||e.compassBearing.enabled()?e.compassBearing.enabled()?(e.compassBearing.disable(),e.setBearing(0),this.options.closeOnZeroBearing&&e.touchRotate.enable()):(e.touchRotate.disable(),e.compassBearing.enable()):e.touchRotate.enable(),this._restyle())},_restyle:function(){if(this._map.options.rotate){var t=this._map,e=t.getBearing();this.options.closeOnZeroBearing&&e&&(this._container.style.display="block");var i="rotate("+e+"deg)";this._arrow.style.transform=i,t.compassBearing.enabled()?this._link.style.backgroundColor="orange":t.touchRotate.enabled()?this._link.style.backgroundColor=null:(this._link.style.backgroundColor="grey",this.options.closeOnZeroBearing&&0===t.getBearing()&&(this._container.style.display="none"))}else L.DomUtil.addClass(this._link,"leaflet-disabled")}}),L.control.rotate=function(t){return new L.Control.Rotate(t)},L.Map.mergeOptions({rotateControl:!0}),L.Map.addInitHook((function(){if(this.options.rotateControl){var t="object"==typeof this.options.rotateControl?this.options.rotateControl:{};this.rotateControl=L.control.rotate(t),this.addControl(this.rotateControl)}})),
-/*!
- Copyright (c) 2016 Dominik Moritz
-
- This file is part of the leaflet locate control. It is licensed under the MIT license.
- You can find the project at: https://github.com/domoritz/leaflet-locatecontrol
- */
-function(t,e){"function"==typeof define&&define.amd?define(["leaflet"],t):"object"==typeof exports&&(void 0!==e&&e.L?module.exports=t(L):module.exports=t(require("leaflet"))),void 0!==e&&e.L&&(e.L.Control.Locate=t(L))}((function(t){const e=(e,i,o)=>{(o=o.split(" ")).forEach((function(o){t.DomUtil[e].call(this,i,o)}))},i=(t,i)=>e("addClass",t,i),o=(t,i)=>e("removeClass",t,i),n=t.Marker.extend({initialize(e,i){t.Util.setOptions(this,i),this._latlng=e,this.createIcon()},createIcon(){const e=this.options;let i="";void 0!==e.color&&(i+=`stroke:${e.color};`),void 0!==e.weight&&(i+=`stroke-width:${e.weight};`),void 0!==e.fillColor&&(i+=`fill:${e.fillColor};`),void 0!==e.fillOpacity&&(i+=`fill-opacity:${e.fillOpacity};`),void 0!==e.opacity&&(i+=`opacity:${e.opacity};`);const o=this._getIconSVG(e,i);this._locationIcon=t.divIcon({className:o.className,html:o.svg,iconSize:[o.w,o.h]}),this.setIcon(this._locationIcon)},_getIconSVG(t,e){const i=t.radius,o=i+t.weight,n=2*o;return{className:"leaflet-control-locate-location",svg:`',w:n,h:n}},setStyle(e){t.Util.setOptions(this,e),this.createIcon()}}),s=n.extend({initialize(e,i,o){t.Util.setOptions(this,o),this._latlng=e,this._heading=i,this.createIcon()},setHeading(t){this._heading=t},_getIconSVG(t,e){const i=t.radius,o=t.width+t.weight,n=2*(i+t.depth+t.weight),s=`M0,0 l${t.width/2},${t.depth} l-${o},0 z`;return{className:"leaflet-control-locate-heading",svg:`',w:o,h:n}}}),a=t.Control.extend({options:{position:"topleft",layer:void 0,setView:"untilPanOrZoom",keepCurrentZoomLevel:!1,initialZoomLevel:!1,getLocationBounds:t=>t.bounds,flyTo:!1,clickBehavior:{inView:"stop",outOfView:"setView",inViewNotFollowing:"inView"},returnToPrevBounds:!1,cacheLocation:!0,drawCircle:!0,drawMarker:!0,showCompass:!0,markerClass:n,compassClass:s,circleStyle:{className:"leaflet-control-locate-circle",color:"#136AEC",fillColor:"#136AEC",fillOpacity:.15,weight:0},markerStyle:{className:"leaflet-control-locate-marker",color:"#fff",fillColor:"#2A93EE",fillOpacity:1,weight:3,opacity:1,radius:9},compassStyle:{fillColor:"#2A93EE",fillOpacity:1,weight:0,color:"#fff",opacity:1,radius:9,width:9,depth:6},followCircleStyle:{},followMarkerStyle:{},followCompassStyle:{},icon:"leaflet-control-locate-location-arrow",iconLoading:"leaflet-control-locate-spinner",iconElementTag:"span",textElementTag:"small",circlePadding:[0,0],metric:!0,createButtonCallback(e,i){const o=t.DomUtil.create("a","leaflet-bar-part leaflet-bar-part-single",e);o.title=i.strings.title,o.href="#",o.setAttribute("role","button");const n=t.DomUtil.create(i.iconElementTag,i.icon,o);if(void 0!==i.strings.text){t.DomUtil.create(i.textElementTag,"leaflet-locate-text",o).textContent=i.strings.text,o.classList.add("leaflet-locate-text-active"),o.parentNode.style.display="flex",i.icon.length>0&&n.classList.add("leaflet-locate-icon")}return{link:o,icon:n}},onLocationError(t,e){alert(t.message)},onLocationOutsideMapBounds(t){t.stop(),alert(t.options.strings.outsideMapBoundsMsg)},showPopup:!0,strings:{title:"Show me where I am",metersUnit:"meters",feetUnit:"feet",popup:"You are within {distance} {unit} from this point",outsideMapBoundsMsg:"You seem located outside the boundaries of the map"},locateOptions:{maxZoom:1/0,watch:!0,setView:!1}},initialize(e){for(const i in e)"object"==typeof this.options[i]?t.extend(this.options[i],e[i]):this.options[i]=e[i];this.options.followMarkerStyle=t.extend({},this.options.markerStyle,this.options.followMarkerStyle),this.options.followCircleStyle=t.extend({},this.options.circleStyle,this.options.followCircleStyle),this.options.followCompassStyle=t.extend({},this.options.compassStyle,this.options.followCompassStyle)},onAdd(e){const i=t.DomUtil.create("div","leaflet-control-locate leaflet-bar leaflet-control");this._container=i,this._map=e,this._layer=this.options.layer||new t.LayerGroup,this._layer.addTo(e),this._event=void 0,this._compassHeading=null,this._prevBounds=null;const o=this.options.createButtonCallback(i,this.options);return this._link=o.link,this._icon=o.icon,t.DomEvent.on(this._link,"click",(function(e){t.DomEvent.stopPropagation(e),t.DomEvent.preventDefault(e),this._onClick()}),this).on(this._link,"dblclick",t.DomEvent.stopPropagation),this._resetVariables(),this._map.on("unload",this._unload,this),i},_onClick(){this._justClicked=!0;const t=this._isFollowing();if(this._userPanned=!1,this._userZoomed=!1,this._active&&!this._event)this.stop();else if(this._active){const e=this.options.clickBehavior;let i=e.outOfView;switch(this._map.getBounds().contains(this._event.latlng)&&(i=t?e.inView:e.inViewNotFollowing),e[i]&&(i=e[i]),i){case"setView":this.setView();break;case"stop":if(this.stop(),this.options.returnToPrevBounds){(this.options.flyTo?this._map.flyToBounds:this._map.fitBounds).bind(this._map)(this._prevBounds)}}}else this.options.returnToPrevBounds&&(this._prevBounds=this._map.getBounds()),this.start();this._updateContainerStyle()},start(){this._activate(),this._event&&(this._drawMarker(this._map),this.options.setView&&this.setView()),this._updateContainerStyle()},stop(){this._deactivate(),this._cleanClasses(),this._resetVariables(),this._removeMarker()},stopFollowing(){this._userPanned=!0,this._updateContainerStyle(),this._drawMarker()},_activate(){if(!this._active&&(this._map.locate(this.options.locateOptions),this._map.fire("locateactivate",this),this._active=!0,this._map.on("locationfound",this._onLocationFound,this),this._map.on("locationerror",this._onLocationError,this),this._map.on("dragstart",this._onDrag,this),this._map.on("zoomstart",this._onZoom,this),this._map.on("zoomend",this._onZoomEnd,this),this.options.showCompass)){const e="ondeviceorientationabsolute"in window;if(e||"ondeviceorientation"in window){const i=this,o=function(){t.DomEvent.on(window,e?"deviceorientationabsolute":"deviceorientation",i._onDeviceOrientation,i)};DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(t){"granted"===t&&o()})):o()}}},_deactivate(){this._map.stopLocate(),this._map.fire("locatedeactivate",this),this._active=!1,this.options.cacheLocation||(this._event=void 0),this._map.off("locationfound",this._onLocationFound,this),this._map.off("locationerror",this._onLocationError,this),this._map.off("dragstart",this._onDrag,this),this._map.off("zoomstart",this._onZoom,this),this._map.off("zoomend",this._onZoomEnd,this),this.options.showCompass&&(this._compassHeading=null,"ondeviceorientationabsolute"in window?t.DomEvent.off(window,"deviceorientationabsolute",this._onDeviceOrientation,this):"ondeviceorientation"in window&&t.DomEvent.off(window,"deviceorientation",this._onDeviceOrientation,this))},setView(){if(this._drawMarker(),this._isOutsideMapBounds())this._event=void 0,this.options.onLocationOutsideMapBounds(this);else if(this._justClicked&&!1!==this.options.initialZoomLevel)(e=this.options.flyTo?this._map.flyTo:this._map.setView).bind(this._map)([this._event.latitude,this._event.longitude],this.options.initialZoomLevel);else if(this.options.keepCurrentZoomLevel){(e=this.options.flyTo?this._map.flyTo:this._map.panTo).bind(this._map)([this._event.latitude,this._event.longitude])}else{var e=this.options.flyTo?this._map.flyToBounds:this._map.fitBounds;this._ignoreEvent=!0,e.bind(this._map)(this.options.getLocationBounds(this._event),{padding:this.options.circlePadding,maxZoom:this.options.initialZoomLevel||this.options.locateOptions.maxZoom}),t.Util.requestAnimFrame((function(){this._ignoreEvent=!1}),this)}},_drawCompass(){if(!this._event)return;const t=this._event.latlng;if(this.options.showCompass&&t&&null!==this._compassHeading){const e=this._isFollowing()?this.options.followCompassStyle:this.options.compassStyle;this._compass?(this._compass.setLatLng(t),this._compass.setHeading(this._compassHeading),this._compass.setStyle&&this._compass.setStyle(e)):this._compass=new this.options.compassClass(t,this._compassHeading,e).addTo(this._layer)}!this._compass||this.options.showCompass&&null!==this._compassHeading||(this._compass.removeFrom(this._layer),this._compass=null)},_drawMarker(){void 0===this._event.accuracy&&(this._event.accuracy=0);const e=this._event.accuracy,i=this._event.latlng;if(this.options.drawCircle){const o=this._isFollowing()?this.options.followCircleStyle:this.options.circleStyle;this._circle?this._circle.setLatLng(i).setRadius(e).setStyle(o):this._circle=t.circle(i,e,o).addTo(this._layer)}let o,n;if(this.options.metric?(o=e.toFixed(0),n=this.options.strings.metersUnit):(o=(3.2808399*e).toFixed(0),n=this.options.strings.feetUnit),this.options.drawMarker){const t=this._isFollowing()?this.options.followMarkerStyle:this.options.markerStyle;this._marker?(this._marker.setLatLng(i),this._marker.setStyle&&this._marker.setStyle(t)):this._marker=new this.options.markerClass(i,t).addTo(this._layer)}this._drawCompass();const s=this.options.strings.popup;function a(){return"string"==typeof s?t.Util.template(s,{distance:o,unit:n}):"function"==typeof s?s({distance:o,unit:n}):s}this.options.showPopup&&s&&this._marker&&this._marker.bindPopup(a())._popup.setLatLng(i),this.options.showPopup&&s&&this._compass&&this._compass.bindPopup(a())._popup.setLatLng(i)},_removeMarker(){this._layer.clearLayers(),this._marker=void 0,this._circle=void 0},_unload(){this.stop(),this._map.off("unload",this._unload,this)},_setCompassHeading(e){!isNaN(parseFloat(e))&&isFinite(e)?(e=Math.round(e),this._compassHeading=e,t.Util.requestAnimFrame(this._drawCompass,this)):this._compassHeading=null},_onCompassNeedsCalibration(){this._setCompassHeading()},_onDeviceOrientation(t){this._active&&(t.webkitCompassHeading?this._setCompassHeading(t.webkitCompassHeading):t.absolute&&t.alpha&&this._setCompassHeading(360-t.alpha))},_onLocationError(t){3==t.code&&this.options.locateOptions.watch||(this.stop(),this.options.onLocationError(t,this))},_onLocationFound(t){if((!this._event||this._event.latlng.lat!==t.latlng.lat||this._event.latlng.lng!==t.latlng.lng||this._event.accuracy!==t.accuracy)&&this._active){switch(this._event=t,this._drawMarker(),this._updateContainerStyle(),this.options.setView){case"once":this._justClicked&&this.setView();break;case"untilPan":this._userPanned||this.setView();break;case"untilPanOrZoom":this._userPanned||this._userZoomed||this.setView();break;case"always":this.setView()}this._justClicked=!1}},_onDrag(){this._event&&!this._ignoreEvent&&(this._userPanned=!0,this._updateContainerStyle(),this._drawMarker())},_onZoom(){this._event&&!this._ignoreEvent&&(this._userZoomed=!0,this._updateContainerStyle(),this._drawMarker())},_onZoomEnd(){this._event&&this._drawCompass(),this._event&&!this._ignoreEvent&&this._marker&&!this._map.getBounds().pad(-.3).contains(this._marker.getLatLng())&&(this._userPanned=!0,this._updateContainerStyle(),this._drawMarker())},_isFollowing(){return!!this._active&&("always"===this.options.setView||("untilPan"===this.options.setView?!this._userPanned:"untilPanOrZoom"===this.options.setView?!this._userPanned&&!this._userZoomed:void 0))},_isOutsideMapBounds(){return void 0!==this._event&&(this._map.options.maxBounds&&!this._map.options.maxBounds.contains(this._event.latlng))},_updateContainerStyle(){this._container&&(this._active&&!this._event?this._setClasses("requesting"):this._isFollowing()?this._setClasses("following"):this._active?this._setClasses("active"):this._cleanClasses())},_setClasses(t){"requesting"==t?(o(this._container,"active following"),i(this._container,"requesting"),o(this._icon,this.options.icon),i(this._icon,this.options.iconLoading)):"active"==t?(o(this._container,"requesting following"),i(this._container,"active"),o(this._icon,this.options.iconLoading),i(this._icon,this.options.icon)):"following"==t&&(o(this._container,"requesting"),i(this._container,"active following"),o(this._icon,this.options.iconLoading),i(this._icon,this.options.icon))},_cleanClasses(){t.DomUtil.removeClass(this._container,"requesting"),t.DomUtil.removeClass(this._container,"active"),t.DomUtil.removeClass(this._container,"following"),o(this._icon,this.options.iconLoading),i(this._icon,this.options.icon)},_resetVariables(){this._active=!1,this._justClicked=!1,this._userPanned=!1,this._userZoomed=!1}});return t.control.locate=e=>new t.Control.Locate(e),a}),window),d="undefined"!=typeof self?self:window,u=function(){var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},e=function(){for(var e,i=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=0,n=i.length,s={};oGoogle',pane:"overlayPane",type:null},pano:{enableCloseButton:!0,fullscreenControl:!1,imageDateControl:!0},marker:{draggable:!0,icon:L.icon({className:"pegman-marker",iconSize:[52,52],iconAnchor:[24,33],iconUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAFElEQVR4XgXAAQ0AAABAMP1L30IDCPwC/o5WcS4AAAAASUVORK5CYII="})}},__interactURL:"https://unpkg.com/interactjs@1.2.9/dist/interact.min.js",__gmapsURL:"https://maps.googleapis.com/maps/api/js?v=3",__mutantURL:"https://unpkg.com/leaflet.gridlayer.googlemutant@0.10.0/Leaflet.GoogleMutant.js",initialize:function(t){void 0!==t.logging&&(t.debug=t.logging),L.Util.setOptions(this,t),this._mousePos={direction:{},old:{}},this._pegmanMarkerCoords=null,this._streetViewCoords=null,this._streetViewLayerEnabled=!1,this._dropzoneMapOpts={accept:".draggable",overlap:.75,ondropactivate:L.bind(this.onDropZoneActivated,this),ondragenter:L.bind(this.onDropZoneDragEntered,this),ondragleave:L.bind(this.onDropZoneDragLeaved,this),ondrop:L.bind(this.onDropZoneDropped,this),ondropdeactivate:L.bind(this.onDropZoneDeactivated,this)},this._draggableMarkerOpts={inertia:!1,onmove:L.bind(this.onDraggableMove,this),onend:L.bind(this.onDraggableEnd,this)},this._lazyLoaderAdded=!1},onAdd:function(t){return this._map=t,this._container=L.DomUtil.create("div","leaflet-pegman pegman-control leaflet-bar"),this._pegman=L.DomUtil.create("div","pegman draggable drag-drop",this._container),this._pegmanButton=L.DomUtil.create("div","pegman-button",this._container),this._pegmanMarker=L.marker([0,0],this.options.marker),this._panoDiv=this.options.panoDiv?document.querySelector(this.options.panoDiv):L.DomUtil.create("div","",this._map._container),L.DomUtil.addClass(this._panoDiv,"pano-canvas"),L.DomUtil.addClass(this._map._container,this.options.theme),L.DomEvent.disableClickPropagation(this._panoDiv),L.DomEvent.on(this._container,"click mousedown dblclick",this._disableClickPropagation,this),this._container.addEventListener("touchstart",this._loadScripts.bind(this,!L.Browser.touch),{once:!0}),this._container.addEventListener("mousedown",this._loadScripts.bind(this,!0),{once:!0}),this._container.addEventListener("mouseover",this._loadScripts.bind(this,!1),{once:!0}),this._loadInteractHandlers(),this._loadGoogleHandlers(),L.DomEvent.on(document,"mousemove",this.mouseMoveTracking,this),L.DomEvent.on(document,"keyup",this.keyUpTracking,this),this._pegmanMarker.on("dragend",this.onPegmanMarkerDragged,this),this._map.on("click",this.onMapClick,this),this._map.on("layeradd",this.onMapLayerAdd,this),this._container},onRemove:function(t){this._googleStreetViewLayer&&this._googleStreetViewLayer.remove(),this._pegmanMarker&&this._pegmanMarker.remove(),L.DomUtil.remove(this._panoDiv),L.DomEvent.off(document,"mousemove",this.mouseMoveTracking,this),L.DomEvent.off(document,"keyup",this.keyUpTracking,this),t.off("mousemove",this._setMouseCursor,this)},_log:function(t){this.options.debug&&console.log(t)},_addClasses:function(t,e){for(var i in e=e.split(" "))L.DomUtil.addClass(t,e[i])},_removeClasses:function(t,e){for(var i in e=e.split(" "))L.DomUtil.removeClass(t,e[i])},_removeAttributes:function(t,e){for(var i in e)t.removeAttribute(e[i])},_insertAfter:function(t,e){t.parentNode.insertBefore(e,t.nextSibling)},_translateElement:function(t,e,i){!1===e&&!1===i&&this._removeAttributes(this._pegman,["style","data-x","data-y"]);var o=(parseFloat(t.getAttribute("data-x"))||0)+e,n=(parseFloat(t.getAttribute("data-y"))||0)+i;t.style.webkitTransform=t.style.transform="translate("+o+"px, "+n+"px)",t.setAttribute("data-x",o),t.setAttribute("data-y",n)},_updateClasses:function(t){switch(t){case"pegman-dragging":this._removeClasses(this._pegman,"dropped"),this._addClasses(this._container,"dragging");break;case"pegman-dragged":this._removeClasses(this._pegman,"can-drop dragged left right active dropped"),this._removeAttributes(this._pegman,["style","data-x","data-y"]);break;case"dropzone-actived":this._addClasses(this._map._container,"drop-active");break;case"dropzone-drag-entered":this._addClasses(this._pegman,"active can-drop"),this._addClasses(this._map._container,"drop-target");break;case"dropzone-drag-leaved":this._removeClasses(this._map._container,"drop-target"),this._removeClasses(this._pegman,"can-drop");break;case"dropzone-drop":this._removeClasses(this._container,"dragging"),this._removeClasses(this._pegman,"active left right"),this._addClasses(this._pegman,"dropped"),this._removeClasses(this._pegman,"can-drop dragged left right active dropped");break;case"dropzone-deactivated":this._removeClasses(this._pegman,"active left right"),this._removeClasses(this._map._container,"drop-active drop-target");break;case"mousemove-top":this._addClasses(this._pegman,"top"),this._removeClasses(this._pegman,"bottom right left");break;case"mousemove-bottom":this._addClasses(this._pegman,"bottom"),this._removeClasses(this._pegman,"top right left");break;case"mousemove-left":this._addClasses(this._pegman,"left"),this._removeClasses(this._pegman,"right top bottom");break;case"mousemove-right":this._addClasses(this._pegman,"right"),this._removeClasses(this._pegman,"left top bottom");break;case"pegman-added":this._addClasses(this._container,"active");break;case"pegman-removed":this._removeClasses(this._container,"active");break;case"streetview-shown":this._addClasses(this._container,"streetview-layer-active");break;case"streetview-hidden":this._removeClasses(this._container,"streetview-layer-active");break;default:throw"Unhandled event:"+t}this.fire("svpc_"+t)},onDraggableMove:function(t){this.mouseMoveTracking(t),this.pegmanRemove(),this._updateClasses("pegman-dragging"),this._translateElement(this._pegman,t.dx,t.dy)},onDraggableEnd:function(t){this._pegmanMarkerCoords=this._map.mouseEventToLatLng(t),this.pegmanAdd(),this.findStreetViewData(this._pegmanMarkerCoords.lat,this._pegmanMarkerCoords.lng),this._updateClasses("pegman-dragged")},onDropZoneActivated:function(t){this._updateClasses("dropzone-actived")},onDropZoneDragEntered:function(t){this.showStreetViewLayer(),this._updateClasses("dropzone-drag-entered")},onDropZoneDragLeaved:function(t){this._updateClasses("dropzone-drag-leaved")},onDropZoneDropped:function(t){this._updateClasses("dropzone-drop"),this._translateElement(this._pegman,!1,!1)},onDropZoneDeactivated:function(t){this._updateClasses("dropzone-deactivated")},onPegmanMarkerDragged:function(t){this._pegmanMarkerCoords=this._pegmanMarker.getLatLng(),this.findStreetViewData(this._pegmanMarkerCoords.lat,this._pegmanMarkerCoords.lng)},onMapClick:function(t){this._streetViewLayerEnabled&&this.findStreetViewData(t.latlng.lat,t.latlng.lng)},onMapLayerAdd:function(t){this._googleStreetViewLayer&&this._googleStreetViewLayer.bringToFront()},onStreetViewPanoramaClose:function(){this.clear()},onPanoramaPositionChanged:function(){var t=this._panorama.getPosition();t=L.latLng(t.lat(),t.lng()),this._map&&!this._map.getBounds().pad(-.05).contains(t)&&this._map.panTo(t),this._pegmanMarker.setLatLng(t)},onPanoramaPovChanged:function(){var t=this._panorama.getPov();this._pegmanMarker.getElement().style.backgroundPosition="0 "+-Math.abs(Math.round(t.heading/22.5)%16*Math.round(835/16))+"px"},clear:function(){this.pegmanRemove(),this.hideStreetViewLayer(),this.closeStreetViewPanorama()},toggleStreetViewLayer:function(t){this._streetViewLayerEnabled?this.clear():this.showStreetViewLayer(),this._log("streetview-layer-toggled")},pegmanAdd:function(){this._pegmanMarker.addTo(this._map),this._pegmanMarker.setLatLng(this._pegmanMarkerCoords),this.findStreetViewData(this._pegmanMarkerCoords.lat,this._pegmanMarkerCoords.lng),this._updateClasses("pegman-added")},pegmanRemove:function(){this._pegmanMarker.removeFrom(this._map),this._updateClasses("pegman-removed")},closeStreetViewPanorama:function(){this._panoDiv.style.display="none"},openStreetViewPanorama:function(){this._panoDiv.style.display="block"},hideStreetViewLayer:function(){this._googleStreetViewLayer&&(this._googleStreetViewLayer.removeFrom(this._map),this._streetViewLayerEnabled=!1,this._updateClasses("streetview-hidden"))},showStreetViewLayer:function(){this._googleStreetViewLayer&&(this._googleStreetViewLayer.addTo(this._map),this._streetViewLayerEnabled=!0,this._updateClasses("streetview-shown"))},findStreetViewData:function(t,e){if("undefined"==typeof google)return this._loadScripts(!0),this.once("svpc_streetview-shown",L.bind(this.findStreetViewData,this,t,e));if(!this._pegmanMarker._map&&this._map)return this._pegmanMarkerCoords=L.latLng(t,e),this.pegmanAdd();this._streetViewCoords=new google.maps.LatLng(t,e);var i=this._map.getZoom(),o=100;o=i<6?5e3:i<10?500:i<15?250:i>=17?50:100,this._streetViewService.getPanoramaByLocation(this._streetViewCoords,o,L.bind(this.processStreetViewServiceData,this))},processStreetViewServiceData:function(t,e){e==google.maps.StreetViewStatus.OK?(this.openStreetViewPanorama(),this._panorama.setPano(t.location.pano),this._panorama.setPov({heading:google.maps.geometry.spherical.computeHeading(t.location.latLng,this._streetViewCoords),pitch:0,zoom:0}),this._panorama.setVisible(!0)):console.warn("Street View data not found for this location.")},mouseMoveTracking:function(t){var e=this._mousePos;t.pageYe.old.y&&(e.direction.y="bottom",this._updateClasses("mousemove-bottom")),t.pageXe.old.x&&(e.direction.x="right",this._updateClasses("mousemove-right")),e.old.x=t.pageX,e.old.y=t.pageY},keyUpTracking:function(t){27==t.keyCode&&(this._log("escape pressed"),this.clear())},_disableClickPropagation:function(t){L.DomEvent.stopPropagation(t),L.DomEvent.preventDefault(t)},_loadGoogleHandlers:function(t){"object"==typeof google&&"object"==typeof google.maps&&"function"==typeof L.GridLayer.GoogleMutant&&(this._initGoogleMaps(t),this._initMouseTracker())},_initGoogleMaps:function(t){this._googleStreetViewLayer=L.gridLayer.googleMutant(this.options.mutant),this._googleStreetViewLayer.addGoogleLayer("StreetViewCoverageLayer"),this._panorama=new google.maps.StreetViewPanorama(this._panoDiv,this.options.pano),this._streetViewService=new google.maps.StreetViewService,this._panorama.addListener("closeclick",L.bind(this.onStreetViewPanoramaClose,this)),this._panorama.addListener("position_changed",L.bind(this.onPanoramaPositionChanged,this)),this._panorama.addListener("pov_changed",L.bind(this.onPanoramaPovChanged,this)),t&&this.showStreetViewLayer()},_initMouseTracker:function(){if(this._googleStreetViewLayer){var t=this._googleStreetViewLayer.getTileSize();this.tileWidth=t.x,this.tileHeight=t.y,this.defaultDraggableCursor=this._map._container.style.cursor,this._map.on("mousemove",this._setMouseCursor,this)}},_setMouseCursor:function(t){var e=this._getTileCoords(t.latlng.lat,t.latlng.lng,this._map.getZoom()),i=this._getTileImage(e),o=this._getTilePixelPoint(i,t.originalEvent),n=this._hasTileData(i,o);this._map._container.style.cursor=n?"pointer":this.defaultDraggableCursor},_getTileCoords:function(t,e,i){return{x:parseInt(Math.floor((e+180)/360*(1<=0},_parseGestureHandlingOptions:function(){var t=this._map.options.gestureHandlingOptions.text||this._map.options.gestureHandlingText||C.text,e=this._map.options.gestureHandlingOptions.duration||this._map.options.gestureHandlingDuration||C.duration,i=L.extend(this._map.options.gestureHandlingOptions,C);return i.text=t,i.duration=e,i},_setGestureHandlingOptions:function(){var t=this._parseGestureHandlingOptions();(this._isLanguageContent(t.text)?Promise.resolve(t.text):this._getLanguageContent(t.locale)).then((t=>{this._map._container.setAttribute("data-gesture-handling-touch-content",t.touch),this._map._container.setAttribute("data-gesture-handling-scroll-content",t.scroll),this._touchWarning=t.touch,this._scrollWarning=t.scroll}))},_getUserLanguage:function(){return navigator.languages?navigator.languages[0]:navigator.language||navigator.userLanguage},_getLanguageContent:function(t){t=t||this._getUserLanguage()||"en";var e,i=new Promise((t=>{e=t})),o=t=>{var i=t.default||{};i.scroll=this._isMacUser()?i.scrollMac:i.scroll,e(i)};return import(g+"./locales/"+t+".js").then(o).catch((e=>import(g+"./locales/"+t.split("-")[0]+".js").then(o).catch((t=>Promise.resolve({default:m}).then(o))))),i},_handleTouch:function(t){L.DomUtil.hasClass(t.target,"leaflet-interactive")||t.target.closest(".leaflet-control-container")||t.target.closest(".leaflet-popup-pane")?L.DomUtil.hasClass(t.target,"leaflet-interactive")&&"touchmove"===t.type&&1===t.touches.length?this._enableTouchWarning():this._disableTouchWarning():"touchmove"!==t.type&&"touchstart"!==t.type?this._disableTouchWarning():1===t.touches.length?this._enableTouchWarning():(t.preventDefault(),this._disableTouchWarning(),this._enableInteractions())},_enableTouchWarning:function(){this._enableWarning("touch"),this._disableInteractions()},_disableTouchWarning:function(t){clearTimeout(this._isTouching),this._isTouching=setTimeout(L.bind((function(){this._disableWarning("touch")}),this),t||0)},_enableScrollWarning:function(){this._enableWarning("scroll"),this._disableInteraction("scrollWheelZoom")},_disableScrollWarning:function(t){clearTimeout(this._isScrolling),this._isScrolling=setTimeout(L.bind((function(){this._disableWarning("scroll"),this._enableInteraction("scrollWheelZoom")}),this),t||0)},_handleScroll:function(t){this._map.scrollWheelZoom&&this._map.scrollWheelZoom.enabled()&&(t.metaKey||t.ctrlKey||t.shiftKey&&this._map._rotate?(t.preventDefault(),this._disableScrollWarning()):(this._enableScrollWarning(),this._disableScrollWarning(this._map.options.gestureHandlingOptions.duration)))},_handleScrollOnPopup:function(t){L.DomEvent["popupopen"==t.type?"on":"off"](t.popup._contentNode,"wheel",this._handleScroll,this)},_handleMouseOver:function(t){this._enableInteractions()},_handleMouseOut:function(t){w||this._disableInteractions()},_onExitFullscreen:function(){this._map.options.gestureHandling&&this._map.gestureHandling.enable()},_onEnterFullscreen:function(){this._map.options.gestureHandling&&this._map.gestureHandling.disable()}});L.Map.mergeOptions({gestureHandlingOptions:C}),L.Map.addInitHook("addHandler","gestureHandling",M),L.Control.EditInOSM=L.Control.extend({options:{position:"bottomright",editor:!1},_edit:function(){var t=this._map.getCenter(),e=this._map.getZoom(),i=this.options.editor?"&editor="+this.options.editor:"";window.open("http://www.openstreetmap.org/edit?zoom="+e+i+"&lat="+t.lat+"&lon="+t.lng)},onAdd:function(t){var e=L.DomUtil.create("div","leaflet-control-attribution leaflet-edit-osm"),i=L.DomUtil.create("a","",e);return i.href="#",i.innerHTML="✎ Edit",i.title="Edit in OpenStreetMap",L.DomEvent.on(i,"click",L.DomEvent.stopPropagation).on(i,"mousedown",L.DomEvent.stopPropagation).on(i,"dblclick",L.DomEvent.stopPropagation).on(i,"click",L.DomEvent.preventDefault).on(i,"click",L.bind(this._edit,this),this),e}}),L.control.editInOSM=function(t){return new L.Control.EditInOSM(t)},
-/**
- * leaflet-control-layers-inline
- *
- * @author Raruto
- * @license GPL-3.0+
- * @link https://github.com/Raruto/leaflet-control-layers-inline
- * @desc Leaflet plugin that allows to display inline layers control
- */
-_=L.Control.Layers.prototype,f=_.initialize,y=_.onAdd,_.options.inline=!1,L.Control.Layers.include({initialize:function(t,e,i){i.inline&&(i.collapsed=!1),f.call(this,t,e,i)},onAdd:function(t){return y.call(this,t),this.options.inline&&(this.options.collapsed=!1,L.DomUtil.addClass(this._container,"leaflet-control-layers-inline")),this.options.className&&L.DomUtil.addClass(this._container,this.options.className),this._container}}),function(t,e){"function"==typeof define&&define.amd?define(["leaflet"],t):"object"==typeof exports&&(module.exports=t(require("leaflet"))),void 0!==e&&e.L&&(e.L.Control.MiniMap=t(L),e.L.control.minimap=function(t,i){return new e.L.Control.MiniMap(t,i)})}((function(t){var e=t.Control.extend({includes:t.Evented?t.Evented.prototype:t.Mixin.Events,options:{position:"bottomright",toggleDisplay:!1,zoomLevelOffset:-5,zoomLevelFixed:!1,centerFixed:!1,zoomAnimation:!1,autoToggleDisplay:!1,minimized:!1,width:150,height:150,collapsedWidth:19,collapsedHeight:19,aimingRectOptions:{color:"#ff7800",weight:1,clickable:!1},shadowRectOptions:{color:"#000000",weight:1,clickable:!1,opacity:0,fillOpacity:0},strings:{hideText:"Hide MiniMap",showText:"Show MiniMap"},mapOptions:{}},initialize:function(e,i){t.Util.setOptions(this,i),this.options.aimingRectOptions.clickable=!1,this.options.shadowRectOptions.clickable=!1,this._layer=e},onAdd:function(e){this._mainMap=e,this._container=t.DomUtil.create("div","leaflet-control-minimap"),this._container.style.width=this.options.width+"px",this._container.style.height=this.options.height+"px",t.DomEvent.disableClickPropagation(this._container),t.DomEvent.on(this._container,"mousewheel",t.DomEvent.stopPropagation);var i={attributionControl:!1,dragging:!this.options.centerFixed,zoomControl:!1,zoomAnimation:this.options.zoomAnimation,autoToggleDisplay:this.options.autoToggleDisplay,touchZoom:this.options.centerFixed?"center":!this._isZoomLevelFixed(),scrollWheelZoom:this.options.centerFixed?"center":!this._isZoomLevelFixed(),doubleClickZoom:this.options.centerFixed?"center":!this._isZoomLevelFixed(),boxZoom:!this._isZoomLevelFixed(),crs:e.options.crs};return i=t.Util.extend(this.options.mapOptions,i),this._miniMap=new t.Map(this._container,i),this._miniMap.addLayer(this._layer),this._mainMapMoving=!1,this._miniMapMoving=!1,this._userToggledDisplay=!1,this._minimized=!1,this.options.toggleDisplay&&this._addToggleButton(),this._miniMap.whenReady(t.Util.bind((function(){this._aimingRect=t.rectangle(this._mainMap.getBounds(),this.options.aimingRectOptions).addTo(this._miniMap),this._shadowRect=t.rectangle(this._mainMap.getBounds(),this.options.shadowRectOptions).addTo(this._miniMap),this._mainMap.on("moveend",this._onMainMapMoved,this),this._mainMap.on("move",this._onMainMapMoving,this),this._miniMap.on("movestart",this._onMiniMapMoveStarted,this),this._miniMap.on("move",this._onMiniMapMoving,this),this._miniMap.on("moveend",this._onMiniMapMoved,this)}),this)),this._container},addTo:function(e){t.Control.prototype.addTo.call(this,e);var i=this.options.centerFixed||this._mainMap.getCenter();return this._miniMap.setView(i,this._decideZoom(!0)),this._setDisplay(this.options.minimized),this},onRemove:function(t){this._mainMap.off("moveend",this._onMainMapMoved,this),this._mainMap.off("move",this._onMainMapMoving,this),this._miniMap.off("moveend",this._onMiniMapMoved,this),this._miniMap.removeLayer(this._layer)},changeLayer:function(t){this._miniMap.removeLayer(this._layer),this._layer=t,this._miniMap.addLayer(this._layer)},_addToggleButton:function(){this._toggleDisplayButton=this.options.toggleDisplay?this._createButton("",this._toggleButtonInitialTitleText(),"leaflet-control-minimap-toggle-display leaflet-control-minimap-toggle-display-"+this.options.position,this._container,this._toggleDisplayButtonClicked,this):void 0,this._toggleDisplayButton.style.width=this.options.collapsedWidth+"px",this._toggleDisplayButton.style.height=this.options.collapsedHeight+"px"},_toggleButtonInitialTitleText:function(){return this.options.minimized?this.options.strings.showText:this.options.strings.hideText},_createButton:function(e,i,o,n,s,a){var r=t.DomUtil.create("a",o,n);r.innerHTML=e,r.href="#",r.title=i;var l=t.DomEvent.stopPropagation;return t.DomEvent.on(r,"click",l).on(r,"mousedown",l).on(r,"dblclick",l).on(r,"click",t.DomEvent.preventDefault).on(r,"click",s,a),r},_toggleDisplayButtonClicked:function(){this._userToggledDisplay=!0,this._minimized?this._restore():this._minimize()},_setDisplay:function(t){t!==this._minimized&&(this._minimized?this._restore():this._minimize())},_minimize:function(){this.options.toggleDisplay?(this._container.style.width=this.options.collapsedWidth+"px",this._container.style.height=this.options.collapsedHeight+"px",this._toggleDisplayButton.className+=" minimized-"+this.options.position,this._toggleDisplayButton.title=this.options.strings.showText):this._container.style.display="none",this._minimized=!0,this._onToggle()},_restore:function(){this.options.toggleDisplay?(this._container.style.width=this.options.width+"px",this._container.style.height=this.options.height+"px",this._toggleDisplayButton.className=this._toggleDisplayButton.className.replace("minimized-"+this.options.position,""),this._toggleDisplayButton.title=this.options.strings.hideText):this._container.style.display="block",this._minimized=!1,this._onToggle()},_onMainMapMoved:function(t){if(this._miniMapMoving)this._miniMapMoving=!1;else{var e=this.options.centerFixed||this._mainMap.getCenter();this._mainMapMoving=!0,this._miniMap.setView(e,this._decideZoom(!0)),this._setDisplay(this._decideMinimized())}this._aimingRect.setBounds(this._mainMap.getBounds())},_onMainMapMoving:function(t){this._aimingRect.setBounds(this._mainMap.getBounds())},_onMiniMapMoveStarted:function(t){if(!this.options.centerFixed){var e=this._aimingRect.getBounds(),i=this._miniMap.latLngToContainerPoint(e.getSouthWest()),o=this._miniMap.latLngToContainerPoint(e.getNorthEast());this._lastAimingRectPosition={sw:i,ne:o}}},_onMiniMapMoving:function(e){this.options.centerFixed||!this._mainMapMoving&&this._lastAimingRectPosition&&(this._shadowRect.setBounds(new t.LatLngBounds(this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.sw),this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.ne))),this._shadowRect.setStyle({opacity:1,fillOpacity:.3}))},_onMiniMapMoved:function(t){this._mainMapMoving?this._mainMapMoving=!1:(this._miniMapMoving=!0,this._mainMap.setView(this._miniMap.getCenter(),this._decideZoom(!1)),this._shadowRect.setStyle({opacity:0,fillOpacity:0}))},_isZoomLevelFixed:function(){var t=this.options.zoomLevelFixed;return this._isDefined(t)&&this._isInteger(t)},_decideZoom:function(t){if(this._isZoomLevelFixed())return t?this.options.zoomLevelFixed:this._mainMap.getZoom();if(t)return this._mainMap.getZoom()+this.options.zoomLevelOffset;var e,i=this._miniMap.getZoom()-this._mainMap.getZoom(),o=this._miniMap.getZoom()-this.options.zoomLevelOffset;return i>this.options.zoomLevelOffset&&this._mainMap.getZoom()this._lastMiniMapZoom?(e=this._mainMap.getZoom()+1,this._miniMap.setZoom(this._miniMap.getZoom()-1)):e=this._mainMap.getZoom():e=o,this._lastMiniMapZoom=this._miniMap.getZoom(),e},_decideMinimized:function(){return this._userToggledDisplay?this._minimized:this.options.autoToggleDisplay?!!this._mainMap.getBounds().contains(this._miniMap.getBounds()):this._minimized},_isInteger:function(t){return"number"==typeof t},_isDefined:function(t){return void 0!==t},_onToggle:function(){t.Util.requestAnimFrame((function(){t.DomEvent.on(this._container,"transitionend",this._fireToggleEvents,this),t.Browser.any3d||t.Util.requestAnimFrame(this._fireToggleEvents,this)}),this)},_fireToggleEvents:function(){t.DomEvent.off(this._container,"transitionend",this._fireToggleEvents,this);var e={minimized:this._minimized};this.fire(this._minimized?"minimize":"restore",e),this.fire("toggle",e)}});return t.Map.mergeOptions({miniMapControl:!1}),t.Map.addInitHook((function(){this.options.miniMapControl&&(this.miniMapControl=(new e).addTo(this))})),e}),window),function(){var t=window.console||{error:function(){},warn:function(){}};function e(e){e.Control.Loading=e.Control.extend({options:{delayIndicator:null,position:"topleft",separate:!1,zoomControl:null,spinjs:!1,spin:{lines:7,length:3,width:3,radius:5,rotate:13,top:"83%"}},initialize:function(t){e.setOptions(this,t),this._dataLoaders={},null!==this.options.zoomControl&&(this.zoomControl=this.options.zoomControl)},onAdd:function(i){if(this.options.spinjs&&"function"!=typeof Spinner)return t.error("Leaflet.loading cannot load because you didn't load spin.js (http://fgnass.github.io/spin.js/), even though you set it in options.");this._addLayerListeners(i),this._addMapListeners(i),this.options.separate||this.zoomControl||(i.zoomControl?this.zoomControl=i.zoomControl:i.zoomsliderControl&&(this.zoomControl=i.zoomsliderControl));var o,n="leaflet-control-loading";return this.zoomControl&&!this.options.separate?(o=this.zoomControl._container,n+=" leaflet-bar-part-bottom leaflet-bar-part last",e.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom")):o=e.DomUtil.create("div","leaflet-control-zoom leaflet-control-layer-container leaflet-bar"),this._indicatorContainer=o,this._indicator=e.DomUtil.create("a",n,o),this.options.spinjs&&(this._spinner=new Spinner(this.options.spin).spin(),this._indicator.appendChild(this._spinner.el)),o},onRemove:function(t){this._removeLayerListeners(t),this._removeMapListeners(t)},removeFrom:function(t){return this.zoomControl&&!this.options.separate?(this._container.removeChild(this._indicator),this._map=null,this.onRemove(t),this):e.Control.prototype.removeFrom.call(this,t)},addLoader:function(t){if(this._dataLoaders[t]=!0,this.options.delayIndicator&&!this.delayIndicatorTimeout){var e=this;this.delayIndicatorTimeout=setTimeout((function(){e.updateIndicator(),e.delayIndicatorTimeout=null}),this.options.delayIndicator)}else this.updateIndicator()},removeLoader:function(t){delete this._dataLoaders[t],this.updateIndicator(),this.options.delayIndicator&&this.delayIndicatorTimeout&&!this.isLoading()&&(clearTimeout(this.delayIndicatorTimeout),this.delayIndicatorTimeout=null)},updateIndicator:function(){this.isLoading()?this._showIndicator():this._hideIndicator()},isLoading:function(){return this._countLoaders()>0},_countLoaders:function(){var t,e=0;for(t in this._dataLoaders)this._dataLoaders.hasOwnProperty(t)&&e++;return e},_showIndicator:function(){e.DomUtil.addClass(this._indicator,"is-loading"),e.DomUtil.addClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof e.Control.Zoom?e.DomUtil.removeClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof e.Control.Zoomslider&&this.zoomControl instanceof e.Control.Zoomslider&&e.DomUtil.removeClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_hideIndicator:function(){e.DomUtil.removeClass(this._indicator,"is-loading"),e.DomUtil.removeClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof e.Control.Zoom?e.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof e.Control.Zoomslider&&this.zoomControl instanceof e.Control.Zoomslider&&e.DomUtil.addClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_getLastControlButton:function(){for(var t=this.zoomControl._container,e=t.children.length-1;e>0;){var i=t.children[e];if(this._indicator!==i&&0!==i.offsetWidth&&0!==i.offsetHeight)break;e--}return t.children[e]},_handleLoading:function(t){this.addLoader(this.getEventId(t))},_handleBaseLayerChange:function(t){var i=this;t.layer&&t.layer.eachLayer&&"function"==typeof t.layer.eachLayer?t.layer.eachLayer((function(t){i._handleBaseLayerChange({layer:t})})):e.TileLayer.Canvas&&t.layer instanceof e.TileLayer.Canvas||i._handleLoading(t)},_handleLoad:function(t){this.removeLoader(this.getEventId(t))},getEventId:function(t){return t.id?t.id:t.layer?t.layer._leaflet_id:t.target._leaflet_id},_layerAdd:function(e){if(e.layer&&e.layer.on)try{e.layer.on({loading:this._handleLoading,load:this._handleLoad},this)}catch(i){t.warn("L.Control.Loading: Tried and failed to add event handlers to layer",e.layer),t.warn("L.Control.Loading: Full details",i)}},_layerRemove:function(e){if(e.layer&&e.layer.off)try{e.layer.off({loading:this._handleLoading,load:this._handleLoad},this)}catch(i){t.warn("L.Control.Loading: Tried and failed to remove event handlers from layer",e.layer),t.warn("L.Control.Loading: Full details",i)}},_addLayerListeners:function(t){t.eachLayer((function(t){t.on&&t.on({loading:this._handleLoading,load:this._handleLoad},this)}),this),t.on("layeradd",this._layerAdd,this),t.on("layerremove",this._layerRemove,this)},_removeLayerListeners:function(t){t.eachLayer((function(t){t.off&&t.off({loading:this._handleLoading,load:this._handleLoad},this)}),this),t.off("layeradd",this._layerAdd,this),t.off("layerremove",this._layerRemove,this)},_addMapListeners:function(t){t.on({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)},_removeMapListeners:function(t){t.off({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)}}),e.Map.addInitHook((function(){this.options.loadingControl&&(this.loadingControl=new e.Control.Loading,this.addControl(this.loadingControl))})),e.Control.loading=function(t){return new e.Control.Loading(t)}}"function"==typeof define&&define.amd?define(["leaflet"],(function(t){e(t)})):e(L)}(),function(t){if("function"==typeof define&&define.amd)define(["leaflet"],t);else if("undefined"!=typeof module)module.exports=t(require("leaflet"));else{if(void 0===window.L)throw"Leaflet must be loaded first";t(window.L)}}((function(t){return t.Control.Search=t.Control.extend({includes:"1"===t.version[0]?t.Evented.prototype:t.Mixin.Events,options:{url:"",layer:null,sourceData:null,jsonpParam:null,propertyLoc:"loc",propertyName:"title",formatData:null,filterData:null,moveToLocation:null,buildTip:null,container:"",zoom:null,minLength:1,initial:!0,casesensitive:!1,autoType:!0,delayType:400,tooltipLimit:-1,tipAutoSubmit:!0,firstTipSubmit:!1,autoResize:!0,collapsed:!0,autoCollapse:!1,autoCollapseTime:1200,textErr:"Location not found",textCancel:"Cancel",textPlaceholder:"Search...",hideMarkerOnCollapse:!1,position:"topleft",marker:{icon:!1,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}}},_getPath:function(t,e){var i=e.split("."),o=i.pop(),n=i.length,s=i[0],a=1;if(n>0)for(;(t=t[s])&&a⊗",t.DomEvent.on(o,"click",t.DomEvent.stop,this).on(o,"click",this.cancel,this),o},_createButton:function(e,i){var o=t.DomUtil.create("a",i,this._container);return o.href="#",o.title=e,t.DomEvent.on(o,"click",t.DomEvent.stop,this).on(o,"click",this._handleSubmit,this).on(o,"focus",this.collapseDelayedStop,this).on(o,"blur",this.collapseDelayed,this),o},_createTooltip:function(e){var i=this,o=t.DomUtil.create("ul",e,this._container);return o.style.display="none",t.DomEvent.disableClickPropagation(o).on(o,"blur",this.collapseDelayed,this).on(o,"mousewheel",(function(e){i.collapseDelayedStop(),t.DomEvent.stopPropagation(e)}),this).on(o,"mouseover",(function(t){i.collapseDelayedStop()}),this),o},_createTip:function(e,i){var o;if(this.options.buildTip){if("string"==typeof(o=this.options.buildTip.call(this,e,i))){var n=t.DomUtil.create("div");n.innerHTML=o,o=n.firstChild}}else(o=t.DomUtil.create("li","")).innerHTML=e;return t.DomUtil.addClass(o,"search-tip"),o._text=e,this.options.tipAutoSubmit&&t.DomEvent.disableClickPropagation(o).on(o,"click",t.DomEvent.stop,this).on(o,"click",(function(t){this._input.value=e,this._handleAutoresize(),this._input.focus(),this._hideTooltip(),this._handleSubmit()}),this),o},_getUrl:function(t){return"function"==typeof this.options.url?this.options.url(t):this.options.url},_defaultFilterData:function(t,e){var i,o,n,s={};if(""===(t=t.replace(/[.*+?^${}()|[\]\\]/g,"")))return[];for(var a in i=this.options.initial?"^":"",o=this.options.casesensitive?void 0:"i",n=new RegExp(i+t,o),e)n.test(a)&&(s[a]=e[a]);return s},showTooltip:function(t){if(this._countertips=0,this._tooltip.innerHTML="",this._tooltip.currentSelection=-1,this.options.tooltipLimit)for(var e in t){if(this._countertips===this.options.tooltipLimit)break;this._countertips++,this._tooltip.appendChild(this._createTip(e,t[e]))}return this._countertips>0?(this._tooltip.style.display="block",this._autoTypeTmp&&this._autoType(),this._autoTypeTmp=this.options.autoType):this._hideTooltip(),this._tooltip.scrollTop=0,this._countertips},_hideTooltip:function(){return this._tooltip.style.display="none",this._tooltip.innerHTML="",0},_defaultFormatData:function(e){var i,o=this,n=this.options.propertyName,s=this.options.propertyLoc,a={};if(t.Util.isArray(s))for(i in e)a[o._getPath(e[i],n)]=t.latLng(e[i][s[0]],e[i][s[1]]);else for(i in e)a[o._getPath(e[i],n)]=t.latLng(o._getPath(e[i],s));return a},_recordsFromJsonp:function(e,i){t.Control.Search.callJsonp=i;var o=t.DomUtil.create("script","leaflet-search-jsonp",document.getElementsByTagName("body")[0]),n=t.Util.template(this._getUrl(e)+"&"+this.options.jsonpParam+"=L.Control.Search.callJsonp",{s:e});return o.type="text/javascript",o.src=n,{abort:function(){o.parentNode.removeChild(o)}}},_recordsFromAjax:function(e,i){void 0===window.XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new ActiveXObject("Microsoft.XMLHTTP.6.0")}catch(t){try{return new ActiveXObject("Microsoft.XMLHTTP.3.0")}catch(t){throw new Error("XMLHttpRequest is not supported")}}});var o=t.Browser.ie&&!window.atob&&document.querySelector?new XDomainRequest:new XMLHttpRequest,n=t.Util.template(this._getUrl(e),{s:e});return o.open("GET",n),o.onload=function(){i(JSON.parse(o.responseText))},o.onreadystatechange=function(){4===o.readyState&&200===o.status&&this.onload()},o.send(),o},_searchInLayer:function(e,i,o){var n,s=this;e instanceof t.Control.Search.Marker||(e instanceof t.Marker||e instanceof t.CircleMarker?s._getPath(e.options,o)?((n=e.getLatLng()).layer=e,i[s._getPath(e.options,o)]=n):s._getPath(e.feature.properties,o)&&((n=e.getLatLng()).layer=e,i[s._getPath(e.feature.properties,o)]=n):e instanceof t.Path||e instanceof t.Polyline||e instanceof t.Polygon?s._getPath(e.options,o)?((n=e.getBounds().getCenter()).layer=e,i[s._getPath(e.options,o)]=n):s._getPath(e.feature.properties,o)&&((n=e.getBounds().getCenter()).layer=e,i[s._getPath(e.feature.properties,o)]=n):e.hasOwnProperty("feature")?e.feature.properties.hasOwnProperty(o)&&(e.getLatLng&&"function"==typeof e.getLatLng?((n=e.getLatLng()).layer=e,i[e.feature.properties[o]]=n):e.getBounds&&"function"==typeof e.getBounds&&((n=e.getBounds().getCenter()).layer=e,i[e.feature.properties[o]]=n)):e instanceof t.LayerGroup&&e.eachLayer((function(t){s._searchInLayer(t,i,o)})))},_recordsFromLayer:function(){var t=this,e={},i=this.options.propertyName;return this._layer.eachLayer((function(o){t._searchInLayer(o,e,i)})),e},_autoType:function(){var t=this._input.value.length,e=this._tooltip.firstChild?this._tooltip.firstChild._text:"",i=e.length;if(0===e.indexOf(this._input.value))if(this._input.value=e,this._handleAutoresize(),this._input.createTextRange){var o=this._input.createTextRange();o.collapse(!0),o.moveStart("character",t),o.moveEnd("character",i),o.select()}else this._input.setSelectionRange?this._input.setSelectionRange(t,i):this._input.selectionStart&&(this._input.selectionStart=t,this._input.selectionEnd=i)},_hideAutoType:function(){var t;if((t=this._input.selection)&&t.empty)t.empty();else if(this._input.createTextRange){(t=this._input.createTextRange()).collapse(!0);var e=this._input.value.length;t.moveStart("character",e),t.moveEnd("character",e),t.select()}else this._input.getSelection&&this._input.getSelection().removeAllRanges(),this._input.selectionStart=this._input.selectionEnd},_handleKeypress:function(t){var e=this;switch(t.keyCode){case 27:this.collapse();break;case 13:(1==this._countertips||this.options.firstTipSubmit&&this._countertips>0)&&-1==this._tooltip.currentSelection&&this._handleArrowSelect(1),this._handleSubmit();break;case 38:this._handleArrowSelect(-1);break;case 40:this._handleArrowSelect(1);break;case 8:case 45:case 46:this._autoTypeTmp=!1;break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:this._input.value.length?this._cancel.style.display="block":this._cancel.style.display="none",this._input.value.length>=this.options.minLength?(clearTimeout(this.timerKeypress),this.timerKeypress=setTimeout((function(){e._fillRecordsCache()}),this.options.delayType)):this._hideTooltip()}this._handleAutoresize()},searchText:function(e){var i=e.charCodeAt(e.length);this._input.value=e,this._input.style.display="block",t.DomUtil.addClass(this._container,"search-exp"),this._autoTypeTmp=!1,this._handleKeypress({keyCode:i})},_fillRecordsCache:function(){var e,i=this,o=this._input.value;this._curReq&&this._curReq.abort&&this._curReq.abort(),t.DomUtil.addClass(this._container,"search-load"),this.options.layer?(this._recordsCache=this._recordsFromLayer(),e=this._filterData(this._input.value,this._recordsCache),this.showTooltip(e),t.DomUtil.removeClass(this._container,"search-load")):(this.options.sourceData?this._retrieveData=this.options.sourceData:this.options.url&&(this._retrieveData=this.options.jsonpParam?this._recordsFromJsonp:this._recordsFromAjax),this._curReq=this._retrieveData.call(this,o,(function(o){i._recordsCache=i._formatData.call(i,o),e=i.options.sourceData?i._filterData(i._input.value,i._recordsCache):i._recordsCache,i.showTooltip(e),t.DomUtil.removeClass(i._container,"search-load")})))},_handleAutoresize:function(){var t;this._input.style.maxWidth!==this._map._container.offsetWidth&&(t=this._map._container.clientWidth,t-=83,this._input.style.maxWidth=t.toString()+"px"),this.options.autoResize&&this._container.offsetWidth+20=i.length-1)t.DomUtil.addClass(i[this._tooltip.currentSelection],"search-tip-select");else if(-1==e&&this._tooltip.currentSelection<=0)this._tooltip.currentSelection=-1;else if("none"!=this._tooltip.style.display){this._tooltip.currentSelection+=e,t.DomUtil.addClass(i[this._tooltip.currentSelection],"search-tip-select"),this._input.value=i[this._tooltip.currentSelection]._text;var n=i[this._tooltip.currentSelection].offsetTop;n+i[this._tooltip.currentSelection].clientHeight>=this._tooltip.scrollTop+this._tooltip.clientHeight?this._tooltip.scrollTop=n-this._tooltip.clientHeight+i[this._tooltip.currentSelection].clientHeight:n<=this._tooltip.scrollTop&&(this._tooltip.scrollTop=n)}},_handleSubmit:function(){if(this._hideAutoType(),this.hideAlert(),this._hideTooltip(),"none"==this._input.style.display)this.expand();else if(""===this._input.value)this.collapse();else{var t=this._getLocation(this._input.value);!1===t?this.showAlert():(this.showLocation(t,this._input.value),this.fire("search:locationfound",{latlng:t,text:this._input.value,layer:t.layer?t.layer:null}))}},_getLocation:function(t){return!!this._recordsCache.hasOwnProperty(t)&&this._recordsCache[t]},_defaultMoveToLocation:function(t,e,i){this.options.zoom?this._map.setView(t,this.options.zoom):this._map.panTo(t)},showLocation:function(t,e){var i=this;return i._map.once("moveend zoomend",(function(e){i._markerSearch&&i._markerSearch.addTo(i._map).setLatLng(t)})),i._moveToLocation(t,e,i._map),i.options.autoCollapse&&i.collapse(),i}}),t.Control.Search.Marker=t.Marker.extend({includes:"1"===t.version[0]?t.Evented.prototype:t.Mixin.Events,options:{icon:new t.Icon.Default,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}},initialize:function(e,i){t.setOptions(this,i),!0===i.icon&&(i.icon=new t.Icon.Default),t.Marker.prototype.initialize.call(this,e,i),t.Control.Search.prototype._isObject(this.options.circle)&&(this._circleLoc=new t.CircleMarker(e,this.options.circle))},onAdd:function(e){t.Marker.prototype.onAdd.call(this,e),this._circleLoc&&(e.addLayer(this._circleLoc),this.options.animate&&this.animate())},onRemove:function(e){t.Marker.prototype.onRemove.call(this,e),this._circleLoc&&e.removeLayer(this._circleLoc)},setLatLng:function(e){return t.Marker.prototype.setLatLng.call(this,e),this._circleLoc&&this._circleLoc.setLatLng(e),this},_initIcon:function(){this.options.icon&&t.Marker.prototype._initIcon.call(this)},_removeIcon:function(){this.options.icon&&t.Marker.prototype._removeIcon.call(this)},animate:function(){if(this._circleLoc){var t=this._circleLoc,e=parseInt(t._radius/5),i=this.options.circle.radius,o=2*t._radius,n=0;t._timerAnimLoc=setInterval((function(){o-=e+=n+=.5,t.setRadius(o),o'+t+""})).then((function(t){return'"})).then((function(t){return"data:image/svg+xml;charset=utf-8,"+t}))}(i,e.width||r.width(t),e.height||r.height(t))}))}function o(t,e){function o(t){var i=document.createElement("canvas");if(i.width=e.width||r.width(t),i.height=e.height||r.height(t),e.bgcolor){var o=i.getContext("2d");o.fillStyle=e.bgcolor,o.fillRect(0,0,i.width,i.height)}return i}return i(t,e).then(r.makeImage).then(r.delay(100)).then((function(e){var i=o(t);return i.getContext("2d").drawImage(e,0,0),i}))}function n(t,e,i){return i||!e||e(t)?Promise.resolve(t).then((function(t){return t instanceof HTMLCanvasElement?r.makeImage(t.toDataURL()):t.cloneNode(!1)})).then((function(i){return function(t,e,i){var o=t.childNodes;return 0===o.length?Promise.resolve(e):function(t,e,i){var o=Promise.resolve();return e.forEach((function(e){o=o.then((function(){return n(e,i)})).then((function(e){e&&t.appendChild(e)}))})),o}(e,r.asArray(o),i).then((function(){return e}))}(t,i,e)})).then((function(e){return function(t,e){return e instanceof Element?Promise.resolve().then((function(){!function(t,e){t.cssText?e.cssText=t.cssText:function(t,e){r.asArray(t).forEach((function(i){e.setProperty(i,t.getPropertyValue(i),t.getPropertyPriority(i))}))}(t,e)}(window.getComputedStyle(t),e.style)})).then((function(){function i(i){var o=window.getComputedStyle(t,i),n=o.getPropertyValue("content");if(""!==n&&"none"!==n){var s=r.uid();e.className=e.className+" "+s;var a=document.createElement("style");a.appendChild(function(t,e,i){var o="."+t+":"+e,n=i.cssText?function(t){var e=t.getPropertyValue("content");return t.cssText+" content: "+e+";"}(i):function(t){return r.asArray(t).map((function(e){return e+": "+t.getPropertyValue(e)+(t.getPropertyPriority(e)?" !important":"")})).join("; ")+";"}(i);return document.createTextNode(o+"{"+n+"}")}(s,i,o)),e.appendChild(a)}}[":before",":after"].forEach((function(t){i(t)}))})).then((function(){t instanceof HTMLTextAreaElement&&(e.innerHTML=t.value),t instanceof HTMLInputElement&&e.setAttribute("value",t.value)})).then((function(){e instanceof SVGElement&&(e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e instanceof SVGRectElement&&["width","height"].forEach((function(t){var i=e.getAttribute(t);i&&e.style.setProperty(t,i)})))})).then((function(){return e})):e}(t,e)})):Promise.resolve()}function s(t){return h.resolveAll().then((function(e){var i=document.createElement("style");return t.appendChild(i),i.appendChild(document.createTextNode(e)),t}))}function a(t){return c.inlineAll(t).then((function(){return t}))}var r=function(){function t(t){var e=/\.([^\.\/]*?)$/g.exec(t);return e?e[1]:""}function e(t,e){var i=window.getComputedStyle(t).getPropertyValue(e);return parseFloat(i.replace("px",""))}return{escape:function(t){return t.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1")},parseExtension:t,mimeType:function(e){var i=t(e).toLowerCase();return function(){var t="application/font-woff",e="image/jpeg";return{woff:t,woff2:t,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:e,jpeg:e,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml"}}()[i]||""},dataAsUrl:function(t,e){return"data:"+e+";base64,"+t},isDataUrl:function(t){return-1!==t.search(/^(data:)/)},canvasToBlob:function(t){return t.toBlob?new Promise((function(e){t.toBlob(e)})):function(t){return new Promise((function(e){for(var i=window.atob(t.toDataURL().split(",")[1]),o=i.length,n=new Uint8Array(o),s=0;s0&&this._toggleClasses(this.options.hideClasses);var i="string"!=typeof t?t.target.className:t;if("CurrentSize"===i)return this._printOpertion(i);this.outerContainer=this._createOuterContainer(this.mapContainer),this.originalState.widthWasAuto&&(this.outerContainer.style.width=this.originalState.mapWidth),this._createImagePlaceholder(i)},_createImagePlaceholder:function(t){var e=this;i.toPng(this.mapContainer,{width:parseInt(this.originalState.mapWidth.replace("px")),height:parseInt(this.originalState.mapHeight.replace("px"))}).then((function(i){e.blankDiv=document.createElement("div");var o=e.blankDiv;e.outerContainer.parentElement.insertBefore(o,e.outerContainer),o.className="epHolder",o.style.backgroundImage='url("'+i+'")',o.style.position="absolute",o.style.zIndex=1011,o.style.display="initial",o.style.width=e.originalState.mapWidth,o.style.height=e.originalState.mapHeight,e._resizeAndPrintMap(t)})).catch((function(t){console.error("oops, something went wrong!",t)}))},_resizeAndPrintMap:function(t){this.outerContainer.style.opacity=0;var e=this.options.sizeModes.filter((function(e){return e.className===t}));e=e[0],this.mapContainer.style.width=e.width+"px",this.mapContainer.style.height=e.height+"px",this.mapContainer.style.width>this.mapContainer.style.height?this.orientation="portrait":this.orientation="landscape",this._map.setView(this.originalState.center),this._map.setZoom(this.originalState.zoom),this._map.invalidateSize(),this.options.tileLayer?this._pausePrint(t):this._printOpertion(t)},_pausePrint:function(t){var e=this,i=setInterval((function(){e.options.tileLayer.isLoading()||(clearInterval(i),e._printOpertion(t))}),e.options.tileWait)},_printOpertion:function(t){var e=this,n=this.mapContainer.style.width;(this.originalState.widthWasAuto&&"CurrentSize"===t||this.originalState.widthWasPercentage&&"CurrentSize"===t)&&(n=this.originalState.mapWidth),i.toPng(e.mapContainer,{width:parseInt(n),height:parseInt(e.mapContainer.style.height.replace("px"))}).then((function(t){var i=e._dataURItoBlob(t);e.options.exportOnly?o.saveAs(i,e.options.filename+".png"):e._sendToBrowserPrint(t,e.orientation),e._toggleControls(!0),e._toggleClasses(e.options.hideClasses,!0),e.outerContainer&&(e.originalState.widthWasAuto?e.mapContainer.style.width="auto":e.originalState.widthWasPercentage?e.mapContainer.style.width=e.originalState.percentageWidth:e.mapContainer.style.width=e.originalState.mapWidth,e.mapContainer.style.height=e.originalState.mapHeight,e._removeOuterContainer(e.mapContainer,e.outerContainer,e.blankDiv),e._map.invalidateSize(),e._map.setView(e.originalState.center),e._map.setZoom(e.originalState.zoom)),e._map.fire("easyPrint-finished")})).catch((function(t){console.error("Print operation failed",t)}))},_sendToBrowserPrint:function(t,e){this._page.resizeTo(600,800);var i=this._createNewWindow(t,e,this);this._page.document.body.innerHTML="",this._page.document.write(i),this._page.document.close()},_createSpinner:function(t,e,i){return""+t+"\n Loading...
'},_createNewWindow:function(t,e,i){return"\n \n