diff --git a/district/templates/district/base.html b/district/templates/district/base.html index 742b068ea55a3f70d14be4a9ceca6e7ee939849d..0d5f9d45308b168e462365492678f4d21eeabeaa 100644 --- a/district/templates/district/base.html +++ b/district/templates/district/base.html @@ -20,6 +20,10 @@ <link href="{% static "shared/vendor/fancybox/jquery.fancybox.min.css" %}" rel="stylesheet"> <link rel="stylesheet" href="{% static "shared/css/helpers.css" %}"> + {% block styles %}{% endblock %} + + {% include "maps_utils/includes/styles.html" %} + <style type="text/css"> .inline-block { display: inline-block; @@ -315,16 +319,7 @@ <script src="{% static "shared/vendor/lazysizes/lazysizes.min.js" %}"></script> <script src="{% static "shared/vendor/fancybox/jquery.fancybox.min.js" %}"></script> - <link rel="stylesheet" href="//unpkg.com/leaflet/dist/leaflet.css" /> - <link rel="stylesheet" href="//unpkg.com/leaflet.markercluster/dist/MarkerCluster.Default.css" /> - <link rel="stylesheet" href="{% static "maps_utils/geo-feature-collection.css" %}" /> - - <script src="//unpkg.com/leaflet/dist/leaflet.js"></script> - <script src="//unpkg.com/leaflet.markercluster/dist/leaflet.markercluster.js"></script> - <script src="//bundle.run/@mapbox/polylabel@1.0.2"></script> - <script src="//unpkg.com/vue2-leaflet"></script> - - <script src="{% static "maps_utils/geo-feature-collection.js" %}"></script> + {% include "maps_utils/includes/scripts.html" %} {% block scripts %}{% endblock %} </body> diff --git a/maps_utils/static/maps_utils/geo-feature-collection.js b/maps_utils/static/maps_utils/geo-feature-collection.js index 5f2826ecb5ad3509c0e7542a54f504107a7711bc..8f5265167999e3e7a8055018af26e1d83380bd29 100644 --- a/maps_utils/static/maps_utils/geo-feature-collection.js +++ b/maps_utils/static/maps_utils/geo-feature-collection.js @@ -247,7 +247,10 @@ const GeoFeatureCollection = Vue.component("GeoFeatureCollection", { const markerIconForCategory = (categoryName, number) => categoryName && this.categories[categoryName] - ? buildMarkerIcon(this.categories[categoryName].color, number) + ? buildMarkerIcon( + this.categories[categoryName].color, + number + ) : buildMarkerIcon("000000", number); /** @@ -297,7 +300,7 @@ const GeoFeatureCollection = Vue.component("GeoFeatureCollection", { if (feature.geometry.type == "Polygon") { // Find pole of inaccessibility (not centroid) for the polygon // @see: https://github.com/mapbox/polylabel - const markerPos = _mapbox_polylabel( + const markerPos = polylabel( feature.geometry.coordinates, 1 ); diff --git a/maps_utils/static/maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.css b/maps_utils/static/maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.css new file mode 100644 index 0000000000000000000000000000000000000000..db8a1f2bbd6b1f1d1a65191149ee4c7972443467 --- /dev/null +++ b/maps_utils/static/maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.css @@ -0,0 +1,60 @@ +.marker-cluster-small { + background-color: rgba(181, 226, 140, 0.6); + } +.marker-cluster-small div { + background-color: rgba(110, 204, 57, 0.6); + } + +.marker-cluster-medium { + background-color: rgba(241, 211, 87, 0.6); + } +.marker-cluster-medium div { + background-color: rgba(240, 194, 12, 0.6); + } + +.marker-cluster-large { + background-color: rgba(253, 156, 115, 0.6); + } +.marker-cluster-large div { + background-color: rgba(241, 128, 23, 0.6); + } + + /* IE 6-8 fallback colors */ +.leaflet-oldie .marker-cluster-small { + background-color: rgb(181, 226, 140); + } +.leaflet-oldie .marker-cluster-small div { + background-color: rgb(110, 204, 57); + } + +.leaflet-oldie .marker-cluster-medium { + background-color: rgb(241, 211, 87); + } +.leaflet-oldie .marker-cluster-medium div { + background-color: rgb(240, 194, 12); + } + +.leaflet-oldie .marker-cluster-large { + background-color: rgb(253, 156, 115); + } +.leaflet-oldie .marker-cluster-large div { + background-color: rgb(241, 128, 23); +} + +.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: 12px "Helvetica Neue", Arial, Helvetica, sans-serif; + } +.marker-cluster span { + line-height: 30px; + } diff --git a/maps_utils/static/maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.js.map b/maps_utils/static/maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.js.map new file mode 100644 index 0000000000000000000000000000000000000000..e237d21fcc39adcfa8b668bc2ac0c40b361bc5ed --- /dev/null +++ b/maps_utils/static/maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/MarkerClusterGroup.js","../src/MarkerCluster.js","../src/MarkerOpacity.js","../src/DistanceGrid.js","../src/MarkerCluster.QuickHull.js","../src/MarkerCluster.Spiderfier.js","../src/MarkerClusterGroup.Refresh.js"],"names":["MarkerClusterGroup","L","FeatureGroup","extend","options","maxClusterRadius","iconCreateFunction","clusterPane","Marker","prototype","pane","spiderfyOnEveryZoom","spiderfyOnMaxZoom","showCoverageOnHover","zoomToBoundsOnClick","singleMarkerMode","disableClusteringAtZoom","removeOutsideVisibleBounds","animate","animateAddingMarkers","spiderfyShapePositions","spiderfyDistanceMultiplier","spiderLegPolylineOptions","weight","color","opacity","chunkedLoading","chunkInterval","chunkDelay","chunkProgress","polygonOptions","initialize","Util","setOptions","this","_defaultIconCreateFunction","_featureGroup","featureGroup","addEventParent","_nonPointGroup","_inZoomAnimation","_needsClustering","_needsRemoving","_currentShownBounds","_queue","_childMarkerEventHandlers","dragstart","_childMarkerDragStart","move","_childMarkerMoved","dragend","_childMarkerDragEnd","DomUtil","TRANSITION","_withAnimation","_noAnimation","_markerCluster","MarkerCluster","MarkerClusterNonAnimated","addLayer","layer","LayerGroup","addLayers","getLatLng","fire","_map","push","hasLayer","_unspiderfy","_addLayer","_maxZoom","_topClusterLevel","_recalculateBounds","_refreshClustersIcons","visibleLayer","currentZoom","_zoom","__parent","contains","_animationAddLayer","_animationAddLayerNonAnimated","removeLayer","removeLayers","_unspiderfyLayer","_removeLayer","off","clusterShow","_arraySplice","latlng","_latlng","layersArray","skipLayerAddEvent","isArray","m","fg","npg","chunked","l","length","offset","originalArray","started","Date","getTime","process","bind","start","elapsed","slice","_extractNonGroupLayers","getChildCount","markers","getAllChildMarkers","otherMarker","_recursivelyAddChildrenToMap","setTimeout","needsClustering","i","layersArray2","l2","clearLayers","_gridClusters","_gridUnclustered","_noanimationUnspiderfy","eachLayer","marker","_generateInitialClusters","getBounds","bounds","LatLngBounds","_bounds","method","context","thisNeedsRemoving","j","needsRemoving","call","getLayers","layers","getLayer","id","result","parseInt","stamp","anArray","_group","zoomToShowLayer","callback","map","showMarker","_icon","once","spiderfy","Math","round","on","panTo","zoomToBounds","onAdd","isFinite","getMaxZoom","addTo","_maxLat","crs","projection","MAX_LATITUDE","newlatlng","_getExpandedVisibleBounds","_zoomEnd","_moveEnd","_spiderfierOnAdd","_bindEvents","onRemove","_unbindEvents","_mapPane","className","replace","_spiderfierOnRemove","_hideCoverage","remove","getVisibleParent","vMarker","obj","splice","_removeFromGridUnclustered","z","gridUnclustered","minZoom","floor","getMinZoom","removeObject","project","e","target","__dragStart","_ignoreMove","isPopupOpen","_popup","isOpen","_moveChild","oldLatLng","openPopup","from","to","dragStart","removeFromDistanceGrid","dontUpdateMap","gridClusters","cluster","_markers","_childCount","_boundsNeedUpdate","_cLatLng","addObject","_childClusters","_iconNeedsUpdate","_isOrIsParent","el","oel","parentNode","type","data","propagate","originalEvent","relatedTarget","listens","childCount","c","DivIcon","html","iconSize","Point","_zoomOrSpiderfy","_showCoverage","bottomCluster","keyCode","_container","focus","_shownPolygon","_spiderfied","Polygon","getConvexHull","_mergeSplitClusters","newBounds","_recursivelyRemoveChildrenFromMap","maxZoom","ceil","radius","radiusFn","zoom","DistanceGrid","markerPoint","_overrideMarkerIcon","closest","getNearObject","_addChild","parent","newCluster","lastParent","_updateIcon","_enqueue","fn","_queueTimeout","_processQueue","clearTimeout","mapZoom","intersects","_animationStart","_animationZoomIn","_animationZoomOut","Browser","mobile","_checkBoundsMaxLat","pad","_mapBoundsInfinite","maxLat","undefined","getNorth","_northEast","lat","Infinity","getSouth","_southWest","_addToMap","group","output","icon","include","LatLng","previousZoomLevel","newZoomLevel","_recursively","startPos","_isSingleParent","clusterHide","_forceLayout","_recursivelyBecomeVisible","n","_recursivelyRestoreChildPositions","_animationEnd","_animationZoomOutSingle","me","_setPos","latLngToLayerPoint","_recursivelyAnimateChildrenInAndAddSelfToMap","setLatLng","falseFn","document","body","offsetWidth","markerClusterGroup","Icon","a","b","storageArray","ignoreDraggedMarker","fitBoundsOptions","childClusters","boundsZoom","getBoundsZoom","getZoom","newClusters","concat","setView","fitBounds","setIcon","createIcon","_iconObj","createShadow","new1","isNotificationFromChild","_setClusterCenter","child","_resetBounds","lng","childLatLng","latSum","lngSum","totalCount","_wLatLng","_backupLatlng","_recursivelyAnimateChildrenIn","center","cm","mapMinZoom","zoomLevel","nm","_restorePosition","k","previousBounds","exceptBounds","boundsToApplyTo","zoomLevelToStart","zoomLevelToStop","runAtEveryLevel","runAtBottomLevel","backup","setOpacity","cellSize","_cellSize","_sqCellSize","_grid","_objectPoint","point","x","_getCoord","y","grid","row","cell","updateObject","len","eachObject","dist","objectPoint","closestDistSq","_sqDist","coord","p","p2","dx","dy","QuickHull","getDistant","cpt","bl","vY","findMostDistantPointFromBaseLine","baseLine","latLngs","pt","d","maxD","maxPt","newPoints","maxPoint","buildConvexHull","convexHullBaseLines","t","minLat","maxLng","minLng","maxLatPt","minLatPt","maxLngPt","minLngPt","minPt","childMarkers","points","_2PI","PI","_circleFootSeparation","_circleStartAngle","_spiralFootSeparation","_spiralLengthStart","_spiralLengthFactor","_circleSpiralSwitchover","positions","_generatePointsSpiral","_generatePointsCircle","_animationSpiderfy","unspiderfy","zoomDetails","_animationUnspiderfy","count","centerPt","angle","legLength","angleStep","res","max","cos","sin","_round","separation","lengthFactor","_preSpiderfyLatlng","setZIndexOffset","_spiderLeg","leg","newPos","legOptions","layerPointToLatLng","Polyline","legPath","thisLayerLatLng","thisLayerPos","svg","Path","SVG","finalLegOpacity","_path","getTotalLength","style","strokeDasharray","strokeDashoffset","setStyle","nonAnimatable","_latLngToNewLayerPoint","closePopup","stillThereChildCount","apply","arguments","_unspiderfyWrapper","zoomAnimation","_unspiderfyZoomStart","touch","getRenderer","_unspiderfyZoomAnim","hasClass","refreshClusters","_layers","_flagParentsIconsNeedUpdate","_refreshSingleMarkerModeMarkers","refreshIconOptions","directlyRefreshClusters"],"mappings":"4OAIA,IAAWA,EAAqBC,EAAED,mBAAqBC,EAAEC,aAAaC,OAAO,CAE5EC,QAAS,CACRC,iBAAkB,GAClBC,mBAAoB,KACpBC,YAAaN,EAAEO,OAAOC,UAAUL,QAAQM,KAExCC,qBAAqB,EACrBC,mBAAmB,EACnBC,qBAAqB,EACrBC,qBAAqB,EACrBC,kBAAkB,EAElBC,wBAAyB,KAIzBC,4BAA4B,EAK5BC,SAAS,EAITC,sBAAsB,EAGtBC,uBAAwB,KAGxBC,2BAA4B,EAG5BC,yBAA0B,CAAEC,OAAQ,IAAKC,MAAO,OAAQC,QAAS,IAGjEC,gBAAgB,EAChBC,cAAe,IACfC,WAAY,GACZC,cAAe,KAGfC,eAAgB,IAGjBC,WAAY,SAAU3B,GACrBH,EAAE+B,KAAKC,WAAWC,KAAM9B,GACnB8B,KAAK9B,QAAQE,qBACjB4B,KAAK9B,QAAQE,mBAAqB4B,KAAKC,4BAGxCD,KAAKE,cAAgBnC,EAAEoC,eACvBH,KAAKE,cAAcE,eAAeJ,MAElCA,KAAKK,eAAiBtC,EAAEoC,eACxBH,KAAKK,eAAeD,eAAeJ,MAEnCA,KAAKM,iBAAmB,EACxBN,KAAKO,iBAAmB,GACxBP,KAAKQ,eAAiB,GAEtBR,KAAKS,oBAAsB,KAE3BT,KAAKU,OAAS,GAEdV,KAAKW,0BAA4B,CAChCC,UAAaZ,KAAKa,sBAClBC,KAAQd,KAAKe,kBACbC,QAAWhB,KAAKiB,qBAIjB,IAAIjC,EAAUjB,EAAEmD,QAAQC,YAAcnB,KAAK9B,QAAQc,QACnDjB,EAAEE,OAAO+B,KAAMhB,EAAUgB,KAAKoB,eAAiBpB,KAAKqB,cAEpDrB,KAAKsB,eAAiBtC,EAAUjB,EAAEwD,cAAgBxD,EAAEyD,0BAGrDC,SAAU,SAAUC,GAEnB,GAAIA,aAAiB3D,EAAE4D,WACtB,OAAO3B,KAAK4B,UAAU,CAACF,IAIxB,IAAKA,EAAMG,UAGV,OAFA7B,KAAKK,eAAeoB,SAASC,GAC7B1B,KAAK8B,KAAK,WAAY,CAAEJ,MAAOA,IACxB1B,KAGR,IAAKA,KAAK+B,KAGT,OAFA/B,KAAKO,iBAAiByB,KAAKN,GAC3B1B,KAAK8B,KAAK,WAAY,CAAEJ,MAAOA,IACxB1B,KAGR,GAAIA,KAAKiC,SAASP,GACjB,OAAO1B,KAMJA,KAAKkC,aACRlC,KAAKkC,cAGNlC,KAAKmC,UAAUT,EAAO1B,KAAKoC,UAC3BpC,KAAK8B,KAAK,WAAY,CAAEJ,MAAOA,IAG/B1B,KAAKqC,iBAAiBC,qBAEtBtC,KAAKuC,wBAGL,IAAIC,EAAed,EACfe,EAAczC,KAAK0C,MACvB,GAAIhB,EAAMiB,SACT,KAAOH,EAAaG,SAASD,OAASD,GACrCD,EAAeA,EAAaG,SAW9B,OAPI3C,KAAKS,oBAAoBmC,SAASJ,EAAaX,eAC9C7B,KAAK9B,QAAQe,qBAChBe,KAAK6C,mBAAmBnB,EAAOc,GAE/BxC,KAAK8C,8BAA8BpB,EAAOc,IAGrCxC,MAGR+C,YAAa,SAAUrB,GAEtB,OAAIA,aAAiB3D,EAAE4D,WACf3B,KAAKgD,aAAa,CAACtB,KAItBA,EAAMG,UAMN7B,KAAK+B,KAQLL,EAAMiB,WAIP3C,KAAKkC,cACRlC,KAAKkC,cACLlC,KAAKiD,iBAAiBvB,IAIvB1B,KAAKkD,aAAaxB,GAAO,GACzB1B,KAAK8B,KAAK,cAAe,CAAEJ,MAAOA,IAGlC1B,KAAKqC,iBAAiBC,qBAEtBtC,KAAKuC,wBAELb,EAAMyB,IAAInD,KAAKW,0BAA2BX,MAEtCA,KAAKE,cAAc+B,SAASP,KAC/B1B,KAAKE,cAAc6C,YAAYrB,GAC3BA,EAAM0B,aACT1B,EAAM0B,kBA9BFpD,KAAKqD,aAAarD,KAAKO,iBAAkBmB,IAAU1B,KAAKiC,SAASP,IACrE1B,KAAKQ,eAAewB,KAAK,CAAEN,MAAOA,EAAO4B,OAAQ5B,EAAM6B,UAExDvD,KAAK8B,KAAK,cAAe,CAAEJ,MAAOA,MATlC1B,KAAKK,eAAe0C,YAAYrB,GAChC1B,KAAK8B,KAAK,cAAe,CAAEJ,MAAOA,KAuC5B1B,OAIR4B,UAAW,SAAU4B,EAAaC,GACjC,IAAK1F,EAAE+B,KAAK4D,QAAQF,GACnB,OAAOxD,KAAKyB,SAAS+B,GAGtB,IAQIG,EARAC,EAAK5D,KAAKE,cACV2D,EAAM7D,KAAKK,eACXyD,EAAU9D,KAAK9B,QAAQsB,eACvBC,EAAgBO,KAAK9B,QAAQuB,cAC7BE,EAAgBK,KAAK9B,QAAQyB,cAC7BoE,EAAIP,EAAYQ,OAChBC,EAAS,EACTC,GAAgB,EAGpB,GAAIlE,KAAK+B,KAAM,CACd,IAAIoC,GAAU,IAAKC,MAAQC,UACvBC,EAAUvG,EAAEwG,KAAK,WACpB,IAAIC,GAAQ,IAAKJ,MAAQC,UAOzB,IAJIrE,KAAK+B,MAAQ/B,KAAKkC,aACrBlC,KAAKkC,cAGC+B,EAASF,EAAGE,IAAU,CAC5B,GAAIH,GAAWG,EAAS,KAAQ,EAAG,CAElC,IAAIQ,GAAU,IAAKL,MAAQC,UAAYG,EACvC,GAAc/E,EAAVgF,EACH,MAYF,IARAd,EAAIH,EAAYS,cAQClG,EAAE4D,WACduC,IACHV,EAAcA,EAAYkB,QAC1BR,GAAgB,GAEjBlE,KAAK2E,uBAAuBhB,EAAGH,GAC/BO,EAAIP,EAAYQ,YAKjB,GAAKL,EAAE9B,WAQP,IAAI7B,KAAKiC,SAAS0B,KAIlB3D,KAAKmC,UAAUwB,EAAG3D,KAAKoC,UAClBqB,GACJzD,KAAK8B,KAAK,WAAY,CAAEJ,MAAOiC,IAI5BA,EAAEhB,UAC8B,IAA/BgB,EAAEhB,SAASiC,iBAAuB,CACrC,IAAIC,EAAUlB,EAAEhB,SAASmC,qBACrBC,EAAcF,EAAQ,KAAOlB,EAAIkB,EAAQ,GAAKA,EAAQ,GAC1DjB,EAAGb,YAAYgC,SArBhBlB,EAAIpC,SAASkC,GACRF,GACJzD,KAAK8B,KAAK,WAAY,CAAEJ,MAAOiC,IAwB9BhE,GAEHA,EAAcsE,EAAQF,GAAG,IAAKK,MAAQC,UAAYF,GAI/CF,IAAWF,GAGd/D,KAAKqC,iBAAiBC,qBAEtBtC,KAAKuC,wBAELvC,KAAKqC,iBAAiB2C,6BAA6B,KAAMhF,KAAK0C,MAAO1C,KAAKS,sBAE1EwE,WAAWX,EAAStE,KAAK9B,QAAQwB,aAEhCM,MAEHsE,SAIA,IAFA,IAAIY,EAAkBlF,KAAKO,iBAEpB0D,EAASF,EAAGE,KAClBN,EAAIH,EAAYS,cAGClG,EAAE4D,YACduC,IACHV,EAAcA,EAAYkB,QAC1BR,GAAgB,GAEjBlE,KAAK2E,uBAAuBhB,EAAGH,GAC/BO,EAAIP,EAAYQ,QAKZL,EAAE9B,UAKH7B,KAAKiC,SAAS0B,IAIlBuB,EAAgBlD,KAAK2B,GARpBE,EAAIpC,SAASkC,GAWhB,OAAO3D,MAIRgD,aAAc,SAAUQ,GACvB,IAAI2B,EAAGxB,EACHI,EAAIP,EAAYQ,OAChBJ,EAAK5D,KAAKE,cACV2D,EAAM7D,KAAKK,eACX6D,GAAgB,EAEpB,IAAKlE,KAAK+B,KAAM,CACf,IAAKoD,EAAI,EAAGA,EAAIpB,EAAGoB,KAClBxB,EAAIH,EAAY2B,cAGCpH,EAAE4D,YACduC,IACHV,EAAcA,EAAYkB,QAC1BR,GAAgB,GAEjBlE,KAAK2E,uBAAuBhB,EAAGH,GAC/BO,EAAIP,EAAYQ,SAIjBhE,KAAKqD,aAAarD,KAAKO,iBAAkBoD,GACzCE,EAAId,YAAYY,GACZ3D,KAAKiC,SAAS0B,IACjB3D,KAAKQ,eAAewB,KAAK,CAAEN,MAAOiC,EAAGL,OAAQK,EAAEJ,UAEhDvD,KAAK8B,KAAK,cAAe,CAAEJ,MAAOiC,KAEnC,OAAO3D,KAGR,GAAIA,KAAKkC,YAAa,CACrBlC,KAAKkC,cAGL,IAAIkD,EAAe5B,EAAYkB,QAC3BW,EAAKtB,EACT,IAAKoB,EAAI,EAAGA,EAAIE,EAAIF,KACnBxB,EAAIyB,EAAaD,cAGApH,EAAE4D,YAClB3B,KAAK2E,uBAAuBhB,EAAGyB,GAC/BC,EAAKD,EAAapB,QAInBhE,KAAKiD,iBAAiBU,GAIxB,IAAKwB,EAAI,EAAGA,EAAIpB,EAAGoB,KAClBxB,EAAIH,EAAY2B,cAGCpH,EAAE4D,YACduC,IACHV,EAAcA,EAAYkB,QAC1BR,GAAgB,GAEjBlE,KAAK2E,uBAAuBhB,EAAGH,GAC/BO,EAAIP,EAAYQ,QAIZL,EAAEhB,UAMP3C,KAAKkD,aAAaS,GAAG,GAAM,GAC3B3D,KAAK8B,KAAK,cAAe,CAAEJ,MAAOiC,IAE9BC,EAAG3B,SAAS0B,KACfC,EAAGb,YAAYY,GACXA,EAAEP,aACLO,EAAEP,iBAXHS,EAAId,YAAYY,GAChB3D,KAAK8B,KAAK,cAAe,CAAEJ,MAAOiC,KAuBpC,OAPA3D,KAAKqC,iBAAiBC,qBAEtBtC,KAAKuC,wBAGLvC,KAAKqC,iBAAiB2C,6BAA6B,KAAMhF,KAAK0C,MAAO1C,KAAKS,qBAEnET,MAIRsF,YAAa,WA6BZ,OAzBKtF,KAAK+B,OACT/B,KAAKO,iBAAmB,GACxBP,KAAKQ,eAAiB,UACfR,KAAKuF,qBACLvF,KAAKwF,kBAGTxF,KAAKyF,wBACRzF,KAAKyF,yBAINzF,KAAKE,cAAcoF,cACnBtF,KAAKK,eAAeiF,cAEpBtF,KAAK0F,UAAU,SAAUC,GACxBA,EAAOxC,IAAInD,KAAKW,0BAA2BX,aACpC2F,EAAOhD,UACZ3C,MAECA,KAAK+B,MAER/B,KAAK4F,2BAGC5F,MAIR6F,UAAW,WACV,IAAIC,EAAS,IAAI/H,EAAEgI,aAEf/F,KAAKqC,kBACRyD,EAAO7H,OAAO+B,KAAKqC,iBAAiB2D,SAGrC,IAAK,IAAIb,EAAInF,KAAKO,iBAAiByD,OAAS,EAAQ,GAALmB,EAAQA,IACtDW,EAAO7H,OAAO+B,KAAKO,iBAAiB4E,GAAGtD,aAKxC,OAFAiE,EAAO7H,OAAO+B,KAAKK,eAAewF,aAE3BC,GAIRJ,UAAW,SAAUO,EAAQC,GAC5B,IAECC,EAAmBhB,EAAGiB,EAFnBvB,EAAU7E,KAAKO,iBAAiBmE,QACnC2B,EAAgBrG,KAAKQ,eAOtB,IAJIR,KAAKqC,kBACRrC,KAAKqC,iBAAiByC,mBAAmBD,GAGrCM,EAAIN,EAAQb,OAAS,EAAQ,GAALmB,EAAQA,IAAK,CAGzC,IAFAgB,GAAoB,EAEfC,EAAIC,EAAcrC,OAAS,EAAQ,GAALoC,EAAQA,IAC1C,GAAIC,EAAcD,GAAG1E,QAAUmD,EAAQM,GAAI,CAC1CgB,GAAoB,EACpB,MAIEA,GACHF,EAAOK,KAAKJ,EAASrB,EAAQM,IAI/BnF,KAAKK,eAAeqF,UAAUO,EAAQC,IAIvCK,UAAW,WACV,IAAIC,EAAS,GAIb,OAHAxG,KAAK0F,UAAU,SAAU3B,GACxByC,EAAOxE,KAAK+B,KAENyC,GAIRC,SAAU,SAAUC,GACnB,IAAIC,EAAS,KAUb,OARAD,EAAKE,SAASF,EAAI,IAElB1G,KAAK0F,UAAU,SAAU3B,GACpBhG,EAAE8I,MAAM9C,KAAO2C,IAClBC,EAAS5C,KAIJ4C,GAIR1E,SAAU,SAAUP,GACnB,IAAKA,EACJ,OAAO,EAGR,IAAIyD,EAAG2B,EAAU9G,KAAKO,iBAEtB,IAAK4E,EAAI2B,EAAQ9C,OAAS,EAAQ,GAALmB,EAAQA,IACpC,GAAI2B,EAAQ3B,KAAOzD,EAClB,OAAO,EAKT,IAAKyD,GADL2B,EAAU9G,KAAKQ,gBACEwD,OAAS,EAAQ,GAALmB,EAAQA,IACpC,GAAI2B,EAAQ3B,GAAGzD,QAAUA,EACxB,OAAO,EAIT,SAAUA,EAAMiB,UAAYjB,EAAMiB,SAASoE,SAAW/G,OAASA,KAAKK,eAAe4B,SAASP,IAI7FsF,gBAAiB,SAAUtF,EAAOuF,GAEjC,IAAIC,EAAMlH,KAAK+B,KAES,mBAAbkF,IACVA,EAAW,cAGZ,IAAIE,EAAa,YAGXD,EAAIjF,SAASP,KAAUwF,EAAIjF,SAASP,EAAMiB,WAAe3C,KAAKM,mBAClEN,KAAK+B,KAAKoB,IAAI,UAAWgE,EAAYnH,MACrCA,KAAKmD,IAAI,eAAgBgE,EAAYnH,MAEjCkH,EAAIjF,SAASP,GAChBuF,IACUvF,EAAMiB,SAASyE,QACzBpH,KAAKqH,KAAK,aAAcJ,EAAUjH,MAClC0B,EAAMiB,SAAS2E,cAKd5F,EAAM0F,OAASpH,KAAK+B,KAAK8D,YAAYjD,SAASlB,EAAMG,aAEvDoF,IACUvF,EAAMiB,SAASD,MAAQ6E,KAAKC,MAAMxH,KAAK+B,KAAKW,QAEtD1C,KAAK+B,KAAK0F,GAAG,UAAWN,EAAYnH,MACpCA,KAAK+B,KAAK2F,MAAMhG,EAAMG,eAEtB7B,KAAK+B,KAAK0F,GAAG,UAAWN,EAAYnH,MACpCA,KAAKyH,GAAG,eAAgBN,EAAYnH,MACpC0B,EAAMiB,SAASgF,iBAKjBC,MAAO,SAAUV,GAEhB,IAAI/B,EAAGpB,EAAGrC,EAEV,GAHA1B,KAAK+B,KAAOmF,GAGPW,SAAS7H,KAAK+B,KAAK+F,cACvB,KAAM,+BAaP,IAVA9H,KAAKE,cAAc6H,MAAMb,GACzBlH,KAAKK,eAAe0H,MAAMb,GAErBlH,KAAKuF,eACTvF,KAAK4F,2BAGN5F,KAAKgI,QAAUd,EAAIhJ,QAAQ+J,IAAIC,WAAWC,aAGrChD,EAAI,EAAGpB,EAAI/D,KAAKQ,eAAewD,OAAQmB,EAAIpB,EAAGoB,KAClDzD,EAAQ1B,KAAKQ,eAAe2E,IACtBiD,UAAY1G,EAAMA,MAAM6B,QAC9B7B,EAAMA,MAAM6B,QAAU7B,EAAM4B,OAG7B,IAAK6B,EAAI,EAAGpB,EAAI/D,KAAKQ,eAAewD,OAAQmB,EAAIpB,EAAGoB,IAClDzD,EAAQ1B,KAAKQ,eAAe2E,GAC5BnF,KAAKkD,aAAaxB,EAAMA,OAAO,GAC/BA,EAAMA,MAAM6B,QAAU7B,EAAM0G,UAE7BpI,KAAKQ,eAAiB,GAGtBR,KAAK0C,MAAQ6E,KAAKC,MAAMxH,KAAK+B,KAAKW,OAClC1C,KAAKS,oBAAsBT,KAAKqI,4BAEhCrI,KAAK+B,KAAK0F,GAAG,UAAWzH,KAAKsI,SAAUtI,MACvCA,KAAK+B,KAAK0F,GAAG,UAAWzH,KAAKuI,SAAUvI,MAEnCA,KAAKwI,kBACRxI,KAAKwI,mBAGNxI,KAAKyI,cAGL1E,EAAI/D,KAAKO,iBACTP,KAAKO,iBAAmB,GACxBP,KAAK4B,UAAUmC,GAAG,IAInB2E,SAAU,SAAUxB,GACnBA,EAAI/D,IAAI,UAAWnD,KAAKsI,SAAUtI,MAClCkH,EAAI/D,IAAI,UAAWnD,KAAKuI,SAAUvI,MAElCA,KAAK2I,gBAGL3I,KAAK+B,KAAK6G,SAASC,UAAY7I,KAAK+B,KAAK6G,SAASC,UAAUC,QAAQ,wBAAyB,IAEzF9I,KAAK+I,qBACR/I,KAAK+I,6BAGC/I,KAAKgI,QAGZhI,KAAKgJ,gBACLhJ,KAAKE,cAAc+I,SACnBjJ,KAAKK,eAAe4I,SAEpBjJ,KAAKE,cAAcoF,cAEnBtF,KAAK+B,KAAO,MAGbmH,iBAAkB,SAAUvD,GAE3B,IADA,IAAIwD,EAAUxD,EACPwD,IAAYA,EAAQ/B,OAC1B+B,EAAUA,EAAQxG,SAEnB,OAAOwG,GAAW,MAInB9F,aAAc,SAAUyD,EAASsC,GAChC,IAAK,IAAIjE,EAAI2B,EAAQ9C,OAAS,EAAQ,GAALmB,EAAQA,IACxC,GAAI2B,EAAQ3B,KAAOiE,EAElB,OADAtC,EAAQuC,OAAOlE,EAAG,IACX,GAWVmE,2BAA4B,SAAU3D,EAAQ4D,GAK7C,IAJA,IAAIrC,EAAMlH,KAAK+B,KACXyH,EAAkBxJ,KAAKwF,iBAC1BiE,EAAUlC,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAEpBF,GAALF,GACDC,EAAgBD,GAAGK,aAAajE,EAAQuB,EAAI2C,QAAQlE,EAAO9D,YAAa0H,IADzDA,OAOtB1I,sBAAuB,SAAUiJ,GAChCA,EAAEC,OAAOC,YAAcF,EAAEC,OAAOxG,SAGjCxC,kBAAmB,SAAU+I,GAC5B,IAAK9J,KAAKiK,cAAgBH,EAAEC,OAAOC,YAAa,CAC/C,IAAIE,EAAcJ,EAAEC,OAAOI,QAAUL,EAAEC,OAAOI,OAAOC,SAErDpK,KAAKqK,WAAWP,EAAEC,OAAQD,EAAEQ,UAAWR,EAAExG,QAErC4G,GACHJ,EAAEC,OAAOQ,cAKZF,WAAY,SAAU3I,EAAO8I,EAAMC,GAClC/I,EAAM6B,QAAUiH,EAChBxK,KAAK+C,YAAYrB,GAEjBA,EAAM6B,QAAUkH,EAChBzK,KAAKyB,SAASC,IAGfT,oBAAqB,SAAU6I,GAC9B,IAAIY,EAAYZ,EAAEC,OAAOC,mBAClBF,EAAEC,OAAOC,YACZU,GACH1K,KAAKqK,WAAWP,EAAEC,OAAQW,EAAWZ,EAAEC,OAAOxG,UAOhDL,aAAc,SAAUyC,EAAQgF,EAAwBC,GACvD,IAAIC,EAAe7K,KAAKuF,cACvBiE,EAAkBxJ,KAAKwF,iBACvB5B,EAAK5D,KAAKE,cACVgH,EAAMlH,KAAK+B,KACX0H,EAAUlC,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAG5BgB,GACH3K,KAAKsJ,2BAA2B3D,EAAQ3F,KAAKoC,UAI9C,IAEC2C,EAFG+F,EAAUnF,EAAOhD,SACpBkC,EAAUiG,EAAQC,SAMnB,IAFA/K,KAAKqD,aAAawB,EAASc,GAEpBmF,IACNA,EAAQE,cACRF,EAAQG,mBAAoB,IAExBH,EAAQpI,MAAQ+G,KAGTkB,GAA0BG,EAAQE,aAAe,GAE3DjG,EAAc+F,EAAQC,SAAS,KAAOpF,EAASmF,EAAQC,SAAS,GAAKD,EAAQC,SAAS,GAGtFF,EAAaC,EAAQpI,OAAOkH,aAAakB,EAAS5D,EAAI2C,QAAQiB,EAAQI,SAAUJ,EAAQpI,QACxF8G,EAAgBsB,EAAQpI,OAAOyI,UAAUpG,EAAamC,EAAI2C,QAAQ9E,EAAYlD,YAAaiJ,EAAQpI,QAGnG1C,KAAKqD,aAAayH,EAAQnI,SAASyI,eAAgBN,GACnDA,EAAQnI,SAASoI,SAAS/I,KAAK+C,GAC/BA,EAAYpC,SAAWmI,EAAQnI,SAE3BmI,EAAQ1D,QAEXxD,EAAGb,YAAY+H,GACVF,GACJhH,EAAGnC,SAASsD,KAId+F,EAAQO,kBAAmB,EAG5BP,EAAUA,EAAQnI,gBAGZgD,EAAOhD,UAGf2I,cAAe,SAAUC,EAAIC,GAC5B,KAAOA,GAAK,CACX,GAAID,IAAOC,EACV,OAAO,EAERA,EAAMA,EAAIC,WAEX,OAAO,GAIR3J,KAAM,SAAU4J,EAAMC,EAAMC,GAC3B,GAAID,GAAQA,EAAKjK,iBAAiB3D,EAAEwD,cAAe,CAElD,GAAIoK,EAAKE,eAAiB7L,KAAKsL,cAAcK,EAAKjK,MAAM0F,MAAOuE,EAAKE,cAAcC,eACjF,OAEDJ,EAAO,UAAYA,EAGpB3N,EAAEC,aAAaO,UAAUuD,KAAKwE,KAAKtG,KAAM0L,EAAMC,EAAMC,IAItDG,QAAS,SAAUL,EAAME,GACxB,OAAO7N,EAAEC,aAAaO,UAAUwN,QAAQzF,KAAKtG,KAAM0L,EAAME,IAAc7N,EAAEC,aAAaO,UAAUwN,QAAQzF,KAAKtG,KAAM,UAAY0L,EAAME,IAItI3L,2BAA4B,SAAU6K,GACrC,IAAIkB,EAAalB,EAAQlG,gBAErBqH,EAAI,mBASR,OAPCA,GADGD,EAAa,GACX,QACKA,EAAa,IAClB,SAEA,QAGC,IAAIjO,EAAEmO,QAAQ,CAAEC,KAAM,cAAgBH,EAAa,gBAAiBnD,UAAW,iBAAmBoD,EAAGG,SAAU,IAAIrO,EAAEsO,MAAM,GAAI,OAGvI5D,YAAa,WACZ,IAAIvB,EAAMlH,KAAK+B,KACXrD,EAAoBsB,KAAK9B,QAAQQ,kBACjCC,EAAsBqB,KAAK9B,QAAQS,oBACnCC,EAAsBoB,KAAK9B,QAAQU,oBACnCH,EAAsBuB,KAAK9B,QAAQO,qBAGnCC,GAAqBE,GAAuBH,IAC/CuB,KAAKyH,GAAG,+BAAgCzH,KAAKsM,gBAAiBtM,MAI3DrB,IACHqB,KAAKyH,GAAG,mBAAoBzH,KAAKuM,cAAevM,MAChDA,KAAKyH,GAAG,kBAAmBzH,KAAKgJ,cAAehJ,MAC/CkH,EAAIO,GAAG,UAAWzH,KAAKgJ,cAAehJ,QAIxCsM,gBAAiB,SAAUxC,GAC1B,IAAIgB,EAAUhB,EAAEpI,MACZ8K,EAAgB1B,EAEpB,GAAe,oBAAXhB,EAAE4B,OAA8B5B,EAAE+B,eAA6C,KAA5B/B,EAAE+B,cAAcY,QAAvE,CAIA,KAA+C,IAAxCD,EAAcpB,eAAepH,QACnCwI,EAAgBA,EAAcpB,eAAe,GAG1CoB,EAAc9J,QAAU1C,KAAKoC,UAChCoK,EAAcxB,cAAgBF,EAAQE,aACtChL,KAAK9B,QAAQQ,kBAGboM,EAAQxD,WACEtH,KAAK9B,QAAQU,qBACvBkM,EAAQnD,eAGL3H,KAAK9B,QAAQO,qBAChBqM,EAAQxD,WAILwC,EAAE+B,eAA6C,KAA5B/B,EAAE+B,cAAcY,SACtCzM,KAAK+B,KAAK2K,WAAWC,UAIvBJ,cAAe,SAAUzC,GACxB,IAAI5C,EAAMlH,KAAK+B,KACX/B,KAAKM,mBAGLN,KAAK4M,eACR1F,EAAInE,YAAY/C,KAAK4M,eAEQ,EAA1B9C,EAAEpI,MAAMkD,iBAAuBkF,EAAEpI,QAAU1B,KAAK6M,cACnD7M,KAAK4M,cAAgB,IAAI7O,EAAE+O,QAAQhD,EAAEpI,MAAMqL,gBAAiB/M,KAAK9B,QAAQ0B,gBACzEsH,EAAIzF,SAASzB,KAAK4M,kBAIpB5D,cAAe,WACVhJ,KAAK4M,gBACR5M,KAAK+B,KAAKgB,YAAY/C,KAAK4M,eAC3B5M,KAAK4M,cAAgB,OAIvBjE,cAAe,WACd,IAAIjK,EAAoBsB,KAAK9B,QAAQQ,kBACpCC,EAAsBqB,KAAK9B,QAAQS,oBACnCC,EAAsBoB,KAAK9B,QAAQU,oBACnCH,EAAsBuB,KAAK9B,QAAQO,oBACnCyI,EAAMlH,KAAK+B,MAERrD,GAAqBE,GAAuBH,IAC/CuB,KAAKmD,IAAI,+BAAgCnD,KAAKsM,gBAAiBtM,MAE5DrB,IACHqB,KAAKmD,IAAI,mBAAoBnD,KAAKuM,cAAevM,MACjDA,KAAKmD,IAAI,kBAAmBnD,KAAKgJ,cAAehJ,MAChDkH,EAAI/D,IAAI,UAAWnD,KAAKgJ,cAAehJ,QAIzCsI,SAAU,WACJtI,KAAK+B,OAGV/B,KAAKgN,sBAELhN,KAAK0C,MAAQ6E,KAAKC,MAAMxH,KAAK+B,KAAKW,OAClC1C,KAAKS,oBAAsBT,KAAKqI,8BAGjCE,SAAU,WACT,IAAIvI,KAAKM,iBAAT,CAIA,IAAI2M,EAAYjN,KAAKqI,4BAErBrI,KAAKqC,iBAAiB6K,kCAAkClN,KAAKS,oBAAqB8G,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAAe3J,KAAK0C,MAAOuK,GAClIjN,KAAKqC,iBAAiB2C,6BAA6B,KAAMuC,KAAKC,MAAMxH,KAAK+B,KAAKW,OAAQuK,GAEtFjN,KAAKS,oBAAsBwM,IAI5BrH,yBAA0B,WACzB,IAAIuH,EAAU5F,KAAK6F,KAAKpN,KAAK+B,KAAK+F,cACjC2B,EAAUlC,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAC/B0D,EAASrN,KAAK9B,QAAQC,iBACtBmP,EAAWD,EAKU,mBAAXA,IACVC,EAAW,WAAc,OAAOD,IAGY,OAAzCrN,KAAK9B,QAAQY,0BAChBqO,EAAUnN,KAAK9B,QAAQY,wBAA0B,GAElDkB,KAAKoC,SAAW+K,EAChBnN,KAAKuF,cAAgB,GACrBvF,KAAKwF,iBAAmB,GAGxB,IAAK,IAAI+H,EAAOJ,EAAiB1D,GAAR8D,EAAiBA,IACzCvN,KAAKuF,cAAcgI,GAAQ,IAAIxP,EAAEyP,aAAaF,EAASC,IACvDvN,KAAKwF,iBAAiB+H,GAAQ,IAAIxP,EAAEyP,aAAaF,EAASC,IAI3DvN,KAAKqC,iBAAmB,IAAIrC,KAAKsB,eAAetB,KAAMyJ,EAAU,IAIjEtH,UAAW,SAAUT,EAAO6L,GAC3B,IAGIE,EAAalE,EAHbsB,EAAe7K,KAAKuF,cACpBiE,EAAkBxJ,KAAKwF,iBAC1BiE,EAAUlC,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAUhC,IAPI3J,KAAK9B,QAAQW,kBAChBmB,KAAK0N,oBAAoBhM,GAG1BA,EAAM+F,GAAGzH,KAAKW,0BAA2BX,MAG1ByJ,GAAR8D,EAAiBA,IAAQ,CAC/BE,EAAczN,KAAK+B,KAAK8H,QAAQnI,EAAMG,YAAa0L,GAGnD,IAAII,EAAU9C,EAAa0C,GAAMK,cAAcH,GAC/C,GAAIE,EAGH,OAFAA,EAAQE,UAAUnM,QAClBA,EAAMiB,SAAWgL,GAMlB,GADAA,EAAUnE,EAAgB+D,GAAMK,cAAcH,GACjC,CACZ,IAAIK,EAASH,EAAQhL,SACjBmL,GACH9N,KAAKkD,aAAayK,GAAS,GAK5B,IAAII,EAAa,IAAI/N,KAAKsB,eAAetB,KAAMuN,EAAMI,EAASjM,GAC9DmJ,EAAa0C,GAAMpC,UAAU4C,EAAY/N,KAAK+B,KAAK8H,QAAQkE,EAAW7C,SAAUqC,IAChFI,EAAQhL,SAAWoL,EAInB,IAAIC,EAHJtM,EAAMiB,SAAWoL,EAIjB,IAAKxE,EAAIgE,EAAO,EAAGhE,EAAIuE,EAAOpL,MAAO6G,IACpCyE,EAAa,IAAIhO,KAAKsB,eAAetB,KAAMuJ,EAAGyE,GAC9CnD,EAAatB,GAAG4B,UAAU6C,EAAYhO,KAAK+B,KAAK8H,QAAQ8D,EAAQ9L,YAAa0H,IAO9E,OALAuE,EAAOD,UAAUG,QAGjBhO,KAAKsJ,2BAA2BqE,EAASJ,GAM1C/D,EAAgB+D,GAAMpC,UAAUzJ,EAAO+L,GAIxCzN,KAAKqC,iBAAiBwL,UAAUnM,GAChCA,EAAMiB,SAAW3C,KAAKqC,kBASvBE,sBAAuB,WACtBvC,KAAKE,cAAcwF,UAAU,SAAUuG,GAClCA,aAAalO,EAAEwD,eAAiB0K,EAAEZ,kBACrCY,EAAEgC,iBAMLC,SAAU,SAAUC,GACnBnO,KAAKU,OAAOsB,KAAKmM,GACZnO,KAAKoO,gBACTpO,KAAKoO,cAAgBnJ,WAAWlH,EAAEwG,KAAKvE,KAAKqO,cAAerO,MAAO,OAGpEqO,cAAe,WACd,IAAK,IAAIlJ,EAAI,EAAGA,EAAInF,KAAKU,OAAOsD,OAAQmB,IACvCnF,KAAKU,OAAOyE,GAAGmB,KAAKtG,MAErBA,KAAKU,OAAOsD,OAAS,EACrBsK,aAAatO,KAAKoO,eAClBpO,KAAKoO,cAAgB,MAItBpB,oBAAqB,WACpB,IAAIuB,EAAUhH,KAAKC,MAAMxH,KAAK+B,KAAKW,OAGnC1C,KAAKqO,gBAEDrO,KAAK0C,MAAQ6L,GAAWvO,KAAKS,oBAAoB+N,WAAWxO,KAAKqI,8BACpErI,KAAKyO,kBAELzO,KAAKqC,iBAAiB6K,kCAAkClN,KAAKS,oBAAqB8G,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAAe3J,KAAK0C,MAAO1C,KAAKqI,6BAEvIrI,KAAK0O,iBAAiB1O,KAAK0C,MAAO6L,IAExBvO,KAAK0C,MAAQ6L,GACvBvO,KAAKyO,kBAELzO,KAAK2O,kBAAkB3O,KAAK0C,MAAO6L,IAEnCvO,KAAKuI,YAKPF,0BAA2B,WAC1B,OAAKrI,KAAK9B,QAAQa,2BAEPhB,EAAE6Q,QAAQC,OACb7O,KAAK8O,mBAAmB9O,KAAK+B,KAAK8D,aAGnC7F,KAAK8O,mBAAmB9O,KAAK+B,KAAK8D,YAAYkJ,IAAI,IALjD/O,KAAKgP,oBAkBdF,mBAAoB,SAAUhJ,GAC7B,IAAImJ,EAASjP,KAAKgI,QAWlB,YATekH,IAAXD,IACCnJ,EAAOqJ,YAAcF,IACxBnJ,EAAOsJ,WAAWC,IAAMC,EAAAA,GAErBxJ,EAAOyJ,aAAeN,IACzBnJ,EAAO0J,WAAWH,KAAOC,EAAAA,IAIpBxJ,GAIRhD,8BAA+B,SAAUpB,EAAOqM,GAC/C,GAAIA,IAAerM,EAClB1B,KAAKE,cAAcuB,SAASC,QACtB,GAA+B,IAA3BqM,EAAW/C,YAAmB,CACxC+C,EAAW0B,YAEX,IAAI5K,EAAUkJ,EAAWjJ,qBACzB9E,KAAKE,cAAc6C,YAAY8B,EAAQ,IACvC7E,KAAKE,cAAc6C,YAAY8B,EAAQ,SAEvCkJ,EAAWE,eAWbtJ,uBAAwB,SAAU+K,EAAOC,GACxC,IAEIjO,EAFA8E,EAASkJ,EAAMnJ,YACfpB,EAAI,EAKR,IAFAwK,EAASA,GAAU,GAEZxK,EAAIqB,EAAOxC,OAAQmB,KACzBzD,EAAQ8E,EAAOrB,cAEMpH,EAAE4D,WACtB3B,KAAK2E,uBAAuBjD,EAAOiO,GAIpCA,EAAO3N,KAAKN,GAGb,OAAOiO,GASRjC,oBAAqB,SAAUhM,GAU9B,OATWA,EAAMxD,QAAQ0R,KAAO5P,KAAK9B,QAAQE,mBAAmB,CAC/DwG,cAAe,WACd,OAAO,GAERE,mBAAoB,WACnB,MAAO,CAACpD,SASZ3D,EAAED,mBAAmB+R,QAAQ,CAC5Bb,mBAAoB,IAAIjR,EAAEgI,aAAa,IAAIhI,EAAE+R,QAAQR,EAAAA,GAAWA,EAAAA,GAAW,IAAIvR,EAAE+R,OAAOR,EAAAA,EAAUA,EAAAA,MAGnGvR,EAAED,mBAAmB+R,QAAQ,CAC5BxO,aAAc,CAEboN,gBAAiB,aAGjBC,iBAAkB,SAAUqB,EAAmBC,GAC9ChQ,KAAKqC,iBAAiB6K,kCAAkClN,KAAKS,oBAAqB8G,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAAeoG,GACtH/P,KAAKqC,iBAAiB2C,6BAA6B,KAAMgL,EAAchQ,KAAKqI,6BAG5ErI,KAAK8B,KAAK,iBAEX6M,kBAAmB,SAAUoB,EAAmBC,GAC/ChQ,KAAKqC,iBAAiB6K,kCAAkClN,KAAKS,oBAAqB8G,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAAeoG,GACtH/P,KAAKqC,iBAAiB2C,6BAA6B,KAAMgL,EAAchQ,KAAKqI,6BAG5ErI,KAAK8B,KAAK,iBAEXe,mBAAoB,SAAUnB,EAAOqM,GACpC/N,KAAK8C,8BAA8BpB,EAAOqM,KAI5C3M,eAAgB,CAEfqN,gBAAiB,WAChBzO,KAAK+B,KAAK6G,SAASC,WAAa,wBAChC7I,KAAKM,oBAGNoO,iBAAkB,SAAUqB,EAAmBC,GAC9C,IAGI7K,EAHAW,EAAS9F,KAAKqI,4BACdzE,EAAK5D,KAAKE,cACbuJ,EAAUlC,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAGhC3J,KAAKiK,aAAc,EAGnBjK,KAAKqC,iBAAiB4N,aAAanK,EAAQiK,EAAmBtG,EAAS,SAAUwC,GAChF,IAEItI,EAFAuM,EAAWjE,EAAE1I,QACbsB,EAAWoH,EAAElB,SAkBjB,IAfKjF,EAAOlD,SAASsN,KACpBA,EAAW,MAGRjE,EAAEkE,mBAAqBJ,EAAoB,IAAMC,GACpDpM,EAAGb,YAAYkJ,GACfA,EAAEjH,6BAA6B,KAAMgL,EAAclK,KAGnDmG,EAAEmE,cACFnE,EAAEjH,6BAA6BkL,EAAUF,EAAclK,IAKnDX,EAAIN,EAAQb,OAAS,EAAQ,GAALmB,EAAQA,IACpCxB,EAAIkB,EAAQM,GACPW,EAAOlD,SAASe,EAAEJ,UACtBK,EAAGb,YAAYY,KAMlB3D,KAAKqQ,eAGLrQ,KAAKqC,iBAAiBiO,0BAA0BxK,EAAQkK,GAExDpM,EAAG8B,UAAU,SAAU6K,GAChBA,aAAaxS,EAAEwD,gBAAkBgP,EAAEnJ,OACxCmJ,EAAEnN,gBAKJpD,KAAKqC,iBAAiB4N,aAAanK,EAAQiK,EAAmBC,EAAc,SAAU/D,GACrFA,EAAEuE,kCAAkCR,KAGrChQ,KAAKiK,aAAc,EAGnBjK,KAAKkO,SAAS,WAEblO,KAAKqC,iBAAiB4N,aAAanK,EAAQiK,EAAmBtG,EAAS,SAAUwC,GAChFrI,EAAGb,YAAYkJ,GACfA,EAAE7I,gBAGHpD,KAAKyQ,mBAIP9B,kBAAmB,SAAUoB,EAAmBC,GAC/ChQ,KAAK0Q,wBAAwB1Q,KAAKqC,iBAAkB0N,EAAoB,EAAGC,GAG3EhQ,KAAKqC,iBAAiB2C,6BAA6B,KAAMgL,EAAchQ,KAAKqI,6BAE5ErI,KAAKqC,iBAAiB6K,kCAAkClN,KAAKS,oBAAqB8G,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAAeoG,EAAmB/P,KAAKqI,8BAG/IxF,mBAAoB,SAAUnB,EAAOqM,GACpC,IAAI4C,EAAK3Q,KACL4D,EAAK5D,KAAKE,cAEd0D,EAAGnC,SAASC,GACRqM,IAAerM,IACW,EAAzBqM,EAAW/C,aAEd+C,EAAWE,cACXjO,KAAKqQ,eACLrQ,KAAKyO,kBAEL/M,EAAMkP,QAAQ5Q,KAAK+B,KAAK8O,mBAAmB9C,EAAWlM,cACtDH,EAAM0O,cAENpQ,KAAKkO,SAAS,WACbtK,EAAGb,YAAYrB,GACfA,EAAM0B,cAENuN,EAAGF,oBAIJzQ,KAAKqQ,eAELM,EAAGlC,kBACHkC,EAAGD,wBAAwB3C,EAAY/N,KAAK+B,KAAK+F,aAAc9H,KAAK0C,WAOxEgO,wBAAyB,SAAU5F,EAASiF,EAAmBC,GAC9D,IAAIlK,EAAS9F,KAAKqI,4BACjBoB,EAAUlC,KAAKmC,MAAM1J,KAAK+B,KAAK4H,cAGhCmB,EAAQgG,6CAA6ChL,EAAQ2D,EAASsG,EAAoB,EAAGC,GAE7F,IAAIW,EAAK3Q,KAGTA,KAAKqQ,eACLvF,EAAQwF,0BAA0BxK,EAAQkK,GAI1ChQ,KAAKkO,SAAS,WAGb,GAA4B,IAAxBpD,EAAQE,YAAmB,CAC9B,IAAIrH,EAAImH,EAAQC,SAAS,GAEzB/K,KAAKiK,aAAc,EACnBtG,EAAEoN,UAAUpN,EAAE9B,aACd7B,KAAKiK,aAAc,EACftG,EAAEP,aACLO,EAAEP,mBAGH0H,EAAQmF,aAAanK,EAAQkK,EAAcvG,EAAS,SAAUwC,GAC7DA,EAAEiB,kCAAkCpH,EAAQ2D,EAASsG,EAAoB,KAG3EY,EAAGF,mBAILA,cAAe,WACVzQ,KAAK+B,OACR/B,KAAK+B,KAAK6G,SAASC,UAAY7I,KAAK+B,KAAK6G,SAASC,UAAUC,QAAQ,wBAAyB,KAE9F9I,KAAKM,mBACLN,KAAK8B,KAAK,iBAKXuO,aAAc,WAIbtS,EAAE+B,KAAKkR,QAAQC,SAASC,KAAKC,gBAI/BpT,EAAEqT,mBAAqB,SAAUlT,GAChC,OAAO,IAAIH,EAAED,mBAAmBI,ICp3CvB,IAACqD,EAAgBxD,EAAEwD,cAAgBxD,EAAEO,OAAOL,OAAO,CAC5DC,QAASH,EAAEsT,KAAK9S,UAAUL,QAE1B2B,WAAY,SAAU6P,EAAOnC,EAAM+D,EAAGC,GAErCxT,EAAEO,OAAOC,UAAUsB,WAAWyG,KAAKtG,KAAMsR,EAAKA,EAAEpG,UAAYoG,EAAEzP,YAAe,IAAI9D,EAAE+R,OAAO,EAAG,GACnF,CAAEF,KAAM5P,KAAMxB,KAAMkR,EAAMxR,QAAQG,cAE5C2B,KAAK+G,OAAS2I,EACd1P,KAAK0C,MAAQ6K,EAEbvN,KAAK+K,SAAW,GAChB/K,KAAKoL,eAAiB,GACtBpL,KAAKgL,YAAc,EACnBhL,KAAKqL,kBAAmB,EACxBrL,KAAKiL,mBAAoB,EAEzBjL,KAAKgG,QAAU,IAAIjI,EAAEgI,aAEjBuL,GACHtR,KAAK6N,UAAUyD,GAEZC,GACHvR,KAAK6N,UAAU0D,IAKjBzM,mBAAoB,SAAU0M,EAAcC,GAC3CD,EAAeA,GAAgB,GAE/B,IAAK,IAAIrM,EAAInF,KAAKoL,eAAepH,OAAS,EAAQ,GAALmB,EAAQA,IACpDnF,KAAKoL,eAAejG,GAAGL,mBAAmB0M,EAAcC,GAGzD,IAAK,IAAIrL,EAAIpG,KAAK+K,SAAS/G,OAAS,EAAQ,GAALoC,EAAQA,IAC1CqL,GAAuBzR,KAAK+K,SAAS3E,GAAG4D,aAG5CwH,EAAaxP,KAAKhC,KAAK+K,SAAS3E,IAGjC,OAAOoL,GAIR5M,cAAe,WACd,OAAO5E,KAAKgL,aAIbrD,aAAc,SAAU+J,GASvB,IARA,IAKCvM,EALGwM,EAAgB3R,KAAKoL,eAAe1G,QACvCwC,EAAMlH,KAAK+G,OAAOhF,KAClB6P,EAAa1K,EAAI2K,cAAc7R,KAAKgG,SACpCuH,EAAOvN,KAAK0C,MAAQ,EACpB6L,EAAUrH,EAAI4K,UAIe,EAAvBH,EAAc3N,QAA2BuJ,EAAbqE,GAAmB,CACrDrE,IACA,IAAIwE,EAAc,GAClB,IAAK5M,EAAI,EAAGA,EAAIwM,EAAc3N,OAAQmB,IACrC4M,EAAcA,EAAYC,OAAOL,EAAcxM,GAAGiG,gBAEnDuG,EAAgBI,EAGAxE,EAAbqE,EACH5R,KAAK+G,OAAOhF,KAAKkQ,QAAQjS,KAAKuD,QAASgK,GAC7BqE,GAAcrD,EACxBvO,KAAK+G,OAAOhF,KAAKkQ,QAAQjS,KAAKuD,QAASgL,EAAU,GAEjDvO,KAAK+G,OAAOhF,KAAKmQ,UAAUlS,KAAKgG,QAAS0L,IAI3C7L,UAAW,WACV,IAAIC,EAAS,IAAI/H,EAAEgI,aAEnB,OADAD,EAAO7H,OAAO+B,KAAKgG,SACZF,GAGRmI,YAAa,WACZjO,KAAKqL,kBAAmB,EACpBrL,KAAKoH,OACRpH,KAAKmS,QAAQnS,OAKfoS,WAAY,WAKX,OAJIpS,KAAKqL,mBACRrL,KAAKqS,SAAWrS,KAAK+G,OAAO7I,QAAQE,mBAAmB4B,MACvDA,KAAKqL,kBAAmB,GAElBrL,KAAKqS,SAASD,cAEtBE,aAAc,WACb,OAAOtS,KAAKqS,SAASC,gBAItBzE,UAAW,SAAU0E,EAAMC,GAE1BxS,KAAKqL,kBAAmB,EAExBrL,KAAKiL,mBAAoB,EACzBjL,KAAKyS,kBAAkBF,GAEnBA,aAAgBxU,EAAEwD,eAChBiR,IACJxS,KAAKoL,eAAepJ,KAAKuQ,GACzBA,EAAK5P,SAAW3C,MAEjBA,KAAKgL,aAAeuH,EAAKvH,cAEpBwH,GACJxS,KAAK+K,SAAS/I,KAAKuQ,GAEpBvS,KAAKgL,eAGFhL,KAAK2C,UACR3C,KAAK2C,SAASkL,UAAU0E,GAAM,IAShCE,kBAAmB,SAAUC,GACvB1S,KAAKkL,WAETlL,KAAKkL,SAAWwH,EAAMxH,UAAYwH,EAAMnP,UAU1CoP,aAAc,WACb,IAAI7M,EAAS9F,KAAKgG,QAEdF,EAAO0J,aACV1J,EAAO0J,WAAWH,IAAMC,EAAAA,EACxBxJ,EAAO0J,WAAWoD,IAAMtD,EAAAA,GAErBxJ,EAAOsJ,aACVtJ,EAAOsJ,WAAWC,KAAOC,EAAAA,EACzBxJ,EAAOsJ,WAAWwD,KAAOtD,EAAAA,IAI3BhN,mBAAoB,WACnB,IAKI6C,EAAGuN,EAAOG,EAAa7G,EALvBnH,EAAU7E,KAAK+K,SACf4G,EAAgB3R,KAAKoL,eACrB0H,EAAS,EACTC,EAAS,EACTC,EAAahT,KAAKgL,YAItB,GAAmB,IAAfgI,EAAJ,CAQA,IAHAhT,KAAK2S,eAGAxN,EAAI,EAAGA,EAAIN,EAAQb,OAAQmB,IAC/B0N,EAAchO,EAAQM,GAAG5B,QAEzBvD,KAAKgG,QAAQ/H,OAAO4U,GAEpBC,GAAUD,EAAYxD,IACtB0D,GAAUF,EAAYD,IAIvB,IAAKzN,EAAI,EAAGA,EAAIwM,EAAc3N,OAAQmB,KACrCuN,EAAQf,EAAcxM,IAGZ8F,mBACTyH,EAAMpQ,qBAGPtC,KAAKgG,QAAQ/H,OAAOyU,EAAM1M,SAE1B6M,EAAcH,EAAMO,SACpBjH,EAAa0G,EAAM1H,YAEnB8H,GAAUD,EAAYxD,IAAMrD,EAC5B+G,GAAUF,EAAYD,IAAM5G,EAG7BhM,KAAKuD,QAAUvD,KAAKiT,SAAW,IAAIlV,EAAE+R,OAAOgD,EAASE,EAAYD,EAASC,GAG1EhT,KAAKiL,mBAAoB,IAI1BwE,UAAW,SAAUS,GAChBA,IACHlQ,KAAKkT,cAAgBlT,KAAKuD,QAC1BvD,KAAK+Q,UAAUb,IAEhBlQ,KAAK+G,OAAO7G,cAAcuB,SAASzB,OAGpCmT,8BAA+B,SAAUrN,EAAQsN,EAAQjG,GACxDnN,KAAKiQ,aAAanK,EAAQ9F,KAAK+G,OAAOhF,KAAK4H,aAAcwD,EAAU,EAClE,SAAUlB,GACT,IACC9G,EAAGxB,EADAkB,EAAUoH,EAAElB,SAEhB,IAAK5F,EAAIN,EAAQb,OAAS,EAAQ,GAALmB,EAAQA,KACpCxB,EAAIkB,EAAQM,IAGNiC,QACLzD,EAAEiN,QAAQwC,GACVzP,EAAEyM,gBAIL,SAAUnE,GACT,IACC7F,EAAGiN,EADA1B,EAAgB1F,EAAEb,eAEtB,IAAKhF,EAAIuL,EAAc3N,OAAS,EAAQ,GAALoC,EAAQA,KAC1CiN,EAAK1B,EAAcvL,IACZgB,QACNiM,EAAGzC,QAAQwC,GACXC,EAAGjD,kBAORU,6CAA8C,SAAUhL,EAAQwN,EAAYvD,EAAmBC,GAC9FhQ,KAAKiQ,aAAanK,EAAQkK,EAAcsD,EACvC,SAAUrH,GACTA,EAAEkH,8BAA8BrN,EAAQmG,EAAElF,OAAOhF,KAAK8O,mBAAmB5E,EAAEpK,aAAa2F,QAASuI,GAI7F9D,EAAEkE,mBAAqBJ,EAAoB,IAAMC,GACpD/D,EAAE7I,cACF6I,EAAEiB,kCAAkCpH,EAAQwN,EAAYvD,IAExD9D,EAAEmE,cAGHnE,EAAEwD,eAKLa,0BAA2B,SAAUxK,EAAQyN,GAC5CvT,KAAKiQ,aAAanK,EAAQ9F,KAAK+G,OAAOhF,KAAK4H,aAAc4J,EAAW,KAAM,SAAUtH,GACnFA,EAAE7I,iBAIJ4B,6BAA8B,SAAUkL,EAAUqD,EAAWzN,GAC5D9F,KAAKiQ,aAAanK,EAAQ9F,KAAK+G,OAAOhF,KAAK4H,aAAe,EAAG4J,EAC5D,SAAUtH,GACT,GAAIsH,IAActH,EAAEvJ,MAKpB,IAAK,IAAIyC,EAAI8G,EAAElB,SAAS/G,OAAS,EAAQ,GAALmB,EAAQA,IAAK,CAChD,IAAIqO,EAAKvH,EAAElB,SAAS5F,GAEfW,EAAOlD,SAAS4Q,EAAGjQ,WAIpB2M,IACHsD,EAAGN,cAAgBM,EAAG3R,YAEtB2R,EAAGzC,UAAUb,GACTsD,EAAGpD,aACNoD,EAAGpD,eAILnE,EAAElF,OAAO7G,cAAcuB,SAAS+R,MAGlC,SAAUvH,GACTA,EAAEwD,UAAUS,MAKfM,kCAAmC,SAAU+C,GAE5C,IAAK,IAAIpO,EAAInF,KAAK+K,SAAS/G,OAAS,EAAQ,GAALmB,EAAQA,IAAK,CACnD,IAAIqO,EAAKxT,KAAK+K,SAAS5F,GACnBqO,EAAGN,gBACNM,EAAGzC,UAAUyC,EAAGN,sBACTM,EAAGN,eAIZ,GAAIK,EAAY,IAAMvT,KAAK0C,MAE1B,IAAK,IAAI0D,EAAIpG,KAAKoL,eAAepH,OAAS,EAAQ,GAALoC,EAAQA,IACpDpG,KAAKoL,eAAehF,GAAGqN,wBAGxB,IAAK,IAAIC,EAAI1T,KAAKoL,eAAepH,OAAS,EAAQ,GAAL0P,EAAQA,IACpD1T,KAAKoL,eAAesI,GAAGlD,kCAAkC+C,IAK5DE,iBAAkB,WACbzT,KAAKkT,gBACRlT,KAAK+Q,UAAU/Q,KAAKkT,sBACblT,KAAKkT,gBAKdhG,kCAAmC,SAAUyG,EAAgBL,EAAYC,EAAWK,GACnF,IAAIjQ,EAAGwB,EACPnF,KAAKiQ,aAAa0D,EAAgBL,EAAa,EAAGC,EAAY,EAC7D,SAAUtH,GAET,IAAK9G,EAAI8G,EAAElB,SAAS/G,OAAS,EAAQ,GAALmB,EAAQA,IACvCxB,EAAIsI,EAAElB,SAAS5F,GACVyO,GAAiBA,EAAahR,SAASe,EAAEJ,WAC7C0I,EAAElF,OAAO7G,cAAc6C,YAAYY,GAC/BA,EAAEP,aACLO,EAAEP,gBAKN,SAAU6I,GAET,IAAK9G,EAAI8G,EAAEb,eAAepH,OAAS,EAAQ,GAALmB,EAAQA,IAC7CxB,EAAIsI,EAAEb,eAAejG,GAChByO,GAAiBA,EAAahR,SAASe,EAAEJ,WAC7C0I,EAAElF,OAAO7G,cAAc6C,YAAYY,GAC/BA,EAAEP,aACLO,EAAEP,kBAcR6M,aAAc,SAAU4D,EAAiBC,EAAkBC,EAAiBC,EAAiBC,GAC5F,IAEI9O,EAAG8G,EAFH0F,EAAgB3R,KAAKoL,eACrBmC,EAAOvN,KAAK0C,MAYhB,GATIoR,GAAoBvG,IACnByG,GACHA,EAAgBhU,MAEbiU,GAAoB1G,IAASwG,GAChCE,EAAiBjU,OAIfuN,EAAOuG,GAAoBvG,EAAOwG,EACrC,IAAK5O,EAAIwM,EAAc3N,OAAS,EAAQ,GAALmB,EAAQA,KAC1C8G,EAAI0F,EAAcxM,IACZ8F,mBACLgB,EAAE3J,qBAECuR,EAAgBrF,WAAWvC,EAAEjG,UAChCiG,EAAEgE,aAAa4D,EAAiBC,EAAkBC,EAAiBC,EAAiBC,IAOxF9D,gBAAiB,WAEhB,OAAoC,EAA7BnQ,KAAKoL,eAAepH,QAAchE,KAAKoL,eAAe,GAAGJ,cAAgBhL,KAAKgL,eC1YvFjN,EAAEO,OAAOuR,QAAQ,CAChBO,YAAa,WACZ,IAAI8D,EAASlU,KAAK9B,QAAQqB,QAG1B,OAFAS,KAAKmU,WAAW,GAChBnU,KAAK9B,QAAQqB,QAAU2U,EAChBlU,MAGRoD,YAAa,WACZ,OAAOpD,KAAKmU,WAAWnU,KAAK9B,QAAQqB,YChBtCxB,EAAEyP,aAAe,SAAU4G,GAC1BpU,KAAKqU,UAAYD,EACjBpU,KAAKsU,YAAcF,EAAWA,EAC9BpU,KAAKuU,MAAQ,GACbvU,KAAKwU,aAAe,IAGrBzW,EAAEyP,aAAajP,UAAY,CAE1B4M,UAAW,SAAU/B,EAAKqL,GACzB,IAAIC,EAAI1U,KAAK2U,UAAUF,EAAMC,GACzBE,EAAI5U,KAAK2U,UAAUF,EAAMG,GACzBC,EAAO7U,KAAKuU,MACZO,EAAMD,EAAKD,GAAKC,EAAKD,IAAM,GAC3BG,EAAOD,EAAIJ,GAAKI,EAAIJ,IAAM,GAC1B7N,EAAQ9I,EAAE+B,KAAK+G,MAAMuC,GAEzBpJ,KAAKwU,aAAa3N,GAAS4N,EAE3BM,EAAK/S,KAAKoH,IAGX4L,aAAc,SAAU5L,EAAKqL,GAC5BzU,KAAK4J,aAAaR,GAClBpJ,KAAKmL,UAAU/B,EAAKqL,IAIrB7K,aAAc,SAAUR,EAAKqL,GAC5B,IAKItP,EAAG8P,EALHP,EAAI1U,KAAK2U,UAAUF,EAAMC,GACzBE,EAAI5U,KAAK2U,UAAUF,EAAMG,GACzBC,EAAO7U,KAAKuU,MACZO,EAAMD,EAAKD,GAAKC,EAAKD,IAAM,GAC3BG,EAAOD,EAAIJ,GAAKI,EAAIJ,IAAM,GAK9B,WAFO1U,KAAKwU,aAAazW,EAAE+B,KAAK+G,MAAMuC,IAEjCjE,EAAI,EAAG8P,EAAMF,EAAK/Q,OAAQmB,EAAI8P,EAAK9P,IACvC,GAAI4P,EAAK5P,KAAOiE,EAQf,OANA2L,EAAK1L,OAAOlE,EAAG,GAEH,IAAR8P,UACIH,EAAIJ,IAGL,GAMVQ,WAAY,SAAU/G,EAAIjI,GACzB,IAAIf,EAAGiB,EAAGsN,EAAGuB,EAAKH,EAAKC,EACnBF,EAAO7U,KAAKuU,MAEhB,IAAKpP,KAAK0P,EAGT,IAAKzO,KAFL0O,EAAMD,EAAK1P,GAKV,IAAKuO,EAAI,EAAGuB,GAFZF,EAAOD,EAAI1O,IAEYpC,OAAQ0P,EAAIuB,EAAKvB,IAC7BvF,EAAG7H,KAAKJ,EAAS6O,EAAKrB,MAE/BA,IACAuB,MAOLrH,cAAe,SAAU6G,GACxB,IAEItP,EAAGiB,EAAGsN,EAAGoB,EAAKC,EAAME,EAAK7L,EAAK+L,EAF9BT,EAAI1U,KAAK2U,UAAUF,EAAMC,GACzBE,EAAI5U,KAAK2U,UAAUF,EAAMG,GAEzBQ,EAAcpV,KAAKwU,aACnBa,EAAgBrV,KAAKsU,YACrB3G,EAAU,KAEd,IAAKxI,EAAIyP,EAAI,EAAGzP,GAAKyP,EAAI,EAAGzP,IAE3B,GADA2P,EAAM9U,KAAKuU,MAAMpP,GAGhB,IAAKiB,EAAIsO,EAAI,EAAGtO,GAAKsO,EAAI,EAAGtO,IAE3B,GADA2O,EAAOD,EAAI1O,GAGV,IAAKsN,EAAI,EAAGuB,EAAMF,EAAK/Q,OAAQ0P,EAAIuB,EAAKvB,IACvCtK,EAAM2L,EAAKrB,KACXyB,EAAOnV,KAAKsV,QAAQF,EAAYrX,EAAE+B,KAAK+G,MAAMuC,IAAOqL,IACzCY,GACVF,GAAQE,GAA6B,OAAZ1H,KACzB0H,EAAgBF,EAChBxH,EAAUvE,GAOhB,OAAOuE,GAGRgH,UAAW,SAAUD,GACpB,IAAIa,EAAQhO,KAAKmC,MAAMgL,EAAI1U,KAAKqU,WAChC,OAAOxM,SAAS0N,GAASA,EAAQb,GAGlCY,QAAS,SAAUE,EAAGC,GACrB,IAAIC,EAAKD,EAAGf,EAAIc,EAAEd,EACdiB,EAAKF,EAAGb,EAAIY,EAAEZ,EAClB,OAAOc,EAAKA,EAAKC,EAAKA,ICxFvB5X,EAAE6X,UAAY,CAQbC,WAAY,SAAUC,EAAKC,GAC1B,IAAIC,EAAKD,EAAG,GAAG1G,IAAM0G,EAAG,GAAG1G,IAE3B,OADM0G,EAAG,GAAGnD,IAAMmD,EAAG,GAAGnD,MACVkD,EAAIzG,IAAM0G,EAAG,GAAG1G,KAAO2G,GAAMF,EAAIlD,IAAMmD,EAAG,GAAGnD,MAU5DqD,iCAAkC,SAAUC,EAAUC,GACrD,IAGChR,EAAGiR,EAAIC,EAHJC,EAAO,EACVC,EAAQ,KACRC,EAAY,GAGb,IAAKrR,EAAIgR,EAAQnS,OAAS,EAAQ,GAALmB,EAAQA,IACpCiR,EAAKD,EAAQhR,GAGL,GAFRkR,EAAIrW,KAAK6V,WAAWO,EAAIF,MAGvBM,EAAUxU,KAAKoU,GAKRE,EAAJD,IACHC,EAAOD,EACPE,EAAQH,IAIV,MAAO,CAAEK,SAAUF,EAAOC,UAAWA,IAWtCE,gBAAiB,SAAUR,EAAUC,GACpC,IAAIQ,EAAsB,GACzBC,EAAI5W,KAAKiW,iCAAiCC,EAAUC,GAErD,OAAIS,EAAEH,SAKLE,GAJAA,EACCA,EAAoB3E,OACnBhS,KAAK0W,gBAAgB,CAACR,EAAS,GAAIU,EAAEH,UAAWG,EAAEJ,aAG/BxE,OACnBhS,KAAK0W,gBAAgB,CAACE,EAAEH,SAAUP,EAAS,IAAKU,EAAEJ,YAI7C,CAACN,EAAS,KAWnBnJ,cAAe,SAAUoJ,GAExB,IAKChR,EALG8J,GAAS,EAAO4H,GAAS,EAC5BC,GAAS,EAAOC,GAAS,EACzBC,EAAW,KAAMC,EAAW,KAC5BC,EAAW,KAAMC,EAAW,KAC5BZ,EAAQ,KAAMa,EAAQ,KAGvB,IAAKjS,EAAIgR,EAAQnS,OAAS,EAAQ,GAALmB,EAAQA,IAAK,CACzC,IAAIiR,EAAKD,EAAQhR,KACF,IAAX8J,GAAoBmH,EAAG/G,IAAMJ,KAEhCA,GADA+H,EAAWZ,GACC/G,OAEE,IAAXwH,GAAoBT,EAAG/G,IAAMwH,KAEhCA,GADAI,EAAWb,GACC/G,OAEE,IAAXyH,GAAoBV,EAAGxD,IAAMkE,KAEhCA,GADAI,EAAWd,GACCxD,OAEE,IAAXmE,GAAoBX,EAAGxD,IAAMmE,KAEhCA,GADAI,EAAWf,GACCxD,KAcd,OARC2D,EAFGM,IAAW5H,GACdmI,EAAQH,EACAD,IAERI,EAAQD,EACAD,GAGA,GAAGlF,OAAOhS,KAAK0W,gBAAgB,CAACU,EAAOb,GAAQJ,GACnDnW,KAAK0W,gBAAgB,CAACH,EAAOa,GAAQjB,MAM7CpY,EAAEwD,cAAcsO,QAAQ,CACvB9C,cAAe,WACd,IAECyI,EAAGrQ,EAFAkS,EAAerX,KAAK8E,qBACvBwS,EAAS,GAGV,IAAKnS,EAAIkS,EAAarT,OAAS,EAAQ,GAALmB,EAAQA,IACzCqQ,EAAI6B,EAAalS,GAAGtD,YACpByV,EAAOtV,KAAKwT,GAGb,OAAOzX,EAAE6X,UAAU7I,cAAcuK,MC/JnCvZ,EAAEwD,cAAcsO,QAAQ,CAEvB0H,KAAgB,EAAVhQ,KAAKiQ,GACXC,sBAAuB,GACvBC,kBAAmB,EAEnBC,sBAAwB,GACxBC,mBAAoB,GACpBC,oBAAqB,EAErBC,wBAAyB,EAGzBxQ,SAAU,WACT,GAAItH,KAAK+G,OAAO8F,cAAgB7M,OAAQA,KAAK+G,OAAOzG,iBAApD,CAIA,IAICyX,EAJGV,EAAerX,KAAK8E,mBAAmB,MAAM,GAGhDsO,EAFQpT,KAAK+G,OACDhF,KACC8O,mBAAmB7Q,KAAKuD,SAGtCvD,KAAK+G,OAAO7E,cAMX6V,GALD/X,KAAK+G,OAAO8F,YAAc7M,MAIjB+G,OAAO7I,QAAQgB,uBACXc,KAAK+G,OAAO7I,QAAQgB,uBAAuBmY,EAAarT,OAAQoP,GAClEiE,EAAarT,QAAUhE,KAAK8X,wBAC1B9X,KAAKgY,sBAAsBX,EAAarT,OAAQoP,IAE5DA,EAAOwB,GAAK,GACA5U,KAAKiY,sBAAsBZ,EAAarT,OAAQoP,IAG7DpT,KAAKkY,mBAAmBb,EAAcU,KAGvCI,WAAY,SAAUC,GAEjBpY,KAAK+G,OAAOzG,mBAGhBN,KAAKqY,qBAAqBD,GAE1BpY,KAAK+G,OAAO8F,YAAc,OAG3BoL,sBAAuB,SAAUK,EAAOC,GACvC,IAICpT,EAAGqT,EAHHC,EADmBzY,KAAK+G,OAAO7I,QAAQiB,2BAA6Ba,KAAKyX,uBAAyB,EAAIa,GAC1EtY,KAAKuX,KACjCmB,EAAY1Y,KAAKuX,KAAOe,EACxBK,EAAM,GAOP,IAJAF,EAAYlR,KAAKqR,IAAIH,EAAW,IAEhCE,EAAI3U,OAASsU,EAERnT,EAAI,EAAGA,EAAImT,EAAOnT,IACtBqT,EAAQxY,KAAK0X,kBAAoBvS,EAAIuT,EACrCC,EAAIxT,GAAK,IAAIpH,EAAEsO,MAAMkM,EAAS7D,EAAI+D,EAAYlR,KAAKsR,IAAIL,GAAQD,EAAS3D,EAAI6D,EAAYlR,KAAKuR,IAAIN,IAAQO,SAG1G,OAAOJ,GAGRX,sBAAuB,SAAUM,EAAOC,GACvC,IAMCpT,EANGhG,EAA6Ba,KAAK+G,OAAO7I,QAAQiB,2BACpDsZ,EAAYtZ,EAA6Ba,KAAK4X,mBAC9CoB,EAAa7Z,EAA6Ba,KAAK2X,sBAC/CsB,EAAe9Z,EAA6Ba,KAAK6X,oBAAsB7X,KAAKuX,KAC5EiB,EAAQ,EACRG,EAAM,GAMP,IAAKxT,EAHLwT,EAAI3U,OAASsU,EAGQ,GAALnT,EAAQA,IAGnBA,EAAImT,IACPK,EAAIxT,GAAK,IAAIpH,EAAEsO,MAAMkM,EAAS7D,EAAI+D,EAAYlR,KAAKsR,IAAIL,GAAQD,EAAS3D,EAAI6D,EAAYlR,KAAKuR,IAAIN,IAAQO,UAG1GN,GAAaQ,GADbT,GAASQ,EAAaP,EAAgB,KAAJtT,GAGnC,OAAOwT,GAGRlT,uBAAwB,WACvB,IAIC9B,EAAGwB,EAJAuK,EAAQ1P,KAAK+G,OAChBG,EAAMwI,EAAM3N,KACZ6B,EAAK8L,EAAMxP,cACXmX,EAAerX,KAAK8E,mBAAmB,MAAM,GAM9C,IAHA4K,EAAMzF,aAAc,EAEpBjK,KAAKmU,WAAW,GACXhP,EAAIkS,EAAarT,OAAS,EAAQ,GAALmB,EAAQA,IACzCxB,EAAI0T,EAAalS,GAEjBvB,EAAGb,YAAYY,GAEXA,EAAEuV,qBACLvV,EAAEoN,UAAUpN,EAAEuV,2BACPvV,EAAEuV,oBAENvV,EAAEwV,iBACLxV,EAAEwV,gBAAgB,GAGfxV,EAAEyV,aACLlS,EAAInE,YAAYY,EAAEyV,mBACXzV,EAAEyV,YAIX1J,EAAM5N,KAAK,eAAgB,CAC1BgJ,QAAS9K,KACT6E,QAASwS,IAEV3H,EAAMzF,aAAc,EACpByF,EAAM7C,YAAc,QAKtB9O,EAAEyD,yBAA2BzD,EAAEwD,cAActD,OAAO,CACnDia,mBAAoB,SAAUb,EAAcU,GAC3C,IAIC5S,EAAGxB,EAAG0V,EAAKC,EAJR5J,EAAQ1P,KAAK+G,OAChBG,EAAMwI,EAAM3N,KACZ6B,EAAK8L,EAAMxP,cACXqZ,EAAavZ,KAAK+G,OAAO7I,QAAQkB,yBAOlC,IAJAsQ,EAAMzF,aAAc,EAIf9E,EAAI,EAAGA,EAAIkS,EAAarT,OAAQmB,IACpCmU,EAASpS,EAAIsS,mBAAmBzB,EAAU5S,IAC1CxB,EAAI0T,EAAalS,GAGjBkU,EAAM,IAAItb,EAAE0b,SAAS,CAACzZ,KAAKuD,QAAS+V,GAASC,GAC7CrS,EAAIzF,SAAS4X,GACb1V,EAAEyV,WAAaC,EAGf1V,EAAEuV,mBAAqBvV,EAAEJ,QACzBI,EAAEoN,UAAUuI,GACR3V,EAAEwV,iBACLxV,EAAEwV,gBAAgB,KAGnBvV,EAAGnC,SAASkC,GAEb3D,KAAKmU,WAAW,IAEhBzE,EAAMzF,aAAc,EACpByF,EAAM5N,KAAK,aAAc,CACxBgJ,QAAS9K,KACT6E,QAASwS,KAIXgB,qBAAsB,WACrBrY,KAAKyF,4BAKP1H,EAAEwD,cAAcsO,QAAQ,CAEvBqI,mBAAoB,SAAUb,EAAcU,GAC3C,IASC5S,EAAGxB,EAAG0V,EAAKK,EAASjB,EAAWa,EAT5B3I,EAAK3Q,KACR0P,EAAQ1P,KAAK+G,OACbG,EAAMwI,EAAM3N,KACZ6B,EAAK8L,EAAMxP,cACXyZ,EAAkB3Z,KAAKuD,QACvBqW,EAAe1S,EAAI2J,mBAAmB8I,GACtCE,EAAM9b,EAAE+b,KAAKC,IACbR,EAAaxb,EAAEE,OAAO,GAAI+B,KAAK+G,OAAO7I,QAAQkB,0BAC9C4a,EAAkBT,EAAWha,QAuB9B,SApBwB2P,IAApB8K,IACHA,EAAkBjc,EAAED,mBAAmBS,UAAUL,QAAQkB,yBAAyBG,SAG/Esa,GAEHN,EAAWha,QAAU,EAGrBga,EAAW1Q,WAAa0Q,EAAW1Q,WAAa,IAAM,+BAGtD0Q,EAAWha,QAAUya,EAGtBtK,EAAMzF,aAAc,EAKf9E,EAAI,EAAGA,EAAIkS,EAAarT,OAAQmB,IACpCxB,EAAI0T,EAAalS,GAEjBmU,EAASpS,EAAIsS,mBAAmBzB,EAAU5S,IAG1CkU,EAAM,IAAItb,EAAE0b,SAAS,CAACE,EAAiBL,GAASC,GAChDrS,EAAIzF,SAAS4X,GACb1V,EAAEyV,WAAaC,EAIXQ,IAEHpB,GADAiB,EAAUL,EAAIY,OACMC,iBAAmB,GACvCR,EAAQS,MAAMC,gBAAkB3B,EAChCiB,EAAQS,MAAME,iBAAmB5B,GAI9B9U,EAAEwV,iBACLxV,EAAEwV,gBAAgB,KAEfxV,EAAEyM,aACLzM,EAAEyM,cAIHxM,EAAGnC,SAASkC,GAERA,EAAEiN,SACLjN,EAAEiN,QAAQgJ,GAQZ,IAJAlK,EAAMW,eACNX,EAAMjB,kBAGDtJ,EAAIkS,EAAarT,OAAS,EAAQ,GAALmB,EAAQA,IACzCmU,EAASpS,EAAIsS,mBAAmBzB,EAAU5S,KAC1CxB,EAAI0T,EAAalS,IAGf+T,mBAAqBvV,EAAEJ,QACzBI,EAAEoN,UAAUuI,GAER3V,EAAEP,aACLO,EAAEP,cAICyW,KAEHH,GADAL,EAAM1V,EAAEyV,YACMa,OACNE,MAAME,iBAAmB,EAEjChB,EAAIiB,SAAS,CAAC/a,QAASya,KAGzBha,KAAKmU,WAAW,IAEhBzE,EAAMzF,aAAc,EAEpBhF,WAAW,WACVyK,EAAMe,gBACNf,EAAM5N,KAAK,aAAc,CACxBgJ,QAAS6F,EACT9L,QAASwS,KAER,MAGJgB,qBAAsB,SAAUD,GAC/B,IAOCzU,EAAGwB,EAAGkU,EAAKK,EAASjB,EAAW8B,EAP5B5J,EAAK3Q,KACR0P,EAAQ1P,KAAK+G,OACbG,EAAMwI,EAAM3N,KACZ6B,EAAK8L,EAAMxP,cACX0Z,EAAexB,EAAclR,EAAIsT,uBAAuBxa,KAAKuD,QAAS6U,EAAY7K,KAAM6K,EAAYhF,QAAUlM,EAAI2J,mBAAmB7Q,KAAKuD,SAC1I8T,EAAerX,KAAK8E,mBAAmB,MAAM,GAC7C+U,EAAM9b,EAAE+b,KAAKC,IAQd,IALArK,EAAMzF,aAAc,EACpByF,EAAMjB,kBAGNzO,KAAKmU,WAAW,GACXhP,EAAIkS,EAAarT,OAAS,EAAQ,GAALmB,EAAQA,KACzCxB,EAAI0T,EAAalS,IAGV+T,qBAKPvV,EAAE8W,aAGF9W,EAAEoN,UAAUpN,EAAEuV,2BACPvV,EAAEuV,mBAGTqB,GAAgB,EACZ5W,EAAEiN,UACLjN,EAAEiN,QAAQgJ,GACVW,GAAgB,GAEb5W,EAAEyM,cACLzM,EAAEyM,cACFmK,GAAgB,GAEbA,GACH3W,EAAGb,YAAYY,GAIZkW,IAGHpB,GADAiB,GADAL,EAAM1V,EAAEyV,YACMa,OACMC,iBAAmB,GACvCR,EAAQS,MAAME,iBAAmB5B,EACjCY,EAAIiB,SAAS,CAAC/a,QAAS,MAIzBmQ,EAAMzF,aAAc,EAEpBhF,WAAW,WAEV,IAAIyV,EAAuB,EAC3B,IAAKvV,EAAIkS,EAAarT,OAAS,EAAQ,GAALmB,EAAQA,KACzCxB,EAAI0T,EAAalS,IACXiU,YACLsB,IAKF,IAAKvV,EAAIkS,EAAarT,OAAS,EAAQ,GAALmB,EAAQA,KACzCxB,EAAI0T,EAAalS,IAEViU,aAIHzV,EAAEP,aACLO,EAAEP,cAECO,EAAEwV,iBACLxV,EAAEwV,gBAAgB,GAGQ,EAAvBuB,GACH9W,EAAGb,YAAYY,GAGhBuD,EAAInE,YAAYY,EAAEyV,mBACXzV,EAAEyV,YAEV1J,EAAMe,gBACNf,EAAM5N,KAAK,eAAgB,CAC1BgJ,QAAS6F,EACT9L,QAASwS,KAER,QAKLtZ,EAAED,mBAAmB+R,QAAQ,CAE5BhD,YAAa,KAEbsL,WAAY,WACXnY,KAAKkC,YAAYyY,MAAM3a,KAAM4a,YAG9BpS,iBAAkB,WACjBxI,KAAK+B,KAAK0F,GAAG,QAASzH,KAAK6a,mBAAoB7a,MAE3CA,KAAK+B,KAAK7D,QAAQ4c,eACrB9a,KAAK+B,KAAK0F,GAAG,YAAazH,KAAK+a,qBAAsB/a,MAGtDA,KAAK+B,KAAK0F,GAAG,UAAWzH,KAAKyF,uBAAwBzF,MAEhDjC,EAAE6Q,QAAQoM,OACdhb,KAAK+B,KAAKkZ,YAAYjb,OAOxB+I,oBAAqB,WACpB/I,KAAK+B,KAAKoB,IAAI,QAASnD,KAAK6a,mBAAoB7a,MAChDA,KAAK+B,KAAKoB,IAAI,YAAanD,KAAK+a,qBAAsB/a,MACtDA,KAAK+B,KAAKoB,IAAI,WAAYnD,KAAKkb,oBAAqBlb,MACpDA,KAAK+B,KAAKoB,IAAI,UAAWnD,KAAKyF,uBAAwBzF,MAItDA,KAAKyF,0BAKNsV,qBAAsB,WAChB/a,KAAK+B,MAIV/B,KAAK+B,KAAK0F,GAAG,WAAYzH,KAAKkb,oBAAqBlb,OAGpDkb,oBAAqB,SAAU9C,GAE1Bra,EAAEmD,QAAQia,SAASnb,KAAK+B,KAAK6G,SAAU,sBAI3C5I,KAAK+B,KAAKoB,IAAI,WAAYnD,KAAKkb,oBAAqBlb,MACpDA,KAAKkC,YAAYkW,KAGlByC,mBAAoB,WAEnB7a,KAAKkC,eAGNA,YAAa,SAAUkW,GAClBpY,KAAK6M,aACR7M,KAAK6M,YAAYsL,WAAWC,IAI9B3S,uBAAwB,WACnBzF,KAAK6M,aACR7M,KAAK6M,YAAYpH,0BAKnBxC,iBAAkB,SAAUvB,GACvBA,EAAM0X,aACTpZ,KAAKE,cAAc6C,YAAYrB,GAE3BA,EAAM0B,aACT1B,EAAM0B,cAGH1B,EAAMyX,iBACTzX,EAAMyX,gBAAgB,GAGvBnZ,KAAK+B,KAAKgB,YAAYrB,EAAM0X,mBACrB1X,EAAM0X,eCjdhBrb,EAAED,mBAAmB+R,QAAQ,CAS5BuL,gBAAiB,SAAU5U,GAoB1B,OAnBKA,EAEMA,aAAkBzI,EAAED,mBAC9B0I,EAASA,EAAOnE,iBAAiByC,qBACvB0B,aAAkBzI,EAAE4D,WAC9B6E,EAASA,EAAO6U,QACN7U,aAAkBzI,EAAEwD,cAC9BiF,EAASA,EAAO1B,qBACN0B,aAAkBzI,EAAEO,SAC9BkI,EAAS,CAACA,IARVA,EAASxG,KAAKqC,iBAAiByC,qBAUhC9E,KAAKsb,4BAA4B9U,GACjCxG,KAAKuC,wBAGDvC,KAAK9B,QAAQW,kBAChBmB,KAAKub,gCAAgC/U,GAG/BxG,MAQRsb,4BAA6B,SAAU9U,GACtC,IAAIE,EAAIoH,EAGR,IAAKpH,KAAMF,EAOV,IADAsH,EAAStH,EAAOE,GAAI/D,SACbmL,GACNA,EAAOzC,kBAAmB,EAC1ByC,EAASA,EAAOnL,UAWnB4Y,gCAAiC,SAAU/U,GAC1C,IAAIE,EAAIhF,EAER,IAAKgF,KAAMF,EACV9E,EAAQ8E,EAAOE,GAGX1G,KAAKiC,SAASP,IAEjBA,EAAMyQ,QAAQnS,KAAK0N,oBAAoBhM,OAM3C3D,EAAEO,OAAOuR,QAAQ,CAQhB2L,mBAAoB,SAAUtd,EAASud,GACtC,IAAI7L,EAAO5P,KAAK9B,QAAQ0R,KAcxB,OAZA7R,EAAEgC,WAAW6P,EAAM1R,GAEnB8B,KAAKmS,QAAQvC,GAMT6L,GAA2Bzb,KAAK2C,UACnC3C,KAAK2C,SAASoE,OAAOqU,gBAAgBpb,MAG/BA","file":"dist/leaflet.markercluster.js.map"} diff --git a/maps_utils/static/maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.min.js b/maps_utils/static/maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.min.js new file mode 100644 index 0000000000000000000000000000000000000000..cd8eba8df863c7cbb8205be9c290a1dfcba2dc8d --- /dev/null +++ b/maps_utils/static/maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e=e||self).Leaflet=e.Leaflet||{},e.Leaflet.markercluster={}))}(this,function(e){"use strict";var t=L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,clusterPane:L.Marker.prototype.options.pane,spiderfyOnEveryZoom:!1,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyShapePositions:null,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.addEventParent(this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.addEventParent(this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[],this._childMarkerEventHandlers={dragstart:this._childMarkerDragStart,move:this._childMarkerMoved,dragend:this._childMarkerDragEnd};var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup)return this.addLayers([e]);if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this.fire("layeradd",{layer:e}),this;if(!this._map)return this._needsClustering.push(e),this.fire("layeradd",{layer:e}),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this.fire("layeradd",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons();var t=e,i=this._zoom;if(e.__parent)for(;t.__parent._zoom>=i;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):(e.getLatLng?this._map?e.__parent&&(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this.fire("layerremove",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),e.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow())):(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push({layer:e,latlng:e._latlng}),this.fire("layerremove",{layer:e})):(this._nonPointGroup.removeLayer(e),this.fire("layerremove",{layer:e})),this)},addLayers:function(n,s){if(!L.Util.isArray(n))return this.addLayer(n);var o,a=this._featureGroup,h=this._nonPointGroup,l=this.options.chunkedLoading,u=this.options.chunkInterval,_=this.options.chunkProgress,d=n.length,p=0,c=!0;if(this._map){var f=(new Date).getTime(),m=L.bind(function(){var e=(new Date).getTime();for(this._map&&this._unspiderfy&&this._unspiderfy();p<d;p++){if(l&&p%200==0){var t=(new Date).getTime()-e;if(u<t)break}if((o=n[p])instanceof L.LayerGroup)c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length;else if(o.getLatLng){if(!this.hasLayer(o)&&(this._addLayer(o,this._maxZoom),s||this.fire("layeradd",{layer:o}),o.__parent&&2===o.__parent.getChildCount())){var i=o.__parent.getAllChildMarkers(),r=i[0]===o?i[1]:i[0];a.removeLayer(r)}}else h.addLayer(o),s||this.fire("layeradd",{layer:o})}_&&_(p,d,(new Date).getTime()-f),p===d?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(m,this.options.chunkDelay)},this);m()}else for(var e=this._needsClustering;p<d;p++)(o=n[p])instanceof L.LayerGroup?(c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length):o.getLatLng?this.hasLayer(o)||e.push(o):h.addLayer(o);return this},removeLayers:function(e){var t,i,r=e.length,n=this._featureGroup,s=this._nonPointGroup,o=!0;if(!this._map){for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):(this._arraySplice(this._needsClustering,i),s.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push({layer:i,latlng:i._latlng}),this.fire("layerremove",{layer:i}));return this}if(this._unspiderfy){this._unspiderfy();var a=e.slice(),h=r;for(t=0;t<h;t++)(i=a[t])instanceof L.LayerGroup?(this._extractNonGroupLayers(i,a),h=a.length):this._unspiderfyLayer(i)}for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):i.__parent?(this._removeLayer(i,!0,!0),this.fire("layerremove",{layer:i}),n.hasLayer(i)&&(n.removeLayer(i),i.clusterShow&&i.clusterShow())):(s.removeLayer(i),this.fire("layerremove",{layer:i}));return this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),this},clearLayers:function(){return this._map||(this._needsClustering=[],this._needsRemoving=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(e){e.off(this._childMarkerEventHandlers,this),delete e.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;0<=t;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var i,r,n,s=this._needsClustering.slice(),o=this._needsRemoving;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(s),r=s.length-1;0<=r;r--){for(i=!0,n=o.length-1;0<=n;n--)if(o[n].layer===s[r]){i=!1;break}i&&e.call(t,s[r])}this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var t=[];return this.eachLayer(function(e){t.push(e)}),t},getLayer:function(t){var i=null;return t=parseInt(t,10),this.eachLayer(function(e){L.stamp(e)===t&&(i=e)}),i},hasLayer:function(e){if(!e)return!1;var t,i=this._needsClustering;for(t=i.length-1;0<=t;t--)if(i[t]===e)return!0;for(t=(i=this._needsRemoving).length-1;0<=t;t--)if(i[t].layer===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){var i=this._map;"function"!=typeof t&&(t=function(){});var r=function(){!i.hasLayer(e)&&!i.hasLayer(e.__parent)||this._inZoomAnimation||(this._map.off("moveend",r,this),this.off("animationend",r,this),i.hasLayer(e)?t():e.__parent._icon&&(this.once("spiderfied",t,this),e.__parent.spiderfy()))};e._icon&&this._map.getBounds().contains(e.getLatLng())?t():e.__parent._zoom<Math.round(this._map._zoom)?(this._map.on("moveend",r,this),this._map.panTo(e.getLatLng())):(this._map.on("moveend",r,this),this.on("animationend",r,this),e.__parent.zoomToBounds())},onAdd:function(e){var t,i,r;if(this._map=e,!isFinite(this._map.getMaxZoom()))throw"Map has no maxZoom specified";for(this._featureGroup.addTo(e),this._nonPointGroup.addTo(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,i=this._needsRemoving.length;t<i;t++)(r=this._needsRemoving[t]).newlatlng=r.layer._latlng,r.layer._latlng=r.latlng;for(t=0,i=this._needsRemoving.length;t<i;t++)r=this._needsRemoving[t],this._removeLayer(r.layer,!0),r.layer._latlng=r.newlatlng;this._needsRemoving=[],this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i,!0)},onRemove:function(e){e.off("zoomend",this._zoomEnd,this),e.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var i=e.length-1;0<=i;i--)if(e[i]===t)return e.splice(i,1),!0},_removeFromGridUnclustered:function(e,t){for(var i=this._map,r=this._gridUnclustered,n=Math.floor(this._map.getMinZoom());n<=t&&r[t].removeObject(e,i.project(e.getLatLng(),t));t--);},_childMarkerDragStart:function(e){e.target.__dragStart=e.target._latlng},_childMarkerMoved:function(e){if(!this._ignoreMove&&!e.target.__dragStart){var t=e.target._popup&&e.target._popup.isOpen();this._moveChild(e.target,e.oldLatLng,e.latlng),t&&e.target.openPopup()}},_moveChild:function(e,t,i){e._latlng=t,this.removeLayer(e),e._latlng=i,this.addLayer(e)},_childMarkerDragEnd:function(e){var t=e.target.__dragStart;delete e.target.__dragStart,t&&this._moveChild(e.target,t,e.target._latlng)},_removeLayer:function(e,t,i){var r=this._gridClusters,n=this._gridUnclustered,s=this._featureGroup,o=this._map,a=Math.floor(this._map.getMinZoom());t&&this._removeFromGridUnclustered(e,this._maxZoom);var h,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<a));)t&&l._childCount<=1?(h=l._markers[0]===e?l._markers[1]:l._markers[0],r[l._zoom].removeObject(l,o.project(l._cLatLng,l._zoom)),n[l._zoom].addObject(h,o.project(h.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(h),h.__parent=l.__parent,l._icon&&(s.removeLayer(l),i||s.addLayer(h))):l._iconNeedsUpdate=!0,l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},fire:function(e,t,i){if(t&&t.layer instanceof L.MarkerCluster){if(t.originalEvent&&this._isOrIsParent(t.layer._icon,t.originalEvent.relatedTarget))return;e="cluster"+e}L.FeatureGroup.prototype.fire.call(this,e,t,i)},listens:function(e,t){return L.FeatureGroup.prototype.listens.call(this,e,t)||L.FeatureGroup.prototype.listens.call(this,"cluster"+e,t)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),i=" marker-cluster-";return i+=t<10?"small":t<100?"medium":"large",new L.DivIcon({html:"<div><span>"+t+"</span></div>",className:"marker-cluster"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,r=this.options.zoomToBoundsOnClick,n=this.options.spiderfyOnEveryZoom;(t||r||n)&&this.on("clusterclick clusterkeypress",this._zoomOrSpiderfy,this),i&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),e.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){var t=e.layer,i=t;if("clusterkeypress"!==e.type||!e.originalEvent||13===e.originalEvent.keyCode){for(;1===i._childClusters.length;)i=i._childClusters[0];i._zoom===this._maxZoom&&i._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),this.options.spiderfyOnEveryZoom&&t.spiderfy(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()}},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),2<e.layer.getChildCount()&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,r=this.options.spiderfyOnEveryZoom,n=this._map;(e||i||r)&&this.off("clusterclick clusterkeypress",this._zoomOrSpiderfy,this),t&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),n.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=Math.ceil(this._map.getMaxZoom()),t=Math.floor(this._map.getMinZoom()),i=this.options.maxClusterRadius,r=i;"function"!=typeof i&&(r=function(){return i}),null!==this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var n=e;t<=n;n--)this._gridClusters[n]=new L.DistanceGrid(r(n)),this._gridUnclustered[n]=new L.DistanceGrid(r(n));this._topClusterLevel=new this._markerCluster(this,t-1)},_addLayer:function(e,t){var i,r,n=this._gridClusters,s=this._gridUnclustered,o=Math.floor(this._map.getMinZoom());for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e),e.on(this._childMarkerEventHandlers,this);o<=t;t--){i=this._map.project(e.getLatLng(),t);var a=n[t].getNearObject(i);if(a)return a._addChild(e),void(e.__parent=a);if(a=s[t].getNearObject(i)){var h=a.__parent;h&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);n[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l;var u=e.__parent=l;for(r=t-1;r>h._zoom;r--)u=new this._markerCluster(this,r,u),n[r].addObject(u,this._map.project(a.getLatLng(),r));return h._addChild(u),void this._removeFromGridUnclustered(a,t)}s[t].addObject(e,i)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){var e=Math.round(this._map._zoom);this._processQueue(),this._zoom<e&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,e)):this._zoom>e?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return void 0!==t&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var i=t.getAllChildMarkers();this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else t._updateIcon()},_extractNonGroupLayers:function(e,t){var i,r=e.getLayers(),n=0;for(t=t||[];n<r.length;n++)(i=r[n])instanceof L.LayerGroup?this._extractNonGroupLayers(i,t):t.push(i);return t},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}});L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationZoomIn:function(n,s){var o,a=this._getExpandedVisibleBounds(),h=this._featureGroup,e=Math.floor(this._map.getMinZoom());this._ignoreMove=!0,this._topClusterLevel._recursively(a,n,e,function(e){var t,i=e._latlng,r=e._markers;for(a.contains(i)||(i=null),e._isSingleParent()&&n+1===s?(h.removeLayer(e),e._recursivelyAddChildrenToMap(null,s,a)):(e.clusterHide(),e._recursivelyAddChildrenToMap(i,s,a)),o=r.length-1;0<=o;o--)t=r[o],a.contains(t._latlng)||h.removeLayer(t)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(a,s),h.eachLayer(function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()}),this._topClusterLevel._recursively(a,n,s,function(e){e._recursivelyRestoreChildPositions(s)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(a,n,e,function(e){h.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var i=this,r=this._featureGroup;r.addLayer(e),t!==e&&(2<t._childCount?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){r.removeLayer(e),e.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(t,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(t,i,r){var n=this._getExpandedVisibleBounds(),s=Math.floor(this._map.getMinZoom());t._recursivelyAnimateChildrenInAndAddSelfToMap(n,s,i+1,r);var o=this;this._forceLayout(),t._recursivelyBecomeVisible(n,r),this._enqueue(function(){if(1===t._childCount){var e=t._markers[0];this._ignoreMove=!0,e.setLatLng(e.getLatLng()),this._ignoreMove=!1,e.clusterShow&&e.clusterShow()}else t._recursively(n,r,s,function(e){e._recursivelyRemoveChildrenFromMap(n,s,i+1)});o._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(document.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)};var i=L.MarkerCluster=L.Marker.extend({options:L.Icon.prototype.options,initialize:function(e,t,i,r){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this,pane:e.options.clusterPane}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),r&&this._addChild(r)},getAllChildMarkers:function(e,t){e=e||[];for(var i=this._childClusters.length-1;0<=i;i--)this._childClusters[i].getAllChildMarkers(e,t);for(var r=this._markers.length-1;0<=r;r--)t&&this._markers[r].__dragStart||e.push(this._markers[r]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(e){for(var t,i=this._childClusters.slice(),r=this._group._map,n=r.getBoundsZoom(this._bounds),s=this._zoom+1,o=r.getZoom();0<i.length&&s<n;){s++;var a=[];for(t=0;t<i.length;t++)a=a.concat(i[t]._childClusters);i=a}s<n?this._group._map.setView(this._latlng,s):n<=o?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds,e)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,i,r,n=this._markers,s=this._childClusters,o=0,a=0,h=this._childCount;if(0!==h){for(this._resetBounds(),e=0;e<n.length;e++)i=n[e]._latlng,this._bounds.extend(i),o+=i.lat,a+=i.lng;for(e=0;e<s.length;e++)(t=s[e])._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),i=t._wLatLng,r=t._childCount,o+=i.lat*r,a+=i.lng*r;this._latlng=this._wLatLng=new L.LatLng(o/h,a/h),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,n,t){this._recursively(e,this._group._map.getMinZoom(),t-1,function(e){var t,i,r=e._markers;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())},function(e){var t,i,r=e._childClusters;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(t,i,r,n){this._recursively(t,n,i,function(e){e._recursivelyAnimateChildrenIn(t,e._group._map.latLngToLayerPoint(e.getLatLng()).round(),r),e._isSingleParent()&&r-1===n?(e.clusterShow(),e._recursivelyRemoveChildrenFromMap(t,i,r)):e.clusterHide(),e._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,this._group._map.getMinZoom(),t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(r,n,s){this._recursively(s,this._group._map.getMinZoom()-1,n,function(e){if(n!==e._zoom)for(var t=e._markers.length-1;0<=t;t--){var i=e._markers[t];s.contains(i._latlng)&&(r&&(i._backupLatlng=i.getLatLng(),i.setLatLng(r),i.clusterHide&&i.clusterHide()),e._group._featureGroup.addLayer(i))}},function(e){e._addToMap(r)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;0<=t;t--){var i=this._markers[t];i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(e-1===this._zoom)for(var r=this._childClusters.length-1;0<=r;r--)this._childClusters[r]._restorePosition();else for(var n=this._childClusters.length-1;0<=n;n--)this._childClusters[n]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,i,r){var n,s;this._recursively(e,t-1,i-1,function(e){for(s=e._markers.length-1;0<=s;s--)n=e._markers[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())},function(e){for(s=e._childClusters.length-1;0<=s;s--)n=e._childClusters[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())})},_recursively:function(e,t,i,r,n){var s,o,a=this._childClusters,h=this._zoom;if(t<=h&&(r&&r(this),n&&h===i&&n(this)),h<t||h<i)for(s=a.length-1;0<=s;s--)(o=a[s])._boundsNeedUpdate&&o._recalculateBounds(),e.intersects(o._bounds)&&o._recursively(e,t,i,r,n)},_isSingleParent:function(){return 0<this._childClusters.length&&this._childClusters[0]._childCount===this._childCount}});L.Marker.include({clusterHide:function(){var e=this.options.opacity;return this.setOpacity(0),this.options.opacity=e,this},clusterShow:function(){return this.setOpacity(this.options.opacity)}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var i=this._getCoord(t.x),r=this._getCoord(t.y),n=this._grid,s=n[r]=n[r]||{},o=s[i]=s[i]||[],a=L.Util.stamp(e);this._objectPoint[a]=t,o.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var i,r,n=this._getCoord(t.x),s=this._getCoord(t.y),o=this._grid,a=o[s]=o[s]||{},h=a[n]=a[n]||[];for(delete this._objectPoint[L.Util.stamp(e)],i=0,r=h.length;i<r;i++)if(h[i]===e)return h.splice(i,1),1===r&&delete a[n],!0},eachObject:function(e,t){var i,r,n,s,o,a,h=this._grid;for(i in h)for(r in o=h[i])for(n=0,s=(a=o[r]).length;n<s;n++)e.call(t,a[n])&&(n--,s--)},getNearObject:function(e){var t,i,r,n,s,o,a,h,l=this._getCoord(e.x),u=this._getCoord(e.y),_=this._objectPoint,d=this._sqCellSize,p=null;for(t=u-1;t<=u+1;t++)if(n=this._grid[t])for(i=l-1;i<=l+1;i++)if(s=n[i])for(r=0,o=s.length;r<o;r++)a=s[r],((h=this._sqDist(_[L.Util.stamp(a)],e))<d||h<=d&&null===p)&&(d=h,p=a);return p},_getCoord:function(e){var t=Math.floor(e/this._cellSize);return isFinite(t)?t:e},_sqDist:function(e,t){var i=t.x-e.x,r=t.y-e.y;return i*i+r*r}},L.QuickHull={getDistant:function(e,t){var i=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+i*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var i,r,n,s=0,o=null,a=[];for(i=t.length-1;0<=i;i--)r=t[i],0<(n=this.getDistant(r,e))&&(a.push(r),s<n&&(s=n,o=r));return{maxPoint:o,newPoints:a}},buildConvexHull:function(e,t){var i=[],r=this.findMostDistantPointFromBaseLine(e,t);return r.maxPoint?i=(i=i.concat(this.buildConvexHull([e[0],r.maxPoint],r.newPoints))).concat(this.buildConvexHull([r.maxPoint,e[1]],r.newPoints)):[e[0]]},getConvexHull:function(e){var t,i=!1,r=!1,n=!1,s=!1,o=null,a=null,h=null,l=null,u=null,_=null;for(t=e.length-1;0<=t;t--){var d=e[t];(!1===i||d.lat>i)&&(i=(o=d).lat),(!1===r||d.lat<r)&&(r=(a=d).lat),(!1===n||d.lng>n)&&(n=(h=d).lng),(!1===s||d.lng<s)&&(s=(l=d).lng)}return u=r!==i?(_=a,o):(_=l,h),[].concat(this.buildConvexHull([_,u],e),this.buildConvexHull([u,_],e))}},L.MarkerCluster.include({getConvexHull:function(){var e,t,i=this.getAllChildMarkers(),r=[];for(t=i.length-1;0<=t;t--)e=i[t].getLatLng(),r.push(e);return L.QuickHull.getConvexHull(r)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:0,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(null,!0),i=this._group._map.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),e=(this._group._spiderfied=this)._group.options.spiderfyShapePositions?this._group.options.spiderfyShapePositions(t.length,i):t.length>=this._circleSpiralSwitchover?this._generatePointsSpiral(t.length,i):(i.y+=10,this._generatePointsCircle(t.length,i)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var i,r,n=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,s=this._2PI/e,o=[];for(n=Math.max(n,35),o.length=e,i=0;i<e;i++)r=this._circleStartAngle+i*s,o[i]=new L.Point(t.x+n*Math.cos(r),t.y+n*Math.sin(r))._round();return o},_generatePointsSpiral:function(e,t){var i,r=this._group.options.spiderfyDistanceMultiplier,n=r*this._spiralLengthStart,s=r*this._spiralFootSeparation,o=r*this._spiralLengthFactor*this._2PI,a=0,h=[];for(i=h.length=e;0<=i;i--)i<e&&(h[i]=new L.Point(t.x+n*Math.cos(a),t.y+n*Math.sin(a))._round()),n+=o/(a+=s/n+5e-4*i);return h},_noanimationUnspiderfy:function(){var e,t,i=this._group,r=i._map,n=i._featureGroup,s=this.getAllChildMarkers(null,!0);for(i._ignoreMove=!0,this.setOpacity(1),t=s.length-1;0<=t;t--)e=s[t],n.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(r.removeLayer(e._spiderLeg),delete e._spiderLeg);i.fire("unspiderfied",{cluster:this,markers:s}),i._ignoreMove=!1,i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var i,r,n,s,o=this._group,a=o._map,h=o._featureGroup,l=this._group.options.spiderLegPolylineOptions;for(o._ignoreMove=!0,i=0;i<e.length;i++)s=a.layerPointToLatLng(t[i]),r=e[i],n=new L.Polyline([this._latlng,s],l),a.addLayer(n),r._spiderLeg=n,r._preSpiderfyLatlng=r._latlng,r.setLatLng(s),r.setZIndexOffset&&r.setZIndexOffset(1e6),h.addLayer(r);this.setOpacity(.3),o._ignoreMove=!1,o.fire("spiderfied",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var i,r,n,s,o,a,h=this,l=this._group,u=l._map,_=l._featureGroup,d=this._latlng,p=u.latLngToLayerPoint(d),c=L.Path.SVG,f=L.extend({},this._group.options.spiderLegPolylineOptions),m=f.opacity;for(void 0===m&&(m=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),c?(f.opacity=0,f.className=(f.className||"")+" leaflet-cluster-spider-leg"):f.opacity=m,l._ignoreMove=!0,i=0;i<e.length;i++)r=e[i],a=u.layerPointToLatLng(t[i]),n=new L.Polyline([d,a],f),u.addLayer(n),r._spiderLeg=n,c&&(o=(s=n._path).getTotalLength()+.1,s.style.strokeDasharray=o,s.style.strokeDashoffset=o),r.setZIndexOffset&&r.setZIndexOffset(1e6),r.clusterHide&&r.clusterHide(),_.addLayer(r),r._setPos&&r._setPos(p);for(l._forceLayout(),l._animationStart(),i=e.length-1;0<=i;i--)a=u.layerPointToLatLng(t[i]),(r=e[i])._preSpiderfyLatlng=r._latlng,r.setLatLng(a),r.clusterShow&&r.clusterShow(),c&&((s=(n=r._spiderLeg)._path).style.strokeDashoffset=0,n.setStyle({opacity:m}));this.setOpacity(.3),l._ignoreMove=!1,setTimeout(function(){l._animationEnd(),l.fire("spiderfied",{cluster:h,markers:e})},200)},_animationUnspiderfy:function(e){var t,i,r,n,s,o,a=this,h=this._group,l=h._map,u=h._featureGroup,_=e?l._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):l.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(null,!0),p=L.Path.SVG;for(h._ignoreMove=!0,h._animationStart(),this.setOpacity(1),i=d.length-1;0<=i;i--)(t=d[i])._preSpiderfyLatlng&&(t.closePopup(),t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,o=!0,t._setPos&&(t._setPos(_),o=!1),t.clusterHide&&(t.clusterHide(),o=!1),o&&u.removeLayer(t),p&&(s=(n=(r=t._spiderLeg)._path).getTotalLength()+.1,n.style.strokeDashoffset=s,r.setStyle({opacity:0})));h._ignoreMove=!1,setTimeout(function(){var e=0;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&e++;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),1<e&&u.removeLayer(t),l.removeLayer(t._spiderLeg),delete t._spiderLeg);h._animationEnd(),h.fire("unspiderfied",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,i;for(t in e)for(i=e[t].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshSingleMarkerModeMarkers:function(e){var t,i;for(t in e)i=e[t],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(e,t){var i=this.options.icon;return L.setOptions(i,e),this.setIcon(i),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}}),e.MarkerClusterGroup=t,e.MarkerCluster=i,Object.defineProperty(e,"__esModule",{value:!0})}); +//# sourceMappingURL=leaflet.markercluster.js.map diff --git a/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/layers-2x.png b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/layers-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..200c333dca9652ac4cba004d609e5af4eee168c1 Binary files /dev/null and b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/layers-2x.png differ diff --git a/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/layers.png b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/layers.png new file mode 100644 index 0000000000000000000000000000000000000000..1a72e5784b2b456eac5d7670738db80697af3377 Binary files /dev/null and b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/layers.png differ diff --git a/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/marker-icon-2x.png b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/marker-icon-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..88f9e501888c9c6cb29ad340d9a888627dd1b6d8 Binary files /dev/null and b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/marker-icon-2x.png differ diff --git a/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/marker-icon.png b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/marker-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..950edf24677ded147df13b26f91baa2b0fa70513 Binary files /dev/null and b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/marker-icon.png differ diff --git a/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/marker-shadow.png b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/marker-shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd2979532a19a15b824ce763c76e04a8dafadfb Binary files /dev/null and b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/images/marker-shadow.png differ diff --git a/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/leaflet.css b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/leaflet.css new file mode 100644 index 0000000000000000000000000000000000000000..546f27a2ed0c6aef473f180d887683618cb60696 --- /dev/null +++ b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/leaflet.css @@ -0,0 +1,657 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg { + max-width: none !important; + max-height: none !important; + } +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; + width: auto; + padding: 0; + } + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +svg.leaflet-zoom-animated { + will-change: transform; +} + +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline-offset: 1px; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + font-size: 12px; + font-size: 0.75rem; + line-height: 1.5; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover, +.leaflet-bar a:focus { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + } + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + font-size: 13px; + font-size: 1.08333em; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.8); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + line-height: 1.4; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover, +.leaflet-control-attribution a:focus { + text-decoration: underline; + } +.leaflet-control-attribution svg { + display: inline !important; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: border-box; + box-sizing: border-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 24px 13px 20px; + line-height: 1.3; + font-size: 13px; + font-size: 1.08333em; + min-height: 1px; + } +.leaflet-popup-content p { + margin: 17px 0; + margin: 1.3em 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-top: -1px; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + pointer-events: auto; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + border: none; + text-align: center; + width: 24px; + height: 24px; + font: 16px/24px Tahoma, Verdana, sans-serif; + color: #757575; + text-decoration: none; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover, +.leaflet-container a.leaflet-popup-close-button:focus { + color: #585858; + } +.leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + -ms-zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-interactive { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + } + +/* Printing */ + +@media print { + /* Prevent printers from removing background-images of controls. */ + .leaflet-control { + -webkit-print-color-adjust: exact; + color-adjust: exact; + } + } diff --git a/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/leaflet.js.map b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/leaflet.js.map new file mode 100644 index 0000000000000000000000000000000000000000..98db6bfdc00400bb420939e32cd789cca994da3a --- /dev/null +++ b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/leaflet.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dist/leaflet.js.map","sources":["../src/core/Util.js","../src/core/Class.js","../src/core/Events.js","../src/geometry/Point.js","../src/geometry/Bounds.js","../src/geo/LatLngBounds.js","../src/geo/LatLng.js","../src/geo/crs/CRS.js","../src/geo/crs/CRS.Earth.js","../src/geo/projection/Projection.SphericalMercator.js","../src/geometry/Transformation.js","../src/geo/crs/CRS.EPSG3857.js","../src/layer/vector/SVG.Util.js","../src/core/Browser.js","../src/dom/DomEvent.Pointer.js","../src/dom/DomEvent.DoubleTap.js","../src/dom/DomUtil.js","../src/dom/DomEvent.js","../src/dom/PosAnimation.js","../src/map/Map.js","../src/control/Control.js","../src/geometry/LineUtil.js","../src/control/Control.Layers.js","../src/control/Control.Zoom.js","../src/control/Control.Scale.js","../src/control/Control.Attribution.js","../src/core/Handler.js","../src/control/index.js","../src/core/index.js","../src/dom/Draggable.js","../src/geometry/PolyUtil.js","../src/geo/projection/Projection.LonLat.js","../src/geo/projection/Projection.Mercator.js","../src/geo/crs/CRS.EPSG3395.js","../src/geo/crs/CRS.EPSG4326.js","../src/geo/crs/CRS.Simple.js","../src/layer/Layer.js","../src/geo/crs/index.js","../src/layer/LayerGroup.js","../src/layer/FeatureGroup.js","../src/layer/marker/Icon.js","../src/layer/marker/Icon.Default.js","../src/layer/marker/Marker.Drag.js","../src/layer/marker/Marker.js","../src/layer/vector/Path.js","../src/layer/vector/CircleMarker.js","../src/layer/vector/Circle.js","../src/layer/vector/Polyline.js","../src/layer/vector/Polygon.js","../src/layer/GeoJSON.js","../src/layer/ImageOverlay.js","../src/layer/VideoOverlay.js","../src/layer/SVGOverlay.js","../src/layer/DivOverlay.js","../src/layer/Popup.js","../src/layer/Tooltip.js","../src/layer/marker/DivIcon.js","../src/layer/marker/index.js","../src/layer/tile/GridLayer.js","../src/layer/tile/TileLayer.js","../src/layer/tile/TileLayer.WMS.js","../src/layer/tile/index.js","../src/layer/vector/Renderer.js","../src/layer/vector/Canvas.js","../src/layer/vector/SVG.VML.js","../src/layer/vector/SVG.js","../src/layer/vector/Renderer.getRenderer.js","../src/layer/vector/Rectangle.js","../src/layer/vector/index.js","../src/layer/index.js","../src/map/handler/Map.BoxZoom.js","../src/map/handler/Map.DoubleClickZoom.js","../src/map/handler/Map.Drag.js","../src/map/handler/Map.Keyboard.js","../src/map/handler/Map.ScrollWheelZoom.js","../src/map/handler/Map.TapHold.js","../src/map/handler/Map.TouchZoom.js","../src/map/index.js"],"names":["extend","dest","i","src","j","len","arguments","length","create","Object","proto","F","prototype","bind","fn","obj","slice","Array","apply","call","args","concat","lastId","stamp","_leaflet_id","throttle","time","context","lock","later","wrapperFn","setTimeout","wrapNum","x","range","includeMax","max","min","d","falseFn","formatNum","num","precision","pow","Math","undefined","round","trim","str","replace","splitWords","split","setOptions","options","hasOwnProperty","getParamString","existingUrl","uppercase","params","push","encodeURIComponent","toUpperCase","indexOf","join","templateRe","template","data","key","value","Error","isArray","toString","array","el","emptyImageUrl","getPrefixed","name","window","lastTime","timeoutDefer","Date","timeToCall","requestFn","requestAnimationFrame","cancelFn","cancelAnimationFrame","id","clearTimeout","requestAnimFrame","immediate","cancelAnimFrame","Class","props","NewClass","Util.setOptions","this","initialize","callInitHooks","parentProto","__super__","Util.create","constructor","statics","Util.extend","includes","checkDeprecatedMixinEvents","L","Mixin","Util.isArray","Events","console","warn","stack","_initHooks","_initHooksCalled","include","parentOptions","mergeOptions","addInitHook","init","on","types","type","_on","Util.splitWords","off","_off","removeAll","_events","typeListeners","newListener","ctx","listeners","_firingCount","Util.falseFn","l","splice","fire","propagate","listens","event","target","sourceTarget","_propagateEvent","_eventParents","once","handler","Util.bind","addEventParent","Util.stamp","removeEventParent","e","layer","propagatedFrom","Evented","addEventListener","removeEventListener","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","Point","y","trunc","v","floor","ceil","toPoint","Bounds","a","b","points","toBounds","LatLngBounds","corner1","corner2","latlngs","toLatLngBounds","LatLng","lat","lng","alt","isNaN","toLatLng","c","lon","clone","add","point","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","_floor","_ceil","_trunc","distanceTo","sqrt","equals","contains","abs","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","getSize","intersects","bounds","min2","max2","xIntersects","yIntersects","overlaps","xOverlaps","yOverlaps","isValid","sw2","ne2","sw","_southWest","ne","_northEast","pad","bufferRatio","heightBuffer","widthBuffer","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","latIntersects","lngIntersects","latOverlaps","lngOverlaps","toBBoxString","maxMargin","CRS","latLngToPoint","latlng","zoom","projectedPoint","projection","project","scale","transformation","_transform","pointToLatLng","untransformedPoint","untransform","unproject","log","LN2","getProjectedBounds","infinite","s","transform","Util.formatNum","other","Earth","distance","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","cos","PI","wrapLng","Util.wrapNum","wrapLat","wrapLatLngBounds","center","newCenter","latShift","lngShift","R","latlng1","latlng2","rad","lat1","lat2","sinDLat","sin","sinDLon","atan2","earthRadius","SphericalMercator","MAX_LATITUDE","atan","exp","Transformation","_a","_b","_c","_d","toTransformation","EPSG3857","code","EPSG900913","svgCreate","document","createElementNS","pointsToPath","rings","closed","len2","p","Browser","svg","style","documentElement","ie","ielt9","edge","navigator","webkit","userAgentContains","android","android23","webkitVer","parseInt","exec","userAgent","androidStock","opera","chrome","gecko","safari","phantom","opera12","win","platform","ie3d","webkit3d","WebKitCSSMatrix","gecko3d","any3d","L_DISABLE_3D","mobile","orientation","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","pointer","touchNative","TouchEvent","touch","L_NO_TOUCH","mobileOpera","mobileGecko","retina","devicePixelRatio","screen","deviceXDPI","logicalXDPI","passiveEvents","supportsPassiveOption","opts","defineProperty","get","canvas","createElement","getContext","createSVGRect","inlineSvg","div","innerHTML","firstChild","namespaceURI","toLowerCase","vml","shape","behavior","adj","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","pEvent","touchstart","touchmove","touchend","touchcancel","handle","MSPOINTER_TYPE_TOUCH","pointerType","DomEvent.preventDefault","_handlePointer","_pointers","_pointerDocListener","addPointerListener","_globalPointerDown","_globalPointerMove","_globalPointerUp","Util","pointerId","MSPOINTER_TYPE_MOUSE","touches","changedTouches","delay","addDoubleTapListener","detail","last","simDblclick","now","sourceCapabilities","firesTouchEvents","prop","newEvent","isTrusted","_simulated","makeDblclick","dblclick","_userSelect","userSelectProperty","disableTextSelection","enableTextSelection","_outlineElement","_outlineStyle","TRANSFORM","testProp","TRANSITION","TRANSITION_END","getElementById","getStyle","currentStyle","defaultView","css","getComputedStyle","tagName","className","container","appendChild","remove","parent","parentNode","removeChild","empty","toFront","lastChild","toBack","insertBefore","hasClass","classList","getClass","RegExp","test","addClass","classes","setClass","removeClass","Util.trim","baseVal","correspondingElement","setOpacity","opacity","_setOpacityIE","filter","filterName","filters","item","Enabled","Opacity","setTransform","offset","pos","setPosition","_leaflet_pos","left","top","getPosition","disableImageDrag","DomEvent.on","enableImageDrag","DomEvent.off","preventOutline","element","tabIndex","restoreOutline","outline","getSizedParentNode","offsetWidth","offsetHeight","body","getScale","rect","getBoundingClientRect","width","height","boundingClientRect","addOne","eventsKey","batchRemove","removeOne","Util.indexOf","filterFn","mouseSubst","mouseenter","mouseleave","wheel","originalHandler","passive","isExternalTarget","attachEvent","handlers","detachEvent","stopPropagation","originalEvent","_stopped","cancelBubble","disableScrollPropagation","disableClickPropagation","preventDefault","returnValue","stop","getMousePosition","clientX","clientY","clientLeft","clientTop","wheelPxFactor","getWheelDelta","wheelDeltaY","deltaY","deltaMode","deltaX","deltaZ","wheelDelta","related","relatedTarget","err","PosAnimation","run","newPos","duration","easeLinearity","_el","_inProgress","_duration","_easeOutPower","_startPos","DomUtil.getPosition","_offset","_startTime","_animate","_step","_complete","_animId","Util.requestAnimFrame","elapsed","_runFrame","_easeOut","progress","DomUtil.setPosition","Util.cancelAnimFrame","t","Map","crs","minZoom","maxZoom","layers","maxBounds","renderer","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_zoom","_limitZoom","setView","reset","_zoomAnimated","DomUtil.TRANSITION","_createAnimProxy","_proxy","DomUtil.TRANSITION_END","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","animate","pan","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","setZoom","zoomIn","delta","zoomOut","setZoomAround","getZoomScale","viewHalf","centerOffset","latLngToContainerPoint","containerPointToLatLng","_getBoundsCenterZoom","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","Infinity","paddingOffset","swPoint","nePoint","fitBounds","fitWorld","panTo","panBy","_panAnim","step","_onPanTransitionStep","end","_onPanTransitionEnd","noMoveStart","DomUtil.addClass","_mapPane","_getMapPanePos","_rawPanBy","getZoom","flyTo","targetCenter","targetZoom","from","to","size","startZoom","w0","w1","u1","rho","rho2","r","sq","sinh","n","cosh","r0","u","start","S","_moveStart","frame","_flyToFrame","_move","getScaleZoom","_moveEnd","flyToBounds","_panInsideMaxBounds","setMinZoom","oldZoom","setMaxZoom","panInsideBounds","_enforcingBounds","panInside","pixelCenter","pixelPoint","pixelBounds","getPixelBounds","paddedBounds","paddedSize","invalidateSize","oldSize","newSize","_lastCenter","oldCenter","debounceMoveend","locate","_locateOptions","timeout","watch","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","_container","coords","latitude","longitude","accuracy","timestamp","addHandler","HandlerClass","enable","_containerId","DomUtil.remove","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","pane","DomUtil.create","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","getContainer","toZoom","fromZoom","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","DomEvent.getMousePosition","mouseEventToLayerPoint","mouseEventToLatLng","DomUtil.get","_onScroll","position","_fadeAnimated","DomUtil.getStyle","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","loading","zoomChanged","supressEvent","_getNewPixelOrigin","pinch","_getZoomSpan","_targets","onOff","_handleDOMEvent","_onMoveEnd","scrollTop","scrollLeft","_findEventTargets","targets","isHover","srcElement","dragging","_draggableMoved","DomEvent.isExternalTarget","_isClickDisabled","DomUtil.preventOutline","_fireDOMEvent","_mouseEvents","canvasTargets","synth","filtered","isMarker","getLatLng","_radius","containerPoint","bubblingMouseEvents","enabled","moved","boxZoom","disable","whenReady","callback","_latLngToNewLayerPoint","topLeft","_latLngBoundsToNewLayerBounds","latLngBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","projectedMaxBounds","minOffset","maxOffset","_rebound","right","DomUtil.removeClass","proxy","mapPane","DomUtil.TRANSFORM","DomUtil.setTransform","_animatingZoom","_onZoomTransitionEnd","_animMoveEnd","_destroyAnimProxy","z","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","_tempFireZoomEvent","control","Control","_lastCode","map","_map","removeControl","addControl","addTo","onAdd","corner","_controlCorners","onRemove","_refocusOnMap","screenX","screenY","focus","Layers","corners","_controlContainer","createCorner","vSide","hSide","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","layerA","layerB","nameA","nameB","baseLayers","overlays","_layerControlInputs","_lastZIndex","_handlingClick","_addLayer","_update","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","removeLayer","_getLayer","expand","_section","acceptableHeight","offsetTop","collapse","section","setAttribute","DomEvent.disableClickPropagation","DomEvent.disableScrollPropagation","link","_layersLink","href","title","_baseLayersList","_separator","_overlaysList","overlay","sort","setZIndex","DomUtil.empty","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","display","_createRadioElement","checked","radioHtml","radioFragment","input","label","hasLayer","defaultChecked","layerId","_onInputClick","holder","inputs","addedLayers","removedLayers","addLayer","disabled","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","shiftKey","html","DomEvent.stop","Scale","zoomControl","maxWidth","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_updateScale","maxMiles","feet","maxFeet","miles","text","ratio","pow10","Attribution","prefix","ukrainianFlag","_attributions","attributionControl","getAttribution","addAttribution","_addAttribution","ev","removeAttribution","setPrefix","attribs","prefixAndAttribs","Handler","attribution","_enabled","addHooks","removeHooks","START","Draggable","clickTolerance","dragStartTarget","_element","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","sizedParent","mouseevent","DomUtil.hasClass","which","button","DomUtil.disableImageDrag","DomUtil.disableTextSelection","_moving","first","DomUtil.getSizedParentNode","_startPoint","_parentScale","DomUtil.getScale","_onMove","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_lastEvent","_updatePosition","noInertia","DomUtil.enableImageDrag","DomUtil.enableTextSelection","simplify","tolerance","sqTolerance","markers","Uint8Array","_simplifyDPStep","index","sqDist","maxSqDist","_sqClosestPointOnSegment","newPoints","_simplifyDP","reducedPoints","prev","p1","p2","dx","dy","_sqDist","_reducePoints","pointToSegmentDistance","clipSegment","useLastCode","codeOut","newCode","codeA","_getBitCode","codeB","_getEdgeIntersection","dot","isFlat","_flat","clipPolygon","clippedPoints","k","edges","_code","LineUtil._getBitCode","LineUtil._getEdgeIntersection","LonLat","Mercator","R_MINOR","tmp","con","ts","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","targetEl","removeInteractiveTarget","_layerAdd","events","getEvents","LayerGroup","beforeAdd","eachLayer","method","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","zIndex","FeatureGroup","setStyle","bringToFront","bringToBack","Icon","popupAnchor","tooltipAnchor","crossOrigin","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","IconDefault","iconUrl","iconRetinaUrl","shadowUrl","iconSize","shadowSize","imagePath","_detectIconPath","_stripUrl","path","strip","re","idx","match","querySelector","substring","MarkerDrag","marker","_marker","icon","_icon","_draggable","dragstart","_onDragStart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","speed","autoPanSpeed","autoPanPadding","iconPos","origin","panBounds","movement","_panRequest","_oldLatLng","closePopup","autoPan","shadow","_shadow","_latlng","oldLatLng","Marker","interactive","keyboard","zIndexOffset","riseOnHover","riseOffset","autoPanOnFocus","draggable","latLng","_initIcon","update","_removeIcon","_removeShadow","viewreset","setLatLng","setZIndexOffset","getIcon","setIcon","_popup","bindPopup","getElement","_setPos","classToAdd","addIcon","newShadow","mouseover","_bringToFront","mouseout","_resetZIndex","_panOnFocus","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","opt","DomUtil.setOpacity","iconOpts","_getPopupAnchor","_getTooltipAnchor","Path","stroke","color","weight","lineCap","lineJoin","dashArray","dashOffset","fill","fillColor","fillOpacity","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateStyle","_updateBounds","_bringToBack","_path","_project","_clickTolerance","CircleMarker","radius","setRadius","getRadius","_point","r2","_radiusY","w","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","Circle","legacyOptions","_mRadius","half","lngR","latR","bottom","acos","Polyline","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","isEmpty","closestLayerPoint","minDistance","minPoint","closest","LineUtil._sqClosestPointOnSegment","jLen","_parts","halfDist","dist","_rings","segDist","addLatLng","_defaultShape","_convertLatLngs","LineUtil.isFlat","result","flat","_projectLatlngs","_rawPxBounds","projectedBounds","ring","_clipPoints","segment","parts","LineUtil.clipSegment","_simplifyPoints","LineUtil.simplify","_updatePoly","part","LineUtil.pointToSegmentDistance","LineUtil._flat","Polygon","f","area","pop","clipped","PolyUtil.clipPolygon","GeoJSON","geojson","addData","feature","features","geometries","geometry","coordinates","geometryToLayer","asFeature","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","properties","pointToLayerFn","markersInheritOptions","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","toGeoJSON","geoJSON","multi","holes","toMultiPoint","isGeometryCollection","jsons","json","geoJson","ImageOverlay","errorOverlayUrl","url","_url","_image","_initImage","styleOpts","DomUtil.toFront","DomUtil.toBack","setUrl","setBounds","zoomanim","wasElementSupplied","onselectstart","onmousemove","onload","onerror","_overlayOnError","image","errorUrl","VideoOverlay","autoplay","loop","keepAspectRatio","muted","playsInline","vid","onloadeddata","sourceElements","getElementsByTagName","sources","source","SVGOverlay","DivOverlay","_source","openOn","close","toggle","_prepareOpen","_removeTimeout","getContent","_content","setContent","content","visibility","_updateContent","_updateLayout","isOpen","node","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","Popup","_initOverlay","OverlayClass","old","minWidth","maxHeight","autoPanPaddingTopLeft","autoPanPaddingBottomRight","keepInView","closeButton","autoClose","closeOnEscapeKey","popup","DomEvent.stopPropagation","closeOnClick","closePopupOnClick","preclick","moveend","wrapper","_wrapper","_tipContainer","_tip","_closeButton","whiteSpace","scrolledClass","containerHeight","containerPos","marginBottom","containerWidth","layerPos","Tooltip","openPopup","_popupHandlersAdded","click","_openPopup","keypress","_onKeyPress","move","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","getPopup","keyCode","direction","permanent","sticky","tooltip","_setPosition","subX","tooltipPoint","tooltipWidth","tooltipHeight","subY","DivIcon","openTooltip","closeTooltip","bindTooltip","_tooltip","isTooltipOpen","unbindTooltip","_initTooltipInteractions","_tooltipHandlersAdded","_moveTooltip","_openTooltip","mousemove","toggleTooltip","setTooltipContent","getTooltip","moving","bgPos","Element","backgroundPosition","Default","GridLayer","tileSize","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","tileZoom","_clampZoom","_updateLevels","viewprereset","_invalidateAll","Util.throttle","createTile","getTileSize","compare","children","edgeZIndex","isFinite","nextFrame","willPrune","fade","tile","current","loaded","active","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","Number","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","level","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","x2","y2","z2","coords2","_tileCoordsToKey","animating","_setView","noPrune","tileZoomChanged","_abortLoading","_resetGrid","_setZoomTransforms","translate","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","mapZoom","halfSize","tileRange","tileCenter","queue","margin","noPruneRange","_isValidTile","fragment","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","nwPoint","sePoint","bp","_initTile","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","TileLayer","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","referrerPolicy","_onTileRemove","noRedraw","done","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","Util.template","getAttribute","tilePoint","complete","Util.emptyImageUrl","tileLayer","TileLayerWMS","defaultWmsParams","service","request","styles","format","transparent","version","wmsParams","realRetina","_crs","_wmsVersion","parseFloat","projectionKey","bbox","setParams","WMS","wms","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","_updateTransform","currentCenterPoint","_center","topLeftOffset","Canvas","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawRequest","_redrawBounds","_redraw","m","_updateDashArray","order","_order","_drawLast","next","_drawFirst","_requestRedraw","_extendRedrawBounds","dashValue","_dashArray","_clear","clearRect","save","restore","beginPath","clip","_drawing","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","clickedLayer","_fireEvent","_handleMouseHover","_hoveredLayer","_mouseHoverThrottled","candidateHoveredLayer","vmlCreate","namespaces","vmlMixin","coordsize","_stroke","_fill","stroked","filled","dashStyle","endcap","joinstyle","_setPath","SVG","_rootGroup","_svgSize","removeAttribute","_getPaneRenderer","_createRenderer","preferCanvas","Rectangle","_boundsToLatLngs","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","keydown","_onKeyDown","_box","_finish","boxZoomBounds","DoubleClickZoom","doubleClickZoom","_onDoubleClick","Drag","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","threshold","limit","worldWidth","halfWidth","newX1","newX2","newX","ease","limitedSpeed","decelerationDuration","speedVector","limitedSpeedVector","Keyboard","keyboardPanDelta","keyCodes","down","up","_setPanDelta","_setZoomDelta","_onFocus","blur","_onBlur","mousedown","_addHooks","_removeHooks","docEl","_focused","scrollTo","panDelta","keys","_panKeys","codes","_zoomKeys","altKey","ctrlKey","metaKey","ScrollWheelZoom","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","_onWheelScroll","_delta","DomEvent.getWheelDelta","debounce","_lastMousePos","_timer","_performZoom","d2","d3","d4","TapHold","tapHold","tapTolerance","_holdTimeout","_cancel","_isTapValid","_cancelClickPrevent","_simulateEvent","cancelClickPrevent","simulatedEvent","MouseEvent","bubbles","cancelable","view","dispatchEvent","TouchZoom","touchZoom","bounceAtZoomLimits","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","_animRequest","moveFn","video"],"mappings":"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"} diff --git a/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/leaflet.min.js b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/leaflet.min.js new file mode 100644 index 0000000000000000000000000000000000000000..2b7f2086e47f619648e7b93f002f719d05aad910 --- /dev/null +++ b/maps_utils/static/maps_utils/vendor/leaflet@1.8.0/leaflet.min.js @@ -0,0 +1,6 @@ +/* @preserve + * Leaflet 1.8.0, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2022 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t="undefined"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){"use strict";function l(t){for(var i,e,n=1,o=arguments.length;n<o;n++)for(i in e=arguments[n])t[i]=e[i];return t}var R=Object.create||function(t){return N.prototype=t,new N};function N(){}function a(t,i){var e=Array.prototype.slice;if(t.bind)return t.bind.apply(t,e.call(arguments,1));var n=e.call(arguments,2);return function(){return t.apply(i,n.length?n.concat(e.call(arguments)):arguments)}}var D=0;function h(t){return"_leaflet_id"in t||(t._leaflet_id=++D),t._leaflet_id}function j(t,i,e){var n,o,s=function(){n=!1,o&&(r.apply(e,o),o=!1)},r=function(){n?o=arguments:(t.apply(e,arguments),setTimeout(s,i),n=!0)};return r}function H(t,i,e){var n=i[1],i=i[0],o=n-i;return t===n&&e?t:((t-i)%o+o)%o+i}function u(){return!1}function e(t,i){if(!1===i)return t;i=Math.pow(10,void 0===i?6:i);return Math.round(t*i)/i}function W(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function F(t){return W(t).split(/\s+/)}function c(t,i){for(var e in Object.prototype.hasOwnProperty.call(t,"options")||(t.options=t.options?R(t.options):{}),i)t.options[e]=i[e];return t.options}function U(t,i,e){var n,o=[];for(n in t)o.push(encodeURIComponent(e?n.toUpperCase():n)+"="+encodeURIComponent(t[n]));return(i&&-1!==i.indexOf("?")?"&":"?")+o.join("&")}var V=/\{ *([\w_ -]+) *\}/g;function q(t,e){return t.replace(V,function(t,i){i=e[i];if(void 0===i)throw new Error("No value provided for variable "+t);return i="function"==typeof i?i(e):i})}var d=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function G(t,i){for(var e=0;e<t.length;e++)if(t[e]===i)return e;return-1}var K="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";function Y(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}var X=0;function J(t){var i=+new Date,e=Math.max(0,16-(i-X));return X=i+e,window.setTimeout(t,e)}var $=window.requestAnimationFrame||Y("RequestAnimationFrame")||J,Q=window.cancelAnimationFrame||Y("CancelAnimationFrame")||Y("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)};function x(t,i,e){if(!e||$!==J)return $.call(window,a(t,i));t.call(i)}function r(t){t&&Q.call(window,t)}var tt={__proto__:null,extend:l,create:R,bind:a,get lastId(){return D},stamp:h,throttle:j,wrapNum:H,falseFn:u,formatNum:e,trim:W,splitWords:F,setOptions:c,getParamString:U,template:q,isArray:d,indexOf:G,emptyImageUrl:K,requestFn:$,cancelFn:Q,requestAnimFrame:x,cancelAnimFrame:r};function it(){}it.extend=function(t){function i(){c(this),this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()}var e,n=i.__super__=this.prototype,o=R(n);for(e in(o.constructor=i).prototype=o,this)Object.prototype.hasOwnProperty.call(this,e)&&"prototype"!==e&&"__super__"!==e&&(i[e]=this[e]);if(t.statics&&l(i,t.statics),t.includes){var s=t.includes;if("undefined"!=typeof L&&L&&L.Mixin){s=d(s)?s:[s];for(var r=0;r<s.length;r++)s[r]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",(new Error).stack)}l.apply(null,[o].concat(t.includes))}return l(o,t),delete o.statics,delete o.includes,o.options&&(o.options=n.options?R(n.options):{},l(o.options,t.options)),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,i=o._initHooks.length;t<i;t++)o._initHooks[t].call(this)}},i},it.include=function(t){var i=this.prototype.options;return l(this.prototype,t),t.options&&(this.prototype.options=i,this.mergeOptions(t.options)),this},it.mergeOptions=function(t){return l(this.prototype.options,t),this},it.addInitHook=function(t){var i=Array.prototype.slice.call(arguments,1),e="function"==typeof t?t:function(){this[t].apply(this,i)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(e),this};var i={on:function(t,i,e){if("object"==typeof t)for(var n in t)this._on(n,t[n],i);else for(var o=0,s=(t=F(t)).length;o<s;o++)this._on(t[o],i,e);return this},off:function(t,i,e){if(arguments.length)if("object"==typeof t)for(var n in t)this._off(n,t[n],i);else{t=F(t);for(var o=1===arguments.length,s=0,r=t.length;s<r;s++)o?this._off(t[s]):this._off(t[s],i,e)}else delete this._events;return this},_on:function(t,i,e){if("function"!=typeof i)console.warn("wrong listener type: "+typeof i);else{this._events=this._events||{};for(var n=this._events[t],t=(n||(this._events[t]=n=[]),{fn:i,ctx:e=e===this?void 0:e}),o=n,s=0,r=o.length;s<r;s++)if(o[s].fn===i&&o[s].ctx===e)return;o.push(t)}},_off:function(t,i,e){var n,o,s;if(this._events&&(n=this._events[t]))if(1===arguments.length){if(this._firingCount)for(o=0,s=n.length;o<s;o++)n[o].fn=u;delete this._events[t]}else if(e===this&&(e=void 0),"function"!=typeof i)console.warn("wrong listener type: "+typeof i);else{for(o=0,s=n.length;o<s;o++){var r=n[o];if(r.ctx===e&&r.fn===i)return this._firingCount&&(r.fn=u,this._events[t]=n=n.slice()),void n.splice(o,1)}console.warn("listener not found")}},fire:function(t,i,e){if(!this.listens(t,e))return this;var n=l({},i,{type:t,target:this,sourceTarget:i&&i.sourceTarget||this});if(this._events){var o=this._events[t];if(o){this._firingCount=this._firingCount+1||1;for(var s=0,r=o.length;s<r;s++){var a=o[s];a.fn.call(a.ctx||this,n)}this._firingCount--}}return e&&this._propagateEvent(n),this},listens:function(t,i){"string"!=typeof t&&console.warn('"string" type argument expected');var e=this._events&&this._events[t];if(e&&e.length)return!0;if(i)for(var n in this._eventParents)if(this._eventParents[n].listens(t,i))return!0;return!1},once:function(t,i,e){if("object"==typeof t){for(var n in t)this.once(n,t[n],i);return this}var o=a(function(){this.off(t,i,e).off(t,o,e)},this);return this.on(t,i,e).on(t,o,e)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[h(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[h(t)],this},_propagateEvent:function(t){for(var i in this._eventParents)this._eventParents[i].fire(t.type,l({layer:t.target,propagatedFrom:t.target},t),!0)}},et=(i.addEventListener=i.on,i.removeEventListener=i.clearAllEventListeners=i.off,i.addOneTimeEventListener=i.once,i.fireEvent=i.fire,i.hasEventListeners=i.listens,it.extend(i));function p(t,i,e){this.x=e?Math.round(t):t,this.y=e?Math.round(i):i}var nt=Math.trunc||function(t){return 0<t?Math.floor(t):Math.ceil(t)};function _(t,i,e){return t instanceof p?t:d(t)?new p(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new p(t.x,t.y):new p(t,i,e)}function m(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function f(t,i){return!t||t instanceof m?t:new m(t,i)}function s(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function g(t,i){return t instanceof s?t:new s(t,i)}function v(t,i,e){if(isNaN(t)||isNaN(i))throw new Error("Invalid LatLng object: ("+t+", "+i+")");this.lat=+t,this.lng=+i,void 0!==e&&(this.alt=+e)}function w(t,i,e){return t instanceof v?t:d(t)&&"object"!=typeof t[0]?3===t.length?new v(t[0],t[1],t[2]):2===t.length?new v(t[0],t[1]):null:null==t?t:"object"==typeof t&&"lat"in t?new v(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===i?null:new v(t,i,e)}p.prototype={clone:function(){return new p(this.x,this.y)},add:function(t){return this.clone()._add(_(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(_(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new p(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new p(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=nt(this.x),this.y=nt(this.y),this},distanceTo:function(t){var i=(t=_(t)).x-this.x,t=t.y-this.y;return Math.sqrt(i*i+t*t)},equals:function(t){return(t=_(t)).x===this.x&&t.y===this.y},contains:function(t){return t=_(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+e(this.x)+", "+e(this.y)+")"}},m.prototype={extend:function(t){return t=_(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new p((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new p(this.min.x,this.max.y)},getTopRight:function(){return new p(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var i,e;return(t=("number"==typeof t[0]||t instanceof p?_:f)(t))instanceof m?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=f(t);var i=this.min,e=this.max,n=t.min,t=t.max,o=t.x>=i.x&&n.x<=e.x,t=t.y>=i.y&&n.y<=e.y;return o&&t},overlaps:function(t){t=f(t);var i=this.min,e=this.max,n=t.min,t=t.max,o=t.x>i.x&&n.x<e.x,t=t.y>i.y&&n.y<e.y;return o&&t},isValid:function(){return!(!this.min||!this.max)}},s.prototype={extend:function(t){var i,e,n=this._southWest,o=this._northEast;if(t instanceof v)e=i=t;else{if(!(t instanceof s))return t?this.extend(w(t)||g(t)):this;if(i=t._southWest,e=t._northEast,!i||!e)return this}return n||o?(n.lat=Math.min(i.lat,n.lat),n.lng=Math.min(i.lng,n.lng),o.lat=Math.max(e.lat,o.lat),o.lng=Math.max(e.lng,o.lng)):(this._southWest=new v(i.lat,i.lng),this._northEast=new v(e.lat,e.lng)),this},pad:function(t){var i=this._southWest,e=this._northEast,n=Math.abs(i.lat-e.lat)*t,t=Math.abs(i.lng-e.lng)*t;return new s(new v(i.lat-n,i.lng-t),new v(e.lat+n,e.lng+t))},getCenter:function(){return new v((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new v(this.getNorth(),this.getWest())},getSouthEast:function(){return new v(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t=("number"==typeof t[0]||t instanceof v||"lat"in t?w:g)(t);var i,e,n=this._southWest,o=this._northEast;return t instanceof s?(i=t.getSouthWest(),e=t.getNorthEast()):i=e=t,i.lat>=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=g(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=i.lat&&n.lat<=e.lat,t=t.lng>=i.lng&&n.lng<=e.lng;return o&&t},overlaps:function(t){t=g(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>i.lat&&n.lat<e.lat,t=t.lng>i.lng&&n.lng<e.lng;return o&&t},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t,i){return!!t&&(t=g(t),this._southWest.equals(t.getSouthWest(),i)&&this._northEast.equals(t.getNorthEast(),i))},isValid:function(){return!(!this._southWest||!this._northEast)}};var ot={latLngToPoint:function(t,i){t=this.projection.project(t),i=this.scale(i);return this.transformation._transform(t,i)},pointToLatLng:function(t,i){i=this.scale(i),t=this.transformation.untransform(t,i);return this.projection.unproject(t)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var i=this.projection.bounds,t=this.scale(t);return new m(this.transformation.transform(i.min,t),this.transformation.transform(i.max,t))},infinite:!(v.prototype={equals:function(t,i){return!!t&&(t=w(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===i?1e-9:i))},toString:function(t){return"LatLng("+e(this.lat,t)+", "+e(this.lng,t)+")"},distanceTo:function(t){return st.distance(this,w(t))},wrap:function(){return st.wrapLatLng(this)},toBounds:function(t){var t=180*t/40075017,i=t/Math.cos(Math.PI/180*this.lat);return g([this.lat-t,this.lng-i],[this.lat+t,this.lng+i])},clone:function(){return new v(this.lat,this.lng,this.alt)}}),wrapLatLng:function(t){var i=this.wrapLng?H(t.lng,this.wrapLng,!0):t.lng;return new v(this.wrapLat?H(t.lat,this.wrapLat,!0):t.lat,i,t.alt)},wrapLatLngBounds:function(t){var i=t.getCenter(),e=this.wrapLatLng(i),n=i.lat-e.lat,i=i.lng-e.lng;if(0==n&&0==i)return t;e=t.getSouthWest(),t=t.getNorthEast();return new s(new v(e.lat-n,e.lng-i),new v(t.lat-n,t.lng-i))}},st=l({},ot,{wrapLng:[-180,180],R:6371e3,distance:function(t,i){var e=Math.PI/180,n=t.lat*e,o=i.lat*e,s=Math.sin((i.lat-t.lat)*e/2),i=Math.sin((i.lng-t.lng)*e/2),t=s*s+Math.cos(n)*Math.cos(o)*i*i,e=2*Math.atan2(Math.sqrt(t),Math.sqrt(1-t));return this.R*e}}),rt=6378137,rt={R:rt,MAX_LATITUDE:85.0511287798,project:function(t){var i=Math.PI/180,e=this.MAX_LATITUDE,e=Math.max(Math.min(e,t.lat),-e),e=Math.sin(e*i);return new p(this.R*t.lng*i,this.R*Math.log((1+e)/(1-e))/2)},unproject:function(t){var i=180/Math.PI;return new v((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*i,t.x*i/this.R)},bounds:new m([-(rt=rt*Math.PI),-rt],[rt,rt])};function at(t,i,e,n){if(d(t))return this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3]);this._a=t,this._b=i,this._c=e,this._d=n}function ht(t,i,e,n){return new at(t,i,e,n)}at.prototype={transform:function(t,i){return this._transform(t.clone(),i)},_transform:function(t,i){return t.x=(i=i||1)*(this._a*t.x+this._b),t.y=i*(this._c*t.y+this._d),t},untransform:function(t,i){return new p((t.x/(i=i||1)-this._b)/this._a,(t.y/i-this._d)/this._c)}};var lt=l({},st,{code:"EPSG:3857",projection:rt,transformation:ht(lt=.5/(Math.PI*rt.R),.5,-lt,.5)}),ut=l({},lt,{code:"EPSG:900913"});function ct(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function dt(t,i){for(var e,n,o,s,r="",a=0,h=t.length;a<h;a++){for(e=0,n=(o=t[a]).length;e<n;e++)r+=(e?"L":"M")+(s=o[e]).x+" "+s.y;r+=i?P.svg?"z":"x":""}return r||"M0 0"}var _t=document.documentElement.style,pt="ActiveXObject"in window,mt=pt&&!document.addEventListener,n="msLaunchUri"in navigator&&!("documentMode"in document),ft=y("webkit"),gt=y("android"),vt=y("android 2")||y("android 3"),yt=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),yt=gt&&y("Google")&&yt<537&&!("AudioNode"in window),xt=!!window.opera,wt=!n&&y("chrome"),Pt=y("gecko")&&!ft&&!xt&&!pt,bt=!wt&&y("safari"),Lt=y("phantom"),o="OTransition"in _t,Tt=0===navigator.platform.indexOf("Win"),zt=pt&&"transition"in _t,Mt="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!vt,_t="MozPerspective"in _t,Ct=!window.L_DISABLE_3D&&(zt||Mt||_t)&&!o&&!Lt,Zt="undefined"!=typeof orientation||y("mobile"),St=Zt&&ft,kt=Zt&&Mt,Et=!window.PointerEvent&&window.MSPointerEvent,Bt=!(!window.PointerEvent&&!Et),At="ontouchstart"in window||!!window.TouchEvent,It=!window.L_NO_TOUCH&&(At||Bt),Ot=Zt&&xt,Rt=Zt&&Pt,Nt=1<(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI),Dt=function(){var t=!1;try{var i=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",u,i),window.removeEventListener("testPassiveEventSupport",u,i)}catch(t){}return t}(),jt=!!document.createElement("canvas").getContext,Ht=!(!document.createElementNS||!ct("svg").createSVGRect),Wt=!!Ht&&((Wt=document.createElement("div")).innerHTML="<svg/>","http://www.w3.org/2000/svg"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var P={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:Pt,safari:bt,phantom:Lt,opera12:o,win:Tt,ie3d:zt,webkit3d:Mt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:kt,msPointer:Et,pointer:Bt,touch:It,touchNative:At,mobileOpera:Ot,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),i=(t.innerHTML='<v:shape adj="1"/>',t.firstChild);return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),inlineSvg:Wt},Ft=P.msPointer?"MSPointerDown":"pointerdown",Ut=P.msPointer?"MSPointerMove":"pointermove",Vt=P.msPointer?"MSPointerUp":"pointerup",qt=P.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,i){i.MSPOINTER_TYPE_TOUCH&&i.pointerType===i.MSPOINTER_TYPE_TOUCH&&B(i);ii(t,i)},touchmove:ii,touchend:ii,touchcancel:ii},Yt={},Xt=!1;function Jt(t,i,e){return"touchstart"!==i||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,ti,!0),document.addEventListener(qt,ti,!0),Xt=!0),Kt[i]?(e=Kt[i].bind(this,e),t.addEventListener(Gt[i],e,!1),e):(console.warn("wrong event specified:",i),L.Util.falseFn)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function ti(t){delete Yt[t.pointerId]}function ii(t,i){if(i.pointerType!==(i.MSPOINTER_TYPE_MOUSE||"mouse")){for(var e in i.touches=[],Yt)i.touches.push(Yt[e]);i.changedTouches=[i],t(i)}}var ei=200;function ni(t,e){t.addEventListener("dblclick",e);var n,o=0;function i(t){var i;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((i=Date.now())-o<=ei?2===++n&&e(function(t){var i,e,n={};for(e in t)i=t[e],n[e]=i&&i.bind?i.bind(t):i;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=i)}return t.addEventListener("click",i),{dblclick:e,simDblclick:i}}var oi,si,ri,ai,hi,li,ui=wi(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ci=wi(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),di="webkitTransition"===ci||"OTransition"===ci?ci+"End":"transitionend";function _i(t){return"string"==typeof t?document.getElementById(t):t}function pi(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];return"auto"===(e=e&&"auto"!==e||!document.defaultView?e:(t=document.defaultView.getComputedStyle(t,null))?t[i]:null)?null:e}function b(t,i,e){t=document.createElement(t);return t.className=i||"",e&&e.appendChild(t),t}function T(t){var i=t.parentNode;i&&i.removeChild(t)}function mi(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fi(t){var i=t.parentNode;i&&i.lastChild!==t&&i.appendChild(t)}function gi(t){var i=t.parentNode;i&&i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function vi(t,i){if(void 0!==t.classList)return t.classList.contains(i);t=xi(t);return 0<t.length&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(t)}function z(t,i){var e;if(void 0!==t.classList)for(var n=F(i),o=0,s=n.length;o<s;o++)t.classList.add(n[o]);else vi(t,i)||yi(t,((e=xi(t))?e+" ":"")+i)}function M(t,i){void 0!==t.classList?t.classList.remove(i):yi(t,W((" "+xi(t)+" ").replace(" "+i+" "," ")))}function yi(t,i){void 0===t.className.baseVal?t.className=i:t.className.baseVal=i}function xi(t){return void 0===(t=t.correspondingElement?t.correspondingElement:t).className.baseVal?t.className:t.className.baseVal}function C(t,i){if("opacity"in t.style)t.style.opacity=i;else if("filter"in t.style){var e=!1,n="DXImageTransform.Microsoft.Alpha";try{e=t.filters.item(n)}catch(t){if(1===i)return}i=Math.round(100*i),e?(e.Enabled=100!==i,e.Opacity=i):t.style.filter+=" progid:"+n+"(opacity="+i+")"}}function wi(t){for(var i=document.documentElement.style,e=0;e<t.length;e++)if(t[e]in i)return t[e];return!1}function Pi(t,i,e){i=i||new p(0,0);t.style[ui]=(P.ie3d?"translate("+i.x+"px,"+i.y+"px)":"translate3d("+i.x+"px,"+i.y+"px,0)")+(e?" scale("+e+")":"")}function Z(t,i){t._leaflet_pos=i,P.any3d?Pi(t,i):(t.style.left=i.x+"px",t.style.top=i.y+"px")}function bi(t){return t._leaflet_pos||new p(0,0)}function Li(){S(window,"dragstart",B)}function Ti(){E(window,"dragstart",B)}function zi(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(Mi(),li=(hi=t).style.outline,t.style.outline="none",S(window,"keydown",Mi))}function Mi(){hi&&(hi.style.outline=li,li=hi=void 0,E(window,"keydown",Mi))}function Ci(t){for(;!((t=t.parentNode).offsetWidth&&t.offsetHeight||t===document.body););return t}function Zi(t){var i=t.getBoundingClientRect();return{x:i.width/t.offsetWidth||1,y:i.height/t.offsetHeight||1,boundingClientRect:i}}ai="onselectstart"in document?(ri=function(){S(window,"selectstart",B)},function(){E(window,"selectstart",B)}):(si=wi(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]),ri=function(){var t;si&&(t=document.documentElement.style,oi=t[si],t[si]="none")},function(){si&&(document.documentElement.style[si]=oi,oi=void 0)});pt={__proto__:null,TRANSFORM:ui,TRANSITION:ci,TRANSITION_END:di,get:_i,getStyle:pi,create:b,remove:T,empty:mi,toFront:fi,toBack:gi,hasClass:vi,addClass:z,removeClass:M,setClass:yi,getClass:xi,setOpacity:C,testProp:wi,setTransform:Pi,setPosition:Z,getPosition:bi,get disableTextSelection(){return ri},get enableTextSelection(){return ai},disableImageDrag:Li,enableImageDrag:Ti,preventOutline:zi,restoreOutline:Mi,getSizedParentNode:Ci,getScale:Zi};function S(t,i,e,n){if(i&&"object"==typeof i)for(var o in i)Ei(t,o,i[o],e);else for(var s=0,r=(i=F(i)).length;s<r;s++)Ei(t,i[s],e,n);return this}var k="_leaflet_events";function E(t,i,e,n){if(1===arguments.length)Si(t),delete t[k];else if(i&&"object"==typeof i)for(var o in i)Bi(t,o,i[o],e);else if(i=F(i),2===arguments.length)Si(t,function(t){return-1!==G(i,t)});else for(var s=0,r=i.length;s<r;s++)Bi(t,i[s],e,n);return this}function Si(t,i){for(var e in t[k]){var n=e.split(/\d/)[0];i&&!i(n)||Bi(t,n,null,null,e)}}var ki={mouseenter:"mouseover",mouseleave:"mouseout",wheel:!("onwheel"in window)&&"mousewheel"};function Ei(i,t,e,n){var o,s,r=t+h(e)+(n?"_"+h(n):"");i[k]&&i[k][r]||(s=o=function(t){return e.call(n||i,t||window.event)},!P.touchNative&&P.pointer&&0===t.indexOf("touch")?o=Jt(i,t,o):P.touch&&"dblclick"===t?o=ni(i,o):"addEventListener"in i?"touchstart"===t||"touchmove"===t||"wheel"===t||"mousewheel"===t?i.addEventListener(ki[t]||t,o,!!P.passiveEvents&&{passive:!1}):"mouseenter"===t||"mouseleave"===t?i.addEventListener(ki[t],o=function(t){t=t||window.event,Hi(i,t)&&s(t)},!1):i.addEventListener(t,s,!1):i.attachEvent("on"+t,o),i[k]=i[k]||{},i[k][r]=o)}function Bi(t,i,e,n,o){o=o||i+h(e)+(n?"_"+h(n):"");var s,r,e=t[k]&&t[k][o];e&&(!P.touchNative&&P.pointer&&0===i.indexOf("touch")?(n=t,r=e,Gt[s=i]?n.removeEventListener(Gt[s],r,!1):console.warn("wrong event specified:",s)):P.touch&&"dblclick"===i?(n=e,(r=t).removeEventListener("dblclick",n.dblclick),r.removeEventListener("click",n.simDblclick)):"removeEventListener"in t?t.removeEventListener(ki[i]||i,e,!1):t.detachEvent("on"+i,e),t[k][o]=null)}function Ai(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,this}function Ii(t){return Ei(t,"wheel",Ai),this}function Oi(t){return S(t,"mousedown touchstart dblclick contextmenu",Ai),t._leaflet_disable_click=!0,this}function B(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Ri(t){return B(t),Ai(t),this}function Ni(t,i){if(!i)return new p(t.clientX,t.clientY);var e=Zi(i),n=e.boundingClientRect;return new p((t.clientX-n.left)/e.x-i.clientLeft,(t.clientY-n.top)/e.y-i.clientTop)}var Di=P.win&&P.chrome?2*window.devicePixelRatio:P.gecko?window.devicePixelRatio:1;function ji(t){return P.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Di:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function Hi(t,i){var e=i.relatedTarget;if(!e)return!0;try{for(;e&&e!==t;)e=e.parentNode}catch(t){return!1}return e!==t}var mt={__proto__:null,on:S,off:E,stopPropagation:Ai,disableScrollPropagation:Ii,disableClickPropagation:Oi,preventDefault:B,stop:Ri,getMousePosition:Ni,getWheelDelta:ji,isExternalTarget:Hi,addListener:S,removeListener:E},Wi=et.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=bi(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=x(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;i<e?this._runFrame(this._easeOut(i/e),t):(this._runFrame(1),this._complete())},_runFrame:function(t,i){t=this._startPos.add(this._offset.multiplyBy(t));i&&t._round(),Z(this._el,t),this.fire("step")},_complete:function(){r(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),A=et.extend({options:{crs:lt,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,i){i=c(this,i),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this._initContainer(t),this._initLayout(),this._onResize=a(this._onResize,this),this._initEvents(),i.maxBounds&&this.setMaxBounds(i.maxBounds),void 0!==i.zoom&&(this._zoom=this._limitZoom(i.zoom)),i.center&&void 0!==i.zoom&&this.setView(w(i.center),i.zoom,{reset:!0}),this.callInitHooks(),this._zoomAnimated=ci&&P.any3d&&!P.mobileOpera&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),S(this._proxy,di,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,i,e){if((i=void 0===i?this._zoom:this._limitZoom(i),t=this._limitCenter(w(t),i,this.options.maxBounds),e=e||{},this._stop(),this._loaded&&!e.reset&&!0!==e)&&(void 0!==e.animate&&(e.zoom=l({animate:e.animate},e.zoom),e.pan=l({animate:e.animate,duration:e.duration},e.pan)),this._zoom!==i?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,i,e.zoom):this._tryAnimatedPan(t,e.pan)))return clearTimeout(this._sizeTimer),this;return this._resetView(t,i),this},setZoom:function(t,i){return this._loaded?this.setView(this.getCenter(),t,{zoom:i}):(this._zoom=t,this)},zoomIn:function(t,i){return t=t||(P.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom+t,i)},zoomOut:function(t,i){return t=t||(P.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom-t,i)},setZoomAround:function(t,i,e){var n=this.getZoomScale(i),o=this.getSize().divideBy(2),t=(t instanceof p?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),n=this.containerPointToLatLng(o.add(t));return this.setView(n,i,{zoom:e})},_getBoundsCenterZoom:function(t,i){i=i||{},t=t.getBounds?t.getBounds():g(t);var e=_(i.paddingTopLeft||i.padding||[0,0]),n=_(i.paddingBottomRight||i.padding||[0,0]),o=this.getBoundsZoom(t,!1,e.add(n));if((o="number"==typeof i.maxZoom?Math.min(i.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o};i=n.subtract(e).divideBy(2),n=this.project(t.getSouthWest(),o),e=this.project(t.getNorthEast(),o);return{center:this.unproject(n.add(e).divideBy(2).add(i),o),zoom:o}},fitBounds:function(t,i){if(!(t=g(t)).isValid())throw new Error("Bounds are not valid.");t=this._getBoundsCenterZoom(t,i);return this.setView(t.center,t.zoom,i)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,i){return this.setView(t,this._zoom,{pan:i})},panBy:function(t,i){return i=i||{},(t=_(t).round()).x||t.y?(!0===i.animate||this.getSize().contains(t)?(this._panAnim||(this._panAnim=new Wi,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),i.noMoveStart||this.fire("movestart"),!1!==i.animate?(z(this._mapPane,"leaflet-pan-anim"),e=this._getMapPanePos().subtract(t).round(),this._panAnim.run(this._mapPane,e,i.duration||.25,i.easeLinearity)):(this._rawPanBy(t),this.fire("move").fire("moveend"))):this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this):this.fire("moveend");var e},flyTo:function(n,o,t){if(!1===(t=t||{}).animate||!P.any3d)return this.setView(n,o,t);this._stop();var s=this.project(this.getCenter()),r=this.project(n),i=this.getSize(),a=this._zoom,h=(n=w(n),o=void 0===o?a:o,Math.max(i.x,i.y)),e=h*this.getZoomScale(a,o),l=r.distanceTo(s)||1,u=1.42,c=u*u;function d(t){t=(e*e-h*h+(t?-1:1)*c*c*l*l)/(2*(t?e:h)*c*l),t=Math.sqrt(t*t+1)-t;return t<1e-9?-18:Math.log(t)}function _(t){return(Math.exp(t)-Math.exp(-t))/2}function p(t){return(Math.exp(t)+Math.exp(-t))/2}var m=d(0);function f(t){return h*(p(m)*(_(t=m+u*t)/p(t))-_(m))/c}var g=Date.now(),v=(d(1)-m)/u,y=t.duration?1e3*t.duration:1e3*v*.8;return this._moveStart(!0,t.noMoveStart),function t(){var i=(Date.now()-g)/y,e=(1-Math.pow(1-i,1.5))*v;i<=1?(this._flyToFrame=x(t,this),this._move(this.unproject(s.add(r.subtract(s).multiplyBy(f(e)/l)),a),this.getScaleZoom(h/(i=e,h*(p(m)/p(m+u*i))),a),{flyTo:!0})):this._move(n,o)._moveEnd(!0)}.call(this),this},flyToBounds:function(t,i){t=this._getBoundsCenterZoom(t,i);return this.flyTo(t.center,t.zoom,i)},setMaxBounds:function(t){return(t=g(t)).isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){var i=this.options.minZoom;return this.options.minZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var i=this.options.maxZoom;return this.options.maxZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),t=this._limitCenter(e,this._zoom,g(t));return e.equals(t)||this.panTo(t,i),this._enforcingBounds=!1,this},panInside:function(t,i){var e=_((i=i||{}).paddingTopLeft||i.padding||[0,0]),n=_(i.paddingBottomRight||i.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),e=f([s.min.add(e),s.max.subtract(n)]),s=e.getSize();return e.contains(t)||(this._enforcingBounds=!0,n=t.subtract(e.getCenter()),e=e.extend(t).getSize().subtract(s),o.x+=n.x<0?-e.x:e.x,o.y+=n.y<0?-e.y:e.y,this.panTo(this.unproject(o),i),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize(),e=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=i.divideBy(2).round(),o=e.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:e})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=l({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=a(this._handleGeolocationResponse,this),e=a(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,e,t):navigator.geolocation.getCurrentPosition(i,e,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var i;this._container._leaflet_id&&(i=t.code,t=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var i,e,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(i=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(i,s.maxZoom):i)),{latlng:n,bounds:o,timestamp:t.timestamp});for(e in t.coords)"number"==typeof t.coords[e]&&(r[e]=t.coords[e]);this.fire("locationfound",r)}},addHandler:function(t,i){if(!i)return this;i=this[t]=new i(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){i=b("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,e){t=g(t),e=_(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),e=this.getSize().subtract(e),t=f(this.project(t,n),this.project(r,n)).getSize(),r=P.any3d?this.options.zoomSnap:1,a=e.x/t.x,e=e.y/t.y,t=i?Math.max(a,e):Math.min(a,e),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=i?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){t=this._getTopLeftPoint(t,i);return new m(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs,t=(i=void 0===i?this._zoom:i,e.zoom(t*e.scale(i)));return isNaN(t)?1/0:t},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(w(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(_(t),i)},layerPointToLatLng:function(t){t=_(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,i){return this.options.crs.distance(w(t),w(i))},containerPointToLayerPoint:function(t){return _(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return _(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(_(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return Ni(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_i(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,i=(this._fadeAnimated=this.options.fadeAnimation&&P.any3d,z(t,"leaflet-container"+(P.touch?" leaflet-touch":"")+(P.retina?" leaflet-retina":"")+(P.ielt9?" leaflet-oldie":"")+(P.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pi(t,"position"));"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(z(t.markerPane,"leaflet-zoom-hide"),z(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){Z(this._mapPane,new p(0,0));var e=!this._loaded,n=(this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset"),this._zoom!==i);this._moveStart(n,!1)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,e,n){void 0===i&&(i=this._zoom);var o=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?e&&e.pinch&&this.fire("zoom",e):((o||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var i=t?E:S;i((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),P.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var e,n=[],o="mouseout"===i||"mouseover"===i,s=t.target||t.srcElement,r=!1;s;){if((e=this._targets[h(s)])&&("click"===i||"preclick"===i)&&this._draggableMoved(e)){r=!0;break}if(e&&e.listens(i,!0)){if(o&&!Hi(s,t))break;if(n.push(e),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(i,!0)?n:[this]},_isClickDisabled:function(t){for(;t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var i,e=t.target||t.srcElement;!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e)||("mousedown"===(i=t.type)&&zi(e),this._fireDOMEvent(t,i))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,e){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,e));var n=this._findEventTargets(t,i);if(e){for(var o=[],s=0;s<e.length;s++)e[s].listens(i,!0)&&o.push(e[s]);n=o.concat(n)}if(n.length){"contextmenu"===i&&B(t);var r,a=n[0],h={originalEvent:t};for("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type&&(r=a.getLatLng&&(!a._radius||a._radius<=10),h.containerPoint=r?this.latLngToContainerPoint(a.getLatLng()):this.mouseEventToContainerPoint(t),h.layerPoint=this.containerPointToLayerPoint(h.containerPoint),h.latlng=r?a.getLatLng():this.layerPointToLatLng(h.layerPoint)),s=0;s<n.length;s++)if(n[s].fire(i,h,!0),h.originalEvent._stopped||!1===n[s].options.bubblingMouseEvents&&-1!==G(this._mouseEvents,i))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,i=this._handlers.length;t<i;t++)this._handlers[t].disable()},whenReady:function(t,i){return this._loaded?t.call(i||this,{target:this}):this.on("load",t,i),this},_getMapPanePos:function(){return bi(this._mapPane)||new p(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,i){return(t&&void 0!==i?this._getNewPixelOrigin(t,i):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,i){var e=this.getSize()._divideBy(2);return this.project(t,i)._subtract(e)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,i,e){e=this._getNewPixelOrigin(e,i);return this.project(t,i)._subtract(e)},_latLngBoundsToNewLayerBounds:function(t,i,e){e=this._getNewPixelOrigin(e,i);return f([this.project(t.getSouthWest(),i)._subtract(e),this.project(t.getNorthWest(),i)._subtract(e),this.project(t.getSouthEast(),i)._subtract(e),this.project(t.getNorthEast(),i)._subtract(e)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,i,e){if(!e)return t;var n=this.project(t,i),o=this.getSize().divideBy(2),o=new m(n.subtract(o),n.add(o)),o=this._getBoundsOffset(o,e,i);return o.round().equals([0,0])?t:this.unproject(n.add(o),i)},_limitOffset:function(t,i){if(!i)return t;var e=this.getPixelBounds(),e=new m(e.min.add(t),e.max.add(t));return t.add(this._getBoundsOffset(e,i))},_getBoundsOffset:function(t,i,e){i=f(this.project(i.getNorthEast(),e),this.project(i.getSouthWest(),e)),e=i.min.subtract(t.min),i=i.max.subtract(t.max);return new p(this._rebound(e.x,-i.x),this._rebound(e.y,-i.y))},_rebound:function(t,i){return 0<t+i?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=P.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){M(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){t=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(t))&&(this.panBy(t,i),!0)},_createAnimProxy:function(){var t=this._proxy=b("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var i=ui,e=this._proxy.style[i];Pi(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){T(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),i=this.getZoom();Pi(this._proxy,this.project(t,i),this.getZoomScale(i,1))},_catchTransitionEnd:function(t){this._animatingZoom&&0<=t.propertyName.indexOf("transform")&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),n=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(n))&&(x(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,e,n){this._mapPane&&(e&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,z(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&M(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Fi(t){return new I(t)}var Ui,I=it.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),t=t._controlCorners[e];return z(i,"leaflet-control"),-1!==e.indexOf("bottom")?t.insertBefore(i,t.firstChild):t.appendChild(i),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0<t.screenX&&0<t.screenY&&this._map.getContainer().focus()}}),Vi=(A.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var e=this._controlCorners={},n="leaflet-",o=this._controlContainer=b("div",n+"control-container",this._container);function t(t,i){e[t+i]=b("div",n+t+" "+n+i,o)}t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)T(this._controlCorners[t]);T(this._controlContainer),delete this._controlCorners,delete this._controlContainer}}),I.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e<n?-1:n<e?1:0}},initialize:function(t,i,e){for(var n in c(this,e),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1,t)this._addLayer(t[n],n);for(n in i)this._addLayer(i[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),(this._map=t).on("zoomend",this._checkDisabledLayers,this);for(var i=0;i<this._layers.length;i++)this._layers[i].layer.on("add remove",this._onLayerChange,this);return this._container},addTo:function(t){return I.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,i){return this._addLayer(t,i),this._map?this._update():this},addOverlay:function(t,i){return this._addLayer(t,i,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);t=this._getLayer(h(t));return t&&this._layers.splice(this._layers.indexOf(t),1),this._map?this._update():this},expand:function(){z(this._container,"leaflet-control-layers-expanded"),this._section.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._section.clientHeight?(z(this._section,"leaflet-control-layers-scrollbar"),this._section.style.height=t+"px"):M(this._section,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return M(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",i=this._container=b("div",t),e=this.options.collapsed,n=(i.setAttribute("aria-haspopup",!0),Oi(i),Ii(i),this._section=b("section",t+"-list")),o=(e&&(this._map.on("click",this.collapse,this),S(i,{mouseenter:function(){S(n,"click",B),this.expand(),setTimeout(function(){E(n,"click",B)})},mouseleave:this.collapse},this)),this._layersLink=b("a",t+"-toggle",i));o.href="#",o.title="Layers",o.setAttribute("role","button"),S(o,"click",B),S(o,"focus",this.expand,this),e||this.expand(),this._baseLayersList=b("div",t+"-base",n),this._separator=b("div",t+"-separator",n),this._overlaysList=b("div",t+"-overlays",n),i.appendChild(n)},_getLayer:function(t){for(var i=0;i<this._layers.length;i++)if(this._layers[i]&&h(this._layers[i].layer)===t)return this._layers[i]},_addLayer:function(t,i,e){this._map&&t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:i,overlay:e}),this.options.sortLayers&&this._layers.sort(a(function(t,i){return this.options.sortFunction(t.layer,i.layer,t.name,i.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;mi(this._baseLayersList),mi(this._overlaysList),this._layerControlInputs=[];for(var t,i,e,n=0,o=0;o<this._layers.length;o++)e=this._layers[o],this._addItem(e),i=i||e.overlay,t=t||!e.overlay,n+=e.overlay?0:1;return this.options.hideSingleBase&&(this._baseLayersList.style.display=(t=t&&1<n)?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(h(t.target)),t=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;t&&this._map.fire(t,i)},_createRadioElement:function(t,i){t='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(i?' checked="checked"':"")+"/>",i=document.createElement("div");return i.innerHTML=t,i.firstChild},_addItem:function(t){var i,e=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=n):i=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(i),i.layerId=h(t.layer),S(i,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return e.appendChild(o),o.appendChild(i),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;0<=s;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,i,e=this._layerControlInputs,n=this._map.getZoom(),o=e.length-1;0<=o;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&n<i.options.minZoom||void 0!==i.options.maxZoom&&n>i.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this}})),qi=I.extend({options:{position:"topleft",zoomInText:'<span aria-hidden="true">+</span>',zoomInTitle:"Zoom in",zoomOutText:'<span aria-hidden="true">−</span>',zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=b("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){e=b("a",e,n);return e.innerHTML=t,e.href="#",e.title=i,e.setAttribute("role","button"),e.setAttribute("aria-label",i),Oi(e),S(e,"click",Ri),S(e,"click",o,this),S(e,"click",this._refocusOnMap,this),e},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";M(this._zoomInButton,i),M(this._zoomOutButton,i),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(z(this._zoomOutButton,i),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(z(this._zoomInButton,i),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Gi=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qi,this.addControl(this.zoomControl))}),I.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i="leaflet-control-scale",e=b("div",i),n=this.options;return this._addScales(n,i+"-line",e),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=b("div",i,e)),t.imperial&&(this._iScale=b("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t);this._updateScale(this._mScale,i<1e3?i+" m":i/1e3+" km",i/t)},_updateImperial:function(t){var i,e,t=3.2808399*t;5280<t?(e=this._getRoundNum(i=t/5280),this._updateScale(this._iScale,e+" mi",e/i)):(e=this._getRoundNum(t),this._updateScale(this._iScale,e+" ft",e/t))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),t=t/i;return i*(t=10<=t?10:5<=t?5:3<=t?3:2<=t?2:1)}})),Ki=I.extend({options:{position:"bottomright",prefix:'<a href="https://leafletjs.com" title="A JavaScript library for interactive maps">'+(P.inlineSvg?'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="12" height="8"><path fill="#4C7BE1" d="M0 0h12v4H0z"/><path fill="#FFD500" d="M0 4h12v3H0z"/><path fill="#E0BC00" d="M0 7h12v1H0z"/></svg> ':"")+"Leaflet</a>"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var i in(t.attributionControl=this)._container=b("div","leaflet-control-attribution"),Oi(this._container),t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,i=[];for(t in this._attributions)this._attributions[t]&&i.push(t);var e=[];this.options.prefix&&e.push(this.options.prefix),i.length&&e.push(i.join(", ")),this._container.innerHTML=e.join(' <span aria-hidden="true">|</span> ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ki).addTo(this)}),I.Layers=Vi,I.Zoom=qi,I.Scale=Gi,I.Attribution=Ki,Fi.layers=function(t,i,e){return new Vi(t,i,e)},Fi.zoom=function(t){return new qi(t)},Fi.scale=function(t){return new Gi(t)},Fi.attribution=function(t){return new Ki(t)},it.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,i){return t.addHandler(i,this),this},{Events:i}),Yi=P.touch?"touchstart mousedown":"mousedown",Xi=et.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){c(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(S(this._dragStartTarget,Yi,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xi._dragging===this&&this.finishDrag(!0),E(this._dragStartTarget,Yi,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var i,e;this._enabled&&(this._moved=!1,vi(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Xi._dragging===this&&this.finishDrag():Xi._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xi._dragging=this)._preventOutline&&zi(this._element),Li(),ri(),this._moving||(this.fire("down"),e=t.touches?t.touches[0]:t,i=Ci(this._element),this._startPoint=new p(e.clientX,e.clientY),this._startPos=bi(this._element),this._parentScale=Zi(i),e="mousedown"===t.type,S(document,e?"mousemove":"touchmove",this._onMove,this),S(document,e?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var i;this._enabled&&(t.touches&&1<t.touches.length?this._moved=!0:!(i=new p((i=t.touches&&1===t.touches.length?t.touches[0]:t).clientX,i.clientY)._subtract(this._startPoint)).x&&!i.y||Math.abs(i.x)+Math.abs(i.y)<this.options.clickTolerance||(i.x/=this._parentScale.x,i.y/=this._parentScale.y,B(t),this._moved||(this.fire("dragstart"),this._moved=!0,z(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof window.SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),z(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(i),this._moving=!0,this._lastEvent=t,this._updatePosition()))},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),Z(this._element,this._newPos),this.fire("drag",t)},_onUp:function(){this._enabled&&this.finishDrag()},finishDrag:function(t){M(document.body,"leaflet-dragging"),this._lastTarget&&(M(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null),E(document,"mousemove touchmove",this._onMove,this),E(document,"mouseup touchend touchcancel",this._onUp,this),Ti(),ai(),this._moved&&this._moving&&this.fire("dragend",{noInertia:t,distance:this._newPos.distanceTo(this._startPos)}),this._moving=!1,Xi._dragging=!1}});function Ji(t,i){if(!i||!t.length)return t.slice();i*=i;return t=function(t,i){var e=t.length,n=new(typeof Uint8Array!=void 0+""?Uint8Array:Array)(e);n[0]=n[e-1]=1,function t(i,e,n,o,s){var r,a,h,l=0;for(a=o+1;a<=s-1;a++)h=ee(i[a],i[o],i[s],!0),l<h&&(r=a,l=h);n<l&&(e[r]=1,t(i,e,n,o,r),t(i,e,n,r,s))}(t,n,i,0,e-1);var o,s=[];for(o=0;o<e;o++)n[o]&&s.push(t[o]);return s}(t=function(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;n<s;n++)(function(t,i){var e=i.x-t.x,i=i.y-t.y;return e*e+i*i})(t[n],t[o])>i&&(e.push(t[n]),o=n);o<s-1&&e.push(t[s-1]);return e}(t,i),i)}function $i(t,i,e){return Math.sqrt(ee(t,i,e,!0))}function Qi(t,i,e,n,o){var s,r,a,h=n?Ui:ie(t,e),l=ie(i,e);for(Ui=l;;){if(!(h|l))return[t,i];if(h&l)return!1;a=ie(r=te(t,i,s=h||l,e,o),e),s===h?(t=r,h=a):(i=r,l=a)}}function te(t,i,e,n,o){var s,r,a=i.x-t.x,i=i.y-t.y,h=n.min,n=n.max;return 8&e?(s=t.x+a*(n.y-t.y)/i,r=n.y):4&e?(s=t.x+a*(h.y-t.y)/i,r=h.y):2&e?(s=n.x,r=t.y+i*(n.x-t.x)/a):1&e&&(s=h.x,r=t.y+i*(h.x-t.x)/a),new p(s,r,o)}function ie(t,i){var e=0;return t.x<i.min.x?e|=1:t.x>i.max.x&&(e|=2),t.y<i.min.y?e|=4:t.y>i.max.y&&(e|=8),e}function ee(t,i,e,n){var o=i.x,i=i.y,s=e.x-o,r=e.y-i,a=s*s+r*r;return 0<a&&(1<(a=((t.x-o)*s+(t.y-i)*r)/a)?(o=e.x,i=e.y):0<a&&(o+=s*a,i+=r*a)),s=t.x-o,r=t.y-i,n?s*s+r*r:new p(o,i)}function ne(t){return!d(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function oe(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ne(t)}gt={__proto__:null,simplify:Ji,pointToSegmentDistance:$i,closestPointOnSegment:function(t,i,e){return ee(t,i,e)},clipSegment:Qi,_getEdgeIntersection:te,_getBitCode:ie,_sqClosestPointOnSegment:ee,isFlat:ne,_flat:oe};function se(t,i,e){for(var n,o,s,r,a,h,l,u=[1,4,2,8],c=0,d=t.length;c<d;c++)t[c]._code=ie(t[c],i);for(s=0;s<4;s++){for(h=u[s],n=[],c=0,o=(d=t.length)-1;c<d;o=c++)r=t[c],a=t[o],r._code&h?a._code&h||((l=te(a,r,h,i,e))._code=ie(l,i),n.push(l)):(a._code&h&&((l=te(a,r,h,i,e))._code=ie(l,i),n.push(l)),n.push(r));t=n}return t}var vt={__proto__:null,clipPolygon:se},yt={project:function(t){return new p(t.lng,t.lat)},unproject:function(t){return new v(t.y,t.x)},bounds:new m([-180,-90],[180,90])},xt={R:6378137,R_MINOR:6356752.314245179,bounds:new m([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var i=Math.PI/180,e=this.R,n=t.lat*i,o=this.R_MINOR/e,o=Math.sqrt(1-o*o),s=o*Math.sin(n),s=Math.tan(Math.PI/4-n/2)/Math.pow((1-s)/(1+s),o/2),n=-e*Math.log(Math.max(s,1e-10));return new p(t.lng*i*e,n)},unproject:function(t){for(var i,e=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,l=.1;h<15&&1e-7<Math.abs(l);h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=l=Math.PI/2-2*Math.atan(r*i)-a;return new v(a*e,t.x*e/n)}},wt={__proto__:null,LonLat:yt,Mercator:xt,SphericalMercator:rt},bt=l({},st,{code:"EPSG:3395",projection:xt,transformation:ht(Pt=.5/(Math.PI*xt.R),.5,-Pt,.5)}),re=l({},st,{code:"EPSG:4326",projection:yt,transformation:ht(1/180,1,-1/180,.5)}),Lt=l({},ot,{projection:yt,transformation:ht(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,i=i.lat-t.lat;return Math.sqrt(e*e+i*i)},infinite:!0}),o=(ot.Earth=st,ot.EPSG3395=bt,ot.EPSG3857=lt,ot.EPSG900913=ut,ot.EPSG4326=re,ot.Simple=Lt,et.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[h(t)]=this},removeInteractiveTarget:function(t){return delete this._map._targets[h(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i,e=t.target;e.hasLayer(this)&&(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents&&(i=this.getEvents(),e.on(i,this),this.once("remove",function(){e.off(i,this)},this)),this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this}))}})),ae=(A.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=h(t);return this._layers[i]||((this._layers[i]=t)._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var i=h(t);return this._layers[i]&&(this._loaded&&t.onRemove(this),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null),this},hasLayer:function(t){return h(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?d(t)?t:[t]:[]).length;i<e;i++)this.addLayer(t[i])},_addZoomLimit:function(t){isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[h(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){t=h(t);this._zoomBoundLayers[t]&&(delete this._zoomBoundLayers[t],this._updateZoomLevels())},_updateZoomLevels:function(){var t,i=1/0,e=-1/0,n=this._getZoomSpan();for(t in this._zoomBoundLayers)var o=this._zoomBoundLayers[t].options,i=void 0===o.minZoom?i:Math.min(i,o.minZoom),e=void 0===o.maxZoom?e:Math.max(e,o.maxZoom);this._layersMaxZoom=e===-1/0?void 0:e,this._layersMinZoom=i===1/0?void 0:i,n!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}}),o.extend({initialize:function(t,i){var e,n;if(c(this,i),this._layers={},t)for(e=0,n=t.length;e<n;e++)this.addLayer(t[e])},addLayer:function(t){var i=this.getLayerId(t);return this._layers[i]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){t=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[t]&&this._map.removeLayer(this._layers[t]),delete this._layers[t],this},hasLayer:function(t){return("number"==typeof t?t:this.getLayerId(t))in this._layers},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var i,e,n=Array.prototype.slice.call(arguments,1);for(i in this._layers)(e=this._layers[i])[t]&&e[t].apply(e,n);return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:h})),he=ae.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),ae.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?((t=t in this._layers?this._layers[t]:t).removeEventParent(this),ae.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t,i=new s;for(t in this._layers){var e=this._layers[t];i.extend(e.getBounds?e.getBounds():e.getLatLng())}return i}}),le=it.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0],crossOrigin:!1},initialize:function(t){c(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,i){var e=this._getIconUrl(t);if(!e){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}e=this._createImg(e,i&&"IMG"===i.tagName?i:null);return this._setIconStyles(e,t),!this.options.crossOrigin&&""!==this.options.crossOrigin||(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),e},_setIconStyles:function(t,i){var e=this.options,n=e[i+"Size"],n=_(n="number"==typeof n?[n,n]:n),o=_("shadow"===i&&e.shadowAnchor||e.iconAnchor||n&&n.divideBy(2,!0));t.className="leaflet-marker-"+i+" "+(e.className||""),o&&(t.style.marginLeft=-o.x+"px",t.style.marginTop=-o.y+"px"),n&&(t.style.width=n.x+"px",t.style.height=n.y+"px")},_createImg:function(t,i){return(i=i||document.createElement("img")).src=t,i},_getIconUrl:function(t){return P.retina&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}});var ue=le.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return"string"!=typeof ue.imagePath&&(ue.imagePath=this._detectIconPath()),(this.options.imagePath||ue.imagePath)+le.prototype._getIconUrl.call(this,t)},_stripUrl:function(t){function i(t,i,e){return(i=i.exec(t))&&i[e]}return(t=i(t,/^url\((['"])?(.+)\1\)$/,2))&&i(t,/^(.*)marker-icon\.png$/,1)},_detectIconPath:function(){var t=b("div","leaflet-default-icon-path",document.body),i=pi(t,"background-image")||pi(t,"backgroundImage");if(document.body.removeChild(t),i=this._stripUrl(i))return i;t=document.querySelector('link[href$="leaflet.css"]');return t?t.href.substring(0,t.href.length-"leaflet.css".length-1):""}}),ce=n.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new Xi(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),z(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&M(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var i=this._marker,e=i._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=bi(i._icon),r=e.getPixelBounds(),a=e.getPixelOrigin(),a=f(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o));a.contains(s)||(o=_((Math.max(a.max.x,s.x)-a.max.x)/(r.max.x-a.max.x)-(Math.min(a.min.x,s.x)-a.min.x)/(r.min.x-a.min.x),(Math.max(a.max.y,s.y)-a.max.y)/(r.max.y-a.max.y)-(Math.min(a.min.y,s.y)-a.min.y)/(r.min.y-a.min.y)).multiplyBy(n),e.panBy(o,{animate:!1}),this._draggable._newPos._add(o),this._draggable._startPos._add(o),Z(i._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=x(this._adjustPan.bind(this,t)))},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup&&this._marker.closePopup(),this._marker.fire("movestart").fire("dragstart")},_onPreDrag:function(t){this._marker.options.autoPan&&(r(this._panRequest),this._panRequest=x(this._adjustPan.bind(this,t)))},_onDrag:function(t){var i=this._marker,e=i._shadow,n=bi(i._icon),o=i._map.layerPointToLatLng(n);e&&Z(e,n),i._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,i.fire("move",t).fire("drag",t)},_onDragEnd:function(t){r(this._panRequest),delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),de=o.extend({options:{icon:new ue,interactive:!0,keyboard:!0,title:"",alt:"Marker",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",shadowPane:"shadowPane",bubblingMouseEvents:!1,autoPanOnFocus:!0,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10},initialize:function(t,i){c(this,i),this._latlng=w(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var i=this._latlng;return this._latlng=w(t),this.update(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},getIcon:function(){return this.options.icon},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){var t;return this._icon&&this._map&&(t=this._map.latLngToLayerPoint(this._latlng).round(),this._setPos(t)),this},_initIcon:function(){var t=this.options,i="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),e=t.icon.createIcon(this._icon),n=!1,e=(e!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(e.title=t.title),"IMG"===e.tagName&&(e.alt=t.alt||"")),z(e,i),t.keyboard&&(e.tabIndex="0",e.setAttribute("role","button")),this._icon=e,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&S(e,"focus",this._panOnFocus,this),t.icon.createShadow(this._shadow)),o=!1;e!==this._shadow&&(this._removeShadow(),o=!0),e&&(z(e,i),e.alt=""),this._shadow=e,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),e&&o&&this.getPane(t.shadowPane).appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&E(this._icon,"focus",this._panOnFocus,this),T(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&T(this._shadow),this._shadow=null},_setPos:function(t){this._icon&&Z(this._icon,t),this._shadow&&Z(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon&&(this._icon.style.zIndex=this._zIndex+t)},_animateZoom:function(t){t=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(t)},_initInteraction:function(){var t;this.options.interactive&&(z(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),ce&&(t=this.options.draggable,this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new ce(this),t&&this.dragging.enable()))},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;this._icon&&C(this._icon,t),this._shadow&&C(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_panOnFocus:function(){var t,i,e=this._map;e&&(t=(i=this.options.icon.options).iconSize?_(i.iconSize):_(0,0),i=i.iconAnchor?_(i.iconAnchor):_(0,0),e.panInside(this._latlng,{paddingTopLeft:i,paddingBottomRight:t.subtract(i)}))},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}});var _e=o.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return c(this,t),this._renderer&&(this._renderer._updateStyle(this),this.options.stroke&&t&&Object.prototype.hasOwnProperty.call(t,"weight")&&this._updateBounds()),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+(this._renderer.options.tolerance||0)}}),pe=_e.extend({options:{fill:!0,radius:10},initialize:function(t,i){c(this,i),this._latlng=w(t),this._radius=this.options.radius},setLatLng:function(t){var i=this._latlng;return this._latlng=w(t),this.redraw(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var i=t&&t.radius||this._radius;return _e.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,i=this._radiusY||t,e=this._clickTolerance(),t=[t+e,i+e];this._pxBounds=new m(this._point.subtract(t),this._point.add(t))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}});var me=pe.extend({initialize:function(t,i,e){if(c(this,i="number"==typeof i?l({},e,{radius:i}):i),this._latlng=w(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new s(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:_e.prototype.setStyle,_project:function(){var t,i,e,n,o,s=this._latlng.lng,r=this._latlng.lat,a=this._map,h=a.options.crs;h.distance===st.distance?(n=Math.PI/180,o=this._mRadius/st.R/n,t=a.project([r+o,s]),i=a.project([r-o,s]),i=t.add(i).divideBy(2),e=a.unproject(i).lat,n=Math.acos((Math.cos(o*n)-Math.sin(r*n)*Math.sin(e*n))/(Math.cos(r*n)*Math.cos(e*n)))/n,!isNaN(n)&&0!==n||(n=o/Math.cos(Math.PI/180*r)),this._point=i.subtract(a.getPixelOrigin()),this._radius=isNaN(n)?0:i.x-a.project([e,s-n]).x,this._radiusY=i.y-t.y):(o=h.unproject(h.project(this._latlng).subtract([this._mRadius,0])),this._point=a.latLngToLayerPoint(this._latlng),this._radius=this._point.x-a.latLngToLayerPoint(o).x),this._updateBounds()}});var fe=_e.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,i){c(this,i),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var i=1/0,e=null,n=ee,o=0,s=this._parts.length;o<s;o++)for(var r=this._parts[o],a=1,h=r.length;a<h;a++){var l,u,c=n(t,l=r[a-1],u=r[a],!0);c<i&&(i=c,e=n(t,l,u))}return e&&(e.distance=Math.sqrt(i)),e},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r=this._rings[0],a=r.length;if(!a)return null;for(i=t=0;t<a-1;t++)i+=r[t].distanceTo(r[t+1])/2;if(0===i)return this._map.layerPointToLatLng(r[0]);for(e=t=0;t<a-1;t++)if(n=r[t],o=r[t+1],i<(e+=s=n.distanceTo(o)))return this._map.layerPointToLatLng([o.x-(s=(e-i)/s)*(o.x-n.x),o.y-s*(o.y-n.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,i){return i=i||this._defaultShape(),t=w(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new s,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return ne(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=ne(t),n=0,o=t.length;n<o;n++)e?(i[n]=w(t[n]),this._bounds.extend(i[n])):i[n]=this._convertLatLngs(t[n]);return i},_project:function(){var t=new m;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t),this._bounds.isValid()&&t.isValid()&&(this._rawPxBounds=t,this._updateBounds())},_updateBounds:function(){var t=this._clickTolerance(),t=new p(t,t);this._rawPxBounds&&(this._pxBounds=new m([this._rawPxBounds.min.subtract(t),this._rawPxBounds.max.add(t)]))},_projectLatlngs:function(t,i,e){var n,o,s=t[0]instanceof v,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),e.extend(o[n]);i.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],i,e)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var i,e,n,o,s=this._parts,r=0,a=0,h=this._rings.length;r<h;r++)for(i=0,e=(o=this._rings[r]).length;i<e-1;i++)(n=Qi(o[i],o[i+1],t,i,!0))&&(s[a]=s[a]||[],s[a].push(n[0]),n[1]===o[i+1]&&i!==e-2||(s[a].push(n[1]),a++))},_simplifyPoints:function(){for(var t=this._parts,i=this.options.smoothFactor,e=0,n=t.length;e<n;e++)t[e]=Ji(t[e],i)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,i){var e,n,o,s,r,a,h=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(e=0,s=this._parts.length;e<s;e++)for(n=0,o=(r=(a=this._parts[e]).length)-1;n<r;o=n++)if((i||0!==n)&&$i(t,a[o],a[n])<=h)return!0;return!1}});fe._flat=oe;var ge=fe.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a,h,l=this._rings[0],u=l.length;if(!u)return null;for(t=s=r=a=0,i=u-1;t<u;i=t++)e=l[t],n=l[i],o=e.y*n.x-n.y*e.x,r+=(e.x+n.x)*o,a+=(e.y+n.y)*o,s+=3*o;return h=0===s?l[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var t=fe.prototype._convertLatLngs.call(this,t),i=t.length;return 2<=i&&t[0]instanceof v&&t[0].equals(t[i-1])&&t.pop(),t},_setLatLngs:function(t){fe.prototype._setLatLngs.call(this,t),ne(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return(ne(this._latlngs[0])?this._latlngs:this._latlngs[0])[0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,i=new p(i,i),t=new m(t.min.subtract(i),t.max.add(i));if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var e,n=0,o=this._rings.length;n<o;n++)(e=se(this._rings[n],t,!0)).length&&this._parts.push(e)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var i,e,n,o,s,r,a,h,l=!1;if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(i=this._parts[o]).length)-1;s<h;r=s++)e=i[s],n=i[r],e.y>t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(l=!l);return l||fe.prototype._containsPoint.call(this,t,!0)}});var ve=he.extend({initialize:function(t,i){c(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=d(t)?t:t.features;if(o){for(i=0,e=o.length;i<e;i++)((n=o[i]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s=this.options;if(s.filter&&!s.filter(t))return this;var r=ye(t,s);return r?(r.feature=ze(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return void 0===t?this.eachLayer(this.resetStyle,this):(t.options=l({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this)},setStyle:function(i){return this.eachLayer(function(t){this._setLayerStyle(t,i)},this)},_setLayerStyle:function(t,i){t.setStyle&&("function"==typeof i&&(i=i(t.feature)),t.setStyle(i))}});function ye(t,i){var e,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],l=i&&i.pointToLayer,u=i&&i.coordsToLatLng||we;if(!a&&!r)return null;switch(r.type){case"Point":return xe(l,t,e=u(a),i);case"MultiPoint":for(o=0,s=a.length;o<s;o++)e=u(a[o]),h.push(xe(l,t,e,i));return new he(h);case"LineString":case"MultiLineString":return n=Pe(a,"LineString"===r.type?0:1,u),new fe(n,i);case"Polygon":case"MultiPolygon":return n=Pe(a,"Polygon"===r.type?1:2,u),new ge(n,i);case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var c=ye({geometry:r.geometries[o],type:"Feature",properties:t.properties},i);c&&h.push(c)}return new he(h);default:throw new Error("Invalid GeoJSON object.")}}function xe(t,i,e,n){return t?t(i,e):new de(e,n&&n.markersInheritOptions&&n)}function we(t){return new v(t[1],t[0],t[2])}function Pe(t,i,e){for(var n,o=[],s=0,r=t.length;s<r;s++)n=i?Pe(t[s],i-1,e):(e||we)(t[s]),o.push(n);return o}function be(t,i){return void 0!==(t=w(t)).alt?[e(t.lng,i),e(t.lat,i),e(t.alt,i)]:[e(t.lng,i),e(t.lat,i)]}function Le(t,i,e,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(i?Le(t[s],i-1,e,n):be(t[s],n));return!i&&e&&o.push(o[0]),o}function Te(t,i){return t.feature?l({},t.feature,{geometry:i}):ze(i)}function ze(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}Tt={toGeoJSON:function(t){return Te(this,{type:"Point",coordinates:be(this.getLatLng(),t)})}};function Me(t,i){return new ve(t,i)}de.include(Tt),me.include(Tt),pe.include(Tt),fe.include({toGeoJSON:function(t){var i=!ne(this._latlngs);return Te(this,{type:(i?"Multi":"")+"LineString",coordinates:Le(this._latlngs,i?1:0,!1,t)})}}),ge.include({toGeoJSON:function(t){var i=!ne(this._latlngs),e=i&&!ne(this._latlngs[0]),t=Le(this._latlngs,e?2:i?1:0,!0,t);return Te(this,{type:(e?"Multi":"")+"Polygon",coordinates:t=i?t:[t]})}}),ae.include({toMultiPoint:function(i){var e=[];return this.eachLayer(function(t){e.push(t.toGeoJSON(i).geometry.coordinates)}),Te(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(i){var t=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===t)return this.toMultiPoint(i);var e="GeometryCollection"===t,n=[];return this.eachLayer(function(t){t.toGeoJSON&&(t=t.toGeoJSON(i),e?n.push(t.geometry):"FeatureCollection"===(t=ze(t)).type?n.push.apply(n,t.features):n.push(t))}),e?Te(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});var zt=Me,Ce=o.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,e){this._url=t,this._bounds=g(i),c(this,e)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(z(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){T(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&fi(this._image),this},bringToBack:function(){return this._map&&gi(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=g(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,i=this._image=t?this._url:b("img");z(i,"leaflet-image-layer"),this._zoomAnimated&&z(i,"leaflet-zoom-animated"),this.options.className&&z(i,this.options.className),i.onselectstart=u,i.onmousemove=u,i.onload=a(this.fire,this,"load"),i.onerror=a(this._overlayOnError,this,"error"),!this.options.crossOrigin&&""!==this.options.crossOrigin||(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=i.src:(i.src=this._url,i.alt=this.options.alt)},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),t=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;Pi(this._image,t,i)},_reset:function(){var t=this._image,i=new m(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),e=i.getSize();Z(t,i.min),t.style.width=e.x+"px",t.style.height=e.y+"px"},_updateOpacity:function(){C(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),Ze=Ce.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,i=this._image=t?this._url:b("video");if(z(i,"leaflet-image-layer"),this._zoomAnimated&&z(i,"leaflet-zoom-animated"),this.options.className&&z(i,this.options.className),i.onselectstart=u,i.onmousemove=u,i.onloadeddata=a(this.fire,this,"load"),t){for(var e=i.getElementsByTagName("source"),n=[],o=0;o<e.length;o++)n.push(e[o].src);this._url=0<e.length?n:[i.src]}else{d(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(i.style,"objectFit")&&(i.style.objectFit="fill"),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop,i.muted=!!this.options.muted,i.playsInline=!!this.options.playsInline;for(var s=0;s<this._url.length;s++){var r=b("source");r.src=this._url[s],i.appendChild(r)}}}});var Se=Ce.extend({_initImage:function(){var t=this._image=this._url;z(t,"leaflet-image-layer"),this._zoomAnimated&&z(t,"leaflet-zoom-animated"),this.options.className&&z(t,this.options.className),t.onselectstart=u,t.onmousemove=u}});var O=o.extend({options:{interactive:!1,offset:[0,0],className:"",pane:void 0},initialize:function(t,i){c(this,t),this._source=i},openOn:function(t){return(t=arguments.length?t:this._source._map).hasLayer(this)||t.addLayer(this),this},close:function(){return this._map&&this._map.removeLayer(this),this},toggle:function(t){return this._map?this.close():(arguments.length?this._source=t:t=this._source,this._prepareOpen(),this.openOn(t._map)),this},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&C(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&C(this._container,1),this.bringToFront(),this.options.interactive&&(z(this._container,"leaflet-interactive"),this.addInteractiveTarget(this._container))},onRemove:function(t){t._fadeAnimated?(C(this._container,0),this._removeTimeout=setTimeout(a(T,void 0,this._container),200)):T(this._container),this.options.interactive&&(M(this._container,"leaflet-interactive"),this.removeInteractiveTarget(this._container))},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=w(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&fi(this._container),this},bringToBack:function(){return this._map&&gi(this._container),this},_prepareOpen:function(t){if(!(e=this._source)._map)return!1;if(e instanceof he){var i,e=null,n=this._source._layers;for(i in n)if(n[i]._map){e=n[i];break}if(!e)return!1;this._source=e}if(!t)if(e.getCenter)t=e.getCenter();else if(e.getLatLng)t=e.getLatLng();else{if(!e.getBounds)throw new Error("Unable to get source layer LatLng.");t=e.getBounds().getCenter()}return this.setLatLng(t),this._map&&this.update(),!0},_updateContent:function(){if(this._content){var t=this._contentNode,i="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof i)t.innerHTML=i;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(i)}this.fire("contentupdate")}},_updatePosition:function(){var t,i,e;this._map&&(i=this._map.latLngToLayerPoint(this._latlng),t=_(this.options.offset),e=this._getAnchor(),this._zoomAnimated?Z(this._container,i.add(e)):t=t.add(i).add(e),i=this._containerBottom=-t.y,e=this._containerLeft=-Math.round(this._containerWidth/2)+t.x,this._container.style.bottom=i+"px",this._container.style.left=e+"px")},_getAnchor:function(){return[0,0]}}),ke=(A.include({_initOverlay:function(t,i,e,n){var o=i;return o instanceof t||(o=new t(n).setContent(i)),e&&o.setLatLng(e),o}}),o.include({_initOverlay:function(t,i,e,n){var o=e;return o instanceof t?(c(o,n),o._source=this):(o=i&&!n?i:new t(n,this)).setContent(e),o}}),O.extend({options:{pane:"popupPane",offset:[0,7],maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(t){return!(t=arguments.length?t:this._source._map).hasLayer(this)&&t._popup&&t._popup.options.autoClose&&t.removeLayer(t._popup),t._popup=this,O.prototype.openOn.call(this,t)},onAdd:function(t){O.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof _e||this._source.on("preclick",Ai))},onRemove:function(t){O.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof _e||this._source.off("preclick",Ai))},getEvents:function(){var t=O.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this.close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_initLayout:function(){var t="leaflet-popup",i=this._container=b("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated"),e=this._wrapper=b("div",t+"-content-wrapper",i);this._contentNode=b("div",t+"-content",e),Oi(i),Ii(this._contentNode),S(i,"contextmenu",Ai),this._tipContainer=b("div",t+"-tip-container",i),this._tip=b("div",t+"-tip",this._tipContainer),this.options.closeButton&&((e=this._closeButton=b("a",t+"-close-button",i)).setAttribute("role","button"),e.setAttribute("aria-label","Close popup"),e.href="#close",e.innerHTML='<span aria-hidden="true">×</span>',S(e,"click",this.close,this))},_updateLayout:function(){var t=this._contentNode,i=t.style,e=(i.width="",i.whiteSpace="nowrap",t.offsetWidth),e=Math.min(e,this.options.maxWidth),e=(e=Math.max(e,this.options.minWidth),i.width=e+1+"px",i.whiteSpace="",i.height="",t.offsetHeight),n=this.options.maxHeight,o="leaflet-popup-scrolled";n&&n<e?(i.height=n+"px",z(t,o)):M(t,o),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var t=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();Z(this._container,t.add(i))},_adjustPan:function(t){var i,e,n,o,s,r,a,h;this.options.autoPan&&(this._map._panAnim&&this._map._panAnim.stop(),i=this._map,e=parseInt(pi(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+e,h=this._containerWidth,(n=new p(this._containerLeft,-e-this._containerBottom))._add(bi(this._container)),n=i.layerPointToContainerPoint(n),s=_(this.options.autoPanPadding),o=_(this.options.autoPanPaddingTopLeft||s),s=_(this.options.autoPanPaddingBottomRight||s),r=i.getSize(),a=0,n.x+h+s.x>r.x&&(a=n.x+h-r.x+s.x),n.x-a-o.x<(h=0)&&(a=n.x-o.x),n.y+e+s.y>r.y&&(h=n.y+e-r.y+s.y),n.y-h-o.y<0&&(h=n.y-o.y),(a||h)&&i.fire("autopanstart").panBy([a,h],{animate:t&&"moveend"===t.type}))},_getAnchor:function(){return _(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ee=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,i,e){return this._initOverlay(ke,t,i,e).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,i){return this._popup=this._initOverlay(ke,this._popup,t,i),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&this._popup._prepareOpen(t)&&this._popup.openOn(this._map),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var i;this._popup&&this._map&&(Ri(t),i=t.layer||t.target,this._popup._source!==i||i instanceof _e?(this._popup._source=i,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),O.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){O.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){O.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=O.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=b("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i,e=this._map,n=this._container,o=e.latLngToContainerPoint(e.getCenter()),e=e.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=_(this.options.offset),l=this._getAnchor(),e="top"===s?(i=r/2,a):"bottom"===s?(i=r/2,0):(i="center"===s?r/2:"right"===s?0:"left"===s?r:e.x<o.x?(s="right",0):(s="left",r+2*(h.x+l.x)),a/2);t=t.subtract(_(i,e,!0)).add(h).add(l),M(n,"leaflet-tooltip-right"),M(n,"leaflet-tooltip-left"),M(n,"leaflet-tooltip-top"),M(n,"leaflet-tooltip-bottom"),z(n,"leaflet-tooltip-"+s),Z(n,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&C(this._container,t)},_animateZoom:function(t){t=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(t)},_getAnchor:function(){return _(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}})),Be=(A.include({openTooltip:function(t,i,e){return this._initOverlay(Ee,t,i,e).openOn(this),this},closeTooltip:function(t){return t.close(),this}}),o.include({bindTooltip:function(t,i){return this._tooltip&&this.isTooltipOpen()&&this.unbindTooltip(),this._tooltip=this._initOverlay(Ee,this._tooltip,t,i),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){var i,e;!t&&this._tooltipHandlersAdded||(i=t?"off":"on",e={remove:this.closeTooltip,move:this._moveTooltip},this._tooltip.options.permanent?e.add=this._openTooltip:(e.mouseover=this._openTooltip,e.mouseout=this.closeTooltip,e.click=this._openTooltip),this._tooltip.options.sticky&&(e.mousemove=this._moveTooltip),this[i](e),this._tooltipHandlersAdded=!t)},openTooltip:function(t){return this._tooltip&&this._tooltip._prepareOpen(t)&&this._tooltip.openOn(this._map),this},closeTooltip:function(){if(this._tooltip)return this._tooltip.close()},toggleTooltip:function(){return this._tooltip&&this._tooltip.toggle(this),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){!this._tooltip||!this._map||this._map.dragging&&this._map.dragging.moving()||(this._tooltip._source=t.layer||t.target,this.openTooltip(this._tooltip.options.sticky?t.latlng:void 0))},_moveTooltip:function(t){var i=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(t=this._map.mouseEventToContainerPoint(t.originalEvent),t=this._map.containerPointToLayerPoint(t),i=this._map.layerPointToLatLng(t)),this._tooltip.setLatLng(i)}}),le.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var t=t&&"DIV"===t.tagName?t:document.createElement("div"),i=this.options;return i.html instanceof Element?(mi(t),t.appendChild(i.html)):t.innerHTML=!1!==i.html?i.html:"",i.bgPos&&(i=_(i.bgPos),t.style.backgroundPosition=-i.x+"px "+-i.y+"px"),this._setIconStyles(t,"icon"),t},createShadow:function(){return null}}));le.Default=ue;var Ae=o.extend({options:{tileSize:256,opacity:1,updateWhenIdle:P.mobile,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){c(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),T(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(fi(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(gi(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){var t;return this._map&&(this._removeAllTiles(),(t=this._clampZoom(this._map.getZoom()))!==this._tileZoom&&(this._tileZoom=t,this._updateLevels()),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=j(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof p?t:new p(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var i,e=this.getPane().children,n=-t(-1/0,1/0),o=0,s=e.length;o<s;o++)i=e[o].style.zIndex,e[o]!==this._container&&i&&(n=t(n,+i));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!P.ielt9){C(this._container,this.options.opacity);var t,i=+new Date,e=!1,n=!1;for(t in this._tiles){var o,s=this._tiles[t];s.current&&s.loaded&&(o=Math.min(1,(i-s.loaded)/200),C(s.el,o),o<1?e=!0:(s.active?n=!0:this._onOpaqueTile(s),s.active=!0))}n&&!this._noPrune&&this._pruneTiles(),e&&(r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this))}},_onOpaqueTile:u,_initContainer:function(){this._container||(this._container=b("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,i=this.options.maxZoom;if(void 0!==t){for(var e in this._levels)e=Number(e),this._levels[e].el.children.length||e===t?(this._levels[e].el.style.zIndex=i-Math.abs(t-e),this._onUpdateLevel(e)):(T(this._levels[e].el),this._removeTilesAtZoom(e),this._onRemoveLevel(e),delete this._levels[e]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=b("div","leaflet-tile-container leaflet-zoom-animated",this._container),n.el.style.zIndex=i,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),u(n.el.offsetWidth),this._onCreateLevel(n)),this._level=n}},_onUpdateLevel:u,_onRemoveLevel:u,_onCreateLevel:u,_pruneTiles:function(){if(this._map){var t,i,e,n=this._map.getZoom();if(n>this.options.maxZoom||n<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(e=this._tiles[t]).retain=e.current;for(t in this._tiles)(e=this._tiles[t]).current&&!e.active&&(i=e.coords,this._retainParent(i.x,i.y,i.z,i.z-5)||this._retainChildren(i.x,i.y,i.z,i.z+2));for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var i in this._tiles)this._tiles[i].coords.z===t&&this._removeTile(i)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)T(this._levels[t].el),this._onRemoveLevel(Number(t)),delete this._levels[t];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,i,e,n){var t=Math.floor(t/2),i=Math.floor(i/2),e=e-1,o=new p(+t,+i),o=(o.z=e,this._tileCoordsToKey(o)),o=this._tiles[o];return o&&o.active?o.retain=!0:(o&&o.loaded&&(o.retain=!0),n<e&&this._retainParent(t,i,e,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new p(o,s),r=(r.z=e+1,this._tileCoordsToKey(r)),r=this._tiles[r];r&&r.active?r.retain=!0:(r&&r.loaded&&(r.retain=!0),e+1<n&&this._retainChildren(o,s,e+1,n))}},_resetView:function(t){t=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),t,t)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var i=this.options;return void 0!==i.minNativeZoom&&t<i.minNativeZoom?i.minNativeZoom:void 0!==i.maxNativeZoom&&i.maxNativeZoom<t?i.maxNativeZoom:t},_setView:function(t,i,e,n){var o=Math.round(i),o=void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom?void 0:this._clampZoom(o),s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),e||this._pruneTiles(),this._noPrune=!!e),this._setZoomTransforms(t,i)},_setZoomTransforms:function(t,i){for(var e in this._levels)this._setZoomTransform(this._levels[e],t,i)},_setZoomTransform:function(t,i,e){var n=this._map.getZoomScale(e,t.zoom),i=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(i,e)).round();P.any3d?Pi(t.el,i,n):Z(t.el,i)},_resetGrid:function(){var t=this._map,i=t.options.crs,e=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=i.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,i.wrapLng[0]],n).x/e.x),Math.ceil(t.project([0,i.wrapLng[1]],n).x/e.y)],this._wrapY=i.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([i.wrapLat[0],0],n).y/e.x),Math.ceil(t.project([i.wrapLat[1],0],n).y/e.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var i=this._map,e=i._animatingZoom?Math.max(i._animateToZoom,i.getZoom()):i.getZoom(),e=i.getZoomScale(e,this._tileZoom),t=i.project(t,this._tileZoom).floor(),i=i.getSize().divideBy(2*e);return new m(t.subtract(i),t.add(i))},_update:function(t){var i=this._map;if(i){var e=this._clampZoom(i.getZoom());if(void 0===t&&(t=i.getCenter()),void 0!==this._tileZoom){var n,i=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(i),s=o.getCenter(),r=[],i=this.options.keepBuffer,a=new m(o.getBottomLeft().subtract([i,-i]),o.getTopRight().add([i,-i]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error("Attempted to load an infinite number of tiles");for(n in this._tiles){var h=this._tiles[n].coords;h.z===this._tileZoom&&a.contains(new p(h.x,h.y))||(this._tiles[n].current=!1)}if(1<Math.abs(e-this._tileZoom))this._setView(t,e);else{for(var l=o.min.y;l<=o.max.y;l++)for(var u=o.min.x;u<=o.max.x;u++){var c,d=new p(u,l);d.z=this._tileZoom,this._isValidTile(d)&&((c=this._tiles[this._tileCoordsToKey(d)])?c.current=!0:r.push(d))}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));for(var _=document.createDocumentFragment(),u=0;u<r.length;u++)this._addTile(r[u],_);this._level.el.appendChild(_)}}}}},_isValidTile:function(t){var i=this._map.options.crs;if(!i.infinite){var e=this._globalTileRange;if(!i.wrapLng&&(t.x<e.min.x||t.x>e.max.x)||!i.wrapLat&&(t.y<e.min.y||t.y>e.max.y))return!1}if(!this.options.bounds)return!0;i=this._tileCoordsToBounds(t);return g(this.options.bounds).overlaps(i)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),e=n.add(e);return[i.unproject(n,t.z),i.unproject(e,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),i=new p(+t[0],+t[1]);return i.z=+t[2],i},_removeTile:function(t){var i=this._tiles[t];i&&(T(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){z(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=u,t.onmousemove=u,P.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,i){var e=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,e),this._tiles[n]={el:o,coords:t,current:!0},i.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,i,e){i&&this.fire("tileerror",{error:i,tile:e,coords:t});var n=this._tileCoordsToKey(t);(e=this._tiles[n])&&(e.loaded=+new Date,this._map._fadeAnimated?(C(e.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(e.active=!0,this._pruneTiles()),i||(z(e.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:e.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),P.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new m(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Ie=Ae.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,i){this._url=t,(i=c(this,i)).detectRetina&&P.retina&&0<i.maxZoom&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url===t&&void 0===i&&(i=!0),this._url=t,i||this.redraw(),this},createTile:function(t,i){var e=document.createElement("img");return S(e,"load",a(this._tileOnLoad,this,i,e)),S(e,"error",a(this._tileOnError,this,i,e)),!this.options.crossOrigin&&""!==this.options.crossOrigin||(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(e.referrerPolicy=this.options.referrerPolicy),e.alt="",e.setAttribute("role","presentation"),e.src=this.getTileUrl(t),e},getTileUrl:function(t){var i={r:P.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};return this._map&&!this._map.options.crs.infinite&&(t=this._globalTileRange.max.y-t.y,this.options.tms&&(i.y=t),i["-y"]=t),q(this._url,l(i,this.options))},_tileOnLoad:function(t,i){P.ielt9?setTimeout(a(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.getAttribute("src")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom;return(t=this.options.zoomReverse?i-t:t)+this.options.zoomOffset},_getSubdomain:function(t){t=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[t]},_abortLoading:function(){var t,i,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=u,e.onerror=u,e.complete||(e.src=K,i=this._tiles[t].coords,T(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})))},_removeTile:function(t){var i=this._tiles[t];if(i)return i.el.setAttribute("src",K),Ae.prototype._removeTile.call(this,t)},_tileReady:function(t,i,e){if(this._map&&(!e||e.getAttribute("src")!==K))return Ae.prototype._tileReady.call(this,t,i,e)}});function Oe(t,i){return new Ie(t,i)}var Re=Ie.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var e,n=l({},this.defaultWmsParams);for(e in i)e in this.options||(n[e]=i[e]);var t=(i=c(this,i)).detectRetina&&P.retina?2:1,o=this.getTileSize();n.width=o.x*t,n.height=o.y*t,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=1.3<=this._wmsVersion?"crs":"srs";this.wmsParams[i]=this._crs.code,Ie.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),e=this._crs,e=f(e.project(i[0]),e.project(i[1])),i=e.min,e=e.max,i=(1.3<=this._wmsVersion&&this._crs===re?[i.y,i.x,e.y,e.x]:[i.x,i.y,e.x,e.y]).join(","),e=Ie.prototype.getTileUrl.call(this,t);return e+U(this.wmsParams,e,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+i},setParams:function(t,i){return l(this.wmsParams,t),i||this.redraw(),this}});Ie.WMS=Re,Oe.wms=function(t,i){return new Re(t,i)};var Ne=o.extend({options:{padding:.1},initialize:function(t){c(this,t),h(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&z(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,i),n=n.multiplyBy(-e).add(o).subtract(this._map._getNewPixelOrigin(t,i));P.any3d?Pi(this._container,n,e):Z(this._container,n)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new m(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),De=Ne.extend({options:{tolerance:0},getEvents:function(){var t=Ne.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Ne.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");S(t,"mousemove",this._onMouseMove,this),S(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),S(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){r(this._redrawRequest),delete this._ctx,T(this._container),E(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){var t,i,e,n;this._map._animatingZoom&&this._bounds||(Ne.prototype._update.call(this),t=this._bounds,i=this._container,e=t.getSize(),n=P.retina?2:1,Z(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",P.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update"))},_reset:function(){Ne.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t);t=(this._layers[h(t)]=t)._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=t),this._drawLast=t,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,i=i.prev;e?e.prev=i:this._drawLast=i,i?i.next=e:this._drawFirst=e,delete t._order,delete this._layers[h(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){for(var i,e=t.options.dashArray.split(/[, ]+/),n=[],o=0;o<e.length;o++){if(i=Number(e[o]),isNaN(i))return;n.push(i)}t.options._dashArray=n}else t.options._dashArray=t.options.dashArray},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||x(this._redraw,this))},_extendRedrawBounds:function(t){var i;t._pxBounds&&(i=(t.options.weight||0)+1,this._redrawBounds=this._redrawBounds||new m,this._redrawBounds.extend(t._pxBounds.min.subtract([i,i])),this._redrawBounds.extend(t._pxBounds.max.add([i,i])))},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t,i=this._redrawBounds;i?(t=i.getSize(),this._ctx.clearRect(i.min.x,i.min.y,t.x,t.y)):(this._ctx.save(),this._ctx.setTransform(1,0,0,1,0,0),this._ctx.clearRect(0,0,this._container.width,this._container.height),this._ctx.restore())},_draw:function(){var t,i,e=this._redrawBounds;this._ctx.save(),e&&(i=e.getSize(),this._ctx.beginPath(),this._ctx.rect(e.min.x,e.min.y,i.x,i.y),this._ctx.clip()),this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!e||t._pxBounds&&t._pxBounds.intersects(e))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,i){if(this._drawing){var e,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(h.beginPath(),e=0;e<a;e++){for(n=0,o=r[e].length;n<o;n++)s=r[e][n],h[n?"lineTo":"moveTo"](s.x,s.y);i&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){var i,e,n,o;this._drawing&&!t._empty()&&(i=t._point,e=this._ctx,n=Math.max(Math.round(t._radius),1),1!=(o=(Math.max(Math.round(t._radiusY),1)||n)/n)&&(e.save(),e.scale(1,o)),e.beginPath(),e.arc(i.x,i.y/o,n,0,2*Math.PI,!1),1!=o&&e.restore(),this._fillStroke(e,t))},_fillStroke:function(t,i){var e=i.options;e.fill&&(t.globalAlpha=e.fillOpacity,t.fillStyle=e.fillColor||e.color,t.fill(e.fillRule||"evenodd")),e.stroke&&0!==e.weight&&(t.setLineDash&&t.setLineDash(i.options&&i.options._dashArray||[]),t.globalAlpha=e.opacity,t.lineWidth=e.weight,t.strokeStyle=e.color,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.stroke())},_onClick:function(t){for(var i,e,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(n)&&(("click"===t.type||"preclick"===t.type)&&this._map._draggableMoved(i)||(e=i));this._fireEvent(!!e&&[e],t)},_onMouseMove:function(t){var i;!this._map||this._map.dragging.moving()||this._map._animatingZoom||(i=this._map.mouseEventToLayerPoint(t),this._handleMouseHover(t,i))},_handleMouseOut:function(t){var i=this._hoveredLayer;i&&(M(this._container,"leaflet-interactive"),this._fireEvent([i],t,"mouseout"),this._hoveredLayer=null,this._mouseHoverThrottled=!1)},_handleMouseHover:function(t,i){if(!this._mouseHoverThrottled){for(var e,n,o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(i)&&(n=e);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(z(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._fireEvent(!!this._hoveredLayer&&[this._hoveredLayer],t),this._mouseHoverThrottled=!0,setTimeout(a(function(){this._mouseHoverThrottled=!1},this),32)}},_fireEvent:function(t,i,e){this._map._fireDOMEvent(i,e||i.type,t)},_bringToFront:function(t){var i,e,n=t._order;n&&(i=n.next,e=n.prev,i&&((i.prev=e)?e.next=i:i&&(this._drawFirst=i),n.prev=this._drawLast,(this._drawLast.next=n).next=null,this._drawLast=n,this._requestRedraw(t)))},_bringToBack:function(t){var i,e,n=t._order;n&&(i=n.next,(e=n.prev)&&((e.next=i)?i.prev=e:e&&(this._drawLast=e),n.prev=null,n.next=this._drawFirst,this._drawFirst.prev=n,this._drawFirst=n,this._requestRedraw(t)))}});function je(t){return P.canvas?new De(t):null}var He=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<lvml:"+t+' class="lvml">')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Mt={_initContainer:function(){this._container=b("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Ne.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=He("shape");z(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=He("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;T(i),t.removeInteractiveTarget(i),delete this._layers[h(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i=i||(t._stroke=He("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e=e||(t._fill=He("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){fi(t._container)},_bringToBack:function(t){gi(t._container)}},We=P.vml?He:ct,Fe=Ne.extend({_initContainer:function(){this._container=We("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=We("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),E(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,i,e;this._map._animatingZoom&&this._bounds||(Ne.prototype._update.call(this),i=(t=this._bounds).getSize(),e=this._container,this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),Z(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update"))},_initPath:function(t){var i=t._path=We("path");t.options.className&&z(i,t.options.className),t.options.interactive&&z(i,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,t=t.options;i&&(t.stroke?(i.setAttribute("stroke",t.color),i.setAttribute("stroke-opacity",t.opacity),i.setAttribute("stroke-width",t.weight),i.setAttribute("stroke-linecap",t.lineCap),i.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?i.setAttribute("stroke-dasharray",t.dashArray):i.removeAttribute("stroke-dasharray"),t.dashOffset?i.setAttribute("stroke-dashoffset",t.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),t.fill?(i.setAttribute("fill",t.fillColor||t.color),i.setAttribute("fill-opacity",t.fillOpacity),i.setAttribute("fill-rule",t.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,dt(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+" 0 1,0 ",i=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,i)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){fi(t._path)},_bringToBack:function(t){gi(t._path)}});function Ue(t){return P.svg||P.vml?new Fe(t):null}P.vml&&Fe.include(Mt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&je(t)||Ue(t)}});var Ve=ge.extend({initialize:function(t,i){ge.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Fe.create=We,Fe.pointsToPath=dt,ve.geometryToLayer=ye,ve.coordsToLatLng=we,ve.coordsToLatLngs=Pe,ve.latLngToCoords=be,ve.latLngsToCoords=Le,ve.getFeature=Te,ve.asFeature=ze,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){E(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),ri(),Li(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Ri,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=b("div","leaflet-zoom-box",this._container),z(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new m(this._point,this._startPoint),i=t.getSize();Z(this._box,t.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(T(this._box),M(this._container,"leaflet-crosshair")),ai(),Ti(),E(document,{contextmenu:Ri,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,e=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(e):i.setZoomAround(t.containerPoint,e)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xi(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),z(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){M(this._map._container,"leaflet-grab"),M(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,i=this._map;i._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=f(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,i.fire("movestart").fire("dragstart"),i.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var i,e;this._map.options.inertia&&(i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(e),this._times.push(i),this._prunePositions(i)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1<this._positions.length&&50<t-this._times[0];)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){var t,i;this._viscosity&&this._offsetLimit&&(t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit,t.x<i.min.x&&(t.x=this._viscousLimit(t.x,i.min.x)),t.y<i.min.y&&(t.y=this._viscousLimit(t.y,i.min.y)),t.x>i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,n=(n+i+e)%t-i-e,t=Math.abs(o+e)<Math.abs(n+e)?o:n;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=t},_onDragEnd:function(t){var i,e,n,o,s=this._map,r=s.options,a=!r.inertia||t.noInertia||this._times.length<2;s.fire("dragend",t),a?s.fire("moveend"):(this._prunePositions(+new Date),t=this._lastPos.subtract(this._positions[0]),a=(this._lastTime-this._times[0])/1e3,i=r.easeLinearity,a=(t=t.multiplyBy(i/a)).distanceTo([0,0]),e=Math.min(r.inertiaMaxSpeed,a),t=t.multiplyBy(e/a),n=e/(r.inertiaDeceleration*i),(o=t.multiplyBy(-n/2).round()).x||o.y?(o=s._limitOffset(o,s.options.maxBounds),x(function(){s.panBy(o,{duration:n,easeLinearity:i,noMoveStart:!0,animate:!0})})):s.fire("moveend"))}})),St=(A.addInitHook("addHandler","dragging",Zt),A.mergeOptions({keyboard:!0,keyboardPanDelta:80}),n.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),S(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),E(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){var t,i,e;this._focused||(e=document.body,t=document.documentElement,i=e.scrollTop||t.scrollTop,e=e.scrollLeft||t.scrollLeft,this._map._container.focus(),window.scrollTo(e,i))},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){for(var i=this._panKeys={},e=this.keyCodes,n=0,o=e.left.length;n<o;n++)i[e.left[n]]=[-1*t,0];for(n=0,o=e.right.length;n<o;n++)i[e.right[n]]=[t,0];for(n=0,o=e.down.length;n<o;n++)i[e.down[n]]=[0,t];for(n=0,o=e.up.length;n<o;n++)i[e.up[n]]=[0,-1*t]},_setZoomDelta:function(t){for(var i=this._zoomKeys={},e=this.keyCodes,n=0,o=e.zoomIn.length;n<o;n++)i[e.zoomIn[n]]=t;for(n=0,o=e.zoomOut.length;n<o;n++)i[e.zoomOut[n]]=-t},_addHooks:function(){S(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){E(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var i,e=t.keyCode,n=this._map;if(e in this._panKeys)n._panAnim&&n._panAnim._inProgress||(i=this._panKeys[e],t.shiftKey&&(i=_(i).multiplyBy(3)),n.panBy(i),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds));else if(e in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[e]);else{if(27!==e||!n._popup||!n._popup.options.closeOnEscapeKey)return;n.closePopup()}Ri(t)}}})),kt=(A.addInitHook("addHandler","keyboard",St),A.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60}),n.extend({addHooks:function(){S(this._map._container,"wheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){E(this._map._container,"wheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var i=ji(t),e=this._map.options.wheelDebounceTime,i=(this._delta+=i,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date),Math.max(e-(+new Date-this._startTime),0));clearTimeout(this._timer),this._timer=setTimeout(a(this._performZoom,this),i),Ri(t)},_performZoom:function(){var t=this._map,i=t.getZoom(),e=this._map.options.zoomSnap||0,n=(t._stop(),this._delta/(4*this._map.options.wheelPxPerZoomLevel)),n=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,e=e?Math.ceil(n/e)*e:n,n=t._limitZoom(i+(0<this._delta?e:-e))-i;this._delta=0,this._startTime=null,n&&("center"===t.options.scrollWheelZoom?t.setZoom(i+n):t.setZoomAround(this._lastMousePos,i+n))}})),Et=(A.addInitHook("addHandler","scrollWheelZoom",kt),A.mergeOptions({tapHold:P.touchNative&&P.safari&&P.mobile,tapTolerance:15}),n.extend({addHooks:function(){S(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){E(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){var i;clearTimeout(this._holdTimeout),1===t.touches.length&&(i=t.touches[0],this._startPos=this._newPos=new p(i.clientX,i.clientY),this._holdTimeout=setTimeout(a(function(){this._cancel(),this._isTapValid()&&(S(document,"touchend",B),S(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",i))},this),600),S(document,"touchend touchcancel contextmenu",this._cancel,this),S(document,"touchmove",this._onMove,this))},_cancelClickPrevent:function t(){E(document,"touchend",B),E(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),E(document,"touchend touchcancel contextmenu",this._cancel,this),E(document,"touchmove",this._onMove,this)},_onMove:function(t){t=t.touches[0];this._newPos=new p(t.clientX,t.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,i){t=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:i.screenX,screenY:i.screenY,clientX:i.clientX,clientY:i.clientY});t._simulated=!0,i.target.dispatchEvent(t)}})),Bt=(A.addInitHook("addHandler","tapHold",Et),A.mergeOptions({touchZoom:P.touch,bounceAtZoomLimits:!0}),n.extend({addHooks:function(){z(this._map._container,"leaflet-touch-zoom"),S(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){M(this._map._container,"leaflet-touch-zoom"),E(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i,e,n=this._map;!t.touches||2!==t.touches.length||n._animatingZoom||this._zooming||(i=n.mouseEventToContainerPoint(t.touches[0]),e=n.mouseEventToContainerPoint(t.touches[1]),this._centerPoint=n.getSize()._divideBy(2),this._startLatLng=n.containerPointToLatLng(this._centerPoint),"center"!==n.options.touchZoom&&(this._pinchStartLatLng=n.containerPointToLatLng(i.add(e)._divideBy(2))),this._startDist=i.distanceTo(e),this._startZoom=n.getZoom(),this._moved=!1,this._zooming=!0,n._stop(),S(document,"touchmove",this._onTouchMove,this),S(document,"touchend touchcancel",this._onTouchEnd,this),B(t))},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]),o=e.distanceTo(n)/this._startDist;if(this._zoom=i.getScaleZoom(o,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoom<i.getMinZoom()&&o<1||this._zoom>i.getMaxZoom()&&1<o)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1==o)return}else{e=e._add(n)._divideBy(2)._subtract(this._centerPoint);if(1==o&&0===e.x&&0===e.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(e),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),r(this._animRequest);n=a(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=x(n,this,!0),B(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,r(this._animRequest),E(document,"touchmove",this._onTouchMove,this),E(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}})),qe=(A.addInitHook("addHandler","touchZoom",Bt),A.BoxZoom=_t,A.DoubleClickZoom=Ct,A.Drag=Zt,A.Keyboard=St,A.ScrollWheelZoom=kt,A.TapHold=Et,A.TouchZoom=Bt,t.Bounds=m,t.Browser=P,t.CRS=ot,t.Canvas=De,t.Circle=me,t.CircleMarker=pe,t.Class=it,t.Control=I,t.DivIcon=Be,t.DivOverlay=O,t.DomEvent=mt,t.DomUtil=pt,t.Draggable=Xi,t.Evented=et,t.FeatureGroup=he,t.GeoJSON=ve,t.GridLayer=Ae,t.Handler=n,t.Icon=le,t.ImageOverlay=Ce,t.LatLng=v,t.LatLngBounds=s,t.Layer=o,t.LayerGroup=ae,t.LineUtil=gt,t.Map=A,t.Marker=de,t.Mixin=ft,t.Path=_e,t.Point=p,t.PolyUtil=vt,t.Polygon=ge,t.Polyline=fe,t.Popup=ke,t.PosAnimation=Wi,t.Projection=wt,t.Rectangle=Ve,t.Renderer=Ne,t.SVG=Fe,t.SVGOverlay=Se,t.TileLayer=Ie,t.Tooltip=Ee,t.Transformation=at,t.Util=tt,t.VideoOverlay=Ze,t.bind=a,t.bounds=f,t.canvas=je,t.circle=function(t,i,e){return new me(t,i,e)},t.circleMarker=function(t,i){return new pe(t,i)},t.control=Fi,t.divIcon=function(t){return new Be(t)},t.extend=l,t.featureGroup=function(t,i){return new he(t,i)},t.geoJSON=Me,t.geoJson=zt,t.gridLayer=function(t){return new Ae(t)},t.icon=function(t){return new le(t)},t.imageOverlay=function(t,i,e){return new Ce(t,i,e)},t.latLng=w,t.latLngBounds=g,t.layerGroup=function(t,i){return new ae(t,i)},t.map=function(t,i){return new A(t,i)},t.marker=function(t,i){return new de(t,i)},t.point=_,t.polygon=function(t,i){return new ge(t,i)},t.polyline=function(t,i){return new fe(t,i)},t.popup=function(t,i){return new ke(t,i)},t.rectangle=function(t,i){return new Ve(t,i)},t.setOptions=c,t.stamp=h,t.svg=Ue,t.svgOverlay=function(t,i,e){return new Se(t,i,e)},t.tileLayer=Oe,t.tooltip=function(t,i){return new Ee(t,i)},t.transformation=ht,t.version="1.8.0",t.videoOverlay=function(t,i,e){return new Ze(t,i,e)},window.L);t.noConflict=function(){return window.L=qe,this},window.L=t}); +//# sourceMappingURL=leaflet.js.map diff --git a/maps_utils/static/maps_utils/vendor/polylabel@1.0.2/polylabel.min.js b/maps_utils/static/maps_utils/vendor/polylabel@1.0.2/polylabel.min.js new file mode 100644 index 0000000000000000000000000000000000000000..7326766a525e2be42048826e85b2f38fce97aee4 --- /dev/null +++ b/maps_utils/static/maps_utils/vendor/polylabel@1.0.2/polylabel.min.js @@ -0,0 +1 @@ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).polylabel=t()}}(function(){return function(){return function t(n,e,r){function i(a,u){if(!e[a]){if(!n[a]){var f="function"==typeof require&&require;if(!u&&f)return f(a,!0);if(o)return o(a,!0);var h=new Error("Cannot find module '"+a+"'");throw h.code="MODULE_NOT_FOUND",h}var s=e[a]={exports:{}};n[a][0].call(s.exports,function(t){return i(n[a][1][t]||t)},s,s.exports,t,n,e,r)}return e[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}}()({1:[function(t,n,e){"use strict";function r(t,n){if(!(this instanceof r))return new r(t,n);if(this.data=t||[],this.length=this.data.length,this.compare=n||i,this.length>0)for(var e=(this.length>>1)-1;e>=0;e--)this._down(e)}function i(t,n){return t<n?-1:t>n?1:0}n.exports=r,n.exports.default=r,r.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),t}},peek:function(){return this.data[0]},_up:function(t){for(var n=this.data,e=this.compare,r=n[t];t>0;){var i=t-1>>1,o=n[i];if(e(r,o)>=0)break;n[t]=o,t=i}n[t]=r},_down:function(t){for(var n=this.data,e=this.compare,r=this.length>>1,i=n[t];t<r;){var o=1+(t<<1),a=o+1,u=n[o];if(a<this.length&&e(n[a],u)<0&&(o=a,u=n[a]),e(u,i)>=0)break;n[t]=u,t=o}n[t]=i}}},{}],2:[function(t,n,e){"use strict";var r=t("tinyqueue");function i(t,n,e){var i,u,f,h;n=n||1;for(var s=0;s<t[0].length;s++){var d=t[0][s];(!s||d[0]<i)&&(i=d[0]),(!s||d[1]<u)&&(u=d[1]),(!s||d[0]>f)&&(f=d[0]),(!s||d[1]>h)&&(h=d[1])}var l=f-i,p=h-u,c=Math.min(l,p),v=c/2,g=new r(null,o);if(0===c)return[i,u];for(var x=i;x<f;x+=c)for(var w=u;w<h;w+=c)g.push(new a(x+v,w+v,v,t));var y=function(t){for(var n=0,e=0,r=0,i=t[0],o=0,u=i.length,f=u-1;o<u;f=o++){var h=i[o],s=i[f],d=h[0]*s[1]-s[0]*h[1];e+=(h[0]+s[0])*d,r+=(h[1]+s[1])*d,n+=3*d}return 0===n?new a(i[0][0],i[0][1],0,t):new a(e/n,r/n,0,t)}(t),m=new a(i+l/2,u+p/2,0,t);m.d>y.d&&(y=m);for(var b=g.length;g.length;){var _=g.pop();_.d>y.d&&(y=_,e&&console.log("found best %d after %d probes",Math.round(1e4*_.d)/1e4,b)),_.max-y.d<=n||(v=_.h/2,g.push(new a(_.x-v,_.y-v,v,t)),g.push(new a(_.x+v,_.y-v,v,t)),g.push(new a(_.x-v,_.y+v,v,t)),g.push(new a(_.x+v,_.y+v,v,t)),b+=4)}return e&&(console.log("num probes: "+b),console.log("best distance: "+y.d)),[y.x,y.y]}function o(t,n){return n.max-t.max}function a(t,n,e,r){this.x=t,this.y=n,this.h=e,this.d=function(t,n,e){for(var r=!1,i=1/0,o=0;o<e.length;o++)for(var a=e[o],f=0,h=a.length,s=h-1;f<h;s=f++){var d=a[f],l=a[s];d[1]>n!=l[1]>n&&t<(l[0]-d[0])*(n-d[1])/(l[1]-d[1])+d[0]&&(r=!r),i=Math.min(i,u(t,n,d,l))}return(r?1:-1)*Math.sqrt(i)}(t,n,r),this.max=this.d+this.h*Math.SQRT2}function u(t,n,e,r){var i=e[0],o=e[1],a=r[0]-i,u=r[1]-o;if(0!==a||0!==u){var f=((t-i)*a+(n-o)*u)/(a*a+u*u);f>1?(i=r[0],o=r[1]):f>0&&(i+=a*f,o+=u*f)}return(a=t-i)*a+(u=n-o)*u}n.exports=i,n.exports.default=i},{tinyqueue:1}]},{},[2])(2)}); diff --git a/maps_utils/static/maps_utils/vendor/vue2-leaflet@2.7.1/vue2-leaflet.min.js b/maps_utils/static/maps_utils/vendor/vue2-leaflet@2.7.1/vue2-leaflet.min.js new file mode 100644 index 0000000000000000000000000000000000000000..fcffaa78f1139d5ba56b2810ff9ca6fe95de588f --- /dev/null +++ b/maps_utils/static/maps_utils/vendor/vue2-leaflet@2.7.1/vue2-leaflet.min.js @@ -0,0 +1,3353 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('leaflet'), require('vue')) : + typeof define === 'function' && define.amd ? define(['exports', 'leaflet', 'vue'], factory) : + (global = global || self, factory(global.Vue2Leaflet = {}, global.L, global.Vue)); +}(this, (function (exports, leaflet, Vue) { 'use strict'; + + Vue = Vue && Object.prototype.hasOwnProperty.call(Vue, 'default') ? Vue['default'] : Vue; + + var debounce = function (fn, time) { + var timeout; + + var debouncedFunction = function() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var context = this; + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + fn.apply(context, args); + timeout = null; + }, time); + }; + + debouncedFunction.cancel = function() { + if (timeout) { + clearTimeout(timeout); + } + }; + + return debouncedFunction; + }; + + var capitalizeFirstLetter = function (string) { + if (!string || typeof string.charAt !== 'function') { + return string; + } + return string.charAt(0).toUpperCase() + string.slice(1); + }; + + var propsBinder = function (vueElement, leafletElement, props, options) { + var loop = function ( key ) { + var setMethodName = 'set' + capitalizeFirstLetter(key); + var deepValue = + props[key].type === Object || + props[key].type === Array || + Array.isArray(props[key].type); + if (props[key].custom && vueElement[setMethodName]) { + vueElement.$watch( + key, + function (newVal, oldVal) { + vueElement[setMethodName](newVal, oldVal); + }, + { + deep: deepValue, + } + ); + } else if (setMethodName === 'setOptions') { + vueElement.$watch( + key, + function (newVal, oldVal) { + leaflet.setOptions(leafletElement, newVal); + }, + { + deep: deepValue, + } + ); + } else if (leafletElement[setMethodName]) { + vueElement.$watch( + key, + function (newVal, oldVal) { + leafletElement[setMethodName](newVal); + }, + { + deep: deepValue, + } + ); + } + }; + + for (var key in props) loop( key ); + }; + + var collectionCleaner = function (options) { + var result = {}; + for (var key in options) { + var value = options[key]; + if (value !== null && value !== undefined) { + result[key] = value; + } + } + return result; + }; + + var optionsMerger = function (props, instance) { + var options = + instance.options && instance.options.constructor === Object + ? instance.options + : {}; + props = props && props.constructor === Object ? props : {}; + var result = collectionCleaner(options); + props = collectionCleaner(props); + var defaultProps = instance.$options.props; + for (var key in props) { + var def = defaultProps[key] + ? defaultProps[key].default && + typeof defaultProps[key].default === 'function' + ? defaultProps[key].default.call() + : defaultProps[key].default + : Symbol('unique'); + var isEqual = false; + if (Array.isArray(def)) { + isEqual = JSON.stringify(def) === JSON.stringify(props[key]); + } else { + isEqual = def === props[key]; + } + if (result[key] && !isEqual) { + console.warn( + (key + " props is overriding the value passed in the options props") + ); + result[key] = props[key]; + } else if (!result[key]) { + result[key] = props[key]; + } + } + return result; + }; + + var findRealParent = function (firstVueParent) { + var found = false; + while (firstVueParent && !found) { + if (firstVueParent.mapObject === undefined) { + firstVueParent = firstVueParent.$parent; + } else { + found = true; + } + } + return firstVueParent; + }; + + var Layer = { + props: { + pane: { + type: String, + default: 'overlayPane', + }, + attribution: { + type: String, + default: null, + custom: true, + }, + name: { + type: String, + custom: true, + default: undefined, + }, + layerType: { + type: String, + custom: true, + default: undefined, + }, + visible: { + type: Boolean, + custom: true, + default: true, + }, + }, + mounted: function mounted() { + this.layerOptions = { + attribution: this.attribution, + pane: this.pane, + }; + }, + beforeDestroy: function beforeDestroy() { + this.unbindPopup(); + this.unbindTooltip(); + this.parentContainer.removeLayer(this); + }, + methods: { + setAttribution: function setAttribution(val, old) { + var attributionControl = this.$parent.mapObject.attributionControl; + attributionControl.removeAttribution(old).addAttribution(val); + }, + setName: function setName() { + this.parentContainer.removeLayer(this); + if (this.visible) { + this.parentContainer.addLayer(this); + } + }, + setLayerType: function setLayerType() { + this.parentContainer.removeLayer(this); + if (this.visible) { + this.parentContainer.addLayer(this); + } + }, + setVisible: function setVisible(isVisible) { + if (this.mapObject) { + if (isVisible) { + this.parentContainer.addLayer(this); + } else { + if (this.parentContainer.hideLayer) { + this.parentContainer.hideLayer(this); + } else { + this.parentContainer.removeLayer(this); + } + } + } + }, + unbindTooltip: function unbindTooltip() { + var tooltip = this.mapObject ? this.mapObject.getTooltip() : null; + if (tooltip) { + tooltip.unbindTooltip(); + } + }, + unbindPopup: function unbindPopup() { + var popup = this.mapObject ? this.mapObject.getPopup() : null; + if (popup) { + popup.unbindPopup(); + } + }, + updateVisibleProp: function updateVisibleProp(value) { + /** + * Triggers when the visible prop needs to be updated + * @type {boolean} + * @property {boolean} value - value of the visible property + */ + this.$emit('update:visible', value); + }, + }, + }; + + var InteractiveLayer = { + props: { + interactive: { + type: Boolean, + default: true + }, + bubblingMouseEvents: { + type: Boolean, + default: true + } + }, + mounted: function mounted () { + this.interactiveLayerOptions = { + interactive: this.interactive, + bubblingMouseEvents: this.bubblingMouseEvents + }; + } + }; + + var Path = { + mixins: [Layer, InteractiveLayer], + props: { + lStyle: { + type: Object, + custom: true, + default: null + }, + stroke: { + type: Boolean, + custom: true, + default: true + }, + color: { + type: String, + custom: true, + default: '#3388ff' + }, + weight: { + type: Number, + custom: true, + default: 3 + }, + opacity: { + type: Number, + custom: true, + default: 1.0 + }, + lineCap: { + type: String, + custom: true, + default: 'round' + }, + lineJoin: { + type: String, + custom: true, + default: 'round' + }, + dashArray: { + type: String, + custom: true, + default: null + }, + dashOffset: { + type: String, + custom: true, + default: null + }, + fill: { + type: Boolean, + custom: true, + default: false + }, + fillColor: { + type: String, + custom: true, + default: '#3388ff' + }, + fillOpacity: { + type: Number, + custom: true, + default: 0.2 + }, + fillRule: { + type: String, + custom: true, + default: 'evenodd' + }, + className: { + type: String, + custom: true, + default: null + } + }, + mounted: function mounted () { + this.pathOptions = Object.assign({}, this.layerOptions, + this.interactiveLayerOptions, + {stroke: this.stroke, + color: this.color, + weight: this.weight, + opacity: this.opacity, + lineCap: this.lineCap, + lineJoin: this.lineJoin, + dashArray: this.dashArray, + dashOffset: this.dashOffset, + fill: this.fill, + fillColor: this.fillColor, + fillOpacity: this.fillOpacity, + fillRule: this.fillRule, + className: this.className}); + + if (this.lStyle) { + console.warn('lStyle is deprecated and is going to be removed in the next major version'); + for (var style in this.lStyle) { + this.pathOptions[style] = this.lStyle[style]; + } + } + }, + beforeDestroy: function beforeDestroy () { + if (this.parentContainer) { + this.parentContainer.removeLayer(this); + } else { + console.error('Missing parent container'); + } + }, + methods: { + setLStyle: function setLStyle (newVal) { + this.mapObject.setStyle(newVal); + }, + setStroke: function setStroke (newVal) { + this.mapObject.setStyle({ stroke: newVal }); + }, + setColor: function setColor (newVal) { + this.mapObject.setStyle({ color: newVal }); + }, + setWeight: function setWeight (newVal) { + this.mapObject.setStyle({ weight: newVal }); + }, + setOpacity: function setOpacity (newVal) { + this.mapObject.setStyle({ opacity: newVal }); + }, + setLineCap: function setLineCap (newVal) { + this.mapObject.setStyle({ lineCap: newVal }); + }, + setLineJoin: function setLineJoin (newVal) { + this.mapObject.setStyle({ lineJoin: newVal }); + }, + setDashArray: function setDashArray (newVal) { + this.mapObject.setStyle({ dashArray: newVal }); + }, + setDashOffset: function setDashOffset (newVal) { + this.mapObject.setStyle({ dashOffset: newVal }); + }, + setFill: function setFill (newVal) { + this.mapObject.setStyle({ fill: newVal }); + }, + setFillColor: function setFillColor (newVal) { + this.mapObject.setStyle({ fillColor: newVal }); + }, + setFillOpacity: function setFillOpacity (newVal) { + this.mapObject.setStyle({ fillOpacity: newVal }); + }, + setFillRule: function setFillRule (newVal) { + this.mapObject.setStyle({ fillRule: newVal }); + }, + setClassName: function setClassName (newVal) { + this.mapObject.setStyle({ className: newVal }); + } + } + }; + + var CircleMixin = { + mixins: [Path], + props: { + fill: { + type: Boolean, + custom: true, + default: true + }, + radius: { + type: Number, + default: null + } + }, + mounted: function mounted () { + this.circleOptions = Object.assign({}, this.pathOptions, + {radius: this.radius}); + } + }; + + var ControlMixin = { + props: { + position: { + type: String, + default: 'topright' + } + }, + mounted: function mounted () { + this.controlOptions = { + position: this.position + }; + }, + beforeDestroy: function beforeDestroy () { + if (this.mapObject) { + this.mapObject.remove(); + } + } + }; + + var GridLayerMixin = { + mixins: [Layer], + props: { + pane: { + type: String, + default: 'tilePane' + }, + opacity: { + type: Number, + custom: false, + default: 1.0 + }, + zIndex: { + type: Number, + default: 1 + }, + tileSize: { + type: Number, + default: 256 + }, + noWrap: { + type: Boolean, + default: false + } + }, + mounted: function mounted () { + this.gridLayerOptions = Object.assign({}, this.layerOptions, + {pane: this.pane, + opacity: this.opacity, + zIndex: this.zIndex, + tileSize: this.tileSize, + noWrap: this.noWrap}); + } + }; + + var ImageOverlayMixin = { + mixins: [Layer, InteractiveLayer], + props: { + url: { + type: String, + custom: true + }, + bounds: { + custom: true + }, + opacity: { + type: Number, + custom: true, + default: 1.0 + }, + alt: { + type: String, + default: '' + }, + interactive: { + type: Boolean, + default: false + }, + crossOrigin: { + type: Boolean, + default: false + }, + errorOverlayUrl: { + type: String, + custom: true, + default: '' + }, + zIndex: { + type: Number, + custom: true, + default: 1 + }, + className: { + type: String, + default: '' + } + }, + mounted: function mounted () { + this.imageOverlayOptions = Object.assign({}, this.layerOptions, + this.interactiveLayerOptions, + {opacity: this.opacity, + alt: this.alt, + interactive: this.interactive, + crossOrigin: this.crossOrigin, + errorOverlayUrl: this.errorOverlayUrl, + zIndex: this.zIndex, + className: this.className}); + }, + methods: { + setOpacity: function setOpacity (opacity) { + return this.mapObject.setOpacity(opacity); + }, + setUrl: function setUrl (url) { + return this.mapObject.setUrl(url); + }, + setBounds: function setBounds (bounds) { + return this.mapObject.setBounds(bounds); + }, + getBounds: function getBounds () { + return this.mapObject.getBounds(); + }, + getElement: function getElement () { + return this.mapObject.getElement(); + }, + bringToFront: function bringToFront () { + return this.mapObject.bringToFront(); + }, + bringToBack: function bringToBack () { + return this.mapObject.bringToBack(); + } + }, + render: function render () { + return null; + } + }; + + var LayerGroupMixin = { + mixins: [Layer], + mounted: function mounted () { + this.layerGroupOptions = this.layerOptions; + }, + methods: { + addLayer: function addLayer (layer, alreadyAdded) { + if (!alreadyAdded) { + this.mapObject.addLayer(layer.mapObject); + } + this.parentContainer.addLayer(layer, true); + }, + removeLayer: function removeLayer (layer, alreadyRemoved) { + if (!alreadyRemoved) { + this.mapObject.removeLayer(layer.mapObject); + } + this.parentContainer.removeLayer(layer, true); + } + } + }; + + var Options = { + props: { + /** + * Leaflet options to pass to the component constructor + */ + options: { + type: Object, + default: function () { return ({}); } + } + } + }; + + var PolylineMixin = { + mixins: [Path], + props: { + smoothFactor: { + type: Number, + custom: true, + default: 1.0 + }, + noClip: { + type: Boolean, + custom: true, + default: false + } + }, + data: function data () { + return { + ready: false + }; + }, + mounted: function mounted () { + this.polyLineOptions = Object.assign({}, this.pathOptions, + {smoothFactor: this.smoothFactor, + noClip: this.noClip}); + }, + methods: { + setSmoothFactor: function setSmoothFactor (newVal) { + this.mapObject.setStyle({ smoothFactor: newVal }); + }, + setNoClip: function setNoClip (newVal) { + this.mapObject.setStyle({ noClip: newVal }); + }, + addLatLng: function addLatLng (value) { + this.mapObject.addLatLng(value); + } + } + }; + + var Polygon = { + mixins: [PolylineMixin], + props: { + fill: { + type: Boolean, + custom: true, + default: true + } + }, + mounted: function mounted () { + this.polygonOptions = this.polyLineOptions; + }, + methods: { + getGeoJSONData: function getGeoJSONData () { + return this.mapObject.toGeoJSON(); + } + } + }; + + var Popper = { + props: { + content: { + type: String, + default: null, + custom: true + } + }, + mounted: function mounted () { + this.popperOptions = {}; + }, + methods: { + setContent: function setContent (newVal) { + if (this.mapObject && newVal !== null && newVal !== undefined) { + this.mapObject.setContent(newVal); + } + } + }, + render: function render (h) { + if (this.$slots.default) { + return h('div', this.$slots.default); + } + return null; + } + }; + + var TileLayerMixin = { + mixins: [GridLayerMixin], + props: { + tms: { + type: Boolean, + default: false, + }, + subdomains: { + type: [String, Array], + default: 'abc', + validator: function (prop) { + if (typeof prop === 'string') { return true; } + // Validates array that array only contains only strings + if (Array.isArray(prop)) { + return prop.every(function (subdomain) { return typeof subdomain === 'string'; }); + } + return false; + }, + }, + detectRetina: { + type: Boolean, + default: false, + }, + }, + mounted: function mounted() { + this.tileLayerOptions = Object.assign({}, this.gridLayerOptions, + {tms: this.tms, + subdomains: this.subdomains, + detectRetina: this.detectRetina}); + }, + render: function render() { + return null; + }, + }; + + var TileLayerWMS = { + mixins: [TileLayerMixin], + props: { + layers: { + type: String, + default: '' + }, + styles: { + type: String, + default: '' + }, + format: { + type: String, + default: 'image/jpeg' + }, + transparent: { + type: Boolean, + custom: false + }, + version: { + type: String, + default: '1.1.1' + }, + crs: { + default: null + }, + upperCase: { + type: Boolean, + default: false + } + }, + mounted: function mounted () { + this.tileLayerWMSOptions = Object.assign({}, this.tileLayerOptions, + {layers: this.layers, + styles: this.styles, + format: this.format, + transparent: this.transparent, + version: this.version, + crs: this.crs, + upperCase: this.upperCase}); + } + }; + + // + + /** + * Draw a path in the shape of a circle around a center positioned at `latLng` coordinates + */ + var script = { + name: 'LCircle', + mixins: [CircleMixin, Options], + props: { + latLng: { + type: [Object, Array], + default: function () { return [0, 0]; }, + }, + }, + data: function data() { + return { + ready: false, + }; + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.circleOptions, this); + this.mapObject = leaflet.circle(this.latLng, options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.ready = true; + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + methods: {}, + }; + + function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) { + if (typeof shadowMode !== 'boolean') { + createInjectorSSR = createInjector; + createInjector = shadowMode; + shadowMode = false; + } + // Vue.extend constructor export interop. + var options = typeof script === 'function' ? script.options : script; + // render functions + if (template && template.render) { + options.render = template.render; + options.staticRenderFns = template.staticRenderFns; + options._compiled = true; + // functional template + if (isFunctionalTemplate) { + options.functional = true; + } + } + // scopedId + if (scopeId) { + options._scopeId = scopeId; + } + var hook; + if (moduleIdentifier) { + // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__; + } + // inject component styles + if (style) { + style.call(this, createInjectorSSR(context)); + } + // register component module identifier for async chunk inference + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier); + } + }; + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook; + } + else if (style) { + hook = shadowMode + ? function (context) { + style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot)); + } + : function (context) { + style.call(this, createInjector(context)); + }; + } + if (hook) { + if (options.functional) { + // register for functional component in vue file + var originalRender = options.render; + options.render = function renderWithStyleInjection(h, context) { + hook.call(context); + return originalRender(h, context); + }; + } + else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate; + options.beforeCreate = existing ? [].concat(existing, hook) : [hook]; + } + } + return script; + } + + /* script */ + var __vue_script__ = script; + + /* template */ + var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{"display":"none"}},[(_vm.ready)?_vm._t("default"):_vm._e()],2)}; + var __vue_staticRenderFns__ = []; + + /* style */ + var __vue_inject_styles__ = undefined; + /* scoped */ + var __vue_scope_id__ = undefined; + /* module identifier */ + var __vue_module_identifier__ = undefined; + /* functional template */ + var __vue_is_functional_template__ = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__ = /*#__PURE__*/normalizeComponent( + { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ }, + __vue_inject_styles__, + __vue_script__, + __vue_scope_id__, + __vue_is_functional_template__, + __vue_module_identifier__, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * A marker in the shape of a circle + */ + var script$1 = { + name: 'LCircleMarker', + mixins: [CircleMixin, Options], + props: { + latLng: { + type: [Object, Array], + default: function () { return [0, 0]; }, + }, + pane: { + type: String, + default: 'markerPane', + }, + }, + data: function data() { + return { + ready: false, + }; + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.circleOptions, this); + this.mapObject = leaflet.circleMarker(this.latLng, options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.ready = true; + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + }; + + /* script */ + var __vue_script__$1 = script$1; + + /* template */ + var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{"display":"none"}},[(_vm.ready)?_vm._t("default"):_vm._e()],2)}; + var __vue_staticRenderFns__$1 = []; + + /* style */ + var __vue_inject_styles__$1 = undefined; + /* scoped */ + var __vue_scope_id__$1 = undefined; + /* module identifier */ + var __vue_module_identifier__$1 = undefined; + /* functional template */ + var __vue_is_functional_template__$1 = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$1 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 }, + __vue_inject_styles__$1, + __vue_script__$1, + __vue_scope_id__$1, + __vue_is_functional_template__$1, + __vue_module_identifier__$1, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Add any custom component as a leaflet control + */ + var script$2 = { + name: 'LControl', + mixins: [ControlMixin, Options], + props: { + disableClickPropagation: { + type: Boolean, + custom: true, + default: true, + }, + disableScrollPropagation: { + type: Boolean, + custom: true, + default: false, + } + }, + mounted: function mounted() { + var this$1 = this; + + var LControl = leaflet.Control.extend({ + element: undefined, + onAdd: function onAdd() { + return this.element; + }, + setElement: function setElement(el) { + this.element = el; + }, + }); + var options = optionsMerger(this.controlOptions, this); + this.mapObject = new LControl(options); + propsBinder(this, this.mapObject, this.$options.props); + this.parentContainer = findRealParent(this.$parent); + this.mapObject.setElement(this.$el); + if (this.disableClickPropagation) { + leaflet.DomEvent.disableClickPropagation(this.$el); + } + if (this.disableScrollPropagation) { + leaflet.DomEvent.disableScrollPropagation(this.$el); + } + this.mapObject.addTo(this.parentContainer.mapObject); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + }; + + /* script */ + var __vue_script__$2 = script$2; + + /* template */ + var __vue_render__$2 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t("default")],2)}; + var __vue_staticRenderFns__$2 = []; + + /* style */ + var __vue_inject_styles__$2 = undefined; + /* scoped */ + var __vue_scope_id__$2 = undefined; + /* module identifier */ + var __vue_module_identifier__$2 = undefined; + /* functional template */ + var __vue_is_functional_template__$2 = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$2 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 }, + __vue_inject_styles__$2, + __vue_script__$2, + __vue_scope_id__$2, + __vue_is_functional_template__$2, + __vue_module_identifier__$2, + false, + undefined, + undefined, + undefined + ); + + /** + * Add any custom component as a leaflet control-attribution + */ + var script$3 = { + name: 'LControlAttribution', + mixins: [ControlMixin, Options], + props: { + prefix: { + type: [String, Boolean], + default: null, + }, + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger( + Object.assign({}, this.controlOptions, + {prefix: this.prefix}), + this + ); + this.mapObject = leaflet.control.attribution(options); + propsBinder(this, this.mapObject, this.$options.props); + this.mapObject.addTo(this.$parent.mapObject); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + render: function render() { + return null; + }, + }; + + /* script */ + var __vue_script__$3 = script$3; + + /* template */ + + /* style */ + var __vue_inject_styles__$3 = undefined; + /* scoped */ + var __vue_scope_id__$3 = undefined; + /* module identifier */ + var __vue_module_identifier__$3 = undefined; + /* functional template */ + var __vue_is_functional_template__$3 = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$3 = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$3, + __vue_script__$3, + __vue_scope_id__$3, + __vue_is_functional_template__$3, + __vue_module_identifier__$3, + false, + undefined, + undefined, + undefined + ); + + /** + * Add any custom component as a leaflet control-layers + */ + var script$4 = { + name: 'LControlLayers', + mixins: [ControlMixin, Options], + props: { + collapsed: { + type: Boolean, + default: true, + }, + autoZIndex: { + type: Boolean, + default: true, + }, + hideSingleBase: { + type: Boolean, + default: false, + }, + sortLayers: { + type: Boolean, + default: false, + }, + sortFunction: { + type: Function, + default: undefined, + }, + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger( + Object.assign({}, this.controlOptions, + {collapsed: this.collapsed, + autoZIndex: this.autoZIndex, + hideSingleBase: this.hideSingleBase, + sortLayers: this.sortLayers, + sortFunction: this.sortFunction}), + this + ); + this.mapObject = leaflet.control.layers(null, null, options); + propsBinder(this, this.mapObject, this.$options.props); + this.$parent.registerLayerControl(this); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + methods: { + addLayer: function addLayer(layer) { + if (layer.layerType === 'base') { + this.mapObject.addBaseLayer(layer.mapObject, layer.name); + } else if (layer.layerType === 'overlay') { + this.mapObject.addOverlay(layer.mapObject, layer.name); + } + }, + removeLayer: function removeLayer(layer) { + this.mapObject.removeLayer(layer.mapObject); + }, + }, + render: function render() { + return null; + }, + }; + + /* script */ + var __vue_script__$4 = script$4; + + /* template */ + + /* style */ + var __vue_inject_styles__$4 = undefined; + /* scoped */ + var __vue_scope_id__$4 = undefined; + /* module identifier */ + var __vue_module_identifier__$4 = undefined; + /* functional template */ + var __vue_is_functional_template__$4 = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$4 = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$4, + __vue_script__$4, + __vue_scope_id__$4, + __vue_is_functional_template__$4, + __vue_module_identifier__$4, + false, + undefined, + undefined, + undefined + ); + + /** + * Add any custom component as a leaflet control-scale + */ + var script$5 = { + name: 'LControlScale', + mixins: [ControlMixin, Options], + props: { + maxWidth: { + type: Number, + default: 100, + }, + metric: { + type: Boolean, + default: true, + }, + imperial: { + type: Boolean, + default: true, + }, + updateWhenIdle: { + type: Boolean, + default: false, + }, + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger( + Object.assign({}, this.controlOptions, + {maxWidth: this.maxWidth, + metric: this.metric, + imperial: this.imperial, + updateWhenIdle: this.updateWhenIdle}), + this + ); + this.mapObject = leaflet.control.scale(options); + propsBinder(this, this.mapObject, this.$options.props); + this.mapObject.addTo(this.$parent.mapObject); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + render: function render() { + return null; + }, + }; + + /* script */ + var __vue_script__$5 = script$5; + + /* template */ + + /* style */ + var __vue_inject_styles__$5 = undefined; + /* scoped */ + var __vue_scope_id__$5 = undefined; + /* module identifier */ + var __vue_module_identifier__$5 = undefined; + /* functional template */ + var __vue_is_functional_template__$5 = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$5 = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$5, + __vue_script__$5, + __vue_scope_id__$5, + __vue_is_functional_template__$5, + __vue_module_identifier__$5, + false, + undefined, + undefined, + undefined + ); + + /** + * Add any custom component as a leaflet control-zoom + */ + var script$6 = { + name: 'LControlZoom', + mixins: [ControlMixin, Options], + props: { + zoomInText: { + type: String, + default: '+', + }, + zoomInTitle: { + type: String, + default: 'Zoom in', + }, + zoomOutText: { + type: String, + default: '-', + }, + zoomOutTitle: { + type: String, + default: 'Zoom out', + }, + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger( + Object.assign({}, this.controlOptions, + {zoomInText: this.zoomInText, + zoomInTitle: this.zoomInTitle, + zoomOutText: this.zoomOutText, + zoomOutTitle: this.zoomOutTitle}), + this + ); + this.mapObject = leaflet.control.zoom(options); + propsBinder(this, this.mapObject, this.$options.props); + this.mapObject.addTo(this.$parent.mapObject); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + render: function render() { + return null; + }, + }; + + /* script */ + var __vue_script__$6 = script$6; + + /* template */ + + /* style */ + var __vue_inject_styles__$6 = undefined; + /* scoped */ + var __vue_scope_id__$6 = undefined; + /* module identifier */ + var __vue_module_identifier__$6 = undefined; + /* functional template */ + var __vue_is_functional_template__$6 = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$6 = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$6, + __vue_script__$6, + __vue_scope_id__$6, + __vue_is_functional_template__$6, + __vue_module_identifier__$6, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Group together elements of the maps including: markers, geoJSON, polylines and polygon, tooltip and popup. + */ + var script$7 = { + name: 'LFeatureGroup', + mixins: [LayerGroupMixin, Options], + data: function data() { + return { + ready: false, + }; + }, + mounted: function mounted() { + var this$1 = this; + + this.mapObject = leaflet.featureGroup(); + propsBinder(this, this.mapObject, this.$options.props); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + this.ready = true; + this.parentContainer = findRealParent(this.$parent); + if (this.visible) { + this.parentContainer.addLayer(this); + } + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + }; + + /* script */ + var __vue_script__$7 = script$7; + + /* template */ + var __vue_render__$3 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{"display":"none"}},[(_vm.ready)?_vm._t("default"):_vm._e()],2)}; + var __vue_staticRenderFns__$3 = []; + + /* style */ + var __vue_inject_styles__$7 = undefined; + /* scoped */ + var __vue_scope_id__$7 = undefined; + /* module identifier */ + var __vue_module_identifier__$7 = undefined; + /* functional template */ + var __vue_is_functional_template__$7 = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$7 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 }, + __vue_inject_styles__$7, + __vue_script__$7, + __vue_scope_id__$7, + __vue_is_functional_template__$7, + __vue_module_identifier__$7, + false, + undefined, + undefined, + undefined + ); + + /** + * Easily display a geo-json on the map + */ + var script$8 = { + name: 'LGeoJson', + mixins: [LayerGroupMixin, Options], + props: { + geojson: { + type: [Object, Array], + custom: true, + default: function () { return ({}); }, + }, + options: { + type: Object, + custom: true, + default: function () { return ({}); }, + }, + optionsStyle: { + type: [Object, Function], + custom: true, + default: null, + }, + }, + computed: { + mergedOptions: function mergedOptions() { + return optionsMerger( + Object.assign({}, this.layerGroupOptions, + {style: this.optionsStyle}), + this + ); + }, + }, + mounted: function mounted() { + var this$1 = this; + + this.mapObject = leaflet.geoJSON(this.geojson, this.mergedOptions); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + beforeDestroy: function beforeDestroy() { + this.parentContainer.mapObject.removeLayer(this.mapObject); + }, + methods: { + setGeojson: function setGeojson(newVal) { + this.mapObject.clearLayers(); + this.mapObject.addData(newVal); + }, + getGeoJSONData: function getGeoJSONData() { + return this.mapObject.toGeoJSON(); + }, + getBounds: function getBounds() { + return this.mapObject.getBounds(); + }, + setOptions: function setOptions$1(newVal, oldVal) { + this.mapObject.clearLayers(); + leaflet.setOptions(this.mapObject, this.mergedOptions); + this.mapObject.addData(this.geojson); + }, + setOptionsStyle: function setOptionsStyle(newVal, oldVal) { + this.mapObject.setStyle(newVal); + }, + }, + render: function render() { + return null; + }, + }; + + /* script */ + var __vue_script__$8 = script$8; + + /* template */ + + /* style */ + var __vue_inject_styles__$8 = undefined; + /* scoped */ + var __vue_scope_id__$8 = undefined; + /* module identifier */ + var __vue_module_identifier__$8 = undefined; + /* functional template */ + var __vue_is_functional_template__$8 = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$8 = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$8, + __vue_script__$8, + __vue_scope_id__$8, + __vue_is_functional_template__$8, + __vue_module_identifier__$8, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Creates a map layer where each tile is an instantiated Vue component. + * Each tile component is given `coords` props by `l-grid-layer` to indicate + * the zoom level and position of the tile + * (see https://leafletjs.com/examples/extending/extending-2-layers.html#lgridlayer-and-dom-elements). + */ + var script$9 = { + name: 'LGridLayer', + mixins: [GridLayerMixin, Options], + + props: { + tileComponent: { + type: Object, + custom: true, + required: true, + }, + }, + + data: function data() { + return { + tileComponents: {}, + }; + }, + + computed: { + TileConstructor: function TileConstructor() { + return Vue.extend(this.tileComponent); + }, + }, + + mounted: function mounted() { + var this$1 = this; + + var GLayer = leaflet.GridLayer.extend({}); + var options = optionsMerger(this.gridLayerOptions, this); + this.mapObject = new GLayer(options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + this.mapObject.on('tileunload', this.onUnload, this); + propsBinder(this, this.mapObject, this.$options.props); + this.mapObject.createTile = this.createTile; + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + beforeDestroy: function beforeDestroy() { + this.parentContainer.removeLayer(this.mapObject); + this.mapObject.off('tileunload', this.onUnload); + this.mapObject = null; + }, + + methods: { + createTile: function createTile(coords) { + var div = leaflet.DomUtil.create('div'); + var dummy = leaflet.DomUtil.create('div'); + div.appendChild(dummy); + + var tileInstance = new this.TileConstructor({ + el: dummy, + parent: this, + propsData: { + coords: coords, + }, + }); + + var key = this.mapObject._tileCoordsToKey(coords); + this.tileComponents[key] = tileInstance; + + return div; + }, + + onUnload: function onUnload(e) { + var key = this.mapObject._tileCoordsToKey(e.coords); + if (typeof this.tileComponents[key] !== 'undefined') { + this.tileComponents[key].$destroy(); + this.tileComponents[key].$el.remove(); + delete this.tileComponents[key]; + } + }, + + setTileComponent: function setTileComponent(newVal) { + this.mapObject.redraw(); + }, + }, + }; + + /* script */ + var __vue_script__$9 = script$9; + + /* template */ + var __vue_render__$4 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}; + var __vue_staticRenderFns__$4 = []; + + /* style */ + var __vue_inject_styles__$9 = undefined; + /* scoped */ + var __vue_scope_id__$9 = undefined; + /* module identifier */ + var __vue_module_identifier__$9 = undefined; + /* functional template */ + var __vue_is_functional_template__$9 = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$9 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 }, + __vue_inject_styles__$9, + __vue_script__$9, + __vue_scope_id__$9, + __vue_is_functional_template__$9, + __vue_module_identifier__$9, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Easy and reactive way to configure the icon of a marker + */ + var script$a = { + name: 'LIcon', + props: { + iconUrl: { + type: String, + custom: true, + default: null, + }, + iconRetinaUrl: { + type: String, + custom: true, + default: null, + }, + iconSize: { + type: [Object, Array], + custom: true, + default: null, + }, + iconAnchor: { + type: [Object, Array], + custom: true, + default: null, + }, + popupAnchor: { + type: [Object, Array], + custom: true, + default: function () { return [0, 0]; }, + }, + tooltipAnchor: { + type: [Object, Array], + custom: true, + default: function () { return [0, 0]; }, + }, + shadowUrl: { + type: String, + custom: true, + default: null, + }, + shadowRetinaUrl: { + type: String, + custom: true, + default: null, + }, + shadowSize: { + type: [Object, Array], + custom: true, + default: null, + }, + shadowAnchor: { + type: [Object, Array], + custom: true, + default: null, + }, + bgPos: { + type: [Object, Array], + custom: true, + default: function () { return [0, 0]; }, + }, + className: { + type: String, + custom: true, + default: '', + }, + options: { + type: Object, + custom: true, + default: function () { return ({}); }, + }, + }, + + data: function data() { + return { + parentContainer: null, + observer: null, + recreationNeeded: false, + swapHtmlNeeded: false, + }; + }, + + mounted: function mounted() { + var this$1 = this; + + this.parentContainer = findRealParent(this.$parent); + if (!this.parentContainer) { + throw new Error('No parent container with mapObject found for LIcon'); + } + propsBinder(this, this.parentContainer.mapObject, this.$options.props); + + this.observer = new MutationObserver(function () { + this$1.scheduleHtmlSwap(); + }); + this.observer.observe(this.$el, { + attributes: true, + childList: true, + characterData: true, + subtree: true, + }); + this.scheduleCreateIcon(); + }, + + beforeDestroy: function beforeDestroy() { + if (this.parentContainer.mapObject) { + this.parentContainer.mapObject.setIcon(this.parentContainer.$props.icon); + } + + this.observer.disconnect(); + }, + + methods: { + scheduleCreateIcon: function scheduleCreateIcon() { + this.recreationNeeded = true; + + this.$nextTick(this.createIcon); + }, + + scheduleHtmlSwap: function scheduleHtmlSwap() { + this.htmlSwapNeeded = true; + + this.$nextTick(this.createIcon); + }, + + createIcon: function createIcon() { + // If only html of a divIcon changed, we can just replace the DOM without the need of recreating the whole icon + if ( + this.htmlSwapNeeded && + !this.recreationNeeded && + this.iconObject && + this.parentContainer.mapObject.getElement() + ) { + this.parentContainer.mapObject.getElement().innerHTML = this.$el.innerHTML; + + this.htmlSwapNeeded = false; + return; + } + + if (!this.recreationNeeded) { + return; + } + + if (this.iconObject) { + leaflet.DomEvent.off(this.iconObject, this.$listeners); + } + + var options = optionsMerger( + { + iconUrl: this.iconUrl, + iconRetinaUrl: this.iconRetinaUrl, + iconSize: this.iconSize, + iconAnchor: this.iconAnchor, + popupAnchor: this.popupAnchor, + tooltipAnchor: this.tooltipAnchor, + shadowUrl: this.shadowUrl, + shadowRetinaUrl: this.shadowRetinaUrl, + shadowSize: this.shadowSize, + shadowAnchor: this.shadowAnchor, + bgPos: this.bgPos, + className: this.className, + html: this.$el.innerHTML || this.html, + }, + this + ); + + if (options.html) { + this.iconObject = leaflet.divIcon(options); + } else { + this.iconObject = leaflet.icon(options); + } + + leaflet.DomEvent.on(this.iconObject, this.$listeners); + + this.parentContainer.mapObject.setIcon(this.iconObject); + + this.recreationNeeded = false; + this.htmlSwapNeeded = false; + }, + + setIconUrl: function setIconUrl() { + this.scheduleCreateIcon(); + }, + setIconRetinaUrl: function setIconRetinaUrl() { + this.scheduleCreateIcon(); + }, + setIconSize: function setIconSize() { + this.scheduleCreateIcon(); + }, + setIconAnchor: function setIconAnchor() { + this.scheduleCreateIcon(); + }, + setPopupAnchor: function setPopupAnchor() { + this.scheduleCreateIcon(); + }, + setTooltipAnchor: function setTooltipAnchor() { + this.scheduleCreateIcon(); + }, + setShadowUrl: function setShadowUrl() { + this.scheduleCreateIcon(); + }, + setShadowRetinaUrl: function setShadowRetinaUrl() { + this.scheduleCreateIcon(); + }, + setShadowAnchor: function setShadowAnchor() { + this.scheduleCreateIcon(); + }, + setBgPos: function setBgPos() { + this.scheduleCreateIcon(); + }, + setClassName: function setClassName() { + this.scheduleCreateIcon(); + }, + setHtml: function setHtml() { + this.scheduleCreateIcon(); + }, + }, + + render: function render() { + return null; + }, + }; + + /* script */ + var __vue_script__$a = script$a; + + /* template */ + var __vue_render__$5 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t("default")],2)}; + var __vue_staticRenderFns__$5 = []; + + /* style */ + var __vue_inject_styles__$a = undefined; + /* scoped */ + var __vue_scope_id__$a = undefined; + /* module identifier */ + var __vue_module_identifier__$a = undefined; + /* functional template */ + var __vue_is_functional_template__$a = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$a = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 }, + __vue_inject_styles__$a, + __vue_script__$a, + __vue_scope_id__$a, + __vue_is_functional_template__$a, + __vue_module_identifier__$a, + false, + undefined, + undefined, + undefined + ); + + /** + * Set a default icon + * @deprecated since version 2.0 + */ + var script$b = { + name: 'LIconDefault', + props: { + imagePath: { + type: String, + custom: true, + default: '', + }, + }, + mounted: function mounted() { + leaflet.Icon.Default.imagePath = this.imagePath; + propsBinder(this, {}, this.$options.props); + }, + methods: { + setImagePath: function setImagePath(newVal) { + leaflet.Icon.Default.imagePath = newVal; + }, + }, + render: function render() { + return null; + }, + }; + + /* script */ + var __vue_script__$b = script$b; + + /* template */ + + /* style */ + var __vue_inject_styles__$b = undefined; + /* scoped */ + var __vue_scope_id__$b = undefined; + /* module identifier */ + var __vue_module_identifier__$b = undefined; + /* functional template */ + var __vue_is_functional_template__$b = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$b = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$b, + __vue_script__$b, + __vue_scope_id__$b, + __vue_is_functional_template__$b, + __vue_module_identifier__$b, + false, + undefined, + undefined, + undefined + ); + + /** + * Easily display a image overlay. + */ + var script$c = { + name: 'LImageOverlay', + mixins: [ImageOverlayMixin, Options], + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.imageOverlayOptions, this); + this.mapObject = leaflet.imageOverlay(this.url, this.bounds, options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + render: function render() { + return null; + }, + }; + + /* script */ + var __vue_script__$c = script$c; + + /* template */ + + /* style */ + var __vue_inject_styles__$c = undefined; + /* scoped */ + var __vue_scope_id__$c = undefined; + /* module identifier */ + var __vue_module_identifier__$c = undefined; + /* functional template */ + var __vue_is_functional_template__$c = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$c = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$c, + __vue_script__$c, + __vue_scope_id__$c, + __vue_is_functional_template__$c, + __vue_module_identifier__$c, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Group together elements of the maps including: markers, geoJSON, polylines and polygon, tooltip and popup. + */ + var script$d = { + name: 'LLayerGroup', + mixins: [LayerGroupMixin, Options], + data: function data() { + return { + ready: false, + }; + }, + mounted: function mounted() { + var this$1 = this; + + this.mapObject = leaflet.layerGroup(); + propsBinder(this, this.mapObject, this.$options.props); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + this.ready = true; + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + }; + + /* script */ + var __vue_script__$d = script$d; + + /* template */ + var __vue_render__$6 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{"display":"none"}},[(_vm.ready)?_vm._t("default"):_vm._e()],2)}; + var __vue_staticRenderFns__$6 = []; + + /* style */ + var __vue_inject_styles__$d = undefined; + /* scoped */ + var __vue_scope_id__$d = undefined; + /* module identifier */ + var __vue_module_identifier__$d = undefined; + /* functional template */ + var __vue_is_functional_template__$d = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$d = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 }, + __vue_inject_styles__$d, + __vue_script__$d, + __vue_scope_id__$d, + __vue_is_functional_template__$d, + __vue_module_identifier__$d, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Base component, contains and wrap all the other components. + */ + var script$e = { + name: 'LMap', + mixins: [Options], + props: { + /** + * The center of the map, supports .sync modifier + */ + center: { + type: [Object, Array], + custom: true, + default: function () { return [0, 0]; }, + }, + /** + * The bounds of the map, supports .sync modifier + */ + bounds: { + type: [Array, Object], + custom: true, + default: null, + }, + /** + * The max bounds of the map + */ + maxBounds: { + type: [Array, Object], + default: null, + }, + /** + * The zoom of the map, supports .sync modifier + */ + zoom: { + type: Number, + custom: true, + default: 0, + }, + /** + * The minZoom of the map + */ + minZoom: { + type: Number, + default: null, + }, + /** + * The maxZoom of the map + */ + maxZoom: { + type: Number, + default: null, + }, + /** + * The paddingBottomRight of the map + */ + paddingBottomRight: { + type: Array, + custom: true, + default: null, + }, + /** + * The paddingTopLeft of the map + */ + paddingTopLeft: { + type: Array, + custom: true, + default: null, + }, + /** + * The padding of the map + */ + padding: { + type: Array, + custom: true, + default: null, + }, + /** + * The worldCopyJump option for the map + */ + worldCopyJump: { + type: Boolean, + default: false, + }, + /** + * The crs option for the map + * @values CRS.EPSG3857 + */ + crs: { + type: Object, + custom: true, + default: function () { return leaflet.CRS.EPSG3857; }, + }, + maxBoundsViscosity: { + type: Number, + default: null, + }, + inertia: { + type: Boolean, + default: null, + }, + inertiaDeceleration: { + type: Number, + default: null, + }, + inertiaMaxSpeed: { + type: Number, + default: null, + }, + easeLinearity: { + type: Number, + default: null, + }, + zoomAnimation: { + type: Boolean, + default: null, + }, + zoomAnimationThreshold: { + type: Number, + default: null, + }, + fadeAnimation: { + type: Boolean, + default: null, + }, + markerZoomAnimation: { + type: Boolean, + default: null, + }, + noBlockingAnimations: { + type: Boolean, + default: false, + }, + }, + data: function data() { + return { + ready: false, + lastSetCenter: this.center ? leaflet.latLng(this.center) : null, + lastSetBounds: this.bounds ? leaflet.latLngBounds(this.bounds) : null, + layerControl: undefined, + layersToAdd: [], + layersInControl: [], + }; + }, + computed: { + fitBoundsOptions: function fitBoundsOptions() { + var options = { + animate: this.noBlockingAnimations ? false : null, + }; + if (this.padding) { + options.padding = this.padding; + } else { + if (this.paddingBottomRight) { + options.paddingBottomRight = this.paddingBottomRight; + } + if (this.paddingTopLeft) { + options.paddingTopLeft = this.paddingTopLeft; + } + } + return options; + }, + }, + beforeDestroy: function beforeDestroy() { + if (this.debouncedMoveEndHandler) { + this.debouncedMoveEndHandler.cancel(); + } + + if (this.mapObject) { + this.mapObject.remove(); + } + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger( + { + minZoom: this.minZoom, + maxZoom: this.maxZoom, + maxBounds: this.maxBounds, + maxBoundsViscosity: this.maxBoundsViscosity, + worldCopyJump: this.worldCopyJump, + crs: this.crs, + center: this.center, + zoom: this.zoom, + inertia: this.inertia, + inertiaDeceleration: this.inertiaDeceleration, + inertiaMaxSpeed: this.inertiaMaxSpeed, + easeLinearity: this.easeLinearity, + zoomAnimation: this.zoomAnimation, + zoomAnimationThreshold: this.zoomAnimationThreshold, + fadeAnimation: this.fadeAnimation, + markerZoomAnimation: this.markerZoomAnimation, + }, + this + ); + this.mapObject = leaflet.map(this.$el, options); + if (this.bounds) { + this.fitBounds(this.bounds); + } + this.debouncedMoveEndHandler = debounce(this.moveEndHandler, 100); + this.mapObject.on('moveend', this.debouncedMoveEndHandler); + this.mapObject.on('overlayadd', this.overlayAddHandler); + this.mapObject.on('overlayremove', this.overlayRemoveHandler); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.ready = true; + /** + * DEPRECATED event + * @deprecated + */ + this.$emit('leaflet:load'); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + methods: { + registerLayerControl: function registerLayerControl(lControlLayers) { + var this$1 = this; + + this.layerControl = lControlLayers; + this.mapObject.addControl(lControlLayers.mapObject); + this.layersToAdd.forEach(function (layer) { + this$1.layerControl.addLayer(layer); + }); + this.layersToAdd = []; + }, + addLayer: function addLayer(layer, alreadyAdded) { + if (layer.layerType !== undefined) { + if (this.layerControl === undefined) { + this.layersToAdd.push(layer); + } else { + var exist = this.layersInControl.find( + function (l) { return l.mapObject._leaflet_id === layer.mapObject._leaflet_id; } + ); + if (!exist) { + this.layerControl.addLayer(layer); + this.layersInControl.push(layer); + } + } + } + if (!alreadyAdded && layer.visible !== false) { + this.mapObject.addLayer(layer.mapObject); + } + }, + hideLayer: function hideLayer(layer) { + this.mapObject.removeLayer(layer.mapObject); + }, + removeLayer: function removeLayer(layer, alreadyRemoved) { + if (layer.layerType !== undefined) { + if (this.layerControl === undefined) { + this.layersToAdd = this.layersToAdd.filter( + function (l) { return l.name !== layer.name; } + ); + } else { + this.layerControl.removeLayer(layer); + this.layersInControl = this.layersInControl.filter( + function (l) { return l.mapObject._leaflet_id !== layer.mapObject._leaflet_id; } + ); + } + } + if (!alreadyRemoved) { + this.mapObject.removeLayer(layer.mapObject); + } + }, + setZoom: function setZoom(newVal, oldVal) { + if (newVal === undefined || newVal === null) { return; } + this.mapObject.setZoom(newVal, { + animate: this.noBlockingAnimations ? false : null, + }); + this.cacheMapView(); + }, + setCenter: function setCenter(newVal, oldVal) { + if (newVal == null) { + return; + } + var newCenter = leaflet.latLng(newVal); + var oldCenter = this.lastSetCenter || this.mapObject.getCenter(); + if (oldCenter.lat !== newCenter.lat || oldCenter.lng !== newCenter.lng) { + this.lastSetCenter = newCenter; + this.mapObject.panTo(newCenter, { + animate: this.noBlockingAnimations ? false : null, + }); + this.cacheMapView(undefined, newCenter); + } + }, + setBounds: function setBounds(newVal, oldVal) { + if (!newVal) { + return; + } + var newBounds = leaflet.latLngBounds(newVal); + if (!newBounds.isValid()) { + return; + } + var oldBounds = this.lastSetBounds || this.mapObject.getBounds(); + var boundsChanged = !oldBounds.equals(newBounds, 0); // set maxMargin to 0 - check exact equals + if (boundsChanged) { + this.fitBounds(newBounds); + this.cacheMapView(newBounds); + } + }, + setPaddingBottomRight: function setPaddingBottomRight(newVal, oldVal) { + this.paddingBottomRight = newVal; + }, + setPaddingTopLeft: function setPaddingTopLeft(newVal, oldVal) { + this.paddingTopLeft = newVal; + }, + setPadding: function setPadding(newVal, oldVal) { + this.padding = newVal; + }, + setCrs: function setCrs(newVal, oldVal) { + var mapObject = this.mapObject, + prevBounds = mapObject.getBounds(); + mapObject.options.crs = newVal; + this.fitBounds(prevBounds, { animate: false }); + }, + fitBounds: function fitBounds(bounds, overrideOptions) { + this.mapObject.fitBounds(bounds, Object.assign({}, this.fitBoundsOptions, overrideOptions)); + }, + moveEndHandler: function moveEndHandler() { + /** + * Triggers when zoom is updated + * @type {number,string} + */ + this.$emit('update:zoom', this.mapObject.getZoom()); + var center = this.mapObject.getCenter(); + /** + * Triggers when center is updated + * @type {object,array} + */ + this.$emit('update:center', center); + var bounds = this.mapObject.getBounds(); + /** + * Triggers when bounds are updated + * @type {object} + */ + this.$emit('update:bounds', bounds); + }, + overlayAddHandler: function overlayAddHandler(e) { + var layer = this.layersInControl.find(function (l) { return l.name === e.name; }); + if (layer) { + layer.updateVisibleProp(true); + } + }, + overlayRemoveHandler: function overlayRemoveHandler(e) { + var layer = this.layersInControl.find(function (l) { return l.name === e.name; }); + if (layer) { + layer.updateVisibleProp(false); + } + }, + cacheMapView: function cacheMapView(bounds, center) { + // Cache the last values used to define the map view by mutating props. + this.lastSetBounds = bounds || this.mapObject.getBounds(); + this.lastSetCenter = center || this.lastSetBounds.getCenter(); + }, + }, + }; + + var isOldIE = typeof navigator !== 'undefined' && + /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase()); + function createInjector(context) { + return function (id, style) { return addStyle(id, style); }; + } + var HEAD; + var styles = {}; + function addStyle(id, css) { + var group = isOldIE ? css.media || 'default' : id; + var style = styles[group] || (styles[group] = { ids: new Set(), styles: [] }); + if (!style.ids.has(id)) { + style.ids.add(id); + var code = css.source; + if (css.map) { + // https://developer.chrome.com/devtools/docs/javascript-debugging + // this makes source maps inside style tags work properly in Chrome + code += '\n/*# sourceURL=' + css.map.sources[0] + ' */'; + // http://stackoverflow.com/a/26603875 + code += + '\n/*# sourceMappingURL=data:application/json;base64,' + + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + + ' */'; + } + if (!style.element) { + style.element = document.createElement('style'); + style.element.type = 'text/css'; + if (css.media) + { style.element.setAttribute('media', css.media); } + if (HEAD === undefined) { + HEAD = document.head || document.getElementsByTagName('head')[0]; + } + HEAD.appendChild(style.element); + } + if ('styleSheet' in style.element) { + style.styles.push(code); + style.element.styleSheet.cssText = style.styles + .filter(Boolean) + .join('\n'); + } + else { + var index = style.ids.size - 1; + var textNode = document.createTextNode(code); + var nodes = style.element.childNodes; + if (nodes[index]) + { style.element.removeChild(nodes[index]); } + if (nodes.length) + { style.element.insertBefore(textNode, nodes[index]); } + else + { style.element.appendChild(textNode); } + } + } + } + + /* script */ + var __vue_script__$e = script$e; + + /* template */ + var __vue_render__$7 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"vue2leaflet-map"},[(_vm.ready)?_vm._t("default"):_vm._e()],2)}; + var __vue_staticRenderFns__$7 = []; + + /* style */ + var __vue_inject_styles__$e = function (inject) { + if (!inject) { return } + inject("data-v-09f270aa_0", { source: ".vue2leaflet-map{height:100%;width:100%}", map: undefined, media: undefined }); + + }; + /* scoped */ + var __vue_scope_id__$e = undefined; + /* module identifier */ + var __vue_module_identifier__$e = undefined; + /* functional template */ + var __vue_is_functional_template__$e = false; + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$e = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$7, staticRenderFns: __vue_staticRenderFns__$7 }, + __vue_inject_styles__$e, + __vue_script__$e, + __vue_scope_id__$e, + __vue_is_functional_template__$e, + __vue_module_identifier__$e, + false, + createInjector, + undefined, + undefined + ); + + /** + * Marker component, lets you add and personalize markers on the map + */ + var script$f = { + name: 'LMarker', + mixins: [Layer, Options], + props: { + pane: { + type: String, + default: 'markerPane', + }, + draggable: { + type: Boolean, + custom: true, + default: false, + }, + latLng: { + type: [Object, Array], + custom: true, + default: null, + }, + icon: { + type: [Object], + custom: false, + default: function () { return new leaflet.Icon.Default(); }, + }, + opacity: { + type: Number, + custom: false, + default: 1.0, + }, + zIndexOffset: { + type: Number, + custom: false, + default: null, + }, + }, + data: function data() { + return { + ready: false, + }; + }, + beforeDestroy: function beforeDestroy() { + if (this.debouncedLatLngSync) { + this.debouncedLatLngSync.cancel(); + } + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger( + Object.assign({}, this.layerOptions, + {icon: this.icon, + zIndexOffset: this.zIndexOffset, + draggable: this.draggable, + opacity: this.opacity}), + this + ); + this.mapObject = leaflet.marker(this.latLng, options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + this.debouncedLatLngSync = debounce(this.latLngSync, 100); + this.mapObject.on('move', this.debouncedLatLngSync); + propsBinder(this, this.mapObject, this.$options.props); + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.ready = true; + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + methods: { + setDraggable: function setDraggable(newVal, oldVal) { + if (this.mapObject.dragging) { + newVal + ? this.mapObject.dragging.enable() + : this.mapObject.dragging.disable(); + } + }, + setLatLng: function setLatLng(newVal) { + if (newVal == null) { + return; + } + + if (this.mapObject) { + var oldLatLng = this.mapObject.getLatLng(); + var newLatLng = leaflet.latLng(newVal); + if ( + newLatLng.lat !== oldLatLng.lat || + newLatLng.lng !== oldLatLng.lng + ) { + this.mapObject.setLatLng(newLatLng); + } + } + }, + latLngSync: function latLngSync(event) { + this.$emit('update:latLng', event.latlng); + this.$emit('update:lat-lng', event.latlng); + }, + }, + render: function(h) { + if (this.ready && this.$slots.default) { + return h('div', { style: { display: 'none' } }, this.$slots.default); + } + return null; + }, + }; + + /* script */ + var __vue_script__$f = script$f; + + /* template */ + + /* style */ + var __vue_inject_styles__$f = undefined; + /* scoped */ + var __vue_scope_id__$f = undefined; + /* module identifier */ + var __vue_module_identifier__$f = undefined; + /* functional template */ + var __vue_is_functional_template__$f = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$f = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$f, + __vue_script__$f, + __vue_scope_id__$f, + __vue_is_functional_template__$f, + __vue_module_identifier__$f, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Easily draw a polygon on the map + */ + var script$g = { + name: 'LPolygon', + mixins: [Polygon, Options], + props: { + latLngs: { + type: Array, + default: function () { return []; }, + }, + }, + data: function data() { + return { + ready: false, + }; + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.polygonOptions, this); + this.mapObject = leaflet.polygon(this.latLngs, options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.ready = true; + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + }; + + /* script */ + var __vue_script__$g = script$g; + + /* template */ + var __vue_render__$8 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{"display":"none"}},[(_vm.ready)?_vm._t("default"):_vm._e()],2)}; + var __vue_staticRenderFns__$8 = []; + + /* style */ + var __vue_inject_styles__$g = undefined; + /* scoped */ + var __vue_scope_id__$g = undefined; + /* module identifier */ + var __vue_module_identifier__$g = undefined; + /* functional template */ + var __vue_is_functional_template__$g = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$g = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$8, staticRenderFns: __vue_staticRenderFns__$8 }, + __vue_inject_styles__$g, + __vue_script__$g, + __vue_scope_id__$g, + __vue_is_functional_template__$g, + __vue_module_identifier__$g, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Easily draw a polyline on the map + */ + var script$h = { + name: 'LPolyline', + mixins: [PolylineMixin, Options], + props: { + latLngs: { + type: Array, + default: function () { return []; }, + }, + }, + data: function data() { + return { + ready: false, + }; + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.polyLineOptions, this); + this.mapObject = leaflet.polyline(this.latLngs, options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.ready = true; + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + }; + + /* script */ + var __vue_script__$h = script$h; + + /* template */ + var __vue_render__$9 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{"display":"none"}},[(_vm.ready)?_vm._t("default"):_vm._e()],2)}; + var __vue_staticRenderFns__$9 = []; + + /* style */ + var __vue_inject_styles__$h = undefined; + /* scoped */ + var __vue_scope_id__$h = undefined; + /* module identifier */ + var __vue_module_identifier__$h = undefined; + /* functional template */ + var __vue_is_functional_template__$h = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$h = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$9, staticRenderFns: __vue_staticRenderFns__$9 }, + __vue_inject_styles__$h, + __vue_script__$h, + __vue_scope_id__$h, + __vue_is_functional_template__$h, + __vue_module_identifier__$h, + false, + undefined, + undefined, + undefined + ); + + /** + * Display a popup on the map + */ + var script$i = { + name: 'LPopup', + mixins: [Popper, Options], + props: { + latLng: { + type: [Object, Array], + default: function () { return []; }, + }, + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.popperOptions, this); + this.mapObject = leaflet.popup(options); + if (this.latLng !== undefined) { + this.mapObject.setLatLng(this.latLng); + } + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.mapObject.setContent(this.content || this.$el); + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.mapObject.bindPopup(this.mapObject); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + beforeDestroy: function beforeDestroy() { + if (this.parentContainer) { + if (this.parentContainer.unbindPopup) { + this.parentContainer.unbindPopup(); + } else if ( + this.parentContainer.mapObject && + this.parentContainer.mapObject.unbindPopup + ) { + this.parentContainer.mapObject.unbindPopup(); + } + } + }, + }; + + /* script */ + var __vue_script__$i = script$i; + + /* template */ + + /* style */ + var __vue_inject_styles__$i = undefined; + /* scoped */ + var __vue_scope_id__$i = undefined; + /* module identifier */ + var __vue_module_identifier__$i = undefined; + /* functional template */ + var __vue_is_functional_template__$i = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$i = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$i, + __vue_script__$i, + __vue_scope_id__$i, + __vue_is_functional_template__$i, + __vue_module_identifier__$i, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Easily draw a rectangle on the map + */ + var script$j = { + name: 'LRectangle', + mixins: [Polygon, Options], + props: { + bounds: { + default: function () { return [[0,0],[0,0]]; }, + validator: function (value) { return value && leaflet.latLngBounds(value).isValid(); }, + }, + }, + data: function data() { + return { + ready: false, + }; + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.polygonOptions, this); + this.mapObject = leaflet.rectangle(this.bounds, options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.ready = true; + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + }; + + /* script */ + var __vue_script__$j = script$j; + + /* template */ + var __vue_render__$a = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{"display":"none"}},[(_vm.ready)?_vm._t("default"):_vm._e()],2)}; + var __vue_staticRenderFns__$a = []; + + /* style */ + var __vue_inject_styles__$j = undefined; + /* scoped */ + var __vue_scope_id__$j = undefined; + /* module identifier */ + var __vue_module_identifier__$j = undefined; + /* functional template */ + var __vue_is_functional_template__$j = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$j = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$a, staticRenderFns: __vue_staticRenderFns__$a }, + __vue_inject_styles__$j, + __vue_script__$j, + __vue_scope_id__$j, + __vue_is_functional_template__$j, + __vue_module_identifier__$j, + false, + undefined, + undefined, + undefined + ); + + // + + /** + * Load tiles from a map server and display them accordingly to map zoom, center and size + */ + var script$k = { + name: 'LTileLayer', + mixins: [TileLayerMixin, Options], + props: { + url: { + type: String, + default: null, + }, + tileLayerClass: { + type: Function, + default: leaflet.tileLayer, + }, + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.tileLayerOptions, this); + this.mapObject = this.tileLayerClass(this.url, options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + }; + + /* script */ + var __vue_script__$k = script$k; + + /* template */ + var __vue_render__$b = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}; + var __vue_staticRenderFns__$b = []; + + /* style */ + var __vue_inject_styles__$k = undefined; + /* scoped */ + var __vue_scope_id__$k = undefined; + /* module identifier */ + var __vue_module_identifier__$k = undefined; + /* functional template */ + var __vue_is_functional_template__$k = false; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$k = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$b, staticRenderFns: __vue_staticRenderFns__$b }, + __vue_inject_styles__$k, + __vue_script__$k, + __vue_scope_id__$k, + __vue_is_functional_template__$k, + __vue_module_identifier__$k, + false, + undefined, + undefined, + undefined + ); + + /** + * Display a tooltip on the map + */ + var script$l = { + name: 'LTooltip', + mixins: [Popper, Options], + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.popperOptions, this); + this.mapObject = leaflet.tooltip(options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.mapObject.setContent(this.content || this.$el); + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.mapObject.bindTooltip(this.mapObject); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + beforeDestroy: function beforeDestroy() { + if (this.parentContainer) { + if (this.parentContainer.unbindTooltip) { + this.parentContainer.unbindTooltip(); + } else if ( + this.parentContainer.mapObject && + this.parentContainer.mapObject.unbindTooltip + ) { + this.parentContainer.mapObject.unbindTooltip(); + } + } + }, + }; + + /* script */ + var __vue_script__$l = script$l; + + /* template */ + + /* style */ + var __vue_inject_styles__$l = undefined; + /* scoped */ + var __vue_scope_id__$l = undefined; + /* module identifier */ + var __vue_module_identifier__$l = undefined; + /* functional template */ + var __vue_is_functional_template__$l = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$l = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$l, + __vue_script__$l, + __vue_scope_id__$l, + __vue_is_functional_template__$l, + __vue_module_identifier__$l, + false, + undefined, + undefined, + undefined + ); + + /** + * Display WMS services as tile layers on the map + */ + var script$m = { + name: 'LWMSTileLayer', + mixins: [TileLayerWMS, Options], + props: { + baseUrl: { + type: String, + default: null, + }, + }, + mounted: function mounted() { + var this$1 = this; + + var options = optionsMerger(this.tileLayerWMSOptions, this); + this.mapObject = leaflet.tileLayer.wms(this.baseUrl, options); + leaflet.DomEvent.on(this.mapObject, this.$listeners); + propsBinder(this, this.mapObject, this.$options.props); + this.parentContainer = findRealParent(this.$parent); + this.parentContainer.addLayer(this, !this.visible); + this.$nextTick(function () { + /** + * Triggers when the component is ready + * @type {object} + * @property {object} mapObject - reference to leaflet map object + */ + this$1.$emit('ready', this$1.mapObject); + }); + }, + }; + + /* script */ + var __vue_script__$m = script$m; + + /* template */ + + /* style */ + var __vue_inject_styles__$m = undefined; + /* scoped */ + var __vue_scope_id__$m = undefined; + /* module identifier */ + var __vue_module_identifier__$m = undefined; + /* functional template */ + var __vue_is_functional_template__$m = undefined; + /* style inject */ + + /* style inject SSR */ + + /* style inject shadow dom */ + + + + var __vue_component__$m = /*#__PURE__*/normalizeComponent( + {}, + __vue_inject_styles__$m, + __vue_script__$m, + __vue_scope_id__$m, + __vue_is_functional_template__$m, + __vue_module_identifier__$m, + false, + undefined, + undefined, + undefined + ); + + exports.CircleMixin = CircleMixin; + exports.ControlMixin = ControlMixin; + exports.GridLayerMixin = GridLayerMixin; + exports.ImageOverlayMixin = ImageOverlayMixin; + exports.InteractiveLayerMixin = InteractiveLayer; + exports.LCircle = __vue_component__; + exports.LCircleMarker = __vue_component__$1; + exports.LControl = __vue_component__$2; + exports.LControlAttribution = __vue_component__$3; + exports.LControlLayers = __vue_component__$4; + exports.LControlScale = __vue_component__$5; + exports.LControlZoom = __vue_component__$6; + exports.LFeatureGroup = __vue_component__$7; + exports.LGeoJson = __vue_component__$8; + exports.LGridLayer = __vue_component__$9; + exports.LIcon = __vue_component__$a; + exports.LIconDefault = __vue_component__$b; + exports.LImageOverlay = __vue_component__$c; + exports.LLayerGroup = __vue_component__$d; + exports.LMap = __vue_component__$e; + exports.LMarker = __vue_component__$f; + exports.LPolygon = __vue_component__$g; + exports.LPolyline = __vue_component__$h; + exports.LPopup = __vue_component__$i; + exports.LRectangle = __vue_component__$j; + exports.LTileLayer = __vue_component__$k; + exports.LTooltip = __vue_component__$l; + exports.LWMSTileLayer = __vue_component__$m; + exports.LayerGroupMixin = LayerGroupMixin; + exports.LayerMixin = Layer; + exports.OptionsMixin = Options; + exports.PathMixin = Path; + exports.PolygonMixin = Polygon; + exports.PolylineMixin = PolylineMixin; + exports.PopperMixin = Popper; + exports.TileLayerMixin = TileLayerMixin; + exports.TileLayerWMSMixin = TileLayerWMS; + exports.capitalizeFirstLetter = capitalizeFirstLetter; + exports.collectionCleaner = collectionCleaner; + exports.debounce = debounce; + exports.findRealParent = findRealParent; + exports.optionsMerger = optionsMerger; + exports.propsBinder = propsBinder; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/maps_utils/templates/maps_utils/includes/scripts.html b/maps_utils/templates/maps_utils/includes/scripts.html new file mode 100644 index 0000000000000000000000000000000000000000..61af1c488d87e6da4109bb2300d1f76925f305e0 --- /dev/null +++ b/maps_utils/templates/maps_utils/includes/scripts.html @@ -0,0 +1,8 @@ +{% load static %} + +<script src="{% static "maps_utils/vendor/leaflet@1.8.0/leaflet.min.js" %}"></script> +<script src="{% static "maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.min.js" %}"></script> +<script src="{% static "maps_utils/vendor/polylabel@1.0.2/polylabel.min.js" %}"></script> +<script src="{% static "maps_utils/vendor/vue2-leaflet@2.7.1/vue2-leaflet.min.js" %}"></script> + +<script src="{% static "maps_utils/geo-feature-collection.js" %}"></script> diff --git a/maps_utils/templates/maps_utils/includes/styles.html b/maps_utils/templates/maps_utils/includes/styles.html new file mode 100644 index 0000000000000000000000000000000000000000..8535d7204a988a4263f1a8cb96a5259558f3d661 --- /dev/null +++ b/maps_utils/templates/maps_utils/includes/styles.html @@ -0,0 +1,6 @@ +{% load static %} + +<link rel="stylesheet" href="{% static "maps_utils/vendor/leaflet@1.8.0/leaflet.css" %}" /> +<link rel="stylesheet" href="{% static "maps_utils/vendor/leaflet.markercluster@1.5.3/leaflet.markercluster.css" %}" /> + +<link rel="stylesheet" href="{% static "maps_utils/geo-feature-collection.css" %}" />