function t(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}function e(e,i){for(var n=0;n 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}},n.setDoubleClickToZoom=function(t){this._map.setOptions(t?{disableDoubleClickZoom:!1}:{disableDoubleClickZoom:!0})},n.setDraggability=function(t){this._map.setOptions({draggable:t})},n.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 r=t.geometry.coordinates,o=[],s=0;s0)}}]),e}(c),d=/*#__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}r(e,t);var i=e.prototype;return i.createPaneStyleSheet=function(t,e){var i=document.createElement("style");return i.innerHTML=".leaflet-"+t+"-pane {z-index: "+(e+600)+";}",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 r=(0,t[i.properties.mode])(i),o=String(r.zIndex);return e._panes[o]||(e._panes[o]=e.createPaneStyleSheet(o,r.zIndex)),e._lib.circleMarker(n,{radius:r.pointWidth,stroke:r.pointOutlineWidth||!1,color:r.pointOutlineColor,weight:r.pointOutlineWidth,fillOpacity:.8,fillColor:r.pointColor,pane:o,interactive:!1})},style:function(i){if(!i||!i.properties)return{};var n=i,r=(0,t[n.properties.mode])(n),o=String(r.zIndex);return e._panes[o]||(e._panes[o]=e.createPaneStyleSheet(o,r.zIndex)),"LineString"===n.geometry.type?{interactive:!1,color:r.lineStringColor,weight:r.lineStringWidth,pane:o}:"Polygon"===n.geometry.type?{interactive:!1,fillOpacity:r.polygonFillOpacity,fillColor:r.polygonFillColor,weight:r.polygonOutlineWidth,stroke:!0,color:r.polygonFillColor,pane:o}:{}}}},i.getLngLatFromEvent=function(t){var e=this.getMapElementXYPosition(t),i={x:e.containerX,y:e.containerY};if(null===i.x||isNaN(i.x)||null===i.y||isNaN(i.y))return null;var n=this._map.containerPointToLatLng(i);return null===n.lng||isNaN(n.lng)||null===n.lat||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()},i.getCoordinatePrecision=function(){return t.prototype.getCoordinatePrecision.call(this)},i.unregister=function(){return t.prototype.unregister.call(this)},e}(c),u=/*#__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}r(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),r=i.getEmptyGeometries(),o=function(t){var i=n[t];Object.keys(e).forEach(function(t){var n=i.properties;if(n.mode===t){var o=e[t](i);"Point"===i.geometry.type?(n.pointColor=o.pointColor,n.pointOutlineColor=o.pointOutlineColor,n.pointOutlineWidth=o.pointOutlineWidth,n.pointWidth=o.pointWidth,r.points.push(i)):"LineString"===i.geometry.type?(n.lineStringColor=o.lineStringColor,n.lineStringWidth=o.lineStringWidth,r.linestrings.push(i)):"Polygon"===i.geometry.type&&(n.polygonFillColor=o.polygonFillColor,n.polygonFillOpacity=o.polygonFillOpacity,n.polygonOutlineColor=o.polygonOutlineColor,n.polygonOutlineWidth=o.polygonOutlineWidth,r.polygons.push(i))}})},s=0;s.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:r*=12.92,[255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},_.xyz=function(t,e){var i=t[0]/255,n=t[1]/255,r=t[2]/255;return[(.41239079926595*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.35758433938387*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.18048078840183*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92))*(e=e||C.whitepoint[2].E)[0],(.21263900587151*i+.71516867876775*n+.072192315360733*r)*e[1],(.019330818715591*i+.11919477979462*n+.95053215224966*r)*e[2]]};var P={name:"luv",min:[0,-134,-140],max:[100,224,122],channel:["lightness","u","v"],alias:["LUV","cieluv","cie1976"],xyz:function(t,e,i){var n,r,o,s,a,l,c;return 0===(o=t[0])?[0,0,0]:(n=t[1]/(13*o)+4*(a=C.whitepoint[i=i||2][e=e||"D65"][0])/(a+15*(l=C.whitepoint[i][e][1])+3*(c=C.whitepoint[i][e][2]))||0,r=t[2]/(13*o)+9*l/(a+15*l+3*c)||0,[9*(s=o>8?l*Math.pow((o+16)/116,3):l*o*.0011070564598794539)*n/(4*r)||0,s,s*(12-3*n-20*r)/(4*r)||0])}};C.luv=function(t,e,i){var n,r,o,s,a,l,c,h,d,u,g;u=4*(c=C.whitepoint[i=i||2][e=e||"D65"][0])/(c+15*(h=C.whitepoint[i][e][1])+3*(d=C.whitepoint[i][e][2])),g=9*h/(c+15*h+3*d),n=4*(s=t[0])/(s+15*(a=t[1])+3*(l=t[2]))||0,r=9*a/(s+15*a+3*l)||0;var p=a/h;return[o=p<=.008856451679035631?903.2962962962961*p:116*Math.pow(p,1/3)-16,13*o*(n-u),13*o*(r-g)]},P.lchuv=function(t){var e=t[0],i=t[1],n=t[2],r=Math.sqrt(i*i+n*n),o=360*Math.atan2(n,i)/2/Math.PI;return o<0&&(o+=360),[e,r,o]},C.lchuv=function(t){return P.lchuv(C.luv(t))};var x={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},M={red:0,orange:60,yellow:120,green:180,blue:240,purple:300},w={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(t){var e,i,n,r,o,s=t[0]/360,a=t[1]/100,l=t[2]/100,c=0;if(0===a)return[o=255*l,o,o];for(e=2*l-(i=l<.5?l*(1+a):l+a-l*a),r=[0,0,0];c<3;)(n=s+1/3*-(c-1))<0?n++:n>1&&n--,r[c++]=255*(o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e);return r}};function b(t,e,i){return Math.min(Math.max(t,e),i)}_.hsl=function(t){var e,i,n=t[0]/255,r=t[1]/255,o=t[2]/255,s=Math.min(n,r,o),a=Math.max(n,r,o),l=a-s;return a===s?e=0:n===a?e=(r-o)/l:r===a?e=2+(o-n)/l:o===a&&(e=4+(n-r)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(s+a)/2,[e,100*(a===s?0:i<=.5?l/(a+s):l/(2-a-s)),100*i]};const S=1024,E={};let I=0;function D(t){return Array.isArray(t)?t:function(t){if(E.hasOwnProperty(t))return E[t];if(I>=S){let t=0;for(const e in E)3&t++||(delete E[e],--I)}const e=function(t){var e;Array.isArray(t)&&t.raw&&(t=String.raw(...arguments)),t instanceof Number&&(t=+t);var i=function(t){var e,i,n=[],r=1;if("number"==typeof t)return{space:"rgb",values:[t>>>16,(65280&t)>>>8,255&t],alpha:1};if("number"==typeof t)return{space:"rgb",values:[t>>>16,(65280&t)>>>8,255&t],alpha:1};if(t=String(t).toLowerCase(),x[t])n=x[t].slice(),i="rgb";else if("transparent"===t)r=0,i="rgb",n=[0,0,0];else if("#"===t[0]){var o=t.slice(1),s=o.length;r=1,s<=4?(n=[parseInt(o[0]+o[0],16),parseInt(o[1]+o[1],16),parseInt(o[2]+o[2],16)],4===s&&(r=parseInt(o[3]+o[3],16)/255)):(n=[parseInt(o[0]+o[1],16),parseInt(o[2]+o[3],16),parseInt(o[4]+o[5],16)],8===s&&(r=parseInt(o[6]+o[7],16)/255)),n[0]||(n[0]=0),n[1]||(n[1]=0),n[2]||(n[2]=0),i="rgb"}else if(e=/^((?:rgba?|hs[lvb]a?|hwba?|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms|oklch|oklab|color))\s*\(([^\)]*)\)/.exec(t)){var a="cmyk"===(i=e[1].replace(/a$/,""))?4:"gray"===i?1:3;n=e[2].trim().split(/\s*[,\/]\s*|\s+/),"color"===i&&(i=n.shift()),r=(n=n.map(function(t,e){if("%"===t[t.length-1])return t=parseFloat(t)/100,3===e?t:"rgb"===i?255*t:"h"===i[0]?100*t:"l"!==i[0]||e?"lab"===i?125*t:"lch"===i?e<2?150*t:360*t:"o"!==i[0]||e?"oklab"===i?.4*t:"oklch"===i?e<2?.4*t:360*t:t:t:100*t;if("h"===i[e]||2===e&&"h"===i[i.length-1]){if(void 0!==M[t])return M[t];if(t.endsWith("deg"))return parseFloat(t);if(t.endsWith("turn"))return 360*parseFloat(t);if(t.endsWith("grad"))return 360*parseFloat(t)/400;if(t.endsWith("rad"))return 180*parseFloat(t)/Math.PI}return"none"===t?0:parseFloat(t)})).length>a?n.pop():1}else/[0-9](?:\s|\/|,)/.test(t)&&(n=t.match(/([0-9]+)/g).map(function(t){return parseFloat(t)}),i=t.match(/([a-z])/gi)?.join("")?.toLowerCase()||"rgb");return{space:i,values:n,alpha:r}}(t);if(!i.space)return[];const n="h"===i.space[0]?w.min:_.min,r="h"===i.space[0]?w.max:_.max;return(e=Array(3))[0]=Math.min(Math.max(i.values[0],n[0]),r[0]),e[1]=Math.min(Math.max(i.values[1],n[1]),r[1]),e[2]=Math.min(Math.max(i.values[2],n[2]),r[2]),"h"===i.space[0]&&(e=w.rgb(e)),e.push(Math.min(Math.max(i.alpha,0),1)),e}(t);if(4!==e.length)throw new Error('failed to parse "'+t+'" as color');for(const i of e)if(isNaN(i))throw new Error('failed to parse "'+t+'" as color');return function(t){t[0]=b(t[0]+.5|0,0,255),t[1]=b(t[1]+.5|0,0,255),t[2]=b(t[2]+.5|0,0,255),t[3]=b(t[3],0,1)}(e),E[t]=e,++I,e}(t)}function k(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(1e3*t[3])/1e3)+")"}const F="undefined"!=typeof navigator&&void 0!==navigator.userAgent?navigator.userAgent.toLowerCase():"";F.includes("firefox"),F.includes("safari")&&!F.includes("chrom")&&(F.includes("version/15.4")||/cpu (os|iphone os) 15_4 like mac os x/.test(F)),F.includes("webkit")&&F.includes("edge"),F.includes("macintosh");const O="undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas&&self instanceof WorkerGlobalScope,L="undefined"!=typeof Image&&Image.prototype.decode;function W(t,e,i,n){let r;return r=i&&i.length?i.shift():O?new OffscreenCanvas(t||300,e||300):document.createElement("canvas"),t&&(r.width=t),e&&(r.height=e),r.getContext("2d",n)}let j;function B(){return j||(j=W(1,1)),j}!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 A=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}},G=class{constructor(t){this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}};function N(){}function R(t){for(const e in t)delete t[e]}var V=class extends A{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 r=e?new G(t):t;r.target||(r.target=this.eventTarget_||this);const o=this.dispatching_||(this.dispatching_={}),s=this.pendingRemovals_||(this.pendingRemovals_={});let a;i in o||(o[i]=0,s[i]=0),++o[i];for(let t=0,e=n.length;t0)}removeEventListener(t,e){if(!this.listeners_)return;const i=this.listeners_[t];if(!i)return;const n=i.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[n]=N,++this.pendingRemovals_[t]):(i.splice(n,1),0===i.length&&delete this.listeners_[t]))}},z="change";function T(t,e,i,n,r){if(r){const r=i;i=function(){t.removeEventListener(e,i),r.apply(n??this,arguments)}}else n&&n!==t&&(i=i.bind(n));const o={target:t,type:e,listener:i};return t.addEventListener(e,i),o}function X(t,e,i,n){return T(t,e,i,n,!0)}function U(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),R(t))}function Y(t,e,i){return e+":"+t+":"+(i?D(i):"null")}const H=new class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=32}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_)3&t++||this.cache_[e].hasListener()||(delete this.cache_[e],delete this.patternCache_[e],--this.cacheSize_)}}get(t,e,i){const n=Y(t,e,i);return n in this.cache_?this.cache_[n]:null}getPattern(t,e,i){const n=Y(t,e,i);return n in this.patternCache_?this.patternCache_[n]:null}set(t,e,i,n,r){const o=Y(t,e,i),s=o in this.cache_;this.cache_[o]=n,r&&(0===n.getImageState()&&n.load(),1===n.getImageState()?n.ready().then(()=>{this.patternCache_[o]=B().createPattern(n.getImage(1),"repeat")}):this.patternCache_[o]=B().createPattern(n.getImage(1),"repeat")),s||++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}};let K=null;class J extends V{constructor(t,e,i,n,r){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=i,this.canvas_={},this.color_=r,this.imageState_=void 0===n?0:n,this.size_=t&&t.width&&t.height?[t.width,t.height]:null,this.src_=e,this.ready_=null}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(void 0===this.tainted_&&2===this.imageState_){K||(K=W(1,1,void 0,{willReadFrequently:!0})),K.drawImage(this.image_,0,0);try{K.getImageData(0,0,1,1),this.tainted_=!1}catch(t){K=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(z)}handleImageError_(){this.imageState_=3,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=2,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],i=W(t,e);i.fillRect(0,0,t,e),this.hitDetectionImage_=i.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(0===this.imageState_){this.image_||this.initializeImage_(),this.imageState_=1;try{void 0!==this.src_&&(this.image_.src=this.src_)}catch(t){this.handleImageError_()}this.image_ instanceof HTMLImageElement&&(t=this.image_,e=this.src_,e&&(t.src=e),t.src&&L?new Promise((e,i)=>t.decode().then(()=>e(t)).catch(n=>t.complete&&t.width?e(t):i(n))):function(t,e){return new Promise((e,i)=>{function n(){o(),e(t)}function r(){o(),i(new Error("Image load error"))}function o(){t.removeEventListener("load",n),t.removeEventListener("error",r)}t.addEventListener("load",n),t.addEventListener("error",r)})}(t)).then(t=>{this.image_=t,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}var t,e}replaceColor_(t){if(!this.color_||this.canvas_[t]||2!==this.imageState_)return;const e=this.image_,i=document.createElement("canvas");i.width=Math.ceil(e.width*t),i.height=Math.ceil(e.height*t);const n=i.getContext("2d");var r;n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle="string"==typeof(r=this.color_)?r:k(r),n.fillRect(0,0,i.width/t,i.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=i}ready(){return this.ready_||(this.ready_=new Promise(t=>{if(2===this.imageState_||3===this.imageState_)t();else{const e=()=>{2!==this.imageState_&&3!==this.imageState_||(this.removeEventListener(z,e),t())};this.addEventListener(z,e)}})),this.ready_}}function q(t,e,i,n,r,o){let s=void 0===e?void 0:H.get(e,i,r);return s||(s=new J(t,t&&"src"in t?t.src||void 0:e,i,n,r),H.set(e,i,r,s,o)),o&&s&&!H.getPattern(e,i,r)&&H.set(e,i,r,s,o),s}function Z(t){return t?Array.isArray(t)?k(t):"object"==typeof t&&"src"in t?function(t){if(!t.offset||!t.size)return H.getPattern(t.src,"anonymous",t.color);const e=t.src+":"+t.offset,i=H.getPattern(e,void 0,t.color);if(i)return i;const n=H.get(t.src,"anonymous",null);if(2!==n.getImageState())return null;const r=W(t.size[0],t.size[1]);return r.drawImage(n.getImage(1),t.offset[0],t.offset[1],t.size[0],t.size[1],0,0,t.size[0],t.size[1]),q(r.canvas,e,void 0,2,t.color,!0),H.getPattern(e,void 0,t.color)}(t):t:null}var $=class extends V{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(z)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let r=0;rthis.imageState_=2),this.render()}clone(){const t=this.getScale(),e=new nt({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_,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.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(t){let e=this.canvases_[t];if(!e){const i=this.renderOptions_,n=W(i.size*t,i.size*t);this.draw_(i,n,t),e=n.canvas,this.canvases_[t]=e}return e}getPixelRatio(t){return t}getImageSize(){return this.size_}getImageState(){return this.imageState_}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,r=void 0===this.radius2_?n:this.radius2_;if(n{this.patternImage_=null}),0===e.getImageState()&&e.load(),1===e.getImageState()&&(this.patternImage_=e)}this.color_=t}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}}var lt=at;class ct{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 ct({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 ht=ct;class dt{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=ut,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 dt({geometry:t??void 0,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer()??void 0,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_=ut,this.geometry_=t}setZIndex(t){this.zIndex_=t}}function ut(t){return t.getGeometry()}var gt=dt;const pt={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var ft=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_||pt[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 yt=6378137,vt=Math.PI*yt,mt=[-vt,-vt,vt,vt],_t=[-180,-85,180,85],Ct=yt*Math.log(Math.tan(Math.PI/2));class Pt extends ft{constructor(t){super({code:t,units:"m",extent:mt,global:!0,worldExtent:_t,getPointResolution:function(t,e){return t/Math.cosh(e[1]/yt)}})}}const xt=[new Pt("EPSG:3857"),new Pt("EPSG:102100"),new Pt("EPSG:102113"),new Pt("EPSG:900913"),new Pt("http://www.opengis.net/def/crs/EPSG/0/3857"),new Pt("http://www.opengis.net/gml/srs/epsg.xml#3857")],Mt=[-180,-90,180,90],wt=6378137*Math.PI/180;class bt extends ft{constructor(t,e){super({code:t,units:"degrees",extent:Mt,axisOrientation:e,global:!0,metersPerUnit:wt,worldExtent:Mt})}}const St=[new bt("CRS:84"),new bt("EPSG:4326","neu"),new bt("urn:ogc:def:crs:OGC:1.3:CRS84"),new bt("urn:ogc:def:crs:OGC:2:84"),new bt("http://www.opengis.net/def/crs/OGC/1.3/CRS84"),new bt("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new bt("http://www.opengis.net/def/crs/EPSG/0/4326","neu")];let Et={},It={};function Dt(t,e,i){const n=t.getCode(),r=e.getCode();n in It||(It[n]={}),It[n][r]=i}function kt(t,e){if(void 0!==e)for(let i=0,n=t.length;i1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;rCt?i=Ct:i<-Ct&&(i=-Ct),e[r+1]=i}return e},Gt=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 r=0;r1)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(jt([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=jt(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()},i.getCoordinatePrecision=function(){return t.prototype.getCoordinatePrecision.call(this)},i.unregister=function(){return t.prototype.unregister.call(this)},e}(c),Vt=/*#__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}r(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.getCoordinatePrecision=function(){return t.prototype.getCoordinatePrecision.call(this)},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,r=n.coordinates,o=n.type,s=e[t.properties.mode](t),a=void 0,l=void 0;switch(o){case"Point":l=new this._lib.Point({latitude:r[1],longitude:r[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:[r]}),a=new this._lib.SimpleLineSymbol({color:this.getColorFromHex(s.lineStringColor),width:s.lineStringWidth+"px"});break;case"Polygon":l=new this._lib.Polygon({rings:r}),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"===o?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}(c);!function(t){t.Commit="commit",t.Provisional="provisional",t.Finish="finish"}(Nt||(Nt={}));var zt,Tt="selected",Xt="midPoint",Ut="closingPoint";function Yt(t){return Boolean(t&&"object"==typeof t&&null!==t&&!Array.isArray(t))}function Ht(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"}(zt||(zt={}));var Kt=/*#__PURE__*/function(){var t=e.prototype;function e(t){this._state=void 0,this._styles=void 0,this.behaviors=[],this.validate=void 0,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.projection=void 0,this.type=zt.Drawing,this.mode="base",this._state="unregistered",this._styles=t&&t.styles?n({},t.styles):{},this.pointerDistance=t&&t.pointerDistance||40,this.validate=t&&t.validation,this.projection=t&&t.projection||"web-mercator"}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,projection:this.projection})},t.validateFeature=function(t){if("unregistered"===this._state)throw new Error("Mode must be registered");var e=function(t,e){var i;if(Yt(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(Yt(t.geometry))if(Yt(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);return this.validate?this.validate(t,{project:this.project,unproject:this.unproject,coordinatePrecision:this.coordinatePrecision,updateType:Nt.Provisional}):e},t.onFinish=function(t,e){},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},i(e,[{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}}]),e}(),Jt=/*#__PURE__*/function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r0;function l(t){return t<0-i.epsilon||t>1+i.epsilon}function c(t,i,r,o){var s,a=e[t][i],c=e[t][i+1],h=e[r][o],d=e[r][o+1],u=function(t,e,i,n){if(ce(t,i)||ce(t,n)||ce(e,i)||ce(n,i))return null;var r=t[0],o=t[1],s=e[0],a=e[1],l=i[0],c=i[1],h=n[0],d=n[1],u=(r-s)*(c-d)-(o-a)*(l-h);return 0===u?null:[((r*a-o*s)*(l-h)-(r-s)*(l*d-c*h))/u,((r*a-o*s)*(c-d)-(o-a)*(l*d-c*h))/u]}(a,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]),l(c[0]!==a[0]?(u[0]-a[0])/(c[0]-a[0]):(u[1]-a[1])/(c[1]-a[1]))||l(s)||(u.toString(),n.push(u)))}}function ce(t,e){return t[0]===e[0]&&t[1]===e[1]}function he(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&&de(t[0])<=e&&de(t[1])<=e;var i,n}function de(t){for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function ue(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 he(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 ge(t,e){return ue(t,e)&&!le(t)}var pe=/*#__PURE__*/function(t){function e(e){var i,r;(r=t.call(this,e)||this).mode="circle",r.center=void 0,r.clickCount=0,r.currentCircleId=void 0,r.keyEvents=void 0,r.cursors=void 0,r.startingRadiusKilometers=1e-5;var o={start:"crosshair"};if(r.cursors=e&&e.cursors?n({},o,e.cursors):o,null===(null==e?void 0:e.keyEvents))r.keyEvents={cancel:null,finish:null};else{var s={cancel:"Escape",finish:"Enter"};r.keyEvents=e&&e.keyEvents?n({},s,e.keyEvents):s}return r.startingRadiusKilometers=null!=(i=null==e?void 0:e.startingRadiusKilometers)?i:1e-5,r.validate=null==e?void 0:e.validation,r}r(e,t);var i=e.prototype;return i.close=function(){if(void 0!==this.currentCircleId){var t=this.currentCircleId;if(this.validate&&t){var e=this.store.getGeometryCopy(t);if(!this.validate({type:"Feature",id:t,geometry:e,properties:{}},{project:this.project,unproject:this.unproject,coordinatePrecision:this.coordinatePrecision,updateType:Nt.Finish}))return}this.center=void 0,this.currentCircleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted(),this.onFinish(t,{mode:this.mode,action:"draw"})}},i.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},i.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},i.onClick=function(t){if(0===this.clickCount){this.center=[t.lng,t.lat];var e=ae({center:this.center,radiusKilometers:this.startingRadiusKilometers,coordinatePrecision:this.coordinatePrecision}),i=this.store.create([{geometry:e.geometry,properties:{mode:this.mode,radiusKilometers:this.startingRadiusKilometers}}]);this.currentCircleId=i[0],this.clickCount++,this.setDrawing()}else 1===this.clickCount&&this.center&&void 0!==this.currentCircleId&&this.updateCircle(t),this.close()},i.onMouseMove=function(t){this.updateCircle(t)},i.onKeyDown=function(){},i.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},i.onDragStart=function(){},i.onDrag=function(){},i.onDragEnd=function(){},i.cleanUp=function(){var t=this.currentCircleId;this.center=void 0,this.currentCircleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted();try{void 0!==t&&this.store.delete([t])}catch(t){}},i.styleFeature=function(t){var e=n({},{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.zIndex=10,e):e},i.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&ge(e,this.coordinatePrecision)},i.updateCircle=function(t){if(1===this.clickCount&&this.center&&this.currentCircleId){var e,i=qt(this.center,[t.lng,t.lat]);if("web-mercator"===this.projection){var n=function(t,e){var i=1e3*qt(t,e);if(0===i)return 1;var n=re(t[0],t[1]),r=n.x,o=n.y,s=re(e[0],e[1]),a=s.y;return Math.sqrt(Math.pow(s.x-r,2)+Math.pow(a-o,2))/i}(this.center,[t.lng,t.lat]);e=function(t){for(var e=t.center,i=t.coordinatePrecision,n=t.steps?t.steps:64,r=1e3*t.radiusKilometers,o=re(e[0],e[1]),a=o.x,l=o.y,c=[],h=0;h180?i-=360:i<-180&&(i+=360),i}function be(t,e,i){for(var n,r,o,s=[],a=t.length,l=0,c=0;c=l&&c===t.length-1);c++){if(l>e&&0===s.length){if(!(n=e-l))return s.push(t[c]),s;r=Me(t[c],t[c-1])-180,o=Pe(t[c],n,r),s.push(o)}if(l>=i)return(n=i-l)?(r=Me(t[c],t[c-1])-180,o=Pe(t[c],n,r),s.push(o),s):(s.push(t[c]),s);if(l>=e&&s.push(t[c]),c===t.length-1)return s;l+=qt(t[c],t[c+1])}if(l0&&!this.mouseMove&&this.onMouseMove(t),this.mouseMove=!1;var e=this.currentId&&this.snappingEnabled&&this.snapping.getSnappableCoordinate(t,this.currentId)||[t.lng,t.lat];0===this.currentCoordinate?this.createLine(e):1===this.currentCoordinate&&this.currentId?this.firstUpdateToLine(e):this.currentId&&this.updateToLine(e,{x:t.containerX,y:t.containerY})},i.onKeyDown=function(){},i.onKeyUp=function(t){t.key===this.keyEvents.cancel&&this.cleanUp(),t.key===this.keyEvents.finish&&this.close()},i.onDragStart=function(){},i.onDrag=function(){},i.onDragEnd=function(){},i.cleanUp=function(){var t=this.currentId;this.closingPointId=void 0,this.currentId=void 0,this.currentCoordinate=0,"drawing"===this.state&&this.setStarted();try{void 0!==t&&this.store.delete([t]),void 0!==this.closingPointId&&this.store.delete([this.closingPointId])}catch(t){}},i.styleFeature=function(t){var e=n({},{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.zIndex=10,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.zIndex=40,e):e},i.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}(Kt);function Fe(t,e){return"Point"===t.geometry.type&&he(t.geometry.coordinates,e)}var Oe=/*#__PURE__*/function(t){function e(e){var i;(i=t.call(this,e)||this).mode="point",i.cursors=void 0;var r={create:"crosshair"};return i.cursors=e&&e.cursors?n({},r,e.cursors):r,i}r(e,t);var i=e.prototype;return i.start=function(){this.setStarted(),this.setCursor(this.cursors.create)},i.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},i.onClick=function(t){if(!this.store)throw new Error("Mode must be registered first");var e={type:"Point",coordinates:[t.lng,t.lat]},i={mode:this.mode};if(!this.validate||this.validate({type:"Feature",geometry:e,properties:i},{project:this.project,unproject:this.unproject,coordinatePrecision:this.coordinatePrecision,updateType:Nt.Finish})){var n=this.store.create([{geometry:e,properties:i}]);this.onFinish(n[0],{mode:this.mode,action:"draw"})}},i.onMouseMove=function(){},i.onKeyDown=function(){},i.onKeyUp=function(){},i.cleanUp=function(){},i.onDragStart=function(){},i.onDrag=function(){},i.onDragEnd=function(){},i.styleFeature=function(t){var e=n({},{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.zIndex=30),e},i.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&Fe(e,this.coordinatePrecision)},e}(Kt),Le=/*#__PURE__*/function(t){function e(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}r(e,t);var n=e.prototype;return n.create=function(t,e){var i,n;if(this.ids.length)throw new Error("Opening and closing points already created");if(t.length<=3)throw new Error("Requires at least 4 coordinates");this._startEndPoints=this.store.create([{geometry:{type:"Point",coordinates:t[0]},properties:(i={mode:e},i[Ut]=!0,i)},{geometry:{type:"Point",coordinates:t[t.length-2]},properties:(n={mode:e},n[Ut]=!0,n)}])},n.delete=function(){this.ids.length&&(this.store.delete(this.ids),this._startEndPoints=[])},n.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]}}])},n.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),r=this.pixelDistance.measure(t,i.coordinates);return{isClosing:n0&&!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 r=this.store.getGeometryCopy(this.currentId);if(De([t.lng,t.lat],r.coordinates[0][0]))return;if(!this.updatePolygonGeometry([r.coordinates[0][0],[t.lng,t.lat],[t.lng,t.lat],r.coordinates[0][0]],Nt.Commit))return;this.currentCoordinate++}else if(2===this.currentCoordinate&&this.currentId){var o=this.snappingEnabled?this.snapping.getSnappableCoordinate(t,this.currentId):void 0;o&&(t.lng=o[0],t.lat=o[1]);var s=this.store.getGeometryCopy(this.currentId).coordinates[0];if(De([t.lng,t.lat],s[1]))return;if(!this.updatePolygonGeometry([s[0],s[1],[t.lng,t.lat],[t.lng,t.lat],s[0]],Nt.Commit))return;2===this.currentCoordinate&&this.closingPoints.create(s,"polygon"),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]),De([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.updatePolygonGeometry(h.geometry.coordinates[0],Nt.Commit))return;this.currentCoordinate++,this.closingPoints.ids.length&&this.closingPoints.update(h.geometry.coordinates[0])}}var d},i.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},i.onKeyDown=function(){},i.onDragStart=function(){this.setCursor("unset")},i.onDrag=function(){},i.onDragEnd=function(){this.setCursor(this.cursors.start)},i.cleanUp=function(){var t=this.currentId;this.currentId=void 0,this.currentCoordinate=0,"drawing"===this.state&&this.setStarted();try{void 0!==t&&this.store.delete([t]),this.closingPoints.ids.length&&this.closingPoints.delete()}catch(t){}},i.styleFeature=function(t){var e=n({},{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},i.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&ue(e,this.coordinatePrecision)},e}(Kt),je=/*#__PURE__*/function(t){function e(e){var i;(i=t.call(this,e)||this).mode="rectangle",i.center=void 0,i.clickCount=0,i.currentRectangleId=void 0,i.keyEvents=void 0,i.cursors=void 0;var r={start:"crosshair"};if(i.cursors=e&&e.cursors?n({},r,e.cursors):r,null===(null==e?void 0:e.keyEvents))i.keyEvents={cancel:null,finish:null};else{var o={cancel:"Escape",finish:"Enter"};i.keyEvents=e&&e.keyEvents?n({},o,e.keyEvents):o}return i}r(e,t);var i=e.prototype;return i.updateRectangle=function(t,e){if(1===this.clickCount&&this.center&&this.currentRectangleId){var i=this.store.getGeometryCopy(this.currentRectangleId).coordinates[0][0],n={type:"Polygon",coordinates:[[i,[t.lng,i[1]],[t.lng,t.lat],[i[0],t.lat],i]]};if(this.validate&&!this.validate({id:this.currentRectangleId,geometry:n},{project:this.project,unproject:this.unproject,coordinatePrecision:this.coordinatePrecision,updateType:e}))return;this.store.updateGeometry([{id:this.currentRectangleId,geometry:n}])}},i.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,{mode:this.mode,action:"draw"})},i.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},i.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},i.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,Nt.Finish),this.close()},i.onMouseMove=function(t){this.updateRectangle(t,Nt.Provisional)},i.onKeyDown=function(){},i.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},i.onDragStart=function(){},i.onDrag=function(){},i.onDragEnd=function(){},i.cleanUp=function(){var t=this.currentRectangleId;this.center=void 0,this.currentRectangleId=void 0,this.clickCount=0,"drawing"===this.state&&this.setStarted(),void 0!==t&&this.store.delete([t])},i.styleFeature=function(t){var e=n({},{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.zIndex=10,e):e},i.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&ge(e,this.coordinatePrecision)},e}(Kt),Be=/*#__PURE__*/function(t){function e(e){var i;return(i=t.call(this,{styles:e.styles})||this).type=zt.Render,i.mode="render",i.mode=e.modeName,i}r(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)&&(Fe(e,this.coordinatePrecision)||ue(e,this.coordinatePrecision)||function(t,e){return"LineString"===t.geometry.type&&t.geometry.coordinates.length>=2&&t.geometry.coordinates.every(function(t){return he(t,e)})}(e,this.coordinatePrecision))},e}(Kt);function Ae(t,e){var i=t,n=e,r=$t(i[1]),o=$t(n[1]),s=$t(n[0]-i[0]);s>Math.PI&&(s-=2*Math.PI),s<-Math.PI&&(s+=2*Math.PI);var a=Math.log(Math.tan(o/2+Math.PI/4)/Math.tan(r/2+Math.PI/4)),l=(te(Math.atan2(s,a))+360)%360;return l>180?-(360-l):l}function Ge(t,e,i){var n=e;e<0&&(n=-Math.abs(n));var r=n/Zt,o=t[0]*Math.PI/180,s=$t(t[1]),a=$t(i),l=r*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*(o+r*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 Ne(t,e,i,n,r){var o=n(t[0],t[1]),a=n(e[0],e[1]),l=r((o.x+a.x)/2,(o.y+a.y)/2),c=l.lat;return[s(l.lng,i),s(c,i)]}function Re(t,e,i){var n=Ge(t,1e3*qt(t,e)/2,Ae(t,e));return[s(n[0],i),s(n[1],i)]}function Ve(t){for(var e=t.featureCoords,i=t.precision,n=t.unproject,r=t.project,o=t.projection,s=[],a=0;a(i=t)[1]!=(r=l[d])[1]>i[1]&&i[0]<(r[0]-n[0])*(i[1]-n[1])/(r[1]-n[1])+n[0]&&(o=!o);return o}var Ue=function(t,e,i){var n=function(t){return t*t},r=function(t,e){return n(t.x-e.x)+n(t.y-e.y)};return Math.sqrt(function(t,e,i){var n=r(e,i);if(0===n)return r(t,e);var o=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/n;return o=Math.max(0,Math.min(1,o)),r(t,{x:e.x+o*(i.x-e.x),y:e.y+o*(i.y-e.y)})}(t,e,i))},Ye=/*#__PURE__*/function(t){function e(e,i,n){var r;return(r=t.call(this,e)||this).config=void 0,r.createClickBoundingBox=void 0,r.pixelDistance=void 0,r.config=e,r.createClickBoundingBox=i,r.pixelDistance=n,r}return r(e,t),e.prototype.find=function(t,e){for(var i=void 0,n=Infinity,r=void 0,o=Infinity,s=this.createClickBoundingBox.create(t),a=this.store.search(s),l=0;l180||h<-180||d>90||d<-90)return!1;r[a]=[h,d]}"Polygon"===i.type&&(r[r.length-1]=[r[0][0],r[0][1]]);var u=this.selectionPoints.getUpdated(r)||[],g=this.midPoints.getUpdated(r)||[];if(e&&!e({type:"Feature",id:this.draggedFeatureId,geometry:i,properties:{}},{project:this.config.project,unproject:this.config.unproject,coordinatePrecision:this.config.coordinatePrecision,updateType:Nt.Provisional}))return!1;this.store.updateGeometry([{id:this.draggedFeatureId,geometry:i}].concat(u,g)),this.dragPosition=[t.lng,t.lat]}else"Point"===i.type&&(this.store.updateGeometry([{id:this.draggedFeatureId,geometry:{type:"Point",coordinates:n}}]),this.dragPosition=[t.lng,t.lat])}},e}(ye),Ke=/*#__PURE__*/function(t){function e(e,i,n,r){var o;return(o=t.call(this,e)||this).config=void 0,o.pixelDistance=void 0,o.selectionPoints=void 0,o.midPoints=void 0,o.draggedCoordinate={id:null,index:-1},o.config=e,o.pixelDistance=i,o.selectionPoints=n,o.midPoints=r,o}r(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 r=0;r180||t.lng<-180||t.lat>90||t.lat<-90)return!1;if("Polygon"!==r.type||n!==o.length-1&&0!==n)o[n]=s;else{var a=o.length-1;o[0]=s,o[a]=s}var l=this.selectionPoints.getOneUpdated(n,s),c=l?[l]:[],h=this.midPoints.getUpdated(o)||[];return!("Point"!==r.type&&!e&&le({type:"Feature",geometry:r,properties:{}})||i&&!i({type:"Feature",id:this.draggedCoordinate.id,geometry:r,properties:{}},{project:this.config.project,unproject:this.config.unproject,coordinatePrecision:this.config.coordinatePrecision,updateType:Nt.Provisional})||(this.store.updateGeometry([{id:this.draggedCoordinate.id,geometry:r}].concat(c,h)),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}(ye);function Je(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 qe(t,e){t[0]+=t[0]-e[0]>180?-360:e[0]-t[0]>180?360:0;var i=Zt,n=e[1]*Math.PI/180,r=t[1]*Math.PI/180,o=r-n,s=Math.abs(t[0]-e[0])*Math.PI/180;s>Math.PI&&(s-=2*Math.PI);var a=Math.log(Math.tan(r/2+Math.PI/4)/Math.tan(n/2+Math.PI/4)),l=Math.abs(a)>1e-11?o/a:Math.cos(n);return Math.sqrt(o*o+l*l*s*s)*i}function Ze(t){var e=("Polygon"===t.geometry.type?t.geometry.coordinates[0]:t.geometry.coordinates).map(function(t){var e=re(t[0],t[1]);return[e.x,e.y]});return"Polygon"===t.geometry.type?function(t){for(var e=0,i=0,n=0,r=t.length,o=0;o=0)return!1;break;case 1:if(i>=0)return!1;break;case 2:if(e>=0||i>=0)return!1;break;case 3:if(e>=0)return!1;break;case 4:if(e>=0||i<=0)return!1;break;case 5:if(i<=0)return!1;break;case 6:if(e<=0||i<=0)return!1;break;case 7:if(e<=0)return!1}return!0},i.getSelectedFeatureDataWebMercator=function(){if(!this.draggedCoordinate.id||-1===this.draggedCoordinate.index)return null;var t=this.getFeature(this.draggedCoordinate.id);if(!t)return null;var e=this.getNormalisedCoordinates(t.geometry);return{boundingBox:this.getBBoxWebMercator(e),feature:t,updatedCoords:e,selectedCoordinate:e[this.draggedCoordinate.index]}},i.centerWebMercatorDrag=function(t){var e=this.getSelectedFeatureDataWebMercator();if(!e)return null;var i=e.boundingBox,n=e.updatedCoords,r=e.selectedCoordinate,o=Ze(e.feature);if(!o)return null;var s=re(r[0],r[1]),a=this.getIndexesWebMercator(i,s).closestBBoxIndex,l=re(t.lng,t.lat);return this.scaleWebMercator({closestBBoxIndex:a,updatedCoords:n,webMercatorCursor:l,webMercatorSelected:s,webMercatorOrigin:o}),n},i.centerFixedWebMercatorDrag=function(t){var e=this.getSelectedFeatureDataWebMercator();if(!e)return null;var i=e.boundingBox,n=e.updatedCoords,r=e.selectedCoordinate,o=Ze(e.feature);if(!o)return null;var s=re(r[0],r[1]),a=this.getIndexesWebMercator(i,s).closestBBoxIndex,l=re(t.lng,t.lat);return this.scaleFixedWebMercator({closestBBoxIndex:a,updatedCoords:n,webMercatorCursor:l,webMercatorSelected:s,webMercatorOrigin:o}),n},i.scaleFixedWebMercator=function(t){var e=t.webMercatorOrigin,i=t.webMercatorSelected,n=t.webMercatorCursor,r=t.updatedCoords;if(!this.isValidDragWebMercator(t.closestBBoxIndex,e.x-n.x,e.y-n.y))return null;var o=a(e,n)/a(e,i);return o<0&&(o=this.minimumScale),this.performWebMercatorScale(r,e.x,e.y,o,o),r},i.oppositeFixedWebMercatorDrag=function(t){var e=this.getSelectedFeatureDataWebMercator();if(!e)return null;var i=e.boundingBox,n=e.updatedCoords,r=e.selectedCoordinate,o=re(r[0],r[1]),s=this.getIndexesWebMercator(i,o),a=s.oppositeBboxIndex,l=s.closestBBoxIndex,c={x:i[a][0],y:i[a][1]},h=re(t.lng,t.lat);return this.scaleFixedWebMercator({closestBBoxIndex:l,updatedCoords:n,webMercatorCursor:h,webMercatorSelected:o,webMercatorOrigin:c}),n},i.oppositeWebMercatorDrag=function(t){var e=this.getSelectedFeatureDataWebMercator();if(!e)return null;var i=e.boundingBox,n=e.updatedCoords,r=e.selectedCoordinate,o=re(r[0],r[1]),s=this.getIndexesWebMercator(i,o),a=s.oppositeBboxIndex,l=s.closestBBoxIndex,c={x:i[a][0],y:i[a][1]},h=re(t.lng,t.lat);return this.scaleWebMercator({closestBBoxIndex:l,updatedCoords:n,webMercatorCursor:h,webMercatorSelected:o,webMercatorOrigin:c}),n},i.scaleWebMercator=function(t){var e=t.closestBBoxIndex,i=t.webMercatorOrigin,n=t.webMercatorSelected,r=t.webMercatorCursor,o=t.updatedCoords,s=i.x-r.x,a=i.y-r.y;if(!this.isValidDragWebMercator(e,s,a))return null;var l=1;0!==s&&1!==e&&5!==e&&(l=1-(i.x-n.x-s)/s);var c=1;return 0!==a&&3!==e&&7!==e&&(c=1-(i.y-n.y-a)/a),this.validateScale(l,c)?(l<0&&(l=this.minimumScale),c<0&&(c=this.minimumScale),this.performWebMercatorScale(o,i.x,i.y,l,c),o):null},i.getFeature=function(t){if(null===this.draggedCoordinate.id)return null;var e=this.store.getGeometryCopy(t);return"Polygon"!==e.type&&"LineString"!==e.type?null:{type:"Feature",geometry:e,properties:{}}},i.getNormalisedCoordinates=function(t){return"Polygon"===t.type?t.coordinates[0]:t.coordinates},i.validateScale=function(t,e){var i=!isNaN(t)&&ee[2]&&(e[2]=i),n>e[3]&&(e[3]=n)});var i=e[0],n=e[1],r=e[2],o=e[3];return[[i,o],[(i+r)/2,o],[r,o],[r,o+(n-o)/2],[r,n],[(i+r)/2,n],[i,n],[i,o+(n-o)/2]]},i.getIndexesWebMercator=function(t,e){for(var i,n=Infinity,r=0;r0),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()},i.start=function(){this.setStarted(),this.setSelecting()},i.stop=function(){this.cleanUp(),this.setStarted(),this.setStopped()},i.onClick=function(t){"right"!==t.button?"left"===t.button&&this.onLeftClick(t):this.onRightClick(t)},i.canScale=function(t){return this.keyEvents.scale&&this.keyEvents.scale.every(function(e){return t.heldKeys.includes(e)})},i.canRotate=function(t){return this.keyEvents.rotate&&this.keyEvents.rotate.every(function(e){return t.heldKeys.includes(e)})},i.preventDefaultKeyEvent=function(t){var e=this.canRotate(t),i=this.canScale(t);(e||i)&&t.preventDefault()},i.onKeyDown=function(t){this.preventDefaultKeyEvent(t)},i.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()},i.cleanUp=function(){this.selected.length&&this.deselect()},i.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 r=this.selected[0],o=this.dragCoordinate.getDraggableIndex(t,r);return n&&n.feature&&n.feature.coordinates&&(n.feature.coordinates.draggable||n.feature.coordinates.resizable)&&-1!==o?(this.setCursor(this.cursors.dragStart),n.feature.coordinates.resizable?this.dragCoordinateResizeFeature.startDragging(r,o):this.dragCoordinate.startDragging(r,o),void e(!1)):n&&n.feature&&n.feature.draggable&&this.dragFeature.canDrag(t,r)?(this.setCursor(this.cursors.dragStart),this.dragFeature.startDragging(t,r),void e(!1)):void 0}}},i.onDrag=function(t,e){var i=this.selected[0];if(i){var n=this.store.getPropertiesCopy(i),r=this.flags[n.mode],o=!0===(r&&r.feature&&r.feature.selfIntersectable);if(this.dragEventCount++,this.dragEventCount%this.dragEventThrottle!=0){var s=this.validations[n.mode];if(r&&r.feature&&r.feature.rotateable&&this.canRotate(t))return e(!1),void this.rotateFeature.rotate(t,i,s);if(r&&r.feature&&r.feature.scaleable&&this.canScale(t))return e(!1),void this.scaleFeature.scale(t,i,s);if(this.dragCoordinateResizeFeature.isDragging()&&r.feature&&r.feature.coordinates&&r.feature.coordinates.resizable){if("globe"===this.projection)throw new Error("Globe is currently unsupported projection for resizable");return e(!1),void this.dragCoordinateResizeFeature.drag(t,r.feature.coordinates.resizable,s)}this.dragCoordinate.isDragging()?this.dragCoordinate.drag(t,o,s):this.dragFeature.isDragging()?this.dragFeature.drag(t,s):e(!0)}}},i.onDragEnd=function(t,e){this.setCursor(this.cursors.dragEnd),this.dragCoordinate.isDragging()?this.onFinish(this.selected[0],{mode:this.mode,action:"dragCoordinate"}):this.dragFeature.isDragging()?this.onFinish(this.selected[0],{mode:this.mode,action:"dragFeature"}):this.dragCoordinateResizeFeature.isDragging()&&this.onFinish(this.selected[0],{mode:this.mode,action:"dragCoordinateResize"}),this.dragCoordinate.stopDragging(),this.dragFeature.stopDragging(),this.dragCoordinateResizeFeature.stopDragging(),this.rotateFeature.reset(),this.scaleFeature.reset(),e(!0)},i.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 r=e.store.getGeometryCopy(n);e.pixelDistance.measure(t,r.coordinates)0&&(r&&r.id===this.selected[0]||n)?this.cursors.pointerOver:"unset")}}}else this.setCursor("unset")},i.styleFeature=function(t){var e=n({},{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[Tt]){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}(Jt),ii=/*#__PURE__*/function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;ri;){if(n-i>600){var o=n-i+1,s=e-i+1,a=Math.log(o),l=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*l*(o-l)/o)*(s-o/2<0?-1:1);ni(t,e,Math.max(i,Math.floor(e-s*l/o+c)),Math.min(n,Math.floor(e+(o-s)*l/o+c)),r)}var h=t[e],d=i,u=n;for(ri(t,i,e),r(t[n],h)>0&&ri(t,i,n);d0;)u--}0===r(t[i],h)?ri(t,i,u):ri(t,++u,n),u<=e&&(i=u+1),e<=u&&(n=u-1)}}function ri(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function oi(t,e){si(t,0,t.children.length,e,t)}function si(t,e,i,n,r){r||(r=pi([])),r.minX=Infinity,r.minY=Infinity,r.maxX=-Infinity,r.maxY=-Infinity;for(var o=e;o=t.minX&&e.maxY>=t.minY}function pi(t){return{children:t,height:1,leaf:!0,minX:Infinity,minY:Infinity,maxX:-Infinity,maxY:-Infinity}}function fi(t,e,i,n,r){for(var o=[e,i];o.length;)if(!((i=o.pop())-(e=o.pop())<=n)){var s=e+Math.ceil((i-e)/n/2)*n;ni(t,s,e,i,r),o.push(e,s,s,i)}}var yi=/*#__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(!gi(t,e))return i;for(var n=this.toBBox,r=[];e;){for(var o=0;o=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)},e._split=function(t,e){var i=t[e],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);var o=this._chooseSplitIndex(i,r,n),s=pi(i.children.splice(o,i.children.length-o));s.height=i.height,s.leaf=i.leaf,oi(i,this.toBBox),oi(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(i,s)},e._splitRoot=function(t,e){this.data=pi([t,e]),this.data.height=t.height+1,this.data.leaf=!1,oi(this.data,this.toBBox)},e._chooseSplitIndex=function(t,e,i){for(var n,r,o,s,a,l,c,h=Infinity,d=Infinity,u=e;u<=i-e;u++){var g=si(t,0,u,this.toBBox),p=si(t,u,i,this.toBBox),f=(r=g,o=p,s=Math.max(r.minX,o.minX),a=Math.max(r.minY,o.minY),l=Math.min(r.maxX,o.maxX),c=Math.min(r.maxY,o.maxY),Math.max(0,l-s)*Math.max(0,c-a)),y=hi(g)+hi(p);f=e;h--){var d=t.children[h];ai(s,t.leaf?r(d):d),a+=di(s)}return a},e._adjustParentBBoxes=function(t,e,i){for(var n=i;n>=0;n--)ai(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():oi(t[i],this.toBBox)},t}(),vi=/*#__PURE__*/function(){function t(t){this.tree=void 0,this.idToNode=void 0,this.nodeToId=void 0,this.tree=new yi(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 r=0;r0){i+=Math.abs(Mi(e[0]));for(var n=1;n=e?(n+2)%e:n+2][0]*xi-t[n][0]*xi)*Math.sin(t[n+1===e?0:n+1][1]*xi),n++;return i*Pi}function wi(t,e,i){var n=we(t,e),r=we(e,i)-n;return r<0&&(r+=360),180-Math.abs(r-90-90)}var bi=/*#__PURE__*/function(t){function e(e){var i;(i=t.call(this,e)||this).mode="angled-rectangle",i.currentCoordinate=0,i.currentId=void 0,i.keyEvents=void 0,i.pixelDistance=void 0,i.cursors=void 0,i.mouseMove=!1;var r={start:"crosshair",close:"pointer"};if(i.cursors=e&&e.cursors?n({},r,e.cursors):r,null===(null==e?void 0:e.keyEvents))i.keyEvents={cancel:null,finish:null};else{var o={cancel:"Escape",finish:"Enter"};i.keyEvents=e&&e.keyEvents?n({},o,e.keyEvents):o}return i}r(e,t);var i=e.prototype;return i.close=function(){if(void 0!==this.currentId){var t=this.currentId;this.currentCoordinate=0,this.currentId=void 0,"drawing"===this.state&&this.setStarted(),this.onFinish(t,{mode:this.mode,action:"draw"})}},i.registerBehaviors=function(t){this.pixelDistance=new _e(t)},i.start=function(){this.setStarted(),this.setCursor(this.cursors.start)},i.stop=function(){this.cleanUp(),this.setStopped(),this.setCursor("unset")},i.onMouseMove=function(t){if(this.mouseMove=!0,this.setCursor(this.cursors.start),void 0!==this.currentId&&0!==this.currentCoordinate){var e,i,n,r,o,s=this.store.getGeometryCopy(this.currentId).coordinates[0];if(1===this.currentCoordinate){var l=1/Math.pow(10,this.coordinatePrecision-1),c=Math.max(1e-6,l);e=[s[0],[t.lng,t.lat],[t.lng,t.lat-c],s[0]]}else if(2===this.currentCoordinate){var h=s[0],d=s[1],u=Ne(h,d,this.coordinatePrecision,this.project,this.unproject),g=re(h[0],h[1]),p=re(u[0],u[1]),f=re(d[0],d[1]),y=re(t.lng,t.lat),v=a(y,g)1e-10?"left":o<-1e-10?"right":"left")?-90:90),M=xe(g,P,x),w=xe(f,P,x),b=oe(M.x,M.y),S=oe(w.x,w.y);e=[s[0],s[1],[S.lng,S.lat],[b.lng,b.lat],s[0]]}e&&this.updatePolygonGeometry(this.currentId,e,Nt.Provisional)}},i.updatePolygonGeometry=function(t,e,i){var n={type:"Polygon",coordinates:[e]};return!(this.validate&&!this.validate({type:"Feature",geometry:n},{project:this.project,unproject:this.unproject,coordinatePrecision:this.coordinatePrecision,updateType:i})||(this.store.updateGeometry([{id:t,geometry:n}]),0))},i.onClick=function(t){if(this.currentCoordinate>0&&!this.mouseMove&&this.onMouseMove(t),this.mouseMove=!1,0===this.currentCoordinate){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.currentId=e[0],this.currentCoordinate++,this.setDrawing()}else if(1===this.currentCoordinate&&this.currentId){var i=this.store.getGeometryCopy(this.currentId);if(De([t.lng,t.lat],i.coordinates[0][0]))return;if(!this.updatePolygonGeometry(this.currentId,[i.coordinates[0][0],[t.lng,t.lat],[t.lng,t.lat],i.coordinates[0][0]],Nt.Commit))return;this.currentCoordinate++}else 2===this.currentCoordinate&&this.currentId&&this.close()},i.onKeyUp=function(t){t.key===this.keyEvents.cancel?this.cleanUp():t.key===this.keyEvents.finish&&this.close()},i.onKeyDown=function(){},i.onDragStart=function(){},i.onDrag=function(){},i.onDragEnd=function(){},i.cleanUp=function(){try{this.currentId&&this.store.delete([this.currentId])}catch(t){}this.currentId=void 0,this.currentCoordinate=0,"drawing"===this.state&&this.setStarted()},i.styleFeature=function(t){var e=n({},{polygonFillColor:"#3f97e0",polygonOutlineColor:"#3f97e0",polygonOutlineWidth:4,polygonFillOpacity:.3,pointColor:"#3f97e0",pointOutlineColor:"#ffffff",pointOutlineWidth:0,pointWidth:6,lineStringColor:"#3f97e0",lineStringWidth:4,zIndex:0});return t.properties.mode===this.mode&&"Polygon"===t.geometry.type&&(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},i.validateFeature=function(e){return!!t.prototype.validateFeature.call(this,e)&&e.properties.mode===this.mode&&ue(e,this.coordinatePrecision)},e}(Kt),Si={TerraDrawBaseDrawMode:Kt,TerraDrawBaseAdapter:c};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 ii;var i=new Set,r=t.modes.reduce(function(t,e){if(i.has(e.mode))throw new Error("There is already a "+e.mode+" mode provided");return i.add(e.mode),t[e.mode]=e,t},{}),o=Object.keys(r);if(0===o.length)throw new Error("No modes provided");o.forEach(function(t){if(r[t].type===zt.Select){if(e._instanceSelectMode)throw new Error("only one type of select mode can be provided");e._instanceSelectMode=t}}),this._modes=n({},r,{static:this._mode}),this._eventListeners={change:[],select:[],deselect:[],finish:[],ready:[]},this._store=new _i({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,i){e._enabled&&e._eventListeners.finish.forEach(function(e){e(t,i)})},l=function(t,i){if(e._enabled){e._eventListeners.change.forEach(function(e){e(t,i)});var n=s(t),r=n.changed,o=n.unchanged;"create"===i?e._adapter.render({created:r,deletedIds:[],unchanged:o,updated:[]},e.getModeStyles()):"update"===i?e._adapter.render({created:[],deletedIds:[],unchanged:o,updated:r},e.getModeStyles()):"delete"===i?e._adapter.render({created:[],deletedIds:t,unchanged:o,updated:[]},e.getModeStyles()):"styling"===i&&e._adapter.render({created:[],deletedIds:[],unchanged:o,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 e=t.prototype;return e.checkEnabled=function(){if(!this._enabled)throw new Error("Terra Draw is not enabled")},e.getModeStyles=function(){var t=this,e={};return Object.keys(this._modes).forEach(function(i){e[i]=function(e){return t._instanceSelectMode&&e.properties[Tt]?t._modes[t._instanceSelectMode].styleFeature.bind(t._modes[t._instanceSelectMode])(e):t._modes[i].styleFeature.bind(t._modes[i])(e)}}),e},e.featuresAtLocation=function(t,e){var i=t.lng,n=t.lat,r=e&&void 0!==e.pointerDistance?e.pointerDistance:30,o=!e||void 0===e.ignoreSelectFeatures||e.ignoreSelectFeatures,s=this._adapter.unproject.bind(this._adapter),l=this._adapter.project.bind(this._adapter),c=l(i,n),h=ve({unproject:s,point:c,pointerDistance:r});return this._store.search(h).filter(function(t){if(o&&(t.properties[Xt]||t.properties.selectionPoint))return!1;if("Point"===t.geometry.type){var e=t.geometry.coordinates,s=l(e[0],e[1]);return a(c,s)e},exports.ValidateNotSelfIntersecting=function(t){return("Polygon"===t.geometry.type||"LineString"===t.geometry.type)&&!le(t)}; //# sourceMappingURL=terra-draw.cjs.map