terra-draw 0.0.1-alpha.59 → 0.0.1-alpha.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function e(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t},i.apply(this,arguments)}function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,o(t,e)}function o(t,e){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},o(t,e)}function r(t,e){void 0===e&&(e=9);var i=Math.pow(10,e);return Math.round(t*i)/i}var s=function(t,e){var i=e.x-t.x,n=e.y-t.y;return Math.sqrt(n*n+i*i)},a=function(t){var e=this,i=t.name,n=t.callback,o=t.unregister,r=t.register;this.name=void 0,this.callback=void 0,this.registered=!1,this.register=void 0,this.unregister=void 0,this.name=i,this.register=function(){e.registered||(e.registered=!0,r(n))},this.unregister=function(){e.register&&(e.registered=!1,o(n))},this.callback=n},l=/*#__PURE__*/function(){function t(t){this._minPixelDragDistance=void 0,this._minPixelDragDistanceDrawing=void 0,this._minPixelDragDistanceSelecting=void 0,this._lastDrawEvent=void 0,this._coordinatePrecision=void 0,this._heldKeys=new Set,this._listeners=[],this._dragState="not-dragging",this._currentModeCallbacks=void 0,this._minPixelDragDistance="number"==typeof t.minPixelDragDistance?t.minPixelDragDistance:1,this._minPixelDragDistanceSelecting="number"==typeof t.minPixelDragDistanceSelecting?t.minPixelDragDistanceSelecting:1,this._minPixelDragDistanceDrawing="number"==typeof t.minPixelDragDistanceDrawing?t.minPixelDragDistanceDrawing:8,this._coordinatePrecision="number"==typeof t.coordinatePrecision?t.coordinatePrecision:9}var e=t.prototype;return e.getButton=function(t){return-1===t.button?"neither":0===t.button?"left":1===t.button?"middle":2===t.button?"right":"neither"},e.getMapElementXYPosition=function(t){var e=this.getMapEventElement().getBoundingClientRect();return{containerX:t.clientX-e.left,containerY:t.clientY-e.top}},e.getDrawEventFromEvent=function(t){var e=this.getLngLatFromEvent(t);if(!e)return null;var i=e.lng,n=e.lat,o=this.getMapElementXYPosition(t),s=o.containerX,a=o.containerY,l=this.getButton(t),c=Array.from(this._heldKeys);return{lng:r(i,this._coordinatePrecision),lat:r(n,this._coordinatePrecision),containerX:s,containerY:a,button:l,heldKeys:c}},e.register=function(t){this._currentModeCallbacks=t,this._listeners=this.getAdapterListeners(),this._listeners.forEach(function(t){t.register()})},e.getCoordinatePrecision=function(){return this._coordinatePrecision},e.getAdapterListeners=function(){var t=this;return[new a({name:"pointerdown",callback:function(e){if(t._currentModeCallbacks&&e.isPrimary){var i=t.getDrawEventFromEvent(e);i&&(t._dragState="pre-dragging",t._lastDrawEvent=i)}},register:function(e){t.getMapEventElement().addEventListener("pointerdown",e)},unregister:function(e){t.getMapEventElement().removeEventListener("pointerdown",e)}}),new a({name:"pointermove",callback:function(e){if(t._currentModeCallbacks&&e.isPrimary){e.preventDefault();var i=t.getDrawEventFromEvent(e);if(i)if("not-dragging"===t._dragState)t._currentModeCallbacks.onMouseMove(i),t._lastDrawEvent=i;else if("pre-dragging"===t._dragState){if(!t._lastDrawEvent)return;var n={x:t._lastDrawEvent.containerX,y:t._lastDrawEvent.containerY},o={x:i.containerX,y:i.containerY},r=t._currentModeCallbacks.getState(),a=s(n,o);if("drawing"===r?a<t._minPixelDragDistanceDrawing:"selecting"===r?a<t._minPixelDragDistanceSelecting:a<t._minPixelDragDistance)return;t._dragState="dragging",t._currentModeCallbacks.onDragStart(i,function(e){t.setDraggability.bind(t)(e)})}else"dragging"===t._dragState&&t._currentModeCallbacks.onDrag(i,function(e){t.setDraggability.bind(t)(e)})}},register:function(e){t.getMapEventElement().addEventListener("pointermove",e)},unregister:function(e){t.getMapEventElement().removeEventListener("pointermove",e)}}),new a({name:"contextmenu",callback:function(e){if(t._currentModeCallbacks&&(e.preventDefault(),"not-dragging"===t._dragState||"pre-dragging"===t._dragState)){var i=t.getDrawEventFromEvent(e);if(!i)return;"neither"!==i.button&&t._currentModeCallbacks.onClick(i)}},register:function(e){t.getMapEventElement().addEventListener("contextmenu",e)},unregister:function(e){t.getMapEventElement().removeEventListener("contextmenu",e)}}),new a({name:"pointerup",callback:function(e){if(t._currentModeCallbacks&&e.target===t.getMapEventElement()&&e.isPrimary){var i=t.getDrawEventFromEvent(e);i&&("dragging"===t._dragState?t._currentModeCallbacks.onDragEnd(i,function(e){t.setDraggability.bind(t)(e)}):"not-dragging"!==t._dragState&&"pre-dragging"!==t._dragState||t._currentModeCallbacks.onClick(i),t._dragState="not-dragging",t.setDraggability(!0))}},register:function(e){t.getMapEventElement().addEventListener("pointerup",e)},unregister:function(e){t.getMapEventElement().removeEventListener("pointerup",e)}}),new a({name:"keyup",callback:function(e){t._currentModeCallbacks&&(t._heldKeys.delete(e.key),t._currentModeCallbacks.onKeyUp({key:e.key,heldKeys:Array.from(t._heldKeys),preventDefault:function(){return e.preventDefault()}}))},register:function(e){t.getMapEventElement().addEventListener("keyup",e)},unregister:function(e){t.getMapEventElement().removeEventListener("keyup",e)}}),new a({name:"keydown",callback:function(e){t._currentModeCallbacks&&(t._heldKeys.add(e.key),t._currentModeCallbacks.onKeyDown({key:e.key,heldKeys:Array.from(t._heldKeys),preventDefault:function(){return e.preventDefault()}}))},register:function(e){t.getMapEventElement().addEventListener("keydown",e)},unregister:function(e){t.getMapEventElement().removeEventListener("keydown",e)}})]},e.unregister=function(){this._listeners.forEach(function(t){t.unregister()}),this.clear()},t}(),c=/*#__PURE__*/function(t){function i(e){var i;if((i=t.call(this,e)||this)._cursor=void 0,i._cursorStyleSheet=void 0,i._lib=void 0,i._map=void 0,i._overlay=void 0,i._clickEventListener=void 0,i._mouseMoveEventListener=void 0,i.renderedFeatureIds=new Set,i._lib=e.lib,i._map=e.map,!i._map.getDiv().id)throw new Error("Google Map container div requires and id to be set");return i._coordinatePrecision="number"==typeof e.coordinatePrecision?e.coordinatePrecision:9,i}n(i,t);var o=i.prototype;return o.circlePath=function(t,e,i){var n=2*i;return"M "+t+" "+e+" m -"+i+", 0 a "+i+","+i+" 0 1,0 "+n+",0 a "+i+","+i+" 0 1,0 -"+n+",0"},o.register=function(e){var i=this;t.prototype.register.call(this,e),this._overlay=new this._lib.OverlayView,this._overlay.draw=function(){},this._overlay.onAdd=function(){i._currentModeCallbacks&&i._currentModeCallbacks.onReady&&i._currentModeCallbacks.onReady()},this._overlay.setMap(this._map),this._clickEventListener=this._map.data.addListener("click",function(t){var e=i._listeners.find(function(t){return"click"===t.name});e&&e.callback(t)}),this._mouseMoveEventListener=this._map.data.addListener("mousemove",function(t){var e=i._listeners.find(function(t){return"mousemove"===t.name});e&&e.callback(t)})},o.unregister=function(){var e,i,n;t.prototype.unregister.call(this),null==(e=this._clickEventListener)||e.remove(),null==(i=this._mouseMoveEventListener)||i.remove(),null==(n=this._overlay)||n.setMap(null),this._overlay=void 0},o.getLngLatFromEvent=function(t){if(!this._overlay)throw new Error("cannot get overlay");var e=this._map.getBounds();if(!e)return null;var i=e.getNorthEast(),n=e.getSouthWest(),o=new this._lib.LatLngBounds(n,i),r=this._map.getDiv(),s=t.clientX-r.getBoundingClientRect().left,a=t.clientY-r.getBoundingClientRect().top,l=new this._lib.Point(s,a),c=this._overlay.getProjection();if(!c)return null;var h=c.fromContainerPixelToLatLng(l);return h&&o.contains(h)?{lng:h.lng(),lat:h.lat()}:null},o.getMapEventElement=function(){return this._map.getDiv().querySelector('div[style*="z-index: 3;"]')},o.project=function(t,e){if(!this._overlay)throw new Error("cannot get overlay");if(void 0===this._map.getBounds())throw new Error("cannot get bounds");var i=this._overlay.getProjection();if(void 0===i)throw new Error("cannot get projection");var n=i.fromLatLngToContainerPixel(new this._lib.LatLng(e,t));if(null===n)throw new Error("cannot project coordinates");return{x:n.x,y:n.y}},o.unproject=function(t,e){if(!this._overlay)throw new Error("cannot get overlay");var i=this._overlay.getProjection();if(void 0===i)throw new Error("cannot get projection");var n=i.fromContainerPixelToLatLng(new this._lib.Point(t,e));if(null===n)throw new Error("cannot unproject coordinates");return{lng:n.lng(),lat:n.lat()}},o.setCursor=function(t){if(t!==this._cursor){if(this._cursorStyleSheet&&(this._cursorStyleSheet.remove(),this._cursorStyleSheet=void 0),"unset"!==t){var e=this._map.getDiv(),i=document.querySelector("#"+e.id+" .gm-style > div");if(i){i.classList.add("terra-draw-google-maps");var n=document.createElement("style");n.innerHTML=".terra-draw-google-maps { cursor: "+t+" !important; }",document.getElementsByTagName("head")[0].appendChild(n),this._cursorStyleSheet=n}}this._cursor=t}},o.setDoubleClickToZoom=function(t){this._map.setOptions(t?{disableDoubleClickZoom:!1}:{disableDoubleClickZoom:!0})},o.setDraggability=function(t){this._map.setOptions({draggable:t})},o.render=function(t,e){var i=this;this._layers&&(t.deletedIds.forEach(function(t){var e=i._map.data.getFeatureById(t);e&&(i._map.data.remove(e),i.renderedFeatureIds.delete(t))}),t.updated.forEach(function(t){if(!t||!t.id)throw new Error("Feature is not valid");var e=i._map.data.getFeatureById(t.id);if(!e)throw new Error("Feature could not be found by Google Maps API");switch(e.forEachProperty(function(t,i){e.setProperty(i,void 0)}),Object.keys(t.properties).forEach(function(i){e.setProperty(i,t.properties[i])}),t.geometry.type){case"Point":var n=t.geometry.coordinates;e.setGeometry(new i._lib.Data.Point(new i._lib.LatLng(n[1],n[0])));break;case"LineString":for(var o=t.geometry.coordinates,r=[],s=0;s<o.length;s++){var a=o[s],l=new i._lib.LatLng(a[1],a[0]);r.push(l)}e.setGeometry(new i._lib.Data.LineString(r));break;case"Polygon":for(var c=t.geometry.coordinates,h=[],d=0;d<c.length;d++){for(var u=[],g=0;g<c[d].length;g++){var p=new i._lib.LatLng(c[d][g][1],c[d][g][0]);u.push(p)}h.push(u)}e.setGeometry(new i._lib.Data.Polygon(h))}}),t.created.forEach(function(t){i.renderedFeatureIds.add(t.id),i._map.data.addGeoJson(t)})),t.created.forEach(function(t){i.renderedFeatureIds.add(t.id)});var n={type:"FeatureCollection",features:[].concat(t.created)};this._map.data.addGeoJson(n),this._map.data.setStyle(function(t){var n=t.getProperty("mode"),o=t.getGeometry();if(!o)throw new Error("Google Maps geometry not found");var r=o.getType(),s={};t.forEachProperty(function(t,e){s[e]=t});var a=e[n]({type:"Feature",geometry:{type:r,coordinates:[]},properties:s});switch(r){case"Point":return{clickable:!1,icon:{path:i.circlePath(0,0,a.pointWidth),fillColor:a.pointColor,fillOpacity:1,strokeColor:a.pointOutlineColor,strokeWeight:a.pointOutlineWidth,rotation:0,scale:1}};case"LineString":return{strokeColor:a.lineStringColor,strokeWeight:a.lineStringWidth};case"Polygon":return{strokeColor:a.polygonOutlineColor,strokeWeight:a.polygonOutlineWidth,fillOpacity:a.polygonFillOpacity,fillColor:a.polygonFillColor}}throw Error("Unknown feature type")})},o.clearLayers=function(){var t=this;this._layers&&(this._map.data.forEach(function(e){var i=e.getId();t.renderedFeatureIds.has(i)&&t._map.data.remove(e)}),this.renderedFeatureIds=new Set)},o.clear=function(){this._currentModeCallbacks&&(this._currentModeCallbacks.onClear(),this.clearLayers())},e(i,[{key:"_layers",get:function(){var t;return Boolean((null==(t=this.renderedFeatureIds)?void 0:t.size)>0)}}]),i}(l),h=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,e)||this)._lib=void 0,i._map=void 0,i._panes={},i._container=void 0,i._layers={},i._lib=e.lib,i._map=e.map,i._container=i._map.getContainer(),i}n(e,t);var i=e.prototype;return i.createPaneStyleSheet=function(t,e){var i=document.createElement("style");return i.innerHTML=".leaflet-"+t+" {z-index: "+e+";}",document.getElementsByTagName("head")[0].appendChild(i),this._map.createPane(t),i},i.clearPanes=function(){Object.values(this._panes).forEach(function(t){t&&t.remove()}),this._panes={}},i.clearLayers=function(){var t=this;Object.values(this._layers).forEach(function(e){t._map.removeLayer(e)}),this._layers={}},i.styleGeoJSONLayer=function(t){var e=this;return{pointToLayer:function(i,n){if(!i.properties)throw new Error("Feature has no properties");if("string"!=typeof i.properties.mode)throw new Error("Feature mode is not a string");var o=(0,t[i.properties.mode])(i),r=String(o.zIndex);return e._panes[r]||(e._panes[r]=e.createPaneStyleSheet(r,o.zIndex)),e._lib.circleMarker(n,{radius:o.pointWidth,stroke:o.pointOutlineWidth||!1,color:o.pointOutlineColor,weight:o.pointOutlineWidth,fillOpacity:.8,fillColor:o.pointColor,pane:r,interactive:!1})},style:function(i){if(!i||!i.properties)return{};var n=i,o=(0,t[n.properties.mode])(n),r=String(o.zIndex);return e._panes[r]||(e._panes[r]=e.createPaneStyleSheet(r,o.zIndex)),"LineString"===n.geometry.type?{interactive:!1,color:o.lineStringColor,weight:o.lineStringWidth,pane:r}:"Polygon"===n.geometry.type?{interactive:!1,fillOpacity:o.polygonFillOpacity,fillColor:o.polygonFillColor,weight:o.polygonOutlineWidth,stroke:!0,color:o.polygonFillColor,pane:r}:{}}}},i.getLngLatFromEvent=function(t){var e=this.getMapElementXYPosition(t),i={x:e.containerX,y:e.containerY};if(isNaN(i.x)||isNaN(i.y))return null;var n=this._map.containerPointToLatLng(i);return isNaN(n.lng)||isNaN(n.lat)?null:{lng:n.lng,lat:n.lat}},i.getMapEventElement=function(){return this._container},i.setDraggability=function(t){t?this._map.dragging.enable():this._map.dragging.disable()},i.project=function(t,e){var i=this._map.latLngToContainerPoint({lng:t,lat:e});return{x:i.x,y:i.y}},i.unproject=function(t,e){var i=this._map.containerPointToLatLng({x:t,y:e});return{lng:i.lng,lat:i.lat}},i.setCursor=function(t){"unset"===t?this.getMapEventElement().style.removeProperty("cursor"):this.getMapEventElement().style.cursor=t},i.setDoubleClickToZoom=function(t){t?this._map.doubleClickZoom.enable():this._map.doubleClickZoom.disable()},i.render=function(t,e){var i=this;t.created.forEach(function(t){i._layers[t.id]=i._lib.geoJSON(t,i.styleGeoJSONLayer(e)),i._map.addLayer(i._layers[t.id])}),t.deletedIds.forEach(function(t){i._map.removeLayer(i._layers[t])}),t.updated.forEach(function(t){i._map.removeLayer(i._layers[t.id]),i._layers[t.id]=i._lib.geoJSON(t,i.styleGeoJSONLayer(e)),i._map.addLayer(i._layers[t.id])})},i.clear=function(){this._currentModeCallbacks&&(this._currentModeCallbacks.onClear(),this.clearLayers(),this.clearPanes())},i.register=function(e){t.prototype.register.call(this,e),this._currentModeCallbacks&&this._currentModeCallbacks.onReady&&this._currentModeCallbacks.onReady()},e}(l),d=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,e)||this)._nextRender=void 0,i._map=void 0,i._container=void 0,i._rendered=!1,i.changedIds={deletion:!1,points:!1,linestrings:!1,polygons:!1,styling:!1},i._map=e.map,i._container=i._map.getContainer(),i}n(e,t);var i=e.prototype;return i.clearLayers=function(){var t=this;this._rendered&&(["point","linestring","polygon"].forEach(function(e){var i="td-"+e.toLowerCase();t._map.removeLayer(i),"polygon"===e&&t._map.removeLayer(i+"-outline"),t._map.removeSource(i)}),this._rendered=!1,this._nextRender&&(cancelAnimationFrame(this._nextRender),this._nextRender=void 0))},i._addGeoJSONSource=function(t,e){this._map.addSource(t,{type:"geojson",data:{type:"FeatureCollection",features:e},tolerance:0})},i._addFillLayer=function(t){return this._map.addLayer({id:t,source:t,type:"fill",paint:{"fill-color":["get","polygonFillColor"],"fill-opacity":["get","polygonFillOpacity"]}})},i._addFillOutlineLayer=function(t,e){var i=this._map.addLayer({id:t+"-outline",source:t,type:"line",paint:{"line-width":["get","polygonOutlineWidth"],"line-color":["get","polygonOutlineColor"]}});return e&&this._map.moveLayer(t,e),i},i._addLineLayer=function(t,e){var i=this._map.addLayer({id:t,source:t,type:"line",paint:{"line-width":["get","lineStringWidth"],"line-color":["get","lineStringColor"]}});return e&&this._map.moveLayer(t,e),i},i._addPointLayer=function(t,e){var i=this._map.addLayer({id:t,source:t,type:"circle",paint:{"circle-stroke-color":["get","pointOutlineColor"],"circle-stroke-width":["get","pointOutlineWidth"],"circle-radius":["get","pointWidth"],"circle-color":["get","pointColor"]}});return e&&this._map.moveLayer(t,e),i},i._addLayer=function(t,e,i){"Point"===e&&this._addPointLayer(t,i),"LineString"===e&&this._addLineLayer(t,i),"Polygon"===e&&(this._addFillLayer(t),this._addFillOutlineLayer(t,i))},i._addGeoJSONLayer=function(t,e){var i="td-"+t.toLowerCase();return this._addGeoJSONSource(i,e),this._addLayer(i,t),i},i._setGeoJSONLayerData=function(t,e){var i="td-"+t.toLowerCase();return this._map.getSource(i).setData({type:"FeatureCollection",features:e}),i},i.getEmptyGeometries=function(){return{points:[],linestrings:[],polygons:[]}},i.updateChangedIds=function(t){var e=this;[].concat(t.updated,t.created).forEach(function(t){"Point"===t.geometry.type?e.changedIds.points=!0:"LineString"===t.geometry.type?e.changedIds.linestrings=!0:"Polygon"===t.geometry.type&&(e.changedIds.polygons=!0)}),t.deletedIds.length>0&&(this.changedIds.deletion=!0),0===t.created.length&&0===t.updated.length&&0===t.deletedIds.length&&(this.changedIds.styling=!0)},i.getLngLatFromEvent=function(t){var e=this._container.getBoundingClientRect();return this.unproject(t.clientX-e.left,t.clientY-e.top)},i.getMapEventElement=function(){return this._map.getCanvas()},i.setDraggability=function(t){t?(this._map.dragRotate.enable(),this._map.dragPan.enable()):(this._map.dragRotate.disable(),this._map.dragPan.disable())},i.project=function(t,e){var i=this._map.project({lng:t,lat:e});return{x:i.x,y:i.y}},i.unproject=function(t,e){var i=this._map.unproject({x:t,y:e});return{lng:i.lng,lat:i.lat}},i.setCursor=function(t){var e=this._map.getCanvas();"unset"===t?e.style.removeProperty("cursor"):e.style.cursor=t},i.setDoubleClickToZoom=function(t){t?this._map.doubleClickZoom.enable():this._map.doubleClickZoom.disable()},i.render=function(t,e){var i=this;this.updateChangedIds(t),this._nextRender&&cancelAnimationFrame(this._nextRender),this._nextRender=requestAnimationFrame(function(){for(var n=[].concat(t.created,t.updated,t.unchanged),o=i.getEmptyGeometries(),r=function(t){var i=n[t];Object.keys(e).forEach(function(t){var n=i.properties;if(n.mode===t){var r=e[t](i);"Point"===i.geometry.type?(n.pointColor=r.pointColor,n.pointOutlineColor=r.pointOutlineColor,n.pointOutlineWidth=r.pointOutlineWidth,n.pointWidth=r.pointWidth,o.points.push(i)):"LineString"===i.geometry.type?(n.lineStringColor=r.lineStringColor,n.lineStringWidth=r.lineStringWidth,o.linestrings.push(i)):"Polygon"===i.geometry.type&&(n.polygonFillColor=r.polygonFillColor,n.polygonFillOpacity=r.polygonFillOpacity,n.polygonOutlineColor=r.polygonOutlineColor,n.polygonOutlineWidth=r.polygonOutlineWidth,o.polygons.push(i))}})},s=0;s<n.length;s++)r(s);var a=o.points,l=o.linestrings,c=o.polygons;if(i._rendered){var h,d=i.changedIds.deletion||i.changedIds.styling,u=d||i.changedIds.linestrings,g=d||i.changedIds.polygons;(d||i.changedIds.points)&&(h=i._setGeoJSONLayerData("Point",a)),u&&i._setGeoJSONLayerData("LineString",l),g&&i._setGeoJSONLayerData("Polygon",c),h&&i._map.moveLayer(h)}else{var p=i._addGeoJSONLayer("Point",a);i._addGeoJSONLayer("LineString",l),i._addGeoJSONLayer("Polygon",c),i._rendered=!0,p&&i._map.moveLayer(p)}i.changedIds={points:!1,linestrings:!1,polygons:!1,deletion:!1,styling:!1}})},i.clear=function(){this._currentModeCallbacks&&(this._currentModeCallbacks.onClear(),this.clearLayers())},i.register=function(e){t.prototype.register.call(this,e),this._currentModeCallbacks&&this._currentModeCallbacks.onReady&&this._currentModeCallbacks.onReady()},e}(l),u=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,e)||this).mapboxglAdapter=void 0,i.mapboxglAdapter=new d(e),i}n(e,t);var i=e.prototype;return i.register=function(t){this.mapboxglAdapter.register(t)},i.unregister=function(){this.mapboxglAdapter.unregister()},i.getLngLatFromEvent=function(t){return this.mapboxglAdapter.getLngLatFromEvent(t)},i.getMapEventElement=function(){return this.mapboxglAdapter.getMapEventElement()},i.setDraggability=function(t){this.mapboxglAdapter.setDraggability(t)},i.project=function(t,e){return this.mapboxglAdapter.project(t,e)},i.unproject=function(t,e){return this.mapboxglAdapter.unproject(t,e)},i.setCursor=function(t){this.mapboxglAdapter.setCursor(t)},i.setDoubleClickToZoom=function(t){this.mapboxglAdapter.setDoubleClickToZoom(t)},i.render=function(t,e){this.mapboxglAdapter.render(t,e)},i.clear=function(){this.mapboxglAdapter.clear()},e}(l);function g(){throw new Error("Unimplemented abstract method.")}let p=0;function f(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}class y{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=f(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const t=this.getScale();return new y({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return g()}getImage(t){return g()}getHitDetectionImage(){return g()}getPixelRatio(t){return 1}getImageState(){return g()}getImageSize(){return g()}getOrigin(){return g()}getSize(){return g()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=f(t)}listenImageChange(t){g()}load(){g()}unlistenImageChange(t){g()}}var v=y;const m={1:"The view center is not defined",2:"The view resolution is not defined",3:"The view rotation is not defined",4:"`image` and `src` cannot be provided at the same time",5:"`imgSize` must be set when `image` is provided",7:"`format` must be set when `url` is set",8:"Unknown `serverType` configured",9:"`url` must be configured or set using `#setUrl()`",10:"The default `geometryFunction` can only handle `Point` geometries",11:"`options.featureTypes` must be an Array",12:"`options.geometryName` must also be provided when `options.bbox` is set",13:"Invalid corner",14:"Invalid color",15:"Tried to get a value for a key that does not exist in the cache",16:"Tried to set a value for a key that is used already",17:"`resolutions` must be sorted in descending order",18:"Either `origin` or `origins` must be configured, never both",19:"Number of `tileSizes` and `resolutions` must be equal",20:"Number of `origins` and `resolutions` must be equal",22:"Either `tileSize` or `tileSizes` must be configured, never both",24:"Invalid extent or geometry provided as `geometry`",25:"Cannot fit empty extent provided as `geometry`",26:"Features must have an id set",27:"Features must have an id set",28:'`renderMode` must be `"hybrid"` or `"vector"`',30:"The passed `feature` was already added to the source",31:"Tried to enqueue an `element` that was already added to the queue",32:"Transformation matrix cannot be inverted",33:"Invalid units",34:"Invalid geometry layout",36:"Unknown SRS type",37:"Unknown geometry type found",38:"`styleMapValue` has an unknown type",39:"Unknown geometry type",40:"Expected `feature` to have a geometry",41:"Expected an `ol/style/Style` or an array of `ol/style/Style.js`",42:"Question unknown, the answer is 42",43:"Expected `layers` to be an array or a `Collection`",47:"Expected `controls` to be an array or an `ol/Collection`",48:"Expected `interactions` to be an array or an `ol/Collection`",49:"Expected `overlays` to be an array or an `ol/Collection`",50:"`options.featureTypes` should be an Array",51:"Either `url` or `tileJSON` options must be provided",52:"Unknown `serverType` configured",53:"Unknown `tierSizeCalculation` configured",55:"The {-y} placeholder requires a tile grid with extent",56:"mapBrowserEvent must originate from a pointer event",57:"At least 2 conditions are required",59:"Invalid command found in the PBF",60:"Missing or invalid `size`",61:"Cannot determine IIIF Image API version from provided image information JSON",62:"A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`",64:"Layer opacity must be a number",66:"`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`",67:"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both",68:"A VectorTile source can only be rendered if it has a projection compatible with the view projection"};class _ extends Error{constructor(t){const e=m[t];super(e),this.code=t,this.name="AssertionError",this.message=e}}var C=_;function P(t,e,i){return Math.min(Math.max(t,e),i)}const S=/^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i,x=/^([a-z]*)$|^hsla?\(.*\)$/i,w=function(){const t={};let e=0;return function(i){let n;if(t.hasOwnProperty(i))n=t[i];else{if(e>=1024){let i=0;for(const n in t)0==(3&i++)&&(delete t[n],--e)}n=function(t){let e,i,n,o,r;if(x.exec(t)&&(t=function(t){const e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);const t=getComputedStyle(e).color;return document.body.removeChild(e),t}return""}(t)),S.exec(t)){const s=t.length-1;let a;a=s<=4?1:2;const l=4===s||8===s;e=parseInt(t.substr(1+0*a,a),16),i=parseInt(t.substr(1+1*a,a),16),n=parseInt(t.substr(1+2*a,a),16),o=l?parseInt(t.substr(1+3*a,a),16):255,1==a&&(e=(e<<4)+e,i=(i<<4)+i,n=(n<<4)+n,l&&(o=(o<<4)+o)),r=[e,i,n,o/255]}else t.startsWith("rgba(")?(r=t.slice(5,-1).split(",").map(Number),E(r)):t.startsWith("rgb(")?(r=t.slice(4,-1).split(",").map(Number),r.push(1),E(r)):function(t,e){throw new C(14)}();return r}(i),t[i]=n,++e}return n}}();function E(t){return t[0]=P(t[0]+.5|0,0,255),t[1]=P(t[1]+.5|0,0,255),t[2]=P(t[2]+.5|0,0,255),t[3]=P(t[3],0,1),t}function b(t){return Array.isArray(t)?function(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let i=t[1];i!=(0|i)&&(i=i+.5|0);let n=t[2];return n!=(0|n)&&(n=n+.5|0),"rgba("+e+","+i+","+n+","+(void 0===t[3]?1:Math.round(100*t[3])/100)+")"}(t):t}const M="undefined"!=typeof navigator&&void 0!==navigator.userAgent?navigator.userAgent.toLowerCase():"";M.includes("firefox"),M.includes("safari")&&!M.includes("chrom")&&(M.includes("version/15.4")||/cpu (os|iphone os) 15_4 like mac os x/.test(M)),M.includes("webkit")&&M.includes("edge"),M.includes("macintosh");const D="undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas&&self instanceof WorkerGlobalScope;function I(t,e,i,n){let o;return o=i&&i.length?i.shift():D?new OffscreenCanvas(t||300,e||300):document.createElement("canvas"),t&&(o.width=t),e&&(o.height=e),o.getContext("2d",n)}!function(){let t=!1;try{const e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("_",null,e),window.removeEventListener("_",null,e)}catch(t){}}();var k=class{constructor(t){this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}},F=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function O(){}function L(t){for(const e in t)delete t[e]}var W=class extends F{constructor(t){super(),this.eventTarget_=t,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(t,e){if(!t||!e)return;const i=this.listeners_||(this.listeners_={}),n=i[t]||(i[t]=[]);n.includes(e)||n.push(e)}dispatchEvent(t){const e="string"==typeof t,i=e?t:t.type,n=this.listeners_&&this.listeners_[i];if(!n)return;const o=e?new k(t):t;o.target||(o.target=this.eventTarget_||this);const r=this.dispatching_||(this.dispatching_={}),s=this.pendingRemovals_||(this.pendingRemovals_={});let a;i in r||(r[i]=0,s[i]=0),++r[i];for(let t=0,e=n.length;t<e;++t)if(a="handleEvent"in n[t]?n[t].handleEvent(o):n[t].call(this,o),!1===a||o.propagationStopped){a=!1;break}if(0==--r[i]){let t=s[i];for(delete s[i];t--;)this.removeEventListener(i,O);delete r[i]}return a}disposeInternal(){this.listeners_&&L(this.listeners_)}getListeners(t){return this.listeners_&&this.listeners_[t]||void 0}hasListener(t){return!!this.listeners_&&(t?t in this.listeners_:Object.keys(this.listeners_).length>0)}removeEventListener(t,e){const i=this.listeners_&&this.listeners_[t];if(i){const n=i.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[n]=O,++this.pendingRemovals_[t]):(i.splice(n,1),0===i.length&&delete this.listeners_[t]))}}};function A(t,e,i,n,o){if(n&&n!==t&&(i=i.bind(n)),o){const n=i;i=function(){t.removeEventListener(e,i),n.apply(this,arguments)}}const r={target:t,type:e,listener:i};return t.addEventListener(e,i),r}function G(t,e,i,n){return A(t,e,i,n,!0)}function B(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),L(t))}var N=class extends W{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent("change")}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let o=0;o<i;++o)n[o]=A(this,t[o],e);return n}return A(this,t,e)}onceInternal(t,e){let i;if(Array.isArray(t)){const n=t.length;i=new Array(n);for(let o=0;o<n;++o)i[o]=G(this,t[o],e)}else i=G(this,t,e);return e.ol_key=i,i}unInternal(t,e){const i=e.ol_key;if(i)!function(t){if(Array.isArray(t))for(let e=0,i=t.length;e<i;++e)B(t[e]);else B(t)}(i);else if(Array.isArray(t))for(let i=0,n=t.length;i<n;++i)this.removeEventListener(t[i],e);else this.removeEventListener(t,e)}};class R extends k{constructor(t,e,i){super(t),this.key=e,this.oldValue=i}}const V="#000",j="round";new class extends N{constructor(t){super(),this.ol_uid||(this.ol_uid=String(++p)),this.values_=null,void 0!==t&&this.setProperties(t)}get(t){let e;return this.values_&&this.values_.hasOwnProperty(t)&&(e=this.values_[t]),e}getKeys(){return this.values_&&Object.keys(this.values_)||[]}getProperties(){return this.values_&&Object.assign({},this.values_)||{}}hasProperties(){return!!this.values_}notify(t,e){let i;i=`change:${t}`,this.hasListener(i)&&this.dispatchEvent(new R(i,t,e)),i="propertychange",this.hasListener(i)&&this.dispatchEvent(new R(i,t,e))}addChangeListener(t,e){this.addEventListener(`change:${t}`,e)}removeChangeListener(t,e){this.removeEventListener(`change:${t}`,e)}set(t,e,i){const n=this.values_||(this.values_={});if(i)n[t]=e;else{const i=n[t];n[t]=e,i!==e&&this.notify(t,i)}}setProperties(t,e){for(const i in t)this.set(i,t[i],e)}applyProperties(t){t.values_&&Object.assign(this.values_||(this.values_={}),t.values_)}unset(t,e){if(this.values_&&t in this.values_){const i=this.values_[t];delete this.values_[t],function(t){let e;for(e in t)return!1;return!e}(this.values_)&&(this.values_=null),e||this.notify(t,i)}}};class T extends v{constructor(t){super({opacity:1,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,rotation:void 0!==t.rotation?t.rotation:0,scale:void 0!==t.scale?t.scale:1,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode}),this.canvas_=void 0,this.hitDetectionCanvas_=null,this.fill_=void 0!==t.fill?t.fill:null,this.origin_=[0,0],this.points_=t.points,this.radius_=void 0!==t.radius?t.radius:t.radius1,this.radius2_=t.radius2,this.angle_=void 0!==t.angle?t.angle:0,this.stroke_=void 0!==t.stroke?t.stroke:null,this.size_=null,this.renderOptions_=null,this.render()}clone(){const t=this.getScale(),e=new T({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return e.setOpacity(this.getOpacity()),e}getAnchor(){const t=this.size_;if(!t)return null;const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]/2-e[0]/i[0],t[1]/2+e[1]/i[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(t){this.fill_=t,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||this.createHitDetectionCanvas_(this.renderOptions_),this.hitDetectionCanvas_}getImage(t){let e=this.canvas_[t];if(!e){const i=this.renderOptions_,n=I(i.size*t,i.size*t);this.draw_(i,n,t),e=n.canvas,this.canvas_[t]=e}return e}getPixelRatio(t){return t}getImageSize(){return this.size_}getImageState(){return 2}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius_}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t,this.render()}listenImageChange(t){}load(){}unlistenImageChange(t){}calculateLineJoinSize_(t,e,i){if(0===e||Infinity===this.points_||"bevel"!==t&&"miter"!==t)return e;let n=this.radius_,o=void 0===this.radius2_?n:this.radius2_;if(n<o){const t=n;n=o,o=t}const r=2*Math.PI/(void 0===this.radius2_?this.points_:2*this.points_),s=o*Math.sin(r),a=n-Math.sqrt(o*o-s*s),l=Math.sqrt(s*s+a*a),c=l/s;if("miter"===t&&c<=i)return c*e;const h=e/2/c,d=e/2*(a/l),u=Math.sqrt((n+h)*(n+h)+d*d)-n;if(void 0===this.radius2_||"bevel"===t)return 2*u;const g=n*Math.sin(r),p=o-Math.sqrt(n*n-g*g),f=Math.sqrt(g*g+p*p)/g;return f<=i?2*Math.max(u,f*e/2-o-n):2*u}createRenderOptions(){let t,e=j,i=0,n=null,o=0,r=0;this.stroke_&&(t=this.stroke_.getColor(),null===t&&(t="#000"),t=b(t),r=this.stroke_.getWidth(),void 0===r&&(r=1),n=this.stroke_.getLineDash(),o=this.stroke_.getLineDashOffset(),e=this.stroke_.getLineJoin(),void 0===e&&(e=j),i=this.stroke_.getMiterLimit(),void 0===i&&(i=10));const s=this.calculateLineJoinSize_(e,r,i),a=Math.max(this.radius_,this.radius2_||0);return{strokeStyle:t,strokeWidth:r,size:Math.ceil(2*a+s),lineDash:n,lineDashOffset:o,lineJoin:e,miterLimit:i}}render(){this.renderOptions_=this.createRenderOptions();const t=this.renderOptions_.size;this.canvas_={},this.size_=[t,t]}draw_(t,e,i){if(e.scale(i,i),e.translate(t.size/2,t.size/2),this.createPath_(e),this.fill_){let t=this.fill_.getColor();null===t&&(t=V),e.fillStyle=b(t),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke())}createHitDetectionCanvas_(t){if(this.fill_){let e=this.fill_.getColor(),i=0;if("string"==typeof e&&(e=function(t){return Array.isArray(t)?t:w(t)}(e)),null===e?i=1:Array.isArray(e)&&(i=4===e.length?e[3]:1),0===i){const e=I(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e)}}this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.getImage(1))}createPath_(t){let e=this.points_;const i=this.radius_;if(Infinity===e)t.arc(0,0,i,0,2*Math.PI);else{const n=void 0===this.radius2_?i:this.radius2_;void 0!==this.radius2_&&(e*=2);const o=this.angle_-Math.PI/2,r=2*Math.PI/e;for(let s=0;s<e;s++){const e=o+s*r,a=s%2==0?i:n;t.lineTo(a*Math.cos(e),a*Math.sin(e))}t.closePath()}}drawHitDetectionCanvas_(t,e){e.translate(t.size/2,t.size/2),this.createPath_(e),e.fillStyle=V,e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke())}}var X=T;class Y extends X{constructor(t){super({points:Infinity,fill:(t=t||{radius:5}).fill,radius:t.radius,stroke:t.stroke,scale:void 0!==t.scale?t.scale:1,rotation:void 0!==t.rotation?t.rotation:0,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode})}clone(){const t=this.getScale(),e=new Y({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return e.setOpacity(this.getOpacity()),e}setRadius(t){this.radius_=t,this.render()}}var z=Y;class U{constructor(t){this.color_=void 0!==(t=t||{}).color?t.color:null}clone(){const t=this.getColor();return new U({color:Array.isArray(t)?t.slice():t||void 0})}getColor(){return this.color_}setColor(t){this.color_=t}}var H=U;class K{constructor(t){this.color_=void 0!==(t=t||{}).color?t.color:null,this.lineCap_=t.lineCap,this.lineDash_=void 0!==t.lineDash?t.lineDash:null,this.lineDashOffset_=t.lineDashOffset,this.lineJoin_=t.lineJoin,this.miterLimit_=t.miterLimit,this.width_=t.width}clone(){const t=this.getColor();return new K({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(t){this.color_=t}setLineCap(t){this.lineCap_=t}setLineDash(t){this.lineDash_=t}setLineDashOffset(t){this.lineDashOffset_=t}setLineJoin(t){this.lineJoin_=t}setMiterLimit(t){this.miterLimit_=t}setWidth(t){this.width_=t}}var J=K;class q{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=Z,void 0!==t.geometry&&this.setGeometry(t.geometry),this.fill_=void 0!==t.fill?t.fill:null,this.image_=void 0!==t.image?t.image:null,this.renderer_=void 0!==t.renderer?t.renderer:null,this.hitDetectionRenderer_=void 0!==t.hitDetectionRenderer?t.hitDetectionRenderer:null,this.stroke_=void 0!==t.stroke?t.stroke:null,this.text_=void 0!==t.text?t.text:null,this.zIndex_=t.zIndex}clone(){let t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new q({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer(),stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(t){this.renderer_=t}setHitDetectionRenderer(t){this.hitDetectionRenderer_=t}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(t){this.fill_=t}getImage(){return this.image_}setImage(t){this.image_=t}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t}getText(){return this.text_}setText(t){this.text_=t}getZIndex(){return this.zIndex_}setGeometry(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=Z,this.geometry_=t}setZIndex(t){this.zIndex_=t}}function Z(t){return t.getGeometry()}var $=q;const Q={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var tt=class{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Q[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}};const et=6378137,it=Math.PI*et,nt=[-it,-it,it,it],ot=[-180,-85,180,85],rt=et*Math.log(Math.tan(Math.PI/2));class st extends tt{constructor(t){super({code:t,units:"m",extent:nt,global:!0,worldExtent:ot,getPointResolution:function(t,e){return t/Math.cosh(e[1]/et)}})}}const at=[new st("EPSG:3857"),new st("EPSG:102100"),new st("EPSG:102113"),new st("EPSG:900913"),new st("http://www.opengis.net/def/crs/EPSG/0/3857"),new st("http://www.opengis.net/gml/srs/epsg.xml#3857")],lt=[-180,-90,180,90],ct=6378137*Math.PI/180;class ht extends tt{constructor(t,e){super({code:t,units:"degrees",extent:lt,axisOrientation:e,global:!0,metersPerUnit:ct,worldExtent:lt})}}const dt=[new ht("CRS:84"),new ht("EPSG:4326","neu"),new ht("urn:ogc:def:crs:OGC:1.3:CRS84"),new ht("urn:ogc:def:crs:OGC:2:84"),new ht("http://www.opengis.net/def/crs/OGC/1.3/CRS84"),new ht("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new ht("http://www.opengis.net/def/crs/EPSG/0/4326","neu")];let ut={},gt={};function pt(t,e,i){const n=t.getCode(),o=e.getCode();n in gt||(gt[n]={}),gt[n][o]=i}function ft(t,e,i){if(void 0!==e)for(let i=0,n=t.length;i<n;++i)e[i]=t[i];else e=t.slice();return e}function yt(t,e,i){if(void 0!==e&&t!==e){for(let i=0,n=t.length;i<n;++i)e[i]=t[i];t=e}return t}function vt(t){!function(t,e){ut[t]=e}(t.getCode(),t),pt(t,t,ft)}function mt(t){return"string"==typeof t?ut[e=t]||ut[e.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\w+)$/,"EPSG:$3")]||null:t||null;var e}function _t(t){!function(t){t.forEach(vt)}(t),t.forEach(function(e){t.forEach(function(t){e!==t&&pt(e,t,ft)})})}function Ct(t,e,i){const n=function(t,e){return function(t,e){let i=function(t,e){let i;return t in gt&&e in gt[t]&&(i=gt[t][e]),i}(t.getCode(),e.getCode());return i||(i=yt),i}(mt(t),mt(e))}(e,i);return n(t,void 0,t.length)}var Pt,St,xt;_t(at),_t(dt),Pt=at,St=function(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let o=0;o<n;o+=i){e[o]=it*t[o]/180;let i=et*Math.log(Math.tan(Math.PI*(+t[o+1]+90)/360));i>rt?i=rt:i<-rt&&(i=-rt),e[o+1]=i}return e},xt=function(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let o=0;o<n;o+=i)e[o]=180*t[o]/it,e[o+1]=360*Math.atan(Math.exp(t[o+1]/et))/Math.PI-90;return e},dt.forEach(function(t){Pt.forEach(function(e){pt(t,e,St),pt(e,t,xt)})});var wt,Et=/*#__PURE__*/function(t){function e(e){var i;(i=t.call(this,e)||this).stylingFunction=function(){return{}},i._lib=void 0,i._map=void 0,i._container=void 0,i._projection="EPSG:3857",i._vectorSource=void 0,i._geoJSONReader=void 0,i._map=e.map,i._lib=e.lib,i._geoJSONReader=new i._lib.GeoJSON,i._container=i._map.getViewport(),i._container.setAttribute("tabindex","0");var n=new i._lib.VectorSource({features:[]});i._vectorSource=n;var o=new i._lib.VectorLayer({source:n,style:function(t){return i.getStyles(t,i.stylingFunction())}});return i._map.addLayer(o),i}n(e,t);var i=e.prototype;return i.hexToRGB=function(t){return{r:parseInt(t.slice(1,3),16),g:parseInt(t.slice(3,5),16),b:parseInt(t.slice(5,7),16)}},i.getStyles=function(t,e){var i=this,n=t.getGeometry();if(n)return{Point:function(t){var n=t.getProperties(),o=e[n.mode]({type:"Feature",geometry:{type:"Point",coordinates:[]},properties:n});return new i._lib.Style({image:new z({radius:o.pointWidth,fill:new H({color:o.pointColor}),stroke:new J({color:o.pointOutlineColor,width:o.pointOutlineWidth})})})},LineString:function(t){var n=t.getProperties(),o=e[n.mode]({type:"Feature",geometry:{type:"LineString",coordinates:[]},properties:n});return new i._lib.Style({stroke:new i._lib.Stroke({color:o.lineStringColor,width:o.lineStringWidth})})},Polygon:function(t){var n=t.getProperties(),o=e[n.mode]({type:"Feature",geometry:{type:"LineString",coordinates:[]},properties:n}),r=i.hexToRGB(o.polygonFillColor),s=r.r,a=r.g,l=r.b;return new $({stroke:new J({color:o.polygonOutlineColor,width:o.polygonOutlineWidth}),fill:new H({color:"rgba("+s+","+a+","+l+","+o.polygonFillOpacity+")"})})}}[n.getType()](t)},i.clearLayers=function(){this._vectorSource&&this._vectorSource.clear()},i.addFeature=function(t){if(!this._vectorSource||!this._geoJSONReader)throw new Error("Vector Source not initalised");var e=this._geoJSONReader.readFeature(t,{featureProjection:this._projection});this._vectorSource.addFeature(e)},i.removeFeature=function(t){if(!this._vectorSource)throw new Error("Vector Source not initalised");var e=this._vectorSource.getFeatureById(t);e&&this._vectorSource.removeFeature(e)},i.getLngLatFromEvent=function(t){var e=this.getMapElementXYPosition(t),i=e.containerX,n=e.containerY;try{return this.unproject(i,n)}catch(t){return null}},i.getMapEventElement=function(){var t=this._container.querySelectorAll("canvas");if(t.length>1)throw Error("Terra Draw currently only supports 1 canvas with OpenLayers");return t[0]},i.setDraggability=function(t){this._map.getInteractions().forEach(function(e){"DragPan"===e.constructor.name&&e.setActive(t)})},i.project=function(t,e){var i=this._map.getPixelFromCoordinate(Ct([t,e],"EPSG:4326","EPSG:3857"));return{x:i[0],y:i[1]}},i.unproject=function(t,e){var i=function(t,e){const i=Ct(t,"EPSG:3857","EPSG:4326"),n=i[0];return(n<-180||n>180)&&(i[0]=function(t,e){const i=t%360;return 360*i<0?i+360:i}(n+180)-180),i}(this._map.getCoordinateFromPixel([t,e]));return{lng:i[0],lat:i[1]}},i.setCursor=function(t){"unset"===t?this.getMapEventElement().style.removeProperty("cursor"):this.getMapEventElement().style.cursor=t},i.setDoubleClickToZoom=function(t){this._map.getInteractions().forEach(function(e){"DoubleClickZoom"===e.constructor.name&&e.setActive(t)})},i.render=function(t,e){var i=this;if(this.stylingFunction=function(){return e},!this._vectorSource)throw new Error("Vector Layer source has disappeared");t.deletedIds.forEach(function(t){i.removeFeature(t)}),t.updated.forEach(function(t){i.removeFeature(t.id),i.addFeature(t)}),t.created.forEach(function(t){i.addFeature(t)})},i.clear=function(){this._currentModeCallbacks&&(this._currentModeCallbacks.onClear(),this.clearLayers())},i.register=function(e){t.prototype.register.call(this,e),this._currentModeCallbacks&&this._currentModeCallbacks.onReady&&this._currentModeCallbacks.onReady()},e}(l),bt=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,e)||this)._lib=void 0,i._mapView=void 0,i._container=void 0,i._featureIdAttributeName="__tdId",i._featureLayerName="__terraDrawFeatures",i._featureLayer=void 0,i._dragEnabled=!0,i._zoomEnabled=!0,i._dragHandler=void 0,i._doubleClickHandler=void 0,i._mapView=e.map,i._lib=e.lib,i._container=i._mapView.container,i._featureLayer=new i._lib.GraphicsLayer({id:i._featureLayerName}),i._mapView.map.add(i._featureLayer),i}n(e,t);var i=e.prototype;return i.register=function(e){var i=this;t.prototype.register.call(this,e),this._dragHandler=this._mapView.on("drag",function(t){i._dragEnabled||t.stopPropagation()}),this._doubleClickHandler=this._mapView.on("double-click",function(t){i._zoomEnabled||t.stopPropagation()}),this._currentModeCallbacks&&this._currentModeCallbacks.onReady&&this._currentModeCallbacks.onReady()},i.unregister=function(){t.prototype.unregister.call(this),this._dragHandler&&this._dragHandler.remove(),this._doubleClickHandler&&this._doubleClickHandler.remove()},i.getLngLatFromEvent=function(t){var e=this.getMapElementXYPosition(t);return this.unproject(e.containerX,e.containerY)},i.getMapEventElement=function(){return this._container.querySelector(".esri-view-surface")},i.setDraggability=function(t){this._dragEnabled=t},i.project=function(t,e){var i=new this._lib.Point({longitude:t,latitude:e}),n=this._mapView.toScreen(i);return{x:n.x,y:n.y}},i.unproject=function(t,e){var i=this._mapView.toMap({x:t,y:e});return{lng:i.longitude,lat:i.latitude}},i.setCursor=function(t){"unset"===t?this.getMapEventElement().style.removeProperty("cursor"):this.getMapEventElement().style.cursor=t},i.setDoubleClickToZoom=function(t){this._zoomEnabled=t},i.render=function(t,e){var i=this;t.created.forEach(function(t){i.addFeature(t,e)}),t.updated.forEach(function(t){i.removeFeatureById(t.id),i.addFeature(t,e)}),t.deletedIds.forEach(function(t){i.removeFeatureById(t)})},i.clear=function(){this._featureLayer.graphics.removeAll()},i.removeFeatureById=function(t){var e=this,i=this._featureLayer.graphics.find(function(i){return i.attributes[e._featureIdAttributeName]===t});this._featureLayer.remove(i)},i.addFeature=function(t,e){var i,n=t.geometry,o=n.coordinates,r=n.type,s=e[t.properties.mode](t),a=void 0,l=void 0;switch(r){case"Point":l=new this._lib.Point({latitude:o[1],longitude:o[0]}),a=new this._lib.SimpleMarkerSymbol({color:this.getColorFromHex(s.pointColor),size:2*s.pointWidth+"px",outline:{color:this.getColorFromHex(s.pointOutlineColor),width:s.pointOutlineWidth+"px"}});break;case"LineString":l=new this._lib.Polyline({paths:[o]}),a=new this._lib.SimpleLineSymbol({color:this.getColorFromHex(s.lineStringColor),width:s.lineStringWidth+"px"});break;case"Polygon":l=new this._lib.Polygon({rings:o}),a=new this._lib.SimpleFillSymbol({color:this.getColorFromHex(s.polygonFillColor,s.polygonFillOpacity),outline:{color:this.getColorFromHex(s.polygonOutlineColor),width:s.polygonOutlineWidth+"px"}})}var c=new this._lib.Graphic({geometry:l,symbol:a,attributes:(i={},i[this._featureIdAttributeName]=t.id,i)});"Point"===r?this._featureLayer.graphics.add(c):this._featureLayer.graphics.add(c,0)},i.getColorFromHex=function(t,e){var i=this._lib.Color.fromHex(t);return e&&(i.a=e),i},e}(l),Mt="selected",Dt="midPoint",It="closingPoint";function kt(t){return Boolean(t&&"object"==typeof t&&null!==t&&!Array.isArray(t))}function Ft(t){if(!function(t){return"number"==typeof t&&!isNaN(new Date(t).valueOf())}(t))throw new Error("updatedAt and createdAt are not valid timestamps");return!0}!function(t){t.Drawing="drawing",t.Select="select",t.Static="static",t.Render="render"}(wt||(wt={}));var Ot=/*#__PURE__*/function(){var t=n.prototype;function n(t){this._state=void 0,this._styles=void 0,this.behaviors=[],this.pointerDistance=void 0,this.coordinatePrecision=void 0,this.onStyleChange=void 0,this.store=void 0,this.setDoubleClickToZoom=void 0,this.unproject=void 0,this.project=void 0,this.setCursor=void 0,this.type=wt.Drawing,this.mode="base",this._state="unregistered",this._styles=t&&t.styles?i({},t.styles):{},this.pointerDistance=t&&t.pointerDistance||40}return t.registerBehaviors=function(t){},t.setDrawing=function(){if("started"!==this._state)throw new Error("Mode must be unregistered or stopped to start");this._state="drawing"},t.setStarted=function(){if("stopped"!==this._state&&"registered"!==this._state&&"drawing"!==this._state&&"selecting"!==this._state)throw new Error("Mode must be unregistered or stopped to start");this._state="started",this.setDoubleClickToZoom(!1)},t.setStopped=function(){if("started"!==this._state)throw new Error("Mode must be started to be stopped");this._state="stopped",this.setDoubleClickToZoom(!0)},t.register=function(t){if("unregistered"!==this._state)throw new Error("Can not register unless mode is unregistered");this._state="registered",this.store=t.store,this.store.registerOnChange(t.onChange),this.setDoubleClickToZoom=t.setDoubleClickToZoom,this.project=t.project,this.unproject=t.unproject,this.onSelect=t.onSelect,this.onDeselect=t.onDeselect,this.setCursor=t.setCursor,this.onStyleChange=t.onChange,this.onFinish=t.onFinish,this.coordinatePrecision=t.coordinatePrecision,this.registerBehaviors({mode:t.mode,store:this.store,project:this.project,unproject:this.unproject,pointerDistance:this.pointerDistance,coordinatePrecision:t.coordinatePrecision})},t.validateFeature=function(t){if("unregistered"===this._state)throw new Error("Mode must be registered");return function(t,e){var i;if(kt(t))if(null==t.id)i="Feature has no id";else if("string"!=typeof t.id&&"number"!=typeof t.id)i="Feature must be string or number as per GeoJSON spec";else if(e(t.id))if(kt(t.geometry))if(kt(t.properties))if("string"==typeof t.geometry.type&&["Polygon","LineString","Point"].includes(t.geometry.type))if(Array.isArray(t.geometry.coordinates)){if(!t.properties.mode||"string"!=typeof t.properties.mode)throw new Error("Feature does not have a valid mode property")}else i="Feature coordinates is not an array";else i="Feature is not Point, LineString or Polygon";else i="Feature has no properties";else i="Feature has no geometry";else i="Feature must match the id strategy (default is UUID4)";else i="Feature is not object";if(i)throw new Error(i);return!0}(t,this.store.idStrategy.isValidId)},t.onFinish=function(t){},t.onDeselect=function(t){},t.onSelect=function(t){},t.onKeyDown=function(t){},t.onKeyUp=function(t){},t.onMouseMove=function(t){},t.onClick=function(t){},t.onDragStart=function(t,e){},t.onDrag=function(t,e){},t.onDragEnd=function(t,e){},t.getHexColorStylingValue=function(t,e,i){return this.getStylingValue(t,e,i)},t.getNumericStylingValue=function(t,e,i){return this.getStylingValue(t,e,i)},t.getStylingValue=function(t,e,i){return void 0===t?e:"function"==typeof t?t(i):t},e(n,[{key:"state",get:function(){return this._state},set:function(t){throw new Error("Please use the modes lifecycle methods")}},{key:"styles",get:function(){return this._styles},set:function(t){if("object"!=typeof t)throw new Error("Styling must be an object");this.onStyleChange([],"styling"),this._styles=t}}]),n}(),Lt=/*#__PURE__*/function(t){function e(){for(var e,i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];return(e=t.call.apply(t,[this].concat(n))||this).type=wt.Select,e}return n(e,t),e}(Ot);function Wt(t,e){var i=function(t){return t*Math.PI/180},n=i(t[1]),o=i(t[0]),r=i(e[1]),s=r-n,a=i(e[0])-o,l=Math.sin(s/2)*Math.sin(s/2)+Math.cos(n)*Math.cos(r)*Math.sin(a/2)*Math.sin(a/2);return 2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))*6371e3/1e3}function At(t){return t%360*Math.PI/180}function Gt(t){return t%(2*Math.PI)*180/Math.PI}function Bt(t){for(var e,i,n,o,s,a,l,c,h=t.center,d=t.radiusKilometers,u=t.coordinatePrecision,g=t.steps?t.steps:64,p=[],f=0;f<g;f++){var y=(i=d,n=-360*f/g,o=At((e=h)[0]),s=At(e[1]),a=At(n),l=function(t){return t/6371.0088}(i),c=Math.asin(Math.sin(s)*Math.cos(l)+Math.cos(s)*Math.sin(l)*Math.cos(a)),[Gt(o+Math.atan2(Math.sin(a)*Math.sin(l)*Math.cos(s),Math.cos(l)-Math.sin(s)*Math.sin(c))),Gt(c)]);p.push([r(y[0],u),r(y[1],u)])}return p.push(p[0]),{type:"Feature",geometry:{type:"Polygon",coordinates:[p]},properties:{}}}function Nt(t){var e;if("Polygon"===t.geometry.type)e=t.geometry.coordinates;else{if("LineString"!==t.geometry.type)throw new Error("Self intersects only accepts Polygons and LineStrings");e=[t.geometry.coordinates]}for(var i=[],n=0;n<e.length;n++)for(var o=0;o<e[n].length-1;o++)for(var r=0;r<e.length;r++)for(var s=0;s<e[r].length-1;s++)l(n,o,r,s);return i.length>0;function a(t){return t<0||t>1}function l(t,n,o,r){var s,l=e[t][n],c=e[t][n+1],h=e[o][r],d=e[o][r+1],u=function(t,e,i,n){if(Rt(t,i)||Rt(t,n)||Rt(e,i)||Rt(n,i))return null;var o=t[0],r=t[1],s=e[0],a=e[1],l=i[0],c=i[1],h=n[0],d=n[1],u=(o-s)*(c-d)-(r-a)*(l-h);return 0===u?null:[((o*a-r*s)*(l-h)-(o-s)*(l*d-c*h))/u,((o*a-r*s)*(c-d)-(r-a)*(l*d-c*h))/u]}(l,c,h,d);null!==u&&(s=d[0]!==h[0]?(u[0]-h[0])/(d[0]-h[0]):(u[1]-h[1])/(d[1]-h[1]),a(c[0]!==l[0]?(u[0]-l[0])/(c[0]-l[0]):(u[1]-l[1])/(c[1]-l[1]))||a(s)||(u.toString(),i.push(u)))}}function Rt(t,e){return t[0]===e[0]&&t[1]===e[1]}function Vt(t,e){return 2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]&&Infinity!==t[0]&&Infinity!==t[1]&&(n=t[0])>=-180&&n<=180&&(i=t[1])>=-90&&i<=90&&jt(t[0])<=e&&jt(t[1])<=e;var i,n}function jt(t){for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Tt(t,e){return"Polygon"===t.geometry.type&&1===t.geometry.coordinates.length&&t.geometry.coordinates[0].length>=4&&t.geometry.coordinates[0].every(function(t){return Vt(t,e)})&&(i=t.geometry.coordinates[0][0])[0]===(n=t.geometry.coordinates[0][t.geometry.coordinates[0].length-1])[0]&&i[1]===n[1];var i,n}function Xt(t,e){return Tt(t,e)&&!Nt(t)}var Yt=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="circle",n.center=void 0,n.clickCount=0,n.currentCircleId=void 0,n.keyEvents=void 0,n.cursors=void 0;var o={start:"crosshair"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentCircleId){var t=this.currentCircleId;this.center=void 0,this.currentCircleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted(),this.onFinish(t)}},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onClick=function(t){if(0===this.clickCount){this.center=[t.lng,t.lat];var e=Bt({center:this.center,radiusKilometers:1e-5,coordinatePrecision:this.coordinatePrecision}),i=this.store.create([{geometry:e.geometry,properties:{mode:this.mode}}]);this.currentCircleId=i[0],this.clickCount++,this.setDrawing()}else 1===this.clickCount&&this.center&&void 0!==this.currentCircleId&&this.createCircle(t),this.close()},o.onMouseMove=function(t){this.createCircle(t)},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){try{void 0!==this.currentCircleId&&this.store.delete([this.currentCircleId])}catch(t){}this.center=void 0,this.currentCircleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"Polygon"===t.geometry.type&&t.properties.mode===this.mode?(e.polygonFillColor=this.getHexColorStylingValue(this.styles.fillColor,e.polygonFillColor,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.outlineColor,e.polygonOutlineColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.outlineWidth,e.polygonOutlineWidth,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.fillOpacity,e.polygonFillOpacity,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&Xt(e,this.coordinatePrecision)},o.createCircle=function(t){if(1===this.clickCount&&this.center&&this.currentCircleId){var e=Wt(this.center,[t.lng,t.lat]),i=Bt({center:this.center,radiusKilometers:e,coordinatePrecision:this.coordinatePrecision});this.store.updateGeometry([{id:this.currentCircleId,geometry:i.geometry}])}},e}(Ot),zt=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="freehand",n.startingClick=!1,n.currentId=void 0,n.closingPointId=void 0,n.minDistance=void 0,n.keyEvents=void 0,n.cursors=void 0,n.preventPointsNearClose=void 0;var o={start:"crosshair",close:"pointer"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,n.preventPointsNearClose=e&&e.preventPointsNearClose||!0,n.minDistance=e&&e.minDistance||20,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentId){var t=this.currentId;this.closingPointId&&this.store.delete([this.closingPointId]),this.startingClick=!1,this.currentId=void 0,this.closingPointId=void 0,"drawing"===this.state&&this.setStarted(),this.onFinish(t)}},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onMouseMove=function(t){if(void 0!==this.currentId&&!1!==this.startingClick){var e=this.store.getGeometryCopy(this.currentId),i=e.coordinates[0][e.coordinates[0].length-2],n=this.project(i[0],i[1]),o=s({x:n.x,y:n.y},{x:t.containerX,y:t.containerY}),r=e.coordinates[0][0],a=this.project(r[0],r[1]);if(s({x:a.x,y:a.y},{x:t.containerX,y:t.containerY})<this.pointerDistance){if(this.setCursor(this.cursors.close),this.preventPointsNearClose)return}else this.setCursor(this.cursors.start);o<this.minDistance||(e.coordinates[0].pop(),this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[[].concat(e.coordinates[0],[[t.lng,t.lat],e.coordinates[0][0]])]}}]))}},o.onClick=function(t){if(!1===this.startingClick){var e=this.store.create([{geometry:{type:"Polygon",coordinates:[[[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat]]]},properties:{mode:this.mode}},{geometry:{type:"Point",coordinates:[t.lng,t.lat]},properties:{mode:this.mode}}]),i=e[1];return this.currentId=e[0],this.closingPointId=i,this.startingClick=!0,void this.setDrawing()}this.close()},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){try{this.currentId&&this.store.delete([this.currentId]),this.closingPointId&&this.store.delete([this.closingPointId])}catch(t){}this.closingPointId=void 0,this.currentId=void 0,this.startingClick=!1,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"Polygon"===t.geometry.type&&t.properties.mode===this.mode?(e.polygonFillColor=this.getHexColorStylingValue(this.styles.fillColor,e.polygonFillColor,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.outlineColor,e.polygonOutlineColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.outlineWidth,e.polygonOutlineWidth,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.fillOpacity,e.polygonFillOpacity,t),e):"Feature"===t.type&&"Point"===t.geometry.type&&t.properties.mode===this.mode?(e.pointWidth=this.getNumericStylingValue(this.styles.closingPointWidth,e.pointWidth,t),e.pointColor=this.getHexColorStylingValue(this.styles.closingPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.closingPointOutlineColor,e.pointOutlineColor,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.closingPointOutlineWidth,2,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&Tt(e,this.coordinatePrecision)},e}(Ot),Ut=Math.PI/180,Ht=180/Math.PI,Kt=/*#__PURE__*/function(){function t(t){this.coordinatePrecision=void 0,this.coords=void 0,this.length=void 0,this.coordinatePrecision=t,this.coords=[],this.length=0}return t.prototype.moveTo=function(t){this.length++,this.coords.push([r(t[0],this.coordinatePrecision),r(t[1],this.coordinatePrecision)])},t}(),Jt=/*#__PURE__*/function(){function t(t){var e=t.properties;this.geometries=void 0,this.properties=void 0,this.properties=e||{},this.geometries=[]}return t.prototype.toJSON=function(){if(1===this.geometries.length){var t=this.geometries[0].coords;if(t[0][0]&&!isNaN(t[0][0])&&t[0][1]&&!isNaN(t[0][1]))return{geometry:{type:"LineString",coordinates:t},type:"Feature",properties:this.properties}}return null},t}(),qt=/*#__PURE__*/function(){function t(t,e,i){if(this.g=void 0,this.start=void 0,this.end=void 0,this.properties=void 0,!t||void 0===t[0]||void 0===t[1])throw new Error("GreatCircle constructor expects two args: start and end objects with x and y properties");if(!e||void 0===e[0]||void 0===e[1])throw new Error("GreatCircle constructor expects two args: start and end objects with x and y properties");this.start={lng:t[0],lat:t[1],x:Ut*t[0],y:Ut*t[1]},this.end={lng:e[0],lat:e[1],x:Ut*e[0],y:Ut*e[1]},this.properties=i||{};var n=this.start.x-this.end.x,o=Math.pow(Math.sin((this.start.y-this.end.y)/2),2)+Math.cos(this.start.y)*Math.cos(this.end.y)*Math.pow(Math.sin(n/2),2);if(this.g=2*Math.asin(Math.sqrt(o)),this.g===Math.PI)throw new Error("it appears "+t+" and "+e+" are 'antipodal', e.g diametrically opposite, thus there is no single route but rather infinite");if(isNaN(this.g))throw new Error("could not calculate great circle between "+t+" and "+e)}var e=t.prototype;return e.interpolate=function(t){var e=Math.sin((1-t)*this.g)/Math.sin(this.g),i=Math.sin(t*this.g)/Math.sin(this.g),n=e*Math.cos(this.start.y)*Math.cos(this.start.x)+i*Math.cos(this.end.y)*Math.cos(this.end.x),o=e*Math.cos(this.start.y)*Math.sin(this.start.x)+i*Math.cos(this.end.y)*Math.sin(this.end.x),r=e*Math.sin(this.start.y)+i*Math.sin(this.end.y),s=Ht*Math.atan2(r,Math.sqrt(Math.pow(n,2)+Math.pow(o,2)));return[Ht*Math.atan2(o,n),s]},e.arc=function(t,e){var i=[];if(!t||t<=2)i.push([this.start.lng,this.start.lat]),i.push([this.end.lng,this.end.lat]);else for(var n=1/(t-1),o=0;o<t;++o){var r=this.interpolate(n*o);i.push(r)}for(var s=!1,a=0,l=e&&e.offset?e.offset:10,c=180-l,h=-180+l,d=360-l,u=1;u<i.length;++u){var g=i[u-1][0],p=i[u][0],f=Math.abs(p-g);f>d&&(p>c&&g<h||g>c&&p<h)?s=!0:f>a&&(a=f)}var y=[];if(s&&a<l){var v=[];y.push(v);for(var m=0;m<i.length;++m){var _=i[m][0];if(m>0&&Math.abs(_-i[m-1][0])>d){var C=i[m-1][0],P=i[m-1][1],S=i[m][0],x=i[m][1];if(C>-180&&C<h&&180===S&&m+1<i.length&&i[m-1][0]>-180&&i[m-1][0]<h){v.push([-180,i[m][1]]),m++,v.push([i[m][0],i[m][1]]);continue}if(C>c&&C<180&&-180===S&&m+1<i.length&&i[m-1][0]>c&&i[m-1][0]<180){v.push([180,i[m][1]]),m++,v.push([i[m][0],i[m][1]]);continue}if(C<h&&S>c){var w=C;C=S,S=w;var E=P;P=x,x=E}if(C>c&&S<h&&(S+=360),C<=180&&S>=180&&C<S){var b=(180-C)/(S-C),M=b*x+(1-b)*P;v.push([i[m-1][0]>c?180:-180,M]),(v=[]).push([i[m-1][0]>c?-180:180,M]),y.push(v)}else y.push(v=[]);v.push([_,i[m][1]])}else v.push([i[m][0],i[m][1]])}}else{var D=[];y.push(D);for(var I=0;I<i.length;++I)D.push([i[I][0],i[I][1]])}for(var k=new Jt({properties:this.properties}),F=0;F<y.length;++F){var O=new Kt(e.coordinatePrecision);k.geometries.push(O);for(var L=y[F],W=0;W<L.length;++W)O.moveTo(L[W])}return k},t}(),Zt=function(t){var e=t.store,i=t.mode,n=t.project,o=t.unproject,r=t.pointerDistance,s=t.coordinatePrecision;this.store=void 0,this.mode=void 0,this.project=void 0,this.unproject=void 0,this.pointerDistance=void 0,this.coordinatePrecision=void 0,this.store=e,this.mode=i,this.project=n,this.unproject=o,this.pointerDistance=r,this.coordinatePrecision=s},$t=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.pixelDistance=void 0,o.clickBoundingBox=void 0,o.getSnappableCoordinate=function(t,e){return o.getSnappableEnds(t,function(t){return Boolean(!t.properties||t.properties.mode!==o.mode||!e||t.id!==e)})},o.config=e,o.pixelDistance=i,o.clickBoundingBox=n,o}return n(e,t),e.prototype.getSnappableEnds=function(t,e){var i=this,n=this.clickBoundingBox.create(t),o=this.store.search(n,e),r={coord:void 0,minDist:Infinity};return o.forEach(function(e){var n;if("LineString"===e.geometry.type){var o=(n=e.geometry.coordinates)[0],s=i.pixelDistance.measure(t,o);s<r.minDist&&s<i.pointerDistance&&(r.coord=o);var a=n[n.length-1],l=i.pixelDistance.measure(t,a);l<r.minDist&&l<i.pointerDistance&&(r.coord=a)}}),r.coord},e}(Zt),Qt=/*#__PURE__*/function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.measure=function(t,e){var i=this.project(e[0],e[1]);return s({x:i.x,y:i.y},{x:t.containerX,y:t.containerY})},e}(Zt);function te(t){var e=t.unproject,i=t.point,n=t.pointerDistance/2,o=i.x,r=i.y;return{type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[e(o-n,r-n),e(o+n,r-n),e(o+n,r+n),e(o-n,r+n),e(o-n,r-n)].map(function(t){return[t.lng,t.lat]})]}}}var ee=/*#__PURE__*/function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.create=function(t){return te({unproject:this.unproject,point:{x:t.containerX,y:t.containerY},pointerDistance:this.pointerDistance})},e}(Zt),ie=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="greatcircle",n.currentCoordinate=0,n.currentId=void 0,n.closingPointId=void 0,n.keyEvents=void 0,n.snappingEnabled=void 0,n.cursors=void 0,n.snapping=void 0;var o={start:"crosshair",close:"pointer"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,n.snappingEnabled=!(!e||void 0===e.snapping)&&e.snapping,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentId){var t=this.currentId;this.closingPointId&&this.store.delete([this.closingPointId]),this.currentCoordinate=0,this.currentId=void 0,this.closingPointId=void 0,"drawing"===this.state&&this.setStarted(),this.onFinish(t)}},o.registerBehaviors=function(t){this.snapping=new $t(t,new Qt(t),new ee(t))},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onMouseMove=function(t){if(this.setCursor(this.cursors.start),(void 0!==this.currentId||0!==this.currentCoordinate)&&this.currentId&&1===this.currentCoordinate&&this.closingPointId){var e=this.currentId&&this.snappingEnabled&&this.snapping.getSnappableCoordinate(t,this.currentId)||[t.lng,t.lat];this.store.updateGeometry([{id:this.closingPointId,geometry:{type:"Point",coordinates:e}}]);var i=this.store.getGeometryCopy(this.currentId);i.coordinates.pop();var n=function(t){var e=t.start,i=t.end,n=t.options||{};if("object"!=typeof n)throw new Error("options argument is invalid, must be of type object");var o=n.properties,r=n.numberOfPoints,s=void 0===r?100:r,a=n.offset,l=void 0===a?10:a,c=n.coordinatePrecision,h=void 0===c?9:c;return new qt(e,i,void 0===o?{}:o).arc(s,{offset:l,coordinatePrecision:h}).toJSON()}({start:i.coordinates[0],end:e,options:{coordinatePrecision:this.coordinatePrecision}});n&&this.store.updateGeometry([{id:this.currentId,geometry:n.geometry}])}},o.onClick=function(t){if(0===this.currentCoordinate){var e=this.snappingEnabled&&this.snapping.getSnappableCoordinate(t)||[t.lng,t.lat],i=this.store.create([{geometry:{type:"LineString",coordinates:[e,e]},properties:{mode:this.mode}}]);this.currentId=i[0];var n=this.store.create([{geometry:{type:"Point",coordinates:e},properties:{mode:this.mode}}]);this.closingPointId=n[0],this.currentCoordinate++,this.setDrawing()}else 1===this.currentCoordinate&&this.currentId&&(this.setCursor("pointer"),this.close())},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel&&this.cleanUp(),t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){try{this.currentId&&this.store.delete([this.currentId]),this.closingPointId&&this.store.delete([this.closingPointId])}catch(t){}this.closingPointId=void 0,this.currentId=void 0,this.currentCoordinate=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"LineString"===t.geometry.type&&t.properties.mode===this.mode?(e.lineStringColor=this.getHexColorStylingValue(this.styles.lineStringColor,e.lineStringColor,t),e.lineStringWidth=this.getNumericStylingValue(this.styles.lineStringWidth,e.lineStringWidth,t),e):"Feature"===t.type&&"Point"===t.geometry.type&&t.properties.mode===this.mode?(e.pointColor=this.getHexColorStylingValue(this.styles.closingPointColor,e.pointColor,t),e.pointWidth=this.getNumericStylingValue(this.styles.closingPointWidth,e.pointWidth,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.closingPointOutlineColor,"#ffffff",t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.closingPointOutlineWidth,2,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&"LineString"===e.geometry.type&&e.properties.mode===this.mode&&e.geometry.coordinates.length>=2},e}(Ot),ne=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.pixelDistance=void 0,o.clickBoundingBox=void 0,o.getSnappableCoordinateFirstClick=function(t){return o.getSnappable(t,function(t){return Boolean(t.properties&&t.properties.mode===o.mode)})},o.getSnappableCoordinate=function(t,e){return o.getSnappable(t,function(t){return Boolean(t.properties&&t.properties.mode===o.mode&&t.id!==e)})},o.config=e,o.pixelDistance=i,o.clickBoundingBox=n,o}return n(e,t),e.prototype.getSnappable=function(t,e){var i=this,n=this.clickBoundingBox.create(t),o=this.store.search(n,e),r={coord:void 0,minDist:Infinity};return o.forEach(function(e){var n;if("Polygon"===e.geometry.type)n=e.geometry.coordinates[0];else{if("LineString"!==e.geometry.type)return;n=e.geometry.coordinates}n.forEach(function(e){var n=i.pixelDistance.measure(t,e);n<r.minDist&&n<i.pointerDistance&&(r.coord=e)})}),r.coord},e}(Zt),oe=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="linestring",n.currentCoordinate=0,n.currentId=void 0,n.closingPointId=void 0,n.allowSelfIntersections=void 0,n.keyEvents=void 0,n.snappingEnabled=void 0,n.cursors=void 0,n.mouseMove=!1,n.snapping=void 0;var o={start:"crosshair",close:"pointer"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,n.snappingEnabled=!(!e||void 0===e.snapping)&&e.snapping,n.allowSelfIntersections=!e||void 0===e.allowSelfIntersections||e.allowSelfIntersections,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentId){var t=this.store.getGeometryCopy(this.currentId);t.coordinates.pop(),this.store.updateGeometry([{id:this.currentId,geometry:{type:"LineString",coordinates:[].concat(t.coordinates)}}]);var e=this.currentId;this.closingPointId&&this.store.delete([this.closingPointId]),this.currentCoordinate=0,this.currentId=void 0,this.closingPointId=void 0,"drawing"===this.state&&this.setStarted(),this.onFinish(e)}},o.registerBehaviors=function(t){this.snapping=new ne(t,new Qt(t),new ee(t))},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onMouseMove=function(t){if(this.mouseMove=!0,this.setCursor(this.cursors.start),void 0!==this.currentId&&0!==this.currentCoordinate){var e=this.store.getGeometryCopy(this.currentId);e.coordinates.pop();var i=this.snappingEnabled&&this.snapping.getSnappableCoordinate(t,this.currentId)||[t.lng,t.lat];if(this.closingPointId){var n=e.coordinates[e.coordinates.length-1],o=this.project(n[0],n[1]);s({x:o.x,y:o.y},{x:t.containerX,y:t.containerY})<this.pointerDistance&&this.setCursor(this.cursors.close)}this.store.updateGeometry([{id:this.currentId,geometry:{type:"LineString",coordinates:[].concat(e.coordinates,[i])}}])}},o.onClick=function(t){this.currentCoordinate>0&&!this.mouseMove&&this.onMouseMove(t),this.mouseMove=!1;var e=this.currentId&&this.snappingEnabled&&this.snapping.getSnappableCoordinate(t,this.currentId)||[t.lng,t.lat];if(0===this.currentCoordinate){var i=this.store.create([{geometry:{type:"LineString",coordinates:[e,e]},properties:{mode:this.mode}}]);this.currentId=i[0],this.currentCoordinate++,this.setDrawing()}else if(1===this.currentCoordinate&&this.currentId){var n=this.store.getGeometryCopy(this.currentId),o=this.store.create([{geometry:{type:"Point",coordinates:[].concat(e)},properties:{mode:this.mode}}]);this.closingPointId=o[0],this.setCursor(this.cursors.close),this.store.updateGeometry([{id:this.currentId,geometry:{type:"LineString",coordinates:[n.coordinates[0],e,e]}}]),this.currentCoordinate++}else if(this.currentId){var r=this.store.getGeometryCopy(this.currentId),a=r.coordinates[r.coordinates.length-2],l=this.project(a[0],a[1]);if(s({x:l.x,y:l.y},{x:t.containerX,y:t.containerY})<this.pointerDistance)this.close();else{var c={type:"LineString",coordinates:[].concat(r.coordinates,[e])};if(!this.allowSelfIntersections&&Nt({type:"Feature",geometry:c,properties:{}}))return;this.closingPointId&&(this.setCursor(this.cursors.close),this.store.updateGeometry([{id:this.currentId,geometry:c},{id:this.closingPointId,geometry:{type:"Point",coordinates:r.coordinates[r.coordinates.length-1]}}]),this.currentCoordinate++)}}},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel&&this.cleanUp(),t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){try{this.currentId&&this.store.delete([this.currentId]),this.closingPointId&&this.store.delete([this.closingPointId])}catch(t){}this.closingPointId=void 0,this.currentId=void 0,this.currentCoordinate=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"LineString"===t.geometry.type&&t.properties.mode===this.mode?(e.lineStringColor=this.getHexColorStylingValue(this.styles.lineStringColor,e.lineStringColor,t),e.lineStringWidth=this.getNumericStylingValue(this.styles.lineStringWidth,e.lineStringWidth,t),e):"Feature"===t.type&&"Point"===t.geometry.type&&t.properties.mode===this.mode?(e.pointColor=this.getHexColorStylingValue(this.styles.closingPointColor,e.pointColor,t),e.pointWidth=this.getNumericStylingValue(this.styles.closingPointWidth,e.pointWidth,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.closingPointOutlineColor,"#ffffff",t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.closingPointOutlineWidth,2,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&"LineString"===e.geometry.type&&e.properties.mode===this.mode&&e.geometry.coordinates.length>=2},e}(Ot);function re(t,e){return"Point"===t.geometry.type&&Vt(t.geometry.coordinates,e)}var se=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="point",n.cursors=void 0;var o={create:"crosshair"};return n.cursors=e&&e.cursors?i({},o,e.cursors):o,n}n(e,t);var o=e.prototype;return o.start=function(){this.setStarted(),this.setCursor(this.cursors.create)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onClick=function(t){if(!this.store)throw new Error("Mode must be registered first");var e=this.store.create([{geometry:{type:"Point",coordinates:[t.lng,t.lat]},properties:{mode:this.mode}}]);this.onFinish(e[0])},o.onMouseMove=function(){},o.onKeyDown=function(){},o.onKeyUp=function(){},o.cleanUp=function(){},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"Point"===t.geometry.type&&t.properties.mode===this.mode&&(e.pointWidth=this.getNumericStylingValue(this.styles.pointWidth,e.pointWidth,t),e.pointColor=this.getHexColorStylingValue(this.styles.pointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.pointOutlineColor,e.pointOutlineColor,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.pointOutlineWidth,2,t)),e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&re(e,this.coordinatePrecision)},e}(Ot);function ae(t,e){return t[0]===e[0]&&t[1]===e[1]}var le=/*#__PURE__*/function(t){function i(e,i){var n;return(n=t.call(this,e)||this).config=void 0,n.pixelDistance=void 0,n._startEndPoints=[],n.config=e,n.pixelDistance=i,n}n(i,t);var o=i.prototype;return o.create=function(t,e){var i,n;if(this.ids.length)throw new Error("Opening and closing points already creating");if(t.length<=3)throw new Error("Requires at least 4 cooridnates");this._startEndPoints=this.store.create([{geometry:{type:"Point",coordinates:t[0]},properties:(i={mode:e},i[It]=!0,i)},{geometry:{type:"Point",coordinates:t[t.length-2]},properties:(n={mode:e},n[It]=!0,n)}])},o.delete=function(){this.ids.length&&(this.store.delete(this.ids),this._startEndPoints=[])},o.update=function(t){if(2!==this.ids.length)throw new Error("No closing points to update");this.store.updateGeometry([{id:this.ids[0],geometry:{type:"Point",coordinates:t[0]}},{id:this.ids[1],geometry:{type:"Point",coordinates:t[t.length-3]}}])},o.isClosingPoint=function(t){var e=this.store.getGeometryCopy(this.ids[0]),i=this.store.getGeometryCopy(this.ids[1]),n=this.pixelDistance.measure(t,e.coordinates),o=this.pixelDistance.measure(t,i.coordinates);return{isClosing:n<this.pointerDistance,isPreviousClosing:o<this.pointerDistance}},e(i,[{key:"ids",get:function(){return this._startEndPoints.concat()},set:function(t){}}]),i}(Zt),ce=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="polygon",n.currentCoordinate=0,n.currentId=void 0,n.allowSelfIntersections=void 0,n.keyEvents=void 0,n.snappingEnabled=void 0,n.snapping=void 0,n.pixelDistance=void 0,n.closingPoints=void 0,n.cursors=void 0,n.mouseMove=!1;var o={start:"crosshair",close:"pointer"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,n.snappingEnabled=!(!e||void 0===e.snapping)&&e.snapping,n.allowSelfIntersections=!e||void 0===e.allowSelfIntersections||e.allowSelfIntersections,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentId){var t=this.store.getGeometryCopy(this.currentId).coordinates[0];if(!(t.length<5)){this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[[].concat(t.slice(0,-2),[t[0]])]}}]);var e=this.currentId;this.currentCoordinate=0,this.currentId=void 0,this.closingPoints.delete(),"drawing"===this.state&&this.setStarted(),this.onFinish(e)}}},o.registerBehaviors=function(t){this.pixelDistance=new Qt(t),this.snapping=new ne(t,this.pixelDistance,new ee(t)),this.closingPoints=new le(t,this.pixelDistance)},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onMouseMove=function(t){if(this.mouseMove=!0,this.setCursor(this.cursors.start),void 0!==this.currentId&&0!==this.currentCoordinate){var e,i=this.snappingEnabled?this.snapping.getSnappableCoordinate(t,this.currentId):void 0,n=this.store.getGeometryCopy(this.currentId).coordinates[0];if(i&&(t.lng=i[0],t.lat=i[1]),1===this.currentCoordinate){var o=1/Math.pow(10,this.coordinatePrecision-1),r=Math.max(1e-6,o);e=[n[0],[t.lng,t.lat],[t.lng,t.lat-r],n[0]]}else if(2===this.currentCoordinate)e=[n[0],n[1],[t.lng,t.lat],n[0]];else{var s=this.closingPoints.isClosingPoint(t);s.isPreviousClosing||s.isClosing?(this.setCursor(this.cursors.close),e=[].concat(n.slice(0,-2),[n[0],n[0]])):e=[].concat(n.slice(0,-2),[[t.lng,t.lat],n[0]])}this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[e]}}])}},o.onClick=function(t){if(this.currentCoordinate>0&&!this.mouseMove&&this.onMouseMove(t),this.mouseMove=!1,0===this.currentCoordinate){var e=this.snappingEnabled?this.snapping.getSnappableCoordinateFirstClick(t):void 0;e&&(t.lng=e[0],t.lat=e[1]);var i=this.store.create([{geometry:{type:"Polygon",coordinates:[[[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat]]]},properties:{mode:this.mode}}]);this.currentId=i[0],this.currentCoordinate++,this.setDrawing()}else if(1===this.currentCoordinate&&this.currentId){var n=this.snappingEnabled?this.snapping.getSnappableCoordinate(t,this.currentId):void 0;n&&(t.lng=n[0],t.lat=n[1]);var o=this.store.getGeometryCopy(this.currentId);if(ae([t.lng,t.lat],o.coordinates[0][0]))return;this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[[o.coordinates[0][0],[t.lng,t.lat],[t.lng,t.lat],o.coordinates[0][0]]]}}]),this.currentCoordinate++}else if(2===this.currentCoordinate&&this.currentId){var r=this.snappingEnabled?this.snapping.getSnappableCoordinate(t,this.currentId):void 0;r&&(t.lng=r[0],t.lat=r[1]);var s=this.store.getGeometryCopy(this.currentId).coordinates[0];if(ae([t.lng,t.lat],s[1]))return;2===this.currentCoordinate&&this.closingPoints.create(s,"polygon"),this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[[s[0],s[1],[t.lng,t.lat],[t.lng,t.lat],s[0]]]}}]),this.currentCoordinate++}else if(this.currentId){var a=this.snappingEnabled?this.snapping.getSnappableCoordinate(t,this.currentId):void 0,l=this.store.getGeometryCopy(this.currentId).coordinates[0],c=this.closingPoints.isClosingPoint(t);if(c.isPreviousClosing||c.isClosing)this.close();else{if(a&&(t.lng=a[0],t.lat=a[1]),ae([t.lng,t.lat],l[this.currentCoordinate-1]))return;var h=(void 0===(d=[[].concat(l.slice(0,-1),[[t.lng,t.lat],l[0]])])&&(d=[[[0,0],[0,1],[1,1],[1,0],[0,0]]]),{type:"Feature",geometry:{type:"Polygon",coordinates:d},properties:{}});if(this.currentCoordinate>2&&!this.allowSelfIntersections&&Nt(h))return;this.store.updateGeometry([{id:this.currentId,geometry:h.geometry}]),this.currentCoordinate++,this.closingPoints.ids.length&&this.closingPoints.update(h.geometry.coordinates[0])}}var d},o.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},o.onKeyDown=function(){},o.onDragStart=function(){this.setCursor("unset")},o.onDrag=function(){},o.onDragEnd=function(){this.setCursor(this.cursors.start)},o.cleanUp=function(){try{this.currentId&&this.store.delete([this.currentId]),this.closingPoints.ids.length&&this.closingPoints.delete()}catch(t){}this.currentId=void 0,this.currentCoordinate=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});if(t.properties.mode===this.mode){if("Polygon"===t.geometry.type)return e.polygonFillColor=this.getHexColorStylingValue(this.styles.fillColor,e.polygonFillColor,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.outlineColor,e.polygonOutlineColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.outlineWidth,e.polygonOutlineWidth,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.fillOpacity,e.polygonFillOpacity,t),e.zIndex=10,e;if("Point"===t.geometry.type)return e.pointWidth=this.getNumericStylingValue(this.styles.closingPointWidth,e.pointWidth,t),e.pointColor=this.getHexColorStylingValue(this.styles.closingPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.closingPointOutlineColor,e.pointOutlineColor,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.closingPointOutlineWidth,2,t),e.zIndex=30,e}return e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&Tt(e,this.coordinatePrecision)},e}(Ot),he=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="rectangle",n.center=void 0,n.clickCount=0,n.currentRectangleId=void 0,n.keyEvents=void 0,n.cursors=void 0;var o={start:"crosshair"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.updateRectangle=function(t){if(1===this.clickCount&&this.center&&this.currentRectangleId){var e=this.store.getGeometryCopy(this.currentRectangleId).coordinates[0][0];this.store.updateGeometry([{id:this.currentRectangleId,geometry:{type:"Polygon",coordinates:[[e,[t.lng,e[1]],[t.lng,t.lat],[e[0],t.lat],e]]}}])}},o.close=function(){var t=this.currentRectangleId;this.center=void 0,this.currentRectangleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted(),t&&this.onFinish(t)},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onClick=function(t){if(0===this.clickCount){this.center=[t.lng,t.lat];var e=this.store.create([{geometry:{type:"Polygon",coordinates:[[[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat]]]},properties:{mode:this.mode}}]);this.currentRectangleId=e[0],this.clickCount++,this.setDrawing()}else this.updateRectangle(t),this.close()},o.onMouseMove=function(t){this.updateRectangle(t)},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){this.currentRectangleId&&this.store.delete([this.currentRectangleId]),this.center=void 0,this.currentRectangleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"Polygon"===t.geometry.type&&t.properties.mode===this.mode?(e.polygonFillColor=this.getHexColorStylingValue(this.styles.fillColor,e.polygonFillColor,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.outlineColor,e.polygonOutlineColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.outlineWidth,e.polygonOutlineWidth,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.fillOpacity,e.polygonFillOpacity,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&Xt(e,this.coordinatePrecision)},e}(Ot),de=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,{styles:e.styles})||this).type=wt.Render,i.mode="render",i.mode=e.modeName,i}n(e,t);var i=e.prototype;return i.registerBehaviors=function(t){this.mode=t.mode},i.start=function(){this.setStarted()},i.stop=function(){this.setStopped()},i.onKeyUp=function(){},i.onKeyDown=function(){},i.onClick=function(){},i.onDragStart=function(){},i.onDrag=function(){},i.onDragEnd=function(){},i.onMouseMove=function(){},i.cleanUp=function(){},i.styleFeature=function(t){return{pointColor:this.getHexColorStylingValue(this.styles.pointColor,"#3f97e0",t),pointWidth:this.getNumericStylingValue(this.styles.pointWidth,6,t),pointOutlineColor:this.getHexColorStylingValue(this.styles.pointOutlineColor,"#ffffff",t),pointOutlineWidth:this.getNumericStylingValue(this.styles.pointOutlineWidth,0,t),polygonFillColor:this.getHexColorStylingValue(this.styles.polygonFillColor,"#3f97e0",t),polygonFillOpacity:this.getNumericStylingValue(this.styles.polygonFillOpacity,.3,t),polygonOutlineColor:this.getHexColorStylingValue(this.styles.polygonOutlineColor,"#3f97e0",t),polygonOutlineWidth:this.getNumericStylingValue(this.styles.polygonOutlineWidth,4,t),lineStringWidth:this.getNumericStylingValue(this.styles.lineStringWidth,4,t),lineStringColor:this.getHexColorStylingValue(this.styles.lineStringColor,"#3f97e0",t),zIndex:this.getNumericStylingValue(this.styles.zIndex,0,t)}},i.validateFeature=function(e){return t.prototype.validateFeature.call(this,e)&&(re(e,this.coordinatePrecision)||Tt(e,this.coordinatePrecision)||function(t,e){return"LineString"===t.geometry.type&&t.geometry.coordinates.length>=2&&t.geometry.coordinates.every(function(t){return Vt(t,e)})}(e,this.coordinatePrecision))},e}(Ot);function ue(t,e,i,n,o){var s=n(t[0],t[1]),a=n(e[0],e[1]),l=o((s.x+a.x)/2,(s.y+a.y)/2),c=l.lat;return[r(l.lng,i),r(c,i)]}function ge(t,e,i,n){for(var o=[],r=0;r<t.length-1;r++){var s=ue(t[r],t[r+1],e,i,n);o.push(s)}return o}var pe=/*#__PURE__*/function(t){function i(e,i){var n;return(n=t.call(this,e)||this).config=void 0,n.selectionPointBehavior=void 0,n._midPoints=[],n.config=e,n.selectionPointBehavior=i,n}n(i,t);var o=i.prototype;return o.insert=function(t,e){var i=this.store.getGeometryCopy(t),n=this.store.getPropertiesCopy(t),o=n.midPointFeatureId,r=n.midPointSegment,s=this.store.getGeometryCopy(o),a="Polygon"===s.type?s.coordinates[0]:s.coordinates;a.splice(r+1,0,i.coordinates),s.coordinates="Polygon"===s.type?[a]:a,this.store.updateGeometry([{id:o,geometry:s}]),this.store.delete([].concat(this._midPoints,this.selectionPointBehavior.ids)),this.create(a,o,e),this.selectionPointBehavior.create(a,s.type,o)},o.create=function(t,e,i){var n=this;if(!this.store.has(e))throw new Error("Store does not have feature with this id");this._midPoints=this.store.create(function(t,e,i,n,o){return ge(t,i,n,o).map(function(t,i){return{geometry:{type:"Point",coordinates:t},properties:e(i)}})}(t,function(t){var i;return(i={mode:n.mode})[Dt]=!0,i.midPointSegment=t,i.midPointFeatureId=e,i},i,this.config.project,this.config.unproject))},o.delete=function(){this._midPoints.length&&(this.store.delete(this._midPoints),this._midPoints=[])},o.getUpdated=function(t){var e=this;if(0!==this._midPoints.length)return ge(t,this.coordinatePrecision,this.config.project,this.config.unproject).map(function(t,i){return{id:e._midPoints[i],geometry:{type:"Point",coordinates:t}}})},e(i,[{key:"ids",get:function(){return this._midPoints.concat()},set:function(t){}}]),i}(Zt),fe=/*#__PURE__*/function(t){function i(e){var i;return(i=t.call(this,e)||this)._selectionPoints=[],i}n(i,t);var o=i.prototype;return o.create=function(t,e,i){var n=this;this._selectionPoints=this.store.create(function(t,e,i){for(var n=[],o="Polygon"===e?t.length-1:t.length,r=0;r<o;r++)n.push({geometry:{type:"Point",coordinates:t[r]},properties:i(r)});return n}(t,e,function(t){return{mode:n.mode,selectionPoint:!0,selectionPointFeatureId:i,index:t}}))},o.delete=function(){this.ids.length&&(this.store.delete(this.ids),this._selectionPoints=[])},o.getUpdated=function(t){if(0!==this._selectionPoints.length)return this._selectionPoints.map(function(e,i){return{id:e,geometry:{type:"Point",coordinates:t[i]}}})},o.getOneUpdated=function(t,e){if(void 0!==this._selectionPoints[t])return{id:this._selectionPoints[t],geometry:{type:"Point",coordinates:e}}},e(i,[{key:"ids",get:function(){return this._selectionPoints.concat()},set:function(t){}}]),i}(Zt);function ye(t,e){for(var i,n,o,r=!1,s=0,a=e.length;s<a;s++)for(var l=e[s],c=0,h=l.length,d=h-1;c<h;d=c++)(n=l[c])[1]>(i=t)[1]!=(o=l[d])[1]>i[1]&&i[0]<(o[0]-n[0])*(i[1]-n[1])/(o[1]-n[1])+n[0]&&(r=!r);return r}var ve=function(t,e,i){var n=function(t){return t*t},o=function(t,e){return n(t.x-e.x)+n(t.y-e.y)};return Math.sqrt(function(t,e,i){var n=o(e,i);if(0===n)return o(t,e);var r=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/n;return r=Math.max(0,Math.min(1,r)),o(t,{x:e.x+r*(i.x-e.x),y:e.y+r*(i.y-e.y)})}(t,e,i))},me=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.createClickBoundingBox=void 0,o.pixelDistance=void 0,o.config=e,o.createClickBoundingBox=i,o.pixelDistance=n,o}return n(e,t),e.prototype.find=function(t,e){for(var i=void 0,n=Infinity,o=void 0,r=Infinity,s=this.createClickBoundingBox.create(t),a=this.store.search(s),l=0;l<a.length;l++){var c=a[l],h=c.geometry;if("Point"===h.type){if(c.properties.selectionPoint||!e&&c.properties[Dt])continue;var d=this.pixelDistance.measure(t,h.coordinates);c.properties[Dt]&&d<this.pointerDistance&&d<r?(r=d,o=c):!c.properties[Dt]&&d<this.pointerDistance&&d<n&&(n=d,i=c)}else if("LineString"===h.type)for(var u=0;u<h.coordinates.length-1;u++){var g=h.coordinates[u],p=h.coordinates[u+1],f=ve({x:t.containerX,y:t.containerY},this.project(g[0],g[1]),this.project(p[0],p[1]));f<this.pointerDistance&&f<n&&(n=f,i=c)}else"Polygon"===h.type&&ye([t.lng,t.lat],h.coordinates)&&(n=0,i=c)}return{clickedFeature:i,clickedMidPoint:o}},e}(Zt),_e=/*#__PURE__*/function(t){function e(e,i,n,o){var r;return(r=t.call(this,e)||this).config=void 0,r.featuresAtMouseEvent=void 0,r.selectionPoints=void 0,r.midPoints=void 0,r.draggedFeatureId=null,r.dragPosition=void 0,r.config=e,r.featuresAtMouseEvent=i,r.selectionPoints=n,r.midPoints=o,r}n(e,t);var i=e.prototype;return i.startDragging=function(t,e){this.draggedFeatureId=e,this.dragPosition=[t.lng,t.lat]},i.stopDragging=function(){this.draggedFeatureId=null,this.dragPosition=void 0},i.isDragging=function(){return null!==this.draggedFeatureId},i.canDrag=function(t,e){var i=this.featuresAtMouseEvent.find(t,!0).clickedFeature;return!(!i||i.id!==e)},i.drag=function(t){if(this.draggedFeatureId){var e=this.store.getGeometryCopy(this.draggedFeatureId),i=[t.lng,t.lat];if("Polygon"===e.type||"LineString"===e.type){var n,o;if(o="Polygon"===e.type?(n=e.coordinates[0]).length-1:(n=e.coordinates).length,!this.dragPosition)return!1;for(var s=0;s<o;s++){var a=n[s],l=[this.dragPosition[0]-i[0],this.dragPosition[1]-i[1]],c=r(a[0]-l[0],this.config.coordinatePrecision),h=r(a[1]-l[1],this.config.coordinatePrecision);if(c>180||c<-180||h>90||h<-90)return!1;n[s]=[c,h]}"Polygon"===e.type&&(n[n.length-1]=[n[0][0],n[0][1]]);var d=this.selectionPoints.getUpdated(n)||[],u=this.midPoints.getUpdated(n)||[];this.store.updateGeometry([{id:this.draggedFeatureId,geometry:e}].concat(d,u)),this.dragPosition=[t.lng,t.lat]}else"Point"===e.type&&(this.store.updateGeometry([{id:this.draggedFeatureId,geometry:{type:"Point",coordinates:i}}]),this.dragPosition=[t.lng,t.lat])}},e}(Zt),Ce=/*#__PURE__*/function(t){function e(e,i,n,o){var r;return(r=t.call(this,e)||this).config=void 0,r.pixelDistance=void 0,r.selectionPoints=void 0,r.midPoints=void 0,r.draggedCoordinate={id:null,index:-1},r.config=e,r.pixelDistance=i,r.selectionPoints=n,r.midPoints=o,r}n(e,t);var i=e.prototype;return i.getClosestCoordinate=function(t,e){var i,n={dist:Infinity,index:-1,isFirstOrLastPolygonCoord:!1};if("LineString"===e.type)i=e.coordinates;else{if("Polygon"!==e.type)return n;i=e.coordinates[0]}for(var o=0;o<i.length;o++){var r=this.pixelDistance.measure(t,i[o]);if(r<this.pointerDistance&&r<n.dist){var s="Polygon"===e.type&&(o===i.length-1||0===o);n.dist=r,n.index=s?0:o,n.isFirstOrLastPolygonCoord=s}}return n},i.getDraggableIndex=function(t,e){var i=this.store.getGeometryCopy(e),n=this.getClosestCoordinate(t,i);return-1===n.index?-1:n.index},i.drag=function(t,e){if(!this.draggedCoordinate.id)return!1;var i=this.draggedCoordinate.index,n=this.store.getGeometryCopy(this.draggedCoordinate.id),o="LineString"===n.type?n.coordinates:n.coordinates[0],r=[t.lng,t.lat];if(t.lng>180||t.lng<-180||t.lat>90||t.lat<-90)return!1;if("Polygon"!==n.type||i!==o.length-1&&0!==i)o[i]=r;else{var s=o.length-1;o[0]=r,o[s]=r}var a=this.selectionPoints.getOneUpdated(i,r),l=a?[a]:[],c=this.midPoints.getUpdated(o)||[];return!("Point"!==n.type&&!e&&Nt({type:"Feature",geometry:n,properties:{}})||(this.store.updateGeometry([{id:this.draggedCoordinate.id,geometry:n}].concat(l,c)),0))},i.isDragging=function(){return null!==this.draggedCoordinate.id},i.startDragging=function(t,e){this.draggedCoordinate={id:t,index:e}},i.stopDragging=function(){this.draggedCoordinate={id:null,index:-1}},e}(Zt);function Pe(t){var e=0,i=0,n=0;return("Polygon"===t.geometry.type?t.geometry.coordinates[0].slice(0,-1):t.geometry.coordinates).forEach(function(t){e+=t[0],i+=t[1],n++},!0),[e/n,i/n]}function Se(t,e){var i=t,n=e,o=At(i[1]),r=At(n[1]),s=At(n[0]-i[0]);s>Math.PI&&(s-=2*Math.PI),s<-Math.PI&&(s+=2*Math.PI);var a=Math.log(Math.tan(r/2+Math.PI/4)/Math.tan(o/2+Math.PI/4)),l=(Gt(Math.atan2(s,a))+360)%360;return l>180?-(360-l):l}function xe(t,e,i){var n=e;e<0&&(n=-Math.abs(n));var o=n/6371008.8,r=t[0]*Math.PI/180,s=At(t[1]),a=At(i),l=o*Math.cos(a),c=s+l;Math.abs(c)>Math.PI/2&&(c=c>0?Math.PI-c:-Math.PI-c);var h=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(s/2+Math.PI/4)),d=Math.abs(h)>1e-11?l/h:Math.cos(s),u=[(180*(r+o*Math.sin(a)/d)/Math.PI+540)%360-180,180*c/Math.PI];return u[0]+=u[0]-t[0]>180?-360:t[0]-u[0]>180?360:0,u}function we(t,e){t[0]+=t[0]-e[0]>180?-360:e[0]-t[0]>180?360:0;var i=e[1]*Math.PI/180,n=t[1]*Math.PI/180,o=n-i,r=Math.abs(t[0]-e[0])*Math.PI/180;r>Math.PI&&(r-=2*Math.PI);var s=Math.log(Math.tan(n/2+Math.PI/4)/Math.tan(i/2+Math.PI/4)),a=Math.abs(s)>1e-11?o/s:Math.cos(i);return 6371008.8*Math.sqrt(o*o+a*a*r*r)}var Ee=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.selectionPoints=void 0,o.midPoints=void 0,o.lastBearing=void 0,o.config=e,o.selectionPoints=i,o.midPoints=n,o}n(e,t);var i=e.prototype;return i.reset=function(){this.lastBearing=void 0},i.rotate=function(t,e){var i=this,n=this.store.getGeometryCopy(e);if("Polygon"===n.type||"LineString"===n.type){var o=[t.lng,t.lat],s=Se(Pe({type:"Feature",geometry:n,properties:{}}),o);if(this.lastBearing){!function(t,e){if(0===e)return t;var i=Pe(t);("Polygon"===t.geometry.type?t.geometry.coordinates[0]:t.geometry.coordinates).forEach(function(t){var n=Se(i,t)+e,o=we(i,t),r=xe(i,o,n);t[0]=r[0],t[1]=r[1]})}({type:"Feature",geometry:n,properties:{}},-(this.lastBearing-(s+180)));var a="Polygon"===n.type?n.coordinates[0]:n.coordinates;a.forEach(function(t){t[0]=r(t[0],i.coordinatePrecision),t[1]=r(t[1],i.coordinatePrecision)});var l=this.midPoints.getUpdated(a)||[],c=this.selectionPoints.getUpdated(a)||[];this.store.updateGeometry([{id:e,geometry:n}].concat(c,l)),this.lastBearing=s+180}else this.lastBearing=s+180}},e}(Zt);function be(t,e,i,n){return void 0===n&&(n="xy"),1===e||("Polygon"===t.geometry.type?t.geometry.coordinates[0]:t.geometry.coordinates).forEach(function(t){var o=we(i,t),r=Se(i,t),s=xe(i,o*e,r);"x"!==n&&"xy"!==n||(t[0]=s[0]),"y"!==n&&"xy"!==n||(t[1]=s[1])}),t}var Me=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.selectionPoints=void 0,o.midPoints=void 0,o.lastDistance=void 0,o.config=e,o.selectionPoints=i,o.midPoints=n,o}n(e,t);var i=e.prototype;return i.reset=function(){this.lastDistance=void 0},i.scale=function(t,e){var i=this,n=this.store.getGeometryCopy(e);if("Polygon"===n.type||"LineString"===n.type){var o=[t.lng,t.lat],s=Wt(Pe({type:"Feature",geometry:n,properties:{}}),o);if(this.lastDistance){var a={type:"Feature",geometry:n,properties:{}};be(a,1-(this.lastDistance-s)/s,Pe(a));var l="Polygon"===n.type?n.coordinates[0]:n.coordinates;l.forEach(function(t){t[0]=r(t[0],i.coordinatePrecision),t[1]=r(t[1],i.coordinatePrecision)});var c=this.midPoints.getUpdated(l)||[],h=this.selectionPoints.getUpdated(l)||[];this.store.updateGeometry([{id:e,geometry:n}].concat(h,c)),this.lastDistance=s}else this.lastDistance=s}},e}(Zt),De=/*#__PURE__*/function(t){function e(e,i,n,o,r){var s;return(s=t.call(this,e)||this).config=void 0,s.pixelDistance=void 0,s.selectionPoints=void 0,s.midPoints=void 0,s.minDistanceFromSelectionPoint=void 0,s.draggedCoordinate={id:null,index:-1},s.lastDistance=void 0,s.lastDistanceX=void 0,s.lastDistanceY=void 0,s.boundingBoxMaps={opposite:{0:4,1:5,2:6,3:7,4:0,5:1,6:2,7:3}},s.config=e,s.pixelDistance=i,s.selectionPoints=n,s.midPoints=o,s.minDistanceFromSelectionPoint=r,s}n(e,t);var i=e.prototype;return i.getClosestCoordinate=function(t,e){var i,n={dist:Infinity,index:-1,isFirstOrLastPolygonCoord:!1};if("LineString"===e.type)i=e.coordinates;else{if("Polygon"!==e.type)return n;i=e.coordinates[0]}for(var o=0;o<i.length;o++){var r=this.pixelDistance.measure(t,i[o]);if(r<this.pointerDistance&&r<n.dist){var s="Polygon"===e.type&&(o===i.length-1||0===o);n.dist=r,n.index=s?0:o,n.isFirstOrLastPolygonCoord=s}}return n},i.getDraggableIndex=function(t,e){var i=this.store.getGeometryCopy(e),n=this.getClosestCoordinate(t,i);return-1===n.index?-1:n.index},i.drag=function(t,e){var i=this;if(!this.draggedCoordinate.id)return!1;var n=this.draggedCoordinate.index,o=this.store.getGeometryCopy(this.draggedCoordinate.id);if("Polygon"!==o.type&&"LineString"!==o.type)return!1;var a,l,c="Polygon"===o.type?o.coordinates[0]:o.coordinates,h=c[n],d={type:"Feature",geometry:o,properties:{}};if("center-fixed"===e||"center"===e||"center-planar"===e)a=this.getCenterOrigin(d);else if("opposite-fixed"===e||"opposite"===e||"opposite-planar"===e){var u=this.getOppositeOrigin(d,h);a=u.origin,l=u.index}if(!a)return!1;var g=this.project(h[0],h[1]),p=s({x:t.containerX,y:t.containerY},{x:g.x,y:g.y}),f=this.project(a[0],a[1]),y=f.x,v=f.y,m=s({x:t.containerX,y:t.containerY},{x:y,y:v}),_=Math.abs(t.containerX-y),C=Math.abs(t.containerY-v);if(void 0===this.lastDistance||void 0===this.lastDistanceX||void 0===this.lastDistanceY)return this.lastDistance=m,this.lastDistanceX=_,this.lastDistanceY=C,!1;var P=1;0===this.lastDistance&&0===m||(P=1-(this.lastDistance-m)/m);var S=1;0===this.lastDistanceX&&0===_||(S=1-(this.lastDistanceX-_)/_);var x=1;if(0===this.lastDistanceY&&0===C||(x=1-(this.lastDistanceY-C)/C),"center-fixed"===e||"opposite-fixed"===e)be(d,P,a);else if("opposite"===e||"center"===e){if(p>m)return!1;if(!this.validateScale(S,x))return!1;be(d,S,a,"x"),be(d,x,a,"y")}else{if("center-planar"!==e&&"opposite-planar"!==e)throw new Error("Invalid resize option");if(!this.validateScale(S,x))return!1;this.scalePlanar(c,y,v,S,x)}for(var w=this.getBBox(c),E=0;E<w.length;E++)if(E!==l){var b=this.config.project(w[E][0],w[E][1]);if(this.pixelDistance.measure({containerX:b.x,containerY:b.y},a)<this.minDistanceFromSelectionPoint)return!1}c.forEach(function(t){t[0]=r(t[0],i.coordinatePrecision),t[1]=r(t[1],i.coordinatePrecision)});var M=this.midPoints.getUpdated(c)||[],D=this.selectionPoints.getUpdated(c)||[];return this.store.updateGeometry([{id:this.draggedCoordinate.id,geometry:o}].concat(D,M)),this.lastDistance=m,this.lastDistanceX=_,this.lastDistanceY=C,!0},i.validateScale=function(t,e){var i=!isNaN(t)&&t>0&&e<Number.MAX_SAFE_INTEGER,n=!isNaN(e)&&e>0&&e<Number.MAX_SAFE_INTEGER;return i&&n},i.scalePlanar=function(t,e,i,n,o){var r=this;t.forEach(function(t){var s=r.project(t[0],t[1]),a=r.unproject(e+(s.x-e)*n,i+(s.y-i)*o);t[0]=a.lng,t[1]=a.lat})},i.getCenterOrigin=function(t){return Pe(t)},i.getBBox=function(t){var e=[Infinity,Infinity,-Infinity,-Infinity];t.forEach(function(t){e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]<t[0]&&(e[2]=t[0]),e[3]<t[1]&&(e[3]=t[1])});var i=e[0],n=e[1],o=e[2],r=e[3];return[[i,r],[(i+o)/2,r],[o,r],[o,(n+r)/2],[o,n],[(i+o)/2,n],[i,n],[i,(n+r)/2]]},i.getOppositeOrigin=function(t,e){for(var i,n=this.getBBox("Polygon"===t.geometry.type?t.geometry.coordinates[0]:t.geometry.coordinates),o=Infinity,r=0;r<n.length;r++){var s=Wt(e,n[r]);s<o&&(i=r,o=s)}if(void 0===i)throw new Error("No closest coordinate found");var a=this.boundingBoxMaps.opposite[i];return{origin:n[a],index:a}},i.isDragging=function(){return null!==this.draggedCoordinate.id},i.startDragging=function(t,e){this.draggedCoordinate={id:t,index:e}},i.stopDragging=function(){this.lastDistance=void 0,this.draggedCoordinate={id:null,index:-1}},e}(Zt),Ie=/*#__PURE__*/function(t){function e(e){var n,o;(o=t.call(this,e)||this).mode="select",o.allowManualDeselection=!0,o.dragEventThrottle=5,o.dragEventCount=0,o.selected=[],o.flags=void 0,o.keyEvents=void 0,o.selectionPoints=void 0,o.midPoints=void 0,o.featuresAtMouseEvent=void 0,o.pixelDistance=void 0,o.clickBoundingBox=void 0,o.dragFeature=void 0,o.dragCoordinate=void 0,o.rotateFeature=void 0,o.scaleFeature=void 0,o.dragCoordinateResizeFeature=void 0,o.cursors=void 0,o.flags=e&&e.flags?e.flags:{};var r={pointerOver:"move",dragStart:"move",dragEnd:"move",insertMidpoint:"crosshair"};if(o.cursors=e&&e.cursors?i({},r,e.cursors):r,null===(null==e?void 0:e.keyEvents))o.keyEvents={deselect:null,delete:null,rotate:null,scale:null};else{var s={deselect:"Escape",delete:"Delete",rotate:["Control","r"],scale:["Control","s"]};o.keyEvents=e&&e.keyEvents?i({},s,e.keyEvents):s}return o.dragEventThrottle=e&&void 0!==e.dragEventThrottle&&e.dragEventThrottle||5,o.allowManualDeselection=null==(n=null==e?void 0:e.allowManualDeselection)||n,o}n(e,t);var o=e.prototype;return o.selectFeature=function(t){this.select(t,!1)},o.setSelecting=function(){if("started"!==this._state)throw new Error("Mode must be started to move to selecting state");this._state="selecting"},o.registerBehaviors=function(t){this.pixelDistance=new Qt(t),this.clickBoundingBox=new ee(t),this.featuresAtMouseEvent=new me(t,this.clickBoundingBox,this.pixelDistance),this.selectionPoints=new fe(t),this.midPoints=new pe(t,this.selectionPoints),this.rotateFeature=new Ee(t,this.selectionPoints,this.midPoints),this.scaleFeature=new Me(t,this.selectionPoints,this.midPoints),this.dragFeature=new _e(t,this.featuresAtMouseEvent,this.selectionPoints,this.midPoints),this.dragCoordinate=new Ce(t,this.pixelDistance,this.selectionPoints,this.midPoints),this.dragCoordinateResizeFeature=new De(t,this.pixelDistance,this.selectionPoints,this.midPoints,10)},o.deselectFeature=function(){this.deselect()},o.deselect=function(){var t=this,e=this.selected.filter(function(e){return t.store.has(e)}).map(function(t){return{id:t,property:Mt,value:!1}});this.store.updateProperty(e),this.onDeselect(this.selected[0]),this.selected=[],this.selectionPoints.delete(),this.midPoints.delete()},o.deleteSelected=function(){this.store.delete(this.selected),this.selected=[]},o.onRightClick=function(t){var e=this;if(this.selectionPoints.ids.length){var i,n=Infinity;if(this.selectionPoints.ids.forEach(function(o){var r=e.store.getGeometryCopy(o),s=e.pixelDistance.measure(t,r.coordinates);s<e.pointerDistance&&s<n&&(n=s,i=e.store.getPropertiesCopy(o))}),i){var o=i.selectionPointFeatureId,r=i.index,s=this.store.getPropertiesCopy(o),a=this.flags[s.mode];if(a&&a.feature&&a.feature.coordinates&&a.feature.coordinates.deletable){var l,c=this.store.getGeometryCopy(o);if("Polygon"===c.type){if((l=c.coordinates[0]).length<=4)return}else if("LineString"===c.type&&(l=c.coordinates).length<=3)return;l&&("Polygon"===c.type&&0===r||r===l.length-1?(l.shift(),l.pop(),l.push([l[0][0],l[0][1]])):l.splice(r,1),this.store.delete([].concat(this.midPoints.ids,this.selectionPoints.ids)),this.store.updateGeometry([{id:o,geometry:c}]),this.selectionPoints.create(l,c.type,o),a&&a.feature&&a.feature.coordinates&&a.feature.coordinates.midpoints&&this.midPoints.create(l,o,this.coordinatePrecision))}}}},o.select=function(t,e){if(void 0===e&&(e=!0),this.selected[0]!==t){var i=this.store.getPropertiesCopy(t),n=this.flags[i.mode];if(n&&n.feature){var o=this.selected[0];if(o){if(o===t)return;this.deselect()}e&&this.setCursor(this.cursors.pointerOver),this.selected=[t],this.store.updateProperty([{id:t,property:"selected",value:!0}]),this.onSelect(t);var r=this.store.getGeometryCopy(t),s=r.type,a=r.coordinates;if("LineString"===s||"Polygon"===s){var l="LineString"===s?a:a[0];l&&n&&n.feature.coordinates&&(this.selectionPoints.create(l,s,t),n.feature.coordinates.midpoints&&this.midPoints.create(l,t,this.coordinatePrecision))}}}},o.onLeftClick=function(t){var e=this.featuresAtMouseEvent.find(t,this.selected.length>0),i=e.clickedFeature,n=e.clickedMidPoint;if(this.selected.length&&n)this.midPoints.insert(n.id,this.coordinatePrecision);else if(i&&i.id)this.select(i.id,!0);else if(this.selected.length&&this.allowManualDeselection)return void this.deselect()},o.start=function(){this.setStarted(),this.setSelecting()},o.stop=function(){this.cleanUp(),this.setStarted(),this.setStopped()},o.onClick=function(t){"right"!==t.button?"left"===t.button&&this.onLeftClick(t):this.onRightClick(t)},o.canScale=function(t){return this.keyEvents.scale&&this.keyEvents.scale.every(function(e){return t.heldKeys.includes(e)})},o.canRotate=function(t){return this.keyEvents.rotate&&this.keyEvents.rotate.every(function(e){return t.heldKeys.includes(e)})},o.preventDefaultKeyEvent=function(t){var e=this.canRotate(t),i=this.canScale(t);(e||i)&&t.preventDefault()},o.onKeyDown=function(t){this.preventDefaultKeyEvent(t)},o.onKeyUp=function(t){if(this.preventDefaultKeyEvent(t),this.keyEvents.delete&&t.key===this.keyEvents.delete){if(!this.selected.length)return;this.onDeselect(this.selected[0]),this.deleteSelected(),this.selectionPoints.delete(),this.midPoints.delete()}else this.keyEvents.deselect&&t.key===this.keyEvents.deselect&&this.cleanUp()},o.cleanUp=function(){this.selected.length&&this.deselect()},o.onDragStart=function(t,e){if(this.selected.length){var i=this.store.getPropertiesCopy(this.selected[0]),n=this.flags[i.mode];if(n&&n.feature&&(n.feature.draggable||n.feature.coordinates&&n.feature.coordinates.draggable)){this.dragEventCount=0;var o=this.selected[0],r=this.dragCoordinate.getDraggableIndex(t,o);return n&&n.feature&&n.feature.coordinates&&n.feature.coordinates.draggable&&-1!==r?(this.setCursor(this.cursors.dragStart),n.feature.coordinates.resizable?this.dragCoordinateResizeFeature.startDragging(o,r):this.dragCoordinate.startDragging(o,r),void e(!1)):n&&n.feature&&n.feature.draggable&&this.dragFeature.canDrag(t,o)?(this.setCursor(this.cursors.dragStart),this.dragFeature.startDragging(t,o),void e(!1)):void 0}}},o.onDrag=function(t,e){var i=this.selected[0];if(i){var n=this.store.getPropertiesCopy(i),o=this.flags[n.mode],r=!0===(o&&o.feature&&o.feature.selfIntersectable);if(this.dragEventCount++,this.dragEventCount%this.dragEventThrottle!=0)return o&&o.feature&&o.feature.rotateable&&this.canRotate(t)?(e(!1),void this.rotateFeature.rotate(t,i)):o&&o.feature&&o.feature.scaleable&&this.canScale(t)?(e(!1),void this.scaleFeature.scale(t,i)):this.dragCoordinateResizeFeature.isDragging()&&o.feature&&o.feature.coordinates&&o.feature.coordinates.resizable?(e(!1),void this.dragCoordinateResizeFeature.drag(t,o.feature.coordinates.resizable)):void(this.dragCoordinate.isDragging()?this.dragCoordinate.drag(t,r):this.dragFeature.isDragging()?this.dragFeature.drag(t):e(!0))}},o.onDragEnd=function(t,e){this.setCursor(this.cursors.dragEnd),(this.dragCoordinate.isDragging()||this.dragFeature.isDragging())&&this.onFinish(this.selected[0]),this.dragCoordinate.stopDragging(),this.dragFeature.stopDragging(),this.dragCoordinateResizeFeature.stopDragging(),this.rotateFeature.reset(),this.scaleFeature.reset(),e(!0)},o.onMouseMove=function(t){var e=this;if(this.selected.length){if(!this.dragFeature.isDragging()){var i=!1;this.midPoints.ids.forEach(function(n){if(!i){var o=e.store.getGeometryCopy(n);e.pixelDistance.measure(t,o.coordinates)<e.pointerDistance&&(i=!0)}});var n=!1;if(this.selectionPoints.ids.forEach(function(o){var r=e.store.getGeometryCopy(o);e.pixelDistance.measure(t,r.coordinates)<e.pointerDistance&&(i=!1,n=!0)}),i)this.setCursor(this.cursors.insertMidpoint);else{var o=this.featuresAtMouseEvent.find(t,!0).clickedFeature;this.setCursor(this.selected.length>0&&(o&&o.id===this.selected[0]||n)?this.cursors.pointerOver:"unset")}}}else this.setCursor("unset")},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});if(t.properties.mode===this.mode&&"Point"===t.geometry.type){if(t.properties.selectionPoint)return e.pointColor=this.getHexColorStylingValue(this.styles.selectionPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.selectionPointOutlineColor,e.pointOutlineColor,t),e.pointWidth=this.getNumericStylingValue(this.styles.selectionPointWidth,e.pointWidth,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.selectionPointOutlineWidth,2,t),e.zIndex=30,e;if(t.properties.midPoint)return e.pointColor=this.getHexColorStylingValue(this.styles.midPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.midPointOutlineColor,e.pointOutlineColor,t),e.pointWidth=this.getNumericStylingValue(this.styles.midPointWidth,4,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.midPointOutlineWidth,2,t),e.zIndex=40,e}else if(t.properties[Mt]){if("Polygon"===t.geometry.type)return e.polygonFillColor=this.getHexColorStylingValue(this.styles.selectedPolygonColor,e.polygonFillColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.selectedPolygonOutlineWidth,e.polygonOutlineWidth,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.selectedPolygonOutlineColor,e.polygonOutlineColor,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.selectedPolygonFillOpacity,e.polygonFillOpacity,t),e.zIndex=10,e;if("LineString"===t.geometry.type)return e.lineStringColor=this.getHexColorStylingValue(this.styles.selectedLineStringColor,e.lineStringColor,t),e.lineStringWidth=this.getNumericStylingValue(this.styles.selectedLineStringWidth,e.lineStringWidth,t),e.zIndex=10,e;if("Point"===t.geometry.type)return e.pointWidth=this.getNumericStylingValue(this.styles.selectedPointWidth,e.pointWidth,t),e.pointColor=this.getHexColorStylingValue(this.styles.selectedPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.selectedPointOutlineColor,e.pointOutlineColor,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.selectedPointOutlineWidth,e.pointOutlineWidth,t),e.zIndex=10,e}return e},e}(Lt),ke=/*#__PURE__*/function(t){function e(){for(var e,i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];return(e=t.call.apply(t,[this].concat(n))||this).type=wt.Static,e.mode="static",e}n(e,t);var o=e.prototype;return o.start=function(){},o.stop=function(){},o.onKeyUp=function(){},o.onKeyDown=function(){},o.onClick=function(){},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.onMouseMove=function(){},o.cleanUp=function(){},o.styleFeature=function(){return i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0})},e}(Ot);function Fe(t,e,i,n,o){for(;n>i;){if(n-i>600){var r=n-i+1,s=e-i+1,a=Math.log(r),l=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*l*(r-l)/r)*(s-r/2<0?-1:1);Fe(t,e,Math.max(i,Math.floor(e-s*l/r+c)),Math.min(n,Math.floor(e+(r-s)*l/r+c)),o)}var h=t[e],d=i,u=n;for(Oe(t,i,e),o(t[n],h)>0&&Oe(t,i,n);d<u;){for(Oe(t,d,u),d++,u--;o(t[d],h)<0;)d++;for(;o(t[u],h)>0;)u--}0===o(t[i],h)?Oe(t,i,u):Oe(t,++u,n),u<=e&&(i=u+1),e<=u&&(n=u-1)}}function Oe(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function Le(t,e){We(t,0,t.children.length,e,t)}function We(t,e,i,n,o){o||(o=Te([])),o.minX=Infinity,o.minY=Infinity,o.maxX=-Infinity,o.maxY=-Infinity;for(var r=e;r<i;r++){var s=t.children[r];Ae(o,t.leaf?n(s):s)}return o}function Ae(t,e){return t.minX=Math.min(t.minX,e.minX),t.minY=Math.min(t.minY,e.minY),t.maxX=Math.max(t.maxX,e.maxX),t.maxY=Math.max(t.maxY,e.maxY),t}function Ge(t,e){return t.minX-e.minX}function Be(t,e){return t.minY-e.minY}function Ne(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function Re(t){return t.maxX-t.minX+(t.maxY-t.minY)}function Ve(t,e){return t.minX<=e.minX&&t.minY<=e.minY&&e.maxX<=t.maxX&&e.maxY<=t.maxY}function je(t,e){return e.minX<=t.maxX&&e.minY<=t.maxY&&e.maxX>=t.minX&&e.maxY>=t.minY}function Te(t){return{children:t,height:1,leaf:!0,minX:Infinity,minY:Infinity,maxX:-Infinity,maxY:-Infinity}}function Xe(t,e,i,n,o){for(var r=[e,i];r.length;)if(!((i=r.pop())-(e=r.pop())<=n)){var s=e+Math.ceil((i-e)/n/2)*n;Fe(t,s,e,i,o),r.push(e,s,s,i)}}var Ye=/*#__PURE__*/function(){function t(t){this._maxEntries=void 0,this._minEntries=void 0,this.data=void 0,this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}var e=t.prototype;return e.search=function(t){var e=this.data,i=[];if(!je(t,e))return i;for(var n=this.toBBox,o=[];e;){for(var r=0;r<e.children.length;r++){var s=e.children[r],a=e.leaf?n(s):s;je(t,a)&&(e.leaf?i.push(s):Ve(t,a)?this._all(s,i):o.push(s))}e=o.pop()}return i},e.collides=function(t){var e=this.data;if(je(t,e))for(var i=[];e;){for(var n=0;n<e.children.length;n++){var o=e.children[n],r=e.leaf?this.toBBox(o):o;if(je(t,r)){if(e.leaf||Ve(t,r))return!0;i.push(o)}}e=i.pop()}return!1},e.load=function(t){if(t.length<this._minEntries)for(var e=0;e<t.length;e++)this.insert(t[e]);else{var i=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===i.height)this._splitRoot(this.data,i);else{if(this.data.height<i.height){var n=this.data;this.data=i,i=n}this._insert(i,this.data.height-i.height-1,!0)}else this.data=i}},e.insert=function(t){this._insert(t,this.data.height-1)},e.clear=function(){this.data=Te([])},e.remove=function(t){for(var e,i,n=this.data,o=this.toBBox(t),r=[],s=[],a=!1;n||r.length;){if(n||(n=r.pop(),i=r[r.length-1],e=s.pop(),a=!0),n.leaf){var l=n.children.indexOf(t);-1!==l&&(n.children.splice(l,1),r.push(n),this._condense(r))}a||n.leaf||!Ve(n,o)?i?(e++,n=i.children[e],a=!1):n=null:(r.push(n),s.push(e),e=0,i=n,n=n.children[0])}},e.toBBox=function(t){return t},e.compareMinX=function(t,e){return t.minX-e.minX},e.compareMinY=function(t,e){return t.minY-e.minY},e._all=function(t,e){for(var i=[];t;)t.leaf?e.push.apply(e,t.children):i.push.apply(i,t.children),t=i.pop();return e},e._build=function(t,e,i,n){var o,r=i-e+1,s=this._maxEntries;if(r<=s)return Le(o=Te(t.slice(e,i+1)),this.toBBox),o;n||(n=Math.ceil(Math.log(r)/Math.log(s)),s=Math.ceil(r/Math.pow(s,n-1))),(o=Te([])).leaf=!1,o.height=n;var a=Math.ceil(r/s),l=a*Math.ceil(Math.sqrt(s));Xe(t,e,i,l,this.compareMinX);for(var c=e;c<=i;c+=l){var h=Math.min(c+l-1,i);Xe(t,c,h,a,this.compareMinY);for(var d=c;d<=h;d+=a){var u=Math.min(d+a-1,h);o.children.push(this._build(t,d,u,n-1))}}return Le(o,this.toBBox),o},e._chooseSubtree=function(t,e,i,n){for(;n.push(e),!e.leaf&&n.length-1!==i;){for(var o=Infinity,r=Infinity,s=void 0,a=0;a<e.children.length;a++){var l=e.children[a],c=Ne(l),h=(d=t,u=l,(Math.max(u.maxX,d.maxX)-Math.min(u.minX,d.minX))*(Math.max(u.maxY,d.maxY)-Math.min(u.minY,d.minY))-c);h<r?(r=h,o=c<o?c:o,s=l):h===r&&c<o&&(o=c,s=l)}e=s||e.children[0]}var d,u;return e},e._insert=function(t,e,i){var n=i?t:this.toBBox(t),o=[],r=this._chooseSubtree(n,this.data,e,o);for(r.children.push(t),Ae(r,n);e>=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(n,o,e)},e._split=function(t,e){var i=t[e],n=i.children.length,o=this._minEntries;this._chooseSplitAxis(i,o,n);var r=this._chooseSplitIndex(i,o,n),s=Te(i.children.splice(r,i.children.length-r));s.height=i.height,s.leaf=i.leaf,Le(i,this.toBBox),Le(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(i,s)},e._splitRoot=function(t,e){this.data=Te([t,e]),this.data.height=t.height+1,this.data.leaf=!1,Le(this.data,this.toBBox)},e._chooseSplitIndex=function(t,e,i){for(var n,o,r,s,a,l,c,h=Infinity,d=Infinity,u=e;u<=i-e;u++){var g=We(t,0,u,this.toBBox),p=We(t,u,i,this.toBBox),f=(o=g,r=p,s=Math.max(o.minX,r.minX),a=Math.max(o.minY,r.minY),l=Math.min(o.maxX,r.maxX),c=Math.min(o.maxY,r.maxY),Math.max(0,l-s)*Math.max(0,c-a)),y=Ne(g)+Ne(p);f<h?(h=f,n=u,d=y<d?y:d):f===h&&y<d&&(d=y,n=u)}return n||i-e},e._chooseSplitAxis=function(t,e,i){var n=t.leaf?this.compareMinX:Ge,o=t.leaf?this.compareMinY:Be;this._allDistMargin(t,e,i,n)<this._allDistMargin(t,e,i,o)&&t.children.sort(n)},e._allDistMargin=function(t,e,i,n){t.children.sort(n);for(var o=this.toBBox,r=We(t,0,e,o),s=We(t,i-e,i,o),a=Re(r)+Re(s),l=e;l<i-e;l++){var c=t.children[l];Ae(r,t.leaf?o(c):c),a+=Re(r)}for(var h=i-e-1;h>=e;h--){var d=t.children[h];Ae(s,t.leaf?o(d):d),a+=Re(s)}return a},e._adjustParentBBoxes=function(t,e,i){for(var n=i;n>=0;n--)Ae(e[n],t)},e._condense=function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():Le(t[i],this.toBBox)},t}(),ze=/*#__PURE__*/function(){function t(t){this.tree=void 0,this.idToNode=void 0,this.nodeToId=void 0,this.tree=new Ye(t&&t.maxEntries?t.maxEntries:9),this.idToNode=new Map,this.nodeToId=new Map}var e=t.prototype;return e.setMaps=function(t,e){this.idToNode.set(t.id,e),this.nodeToId.set(e,t.id)},e.toBBox=function(t){var e,i=[],n=[];if("Polygon"===t.geometry.type)e=t.geometry.coordinates[0];else if("LineString"===t.geometry.type)e=t.geometry.coordinates;else{if("Point"!==t.geometry.type)throw new Error("Not a valid feature to turn into a bounding box");e=[t.geometry.coordinates]}for(var o=0;o<e.length;o++)n.push(e[o][1]),i.push(e[o][0]);var r=Math.min.apply(Math,n),s=Math.max.apply(Math,n);return{minX:Math.min.apply(Math,i),minY:r,maxX:Math.max.apply(Math,i),maxY:s}},e.insert=function(t){if(this.idToNode.get(String(t.id)))throw new Error("Feature already exists");var e=this.toBBox(t);this.setMaps(t,e),this.tree.insert(e)},e.load=function(t){var e=this,i=[],n=new Set;t.forEach(function(t){var o=e.toBBox(t);if(e.setMaps(t,o),n.has(String(t.id)))throw new Error("Duplicate feature ID found "+t.id);n.add(String(t.id)),i.push(o)}),this.tree.load(i)},e.update=function(t){this.remove(t.id);var e=this.toBBox(t);this.setMaps(t,e),this.tree.insert(e)},e.remove=function(t){var e=this.idToNode.get(t);if(!e)throw new Error(t+" not inserted into the spatial index");this.tree.remove(e)},e.clear=function(){this.tree.clear()},e.search=function(t){var e=this;return this.tree.search(this.toBBox(t)).map(function(t){return e.nodeToId.get(t)})},e.collides=function(t){return this.tree.collides(this.toBBox(t))},t}(),Ue={getId:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)})},isValidId:function(t){return"string"==typeof t&&36===t.length}},He=/*#__PURE__*/function(){function t(t){this.idStrategy=void 0,this.tracked=void 0,this.spatialIndex=void 0,this.store=void 0,this._onChange=function(){},this.store={},this.spatialIndex=new ze,this.tracked=!t||!1!==t.tracked,this.idStrategy=t&&t.idStrategy?t.idStrategy:Ue}var e=t.prototype;return e.clone=function(t){return JSON.parse(JSON.stringify(t))},e.getId=function(){return this.idStrategy.getId()},e.has=function(t){return Boolean(this.store[t])},e.load=function(t,e){var i=this;if(0!==t.length){var n=this.clone(t);n.forEach(function(t){null==t.id&&(t.id=i.idStrategy.getId()),i.tracked&&(t.properties.createdAt?Ft(t.properties.createdAt):t.properties.createdAt=+new Date,t.properties.updatedAt?Ft(t.properties.updatedAt):t.properties.updatedAt=+new Date)});var o=[];n.forEach(function(t){var n=t.id;if(e&&!e(t))throw new Error("Feature is not "+n+" valid: "+JSON.stringify(t));if(i.has(n))throw new Error("Feature already exists with this id: "+n);i.store[n]=t,o.push(n)}),this.spatialIndex.load(n),this._onChange(o,"create")}},e.search=function(t,e){var i=this,n=this.spatialIndex.search(t).map(function(t){return i.store[t]});return this.clone(e?n.filter(e):n)},e.registerOnChange=function(t){this._onChange=function(e,i){t(e,i)}},e.getGeometryCopy=function(t){var e=this.store[t];if(!e)throw new Error("No feature with this id ("+t+"), can not get geometry copy");return this.clone(e.geometry)},e.getPropertiesCopy=function(t){var e=this.store[t];if(!e)throw new Error("No feature with this id ("+t+"), can not get properties copy");return this.clone(e.properties)},e.updateProperty=function(t){var e=this,i=[];t.forEach(function(t){var n=t.id,o=t.property,r=t.value,s=e.store[n];if(!s)throw new Error("No feature with this ("+n+"), can not update geometry");i.push(n),s.properties[o]=r,e.tracked&&(s.properties.updatedAt=+new Date)}),this._onChange&&this._onChange(i,"update")},e.updateGeometry=function(t){var e=this,i=[];t.forEach(function(t){var n=t.id,o=t.geometry;i.push(n);var r=e.store[n];if(!r)throw new Error("No feature with this ("+n+"), can not update geometry");r.geometry=e.clone(o),e.spatialIndex.update(r),e.tracked&&(r.properties.updatedAt=+new Date)}),this._onChange&&this._onChange(i,"update")},e.create=function(t){var e=this,n=[];return t.forEach(function(t){var o,r=t.geometry,s=t.properties,a=i({},s);e.tracked&&(o=+new Date,s?(a.createdAt="number"==typeof s.createdAt?s.createdAt:o,a.updatedAt="number"==typeof s.updatedAt?s.updatedAt:o):a={createdAt:o,updatedAt:o});var l=e.getId(),c={id:l,type:"Feature",geometry:r,properties:a};e.store[l]=c,e.spatialIndex.insert(c),n.push(l)}),this._onChange&&this._onChange([].concat(n),"create"),n},e.delete=function(t){var e=this;t.forEach(function(t){if(!e.store[t])throw new Error("No feature with this id, can not delete");delete e.store[t],e.spatialIndex.remove(t)}),this._onChange&&this._onChange([].concat(t),"delete")},e.copyAll=function(){var t=this;return this.clone(Object.keys(this.store).map(function(e){return t.store[e]}))},e.clear=function(){this.store={},this.spatialIndex.clear()},e.size=function(){return Object.keys(this.store).length},t}(),Ke={TerraDrawBaseDrawMode:Ot,TerraDrawBaseAdapter:l};exports.TerraDraw=/*#__PURE__*/function(){function t(t){var e=this;this._modes=void 0,this._mode=void 0,this._adapter=void 0,this._enabled=!1,this._store=void 0,this._eventListeners=void 0,this._instanceSelectMode=void 0,this._adapter=t.adapter,this._mode=new ke;var n=new Set,o=t.modes.reduce(function(t,e){if(n.has(e.mode))throw new Error("There is already a "+e.mode+" mode provided");return n.add(e.mode),t[e.mode]=e,t},{}),r=Object.keys(o);if(0===r.length)throw new Error("No modes provided");r.forEach(function(t){if(o[t].type===wt.Select){if(e._instanceSelectMode)throw new Error("only one type of select mode can be provided");e._instanceSelectMode=t}}),this._modes=i({},o,{static:this._mode}),this._eventListeners={change:[],select:[],deselect:[],finish:[],ready:[]},this._store=new He({tracked:!!t.tracked,idStrategy:t.idStrategy?t.idStrategy:void 0});var s=function(t){var i=[],n=e._store.copyAll().filter(function(e){return!t.includes(e.id)||(i.push(e),!1)});return{changed:i,unchanged:n}},a=function(t){e._enabled&&e._eventListeners.finish.forEach(function(e){e(t)})},l=function(t,i){if(e._enabled){e._eventListeners.change.forEach(function(e){e(t,i)});var n=s(t),o=n.changed,r=n.unchanged;"create"===i?e._adapter.render({created:o,deletedIds:[],unchanged:r,updated:[]},e.getModeStyles()):"update"===i?e._adapter.render({created:[],deletedIds:[],unchanged:r,updated:o},e.getModeStyles()):"delete"===i?e._adapter.render({created:[],deletedIds:t,unchanged:r,updated:[]},e.getModeStyles()):"styling"===i&&e._adapter.render({created:[],deletedIds:[],unchanged:r,updated:[]},e.getModeStyles())}},c=function(t){if(e._enabled){e._eventListeners.select.forEach(function(e){e(t)});var i=s([t]);e._adapter.render({created:[],deletedIds:[],unchanged:i.unchanged,updated:i.changed},e.getModeStyles())}},h=function(t){if(e._enabled){e._eventListeners.deselect.forEach(function(t){t()});var i=s([t]),n=i.changed;n&&e._adapter.render({created:[],deletedIds:[],unchanged:i.unchanged,updated:n},e.getModeStyles())}};Object.keys(this._modes).forEach(function(t){e._modes[t].register({mode:t,store:e._store,setCursor:e._adapter.setCursor.bind(e._adapter),project:e._adapter.project.bind(e._adapter),unproject:e._adapter.unproject.bind(e._adapter),setDoubleClickToZoom:e._adapter.setDoubleClickToZoom.bind(e._adapter),onChange:l,onSelect:c,onDeselect:h,onFinish:a,coordinatePrecision:e._adapter.getCoordinatePrecision()})})}var n=t.prototype;return n.checkEnabled=function(){if(!this._enabled)throw new Error("Terra Draw is not enabled")},n.getModeStyles=function(){var t=this,e={};return Object.keys(this._modes).forEach(function(i){e[i]=function(e){return t._instanceSelectMode&&e.properties[Mt]?t._modes[t._instanceSelectMode].styleFeature.bind(t._modes[t._instanceSelectMode])(e):t._modes[i].styleFeature.bind(t._modes[i])(e)}}),e},n.featuresAtLocation=function(t,e){var i=t.lng,n=t.lat,o=e&&void 0!==e.pointerDistance?e.pointerDistance:30,r=!e||void 0===e.ignoreSelectFeatures||e.ignoreSelectFeatures,a=this._adapter.unproject.bind(this._adapter),l=this._adapter.project.bind(this._adapter),c=l(i,n),h=te({unproject:a,point:c,pointerDistance:o});return this._store.search(h).filter(function(t){if(r&&(t.properties[Dt]||t.properties.selectionPoint))return!1;if("Point"===t.geometry.type){var e=t.geometry.coordinates,a=l(e[0],e[1]);return s(c,a)<o}if("LineString"===t.geometry.type){for(var h=t.geometry.coordinates,d=0;d<h.length-1;d++){var u=h[d],g=h[d+1];if(ve(c,l(u[0],u[1]),l(g[0],g[1]))<o)return!0}return!1}return!!ye([i,n],t.geometry.coordinates)||void 0})},n.getSelectMode=function(){if(this.checkEnabled(),!this._instanceSelectMode)throw new Error("No select mode defined in instance");return this.getMode()!==this._instanceSelectMode&&this.setMode(this._instanceSelectMode),this._modes[this._instanceSelectMode]},n.setModeStyles=function(t,e){if(this.checkEnabled(),!this._modes[t])throw new Error("No mode with this name present");this._modes[t].styles=e},n.getSnapshot=function(){return this._store.copyAll()},n.clear=function(){this.checkEnabled(),this._adapter.clear()},n.getMode=function(){return this._mode.mode},n.setMode=function(t){if(this.checkEnabled(),!this._modes[t])throw new Error("No mode with this name present");this._mode.stop(),this._mode=this._modes[t],this._mode.start()},n.removeFeatures=function(t){this.checkEnabled(),this._store.delete(t)},n.selectFeature=function(t){this.getSelectMode().selectFeature(t)},n.deselectFeature=function(t){this.getSelectMode().deselectFeature(t)},n.getFeatureId=function(){return this._store.getId()},n.hasFeature=function(t){return this._store.has(t)},n.addFeatures=function(t){var e=this;this.checkEnabled(),0!==t.length&&this._store.load(t,function(t){if(Boolean(t&&"object"==typeof t&&"properties"in t&&"object"==typeof t.properties&&null!==t.properties&&"mode"in t.properties)){var i=e._modes[t.properties.mode];return!!i&&i.validateFeature.bind(i)(t)}return!1})},n.start=function(){var t=this;this._enabled=!0,this._adapter.register({onReady:function(){t._eventListeners.ready.forEach(function(t){t()})},getState:function(){return t._mode.state},onClick:function(e){t._mode.onClick(e)},onMouseMove:function(e){t._mode.onMouseMove(e)},onKeyDown:function(e){t._mode.onKeyDown(e)},onKeyUp:function(e){t._mode.onKeyUp(e)},onDragStart:function(e,i){t._mode.onDragStart(e,i)},onDrag:function(e,i){t._mode.onDrag(e,i)},onDragEnd:function(e,i){t._mode.onDragEnd(e,i)},onClear:function(){t._mode.cleanUp(),t._store.clear()}})},n.getFeaturesAtLngLat=function(t,e){return this.featuresAtLocation({lng:t.lng,lat:t.lat},e)},n.getFeaturesAtPointerEvent=function(t,e){var i=this._adapter.getLngLatFromEvent.bind(this._adapter)(t);return null===i?[]:this.featuresAtLocation(i,e)},n.stop=function(){this._enabled=!1,this._adapter.unregister()},n.on=function(t,e){var i=this._eventListeners[t];i.includes(e)||i.push(e)},n.off=function(t,e){var i=this._eventListeners[t];i.includes(e)&&i.splice(i.indexOf(e),1)},e(t,[{key:"enabled",get:function(){return this._enabled},set:function(t){throw new Error("Enabled is read only")}}]),t}(),exports.TerraDrawArcGISMapsSDKAdapter=bt,exports.TerraDrawCircleMode=Yt,exports.TerraDrawExtend=Ke,exports.TerraDrawFreehandMode=zt,exports.TerraDrawGoogleMapsAdapter=c,exports.TerraDrawGreatCircleMode=ie,exports.TerraDrawLeafletAdapter=h,exports.TerraDrawLineStringMode=oe,exports.TerraDrawMapLibreGLAdapter=u,exports.TerraDrawMapboxGLAdapter=d,exports.TerraDrawOpenLayersAdapter=Et,exports.TerraDrawPointMode=se,exports.TerraDrawPolygonMode=ce,exports.TerraDrawRectangleMode=he,exports.TerraDrawRenderMode=de,exports.TerraDrawSelectMode=Ie;
1
+ function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function e(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t},i.apply(this,arguments)}function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,o(t,e)}function o(t,e){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},o(t,e)}function r(t,e){void 0===e&&(e=9);var i=Math.pow(10,e);return Math.round(t*i)/i}var s=function(t,e){var i=e.x-t.x,n=e.y-t.y;return Math.sqrt(n*n+i*i)},a=function(t){var e=this,i=t.name,n=t.callback,o=t.unregister,r=t.register;this.name=void 0,this.callback=void 0,this.registered=!1,this.register=void 0,this.unregister=void 0,this.name=i,this.register=function(){e.registered||(e.registered=!0,r(n))},this.unregister=function(){e.register&&(e.registered=!1,o(n))},this.callback=n},l=/*#__PURE__*/function(){function t(t){this._minPixelDragDistance=void 0,this._minPixelDragDistanceDrawing=void 0,this._minPixelDragDistanceSelecting=void 0,this._lastDrawEvent=void 0,this._coordinatePrecision=void 0,this._heldKeys=new Set,this._listeners=[],this._dragState="not-dragging",this._currentModeCallbacks=void 0,this._minPixelDragDistance="number"==typeof t.minPixelDragDistance?t.minPixelDragDistance:1,this._minPixelDragDistanceSelecting="number"==typeof t.minPixelDragDistanceSelecting?t.minPixelDragDistanceSelecting:1,this._minPixelDragDistanceDrawing="number"==typeof t.minPixelDragDistanceDrawing?t.minPixelDragDistanceDrawing:8,this._coordinatePrecision="number"==typeof t.coordinatePrecision?t.coordinatePrecision:9}var e=t.prototype;return e.getButton=function(t){return-1===t.button?"neither":0===t.button?"left":1===t.button?"middle":2===t.button?"right":"neither"},e.getMapElementXYPosition=function(t){var e=this.getMapEventElement().getBoundingClientRect();return{containerX:t.clientX-e.left,containerY:t.clientY-e.top}},e.getDrawEventFromEvent=function(t){var e=this.getLngLatFromEvent(t);if(!e)return null;var i=e.lng,n=e.lat,o=this.getMapElementXYPosition(t),s=o.containerX,a=o.containerY,l=this.getButton(t),c=Array.from(this._heldKeys);return{lng:r(i,this._coordinatePrecision),lat:r(n,this._coordinatePrecision),containerX:s,containerY:a,button:l,heldKeys:c}},e.register=function(t){this._currentModeCallbacks=t,this._listeners=this.getAdapterListeners(),this._listeners.forEach(function(t){t.register()})},e.getCoordinatePrecision=function(){return this._coordinatePrecision},e.getAdapterListeners=function(){var t=this;return[new a({name:"pointerdown",callback:function(e){if(t._currentModeCallbacks&&e.isPrimary){var i=t.getDrawEventFromEvent(e);i&&(t._dragState="pre-dragging",t._lastDrawEvent=i)}},register:function(e){t.getMapEventElement().addEventListener("pointerdown",e)},unregister:function(e){t.getMapEventElement().removeEventListener("pointerdown",e)}}),new a({name:"pointermove",callback:function(e){if(t._currentModeCallbacks&&e.isPrimary){e.preventDefault();var i=t.getDrawEventFromEvent(e);if(i)if("not-dragging"===t._dragState)t._currentModeCallbacks.onMouseMove(i),t._lastDrawEvent=i;else if("pre-dragging"===t._dragState){if(!t._lastDrawEvent)return;var n={x:t._lastDrawEvent.containerX,y:t._lastDrawEvent.containerY},o={x:i.containerX,y:i.containerY},r=t._currentModeCallbacks.getState(),a=s(n,o);if("drawing"===r?a<t._minPixelDragDistanceDrawing:"selecting"===r?a<t._minPixelDragDistanceSelecting:a<t._minPixelDragDistance)return;t._dragState="dragging",t._currentModeCallbacks.onDragStart(i,function(e){t.setDraggability.bind(t)(e)})}else"dragging"===t._dragState&&t._currentModeCallbacks.onDrag(i,function(e){t.setDraggability.bind(t)(e)})}},register:function(e){t.getMapEventElement().addEventListener("pointermove",e)},unregister:function(e){t.getMapEventElement().removeEventListener("pointermove",e)}}),new a({name:"contextmenu",callback:function(e){if(t._currentModeCallbacks&&(e.preventDefault(),"not-dragging"===t._dragState||"pre-dragging"===t._dragState)){var i=t.getDrawEventFromEvent(e);if(!i)return;"neither"!==i.button&&t._currentModeCallbacks.onClick(i)}},register:function(e){t.getMapEventElement().addEventListener("contextmenu",e)},unregister:function(e){t.getMapEventElement().removeEventListener("contextmenu",e)}}),new a({name:"pointerup",callback:function(e){if(t._currentModeCallbacks&&e.target===t.getMapEventElement()&&e.isPrimary){var i=t.getDrawEventFromEvent(e);i&&("dragging"===t._dragState?t._currentModeCallbacks.onDragEnd(i,function(e){t.setDraggability.bind(t)(e)}):"not-dragging"!==t._dragState&&"pre-dragging"!==t._dragState||t._currentModeCallbacks.onClick(i),t._dragState="not-dragging",t.setDraggability(!0))}},register:function(e){t.getMapEventElement().addEventListener("pointerup",e)},unregister:function(e){t.getMapEventElement().removeEventListener("pointerup",e)}}),new a({name:"keyup",callback:function(e){t._currentModeCallbacks&&(t._heldKeys.delete(e.key),t._currentModeCallbacks.onKeyUp({key:e.key,heldKeys:Array.from(t._heldKeys),preventDefault:function(){return e.preventDefault()}}))},register:function(e){t.getMapEventElement().addEventListener("keyup",e)},unregister:function(e){t.getMapEventElement().removeEventListener("keyup",e)}}),new a({name:"keydown",callback:function(e){t._currentModeCallbacks&&(t._heldKeys.add(e.key),t._currentModeCallbacks.onKeyDown({key:e.key,heldKeys:Array.from(t._heldKeys),preventDefault:function(){return e.preventDefault()}}))},register:function(e){t.getMapEventElement().addEventListener("keydown",e)},unregister:function(e){t.getMapEventElement().removeEventListener("keydown",e)}})]},e.unregister=function(){this._listeners.forEach(function(t){t.unregister()}),this.clear()},t}(),c=/*#__PURE__*/function(t){function i(e){var i;if((i=t.call(this,e)||this)._cursor=void 0,i._cursorStyleSheet=void 0,i._lib=void 0,i._map=void 0,i._overlay=void 0,i._clickEventListener=void 0,i._mouseMoveEventListener=void 0,i.renderedFeatureIds=new Set,i._lib=e.lib,i._map=e.map,!i._map.getDiv().id)throw new Error("Google Map container div requires and id to be set");return i._coordinatePrecision="number"==typeof e.coordinatePrecision?e.coordinatePrecision:9,i}n(i,t);var o=i.prototype;return o.circlePath=function(t,e,i){var n=2*i;return"M "+t+" "+e+" m -"+i+", 0 a "+i+","+i+" 0 1,0 "+n+",0 a "+i+","+i+" 0 1,0 -"+n+",0"},o.register=function(e){var i=this;t.prototype.register.call(this,e),this._overlay=new this._lib.OverlayView,this._overlay.draw=function(){},this._overlay.onAdd=function(){i._currentModeCallbacks&&i._currentModeCallbacks.onReady&&i._currentModeCallbacks.onReady()},this._overlay.setMap(this._map),this._clickEventListener=this._map.data.addListener("click",function(t){var e=i._listeners.find(function(t){return"click"===t.name});e&&e.callback(t)}),this._mouseMoveEventListener=this._map.data.addListener("mousemove",function(t){var e=i._listeners.find(function(t){return"mousemove"===t.name});e&&e.callback(t)})},o.unregister=function(){var e,i,n;t.prototype.unregister.call(this),null==(e=this._clickEventListener)||e.remove(),null==(i=this._mouseMoveEventListener)||i.remove(),null==(n=this._overlay)||n.setMap(null),this._overlay=void 0},o.getLngLatFromEvent=function(t){if(!this._overlay)throw new Error("cannot get overlay");var e=this._map.getBounds();if(!e)return null;var i=e.getNorthEast(),n=e.getSouthWest(),o=new this._lib.LatLngBounds(n,i),r=this._map.getDiv(),s=t.clientX-r.getBoundingClientRect().left,a=t.clientY-r.getBoundingClientRect().top,l=new this._lib.Point(s,a),c=this._overlay.getProjection();if(!c)return null;var h=c.fromContainerPixelToLatLng(l);return h&&o.contains(h)?{lng:h.lng(),lat:h.lat()}:null},o.getMapEventElement=function(){return this._map.getDiv().querySelector('div[style*="z-index: 3;"]')},o.project=function(t,e){if(!this._overlay)throw new Error("cannot get overlay");if(void 0===this._map.getBounds())throw new Error("cannot get bounds");var i=this._overlay.getProjection();if(void 0===i)throw new Error("cannot get projection");var n=i.fromLatLngToContainerPixel(new this._lib.LatLng(e,t));if(null===n)throw new Error("cannot project coordinates");return{x:n.x,y:n.y}},o.unproject=function(t,e){if(!this._overlay)throw new Error("cannot get overlay");var i=this._overlay.getProjection();if(void 0===i)throw new Error("cannot get projection");var n=i.fromContainerPixelToLatLng(new this._lib.Point(t,e));if(null===n)throw new Error("cannot unproject coordinates");return{lng:n.lng(),lat:n.lat()}},o.setCursor=function(t){if(t!==this._cursor){if(this._cursorStyleSheet&&(this._cursorStyleSheet.remove(),this._cursorStyleSheet=void 0),"unset"!==t){var e=this._map.getDiv(),i=document.querySelector("#"+e.id+" .gm-style > div");if(i){i.classList.add("terra-draw-google-maps");var n=document.createElement("style");n.innerHTML=".terra-draw-google-maps { cursor: "+t+" !important; }",document.getElementsByTagName("head")[0].appendChild(n),this._cursorStyleSheet=n}}this._cursor=t}},o.setDoubleClickToZoom=function(t){this._map.setOptions(t?{disableDoubleClickZoom:!1}:{disableDoubleClickZoom:!0})},o.setDraggability=function(t){this._map.setOptions({draggable:t})},o.render=function(t,e){var i=this;this._layers&&(t.deletedIds.forEach(function(t){var e=i._map.data.getFeatureById(t);e&&(i._map.data.remove(e),i.renderedFeatureIds.delete(t))}),t.updated.forEach(function(t){if(!t||!t.id)throw new Error("Feature is not valid");var e=i._map.data.getFeatureById(t.id);if(!e)throw new Error("Feature could not be found by Google Maps API");switch(e.forEachProperty(function(t,i){e.setProperty(i,void 0)}),Object.keys(t.properties).forEach(function(i){e.setProperty(i,t.properties[i])}),t.geometry.type){case"Point":var n=t.geometry.coordinates;e.setGeometry(new i._lib.Data.Point(new i._lib.LatLng(n[1],n[0])));break;case"LineString":for(var o=t.geometry.coordinates,r=[],s=0;s<o.length;s++){var a=o[s],l=new i._lib.LatLng(a[1],a[0]);r.push(l)}e.setGeometry(new i._lib.Data.LineString(r));break;case"Polygon":for(var c=t.geometry.coordinates,h=[],d=0;d<c.length;d++){for(var u=[],g=0;g<c[d].length;g++){var p=new i._lib.LatLng(c[d][g][1],c[d][g][0]);u.push(p)}h.push(u)}e.setGeometry(new i._lib.Data.Polygon(h))}}),t.created.forEach(function(t){i.renderedFeatureIds.add(t.id),i._map.data.addGeoJson(t)})),t.created.forEach(function(t){i.renderedFeatureIds.add(t.id)});var n={type:"FeatureCollection",features:[].concat(t.created)};this._map.data.addGeoJson(n),this._map.data.setStyle(function(t){var n=t.getProperty("mode"),o=t.getGeometry();if(!o)throw new Error("Google Maps geometry not found");var r=o.getType(),s={};t.forEachProperty(function(t,e){s[e]=t});var a=e[n]({type:"Feature",geometry:{type:r,coordinates:[]},properties:s});switch(r){case"Point":return{clickable:!1,icon:{path:i.circlePath(0,0,a.pointWidth),fillColor:a.pointColor,fillOpacity:1,strokeColor:a.pointOutlineColor,strokeWeight:a.pointOutlineWidth,rotation:0,scale:1}};case"LineString":return{strokeColor:a.lineStringColor,strokeWeight:a.lineStringWidth};case"Polygon":return{strokeColor:a.polygonOutlineColor,strokeWeight:a.polygonOutlineWidth,fillOpacity:a.polygonFillOpacity,fillColor:a.polygonFillColor}}throw Error("Unknown feature type")})},o.clearLayers=function(){var t=this;this._layers&&(this._map.data.forEach(function(e){var i=e.getId();t.renderedFeatureIds.has(i)&&t._map.data.remove(e)}),this.renderedFeatureIds=new Set)},o.clear=function(){this._currentModeCallbacks&&(this._currentModeCallbacks.onClear(),this.clearLayers())},e(i,[{key:"_layers",get:function(){var t;return Boolean((null==(t=this.renderedFeatureIds)?void 0:t.size)>0)}}]),i}(l),h=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,e)||this)._lib=void 0,i._map=void 0,i._panes={},i._container=void 0,i._layers={},i._lib=e.lib,i._map=e.map,i._container=i._map.getContainer(),i}n(e,t);var i=e.prototype;return i.createPaneStyleSheet=function(t,e){var i=document.createElement("style");return i.innerHTML=".leaflet-"+t+" {z-index: "+e+";}",document.getElementsByTagName("head")[0].appendChild(i),this._map.createPane(t),i},i.clearPanes=function(){Object.values(this._panes).forEach(function(t){t&&t.remove()}),this._panes={}},i.clearLayers=function(){var t=this;Object.values(this._layers).forEach(function(e){t._map.removeLayer(e)}),this._layers={}},i.styleGeoJSONLayer=function(t){var e=this;return{pointToLayer:function(i,n){if(!i.properties)throw new Error("Feature has no properties");if("string"!=typeof i.properties.mode)throw new Error("Feature mode is not a string");var o=(0,t[i.properties.mode])(i),r=String(o.zIndex);return e._panes[r]||(e._panes[r]=e.createPaneStyleSheet(r,o.zIndex)),e._lib.circleMarker(n,{radius:o.pointWidth,stroke:o.pointOutlineWidth||!1,color:o.pointOutlineColor,weight:o.pointOutlineWidth,fillOpacity:.8,fillColor:o.pointColor,pane:r,interactive:!1})},style:function(i){if(!i||!i.properties)return{};var n=i,o=(0,t[n.properties.mode])(n),r=String(o.zIndex);return e._panes[r]||(e._panes[r]=e.createPaneStyleSheet(r,o.zIndex)),"LineString"===n.geometry.type?{interactive:!1,color:o.lineStringColor,weight:o.lineStringWidth,pane:r}:"Polygon"===n.geometry.type?{interactive:!1,fillOpacity:o.polygonFillOpacity,fillColor:o.polygonFillColor,weight:o.polygonOutlineWidth,stroke:!0,color:o.polygonFillColor,pane:r}:{}}}},i.getLngLatFromEvent=function(t){var e=this.getMapElementXYPosition(t),i={x:e.containerX,y:e.containerY};if(isNaN(i.x)||isNaN(i.y))return null;var n=this._map.containerPointToLatLng(i);return isNaN(n.lng)||isNaN(n.lat)?null:{lng:n.lng,lat:n.lat}},i.getMapEventElement=function(){return this._container},i.setDraggability=function(t){t?this._map.dragging.enable():this._map.dragging.disable()},i.project=function(t,e){var i=this._map.latLngToContainerPoint({lng:t,lat:e});return{x:i.x,y:i.y}},i.unproject=function(t,e){var i=this._map.containerPointToLatLng({x:t,y:e});return{lng:i.lng,lat:i.lat}},i.setCursor=function(t){"unset"===t?this.getMapEventElement().style.removeProperty("cursor"):this.getMapEventElement().style.cursor=t},i.setDoubleClickToZoom=function(t){t?this._map.doubleClickZoom.enable():this._map.doubleClickZoom.disable()},i.render=function(t,e){var i=this;t.created.forEach(function(t){i._layers[t.id]=i._lib.geoJSON(t,i.styleGeoJSONLayer(e)),i._map.addLayer(i._layers[t.id])}),t.deletedIds.forEach(function(t){i._map.removeLayer(i._layers[t])}),t.updated.forEach(function(t){i._map.removeLayer(i._layers[t.id]),i._layers[t.id]=i._lib.geoJSON(t,i.styleGeoJSONLayer(e)),i._map.addLayer(i._layers[t.id])})},i.clear=function(){this._currentModeCallbacks&&(this._currentModeCallbacks.onClear(),this.clearLayers(),this.clearPanes())},i.register=function(e){t.prototype.register.call(this,e),this._currentModeCallbacks&&this._currentModeCallbacks.onReady&&this._currentModeCallbacks.onReady()},e}(l),d=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,e)||this)._nextRender=void 0,i._map=void 0,i._container=void 0,i._rendered=!1,i.changedIds={deletion:!1,points:!1,linestrings:!1,polygons:!1,styling:!1},i._map=e.map,i._container=i._map.getContainer(),i}n(e,t);var i=e.prototype;return i.clearLayers=function(){var t=this;this._rendered&&(["point","linestring","polygon"].forEach(function(e){var i="td-"+e.toLowerCase();t._map.removeLayer(i),"polygon"===e&&t._map.removeLayer(i+"-outline"),t._map.removeSource(i)}),this._rendered=!1,this._nextRender&&(cancelAnimationFrame(this._nextRender),this._nextRender=void 0))},i._addGeoJSONSource=function(t,e){this._map.addSource(t,{type:"geojson",data:{type:"FeatureCollection",features:e},tolerance:0})},i._addFillLayer=function(t){return this._map.addLayer({id:t,source:t,type:"fill",paint:{"fill-color":["get","polygonFillColor"],"fill-opacity":["get","polygonFillOpacity"]}})},i._addFillOutlineLayer=function(t,e){var i=this._map.addLayer({id:t+"-outline",source:t,type:"line",paint:{"line-width":["get","polygonOutlineWidth"],"line-color":["get","polygonOutlineColor"]}});return e&&this._map.moveLayer(t,e),i},i._addLineLayer=function(t,e){var i=this._map.addLayer({id:t,source:t,type:"line",paint:{"line-width":["get","lineStringWidth"],"line-color":["get","lineStringColor"]}});return e&&this._map.moveLayer(t,e),i},i._addPointLayer=function(t,e){var i=this._map.addLayer({id:t,source:t,type:"circle",paint:{"circle-stroke-color":["get","pointOutlineColor"],"circle-stroke-width":["get","pointOutlineWidth"],"circle-radius":["get","pointWidth"],"circle-color":["get","pointColor"]}});return e&&this._map.moveLayer(t,e),i},i._addLayer=function(t,e,i){"Point"===e&&this._addPointLayer(t,i),"LineString"===e&&this._addLineLayer(t,i),"Polygon"===e&&(this._addFillLayer(t),this._addFillOutlineLayer(t,i))},i._addGeoJSONLayer=function(t,e){var i="td-"+t.toLowerCase();return this._addGeoJSONSource(i,e),this._addLayer(i,t),i},i._setGeoJSONLayerData=function(t,e){var i="td-"+t.toLowerCase();return this._map.getSource(i).setData({type:"FeatureCollection",features:e}),i},i.getEmptyGeometries=function(){return{points:[],linestrings:[],polygons:[]}},i.updateChangedIds=function(t){var e=this;[].concat(t.updated,t.created).forEach(function(t){"Point"===t.geometry.type?e.changedIds.points=!0:"LineString"===t.geometry.type?e.changedIds.linestrings=!0:"Polygon"===t.geometry.type&&(e.changedIds.polygons=!0)}),t.deletedIds.length>0&&(this.changedIds.deletion=!0),0===t.created.length&&0===t.updated.length&&0===t.deletedIds.length&&(this.changedIds.styling=!0)},i.getLngLatFromEvent=function(t){var e=this._container.getBoundingClientRect();return this.unproject(t.clientX-e.left,t.clientY-e.top)},i.getMapEventElement=function(){return this._map.getCanvas()},i.setDraggability=function(t){t?(this._map.dragRotate.enable(),this._map.dragPan.enable()):(this._map.dragRotate.disable(),this._map.dragPan.disable())},i.project=function(t,e){var i=this._map.project({lng:t,lat:e});return{x:i.x,y:i.y}},i.unproject=function(t,e){var i=this._map.unproject({x:t,y:e});return{lng:i.lng,lat:i.lat}},i.setCursor=function(t){var e=this._map.getCanvas();"unset"===t?e.style.removeProperty("cursor"):e.style.cursor=t},i.setDoubleClickToZoom=function(t){t?this._map.doubleClickZoom.enable():this._map.doubleClickZoom.disable()},i.render=function(t,e){var i=this;this.updateChangedIds(t),this._nextRender&&cancelAnimationFrame(this._nextRender),this._nextRender=requestAnimationFrame(function(){for(var n=[].concat(t.created,t.updated,t.unchanged),o=i.getEmptyGeometries(),r=function(t){var i=n[t];Object.keys(e).forEach(function(t){var n=i.properties;if(n.mode===t){var r=e[t](i);"Point"===i.geometry.type?(n.pointColor=r.pointColor,n.pointOutlineColor=r.pointOutlineColor,n.pointOutlineWidth=r.pointOutlineWidth,n.pointWidth=r.pointWidth,o.points.push(i)):"LineString"===i.geometry.type?(n.lineStringColor=r.lineStringColor,n.lineStringWidth=r.lineStringWidth,o.linestrings.push(i)):"Polygon"===i.geometry.type&&(n.polygonFillColor=r.polygonFillColor,n.polygonFillOpacity=r.polygonFillOpacity,n.polygonOutlineColor=r.polygonOutlineColor,n.polygonOutlineWidth=r.polygonOutlineWidth,o.polygons.push(i))}})},s=0;s<n.length;s++)r(s);var a=o.points,l=o.linestrings,c=o.polygons;if(i._rendered){var h,d=i.changedIds.deletion||i.changedIds.styling,u=d||i.changedIds.linestrings,g=d||i.changedIds.polygons;(d||i.changedIds.points)&&(h=i._setGeoJSONLayerData("Point",a)),u&&i._setGeoJSONLayerData("LineString",l),g&&i._setGeoJSONLayerData("Polygon",c),h&&i._map.moveLayer(h)}else{var p=i._addGeoJSONLayer("Point",a);i._addGeoJSONLayer("LineString",l),i._addGeoJSONLayer("Polygon",c),i._rendered=!0,p&&i._map.moveLayer(p)}i.changedIds={points:!1,linestrings:!1,polygons:!1,deletion:!1,styling:!1}})},i.clear=function(){this._currentModeCallbacks&&(this._currentModeCallbacks.onClear(),this.clearLayers())},i.register=function(e){t.prototype.register.call(this,e),this._currentModeCallbacks&&this._currentModeCallbacks.onReady&&this._currentModeCallbacks.onReady()},e}(l),u=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,e)||this).mapboxglAdapter=void 0,i.mapboxglAdapter=new d(e),i}n(e,t);var i=e.prototype;return i.register=function(t){this.mapboxglAdapter.register(t)},i.unregister=function(){this.mapboxglAdapter.unregister()},i.getLngLatFromEvent=function(t){return this.mapboxglAdapter.getLngLatFromEvent(t)},i.getMapEventElement=function(){return this.mapboxglAdapter.getMapEventElement()},i.setDraggability=function(t){this.mapboxglAdapter.setDraggability(t)},i.project=function(t,e){return this.mapboxglAdapter.project(t,e)},i.unproject=function(t,e){return this.mapboxglAdapter.unproject(t,e)},i.setCursor=function(t){this.mapboxglAdapter.setCursor(t)},i.setDoubleClickToZoom=function(t){this.mapboxglAdapter.setDoubleClickToZoom(t)},i.render=function(t,e){this.mapboxglAdapter.render(t,e)},i.clear=function(){this.mapboxglAdapter.clear()},e}(l);function g(){throw new Error("Unimplemented abstract method.")}let p=0;function f(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}class y{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=f(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const t=this.getScale();return new y({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return g()}getImage(t){return g()}getHitDetectionImage(){return g()}getPixelRatio(t){return 1}getImageState(){return g()}getImageSize(){return g()}getOrigin(){return g()}getSize(){return g()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=f(t)}listenImageChange(t){g()}load(){g()}unlistenImageChange(t){g()}}var v=y;const m={1:"The view center is not defined",2:"The view resolution is not defined",3:"The view rotation is not defined",4:"`image` and `src` cannot be provided at the same time",5:"`imgSize` must be set when `image` is provided",7:"`format` must be set when `url` is set",8:"Unknown `serverType` configured",9:"`url` must be configured or set using `#setUrl()`",10:"The default `geometryFunction` can only handle `Point` geometries",11:"`options.featureTypes` must be an Array",12:"`options.geometryName` must also be provided when `options.bbox` is set",13:"Invalid corner",14:"Invalid color",15:"Tried to get a value for a key that does not exist in the cache",16:"Tried to set a value for a key that is used already",17:"`resolutions` must be sorted in descending order",18:"Either `origin` or `origins` must be configured, never both",19:"Number of `tileSizes` and `resolutions` must be equal",20:"Number of `origins` and `resolutions` must be equal",22:"Either `tileSize` or `tileSizes` must be configured, never both",24:"Invalid extent or geometry provided as `geometry`",25:"Cannot fit empty extent provided as `geometry`",26:"Features must have an id set",27:"Features must have an id set",28:'`renderMode` must be `"hybrid"` or `"vector"`',30:"The passed `feature` was already added to the source",31:"Tried to enqueue an `element` that was already added to the queue",32:"Transformation matrix cannot be inverted",33:"Invalid units",34:"Invalid geometry layout",36:"Unknown SRS type",37:"Unknown geometry type found",38:"`styleMapValue` has an unknown type",39:"Unknown geometry type",40:"Expected `feature` to have a geometry",41:"Expected an `ol/style/Style` or an array of `ol/style/Style.js`",42:"Question unknown, the answer is 42",43:"Expected `layers` to be an array or a `Collection`",47:"Expected `controls` to be an array or an `ol/Collection`",48:"Expected `interactions` to be an array or an `ol/Collection`",49:"Expected `overlays` to be an array or an `ol/Collection`",50:"`options.featureTypes` should be an Array",51:"Either `url` or `tileJSON` options must be provided",52:"Unknown `serverType` configured",53:"Unknown `tierSizeCalculation` configured",55:"The {-y} placeholder requires a tile grid with extent",56:"mapBrowserEvent must originate from a pointer event",57:"At least 2 conditions are required",59:"Invalid command found in the PBF",60:"Missing or invalid `size`",61:"Cannot determine IIIF Image API version from provided image information JSON",62:"A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`",64:"Layer opacity must be a number",66:"`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`",67:"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both",68:"A VectorTile source can only be rendered if it has a projection compatible with the view projection"};class _ extends Error{constructor(t){const e=m[t];super(e),this.code=t,this.name="AssertionError",this.message=e}}var C=_;function P(t,e,i){return Math.min(Math.max(t,e),i)}const S=/^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i,x=/^([a-z]*)$|^hsla?\(.*\)$/i,w=function(){const t={};let e=0;return function(i){let n;if(t.hasOwnProperty(i))n=t[i];else{if(e>=1024){let i=0;for(const n in t)0==(3&i++)&&(delete t[n],--e)}n=function(t){let e,i,n,o,r;if(x.exec(t)&&(t=function(t){const e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);const t=getComputedStyle(e).color;return document.body.removeChild(e),t}return""}(t)),S.exec(t)){const s=t.length-1;let a;a=s<=4?1:2;const l=4===s||8===s;e=parseInt(t.substr(1+0*a,a),16),i=parseInt(t.substr(1+1*a,a),16),n=parseInt(t.substr(1+2*a,a),16),o=l?parseInt(t.substr(1+3*a,a),16):255,1==a&&(e=(e<<4)+e,i=(i<<4)+i,n=(n<<4)+n,l&&(o=(o<<4)+o)),r=[e,i,n,o/255]}else t.startsWith("rgba(")?(r=t.slice(5,-1).split(",").map(Number),E(r)):t.startsWith("rgb(")?(r=t.slice(4,-1).split(",").map(Number),r.push(1),E(r)):function(t,e){throw new C(14)}();return r}(i),t[i]=n,++e}return n}}();function E(t){return t[0]=P(t[0]+.5|0,0,255),t[1]=P(t[1]+.5|0,0,255),t[2]=P(t[2]+.5|0,0,255),t[3]=P(t[3],0,1),t}function b(t){return Array.isArray(t)?function(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let i=t[1];i!=(0|i)&&(i=i+.5|0);let n=t[2];return n!=(0|n)&&(n=n+.5|0),"rgba("+e+","+i+","+n+","+(void 0===t[3]?1:Math.round(100*t[3])/100)+")"}(t):t}const M="undefined"!=typeof navigator&&void 0!==navigator.userAgent?navigator.userAgent.toLowerCase():"";M.includes("firefox"),M.includes("safari")&&!M.includes("chrom")&&(M.includes("version/15.4")||/cpu (os|iphone os) 15_4 like mac os x/.test(M)),M.includes("webkit")&&M.includes("edge"),M.includes("macintosh");const D="undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas&&self instanceof WorkerGlobalScope;function I(t,e,i,n){let o;return o=i&&i.length?i.shift():D?new OffscreenCanvas(t||300,e||300):document.createElement("canvas"),t&&(o.width=t),e&&(o.height=e),o.getContext("2d",n)}!function(){let t=!1;try{const e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("_",null,e),window.removeEventListener("_",null,e)}catch(t){}}();var k=class{constructor(t){this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}},F=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function O(){}function L(t){for(const e in t)delete t[e]}var W=class extends F{constructor(t){super(),this.eventTarget_=t,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(t,e){if(!t||!e)return;const i=this.listeners_||(this.listeners_={}),n=i[t]||(i[t]=[]);n.includes(e)||n.push(e)}dispatchEvent(t){const e="string"==typeof t,i=e?t:t.type,n=this.listeners_&&this.listeners_[i];if(!n)return;const o=e?new k(t):t;o.target||(o.target=this.eventTarget_||this);const r=this.dispatching_||(this.dispatching_={}),s=this.pendingRemovals_||(this.pendingRemovals_={});let a;i in r||(r[i]=0,s[i]=0),++r[i];for(let t=0,e=n.length;t<e;++t)if(a="handleEvent"in n[t]?n[t].handleEvent(o):n[t].call(this,o),!1===a||o.propagationStopped){a=!1;break}if(0==--r[i]){let t=s[i];for(delete s[i];t--;)this.removeEventListener(i,O);delete r[i]}return a}disposeInternal(){this.listeners_&&L(this.listeners_)}getListeners(t){return this.listeners_&&this.listeners_[t]||void 0}hasListener(t){return!!this.listeners_&&(t?t in this.listeners_:Object.keys(this.listeners_).length>0)}removeEventListener(t,e){const i=this.listeners_&&this.listeners_[t];if(i){const n=i.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[n]=O,++this.pendingRemovals_[t]):(i.splice(n,1),0===i.length&&delete this.listeners_[t]))}}};function A(t,e,i,n,o){if(n&&n!==t&&(i=i.bind(n)),o){const n=i;i=function(){t.removeEventListener(e,i),n.apply(this,arguments)}}const r={target:t,type:e,listener:i};return t.addEventListener(e,i),r}function G(t,e,i,n){return A(t,e,i,n,!0)}function B(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),L(t))}var N=class extends W{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent("change")}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let o=0;o<i;++o)n[o]=A(this,t[o],e);return n}return A(this,t,e)}onceInternal(t,e){let i;if(Array.isArray(t)){const n=t.length;i=new Array(n);for(let o=0;o<n;++o)i[o]=G(this,t[o],e)}else i=G(this,t,e);return e.ol_key=i,i}unInternal(t,e){const i=e.ol_key;if(i)!function(t){if(Array.isArray(t))for(let e=0,i=t.length;e<i;++e)B(t[e]);else B(t)}(i);else if(Array.isArray(t))for(let i=0,n=t.length;i<n;++i)this.removeEventListener(t[i],e);else this.removeEventListener(t,e)}};class R extends k{constructor(t,e,i){super(t),this.key=e,this.oldValue=i}}const V="#000",j="round";new class extends N{constructor(t){super(),this.ol_uid||(this.ol_uid=String(++p)),this.values_=null,void 0!==t&&this.setProperties(t)}get(t){let e;return this.values_&&this.values_.hasOwnProperty(t)&&(e=this.values_[t]),e}getKeys(){return this.values_&&Object.keys(this.values_)||[]}getProperties(){return this.values_&&Object.assign({},this.values_)||{}}hasProperties(){return!!this.values_}notify(t,e){let i;i=`change:${t}`,this.hasListener(i)&&this.dispatchEvent(new R(i,t,e)),i="propertychange",this.hasListener(i)&&this.dispatchEvent(new R(i,t,e))}addChangeListener(t,e){this.addEventListener(`change:${t}`,e)}removeChangeListener(t,e){this.removeEventListener(`change:${t}`,e)}set(t,e,i){const n=this.values_||(this.values_={});if(i)n[t]=e;else{const i=n[t];n[t]=e,i!==e&&this.notify(t,i)}}setProperties(t,e){for(const i in t)this.set(i,t[i],e)}applyProperties(t){t.values_&&Object.assign(this.values_||(this.values_={}),t.values_)}unset(t,e){if(this.values_&&t in this.values_){const i=this.values_[t];delete this.values_[t],function(t){let e;for(e in t)return!1;return!e}(this.values_)&&(this.values_=null),e||this.notify(t,i)}}};class T extends v{constructor(t){super({opacity:1,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,rotation:void 0!==t.rotation?t.rotation:0,scale:void 0!==t.scale?t.scale:1,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode}),this.canvas_=void 0,this.hitDetectionCanvas_=null,this.fill_=void 0!==t.fill?t.fill:null,this.origin_=[0,0],this.points_=t.points,this.radius_=void 0!==t.radius?t.radius:t.radius1,this.radius2_=t.radius2,this.angle_=void 0!==t.angle?t.angle:0,this.stroke_=void 0!==t.stroke?t.stroke:null,this.size_=null,this.renderOptions_=null,this.render()}clone(){const t=this.getScale(),e=new T({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return e.setOpacity(this.getOpacity()),e}getAnchor(){const t=this.size_;if(!t)return null;const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]/2-e[0]/i[0],t[1]/2+e[1]/i[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(t){this.fill_=t,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||this.createHitDetectionCanvas_(this.renderOptions_),this.hitDetectionCanvas_}getImage(t){let e=this.canvas_[t];if(!e){const i=this.renderOptions_,n=I(i.size*t,i.size*t);this.draw_(i,n,t),e=n.canvas,this.canvas_[t]=e}return e}getPixelRatio(t){return t}getImageSize(){return this.size_}getImageState(){return 2}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius_}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t,this.render()}listenImageChange(t){}load(){}unlistenImageChange(t){}calculateLineJoinSize_(t,e,i){if(0===e||Infinity===this.points_||"bevel"!==t&&"miter"!==t)return e;let n=this.radius_,o=void 0===this.radius2_?n:this.radius2_;if(n<o){const t=n;n=o,o=t}const r=2*Math.PI/(void 0===this.radius2_?this.points_:2*this.points_),s=o*Math.sin(r),a=n-Math.sqrt(o*o-s*s),l=Math.sqrt(s*s+a*a),c=l/s;if("miter"===t&&c<=i)return c*e;const h=e/2/c,d=e/2*(a/l),u=Math.sqrt((n+h)*(n+h)+d*d)-n;if(void 0===this.radius2_||"bevel"===t)return 2*u;const g=n*Math.sin(r),p=o-Math.sqrt(n*n-g*g),f=Math.sqrt(g*g+p*p)/g;return f<=i?2*Math.max(u,f*e/2-o-n):2*u}createRenderOptions(){let t,e=j,i=0,n=null,o=0,r=0;this.stroke_&&(t=this.stroke_.getColor(),null===t&&(t="#000"),t=b(t),r=this.stroke_.getWidth(),void 0===r&&(r=1),n=this.stroke_.getLineDash(),o=this.stroke_.getLineDashOffset(),e=this.stroke_.getLineJoin(),void 0===e&&(e=j),i=this.stroke_.getMiterLimit(),void 0===i&&(i=10));const s=this.calculateLineJoinSize_(e,r,i),a=Math.max(this.radius_,this.radius2_||0);return{strokeStyle:t,strokeWidth:r,size:Math.ceil(2*a+s),lineDash:n,lineDashOffset:o,lineJoin:e,miterLimit:i}}render(){this.renderOptions_=this.createRenderOptions();const t=this.renderOptions_.size;this.canvas_={},this.size_=[t,t]}draw_(t,e,i){if(e.scale(i,i),e.translate(t.size/2,t.size/2),this.createPath_(e),this.fill_){let t=this.fill_.getColor();null===t&&(t=V),e.fillStyle=b(t),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke())}createHitDetectionCanvas_(t){if(this.fill_){let e=this.fill_.getColor(),i=0;if("string"==typeof e&&(e=function(t){return Array.isArray(t)?t:w(t)}(e)),null===e?i=1:Array.isArray(e)&&(i=4===e.length?e[3]:1),0===i){const e=I(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e)}}this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.getImage(1))}createPath_(t){let e=this.points_;const i=this.radius_;if(Infinity===e)t.arc(0,0,i,0,2*Math.PI);else{const n=void 0===this.radius2_?i:this.radius2_;void 0!==this.radius2_&&(e*=2);const o=this.angle_-Math.PI/2,r=2*Math.PI/e;for(let s=0;s<e;s++){const e=o+s*r,a=s%2==0?i:n;t.lineTo(a*Math.cos(e),a*Math.sin(e))}t.closePath()}}drawHitDetectionCanvas_(t,e){e.translate(t.size/2,t.size/2),this.createPath_(e),e.fillStyle=V,e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke())}}var X=T;class z extends X{constructor(t){super({points:Infinity,fill:(t=t||{radius:5}).fill,radius:t.radius,stroke:t.stroke,scale:void 0!==t.scale?t.scale:1,rotation:void 0!==t.rotation?t.rotation:0,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode})}clone(){const t=this.getScale(),e=new z({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return e.setOpacity(this.getOpacity()),e}setRadius(t){this.radius_=t,this.render()}}var Y=z;class U{constructor(t){this.color_=void 0!==(t=t||{}).color?t.color:null}clone(){const t=this.getColor();return new U({color:Array.isArray(t)?t.slice():t||void 0})}getColor(){return this.color_}setColor(t){this.color_=t}}var H=U;class K{constructor(t){this.color_=void 0!==(t=t||{}).color?t.color:null,this.lineCap_=t.lineCap,this.lineDash_=void 0!==t.lineDash?t.lineDash:null,this.lineDashOffset_=t.lineDashOffset,this.lineJoin_=t.lineJoin,this.miterLimit_=t.miterLimit,this.width_=t.width}clone(){const t=this.getColor();return new K({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(t){this.color_=t}setLineCap(t){this.lineCap_=t}setLineDash(t){this.lineDash_=t}setLineDashOffset(t){this.lineDashOffset_=t}setLineJoin(t){this.lineJoin_=t}setMiterLimit(t){this.miterLimit_=t}setWidth(t){this.width_=t}}var J=K;class q{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=Z,void 0!==t.geometry&&this.setGeometry(t.geometry),this.fill_=void 0!==t.fill?t.fill:null,this.image_=void 0!==t.image?t.image:null,this.renderer_=void 0!==t.renderer?t.renderer:null,this.hitDetectionRenderer_=void 0!==t.hitDetectionRenderer?t.hitDetectionRenderer:null,this.stroke_=void 0!==t.stroke?t.stroke:null,this.text_=void 0!==t.text?t.text:null,this.zIndex_=t.zIndex}clone(){let t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new q({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer(),stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(t){this.renderer_=t}setHitDetectionRenderer(t){this.hitDetectionRenderer_=t}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(t){this.fill_=t}getImage(){return this.image_}setImage(t){this.image_=t}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t}getText(){return this.text_}setText(t){this.text_=t}getZIndex(){return this.zIndex_}setGeometry(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=Z,this.geometry_=t}setZIndex(t){this.zIndex_=t}}function Z(t){return t.getGeometry()}var $=q;const Q={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var tt=class{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Q[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}};const et=6378137,it=Math.PI*et,nt=[-it,-it,it,it],ot=[-180,-85,180,85],rt=et*Math.log(Math.tan(Math.PI/2));class st extends tt{constructor(t){super({code:t,units:"m",extent:nt,global:!0,worldExtent:ot,getPointResolution:function(t,e){return t/Math.cosh(e[1]/et)}})}}const at=[new st("EPSG:3857"),new st("EPSG:102100"),new st("EPSG:102113"),new st("EPSG:900913"),new st("http://www.opengis.net/def/crs/EPSG/0/3857"),new st("http://www.opengis.net/gml/srs/epsg.xml#3857")],lt=[-180,-90,180,90],ct=6378137*Math.PI/180;class ht extends tt{constructor(t,e){super({code:t,units:"degrees",extent:lt,axisOrientation:e,global:!0,metersPerUnit:ct,worldExtent:lt})}}const dt=[new ht("CRS:84"),new ht("EPSG:4326","neu"),new ht("urn:ogc:def:crs:OGC:1.3:CRS84"),new ht("urn:ogc:def:crs:OGC:2:84"),new ht("http://www.opengis.net/def/crs/OGC/1.3/CRS84"),new ht("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new ht("http://www.opengis.net/def/crs/EPSG/0/4326","neu")];let ut={},gt={};function pt(t,e,i){const n=t.getCode(),o=e.getCode();n in gt||(gt[n]={}),gt[n][o]=i}function ft(t,e,i){if(void 0!==e)for(let i=0,n=t.length;i<n;++i)e[i]=t[i];else e=t.slice();return e}function yt(t,e,i){if(void 0!==e&&t!==e){for(let i=0,n=t.length;i<n;++i)e[i]=t[i];t=e}return t}function vt(t){!function(t,e){ut[t]=e}(t.getCode(),t),pt(t,t,ft)}function mt(t){return"string"==typeof t?ut[e=t]||ut[e.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\w+)$/,"EPSG:$3")]||null:t||null;var e}function _t(t){!function(t){t.forEach(vt)}(t),t.forEach(function(e){t.forEach(function(t){e!==t&&pt(e,t,ft)})})}function Ct(t,e,i){const n=function(t,e){return function(t,e){let i=function(t,e){let i;return t in gt&&e in gt[t]&&(i=gt[t][e]),i}(t.getCode(),e.getCode());return i||(i=yt),i}(mt(t),mt(e))}(e,i);return n(t,void 0,t.length)}var Pt,St,xt;_t(at),_t(dt),Pt=at,St=function(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let o=0;o<n;o+=i){e[o]=it*t[o]/180;let i=et*Math.log(Math.tan(Math.PI*(+t[o+1]+90)/360));i>rt?i=rt:i<-rt&&(i=-rt),e[o+1]=i}return e},xt=function(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let o=0;o<n;o+=i)e[o]=180*t[o]/it,e[o+1]=360*Math.atan(Math.exp(t[o+1]/et))/Math.PI-90;return e},dt.forEach(function(t){Pt.forEach(function(e){pt(t,e,St),pt(e,t,xt)})});var wt,Et=/*#__PURE__*/function(t){function e(e){var i;(i=t.call(this,e)||this).stylingFunction=function(){return{}},i._lib=void 0,i._map=void 0,i._container=void 0,i._projection="EPSG:3857",i._vectorSource=void 0,i._geoJSONReader=void 0,i._map=e.map,i._lib=e.lib,i._geoJSONReader=new i._lib.GeoJSON,i._container=i._map.getViewport(),i._container.setAttribute("tabindex","0");var n=new i._lib.VectorSource({features:[]});i._vectorSource=n;var o=new i._lib.VectorLayer({source:n,style:function(t){return i.getStyles(t,i.stylingFunction())}});return i._map.addLayer(o),i}n(e,t);var i=e.prototype;return i.hexToRGB=function(t){return{r:parseInt(t.slice(1,3),16),g:parseInt(t.slice(3,5),16),b:parseInt(t.slice(5,7),16)}},i.getStyles=function(t,e){var i=this,n=t.getGeometry();if(n)return{Point:function(t){var n=t.getProperties(),o=e[n.mode]({type:"Feature",geometry:{type:"Point",coordinates:[]},properties:n});return new i._lib.Style({image:new Y({radius:o.pointWidth,fill:new H({color:o.pointColor}),stroke:new J({color:o.pointOutlineColor,width:o.pointOutlineWidth})})})},LineString:function(t){var n=t.getProperties(),o=e[n.mode]({type:"Feature",geometry:{type:"LineString",coordinates:[]},properties:n});return new i._lib.Style({stroke:new i._lib.Stroke({color:o.lineStringColor,width:o.lineStringWidth})})},Polygon:function(t){var n=t.getProperties(),o=e[n.mode]({type:"Feature",geometry:{type:"LineString",coordinates:[]},properties:n}),r=i.hexToRGB(o.polygonFillColor),s=r.r,a=r.g,l=r.b;return new $({stroke:new J({color:o.polygonOutlineColor,width:o.polygonOutlineWidth}),fill:new H({color:"rgba("+s+","+a+","+l+","+o.polygonFillOpacity+")"})})}}[n.getType()](t)},i.clearLayers=function(){this._vectorSource&&this._vectorSource.clear()},i.addFeature=function(t){if(!this._vectorSource||!this._geoJSONReader)throw new Error("Vector Source not initalised");var e=this._geoJSONReader.readFeature(t,{featureProjection:this._projection});this._vectorSource.addFeature(e)},i.removeFeature=function(t){if(!this._vectorSource)throw new Error("Vector Source not initalised");var e=this._vectorSource.getFeatureById(t);e&&this._vectorSource.removeFeature(e)},i.getLngLatFromEvent=function(t){var e=this.getMapElementXYPosition(t),i=e.containerX,n=e.containerY;try{return this.unproject(i,n)}catch(t){return null}},i.getMapEventElement=function(){var t=this._container.querySelectorAll("canvas");if(t.length>1)throw Error("Terra Draw currently only supports 1 canvas with OpenLayers");return t[0]},i.setDraggability=function(t){this._map.getInteractions().forEach(function(e){"DragPan"===e.constructor.name&&e.setActive(t)})},i.project=function(t,e){var i=this._map.getPixelFromCoordinate(Ct([t,e],"EPSG:4326","EPSG:3857"));return{x:i[0],y:i[1]}},i.unproject=function(t,e){var i=function(t,e){const i=Ct(t,"EPSG:3857","EPSG:4326"),n=i[0];return(n<-180||n>180)&&(i[0]=function(t,e){const i=t%360;return 360*i<0?i+360:i}(n+180)-180),i}(this._map.getCoordinateFromPixel([t,e]));return{lng:i[0],lat:i[1]}},i.setCursor=function(t){"unset"===t?this.getMapEventElement().style.removeProperty("cursor"):this.getMapEventElement().style.cursor=t},i.setDoubleClickToZoom=function(t){this._map.getInteractions().forEach(function(e){"DoubleClickZoom"===e.constructor.name&&e.setActive(t)})},i.render=function(t,e){var i=this;if(this.stylingFunction=function(){return e},!this._vectorSource)throw new Error("Vector Layer source has disappeared");t.deletedIds.forEach(function(t){i.removeFeature(t)}),t.updated.forEach(function(t){i.removeFeature(t.id),i.addFeature(t)}),t.created.forEach(function(t){i.addFeature(t)})},i.clear=function(){this._currentModeCallbacks&&(this._currentModeCallbacks.onClear(),this.clearLayers())},i.register=function(e){t.prototype.register.call(this,e),this._currentModeCallbacks&&this._currentModeCallbacks.onReady&&this._currentModeCallbacks.onReady()},e}(l),bt=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,e)||this)._lib=void 0,i._mapView=void 0,i._container=void 0,i._featureIdAttributeName="__tdId",i._featureLayerName="__terraDrawFeatures",i._featureLayer=void 0,i._dragEnabled=!0,i._zoomEnabled=!0,i._dragHandler=void 0,i._doubleClickHandler=void 0,i._mapView=e.map,i._lib=e.lib,i._container=i._mapView.container,i._featureLayer=new i._lib.GraphicsLayer({id:i._featureLayerName}),i._mapView.map.add(i._featureLayer),i}n(e,t);var i=e.prototype;return i.register=function(e){var i=this;t.prototype.register.call(this,e),this._dragHandler=this._mapView.on("drag",function(t){i._dragEnabled||t.stopPropagation()}),this._doubleClickHandler=this._mapView.on("double-click",function(t){i._zoomEnabled||t.stopPropagation()}),this._currentModeCallbacks&&this._currentModeCallbacks.onReady&&this._currentModeCallbacks.onReady()},i.unregister=function(){t.prototype.unregister.call(this),this._dragHandler&&this._dragHandler.remove(),this._doubleClickHandler&&this._doubleClickHandler.remove()},i.getLngLatFromEvent=function(t){var e=this.getMapElementXYPosition(t);return this.unproject(e.containerX,e.containerY)},i.getMapEventElement=function(){return this._container.querySelector(".esri-view-surface")},i.setDraggability=function(t){this._dragEnabled=t},i.project=function(t,e){var i=new this._lib.Point({longitude:t,latitude:e}),n=this._mapView.toScreen(i);return{x:n.x,y:n.y}},i.unproject=function(t,e){var i=this._mapView.toMap({x:t,y:e});return{lng:i.longitude,lat:i.latitude}},i.setCursor=function(t){"unset"===t?this.getMapEventElement().style.removeProperty("cursor"):this.getMapEventElement().style.cursor=t},i.setDoubleClickToZoom=function(t){this._zoomEnabled=t},i.render=function(t,e){var i=this;t.created.forEach(function(t){i.addFeature(t,e)}),t.updated.forEach(function(t){i.removeFeatureById(t.id),i.addFeature(t,e)}),t.deletedIds.forEach(function(t){i.removeFeatureById(t)})},i.clear=function(){this._featureLayer.graphics.removeAll()},i.removeFeatureById=function(t){var e=this,i=this._featureLayer.graphics.find(function(i){return i.attributes[e._featureIdAttributeName]===t});this._featureLayer.remove(i)},i.addFeature=function(t,e){var i,n=t.geometry,o=n.coordinates,r=n.type,s=e[t.properties.mode](t),a=void 0,l=void 0;switch(r){case"Point":l=new this._lib.Point({latitude:o[1],longitude:o[0]}),a=new this._lib.SimpleMarkerSymbol({color:this.getColorFromHex(s.pointColor),size:2*s.pointWidth+"px",outline:{color:this.getColorFromHex(s.pointOutlineColor),width:s.pointOutlineWidth+"px"}});break;case"LineString":l=new this._lib.Polyline({paths:[o]}),a=new this._lib.SimpleLineSymbol({color:this.getColorFromHex(s.lineStringColor),width:s.lineStringWidth+"px"});break;case"Polygon":l=new this._lib.Polygon({rings:o}),a=new this._lib.SimpleFillSymbol({color:this.getColorFromHex(s.polygonFillColor,s.polygonFillOpacity),outline:{color:this.getColorFromHex(s.polygonOutlineColor),width:s.polygonOutlineWidth+"px"}})}var c=new this._lib.Graphic({geometry:l,symbol:a,attributes:(i={},i[this._featureIdAttributeName]=t.id,i)});"Point"===r?this._featureLayer.graphics.add(c):this._featureLayer.graphics.add(c,0)},i.getColorFromHex=function(t,e){var i=this._lib.Color.fromHex(t);return e&&(i.a=e),i},e}(l),Mt="selected",Dt="midPoint",It="closingPoint";function kt(t){return Boolean(t&&"object"==typeof t&&null!==t&&!Array.isArray(t))}function Ft(t){if(!function(t){return"number"==typeof t&&!isNaN(new Date(t).valueOf())}(t))throw new Error("updatedAt and createdAt are not valid timestamps");return!0}!function(t){t.Drawing="drawing",t.Select="select",t.Static="static",t.Render="render"}(wt||(wt={}));var Ot=/*#__PURE__*/function(){var t=n.prototype;function n(t){this._state=void 0,this._styles=void 0,this.behaviors=[],this.pointerDistance=void 0,this.coordinatePrecision=void 0,this.onStyleChange=void 0,this.store=void 0,this.setDoubleClickToZoom=void 0,this.unproject=void 0,this.project=void 0,this.setCursor=void 0,this.type=wt.Drawing,this.mode="base",this._state="unregistered",this._styles=t&&t.styles?i({},t.styles):{},this.pointerDistance=t&&t.pointerDistance||40}return t.registerBehaviors=function(t){},t.setDrawing=function(){if("started"!==this._state)throw new Error("Mode must be unregistered or stopped to start");this._state="drawing"},t.setStarted=function(){if("stopped"!==this._state&&"registered"!==this._state&&"drawing"!==this._state&&"selecting"!==this._state)throw new Error("Mode must be unregistered or stopped to start");this._state="started",this.setDoubleClickToZoom(!1)},t.setStopped=function(){if("started"!==this._state)throw new Error("Mode must be started to be stopped");this._state="stopped",this.setDoubleClickToZoom(!0)},t.register=function(t){if("unregistered"!==this._state)throw new Error("Can not register unless mode is unregistered");this._state="registered",this.store=t.store,this.store.registerOnChange(t.onChange),this.setDoubleClickToZoom=t.setDoubleClickToZoom,this.project=t.project,this.unproject=t.unproject,this.onSelect=t.onSelect,this.onDeselect=t.onDeselect,this.setCursor=t.setCursor,this.onStyleChange=t.onChange,this.onFinish=t.onFinish,this.coordinatePrecision=t.coordinatePrecision,this.registerBehaviors({mode:t.mode,store:this.store,project:this.project,unproject:this.unproject,pointerDistance:this.pointerDistance,coordinatePrecision:t.coordinatePrecision})},t.validateFeature=function(t){if("unregistered"===this._state)throw new Error("Mode must be registered");return function(t,e){var i;if(kt(t))if(null==t.id)i="Feature has no id";else if("string"!=typeof t.id&&"number"!=typeof t.id)i="Feature must be string or number as per GeoJSON spec";else if(e(t.id))if(kt(t.geometry))if(kt(t.properties))if("string"==typeof t.geometry.type&&["Polygon","LineString","Point"].includes(t.geometry.type))if(Array.isArray(t.geometry.coordinates)){if(!t.properties.mode||"string"!=typeof t.properties.mode)throw new Error("Feature does not have a valid mode property")}else i="Feature coordinates is not an array";else i="Feature is not Point, LineString or Polygon";else i="Feature has no properties";else i="Feature has no geometry";else i="Feature must match the id strategy (default is UUID4)";else i="Feature is not object";if(i)throw new Error(i);return!0}(t,this.store.idStrategy.isValidId)},t.onFinish=function(t){},t.onDeselect=function(t){},t.onSelect=function(t){},t.onKeyDown=function(t){},t.onKeyUp=function(t){},t.onMouseMove=function(t){},t.onClick=function(t){},t.onDragStart=function(t,e){},t.onDrag=function(t,e){},t.onDragEnd=function(t,e){},t.getHexColorStylingValue=function(t,e,i){return this.getStylingValue(t,e,i)},t.getNumericStylingValue=function(t,e,i){return this.getStylingValue(t,e,i)},t.getStylingValue=function(t,e,i){return void 0===t?e:"function"==typeof t?t(i):t},e(n,[{key:"state",get:function(){return this._state},set:function(t){throw new Error("Please use the modes lifecycle methods")}},{key:"styles",get:function(){return this._styles},set:function(t){if("object"!=typeof t)throw new Error("Styling must be an object");this.onStyleChange([],"styling"),this._styles=t}}]),n}(),Lt=/*#__PURE__*/function(t){function e(){for(var e,i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];return(e=t.call.apply(t,[this].concat(n))||this).type=wt.Select,e}return n(e,t),e}(Ot);function Wt(t,e){var i=function(t){return t*Math.PI/180},n=i(t[1]),o=i(t[0]),r=i(e[1]),s=r-n,a=i(e[0])-o,l=Math.sin(s/2)*Math.sin(s/2)+Math.cos(n)*Math.cos(r)*Math.sin(a/2)*Math.sin(a/2);return 2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))*6371e3/1e3}function At(t){return t%360*Math.PI/180}function Gt(t){return t%(2*Math.PI)*180/Math.PI}function Bt(t){for(var e,i,n,o,s,a,l,c,h=t.center,d=t.radiusKilometers,u=t.coordinatePrecision,g=t.steps?t.steps:64,p=[],f=0;f<g;f++){var y=(i=d,n=-360*f/g,o=At((e=h)[0]),s=At(e[1]),a=At(n),l=function(t){return t/6371.0088}(i),c=Math.asin(Math.sin(s)*Math.cos(l)+Math.cos(s)*Math.sin(l)*Math.cos(a)),[Gt(o+Math.atan2(Math.sin(a)*Math.sin(l)*Math.cos(s),Math.cos(l)-Math.sin(s)*Math.sin(c))),Gt(c)]);p.push([r(y[0],u),r(y[1],u)])}return p.push(p[0]),{type:"Feature",geometry:{type:"Polygon",coordinates:[p]},properties:{}}}function Nt(t){var e;if("Polygon"===t.geometry.type)e=t.geometry.coordinates;else{if("LineString"!==t.geometry.type)throw new Error("Self intersects only accepts Polygons and LineStrings");e=[t.geometry.coordinates]}for(var i=[],n=0;n<e.length;n++)for(var o=0;o<e[n].length-1;o++)for(var r=0;r<e.length;r++)for(var s=0;s<e[r].length-1;s++)l(n,o,r,s);return i.length>0;function a(t){return t<0||t>1}function l(t,n,o,r){var s,l=e[t][n],c=e[t][n+1],h=e[o][r],d=e[o][r+1],u=function(t,e,i,n){if(Rt(t,i)||Rt(t,n)||Rt(e,i)||Rt(n,i))return null;var o=t[0],r=t[1],s=e[0],a=e[1],l=i[0],c=i[1],h=n[0],d=n[1],u=(o-s)*(c-d)-(r-a)*(l-h);return 0===u?null:[((o*a-r*s)*(l-h)-(o-s)*(l*d-c*h))/u,((o*a-r*s)*(c-d)-(r-a)*(l*d-c*h))/u]}(l,c,h,d);null!==u&&(s=d[0]!==h[0]?(u[0]-h[0])/(d[0]-h[0]):(u[1]-h[1])/(d[1]-h[1]),a(c[0]!==l[0]?(u[0]-l[0])/(c[0]-l[0]):(u[1]-l[1])/(c[1]-l[1]))||a(s)||(u.toString(),i.push(u)))}}function Rt(t,e){return t[0]===e[0]&&t[1]===e[1]}function Vt(t,e){return 2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]&&Infinity!==t[0]&&Infinity!==t[1]&&(n=t[0])>=-180&&n<=180&&(i=t[1])>=-90&&i<=90&&jt(t[0])<=e&&jt(t[1])<=e;var i,n}function jt(t){for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Tt(t,e){return"Polygon"===t.geometry.type&&1===t.geometry.coordinates.length&&t.geometry.coordinates[0].length>=4&&t.geometry.coordinates[0].every(function(t){return Vt(t,e)})&&(i=t.geometry.coordinates[0][0])[0]===(n=t.geometry.coordinates[0][t.geometry.coordinates[0].length-1])[0]&&i[1]===n[1];var i,n}function Xt(t,e){return Tt(t,e)&&!Nt(t)}var zt=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="circle",n.center=void 0,n.clickCount=0,n.currentCircleId=void 0,n.keyEvents=void 0,n.cursors=void 0;var o={start:"crosshair"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentCircleId){var t=this.currentCircleId;this.center=void 0,this.currentCircleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted(),this.onFinish(t)}},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onClick=function(t){if(0===this.clickCount){this.center=[t.lng,t.lat];var e=Bt({center:this.center,radiusKilometers:1e-5,coordinatePrecision:this.coordinatePrecision}),i=this.store.create([{geometry:e.geometry,properties:{mode:this.mode}}]);this.currentCircleId=i[0],this.clickCount++,this.setDrawing()}else 1===this.clickCount&&this.center&&void 0!==this.currentCircleId&&this.createCircle(t),this.close()},o.onMouseMove=function(t){this.createCircle(t)},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){try{void 0!==this.currentCircleId&&this.store.delete([this.currentCircleId])}catch(t){}this.center=void 0,this.currentCircleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"Polygon"===t.geometry.type&&t.properties.mode===this.mode?(e.polygonFillColor=this.getHexColorStylingValue(this.styles.fillColor,e.polygonFillColor,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.outlineColor,e.polygonOutlineColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.outlineWidth,e.polygonOutlineWidth,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.fillOpacity,e.polygonFillOpacity,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&Xt(e,this.coordinatePrecision)},o.createCircle=function(t){if(1===this.clickCount&&this.center&&this.currentCircleId){var e=Wt(this.center,[t.lng,t.lat]),i=Bt({center:this.center,radiusKilometers:e,coordinatePrecision:this.coordinatePrecision});this.store.updateGeometry([{id:this.currentCircleId,geometry:i.geometry}])}},e}(Ot),Yt=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="freehand",n.startingClick=!1,n.currentId=void 0,n.closingPointId=void 0,n.minDistance=void 0,n.keyEvents=void 0,n.cursors=void 0,n.preventPointsNearClose=void 0;var o={start:"crosshair",close:"pointer"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,n.preventPointsNearClose=e&&e.preventPointsNearClose||!0,n.minDistance=e&&e.minDistance||20,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentId){var t=this.currentId;this.closingPointId&&this.store.delete([this.closingPointId]),this.startingClick=!1,this.currentId=void 0,this.closingPointId=void 0,"drawing"===this.state&&this.setStarted(),this.onFinish(t)}},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onMouseMove=function(t){if(void 0!==this.currentId&&!1!==this.startingClick){var e=this.store.getGeometryCopy(this.currentId),i=e.coordinates[0][e.coordinates[0].length-2],n=this.project(i[0],i[1]),o=s({x:n.x,y:n.y},{x:t.containerX,y:t.containerY}),r=e.coordinates[0][0],a=this.project(r[0],r[1]);if(s({x:a.x,y:a.y},{x:t.containerX,y:t.containerY})<this.pointerDistance){if(this.setCursor(this.cursors.close),this.preventPointsNearClose)return}else this.setCursor(this.cursors.start);o<this.minDistance||(e.coordinates[0].pop(),this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[[].concat(e.coordinates[0],[[t.lng,t.lat],e.coordinates[0][0]])]}}]))}},o.onClick=function(t){if(!1===this.startingClick){var e=this.store.create([{geometry:{type:"Polygon",coordinates:[[[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat]]]},properties:{mode:this.mode}},{geometry:{type:"Point",coordinates:[t.lng,t.lat]},properties:{mode:this.mode}}]),i=e[1];return this.currentId=e[0],this.closingPointId=i,this.startingClick=!0,void this.setDrawing()}this.close()},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){try{this.currentId&&this.store.delete([this.currentId]),this.closingPointId&&this.store.delete([this.closingPointId])}catch(t){}this.closingPointId=void 0,this.currentId=void 0,this.startingClick=!1,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"Polygon"===t.geometry.type&&t.properties.mode===this.mode?(e.polygonFillColor=this.getHexColorStylingValue(this.styles.fillColor,e.polygonFillColor,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.outlineColor,e.polygonOutlineColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.outlineWidth,e.polygonOutlineWidth,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.fillOpacity,e.polygonFillOpacity,t),e):"Feature"===t.type&&"Point"===t.geometry.type&&t.properties.mode===this.mode?(e.pointWidth=this.getNumericStylingValue(this.styles.closingPointWidth,e.pointWidth,t),e.pointColor=this.getHexColorStylingValue(this.styles.closingPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.closingPointOutlineColor,e.pointOutlineColor,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.closingPointOutlineWidth,2,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&Tt(e,this.coordinatePrecision)},e}(Ot),Ut=Math.PI/180,Ht=180/Math.PI,Kt=/*#__PURE__*/function(){function t(t){this.coordinatePrecision=void 0,this.coords=void 0,this.length=void 0,this.coordinatePrecision=t,this.coords=[],this.length=0}return t.prototype.moveTo=function(t){this.length++,this.coords.push([r(t[0],this.coordinatePrecision),r(t[1],this.coordinatePrecision)])},t}(),Jt=/*#__PURE__*/function(){function t(t){var e=t.properties;this.geometries=void 0,this.properties=void 0,this.properties=e||{},this.geometries=[]}return t.prototype.toJSON=function(){if(1===this.geometries.length){var t=this.geometries[0].coords;if(t[0][0]&&!isNaN(t[0][0])&&t[0][1]&&!isNaN(t[0][1]))return{geometry:{type:"LineString",coordinates:t},type:"Feature",properties:this.properties}}return null},t}(),qt=/*#__PURE__*/function(){function t(t,e,i){if(this.g=void 0,this.start=void 0,this.end=void 0,this.properties=void 0,!t||void 0===t[0]||void 0===t[1])throw new Error("GreatCircle constructor expects two args: start and end objects with x and y properties");if(!e||void 0===e[0]||void 0===e[1])throw new Error("GreatCircle constructor expects two args: start and end objects with x and y properties");this.start={lng:t[0],lat:t[1],x:Ut*t[0],y:Ut*t[1]},this.end={lng:e[0],lat:e[1],x:Ut*e[0],y:Ut*e[1]},this.properties=i||{};var n=this.start.x-this.end.x,o=Math.pow(Math.sin((this.start.y-this.end.y)/2),2)+Math.cos(this.start.y)*Math.cos(this.end.y)*Math.pow(Math.sin(n/2),2);if(this.g=2*Math.asin(Math.sqrt(o)),this.g===Math.PI)throw new Error("it appears "+t+" and "+e+" are 'antipodal', e.g diametrically opposite, thus there is no single route but rather infinite");if(isNaN(this.g))throw new Error("could not calculate great circle between "+t+" and "+e)}var e=t.prototype;return e.interpolate=function(t){var e=Math.sin((1-t)*this.g)/Math.sin(this.g),i=Math.sin(t*this.g)/Math.sin(this.g),n=e*Math.cos(this.start.y)*Math.cos(this.start.x)+i*Math.cos(this.end.y)*Math.cos(this.end.x),o=e*Math.cos(this.start.y)*Math.sin(this.start.x)+i*Math.cos(this.end.y)*Math.sin(this.end.x),r=e*Math.sin(this.start.y)+i*Math.sin(this.end.y),s=Ht*Math.atan2(r,Math.sqrt(Math.pow(n,2)+Math.pow(o,2)));return[Ht*Math.atan2(o,n),s]},e.arc=function(t,e){var i=[];if(!t||t<=2)i.push([this.start.lng,this.start.lat]),i.push([this.end.lng,this.end.lat]);else for(var n=1/(t-1),o=0;o<t;++o){var r=this.interpolate(n*o);i.push(r)}for(var s=!1,a=0,l=e&&e.offset?e.offset:10,c=180-l,h=-180+l,d=360-l,u=1;u<i.length;++u){var g=i[u-1][0],p=i[u][0],f=Math.abs(p-g);f>d&&(p>c&&g<h||g>c&&p<h)?s=!0:f>a&&(a=f)}var y=[];if(s&&a<l){var v=[];y.push(v);for(var m=0;m<i.length;++m){var _=i[m][0];if(m>0&&Math.abs(_-i[m-1][0])>d){var C=i[m-1][0],P=i[m-1][1],S=i[m][0],x=i[m][1];if(C>-180&&C<h&&180===S&&m+1<i.length&&i[m-1][0]>-180&&i[m-1][0]<h){v.push([-180,i[m][1]]),m++,v.push([i[m][0],i[m][1]]);continue}if(C>c&&C<180&&-180===S&&m+1<i.length&&i[m-1][0]>c&&i[m-1][0]<180){v.push([180,i[m][1]]),m++,v.push([i[m][0],i[m][1]]);continue}if(C<h&&S>c){var w=C;C=S,S=w;var E=P;P=x,x=E}if(C>c&&S<h&&(S+=360),C<=180&&S>=180&&C<S){var b=(180-C)/(S-C),M=b*x+(1-b)*P;v.push([i[m-1][0]>c?180:-180,M]),(v=[]).push([i[m-1][0]>c?-180:180,M]),y.push(v)}else y.push(v=[]);v.push([_,i[m][1]])}else v.push([i[m][0],i[m][1]])}}else{var D=[];y.push(D);for(var I=0;I<i.length;++I)D.push([i[I][0],i[I][1]])}for(var k=new Jt({properties:this.properties}),F=0;F<y.length;++F){var O=new Kt(e.coordinatePrecision);k.geometries.push(O);for(var L=y[F],W=0;W<L.length;++W)O.moveTo(L[W])}return k},t}(),Zt=function(t){var e=t.store,i=t.mode,n=t.project,o=t.unproject,r=t.pointerDistance,s=t.coordinatePrecision;this.store=void 0,this.mode=void 0,this.project=void 0,this.unproject=void 0,this.pointerDistance=void 0,this.coordinatePrecision=void 0,this.store=e,this.mode=i,this.project=n,this.unproject=o,this.pointerDistance=r,this.coordinatePrecision=s},$t=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.pixelDistance=void 0,o.clickBoundingBox=void 0,o.getSnappableCoordinate=function(t,e){return o.getSnappableEnds(t,function(t){return Boolean(!t.properties||t.properties.mode!==o.mode||!e||t.id!==e)})},o.config=e,o.pixelDistance=i,o.clickBoundingBox=n,o}return n(e,t),e.prototype.getSnappableEnds=function(t,e){var i=this,n=this.clickBoundingBox.create(t),o=this.store.search(n,e),r={coord:void 0,minDist:Infinity};return o.forEach(function(e){var n;if("LineString"===e.geometry.type){var o=(n=e.geometry.coordinates)[0],s=i.pixelDistance.measure(t,o);s<r.minDist&&s<i.pointerDistance&&(r.coord=o);var a=n[n.length-1],l=i.pixelDistance.measure(t,a);l<r.minDist&&l<i.pointerDistance&&(r.coord=a)}}),r.coord},e}(Zt),Qt=/*#__PURE__*/function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.measure=function(t,e){var i=this.project(e[0],e[1]);return s({x:i.x,y:i.y},{x:t.containerX,y:t.containerY})},e}(Zt);function te(t){var e=t.unproject,i=t.point,n=t.pointerDistance/2,o=i.x,r=i.y;return{type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[e(o-n,r-n),e(o+n,r-n),e(o+n,r+n),e(o-n,r+n),e(o-n,r-n)].map(function(t){return[t.lng,t.lat]})]}}}var ee=/*#__PURE__*/function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.create=function(t){return te({unproject:this.unproject,point:{x:t.containerX,y:t.containerY},pointerDistance:this.pointerDistance})},e}(Zt),ie=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="greatcircle",n.currentCoordinate=0,n.currentId=void 0,n.closingPointId=void 0,n.keyEvents=void 0,n.snappingEnabled=void 0,n.cursors=void 0,n.snapping=void 0;var o={start:"crosshair",close:"pointer"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,n.snappingEnabled=!(!e||void 0===e.snapping)&&e.snapping,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentId){var t=this.currentId;this.closingPointId&&this.store.delete([this.closingPointId]),this.currentCoordinate=0,this.currentId=void 0,this.closingPointId=void 0,"drawing"===this.state&&this.setStarted(),this.onFinish(t)}},o.registerBehaviors=function(t){this.snapping=new $t(t,new Qt(t),new ee(t))},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onMouseMove=function(t){if(this.setCursor(this.cursors.start),(void 0!==this.currentId||0!==this.currentCoordinate)&&this.currentId&&1===this.currentCoordinate&&this.closingPointId){var e=this.currentId&&this.snappingEnabled&&this.snapping.getSnappableCoordinate(t,this.currentId)||[t.lng,t.lat];this.store.updateGeometry([{id:this.closingPointId,geometry:{type:"Point",coordinates:e}}]);var i=this.store.getGeometryCopy(this.currentId);i.coordinates.pop();var n=function(t){var e=t.start,i=t.end,n=t.options||{};if("object"!=typeof n)throw new Error("options argument is invalid, must be of type object");var o=n.properties,r=n.numberOfPoints,s=void 0===r?100:r,a=n.offset,l=void 0===a?10:a,c=n.coordinatePrecision,h=void 0===c?9:c;return new qt(e,i,void 0===o?{}:o).arc(s,{offset:l,coordinatePrecision:h}).toJSON()}({start:i.coordinates[0],end:e,options:{coordinatePrecision:this.coordinatePrecision}});n&&this.store.updateGeometry([{id:this.currentId,geometry:n.geometry}])}},o.onClick=function(t){if(0===this.currentCoordinate){var e=this.snappingEnabled&&this.snapping.getSnappableCoordinate(t)||[t.lng,t.lat],i=this.store.create([{geometry:{type:"LineString",coordinates:[e,e]},properties:{mode:this.mode}}]);this.currentId=i[0];var n=this.store.create([{geometry:{type:"Point",coordinates:e},properties:{mode:this.mode}}]);this.closingPointId=n[0],this.currentCoordinate++,this.setDrawing()}else 1===this.currentCoordinate&&this.currentId&&(this.setCursor("pointer"),this.close())},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel&&this.cleanUp(),t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){try{this.currentId&&this.store.delete([this.currentId]),this.closingPointId&&this.store.delete([this.closingPointId])}catch(t){}this.closingPointId=void 0,this.currentId=void 0,this.currentCoordinate=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"LineString"===t.geometry.type&&t.properties.mode===this.mode?(e.lineStringColor=this.getHexColorStylingValue(this.styles.lineStringColor,e.lineStringColor,t),e.lineStringWidth=this.getNumericStylingValue(this.styles.lineStringWidth,e.lineStringWidth,t),e):"Feature"===t.type&&"Point"===t.geometry.type&&t.properties.mode===this.mode?(e.pointColor=this.getHexColorStylingValue(this.styles.closingPointColor,e.pointColor,t),e.pointWidth=this.getNumericStylingValue(this.styles.closingPointWidth,e.pointWidth,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.closingPointOutlineColor,"#ffffff",t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.closingPointOutlineWidth,2,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&"LineString"===e.geometry.type&&e.properties.mode===this.mode&&e.geometry.coordinates.length>=2},e}(Ot),ne=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.pixelDistance=void 0,o.clickBoundingBox=void 0,o.getSnappableCoordinateFirstClick=function(t){return o.getSnappable(t,function(t){return Boolean(t.properties&&t.properties.mode===o.mode)})},o.getSnappableCoordinate=function(t,e){return o.getSnappable(t,function(t){return Boolean(t.properties&&t.properties.mode===o.mode&&t.id!==e)})},o.config=e,o.pixelDistance=i,o.clickBoundingBox=n,o}return n(e,t),e.prototype.getSnappable=function(t,e){var i=this,n=this.clickBoundingBox.create(t),o=this.store.search(n,e),r={coord:void 0,minDist:Infinity};return o.forEach(function(e){var n;if("Polygon"===e.geometry.type)n=e.geometry.coordinates[0];else{if("LineString"!==e.geometry.type)return;n=e.geometry.coordinates}n.forEach(function(e){var n=i.pixelDistance.measure(t,e);n<r.minDist&&n<i.pointerDistance&&(r.coord=e)})}),r.coord},e}(Zt),oe=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="linestring",n.currentCoordinate=0,n.currentId=void 0,n.closingPointId=void 0,n.allowSelfIntersections=void 0,n.keyEvents=void 0,n.snappingEnabled=void 0,n.cursors=void 0,n.mouseMove=!1,n.snapping=void 0;var o={start:"crosshair",close:"pointer"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,n.snappingEnabled=!(!e||void 0===e.snapping)&&e.snapping,n.allowSelfIntersections=!e||void 0===e.allowSelfIntersections||e.allowSelfIntersections,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentId){var t=this.store.getGeometryCopy(this.currentId);t.coordinates.pop(),this.store.updateGeometry([{id:this.currentId,geometry:{type:"LineString",coordinates:[].concat(t.coordinates)}}]);var e=this.currentId;this.closingPointId&&this.store.delete([this.closingPointId]),this.currentCoordinate=0,this.currentId=void 0,this.closingPointId=void 0,"drawing"===this.state&&this.setStarted(),this.onFinish(e)}},o.registerBehaviors=function(t){this.snapping=new ne(t,new Qt(t),new ee(t))},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onMouseMove=function(t){if(this.mouseMove=!0,this.setCursor(this.cursors.start),void 0!==this.currentId&&0!==this.currentCoordinate){var e=this.store.getGeometryCopy(this.currentId);e.coordinates.pop();var i=this.snappingEnabled&&this.snapping.getSnappableCoordinate(t,this.currentId)||[t.lng,t.lat];if(this.closingPointId){var n=e.coordinates[e.coordinates.length-1],o=this.project(n[0],n[1]);s({x:o.x,y:o.y},{x:t.containerX,y:t.containerY})<this.pointerDistance&&this.setCursor(this.cursors.close)}this.store.updateGeometry([{id:this.currentId,geometry:{type:"LineString",coordinates:[].concat(e.coordinates,[i])}}])}},o.onClick=function(t){this.currentCoordinate>0&&!this.mouseMove&&this.onMouseMove(t),this.mouseMove=!1;var e=this.currentId&&this.snappingEnabled&&this.snapping.getSnappableCoordinate(t,this.currentId)||[t.lng,t.lat];if(0===this.currentCoordinate){var i=this.store.create([{geometry:{type:"LineString",coordinates:[e,e]},properties:{mode:this.mode}}]);this.currentId=i[0],this.currentCoordinate++,this.setDrawing()}else if(1===this.currentCoordinate&&this.currentId){var n=this.store.getGeometryCopy(this.currentId),o=this.store.create([{geometry:{type:"Point",coordinates:[].concat(e)},properties:{mode:this.mode}}]);this.closingPointId=o[0],this.setCursor(this.cursors.close),this.store.updateGeometry([{id:this.currentId,geometry:{type:"LineString",coordinates:[n.coordinates[0],e,e]}}]),this.currentCoordinate++}else if(this.currentId){var r=this.store.getGeometryCopy(this.currentId),a=r.coordinates[r.coordinates.length-2],l=this.project(a[0],a[1]);if(s({x:l.x,y:l.y},{x:t.containerX,y:t.containerY})<this.pointerDistance)this.close();else{var c={type:"LineString",coordinates:[].concat(r.coordinates,[e])};if(!this.allowSelfIntersections&&Nt({type:"Feature",geometry:c,properties:{}}))return;this.closingPointId&&(this.setCursor(this.cursors.close),this.store.updateGeometry([{id:this.currentId,geometry:c},{id:this.closingPointId,geometry:{type:"Point",coordinates:r.coordinates[r.coordinates.length-1]}}]),this.currentCoordinate++)}}},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel&&this.cleanUp(),t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){try{this.currentId&&this.store.delete([this.currentId]),this.closingPointId&&this.store.delete([this.closingPointId])}catch(t){}this.closingPointId=void 0,this.currentId=void 0,this.currentCoordinate=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"LineString"===t.geometry.type&&t.properties.mode===this.mode?(e.lineStringColor=this.getHexColorStylingValue(this.styles.lineStringColor,e.lineStringColor,t),e.lineStringWidth=this.getNumericStylingValue(this.styles.lineStringWidth,e.lineStringWidth,t),e):"Feature"===t.type&&"Point"===t.geometry.type&&t.properties.mode===this.mode?(e.pointColor=this.getHexColorStylingValue(this.styles.closingPointColor,e.pointColor,t),e.pointWidth=this.getNumericStylingValue(this.styles.closingPointWidth,e.pointWidth,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.closingPointOutlineColor,"#ffffff",t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.closingPointOutlineWidth,2,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&"LineString"===e.geometry.type&&e.properties.mode===this.mode&&e.geometry.coordinates.length>=2},e}(Ot);function re(t,e){return"Point"===t.geometry.type&&Vt(t.geometry.coordinates,e)}var se=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="point",n.cursors=void 0;var o={create:"crosshair"};return n.cursors=e&&e.cursors?i({},o,e.cursors):o,n}n(e,t);var o=e.prototype;return o.start=function(){this.setStarted(),this.setCursor(this.cursors.create)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onClick=function(t){if(!this.store)throw new Error("Mode must be registered first");var e=this.store.create([{geometry:{type:"Point",coordinates:[t.lng,t.lat]},properties:{mode:this.mode}}]);this.onFinish(e[0])},o.onMouseMove=function(){},o.onKeyDown=function(){},o.onKeyUp=function(){},o.cleanUp=function(){},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"Point"===t.geometry.type&&t.properties.mode===this.mode&&(e.pointWidth=this.getNumericStylingValue(this.styles.pointWidth,e.pointWidth,t),e.pointColor=this.getHexColorStylingValue(this.styles.pointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.pointOutlineColor,e.pointOutlineColor,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.pointOutlineWidth,2,t)),e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&re(e,this.coordinatePrecision)},e}(Ot);function ae(t,e){return t[0]===e[0]&&t[1]===e[1]}var le=/*#__PURE__*/function(t){function i(e,i){var n;return(n=t.call(this,e)||this).config=void 0,n.pixelDistance=void 0,n._startEndPoints=[],n.config=e,n.pixelDistance=i,n}n(i,t);var o=i.prototype;return o.create=function(t,e){var i,n;if(this.ids.length)throw new Error("Opening and closing points already creating");if(t.length<=3)throw new Error("Requires at least 4 cooridnates");this._startEndPoints=this.store.create([{geometry:{type:"Point",coordinates:t[0]},properties:(i={mode:e},i[It]=!0,i)},{geometry:{type:"Point",coordinates:t[t.length-2]},properties:(n={mode:e},n[It]=!0,n)}])},o.delete=function(){this.ids.length&&(this.store.delete(this.ids),this._startEndPoints=[])},o.update=function(t){if(2!==this.ids.length)throw new Error("No closing points to update");this.store.updateGeometry([{id:this.ids[0],geometry:{type:"Point",coordinates:t[0]}},{id:this.ids[1],geometry:{type:"Point",coordinates:t[t.length-3]}}])},o.isClosingPoint=function(t){var e=this.store.getGeometryCopy(this.ids[0]),i=this.store.getGeometryCopy(this.ids[1]),n=this.pixelDistance.measure(t,e.coordinates),o=this.pixelDistance.measure(t,i.coordinates);return{isClosing:n<this.pointerDistance,isPreviousClosing:o<this.pointerDistance}},e(i,[{key:"ids",get:function(){return this._startEndPoints.concat()},set:function(t){}}]),i}(Zt),ce=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="polygon",n.currentCoordinate=0,n.currentId=void 0,n.allowSelfIntersections=void 0,n.keyEvents=void 0,n.snappingEnabled=void 0,n.snapping=void 0,n.pixelDistance=void 0,n.closingPoints=void 0,n.cursors=void 0,n.mouseMove=!1;var o={start:"crosshair",close:"pointer"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,n.snappingEnabled=!(!e||void 0===e.snapping)&&e.snapping,n.allowSelfIntersections=!e||void 0===e.allowSelfIntersections||e.allowSelfIntersections,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.close=function(){if(void 0!==this.currentId){var t=this.store.getGeometryCopy(this.currentId).coordinates[0];if(!(t.length<5)){this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[[].concat(t.slice(0,-2),[t[0]])]}}]);var e=this.currentId;this.currentCoordinate=0,this.currentId=void 0,this.closingPoints.delete(),"drawing"===this.state&&this.setStarted(),this.onFinish(e)}}},o.registerBehaviors=function(t){this.pixelDistance=new Qt(t),this.snapping=new ne(t,this.pixelDistance,new ee(t)),this.closingPoints=new le(t,this.pixelDistance)},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onMouseMove=function(t){if(this.mouseMove=!0,this.setCursor(this.cursors.start),void 0!==this.currentId&&0!==this.currentCoordinate){var e,i=this.snappingEnabled?this.snapping.getSnappableCoordinate(t,this.currentId):void 0,n=this.store.getGeometryCopy(this.currentId).coordinates[0];if(i&&(t.lng=i[0],t.lat=i[1]),1===this.currentCoordinate){var o=1/Math.pow(10,this.coordinatePrecision-1),r=Math.max(1e-6,o);e=[n[0],[t.lng,t.lat],[t.lng,t.lat-r],n[0]]}else if(2===this.currentCoordinate)e=[n[0],n[1],[t.lng,t.lat],n[0]];else{var s=this.closingPoints.isClosingPoint(t);s.isPreviousClosing||s.isClosing?(this.setCursor(this.cursors.close),e=[].concat(n.slice(0,-2),[n[0],n[0]])):e=[].concat(n.slice(0,-2),[[t.lng,t.lat],n[0]])}this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[e]}}])}},o.onClick=function(t){if(this.currentCoordinate>0&&!this.mouseMove&&this.onMouseMove(t),this.mouseMove=!1,0===this.currentCoordinate){var e=this.snappingEnabled?this.snapping.getSnappableCoordinateFirstClick(t):void 0;e&&(t.lng=e[0],t.lat=e[1]);var i=this.store.create([{geometry:{type:"Polygon",coordinates:[[[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat]]]},properties:{mode:this.mode}}]);this.currentId=i[0],this.currentCoordinate++,this.setDrawing()}else if(1===this.currentCoordinate&&this.currentId){var n=this.snappingEnabled?this.snapping.getSnappableCoordinate(t,this.currentId):void 0;n&&(t.lng=n[0],t.lat=n[1]);var o=this.store.getGeometryCopy(this.currentId);if(ae([t.lng,t.lat],o.coordinates[0][0]))return;this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[[o.coordinates[0][0],[t.lng,t.lat],[t.lng,t.lat],o.coordinates[0][0]]]}}]),this.currentCoordinate++}else if(2===this.currentCoordinate&&this.currentId){var r=this.snappingEnabled?this.snapping.getSnappableCoordinate(t,this.currentId):void 0;r&&(t.lng=r[0],t.lat=r[1]);var s=this.store.getGeometryCopy(this.currentId).coordinates[0];if(ae([t.lng,t.lat],s[1]))return;2===this.currentCoordinate&&this.closingPoints.create(s,"polygon"),this.store.updateGeometry([{id:this.currentId,geometry:{type:"Polygon",coordinates:[[s[0],s[1],[t.lng,t.lat],[t.lng,t.lat],s[0]]]}}]),this.currentCoordinate++}else if(this.currentId){var a=this.snappingEnabled?this.snapping.getSnappableCoordinate(t,this.currentId):void 0,l=this.store.getGeometryCopy(this.currentId).coordinates[0],c=this.closingPoints.isClosingPoint(t);if(c.isPreviousClosing||c.isClosing)this.close();else{if(a&&(t.lng=a[0],t.lat=a[1]),ae([t.lng,t.lat],l[this.currentCoordinate-1]))return;var h=(void 0===(d=[[].concat(l.slice(0,-1),[[t.lng,t.lat],l[0]])])&&(d=[[[0,0],[0,1],[1,1],[1,0],[0,0]]]),{type:"Feature",geometry:{type:"Polygon",coordinates:d},properties:{}});if(this.currentCoordinate>2&&!this.allowSelfIntersections&&Nt(h))return;this.store.updateGeometry([{id:this.currentId,geometry:h.geometry}]),this.currentCoordinate++,this.closingPoints.ids.length&&this.closingPoints.update(h.geometry.coordinates[0])}}var d},o.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},o.onKeyDown=function(){},o.onDragStart=function(){this.setCursor("unset")},o.onDrag=function(){},o.onDragEnd=function(){this.setCursor(this.cursors.start)},o.cleanUp=function(){try{this.currentId&&this.store.delete([this.currentId]),this.closingPoints.ids.length&&this.closingPoints.delete()}catch(t){}this.currentId=void 0,this.currentCoordinate=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});if(t.properties.mode===this.mode){if("Polygon"===t.geometry.type)return e.polygonFillColor=this.getHexColorStylingValue(this.styles.fillColor,e.polygonFillColor,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.outlineColor,e.polygonOutlineColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.outlineWidth,e.polygonOutlineWidth,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.fillOpacity,e.polygonFillOpacity,t),e.zIndex=10,e;if("Point"===t.geometry.type)return e.pointWidth=this.getNumericStylingValue(this.styles.closingPointWidth,e.pointWidth,t),e.pointColor=this.getHexColorStylingValue(this.styles.closingPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.closingPointOutlineColor,e.pointOutlineColor,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.closingPointOutlineWidth,2,t),e.zIndex=30,e}return e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&Tt(e,this.coordinatePrecision)},e}(Ot),he=/*#__PURE__*/function(t){function e(e){var n;(n=t.call(this,e)||this).mode="rectangle",n.center=void 0,n.clickCount=0,n.currentRectangleId=void 0,n.keyEvents=void 0,n.cursors=void 0;var o={start:"crosshair"};if(n.cursors=e&&e.cursors?i({},o,e.cursors):o,null===(null==e?void 0:e.keyEvents))n.keyEvents={cancel:null,finish:null};else{var r={cancel:"Escape",finish:"Enter"};n.keyEvents=e&&e.keyEvents?i({},r,e.keyEvents):r}return n}n(e,t);var o=e.prototype;return o.updateRectangle=function(t){if(1===this.clickCount&&this.center&&this.currentRectangleId){var e=this.store.getGeometryCopy(this.currentRectangleId).coordinates[0][0];this.store.updateGeometry([{id:this.currentRectangleId,geometry:{type:"Polygon",coordinates:[[e,[t.lng,e[1]],[t.lng,t.lat],[e[0],t.lat],e]]}}])}},o.close=function(){var t=this.currentRectangleId;this.center=void 0,this.currentRectangleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted(),t&&this.onFinish(t)},o.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},o.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},o.onClick=function(t){if(0===this.clickCount){this.center=[t.lng,t.lat];var e=this.store.create([{geometry:{type:"Polygon",coordinates:[[[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat],[t.lng,t.lat]]]},properties:{mode:this.mode}}]);this.currentRectangleId=e[0],this.clickCount++,this.setDrawing()}else this.updateRectangle(t),this.close()},o.onMouseMove=function(t){this.updateRectangle(t)},o.onKeyDown=function(){},o.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.cleanUp=function(){this.currentRectangleId&&this.store.delete([this.currentRectangleId]),this.center=void 0,this.currentRectangleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted()},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return"Feature"===t.type&&"Polygon"===t.geometry.type&&t.properties.mode===this.mode?(e.polygonFillColor=this.getHexColorStylingValue(this.styles.fillColor,e.polygonFillColor,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.outlineColor,e.polygonOutlineColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.outlineWidth,e.polygonOutlineWidth,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.fillOpacity,e.polygonFillOpacity,t),e):e},o.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&Xt(e,this.coordinatePrecision)},e}(Ot),de=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,{styles:e.styles})||this).type=wt.Render,i.mode="render",i.mode=e.modeName,i}n(e,t);var i=e.prototype;return i.registerBehaviors=function(t){this.mode=t.mode},i.start=function(){this.setStarted()},i.stop=function(){this.setStopped()},i.onKeyUp=function(){},i.onKeyDown=function(){},i.onClick=function(){},i.onDragStart=function(){},i.onDrag=function(){},i.onDragEnd=function(){},i.onMouseMove=function(){},i.cleanUp=function(){},i.styleFeature=function(t){return{pointColor:this.getHexColorStylingValue(this.styles.pointColor,"#3f97e0",t),pointWidth:this.getNumericStylingValue(this.styles.pointWidth,6,t),pointOutlineColor:this.getHexColorStylingValue(this.styles.pointOutlineColor,"#ffffff",t),pointOutlineWidth:this.getNumericStylingValue(this.styles.pointOutlineWidth,0,t),polygonFillColor:this.getHexColorStylingValue(this.styles.polygonFillColor,"#3f97e0",t),polygonFillOpacity:this.getNumericStylingValue(this.styles.polygonFillOpacity,.3,t),polygonOutlineColor:this.getHexColorStylingValue(this.styles.polygonOutlineColor,"#3f97e0",t),polygonOutlineWidth:this.getNumericStylingValue(this.styles.polygonOutlineWidth,4,t),lineStringWidth:this.getNumericStylingValue(this.styles.lineStringWidth,4,t),lineStringColor:this.getHexColorStylingValue(this.styles.lineStringColor,"#3f97e0",t),zIndex:this.getNumericStylingValue(this.styles.zIndex,0,t)}},i.validateFeature=function(e){return t.prototype.validateFeature.call(this,e)&&(re(e,this.coordinatePrecision)||Tt(e,this.coordinatePrecision)||function(t,e){return"LineString"===t.geometry.type&&t.geometry.coordinates.length>=2&&t.geometry.coordinates.every(function(t){return Vt(t,e)})}(e,this.coordinatePrecision))},e}(Ot);function ue(t,e,i,n,o){var s=n(t[0],t[1]),a=n(e[0],e[1]),l=o((s.x+a.x)/2,(s.y+a.y)/2),c=l.lat;return[r(l.lng,i),r(c,i)]}function ge(t,e,i,n){for(var o=[],r=0;r<t.length-1;r++){var s=ue(t[r],t[r+1],e,i,n);o.push(s)}return o}var pe=/*#__PURE__*/function(t){function i(e,i){var n;return(n=t.call(this,e)||this).config=void 0,n.selectionPointBehavior=void 0,n._midPoints=[],n.config=e,n.selectionPointBehavior=i,n}n(i,t);var o=i.prototype;return o.insert=function(t,e){var i=this.store.getGeometryCopy(t),n=this.store.getPropertiesCopy(t),o=n.midPointFeatureId,r=n.midPointSegment,s=this.store.getGeometryCopy(o),a="Polygon"===s.type?s.coordinates[0]:s.coordinates;a.splice(r+1,0,i.coordinates),s.coordinates="Polygon"===s.type?[a]:a,this.store.updateGeometry([{id:o,geometry:s}]),this.store.delete([].concat(this._midPoints,this.selectionPointBehavior.ids)),this.create(a,o,e),this.selectionPointBehavior.create(a,s.type,o)},o.create=function(t,e,i){var n=this;if(!this.store.has(e))throw new Error("Store does not have feature with this id");this._midPoints=this.store.create(function(t,e,i,n,o){return ge(t,i,n,o).map(function(t,i){return{geometry:{type:"Point",coordinates:t},properties:e(i)}})}(t,function(t){var i;return(i={mode:n.mode})[Dt]=!0,i.midPointSegment=t,i.midPointFeatureId=e,i},i,this.config.project,this.config.unproject))},o.delete=function(){this._midPoints.length&&(this.store.delete(this._midPoints),this._midPoints=[])},o.getUpdated=function(t){var e=this;if(0!==this._midPoints.length)return ge(t,this.coordinatePrecision,this.config.project,this.config.unproject).map(function(t,i){return{id:e._midPoints[i],geometry:{type:"Point",coordinates:t}}})},e(i,[{key:"ids",get:function(){return this._midPoints.concat()},set:function(t){}}]),i}(Zt),fe=/*#__PURE__*/function(t){function i(e){var i;return(i=t.call(this,e)||this)._selectionPoints=[],i}n(i,t);var o=i.prototype;return o.create=function(t,e,i){var n=this;this._selectionPoints=this.store.create(function(t,e,i){for(var n=[],o="Polygon"===e?t.length-1:t.length,r=0;r<o;r++)n.push({geometry:{type:"Point",coordinates:t[r]},properties:i(r)});return n}(t,e,function(t){return{mode:n.mode,selectionPoint:!0,selectionPointFeatureId:i,index:t}}))},o.delete=function(){this.ids.length&&(this.store.delete(this.ids),this._selectionPoints=[])},o.getUpdated=function(t){if(0!==this._selectionPoints.length)return this._selectionPoints.map(function(e,i){return{id:e,geometry:{type:"Point",coordinates:t[i]}}})},o.getOneUpdated=function(t,e){if(void 0!==this._selectionPoints[t])return{id:this._selectionPoints[t],geometry:{type:"Point",coordinates:e}}},e(i,[{key:"ids",get:function(){return this._selectionPoints.concat()},set:function(t){}}]),i}(Zt);function ye(t,e){for(var i,n,o,r=!1,s=0,a=e.length;s<a;s++)for(var l=e[s],c=0,h=l.length,d=h-1;c<h;d=c++)(n=l[c])[1]>(i=t)[1]!=(o=l[d])[1]>i[1]&&i[0]<(o[0]-n[0])*(i[1]-n[1])/(o[1]-n[1])+n[0]&&(r=!r);return r}var ve=function(t,e,i){var n=function(t){return t*t},o=function(t,e){return n(t.x-e.x)+n(t.y-e.y)};return Math.sqrt(function(t,e,i){var n=o(e,i);if(0===n)return o(t,e);var r=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/n;return r=Math.max(0,Math.min(1,r)),o(t,{x:e.x+r*(i.x-e.x),y:e.y+r*(i.y-e.y)})}(t,e,i))},me=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.createClickBoundingBox=void 0,o.pixelDistance=void 0,o.config=e,o.createClickBoundingBox=i,o.pixelDistance=n,o}return n(e,t),e.prototype.find=function(t,e){for(var i=void 0,n=Infinity,o=void 0,r=Infinity,s=this.createClickBoundingBox.create(t),a=this.store.search(s),l=0;l<a.length;l++){var c=a[l],h=c.geometry;if("Point"===h.type){if(c.properties.selectionPoint||!e&&c.properties[Dt])continue;var d=this.pixelDistance.measure(t,h.coordinates);c.properties[Dt]&&d<this.pointerDistance&&d<r?(r=d,o=c):!c.properties[Dt]&&d<this.pointerDistance&&d<n&&(n=d,i=c)}else if("LineString"===h.type)for(var u=0;u<h.coordinates.length-1;u++){var g=h.coordinates[u],p=h.coordinates[u+1],f=ve({x:t.containerX,y:t.containerY},this.project(g[0],g[1]),this.project(p[0],p[1]));f<this.pointerDistance&&f<n&&(n=f,i=c)}else"Polygon"===h.type&&ye([t.lng,t.lat],h.coordinates)&&(n=0,i=c)}return{clickedFeature:i,clickedMidPoint:o}},e}(Zt),_e=/*#__PURE__*/function(t){function e(e,i,n,o){var r;return(r=t.call(this,e)||this).config=void 0,r.featuresAtMouseEvent=void 0,r.selectionPoints=void 0,r.midPoints=void 0,r.draggedFeatureId=null,r.dragPosition=void 0,r.config=e,r.featuresAtMouseEvent=i,r.selectionPoints=n,r.midPoints=o,r}n(e,t);var i=e.prototype;return i.startDragging=function(t,e){this.draggedFeatureId=e,this.dragPosition=[t.lng,t.lat]},i.stopDragging=function(){this.draggedFeatureId=null,this.dragPosition=void 0},i.isDragging=function(){return null!==this.draggedFeatureId},i.canDrag=function(t,e){var i=this.featuresAtMouseEvent.find(t,!0).clickedFeature;return!(!i||i.id!==e)},i.drag=function(t){if(this.draggedFeatureId){var e=this.store.getGeometryCopy(this.draggedFeatureId),i=[t.lng,t.lat];if("Polygon"===e.type||"LineString"===e.type){var n,o;if(o="Polygon"===e.type?(n=e.coordinates[0]).length-1:(n=e.coordinates).length,!this.dragPosition)return!1;for(var s=0;s<o;s++){var a=n[s],l=[this.dragPosition[0]-i[0],this.dragPosition[1]-i[1]],c=r(a[0]-l[0],this.config.coordinatePrecision),h=r(a[1]-l[1],this.config.coordinatePrecision);if(c>180||c<-180||h>90||h<-90)return!1;n[s]=[c,h]}"Polygon"===e.type&&(n[n.length-1]=[n[0][0],n[0][1]]);var d=this.selectionPoints.getUpdated(n)||[],u=this.midPoints.getUpdated(n)||[];this.store.updateGeometry([{id:this.draggedFeatureId,geometry:e}].concat(d,u)),this.dragPosition=[t.lng,t.lat]}else"Point"===e.type&&(this.store.updateGeometry([{id:this.draggedFeatureId,geometry:{type:"Point",coordinates:i}}]),this.dragPosition=[t.lng,t.lat])}},e}(Zt),Ce=/*#__PURE__*/function(t){function e(e,i,n,o){var r;return(r=t.call(this,e)||this).config=void 0,r.pixelDistance=void 0,r.selectionPoints=void 0,r.midPoints=void 0,r.draggedCoordinate={id:null,index:-1},r.config=e,r.pixelDistance=i,r.selectionPoints=n,r.midPoints=o,r}n(e,t);var i=e.prototype;return i.getClosestCoordinate=function(t,e){var i,n={dist:Infinity,index:-1,isFirstOrLastPolygonCoord:!1};if("LineString"===e.type)i=e.coordinates;else{if("Polygon"!==e.type)return n;i=e.coordinates[0]}for(var o=0;o<i.length;o++){var r=this.pixelDistance.measure(t,i[o]);if(r<this.pointerDistance&&r<n.dist){var s="Polygon"===e.type&&(o===i.length-1||0===o);n.dist=r,n.index=s?0:o,n.isFirstOrLastPolygonCoord=s}}return n},i.getDraggableIndex=function(t,e){var i=this.store.getGeometryCopy(e),n=this.getClosestCoordinate(t,i);return-1===n.index?-1:n.index},i.drag=function(t,e){if(!this.draggedCoordinate.id)return!1;var i=this.draggedCoordinate.index,n=this.store.getGeometryCopy(this.draggedCoordinate.id),o="LineString"===n.type?n.coordinates:n.coordinates[0],r=[t.lng,t.lat];if(t.lng>180||t.lng<-180||t.lat>90||t.lat<-90)return!1;if("Polygon"!==n.type||i!==o.length-1&&0!==i)o[i]=r;else{var s=o.length-1;o[0]=r,o[s]=r}var a=this.selectionPoints.getOneUpdated(i,r),l=a?[a]:[],c=this.midPoints.getUpdated(o)||[];return!("Point"!==n.type&&!e&&Nt({type:"Feature",geometry:n,properties:{}})||(this.store.updateGeometry([{id:this.draggedCoordinate.id,geometry:n}].concat(l,c)),0))},i.isDragging=function(){return null!==this.draggedCoordinate.id},i.startDragging=function(t,e){this.draggedCoordinate={id:t,index:e}},i.stopDragging=function(){this.draggedCoordinate={id:null,index:-1}},e}(Zt);function Pe(t){var e=0,i=0,n=0;return("Polygon"===t.geometry.type?t.geometry.coordinates[0].slice(0,-1):t.geometry.coordinates).forEach(function(t){e+=t[0],i+=t[1],n++},!0),[e/n,i/n]}function Se(t,e){var i=t,n=e,o=At(i[1]),r=At(n[1]),s=At(n[0]-i[0]);s>Math.PI&&(s-=2*Math.PI),s<-Math.PI&&(s+=2*Math.PI);var a=Math.log(Math.tan(r/2+Math.PI/4)/Math.tan(o/2+Math.PI/4)),l=(Gt(Math.atan2(s,a))+360)%360;return l>180?-(360-l):l}function xe(t,e,i){var n=e;e<0&&(n=-Math.abs(n));var o=n/6371008.8,r=t[0]*Math.PI/180,s=At(t[1]),a=At(i),l=o*Math.cos(a),c=s+l;Math.abs(c)>Math.PI/2&&(c=c>0?Math.PI-c:-Math.PI-c);var h=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(s/2+Math.PI/4)),d=Math.abs(h)>1e-11?l/h:Math.cos(s),u=[(180*(r+o*Math.sin(a)/d)/Math.PI+540)%360-180,180*c/Math.PI];return u[0]+=u[0]-t[0]>180?-360:t[0]-u[0]>180?360:0,u}function we(t,e){t[0]+=t[0]-e[0]>180?-360:e[0]-t[0]>180?360:0;var i=e[1]*Math.PI/180,n=t[1]*Math.PI/180,o=n-i,r=Math.abs(t[0]-e[0])*Math.PI/180;r>Math.PI&&(r-=2*Math.PI);var s=Math.log(Math.tan(n/2+Math.PI/4)/Math.tan(i/2+Math.PI/4)),a=Math.abs(s)>1e-11?o/s:Math.cos(i);return 6371008.8*Math.sqrt(o*o+a*a*r*r)}var Ee=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.selectionPoints=void 0,o.midPoints=void 0,o.lastBearing=void 0,o.config=e,o.selectionPoints=i,o.midPoints=n,o}n(e,t);var i=e.prototype;return i.reset=function(){this.lastBearing=void 0},i.rotate=function(t,e){var i=this,n=this.store.getGeometryCopy(e);if("Polygon"===n.type||"LineString"===n.type){var o=[t.lng,t.lat],s=Se(Pe({type:"Feature",geometry:n,properties:{}}),o);if(this.lastBearing){!function(t,e){if(0===e)return t;var i=Pe(t);("Polygon"===t.geometry.type?t.geometry.coordinates[0]:t.geometry.coordinates).forEach(function(t){var n=Se(i,t)+e,o=we(i,t),r=xe(i,o,n);t[0]=r[0],t[1]=r[1]})}({type:"Feature",geometry:n,properties:{}},-(this.lastBearing-(s+180)));var a="Polygon"===n.type?n.coordinates[0]:n.coordinates;a.forEach(function(t){t[0]=r(t[0],i.coordinatePrecision),t[1]=r(t[1],i.coordinatePrecision)});var l=this.midPoints.getUpdated(a)||[],c=this.selectionPoints.getUpdated(a)||[];this.store.updateGeometry([{id:e,geometry:n}].concat(c,l)),this.lastBearing=s+180}else this.lastBearing=s+180}},e}(Zt);function be(t,e,i,n){return void 0===n&&(n="xy"),1===e||("Polygon"===t.geometry.type?t.geometry.coordinates[0]:t.geometry.coordinates).forEach(function(t){var o=we(i,t),r=Se(i,t),s=xe(i,o*e,r);"x"!==n&&"xy"!==n||(t[0]=s[0]),"y"!==n&&"xy"!==n||(t[1]=s[1])}),t}var Me=/*#__PURE__*/function(t){function e(e,i,n){var o;return(o=t.call(this,e)||this).config=void 0,o.selectionPoints=void 0,o.midPoints=void 0,o.lastDistance=void 0,o.config=e,o.selectionPoints=i,o.midPoints=n,o}n(e,t);var i=e.prototype;return i.reset=function(){this.lastDistance=void 0},i.scale=function(t,e){var i=this,n=this.store.getGeometryCopy(e);if("Polygon"===n.type||"LineString"===n.type){var o=[t.lng,t.lat],s=Wt(Pe({type:"Feature",geometry:n,properties:{}}),o);if(this.lastDistance){var a={type:"Feature",geometry:n,properties:{}};be(a,1-(this.lastDistance-s)/s,Pe(a));var l="Polygon"===n.type?n.coordinates[0]:n.coordinates;l.forEach(function(t){t[0]=r(t[0],i.coordinatePrecision),t[1]=r(t[1],i.coordinatePrecision)});var c=this.midPoints.getUpdated(l)||[],h=this.selectionPoints.getUpdated(l)||[];this.store.updateGeometry([{id:e,geometry:n}].concat(h,c)),this.lastDistance=s}else this.lastDistance=s}},e}(Zt),De=/*#__PURE__*/function(t){function e(e,i,n,o,r){var s;return(s=t.call(this,e)||this).config=void 0,s.pixelDistance=void 0,s.selectionPoints=void 0,s.midPoints=void 0,s.minDistanceFromSelectionPoint=void 0,s.draggedCoordinate={id:null,index:-1},s.lastDistance=void 0,s.lastDistanceX=void 0,s.lastDistanceY=void 0,s.boundingBoxMaps={opposite:{0:4,1:5,2:6,3:7,4:0,5:1,6:2,7:3}},s.config=e,s.pixelDistance=i,s.selectionPoints=n,s.midPoints=o,s.minDistanceFromSelectionPoint=r,s}n(e,t);var i=e.prototype;return i.getClosestCoordinate=function(t,e){var i,n={dist:Infinity,index:-1,isFirstOrLastPolygonCoord:!1};if("LineString"===e.type)i=e.coordinates;else{if("Polygon"!==e.type)return n;i=e.coordinates[0]}for(var o=0;o<i.length;o++){var r=this.pixelDistance.measure(t,i[o]);if(r<this.pointerDistance&&r<n.dist){var s="Polygon"===e.type&&(o===i.length-1||0===o);n.dist=r,n.index=s?0:o,n.isFirstOrLastPolygonCoord=s}}return n},i.getDraggableIndex=function(t,e){var i=this.store.getGeometryCopy(e),n=this.getClosestCoordinate(t,i);return-1===n.index?-1:n.index},i.drag=function(t,e){var i=this;if(!this.draggedCoordinate.id)return!1;var n=this.draggedCoordinate.index,o=this.store.getGeometryCopy(this.draggedCoordinate.id);if("Polygon"!==o.type&&"LineString"!==o.type)return!1;var a,l,c="Polygon"===o.type?o.coordinates[0]:o.coordinates,h=c[n],d={type:"Feature",geometry:o,properties:{}};if("center-fixed"===e||"center"===e||"center-planar"===e)a=this.getCenterOrigin(d);else if("opposite-fixed"===e||"opposite"===e||"opposite-planar"===e){var u=this.getOppositeOrigin(d,h);a=u.origin,l=u.index}if(!a)return!1;var g=this.project(h[0],h[1]),p=s({x:t.containerX,y:t.containerY},{x:g.x,y:g.y}),f=this.project(a[0],a[1]),y=f.x,v=f.y,m=s({x:t.containerX,y:t.containerY},{x:y,y:v}),_=Math.abs(t.containerX-y),C=Math.abs(t.containerY-v);if(void 0===this.lastDistance||void 0===this.lastDistanceX||void 0===this.lastDistanceY)return this.lastDistance=m,this.lastDistanceX=_,this.lastDistanceY=C,!1;var P=1;0===this.lastDistance&&0===m||(P=1-(this.lastDistance-m)/m);var S=1;0===this.lastDistanceX&&0===_||(S=1-(this.lastDistanceX-_)/_);var x=1;if(0===this.lastDistanceY&&0===C||(x=1-(this.lastDistanceY-C)/C),"center-fixed"===e||"opposite-fixed"===e)be(d,P,a);else if("opposite"===e||"center"===e){if(p>m)return!1;if(!this.validateScale(S,x))return!1;be(d,S,a,"x"),be(d,x,a,"y")}else{if("center-planar"!==e&&"opposite-planar"!==e)throw new Error("Invalid resize option");if(!this.validateScale(S,x))return!1;this.scalePlanar(c,y,v,S,x)}for(var w=this.getBBox(c),E=0;E<w.length;E++)if(E!==l){var b=this.config.project(w[E][0],w[E][1]);if(this.pixelDistance.measure({containerX:b.x,containerY:b.y},a)<this.minDistanceFromSelectionPoint)return!1}c.forEach(function(t){t[0]=r(t[0],i.coordinatePrecision),t[1]=r(t[1],i.coordinatePrecision)});var M=this.midPoints.getUpdated(c)||[],D=this.selectionPoints.getUpdated(c)||[];return this.store.updateGeometry([{id:this.draggedCoordinate.id,geometry:o}].concat(D,M)),this.lastDistance=m,this.lastDistanceX=_,this.lastDistanceY=C,!0},i.validateScale=function(t,e){var i=!isNaN(t)&&t>0&&e<Number.MAX_SAFE_INTEGER,n=!isNaN(e)&&e>0&&e<Number.MAX_SAFE_INTEGER;return i&&n},i.scalePlanar=function(t,e,i,n,o){var r=this;t.forEach(function(t){var s=r.project(t[0],t[1]),a=r.unproject(e+(s.x-e)*n,i+(s.y-i)*o);t[0]=a.lng,t[1]=a.lat})},i.getCenterOrigin=function(t){return Pe(t)},i.getBBox=function(t){var e=[Infinity,Infinity,-Infinity,-Infinity];t.forEach(function(t){e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]<t[0]&&(e[2]=t[0]),e[3]<t[1]&&(e[3]=t[1])});var i=e[0],n=e[1],o=e[2],r=e[3];return[[i,r],[(i+o)/2,r],[o,r],[o,(n+r)/2],[o,n],[(i+o)/2,n],[i,n],[i,(n+r)/2]]},i.getOppositeOrigin=function(t,e){for(var i,n=this.getBBox("Polygon"===t.geometry.type?t.geometry.coordinates[0]:t.geometry.coordinates),o=Infinity,r=0;r<n.length;r++){var s=Wt(e,n[r]);s<o&&(i=r,o=s)}if(void 0===i)throw new Error("No closest coordinate found");var a=this.boundingBoxMaps.opposite[i];return{origin:n[a],index:a}},i.isDragging=function(){return null!==this.draggedCoordinate.id},i.startDragging=function(t,e){this.draggedCoordinate={id:t,index:e}},i.stopDragging=function(){this.lastDistance=void 0,this.draggedCoordinate={id:null,index:-1}},e}(Zt),Ie=/*#__PURE__*/function(t){function e(e){var n,o;(o=t.call(this,e)||this).mode="select",o.allowManualDeselection=!0,o.dragEventThrottle=5,o.dragEventCount=0,o.selected=[],o.flags=void 0,o.keyEvents=void 0,o.selectionPoints=void 0,o.midPoints=void 0,o.featuresAtMouseEvent=void 0,o.pixelDistance=void 0,o.clickBoundingBox=void 0,o.dragFeature=void 0,o.dragCoordinate=void 0,o.rotateFeature=void 0,o.scaleFeature=void 0,o.dragCoordinateResizeFeature=void 0,o.cursors=void 0,o.flags=e&&e.flags?e.flags:{};var r={pointerOver:"move",dragStart:"move",dragEnd:"move",insertMidpoint:"crosshair"};if(o.cursors=e&&e.cursors?i({},r,e.cursors):r,null===(null==e?void 0:e.keyEvents))o.keyEvents={deselect:null,delete:null,rotate:null,scale:null};else{var s={deselect:"Escape",delete:"Delete",rotate:["Control","r"],scale:["Control","s"]};o.keyEvents=e&&e.keyEvents?i({},s,e.keyEvents):s}return o.dragEventThrottle=e&&void 0!==e.dragEventThrottle&&e.dragEventThrottle||5,o.allowManualDeselection=null==(n=null==e?void 0:e.allowManualDeselection)||n,o}n(e,t);var o=e.prototype;return o.selectFeature=function(t){this.select(t,!1)},o.setSelecting=function(){if("started"!==this._state)throw new Error("Mode must be started to move to selecting state");this._state="selecting"},o.registerBehaviors=function(t){this.pixelDistance=new Qt(t),this.clickBoundingBox=new ee(t),this.featuresAtMouseEvent=new me(t,this.clickBoundingBox,this.pixelDistance),this.selectionPoints=new fe(t),this.midPoints=new pe(t,this.selectionPoints),this.rotateFeature=new Ee(t,this.selectionPoints,this.midPoints),this.scaleFeature=new Me(t,this.selectionPoints,this.midPoints),this.dragFeature=new _e(t,this.featuresAtMouseEvent,this.selectionPoints,this.midPoints),this.dragCoordinate=new Ce(t,this.pixelDistance,this.selectionPoints,this.midPoints),this.dragCoordinateResizeFeature=new De(t,this.pixelDistance,this.selectionPoints,this.midPoints,10)},o.deselectFeature=function(){this.deselect()},o.deselect=function(){var t=this,e=this.selected.filter(function(e){return t.store.has(e)}).map(function(t){return{id:t,property:Mt,value:!1}});this.store.updateProperty(e),this.onDeselect(this.selected[0]),this.selected=[],this.selectionPoints.delete(),this.midPoints.delete()},o.deleteSelected=function(){this.store.delete(this.selected),this.selected=[]},o.onRightClick=function(t){var e=this;if(this.selectionPoints.ids.length){var i,n=Infinity;if(this.selectionPoints.ids.forEach(function(o){var r=e.store.getGeometryCopy(o),s=e.pixelDistance.measure(t,r.coordinates);s<e.pointerDistance&&s<n&&(n=s,i=e.store.getPropertiesCopy(o))}),i){var o=i.selectionPointFeatureId,r=i.index,s=this.store.getPropertiesCopy(o),a=this.flags[s.mode];if(a&&a.feature&&a.feature.coordinates&&a.feature.coordinates.deletable){var l,c=this.store.getGeometryCopy(o);if("Polygon"===c.type){if((l=c.coordinates[0]).length<=4)return}else if("LineString"===c.type&&(l=c.coordinates).length<=3)return;l&&("Polygon"===c.type&&0===r||r===l.length-1?(l.shift(),l.pop(),l.push([l[0][0],l[0][1]])):l.splice(r,1),this.store.delete([].concat(this.midPoints.ids,this.selectionPoints.ids)),this.store.updateGeometry([{id:o,geometry:c}]),this.selectionPoints.create(l,c.type,o),a&&a.feature&&a.feature.coordinates&&a.feature.coordinates.midpoints&&this.midPoints.create(l,o,this.coordinatePrecision))}}}},o.select=function(t,e){if(void 0===e&&(e=!0),this.selected[0]!==t){var i=this.store.getPropertiesCopy(t),n=this.flags[i.mode];if(n&&n.feature){var o=this.selected[0];if(o){if(o===t)return;this.deselect()}e&&this.setCursor(this.cursors.pointerOver),this.selected=[t],this.store.updateProperty([{id:t,property:"selected",value:!0}]),this.onSelect(t);var r=this.store.getGeometryCopy(t),s=r.type,a=r.coordinates;if("LineString"===s||"Polygon"===s){var l="LineString"===s?a:a[0];l&&n&&n.feature.coordinates&&(this.selectionPoints.create(l,s,t),n.feature.coordinates.midpoints&&this.midPoints.create(l,t,this.coordinatePrecision))}}}},o.onLeftClick=function(t){var e=this.featuresAtMouseEvent.find(t,this.selected.length>0),i=e.clickedFeature,n=e.clickedMidPoint;if(this.selected.length&&n)this.midPoints.insert(n.id,this.coordinatePrecision);else if(i&&i.id)this.select(i.id,!0);else if(this.selected.length&&this.allowManualDeselection)return void this.deselect()},o.start=function(){this.setStarted(),this.setSelecting()},o.stop=function(){this.cleanUp(),this.setStarted(),this.setStopped()},o.onClick=function(t){"right"!==t.button?"left"===t.button&&this.onLeftClick(t):this.onRightClick(t)},o.canScale=function(t){return this.keyEvents.scale&&this.keyEvents.scale.every(function(e){return t.heldKeys.includes(e)})},o.canRotate=function(t){return this.keyEvents.rotate&&this.keyEvents.rotate.every(function(e){return t.heldKeys.includes(e)})},o.preventDefaultKeyEvent=function(t){var e=this.canRotate(t),i=this.canScale(t);(e||i)&&t.preventDefault()},o.onKeyDown=function(t){this.preventDefaultKeyEvent(t)},o.onKeyUp=function(t){if(this.preventDefaultKeyEvent(t),this.keyEvents.delete&&t.key===this.keyEvents.delete){if(!this.selected.length)return;this.onDeselect(this.selected[0]),this.deleteSelected(),this.selectionPoints.delete(),this.midPoints.delete()}else this.keyEvents.deselect&&t.key===this.keyEvents.deselect&&this.cleanUp()},o.cleanUp=function(){this.selected.length&&this.deselect()},o.onDragStart=function(t,e){if(this.selected.length){var i=this.store.getPropertiesCopy(this.selected[0]),n=this.flags[i.mode];if(n&&n.feature&&(n.feature.draggable||n.feature.coordinates&&n.feature.coordinates.draggable||n.feature.coordinates&&n.feature.coordinates.resizable)){this.dragEventCount=0;var o=this.selected[0],r=this.dragCoordinate.getDraggableIndex(t,o);return n&&n.feature&&n.feature.coordinates&&(n.feature.coordinates.draggable||n.feature.coordinates.resizable)&&-1!==r?(this.setCursor(this.cursors.dragStart),n.feature.coordinates.resizable?this.dragCoordinateResizeFeature.startDragging(o,r):this.dragCoordinate.startDragging(o,r),void e(!1)):n&&n.feature&&n.feature.draggable&&this.dragFeature.canDrag(t,o)?(this.setCursor(this.cursors.dragStart),this.dragFeature.startDragging(t,o),void e(!1)):void 0}}},o.onDrag=function(t,e){var i=this.selected[0];if(i){var n=this.store.getPropertiesCopy(i),o=this.flags[n.mode],r=!0===(o&&o.feature&&o.feature.selfIntersectable);if(this.dragEventCount++,this.dragEventCount%this.dragEventThrottle!=0)return o&&o.feature&&o.feature.rotateable&&this.canRotate(t)?(e(!1),void this.rotateFeature.rotate(t,i)):o&&o.feature&&o.feature.scaleable&&this.canScale(t)?(e(!1),void this.scaleFeature.scale(t,i)):this.dragCoordinateResizeFeature.isDragging()&&o.feature&&o.feature.coordinates&&o.feature.coordinates.resizable?(e(!1),void this.dragCoordinateResizeFeature.drag(t,o.feature.coordinates.resizable)):void(this.dragCoordinate.isDragging()?this.dragCoordinate.drag(t,r):this.dragFeature.isDragging()?this.dragFeature.drag(t):e(!0))}},o.onDragEnd=function(t,e){this.setCursor(this.cursors.dragEnd),(this.dragCoordinate.isDragging()||this.dragFeature.isDragging()||this.dragCoordinateResizeFeature.isDragging())&&this.onFinish(this.selected[0]),this.dragCoordinate.stopDragging(),this.dragFeature.stopDragging(),this.dragCoordinateResizeFeature.stopDragging(),this.rotateFeature.reset(),this.scaleFeature.reset(),e(!0)},o.onMouseMove=function(t){var e=this;if(this.selected.length){if(!this.dragFeature.isDragging()){var i=!1;this.midPoints.ids.forEach(function(n){if(!i){var o=e.store.getGeometryCopy(n);e.pixelDistance.measure(t,o.coordinates)<e.pointerDistance&&(i=!0)}});var n=!1;if(this.selectionPoints.ids.forEach(function(o){var r=e.store.getGeometryCopy(o);e.pixelDistance.measure(t,r.coordinates)<e.pointerDistance&&(i=!1,n=!0)}),i)this.setCursor(this.cursors.insertMidpoint);else{var o=this.featuresAtMouseEvent.find(t,!0).clickedFeature;this.setCursor(this.selected.length>0&&(o&&o.id===this.selected[0]||n)?this.cursors.pointerOver:"unset")}}}else this.setCursor("unset")},o.styleFeature=function(t){var e=i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});if(t.properties.mode===this.mode&&"Point"===t.geometry.type){if(t.properties.selectionPoint)return e.pointColor=this.getHexColorStylingValue(this.styles.selectionPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.selectionPointOutlineColor,e.pointOutlineColor,t),e.pointWidth=this.getNumericStylingValue(this.styles.selectionPointWidth,e.pointWidth,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.selectionPointOutlineWidth,2,t),e.zIndex=30,e;if(t.properties.midPoint)return e.pointColor=this.getHexColorStylingValue(this.styles.midPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.midPointOutlineColor,e.pointOutlineColor,t),e.pointWidth=this.getNumericStylingValue(this.styles.midPointWidth,4,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.midPointOutlineWidth,2,t),e.zIndex=40,e}else if(t.properties[Mt]){if("Polygon"===t.geometry.type)return e.polygonFillColor=this.getHexColorStylingValue(this.styles.selectedPolygonColor,e.polygonFillColor,t),e.polygonOutlineWidth=this.getNumericStylingValue(this.styles.selectedPolygonOutlineWidth,e.polygonOutlineWidth,t),e.polygonOutlineColor=this.getHexColorStylingValue(this.styles.selectedPolygonOutlineColor,e.polygonOutlineColor,t),e.polygonFillOpacity=this.getNumericStylingValue(this.styles.selectedPolygonFillOpacity,e.polygonFillOpacity,t),e.zIndex=10,e;if("LineString"===t.geometry.type)return e.lineStringColor=this.getHexColorStylingValue(this.styles.selectedLineStringColor,e.lineStringColor,t),e.lineStringWidth=this.getNumericStylingValue(this.styles.selectedLineStringWidth,e.lineStringWidth,t),e.zIndex=10,e;if("Point"===t.geometry.type)return e.pointWidth=this.getNumericStylingValue(this.styles.selectedPointWidth,e.pointWidth,t),e.pointColor=this.getHexColorStylingValue(this.styles.selectedPointColor,e.pointColor,t),e.pointOutlineColor=this.getHexColorStylingValue(this.styles.selectedPointOutlineColor,e.pointOutlineColor,t),e.pointOutlineWidth=this.getNumericStylingValue(this.styles.selectedPointOutlineWidth,e.pointOutlineWidth,t),e.zIndex=10,e}return e},e}(Lt),ke=/*#__PURE__*/function(t){function e(){for(var e,i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];return(e=t.call.apply(t,[this].concat(n))||this).type=wt.Static,e.mode="static",e}n(e,t);var o=e.prototype;return o.start=function(){},o.stop=function(){},o.onKeyUp=function(){},o.onKeyDown=function(){},o.onClick=function(){},o.onDragStart=function(){},o.onDrag=function(){},o.onDragEnd=function(){},o.onMouseMove=function(){},o.cleanUp=function(){},o.styleFeature=function(){return i({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0})},e}(Ot);function Fe(t,e,i,n,o){for(;n>i;){if(n-i>600){var r=n-i+1,s=e-i+1,a=Math.log(r),l=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*l*(r-l)/r)*(s-r/2<0?-1:1);Fe(t,e,Math.max(i,Math.floor(e-s*l/r+c)),Math.min(n,Math.floor(e+(r-s)*l/r+c)),o)}var h=t[e],d=i,u=n;for(Oe(t,i,e),o(t[n],h)>0&&Oe(t,i,n);d<u;){for(Oe(t,d,u),d++,u--;o(t[d],h)<0;)d++;for(;o(t[u],h)>0;)u--}0===o(t[i],h)?Oe(t,i,u):Oe(t,++u,n),u<=e&&(i=u+1),e<=u&&(n=u-1)}}function Oe(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function Le(t,e){We(t,0,t.children.length,e,t)}function We(t,e,i,n,o){o||(o=Te([])),o.minX=Infinity,o.minY=Infinity,o.maxX=-Infinity,o.maxY=-Infinity;for(var r=e;r<i;r++){var s=t.children[r];Ae(o,t.leaf?n(s):s)}return o}function Ae(t,e){return t.minX=Math.min(t.minX,e.minX),t.minY=Math.min(t.minY,e.minY),t.maxX=Math.max(t.maxX,e.maxX),t.maxY=Math.max(t.maxY,e.maxY),t}function Ge(t,e){return t.minX-e.minX}function Be(t,e){return t.minY-e.minY}function Ne(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function Re(t){return t.maxX-t.minX+(t.maxY-t.minY)}function Ve(t,e){return t.minX<=e.minX&&t.minY<=e.minY&&e.maxX<=t.maxX&&e.maxY<=t.maxY}function je(t,e){return e.minX<=t.maxX&&e.minY<=t.maxY&&e.maxX>=t.minX&&e.maxY>=t.minY}function Te(t){return{children:t,height:1,leaf:!0,minX:Infinity,minY:Infinity,maxX:-Infinity,maxY:-Infinity}}function Xe(t,e,i,n,o){for(var r=[e,i];r.length;)if(!((i=r.pop())-(e=r.pop())<=n)){var s=e+Math.ceil((i-e)/n/2)*n;Fe(t,s,e,i,o),r.push(e,s,s,i)}}var ze=/*#__PURE__*/function(){function t(t){this._maxEntries=void 0,this._minEntries=void 0,this.data=void 0,this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}var e=t.prototype;return e.search=function(t){var e=this.data,i=[];if(!je(t,e))return i;for(var n=this.toBBox,o=[];e;){for(var r=0;r<e.children.length;r++){var s=e.children[r],a=e.leaf?n(s):s;je(t,a)&&(e.leaf?i.push(s):Ve(t,a)?this._all(s,i):o.push(s))}e=o.pop()}return i},e.collides=function(t){var e=this.data;if(je(t,e))for(var i=[];e;){for(var n=0;n<e.children.length;n++){var o=e.children[n],r=e.leaf?this.toBBox(o):o;if(je(t,r)){if(e.leaf||Ve(t,r))return!0;i.push(o)}}e=i.pop()}return!1},e.load=function(t){if(t.length<this._minEntries)for(var e=0;e<t.length;e++)this.insert(t[e]);else{var i=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===i.height)this._splitRoot(this.data,i);else{if(this.data.height<i.height){var n=this.data;this.data=i,i=n}this._insert(i,this.data.height-i.height-1,!0)}else this.data=i}},e.insert=function(t){this._insert(t,this.data.height-1)},e.clear=function(){this.data=Te([])},e.remove=function(t){for(var e,i,n=this.data,o=this.toBBox(t),r=[],s=[],a=!1;n||r.length;){if(n||(n=r.pop(),i=r[r.length-1],e=s.pop(),a=!0),n.leaf){var l=n.children.indexOf(t);-1!==l&&(n.children.splice(l,1),r.push(n),this._condense(r))}a||n.leaf||!Ve(n,o)?i?(e++,n=i.children[e],a=!1):n=null:(r.push(n),s.push(e),e=0,i=n,n=n.children[0])}},e.toBBox=function(t){return t},e.compareMinX=function(t,e){return t.minX-e.minX},e.compareMinY=function(t,e){return t.minY-e.minY},e._all=function(t,e){for(var i=[];t;)t.leaf?e.push.apply(e,t.children):i.push.apply(i,t.children),t=i.pop();return e},e._build=function(t,e,i,n){var o,r=i-e+1,s=this._maxEntries;if(r<=s)return Le(o=Te(t.slice(e,i+1)),this.toBBox),o;n||(n=Math.ceil(Math.log(r)/Math.log(s)),s=Math.ceil(r/Math.pow(s,n-1))),(o=Te([])).leaf=!1,o.height=n;var a=Math.ceil(r/s),l=a*Math.ceil(Math.sqrt(s));Xe(t,e,i,l,this.compareMinX);for(var c=e;c<=i;c+=l){var h=Math.min(c+l-1,i);Xe(t,c,h,a,this.compareMinY);for(var d=c;d<=h;d+=a){var u=Math.min(d+a-1,h);o.children.push(this._build(t,d,u,n-1))}}return Le(o,this.toBBox),o},e._chooseSubtree=function(t,e,i,n){for(;n.push(e),!e.leaf&&n.length-1!==i;){for(var o=Infinity,r=Infinity,s=void 0,a=0;a<e.children.length;a++){var l=e.children[a],c=Ne(l),h=(d=t,u=l,(Math.max(u.maxX,d.maxX)-Math.min(u.minX,d.minX))*(Math.max(u.maxY,d.maxY)-Math.min(u.minY,d.minY))-c);h<r?(r=h,o=c<o?c:o,s=l):h===r&&c<o&&(o=c,s=l)}e=s||e.children[0]}var d,u;return e},e._insert=function(t,e,i){var n=i?t:this.toBBox(t),o=[],r=this._chooseSubtree(n,this.data,e,o);for(r.children.push(t),Ae(r,n);e>=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(n,o,e)},e._split=function(t,e){var i=t[e],n=i.children.length,o=this._minEntries;this._chooseSplitAxis(i,o,n);var r=this._chooseSplitIndex(i,o,n),s=Te(i.children.splice(r,i.children.length-r));s.height=i.height,s.leaf=i.leaf,Le(i,this.toBBox),Le(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(i,s)},e._splitRoot=function(t,e){this.data=Te([t,e]),this.data.height=t.height+1,this.data.leaf=!1,Le(this.data,this.toBBox)},e._chooseSplitIndex=function(t,e,i){for(var n,o,r,s,a,l,c,h=Infinity,d=Infinity,u=e;u<=i-e;u++){var g=We(t,0,u,this.toBBox),p=We(t,u,i,this.toBBox),f=(o=g,r=p,s=Math.max(o.minX,r.minX),a=Math.max(o.minY,r.minY),l=Math.min(o.maxX,r.maxX),c=Math.min(o.maxY,r.maxY),Math.max(0,l-s)*Math.max(0,c-a)),y=Ne(g)+Ne(p);f<h?(h=f,n=u,d=y<d?y:d):f===h&&y<d&&(d=y,n=u)}return n||i-e},e._chooseSplitAxis=function(t,e,i){var n=t.leaf?this.compareMinX:Ge,o=t.leaf?this.compareMinY:Be;this._allDistMargin(t,e,i,n)<this._allDistMargin(t,e,i,o)&&t.children.sort(n)},e._allDistMargin=function(t,e,i,n){t.children.sort(n);for(var o=this.toBBox,r=We(t,0,e,o),s=We(t,i-e,i,o),a=Re(r)+Re(s),l=e;l<i-e;l++){var c=t.children[l];Ae(r,t.leaf?o(c):c),a+=Re(r)}for(var h=i-e-1;h>=e;h--){var d=t.children[h];Ae(s,t.leaf?o(d):d),a+=Re(s)}return a},e._adjustParentBBoxes=function(t,e,i){for(var n=i;n>=0;n--)Ae(e[n],t)},e._condense=function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():Le(t[i],this.toBBox)},t}(),Ye=/*#__PURE__*/function(){function t(t){this.tree=void 0,this.idToNode=void 0,this.nodeToId=void 0,this.tree=new ze(t&&t.maxEntries?t.maxEntries:9),this.idToNode=new Map,this.nodeToId=new Map}var e=t.prototype;return e.setMaps=function(t,e){this.idToNode.set(t.id,e),this.nodeToId.set(e,t.id)},e.toBBox=function(t){var e,i=[],n=[];if("Polygon"===t.geometry.type)e=t.geometry.coordinates[0];else if("LineString"===t.geometry.type)e=t.geometry.coordinates;else{if("Point"!==t.geometry.type)throw new Error("Not a valid feature to turn into a bounding box");e=[t.geometry.coordinates]}for(var o=0;o<e.length;o++)n.push(e[o][1]),i.push(e[o][0]);var r=Math.min.apply(Math,n),s=Math.max.apply(Math,n);return{minX:Math.min.apply(Math,i),minY:r,maxX:Math.max.apply(Math,i),maxY:s}},e.insert=function(t){if(this.idToNode.get(String(t.id)))throw new Error("Feature already exists");var e=this.toBBox(t);this.setMaps(t,e),this.tree.insert(e)},e.load=function(t){var e=this,i=[],n=new Set;t.forEach(function(t){var o=e.toBBox(t);if(e.setMaps(t,o),n.has(String(t.id)))throw new Error("Duplicate feature ID found "+t.id);n.add(String(t.id)),i.push(o)}),this.tree.load(i)},e.update=function(t){this.remove(t.id);var e=this.toBBox(t);this.setMaps(t,e),this.tree.insert(e)},e.remove=function(t){var e=this.idToNode.get(t);if(!e)throw new Error(t+" not inserted into the spatial index");this.tree.remove(e)},e.clear=function(){this.tree.clear()},e.search=function(t){var e=this;return this.tree.search(this.toBBox(t)).map(function(t){return e.nodeToId.get(t)})},e.collides=function(t){return this.tree.collides(this.toBBox(t))},t}(),Ue={getId:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)})},isValidId:function(t){return"string"==typeof t&&36===t.length}},He=/*#__PURE__*/function(){function t(t){this.idStrategy=void 0,this.tracked=void 0,this.spatialIndex=void 0,this.store=void 0,this._onChange=function(){},this.store={},this.spatialIndex=new Ye,this.tracked=!t||!1!==t.tracked,this.idStrategy=t&&t.idStrategy?t.idStrategy:Ue}var e=t.prototype;return e.clone=function(t){return JSON.parse(JSON.stringify(t))},e.getId=function(){return this.idStrategy.getId()},e.has=function(t){return Boolean(this.store[t])},e.load=function(t,e){var i=this;if(0!==t.length){var n=this.clone(t);n.forEach(function(t){null==t.id&&(t.id=i.idStrategy.getId()),i.tracked&&(t.properties.createdAt?Ft(t.properties.createdAt):t.properties.createdAt=+new Date,t.properties.updatedAt?Ft(t.properties.updatedAt):t.properties.updatedAt=+new Date)});var o=[];n.forEach(function(t){var n=t.id;if(e&&!e(t))throw new Error("Feature is not "+n+" valid: "+JSON.stringify(t));if(i.has(n))throw new Error("Feature already exists with this id: "+n);i.store[n]=t,o.push(n)}),this.spatialIndex.load(n),this._onChange(o,"create")}},e.search=function(t,e){var i=this,n=this.spatialIndex.search(t).map(function(t){return i.store[t]});return this.clone(e?n.filter(e):n)},e.registerOnChange=function(t){this._onChange=function(e,i){t(e,i)}},e.getGeometryCopy=function(t){var e=this.store[t];if(!e)throw new Error("No feature with this id ("+t+"), can not get geometry copy");return this.clone(e.geometry)},e.getPropertiesCopy=function(t){var e=this.store[t];if(!e)throw new Error("No feature with this id ("+t+"), can not get properties copy");return this.clone(e.properties)},e.updateProperty=function(t){var e=this,i=[];t.forEach(function(t){var n=t.id,o=t.property,r=t.value,s=e.store[n];if(!s)throw new Error("No feature with this ("+n+"), can not update geometry");i.push(n),s.properties[o]=r,e.tracked&&(s.properties.updatedAt=+new Date)}),this._onChange&&this._onChange(i,"update")},e.updateGeometry=function(t){var e=this,i=[];t.forEach(function(t){var n=t.id,o=t.geometry;i.push(n);var r=e.store[n];if(!r)throw new Error("No feature with this ("+n+"), can not update geometry");r.geometry=e.clone(o),e.spatialIndex.update(r),e.tracked&&(r.properties.updatedAt=+new Date)}),this._onChange&&this._onChange(i,"update")},e.create=function(t){var e=this,n=[];return t.forEach(function(t){var o,r=t.geometry,s=t.properties,a=i({},s);e.tracked&&(o=+new Date,s?(a.createdAt="number"==typeof s.createdAt?s.createdAt:o,a.updatedAt="number"==typeof s.updatedAt?s.updatedAt:o):a={createdAt:o,updatedAt:o});var l=e.getId(),c={id:l,type:"Feature",geometry:r,properties:a};e.store[l]=c,e.spatialIndex.insert(c),n.push(l)}),this._onChange&&this._onChange([].concat(n),"create"),n},e.delete=function(t){var e=this;t.forEach(function(t){if(!e.store[t])throw new Error("No feature with this id, can not delete");delete e.store[t],e.spatialIndex.remove(t)}),this._onChange&&this._onChange([].concat(t),"delete")},e.copyAll=function(){var t=this;return this.clone(Object.keys(this.store).map(function(e){return t.store[e]}))},e.clear=function(){this.store={},this.spatialIndex.clear()},e.size=function(){return Object.keys(this.store).length},t}(),Ke={TerraDrawBaseDrawMode:Ot,TerraDrawBaseAdapter:l};exports.TerraDraw=/*#__PURE__*/function(){function t(t){var e=this;this._modes=void 0,this._mode=void 0,this._adapter=void 0,this._enabled=!1,this._store=void 0,this._eventListeners=void 0,this._instanceSelectMode=void 0,this._adapter=t.adapter,this._mode=new ke;var n=new Set,o=t.modes.reduce(function(t,e){if(n.has(e.mode))throw new Error("There is already a "+e.mode+" mode provided");return n.add(e.mode),t[e.mode]=e,t},{}),r=Object.keys(o);if(0===r.length)throw new Error("No modes provided");r.forEach(function(t){if(o[t].type===wt.Select){if(e._instanceSelectMode)throw new Error("only one type of select mode can be provided");e._instanceSelectMode=t}}),this._modes=i({},o,{static:this._mode}),this._eventListeners={change:[],select:[],deselect:[],finish:[],ready:[]},this._store=new He({tracked:!!t.tracked,idStrategy:t.idStrategy?t.idStrategy:void 0});var s=function(t){var i=[],n=e._store.copyAll().filter(function(e){return!t.includes(e.id)||(i.push(e),!1)});return{changed:i,unchanged:n}},a=function(t){e._enabled&&e._eventListeners.finish.forEach(function(e){e(t)})},l=function(t,i){if(e._enabled){e._eventListeners.change.forEach(function(e){e(t,i)});var n=s(t),o=n.changed,r=n.unchanged;"create"===i?e._adapter.render({created:o,deletedIds:[],unchanged:r,updated:[]},e.getModeStyles()):"update"===i?e._adapter.render({created:[],deletedIds:[],unchanged:r,updated:o},e.getModeStyles()):"delete"===i?e._adapter.render({created:[],deletedIds:t,unchanged:r,updated:[]},e.getModeStyles()):"styling"===i&&e._adapter.render({created:[],deletedIds:[],unchanged:r,updated:[]},e.getModeStyles())}},c=function(t){if(e._enabled){e._eventListeners.select.forEach(function(e){e(t)});var i=s([t]);e._adapter.render({created:[],deletedIds:[],unchanged:i.unchanged,updated:i.changed},e.getModeStyles())}},h=function(t){if(e._enabled){e._eventListeners.deselect.forEach(function(t){t()});var i=s([t]),n=i.changed;n&&e._adapter.render({created:[],deletedIds:[],unchanged:i.unchanged,updated:n},e.getModeStyles())}};Object.keys(this._modes).forEach(function(t){e._modes[t].register({mode:t,store:e._store,setCursor:e._adapter.setCursor.bind(e._adapter),project:e._adapter.project.bind(e._adapter),unproject:e._adapter.unproject.bind(e._adapter),setDoubleClickToZoom:e._adapter.setDoubleClickToZoom.bind(e._adapter),onChange:l,onSelect:c,onDeselect:h,onFinish:a,coordinatePrecision:e._adapter.getCoordinatePrecision()})})}var n=t.prototype;return n.checkEnabled=function(){if(!this._enabled)throw new Error("Terra Draw is not enabled")},n.getModeStyles=function(){var t=this,e={};return Object.keys(this._modes).forEach(function(i){e[i]=function(e){return t._instanceSelectMode&&e.properties[Mt]?t._modes[t._instanceSelectMode].styleFeature.bind(t._modes[t._instanceSelectMode])(e):t._modes[i].styleFeature.bind(t._modes[i])(e)}}),e},n.featuresAtLocation=function(t,e){var i=t.lng,n=t.lat,o=e&&void 0!==e.pointerDistance?e.pointerDistance:30,r=!e||void 0===e.ignoreSelectFeatures||e.ignoreSelectFeatures,a=this._adapter.unproject.bind(this._adapter),l=this._adapter.project.bind(this._adapter),c=l(i,n),h=te({unproject:a,point:c,pointerDistance:o});return this._store.search(h).filter(function(t){if(r&&(t.properties[Dt]||t.properties.selectionPoint))return!1;if("Point"===t.geometry.type){var e=t.geometry.coordinates,a=l(e[0],e[1]);return s(c,a)<o}if("LineString"===t.geometry.type){for(var h=t.geometry.coordinates,d=0;d<h.length-1;d++){var u=h[d],g=h[d+1];if(ve(c,l(u[0],u[1]),l(g[0],g[1]))<o)return!0}return!1}return!!ye([i,n],t.geometry.coordinates)||void 0})},n.getSelectMode=function(){if(this.checkEnabled(),!this._instanceSelectMode)throw new Error("No select mode defined in instance");return this.getMode()!==this._instanceSelectMode&&this.setMode(this._instanceSelectMode),this._modes[this._instanceSelectMode]},n.setModeStyles=function(t,e){if(this.checkEnabled(),!this._modes[t])throw new Error("No mode with this name present");this._modes[t].styles=e},n.getSnapshot=function(){return this._store.copyAll()},n.clear=function(){this.checkEnabled(),this._adapter.clear()},n.getMode=function(){return this._mode.mode},n.setMode=function(t){if(this.checkEnabled(),!this._modes[t])throw new Error("No mode with this name present");this._mode.stop(),this._mode=this._modes[t],this._mode.start()},n.removeFeatures=function(t){this.checkEnabled(),this._store.delete(t)},n.selectFeature=function(t){this.getSelectMode().selectFeature(t)},n.deselectFeature=function(t){this.getSelectMode().deselectFeature(t)},n.getFeatureId=function(){return this._store.getId()},n.hasFeature=function(t){return this._store.has(t)},n.addFeatures=function(t){var e=this;this.checkEnabled(),0!==t.length&&this._store.load(t,function(t){if(Boolean(t&&"object"==typeof t&&"properties"in t&&"object"==typeof t.properties&&null!==t.properties&&"mode"in t.properties)){var i=e._modes[t.properties.mode];return!!i&&i.validateFeature.bind(i)(t)}return!1})},n.start=function(){var t=this;this._enabled=!0,this._adapter.register({onReady:function(){t._eventListeners.ready.forEach(function(t){t()})},getState:function(){return t._mode.state},onClick:function(e){t._mode.onClick(e)},onMouseMove:function(e){t._mode.onMouseMove(e)},onKeyDown:function(e){t._mode.onKeyDown(e)},onKeyUp:function(e){t._mode.onKeyUp(e)},onDragStart:function(e,i){t._mode.onDragStart(e,i)},onDrag:function(e,i){t._mode.onDrag(e,i)},onDragEnd:function(e,i){t._mode.onDragEnd(e,i)},onClear:function(){t._mode.cleanUp(),t._store.clear()}})},n.getFeaturesAtLngLat=function(t,e){return this.featuresAtLocation({lng:t.lng,lat:t.lat},e)},n.getFeaturesAtPointerEvent=function(t,e){var i=this._adapter.getLngLatFromEvent.bind(this._adapter)(t);return null===i?[]:this.featuresAtLocation(i,e)},n.stop=function(){this._enabled=!1,this._adapter.unregister()},n.on=function(t,e){var i=this._eventListeners[t];i.includes(e)||i.push(e)},n.off=function(t,e){var i=this._eventListeners[t];i.includes(e)&&i.splice(i.indexOf(e),1)},e(t,[{key:"enabled",get:function(){return this._enabled},set:function(t){throw new Error("Enabled is read only")}}]),t}(),exports.TerraDrawArcGISMapsSDKAdapter=bt,exports.TerraDrawCircleMode=zt,exports.TerraDrawExtend=Ke,exports.TerraDrawFreehandMode=Yt,exports.TerraDrawGoogleMapsAdapter=c,exports.TerraDrawGreatCircleMode=ie,exports.TerraDrawLeafletAdapter=h,exports.TerraDrawLineStringMode=oe,exports.TerraDrawMapLibreGLAdapter=u,exports.TerraDrawMapboxGLAdapter=d,exports.TerraDrawOpenLayersAdapter=Et,exports.TerraDrawPointMode=se,exports.TerraDrawPolygonMode=ce,exports.TerraDrawRectangleMode=he,exports.TerraDrawRenderMode=de,exports.TerraDrawSelectMode=Ie;
2
2
  //# sourceMappingURL=terra-draw.cjs.map