celldega 0.19.0-a1 → 0.19.0-a2

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "celldega",
3
- "version": "0.19.0a1",
3
+ "version": "0.19.0a2",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=16",
@@ -1748,7 +1748,7 @@ DECKGL_FILTER_COLOR(fragColor, geometry);
1748
1748
  grayscale = clamp(grayscale, 0.0, 1.0);
1749
1749
  // Apply custom color and scaled opacity
1750
1750
  color = vec4(uColor, grayscale);
1751
- `},A}updateState(A){super.updateState(A);let{props:j,oldProps:e}=A;(j.color!==e.color||j.opacityScale!==e.opacityScale)&&this.setState({uniforms:{uColor:j.color.map(r=>r/255),uOpacityScale:j.opacityScale}})}draw(A){let{uniforms:j}=this.state;super.draw({...A,uniforms:{...A.uniforms,...j}})}};var Zk=(t,A,j,e,r={},n=null)=>async({index:i})=>{let{x:o,y:l,z:c}=i,B=`${t}/pyramid_images/${A}_files/${e+c}/${o}_${l}${j}`,{fetch:h={},...d}=r,k=async(m,$={})=>{let g={...h,...$};return n?n.fetch(m,g):fetch(m,g)};try{return await rs(B,Zd,{...d,fetch:k})}catch(m){let $=Zj(m,{coordinates:`${o},${l},${c}`,url:B,messages:{network:"Failed to load tile due to network issues",notFound:"Tile does not exist",unauthorized:"Unauthorized access to tile",forbidden:"Access forbidden for tile",unexpected:"Failed to load tile"},throwOnAuth:!0,logUnexpected:!0});return $.error==="not_found"||$.error==="network",null}},dy=(t,A,j)=>e=>{let{bbox:{left:r,bottom:n,right:i,top:o}}=e.tile,{width:l,height:c}=t;return new hy(e,{data:null,image:e.data,bounds:[xs(r,0,l),xs(n,0,c),xs(i,0,l),xs(o,0,c)],color:A,opacityScale:j})},py=t=>A=>{let{bbox:{left:j,bottom:e,right:r,top:n}}=A.tile,{width:i,height:o}=t;return new JB(A,{data:null,image:A.data,bounds:[xs(j,0,i),xs(e,0,o),xs(r,0,i),xs(n,0,o)]})};var ky=async(t,A,j=0,e="")=>{let{global_base_url:r}=t,{dimensions:n}=t,{landscape_parameters:i}=t.img,{image_format:o}=t.img.landscape_parameters,l=`global-simple-image-layer-ds${j}${e?`-${e}`:""}`;return new Dc({id:l,tileSize:n.tileSize,refinementStrategy:"no-overlap",minZoom:-7,maxZoom:0,maxCacheSize:0,extent:[0,0,n.width,n.height],getTileData:Zk(r,A.name,o,i.max_pyramid_zoom,nj,t.aws),renderSubLayers:py(n),visible:!0,...kr(t.rotation)})};var rl=(t,A)=>{t.global_base_url=A};var JD=async(t,A,j,e)=>{let r=`${t}/pyramid_images/${A}.dzi`,i=await(e!==null?await e.fetch(r):await fetch(r,j.fetch)).text(),o=new DOMParser().parseFromString(i,"text/xml");return{height:Number(o.getElementsByTagName("Size")[0].attributes.Height.value),width:Number(o.getElementsByTagName("Size")[0].attributes.Width.value),tileSize:Number(o.getElementsByTagName("Image")[0].attributes.TileSize.value)}};var nl=async(t,A,j)=>{try{t.dimensions=await JD(A,j,nj,t.aws);return}catch{}if(t.use_row_groups&&t.img?.landscape_parameters){let e=t.img.landscape_parameters;if(e.image_dimensions?.width&&e.image_dimensions?.height){t.dimensions={width:e.image_dimensions.width,height:e.image_dimensions.height,tileSize:e.image_dimensions.tile_size||512};return}if(t.row_group_readers?.images){let r=Object.values(t.row_group_readers.images)[0];if(r?.zoomInfo){let i=Object.keys(r.zoomInfo).map(Number).sort((l,c)=>c-l)[0],o=r.zoomInfo[String(i)];if(o){let c=o.num_tiles_x*512,B=o.num_tiles_y*512;t.dimensions={width:c,height:B,tileSize:512};return}}}}t.dimensions={width:1e4,height:1e4,tileSize:512}};var il=async(t,A,j)=>{let e=`${A}/landscape_parameters.json`,r=await fetch(e,nj.fetch);t.landscape_parameters=await r.json()};var q1=async(t,A,j,e,r,n,i,o,l="",c=0,B=800,h={})=>{c===0&&(c="100%");let d=document.createElement("div");d.style.height=`${B}px`;let k={};if(uf(e),rl(k,j),"accessKeyId"in h){k.aws=new G7({accessKeyId:h.accessKeyId,secretAccessKey:h.secretAccessKey,sessionToken:h.sessionToken,region:"us-east-1",service:"s3"});let v=await k.aws.fetch(`${j}/landscape_parameters.json`);if(!v.ok)throw new Error(`Fetch failed: ${v.statusText}`)}else k.aws=null;k.model=t,k.img={},k.img.image_layer_colors={},k.img.image_layer_sliders={},await il(k.img,j),await nl(k,j,"h_and_e"),k.buttons={},k.buttons.blue="#8797ff",k.buttons.gray="gray",k.buttons.light_gray="#EEEEEE",k.buttons.buttons={};let g={simple_image_layer:await ky(k,{name:"h_and_e",color:[0,0,255]})};k.views=ly();let y=PD(d,c,B),b={target:[r,n,i],zoom:o};return y.setProps({views:k.views,layers:[g.simple_image_layer],initialViewState:b}),A.appendChild(d),()=>y.finalize()};var Xc={NONE:0,FORWARD:1,BACKWARD:2,BOTH:3},ZD=1;var ClA={arrowColor:[0,0,0,1],arrowCount:ZD,arrowStyle:Xc.NONE,fillColor:[0,0,0,1],lineColor:[0,0,0,1],lineWidthMeters:5,outlineRadiusMeters:0,opacity:1,zLevel:0};var In=63710088e-1,zQA={centimeters:In*100,centimetres:In*100,degrees:In/111325,feet:In*3.28084,inches:In*39.37,kilometers:In/1e3,kilometres:In/1e3,meters:In,metres:In,miles:In/1609.344,millimeters:In*1e3,millimetres:In*1e3,nauticalmiles:In/1852,radians:1,yards:In*1.0936},UQA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/In,yards:1.0936133};function A0(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function Xt(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!b1(t[0])||!b1(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return A0(e,A,j)}function gr(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return A0(e,A,j)}function za(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function b1(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function G1(t){return!!t&&t.constructor===Object}var Mn=63710088e-1,QQA={centimeters:Mn*100,centimetres:Mn*100,degrees:Mn/111325,feet:Mn*3.28084,inches:Mn*39.37,kilometers:Mn/1e3,kilometres:Mn/1e3,meters:Mn,metres:Mn,miles:Mn/1609.344,millimeters:Mn*1e3,millimetres:Mn*1e3,nauticalmiles:Mn/1852,radians:1,yards:Mn*1.0936},WQA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Mn,yards:1.0936133};function w1(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(w1(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function F1(t){var A=[1/0,1/0,-1/0,-1/0];return w1(t,function(j){A[0]>j[0]&&(A[0]=j[0]),A[1]>j[1]&&(A[1]=j[1]),A[2]<j[0]&&(A[2]=j[0]),A[3]<j[1]&&(A[3]=j[1])}),A}F1.default=F1;var Ua=F1;var On=63710088e-1,iWA={centimeters:On*100,centimetres:On*100,degrees:On/111325,feet:On*3.28084,inches:On*39.37,kilometers:On/1e3,kilometres:On/1e3,meters:On,metres:On,miles:On/1609.344,millimeters:On*1e3,millimetres:On*1e3,nauticalmiles:On/1852,radians:1,yards:On*1.0936},oWA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/On,yards:1.0936133};function HlA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function AN(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return HlA(o,A,j)}function cn(t,A){A===void 0&&(A={});var j=Number(t[0]),e=Number(t[1]),r=Number(t[2]),n=Number(t[3]);if(t.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var i=[j,e],o=[j,n],l=[r,n],c=[r,e];return AN([[i,c,l,o,i]],A.properties,{bbox:t,id:A.id})}var Tn=63710088e-1,cWA={centimeters:Tn*100,centimetres:Tn*100,degrees:Tn/111325,feet:Tn*3.28084,inches:Tn*39.37,kilometers:Tn/1e3,kilometres:Tn/1e3,meters:Tn,metres:Tn,miles:Tn/1609.344,millimeters:Tn*1e3,millimetres:Tn*1e3,nauticalmiles:Tn/1852,radians:1,yards:Tn*1.0936},uWA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Tn,yards:1.0936133};function DlA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function jN(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!tN(t[0])||!tN(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return DlA(e,A,j)}function tN(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function NlA(t,A){A===void 0&&(A={});var j=Ua(t),e=(j[0]+j[2])/2,r=(j[1]+j[3])/2;return jN([e,r],A.properties,A)}var ol=NlA;var pf=Ws(rN(),1);var Lr=63710088e-1,nN={centimeters:Lr*100,centimetres:Lr*100,degrees:Lr/111325,feet:Lr*3.28084,inches:Lr*39.37,kilometers:Lr/1e3,kilometres:Lr/1e3,meters:Lr,metres:Lr,miles:Lr/1609.344,millimeters:Lr*1e3,millimetres:Lr*1e3,nauticalmiles:Lr/1852,radians:1,yards:Lr*1.0936},pWA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Lr,yards:1.0936133};function P1(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function my(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function iN(t,A){A===void 0&&(A="kilometers");var j=nN[A];if(!j)throw new Error(A+" units is invalid");return t*j}function oN(t,A){A===void 0&&(A="kilometers");var j=nN[A];if(!j)throw new Error(A+" units is invalid");return t/j}function I1(t,A){if(t.type==="Feature")A(t,0);else if(t.type==="FeatureCollection")for(var j=0;j<t.features.length&&A(t.features[j],j)!==!1;j++);}function M1(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function G6(){return new $y}function $y(){this.reset()}$y.prototype={constructor:$y,reset:function(){this.s=this.t=0},add:function(t){sN(Ey,t,this.t),sN(this,Ey.s,this.s),this.s?this.t+=Ey.t:this.s=Ey.t},valueOf:function(){return this.s}};var Ey=new $y;function sN(t,A,j){var e=t.s=A+j,r=e-A,n=e-r;t.t=A-n+(j-r)}var xt=1e-6;var Rt=Math.PI,Je=Rt/2,xy=Rt/4,Cr=Rt*2,Sn=180/Rt,se=Rt/180,ij=Math.abs,wo=Math.atan,mr=Math.atan2,gt=Math.cos;var yy=Math.exp;var t0=Math.log;var mt=Math.sin;var Ke=Math.sqrt,j0=Math.tan;function vy(t){return t>1?0:t<-1?Rt:Math.acos(t)}function Ze(t){return t>1?Je:t<-1?-Je:Math.asin(t)}function Rn(){}function _y(t,A){t&&lN.hasOwnProperty(t.type)&&lN[t.type](t,A)}var aN={Feature:function(t,A){_y(t.geometry,A)},FeatureCollection:function(t,A){for(var j=t.features,e=-1,r=j.length;++e<r;)_y(j[e].geometry,A)}},lN={Sphere:function(t,A){A.sphere()},Point:function(t,A){t=t.coordinates,A.point(t[0],t[1],t[2])},MultiPoint:function(t,A){for(var j=t.coordinates,e=-1,r=j.length;++e<r;)t=j[e],A.point(t[0],t[1],t[2])},LineString:function(t,A){O1(t.coordinates,A,0)},MultiLineString:function(t,A){for(var j=t.coordinates,e=-1,r=j.length;++e<r;)O1(j[e],A,0)},Polygon:function(t,A){cN(t.coordinates,A)},MultiPolygon:function(t,A){for(var j=t.coordinates,e=-1,r=j.length;++e<r;)cN(j[e],A)},GeometryCollection:function(t,A){for(var j=t.geometries,e=-1,r=j.length;++e<r;)_y(j[e],A)}};function O1(t,A,j){var e=-1,r=t.length-j,n;for(A.lineStart();++e<r;)n=t[e],A.point(n[0],n[1],n[2]);A.lineEnd()}function cN(t,A){var j=-1,e=t.length;for(A.polygonStart();++j<e;)O1(t[j],A,1);A.polygonEnd()}function sl(t,A){t&&aN.hasOwnProperty(t.type)?aN[t.type](t,A):_y(t,A)}var KlA=G6(),PWA=G6();function Bf(t){return[mr(t[1],t[0]),Ze(t[2])]}function Fo(t){var A=t[0],j=t[1],e=gt(j);return[e*gt(A),e*mt(A),mt(j)]}function e0(t,A){return t[0]*A[0]+t[1]*A[1]+t[2]*A[2]}function zc(t,A){return[t[1]*A[2]-t[2]*A[1],t[2]*A[0]-t[0]*A[2],t[0]*A[1]-t[1]*A[0]]}function qy(t,A){t[0]+=A[0],t[1]+=A[1],t[2]+=A[2]}function r0(t,A){return[t[0]*A,t[1]*A,t[2]*A]}function ff(t){var A=Ke(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=A,t[1]/=A,t[2]/=A}var DWA=G6();function by(t,A){function j(e,r){return e=t(e,r),A(e[0],e[1])}return t.invert&&A.invert&&(j.invert=function(e,r){return e=A.invert(e,r),e&&t.invert(e[0],e[1])}),j}function T1(t,A){return[t>Rt?t-Cr:t<-Rt?t+Cr:t,A]}T1.invert=T1;function S1(t,A,j){return(t%=Cr)?A||j?by(BN(t),fN(A,j)):BN(t):A||j?fN(A,j):T1}function uN(t){return function(A,j){return A+=t,[A>Rt?A-Cr:A<-Rt?A+Cr:A,j]}}function BN(t){var A=uN(t);return A.invert=uN(-t),A}function fN(t,A){var j=gt(t),e=mt(t),r=gt(A),n=mt(A);function i(o,l){var c=gt(l),B=gt(o)*c,h=mt(o)*c,d=mt(l),k=d*j+B*e;return[mr(h*r-k*n,B*j-d*e),Ze(k*r+h*n)]}return i.invert=function(o,l){var c=gt(l),B=gt(o)*c,h=mt(o)*c,d=mt(l),k=d*r-h*n;return[mr(h*r+d*n,B*j+k*e),Ze(k*j-B*e)]},i}function dN(t,A,j,e,r,n){if(j){var i=gt(A),o=mt(A),l=e*j;r==null?(r=A+e*Cr,n=A-l/2):(r=hN(i,r),n=hN(i,n),(e>0?r<n:r>n)&&(r+=e*Cr));for(var c,B=r;e>0?B>n:B<n;B-=l)c=Bf([i,-o*gt(B),-o*mt(B)]),t.point(c[0],c[1])}}function hN(t,A){A=Fo(A),A[0]-=t,ff(A);var j=vy(-A[1]);return((-A[2]<0?-j:j)+Cr-xt)%Cr}function Gy(){var t=[],A;return{point:function(j,e){A.push([j,e])},lineStart:function(){t.push(A=[])},lineEnd:Rn,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var j=t;return t=[],A=null,j}}}function pN(t,A,j,e,r,n){var i=t[0],o=t[1],l=A[0],c=A[1],B=0,h=1,d=l-i,k=c-o,m;if(m=j-i,!(!d&&m>0)){if(m/=d,d<0){if(m<B)return;m<h&&(h=m)}else if(d>0){if(m>h)return;m>B&&(B=m)}if(m=r-i,!(!d&&m<0)){if(m/=d,d<0){if(m>h)return;m>B&&(B=m)}else if(d>0){if(m<B)return;m<h&&(h=m)}if(m=e-o,!(!k&&m>0)){if(m/=k,k<0){if(m<B)return;m<h&&(h=m)}else if(k>0){if(m>h)return;m>B&&(B=m)}if(m=n-o,!(!k&&m<0)){if(m/=k,k<0){if(m>h)return;m>B&&(B=m)}else if(k>0){if(m<B)return;m<h&&(h=m)}return B>0&&(t[0]=i+B*d,t[1]=o+B*k),h<1&&(A[0]=i+h*d,A[1]=o+h*k),!0}}}}}function hf(t,A){return ij(t[0]-A[0])<xt&&ij(t[1]-A[1])<xt}function wy(t,A,j,e){this.x=t,this.z=A,this.o=j,this.e=e,this.v=!1,this.n=this.p=null}function Fy(t,A,j,e,r){var n=[],i=[],o,l;if(t.forEach(function(m){if(!(($=m.length-1)<=0)){var $,g=m[0],y=m[$],b;if(hf(g,y)){for(r.lineStart(),o=0;o<$;++o)r.point((g=m[o])[0],g[1]);r.lineEnd();return}n.push(b=new wy(g,m,null,!0)),i.push(b.o=new wy(g,null,b,!1)),n.push(b=new wy(y,m,null,!1)),i.push(b.o=new wy(y,null,b,!0))}}),!!n.length){for(i.sort(A),kN(n),kN(i),o=0,l=i.length;o<l;++o)i[o].e=j=!j;for(var c=n[0],B,h;;){for(var d=c,k=!0;d.v;)if((d=d.n)===c)return;B=d.z,r.lineStart();do{if(d.v=d.o.v=!0,d.e){if(k)for(o=0,l=B.length;o<l;++o)r.point((h=B[o])[0],h[1]);else e(d.x,d.n.x,1,r);d=d.n}else{if(k)for(B=d.p.z,o=B.length-1;o>=0;--o)r.point((h=B[o])[0],h[1]);else e(d.x,d.p.x,-1,r);d=d.p}d=d.o,B=d.z,k=!k}while(!d.v);r.lineEnd()}}}function kN(t){if(A=t.length){for(var A,j=0,e=t[0],r;++j<A;)e.n=r=t[j],r.p=e,e=r;e.n=r=t[0],r.p=e}}function al(t,A){return t<A?-1:t>A?1:t>=A?0:NaN}function R1(t){return t.length===1&&(t=XlA(t)),{left:function(A,j,e,r){for(e==null&&(e=0),r==null&&(r=A.length);e<r;){var n=e+r>>>1;t(A[n],j)<0?e=n+1:r=n}return e},right:function(A,j,e,r){for(e==null&&(e=0),r==null&&(r=A.length);e<r;){var n=e+r>>>1;t(A[n],j)>0?r=n:e=n+1}return e}}}function XlA(t){return function(A,j){return al(t(A),j)}}var gN=R1(al),zlA=gN.right,UlA=gN.left;var mN=Array.prototype,QlA=mN.slice,WlA=mN.map;var MYA=Math.sqrt(50),OYA=Math.sqrt(10),TYA=Math.sqrt(2);function n0(t){for(var A=t.length,j,e=-1,r=0,n,i;++e<A;)r+=t[e].length;for(n=new Array(r);--A>=0;)for(i=t[A],j=i.length;--j>=0;)n[--r]=i[j];return n}var i0=1e9,Iy=-i0;function L1(t,A,j,e){function r(c,B){return t<=c&&c<=j&&A<=B&&B<=e}function n(c,B,h,d){var k=0,m=0;if(c==null||(k=i(c,h))!==(m=i(B,h))||l(c,B)<0^h>0)do d.point(k===0||k===3?t:j,k>1?e:A);while((k=(k+h+4)%4)!==m);else d.point(B[0],B[1])}function i(c,B){return ij(c[0]-t)<xt?B>0?0:3:ij(c[0]-j)<xt?B>0?2:1:ij(c[1]-A)<xt?B>0?1:0:B>0?3:2}function o(c,B){return l(c.x,B.x)}function l(c,B){var h=i(c,1),d=i(B,1);return h!==d?h-d:h===0?B[1]-c[1]:h===1?c[0]-B[0]:h===2?c[1]-B[1]:B[0]-c[0]}return function(c){var B=c,h=Gy(),d,k,m,$,g,y,b,v,q,G,x,S={point:w,lineStart:T,lineEnd:Y,polygonStart:C,polygonEnd:U};function w(nA,M){r(nA,M)&&B.point(nA,M)}function K(){for(var nA=0,M=0,gA=k.length;M<gA;++M)for(var $A=k[M],vA=1,J=$A.length,XA=$A[0],ht,Lt,GA=XA[0],dt=XA[1];vA<J;++vA)ht=GA,Lt=dt,XA=$A[vA],GA=XA[0],dt=XA[1],Lt<=e?dt>e&&(GA-ht)*(e-Lt)>(dt-Lt)*(t-ht)&&++nA:dt<=e&&(GA-ht)*(e-Lt)<(dt-Lt)*(t-ht)&&--nA;return nA}function C(){B=h,d=[],k=[],x=!0}function U(){var nA=K(),M=x&&nA,gA=(d=n0(d)).length;(M||gA)&&(c.polygonStart(),M&&(c.lineStart(),n(null,null,1,c),c.lineEnd()),gA&&Fy(d,o,nA,n,c),c.polygonEnd()),B=c,d=k=m=null}function T(){S.point=L,k&&k.push(m=[]),G=!0,q=!1,b=v=NaN}function Y(){d&&(L($,g),y&&q&&h.rejoin(),d.push(h.result())),S.point=w,q&&B.lineEnd()}function L(nA,M){var gA=r(nA,M);if(k&&m.push([nA,M]),G)$=nA,g=M,y=gA,G=!1,gA&&(B.lineStart(),B.point(nA,M));else if(gA&&q)B.point(nA,M);else{var $A=[b=Math.max(Iy,Math.min(i0,b)),v=Math.max(Iy,Math.min(i0,v))],vA=[nA=Math.max(Iy,Math.min(i0,nA)),M=Math.max(Iy,Math.min(i0,M))];pN($A,vA,t,A,j,e)?(q||(B.lineStart(),B.point($A[0],$A[1])),B.point(vA[0],vA[1]),gA||B.lineEnd(),x=!1):gA&&(B.lineStart(),B.point(nA,M),x=!1)}b=nA,v=M,q=gA}return S}}var C1=G6();function H1(t,A){var j=A[0],e=A[1],r=[mt(j),-gt(j),0],n=0,i=0;C1.reset();for(var o=0,l=t.length;o<l;++o)if(B=(c=t[o]).length)for(var c,B,h=c[B-1],d=h[0],k=h[1]/2+xy,m=mt(k),$=gt(k),g=0;g<B;++g,d=b,m=q,$=G,h=y){var y=c[g],b=y[0],v=y[1]/2+xy,q=mt(v),G=gt(v),x=b-d,S=x>=0?1:-1,w=S*x,K=w>Rt,C=m*q;if(C1.add(mr(C*S*mt(w),$*G+C*gt(w))),n+=K?x+S*Cr:x,K^d>=j^b>=j){var U=zc(Fo(h),Fo(y));ff(U);var T=zc(r,U);ff(T);var Y=(K^x>=0?-1:1)*Ze(T[2]);(e>Y||e===Y&&(U[0]||U[1]))&&(i+=K^x>=0?1:-1)}}return(n<-xt||n<xt&&C1<-xt)^i&1}var qZA=G6();function o0(t){return t}var zZA=G6(),UZA=G6();var df=1/0,My=df,s0=-df,Oy=s0,icA={point:ocA,lineStart:Rn,lineEnd:Rn,polygonStart:Rn,polygonEnd:Rn,result:function(){var t=[[df,My],[s0,Oy]];return s0=Oy=-(My=df=1/0),t}};function ocA(t,A){t<df&&(df=t),t>s0&&(s0=t),A<My&&(My=A),A>Oy&&(Oy=A)}var Ty=icA;function D1(t){this._context=t}D1.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,A){switch(this._point){case 0:{this._context.moveTo(t,A),this._point=1;break}case 1:{this._context.lineTo(t,A);break}default:{this._context.moveTo(t+this._radius,A),this._context.arc(t,A,this._radius,0,Cr);break}}},result:Rn};var nAt=G6();function N1(){this._string=[]}N1.prototype={_radius:4.5,_circle:xN(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._string.push("Z"),this._point=NaN},point:function(t,A){switch(this._point){case 0:{this._string.push("M",t,",",A),this._point=1;break}case 1:{this._string.push("L",t,",",A);break}default:{this._circle==null&&(this._circle=xN(this._radius)),this._string.push("M",t,",",A,this._circle);break}}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}else return null}};function xN(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Sy(t,A,j,e){return function(r,n){var i=A(n),o=r.invert(e[0],e[1]),l=Gy(),c=A(l),B=!1,h,d,k,m={point:$,lineStart:y,lineEnd:b,polygonStart:function(){m.point=v,m.lineStart=q,m.lineEnd=G,d=[],h=[]},polygonEnd:function(){m.point=$,m.lineStart=y,m.lineEnd=b,d=n0(d);var x=H1(h,o);d.length?(B||(n.polygonStart(),B=!0),Fy(d,acA,x,j,n)):x&&(B||(n.polygonStart(),B=!0),n.lineStart(),j(null,null,1,n),n.lineEnd()),B&&(n.polygonEnd(),B=!1),d=h=null},sphere:function(){n.polygonStart(),n.lineStart(),j(null,null,1,n),n.lineEnd(),n.polygonEnd()}};function $(x,S){var w=r(x,S);t(x=w[0],S=w[1])&&n.point(x,S)}function g(x,S){var w=r(x,S);i.point(w[0],w[1])}function y(){m.point=g,i.lineStart()}function b(){m.point=$,i.lineEnd()}function v(x,S){k.push([x,S]);var w=r(x,S);c.point(w[0],w[1])}function q(){c.lineStart(),k=[]}function G(){v(k[0][0],k[0][1]),c.lineEnd();var x=c.clean(),S=l.result(),w,K=S.length,C,U,T;if(k.pop(),h.push(k),k=null,!!K){if(x&1){if(U=S[0],(C=U.length-1)>0){for(B||(n.polygonStart(),B=!0),n.lineStart(),w=0;w<C;++w)n.point((T=U[w])[0],T[1]);n.lineEnd()}return}K>1&&x&2&&S.push(S.pop().concat(S.shift())),d.push(S.filter(scA))}}return m}}function scA(t){return t.length>1}function acA(t,A){return((t=t.x)[0]<0?t[1]-Je-xt:Je-t[1])-((A=A.x)[0]<0?A[1]-Je-xt:Je-A[1])}var K1=Sy(function(){return!0},lcA,ucA,[-Rt,-Je]);function lcA(t){var A=NaN,j=NaN,e=NaN,r;return{lineStart:function(){t.lineStart(),r=1},point:function(n,i){var o=n>0?Rt:-Rt,l=ij(n-A);ij(l-Rt)<xt?(t.point(A,j=(j+i)/2>0?Je:-Je),t.point(e,j),t.lineEnd(),t.lineStart(),t.point(o,j),t.point(n,j),r=0):e!==o&&l>=Rt&&(ij(A-e)<xt&&(A-=e*xt),ij(n-o)<xt&&(n-=o*xt),j=ccA(A,j,n,i),t.point(e,j),t.lineEnd(),t.lineStart(),t.point(o,j),r=0),t.point(A=n,j=i),e=o},lineEnd:function(){t.lineEnd(),A=j=NaN},clean:function(){return 2-r}}}function ccA(t,A,j,e){var r,n,i=mt(t-j);return ij(i)>xt?wo((mt(A)*(n=gt(e))*mt(j)-mt(e)*(r=gt(A))*mt(t))/(r*n*i)):(A+e)/2}function ucA(t,A,j,e){var r;if(t==null)r=j*Je,e.point(-Rt,r),e.point(0,r),e.point(Rt,r),e.point(Rt,0),e.point(Rt,-r),e.point(0,-r),e.point(-Rt,-r),e.point(-Rt,0),e.point(-Rt,r);else if(ij(t[0]-A[0])>xt){var n=t[0]<A[0]?Rt:-Rt;r=j*n/2,e.point(-n,r),e.point(0,r),e.point(n,r)}else e.point(A[0],A[1])}function yN(t,A){var j=gt(t),e=j>0,r=ij(j)>xt;function n(B,h,d,k){dN(k,t,A,d,B,h)}function i(B,h){return gt(B)*gt(h)>j}function o(B){var h,d,k,m,$;return{lineStart:function(){m=k=!1,$=1},point:function(g,y){var b=[g,y],v,q=i(g,y),G=e?q?0:c(g,y):q?c(g+(g<0?Rt:-Rt),y):0;if(!h&&(m=k=q)&&B.lineStart(),q!==k&&(v=l(h,b),(!v||hf(h,v)||hf(b,v))&&(b[0]+=xt,b[1]+=xt,q=i(b[0],b[1]))),q!==k)$=0,q?(B.lineStart(),v=l(b,h),B.point(v[0],v[1])):(v=l(h,b),B.point(v[0],v[1]),B.lineEnd()),h=v;else if(r&&h&&e^q){var x;!(G&d)&&(x=l(b,h,!0))&&($=0,e?(B.lineStart(),B.point(x[0][0],x[0][1]),B.point(x[1][0],x[1][1]),B.lineEnd()):(B.point(x[1][0],x[1][1]),B.lineEnd(),B.lineStart(),B.point(x[0][0],x[0][1])))}q&&(!h||!hf(h,b))&&B.point(b[0],b[1]),h=b,k=q,d=G},lineEnd:function(){k&&B.lineEnd(),h=null},clean:function(){return $|(m&&k)<<1}}}function l(B,h,d){var k=Fo(B),m=Fo(h),$=[1,0,0],g=zc(k,m),y=e0(g,g),b=g[0],v=y-b*b;if(!v)return!d&&B;var q=j*y/v,G=-j*b/v,x=zc($,g),S=r0($,q),w=r0(g,G);qy(S,w);var K=x,C=e0(S,K),U=e0(K,K),T=C*C-U*(e0(S,S)-1);if(!(T<0)){var Y=Ke(T),L=r0(K,(-C-Y)/U);if(qy(L,S),L=Bf(L),!d)return L;var nA=B[0],M=h[0],gA=B[1],$A=h[1],vA;M<nA&&(vA=nA,nA=M,M=vA);var J=M-nA,XA=ij(J-Rt)<xt,ht=XA||J<xt;if(!XA&&$A<gA&&(vA=gA,gA=$A,$A=vA),ht?XA?gA+$A>0^L[1]<(ij(L[0]-nA)<xt?gA:$A):gA<=L[1]&&L[1]<=$A:J>Rt^(nA<=L[0]&&L[0]<=M)){var Lt=r0(K,(-C+Y)/U);return qy(Lt,S),[L,Bf(Lt)]}}}function c(B,h){var d=e?t:Rt-t,k=0;return B<-d?k|=1:B>d&&(k|=2),h<-d?k|=4:h>d&&(k|=8),k}return Sy(i,o,n,e?[0,-t]:[-Rt,t-Rt])}function a0(t){return function(A){var j=new X1;for(var e in t)j[e]=t[e];return j.stream=A,j}}function X1(){}X1.prototype={constructor:X1,point:function(t,A){this.stream.point(t,A)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function l0(t,A,j){var e=A[1][0]-A[0][0],r=A[1][1]-A[0][1],n=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),n!=null&&t.clipExtent(null),sl(j,t.stream(Ty));var i=Ty.result(),o=Math.min(e/(i[1][0]-i[0][0]),r/(i[1][1]-i[0][1])),l=+A[0][0]+(e-o*(i[1][0]+i[0][0]))/2,c=+A[0][1]+(r-o*(i[1][1]+i[0][1]))/2;return n!=null&&t.clipExtent(n),t.scale(o*150).translate([l,c])}function Ry(t,A,j){return l0(t,[[0,0],A],j)}var vN=16,BcA=gt(30*se);function z1(t,A){return+A?hcA(t,A):fcA(t)}function fcA(t){return a0({point:function(A,j){A=t(A,j),this.stream.point(A[0],A[1])}})}function hcA(t,A){function j(e,r,n,i,o,l,c,B,h,d,k,m,$,g){var y=c-e,b=B-r,v=y*y+b*b;if(v>4*A&&$--){var q=i+d,G=o+k,x=l+m,S=Ke(q*q+G*G+x*x),w=Ze(x/=S),K=ij(ij(x)-1)<xt||ij(n-h)<xt?(n+h)/2:mr(G,q),C=t(K,w),U=C[0],T=C[1],Y=U-e,L=T-r,nA=b*Y-y*L;(nA*nA/v>A||ij((y*Y+b*L)/v-.5)>.3||i*d+o*k+l*m<BcA)&&(j(e,r,n,i,o,l,U,T,K,q/=S,G/=S,x,$,g),g.point(U,T),j(U,T,K,q,G,x,c,B,h,d,k,m,$,g))}}return function(e){var r,n,i,o,l,c,B,h,d,k,m,$,g={point:y,lineStart:b,lineEnd:q,polygonStart:function(){e.polygonStart(),g.lineStart=G},polygonEnd:function(){e.polygonEnd(),g.lineStart=b}};function y(w,K){w=t(w,K),e.point(w[0],w[1])}function b(){h=NaN,g.point=v,e.lineStart()}function v(w,K){var C=Fo([w,K]),U=t(w,K);j(h,d,B,k,m,$,h=U[0],d=U[1],B=w,k=C[0],m=C[1],$=C[2],vN,e),e.point(h,d)}function q(){g.point=y,e.lineEnd()}function G(){b(),g.point=x,g.lineEnd=S}function x(w,K){v(r=w,K),n=h,i=d,o=k,l=m,c=$,g.point=v}function S(){j(h,d,B,k,m,$,n,i,r,o,l,c,vN,e),g.lineEnd=q,q()}return g}}var dcA=a0({point:function(t,A){this.stream.point(t*se,A*se)}});function Po(t){return U1(function(){return t})()}function U1(t){var A,j=150,e=480,r=250,n,i,o=0,l=0,c=0,B=0,h=0,d,k,m=null,$=K1,g=null,y,b,v,q=o0,G=.5,x=z1(U,G),S,w;function K(L){return L=k(L[0]*se,L[1]*se),[L[0]*j+n,i-L[1]*j]}function C(L){return L=k.invert((L[0]-n)/j,(i-L[1])/j),L&&[L[0]*Sn,L[1]*Sn]}function U(L,nA){return L=A(L,nA),[L[0]*j+n,i-L[1]*j]}K.stream=function(L){return S&&w===L?S:S=dcA($(d,x(q(w=L))))},K.clipAngle=function(L){return arguments.length?($=+L?yN(m=L*se,6*se):(m=null,K1),Y()):m*Sn},K.clipExtent=function(L){return arguments.length?(q=L==null?(g=y=b=v=null,o0):L1(g=+L[0][0],y=+L[0][1],b=+L[1][0],v=+L[1][1]),Y()):g==null?null:[[g,y],[b,v]]},K.scale=function(L){return arguments.length?(j=+L,T()):j},K.translate=function(L){return arguments.length?(e=+L[0],r=+L[1],T()):[e,r]},K.center=function(L){return arguments.length?(o=L[0]%360*se,l=L[1]%360*se,T()):[o*Sn,l*Sn]},K.rotate=function(L){return arguments.length?(c=L[0]%360*se,B=L[1]%360*se,h=L.length>2?L[2]%360*se:0,T()):[c*Sn,B*Sn,h*Sn]},K.precision=function(L){return arguments.length?(x=z1(U,G=L*L),Y()):Ke(G)},K.fitExtent=function(L,nA){return l0(K,L,nA)},K.fitSize=function(L,nA){return Ry(K,L,nA)};function T(){k=by(d=S1(c,B,h),A);var L=A(o,l);return n=e-L[0]*j,i=r+L[1]*j,Y()}function Y(){return S=w=null,K}return function(){return A=t.apply(this,arguments),K.invert=A.invert&&C,T()}}function Ly(t){return function(A,j){var e=gt(A),r=gt(j),n=t(e*r);return[n*r*mt(A),n*mt(j)]}}function vs(t){return function(A,j){var e=Ke(A*A+j*j),r=t(e),n=mt(r),i=gt(r);return[mr(A*n,e*i),Ze(e&&j*n/e)]}}var GN=Ly(function(t){return Ke(2/(1+t))});GN.invert=vs(function(t){return 2*Ze(t/2)});var V1=Ly(function(t){return(t=vy(t))&&t/mt(t)});V1.invert=vs(function(t){return t});function Q1(){return Po(V1).scale(79.4188).clipAngle(180-.001)}function W1(t,A){return[t,t0(j0((Je+A)/2))]}W1.invert=function(t,A){return[t,2*wo(yy(A))-Je]};function Cy(t,A){return[t,A]}Cy.invert=Cy;function wN(t,A){var j=gt(A),e=gt(t)*j;return[j*mt(t)/e,mt(A)/e]}wN.invert=vs(wo);function FN(t,A){var j=A*A,e=j*j;return[t*(.8707-.131979*j+e*(-.013791+e*(.003971*j-.001529*e))),A*(1.007226+j*(.015085+e*(-.044475+.028874*j-.005916*e)))]}FN.invert=function(t,A){var j=A,e=25,r;do{var n=j*j,i=n*n;j-=r=(j*(1.007226+n*(.015085+i*(-.044475+.028874*n-.005916*i)))-A)/(1.007226+n*(.015085*3+i*(-.044475*7+.028874*9*n-.005916*11*i)))}while(ij(r)>xt&&--e>0);return[t/(.8707+(n=j*j)*(-.131979+n*(-.013791+n*n*n*(.003971-.001529*n)))),j]};function PN(t,A){return[gt(A)*mt(t),mt(A)]}PN.invert=vs(Ze);function IN(t,A){var j=gt(A),e=1+gt(t)*j;return[j*mt(t)/e,mt(A)/e]}IN.invert=vs(function(t){return 2*wo(t)});function MN(t,A){return[t0(j0((Je+A)/2)),-t]}MN.invert=function(t,A){return[-A,2*wo(yy(t))-Je]};function gcA(t,A,j){j=j||{};var e=j.units||"kilometers",r=j.steps||8;if(!t)throw new Error("geojson is required");if(typeof j!="object")throw new Error("options must be an object");if(typeof r!="number")throw new Error("steps must be an number");if(A===void 0)throw new Error("radius is required");if(r<=0)throw new Error("steps must be greater than 0");var n=[];switch(t.type){case"GeometryCollection":return M1(t,function(i){var o=Hy(i,A,e,r);o&&n.push(o)}),my(n);case"FeatureCollection":return I1(t,function(i){var o=Hy(i,A,e,r);o&&I1(o,function(l){l&&n.push(l)})}),my(n)}return Hy(t,A,e,r)}function Hy(t,A,j,e){var r=t.properties||{},n=t.type==="Feature"?t.geometry:t;if(n.type==="GeometryCollection"){var i=[];return M1(t,function($){var g=Hy($,A,j,e);g&&i.push(g)}),my(i)}var o=mcA(n),l={type:n.type,coordinates:TN(n.coordinates,o)},c=new pf.GeoJSONReader,B=c.read(l),h=iN(oN(A,j),"meters"),d=pf.BufferOp.bufferOp(B,h,e),k=new pf.GeoJSONWriter;if(d=k.write(d),!ON(d.coordinates)){var m={type:d.type,coordinates:SN(d.coordinates,o)};return P1(m,r)}}function ON(t){return Array.isArray(t[0])?ON(t[0]):isNaN(t[0])}function TN(t,A){return typeof t[0]!="object"?A(t):t.map(function(j){return TN(j,A)})}function SN(t,A){return typeof t[0]!="object"?A.invert(t):t.map(function(j){return SN(j,A)})}function mcA(t){var A=ol(t).geometry.coordinates,j=[-A[0],-A[1]];return Q1().rotate(j).scale(Lr)}var Dy=gcA;var HN=Ws(Ny(),1);var Ln=63710088e-1,Eet={centimeters:Ln*100,centimetres:Ln*100,degrees:Ln/111325,feet:Ln*3.28084,inches:Ln*39.37,kilometers:Ln/1e3,kilometres:Ln/1e3,meters:Ln,metres:Ln,miles:Ln/1609.344,millimeters:Ln*1e3,millimetres:Ln*1e3,nauticalmiles:Ln/1852,radians:1,yards:Ln*1.0936},$et={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Ln,yards:1.0936133};function RN(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function LN(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return RN(o,A,j)}function CN(t,A,j){j===void 0&&(j={});var e={type:"MultiPolygon",coordinates:t};return RN(e,A,j)}function Z1(t){return t.type==="Feature"?t.geometry:t}function EcA(t,A){var j=Z1(t),e=Z1(A),r=t.properties||{},n=HN.default.difference(j.coordinates,e.coordinates);return n.length===0?null:n.length===1?LN(n[0],r):CN(n,r)}var kf=EcA;var Cn=63710088e-1,$cA={centimeters:Cn*100,centimetres:Cn*100,degrees:Cn/111325,feet:Cn*3.28084,inches:Cn*39.37,kilometers:Cn/1e3,kilometres:Cn/1e3,meters:Cn,metres:Cn,miles:Cn/1609.344,millimeters:Cn*1e3,millimetres:Cn*1e3,nauticalmiles:Cn/1852,radians:1,yards:Cn*1.0936},wet={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Cn,yards:1.0936133};function DN(t,A){A===void 0&&(A="kilometers");var j=$cA[A];if(!j)throw new Error(A+" units is invalid");return t*j}function c0(t){var A=t%360;return A*Math.PI/180}function AP(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function xcA(t,A,j){j===void 0&&(j={});var e=AP(t),r=AP(A),n=c0(r[1]-e[1]),i=c0(r[0]-e[0]),o=c0(e[1]),l=c0(r[1]),c=Math.pow(Math.sin(n/2),2)+Math.pow(Math.sin(i/2),2)*Math.cos(o)*Math.cos(l);return DN(2*Math.atan2(Math.sqrt(c),Math.sqrt(1-c)),j.units)}var yt=xcA;var jP=Ws(KN(),1);var Dn=63710088e-1,qcA={centimeters:Dn*100,centimetres:Dn*100,degrees:Dn/111325,feet:Dn*3.28084,inches:Dn*39.37,kilometers:Dn/1e3,kilometres:Dn/1e3,meters:Dn,metres:Dn,miles:Dn/1609.344,millimeters:Dn*1e3,millimetres:Dn*1e3,nauticalmiles:Dn/1852,radians:1,yards:Dn*1.0936},jrt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Dn,yards:1.0936133};function bcA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function XN(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!eP(t[0])||!eP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return bcA(e,A,j)}function zN(t,A){A===void 0&&(A="kilometers");var j=qcA[A];if(!j)throw new Error(A+" units is invalid");return t/j}function rP(t){var A=t%(2*Math.PI);return A*180/Math.PI}function Xy(t){var A=t%360;return A*Math.PI/180}function eP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function UN(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function Er(t,A,j,e){e===void 0&&(e={});var r=UN(t),n=Xy(r[0]),i=Xy(r[1]),o=Xy(j),l=zN(A,e.units),c=Math.asin(Math.sin(i)*Math.cos(l)+Math.cos(i)*Math.sin(l)*Math.cos(o)),B=n+Math.atan2(Math.sin(o)*Math.sin(l)*Math.cos(i),Math.cos(l)-Math.sin(i)*Math.sin(c)),h=rP(B),d=rP(c);return XN([h,d],e.properties)}var Nn=63710088e-1,art={centimeters:Nn*100,centimetres:Nn*100,degrees:Nn/111325,feet:Nn*3.28084,inches:Nn*39.37,kilometers:Nn/1e3,kilometres:Nn/1e3,meters:Nn,metres:Nn,miles:Nn/1609.344,millimeters:Nn*1e3,millimetres:Nn*1e3,nauticalmiles:Nn/1852,radians:1,yards:Nn*1.0936},lrt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Nn,yards:1.0936133};function VN(t){var A=t%(2*Math.PI);return A*180/Math.PI}function B0(t){var A=t%360;return A*Math.PI/180}function nP(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function Fj(t,A,j){if(j===void 0&&(j={}),j.final===!0)return GcA(t,A);var e=nP(t),r=nP(A),n=B0(e[0]),i=B0(r[0]),o=B0(e[1]),l=B0(r[1]),c=Math.sin(i-n)*Math.cos(l),B=Math.cos(o)*Math.sin(l)-Math.sin(o)*Math.cos(l)*Math.cos(i-n);return VN(Math.atan2(c,B))}function GcA(t,A){var j=Fj(A,t);return j=(j+180)%360,j}var Kn=63710088e-1,QN={centimeters:Kn*100,centimetres:Kn*100,degrees:Kn/111325,feet:Kn*3.28084,inches:Kn*39.37,kilometers:Kn/1e3,kilometres:Kn/1e3,meters:Kn,metres:Kn,miles:Kn/1609.344,millimeters:Kn*1e3,millimetres:Kn*1e3,nauticalmiles:Kn/1852,radians:1,yards:Kn*1.0936},krt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Kn,yards:1.0936133};function ll(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function oP(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!iP(t[0])||!iP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return ll(e,A,j)}function zy(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return ll(e,A,j)}function wcA(t,A){A===void 0&&(A="kilometers");var j=QN[A];if(!j)throw new Error(A+" units is invalid");return t*j}function FcA(t,A){A===void 0&&(A="kilometers");var j=QN[A];if(!j)throw new Error(A+" units is invalid");return t/j}function WN(t,A,j){if(A===void 0&&(A="kilometers"),j===void 0&&(j="kilometers"),!(t>=0))throw new Error("length must be a positive number");return wcA(FcA(t,A),j)}function iP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function sP(t,A,j){if(!t)throw new Error("No feature passed");if(!j)throw new Error(".featureOf() requires a name");if(!t||t.type!=="Feature"||!t.geometry)throw new Error("Invalid input to "+j+", Feature with geometry required");if(!t.geometry||t.geometry.type!==A)throw new Error("Invalid input to "+j+": must be a "+A+", given "+t.geometry.type)}function YN(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(YN(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function PcA(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function IcA(t,A){PcA(t,function(j,e,r,n,i){var o=j===null?null:j.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(ll(j,r,{bbox:n,id:i}),e,0)===!1?!1:void 0}var l;switch(o){case"MultiPoint":l="Point";break;case"MultiLineString":l="LineString";break;case"MultiPolygon":l="Polygon";break}for(var c=0;c<j.coordinates.length;c++){var B=j.coordinates[c],h={type:l,coordinates:B};if(A(ll(h,r),e,c)===!1)return!1}})}function JN(t,A){IcA(t,function(j,e,r){var n=0;if(j.geometry){var i=j.geometry.type;if(!(i==="Point"||i==="MultiPoint")){var o,l=0,c=0,B=0;if(YN(j,function(h,d,k,m,$){if(o===void 0||e>l||m>c||$>B){o=h,l=e,c=m,B=$,n=0;return}var g=zy([o,h],j.properties);if(A(g,e,r,$,n)===!1)return!1;n++,o=h})===!1)return!1}}})}var Hr=63710088e-1,ZN={centimeters:Hr*100,centimetres:Hr*100,degrees:Hr/111325,feet:Hr*3.28084,inches:Hr*39.37,kilometers:Hr/1e3,kilometres:Hr/1e3,meters:Hr,metres:Hr,miles:Hr/1609.344,millimeters:Hr*1e3,millimetres:Hr*1e3,nauticalmiles:Hr/1852,radians:1,yards:Hr*1.0936},vrt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Hr,yards:1.0936133};function McA(t,A){A===void 0&&(A="kilometers");var j=ZN[A];if(!j)throw new Error(A+" units is invalid");return t*j}function OcA(t,A){A===void 0&&(A="kilometers");var j=ZN[A];if(!j)throw new Error(A+" units is invalid");return t/j}function A3(t,A,j){if(A===void 0&&(A="kilometers"),j===void 0&&(j="kilometers"),!(t>=0))throw new Error("length must be a positive number");return McA(OcA(t,A),j)}function aP(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function TcA(t,A,j){j===void 0&&(j={});var e=aP(t),r=aP(A);r[0]+=r[0]-e[0]>180?-360:e[0]-r[0]>180?360:0;var n=ScA(e,r),i=A3(n,"meters",j.units);return i}function ScA(t,A,j){j=j===void 0?Hr:Number(j);var e=j,r=t[1]*Math.PI/180,n=A[1]*Math.PI/180,i=n-r,o=Math.abs(A[0]-t[0])*Math.PI/180;o>Math.PI&&(o-=2*Math.PI);var l=Math.log(Math.tan(n/2+Math.PI/4)/Math.tan(r/2+Math.PI/4)),c=Math.abs(l)>1e-11?i/l:Math.cos(r),B=Math.sqrt(i*i+c*c*o*o),h=B*e;return h}var cl=TcA;function RcA(t,A,j){if(j===void 0&&(j={}),j.method||(j.method="geodesic"),j.units||(j.units="kilometers"),!t)throw new Error("pt is required");if(Array.isArray(t)?t=oP(t):t.type==="Point"?t=ll(t):sP(t,"Point","point"),!A)throw new Error("line is required");Array.isArray(A)?A=zy(A):A.type==="LineString"?A=ll(A):sP(A,"LineString","line");var e=1/0,r=t.geometry.coordinates;return JN(A,function(n){var i=n.geometry.coordinates[0],o=n.geometry.coordinates[1],l=LcA(r,i,o,j);l<e&&(e=l)}),WN(e,"degrees",j.units)}function LcA(t,A,j,e){var r=[j[0]-A[0],j[1]-A[1]],n=[t[0]-A[0],t[1]-A[1]],i=t3(n,r);if(i<=0)return lP(t,A,{method:e.method,units:"degrees"});var o=t3(r,r);if(o<=i)return lP(t,j,{method:e.method,units:"degrees"});var l=i/o,c=[A[0]+l*r[0],A[1]+l*r[1]];return lP(t,c,{method:e.method,units:"degrees"})}function t3(t,A){return t[0]*A[0]+t[1]*A[1]}function lP(t,A,j){return j.method==="planar"?cl(t,A,j):yt(t,A,j)}var cP=RcA;function Ae(t,A,j){return(A=TD(A))in t?Object.defineProperty(t,A,{value:j,enumerable:!0,configurable:!0,writable:!0}):t[A]=j,t}function gf(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function ul(t,A){let j=YD([],A,t);return WD(j,j,1/j[3]),j}function f0(t,A,j){return t<A?A:t>j?j:t}function CcA(t){return Math.log(t)*Math.LOG2E}var Uy=Math.log2||CcA;function Io(t,A){if(!t)throw new Error(A||"@math.gl/web-mercator: assertion failed.")}var Mo=Math.PI,e3=Mo/4,_s=Mo/180,uP=180/Mo,h0=512,j3=4003e4,Ef=85.051129,BP=1.5;function Vy(t){return Math.pow(2,t)}function qs(t){let[A,j]=t;Io(Number.isFinite(A)),Io(Number.isFinite(j)&&j>=-90&&j<=90,"invalid latitude");let e=A*_s,r=j*_s,n=h0*(e+Mo)/(2*Mo),i=h0*(Mo+Math.log(Math.tan(e3+r*.5)))/(2*Mo);return[n,i]}function Oo(t){let[A,j]=t,e=A/h0*(2*Mo)-Mo,r=2*(Math.atan(Math.exp(j/h0*(2*Mo)-Mo))-e3);return[e*uP,r*uP]}function fP(t){let{latitude:A,longitude:j,highPrecision:e=!1}=t;Io(Number.isFinite(A)&&Number.isFinite(j));let r=h0,n=Math.cos(A*_s),i=r/360,o=i/n,l=r/j3/n,c={unitsPerMeter:[l,l,l],metersPerUnit:[1/l,1/l,1/l],unitsPerDegree:[i,o,l],degreesPerUnit:[1/i,1/o,1/l]};if(e){let B=_s*Math.tan(A*_s)/n,h=i*B/2,d=r/j3*B,k=d/o*l;c.unitsPerDegree2=[0,h,d],c.unitsPerMeter2=[k,0,k]}return c}function hP(t){let{height:A,pitch:j,bearing:e,altitude:r,scale:n,center:i}=t,o=gf();Jk(o,o,[0,0,-r]),zD(o,o,-j*_s),UD(o,o,e*_s);let l=n/A;return fy(o,o,[l,l,l]),i&&Jk(o,o,DD([],i)),o}function r3(t){let{width:A,height:j,altitude:e,pitch:r=0,offset:n,center:i,scale:o,nearZMultiplier:l=1,farZMultiplier:c=1}=t,{fovy:B=mf(BP)}=t;e!==void 0&&(B=mf(e));let h=B*_s,d=r*_s,k=Qy(B),m=k;i&&(m+=i[2]*o/Math.cos(d)/j);let $=h*(.5+(n?n[1]:0)/j),g=Math.sin($)*m/Math.sin(f0(Math.PI/2-d-$,.01,Math.PI-.01)),y=Math.sin(d)*g+m,b=m*10,v=Math.min(y*c,b);return{fov:h,aspect:A/j,focalDistance:k,near:l,far:v}}function dP(t){let{fov:A,aspect:j,near:e,far:r}=r3(t);return VD([],A,j,e,r)}function mf(t){return 2*Math.atan(.5/t)*uP}function Qy(t){return .5/Math.tan(.5*t*_s)}function pP(t,A){let[j,e,r=0]=t;return Io(Number.isFinite(j)&&Number.isFinite(e)&&Number.isFinite(r)),ul(A,[j,e,r,1])}function Wy(t,A,j=0){let[e,r,n]=t;if(Io(Number.isFinite(e)&&Number.isFinite(r),"invalid pixel coordinate"),Number.isFinite(n))return ul(A,[e,r,n,1]);let i=ul(A,[e,r,0,1]),o=ul(A,[e,r,1,1]),l=i[2],c=o[2],B=l===c?0:((j||0)-l)/(c-l);return uy([],i,o,B)}function Yy(t){let{width:A,height:j,bounds:e,minExtent:r=0,maxZoom:n=24,offset:i=[0,0]}=t,[[o,l],[c,B]]=e,h=HcA(t.padding),d=qs([o,f0(B,-Ef,Ef)]),k=qs([c,f0(l,-Ef,Ef)]),m=[Math.max(Math.abs(k[0]-d[0]),r),Math.max(Math.abs(k[1]-d[1]),r)],$=[A-h.left-h.right-Math.abs(i[0])*2,j-h.top-h.bottom-Math.abs(i[1])*2];Io($[0]>0&&$[1]>0);let g=$[0]/m[0],y=$[1]/m[1],b=(h.right-h.left)/2/g,v=(h.top-h.bottom)/2/y,q=[(k[0]+d[0])/2+b,(k[1]+d[1])/2+v],G=Oo(q),x=Math.min(n,Uy(Math.abs(Math.min(g,y))));return Io(Number.isFinite(x)),{longitude:G[0],latitude:G[1],zoom:x}}function HcA(t=0){return typeof t=="number"?{top:t,bottom:t,left:t,right:t}:(Io(Number.isFinite(t.top)&&Number.isFinite(t.bottom)&&Number.isFinite(t.left)&&Number.isFinite(t.right)),t)}var n3=Math.PI/180;function Jy(t,A=0){let{width:j,height:e,unproject:r}=t,n={targetZ:A},i=r([0,e],n),o=r([j,e],n),l,c,B=t.fovy?.5*t.fovy*n3:Math.atan(.5/t.altitude),h=(90-t.pitch)*n3;return B>h-.01?(l=i3(t,0,A),c=i3(t,j,A)):(l=r([0,0],n),c=r([j,0],n)),[i,o,c,l]}function i3(t,A,j){let{pixelUnprojectionMatrix:e}=t,r=ul(e,[A,0,1,1]),n=ul(e,[A,t.height,1,1]),o=(j*t.distanceScales.unitsPerMeter[2]-r[2])/(n[2]-r[2]),l=uy([],r,n,o),c=Oo(l);return c.push(j),c}var Si=class t{constructor(A={width:1,height:1}){Ae(this,"latitude",void 0),Ae(this,"longitude",void 0),Ae(this,"zoom",void 0),Ae(this,"pitch",void 0),Ae(this,"bearing",void 0),Ae(this,"altitude",void 0),Ae(this,"fovy",void 0),Ae(this,"meterOffset",void 0),Ae(this,"center",void 0),Ae(this,"width",void 0),Ae(this,"height",void 0),Ae(this,"scale",void 0),Ae(this,"distanceScales",void 0),Ae(this,"viewMatrix",void 0),Ae(this,"projectionMatrix",void 0),Ae(this,"viewProjectionMatrix",void 0),Ae(this,"pixelProjectionMatrix",void 0),Ae(this,"pixelUnprojectionMatrix",void 0),Ae(this,"equals",y=>y instanceof t?y.width===this.width&&y.height===this.height&&_1(y.projectionMatrix,this.projectionMatrix)&&_1(y.viewMatrix,this.viewMatrix):!1),Ae(this,"project",(y,b={})=>{let{topLeft:v=!0}=b,q=this.projectPosition(y),G=pP(q,this.pixelProjectionMatrix),[x,S]=G,w=v?S:this.height-S;return y.length===2?[x,w]:[x,w,G[2]]}),Ae(this,"unproject",(y,b={})=>{let{topLeft:v=!0,targetZ:q=void 0}=b,[G,x,S]=y,w=v?x:this.height-x,K=q&&q*this.distanceScales.unitsPerMeter[2],C=Wy([G,w,S],this.pixelUnprojectionMatrix,K),[U,T,Y]=this.unprojectPosition(C);return Number.isFinite(S)?[U,T,Y]:Number.isFinite(q)?[U,T,q]:[U,T]}),Ae(this,"projectPosition",y=>{let[b,v]=qs(y),q=(y[2]||0)*this.distanceScales.unitsPerMeter[2];return[b,v,q]}),Ae(this,"unprojectPosition",y=>{let[b,v]=Oo(y),q=(y[2]||0)*this.distanceScales.metersPerUnit[2];return[b,v,q]});let{width:j,height:e,altitude:r=null,fovy:n=null}=A,{latitude:i=0,longitude:o=0,zoom:l=0,pitch:c=0,bearing:B=0,position:h=null,nearZMultiplier:d=.02,farZMultiplier:k=1.01}=A;j=j||1,e=e||1,n===null&&r===null?(r=BP,n=mf(r)):n===null?n=mf(r):r===null&&(r=Qy(n));let m=Vy(l);r=Math.max(.75,r);let $=fP({longitude:o,latitude:i}),g=qs([o,i]);g.push(0),h&&HD(g,g,ND([],h,$.unitsPerMeter)),this.projectionMatrix=dP({width:j,height:e,scale:m,center:g,pitch:c,fovy:n,nearZMultiplier:d,farZMultiplier:k}),this.viewMatrix=hP({height:e,scale:m,center:g,pitch:c,bearing:B,altitude:r}),this.width=j,this.height=e,this.scale=m,this.latitude=i,this.longitude=o,this.zoom=l,this.pitch=c,this.bearing=B,this.altitude=r,this.fovy=n,this.center=g,this.meterOffset=h||[0,0,0],this.distanceScales=$,this._initMatrices(),Object.freeze(this)}_initMatrices(){let{width:A,height:j,projectionMatrix:e,viewMatrix:r}=this,n=gf();By(n,n,e),By(n,n,r),this.viewProjectionMatrix=n;let i=gf();fy(i,i,[A/2,-j/2,1]),Jk(i,i,[1,-1,0]),By(i,i,n);let o=XD(gf(),i);if(!o)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=i,this.pixelUnprojectionMatrix=o}projectFlat(A){return qs(A)}unprojectFlat(A){return Oo(A)}getMapCenterByLngLatPosition({lngLat:A,pos:j}){let e=Wy(j,this.pixelUnprojectionMatrix),r=qs(A),n=y1([],r,CD([],e)),i=y1([],this.center,n);return Oo(i)}fitBounds(A,j={}){let{width:e,height:r}=this,{longitude:n,latitude:i,zoom:o}=Yy(Object.assign({width:e,height:r,bounds:A},j));return new t({width:e,height:r,longitude:n,latitude:i,zoom:o})}getBounds(A){let j=this.getBoundingRegion(A),e=Math.min(...j.map(o=>o[0])),r=Math.max(...j.map(o=>o[0])),n=Math.min(...j.map(o=>o[1])),i=Math.max(...j.map(o=>o[1]));return[[e,n],[r,i]]}getBoundingRegion(A={}){return Jy(this,A.z||0)}getLocationAtPoint({lngLat:A,pos:j}){return this.getMapCenterByLngLatPosition({lngLat:A,pos:j})}};function o3(t,A,j){let e=t.indexOf(A);return e<0?t:t.slice(0,e)+j+t.slice(e)}var $f=class extends q6{renderLayers(){let{id:A,getFillColor:j,getStrokeColor:e,getInnerRadius:r,updateTriggers:n}=this.props;return[new ln({...this.props,id:`${A}-full`,data:this.props.data,getLineColor:e,updateTriggers:{...n,getStrokeColor:n.getStrokeColor}}),new ln({...this.props,id:`${A}-inner`,data:this.props.data,getFillColor:j,getRadius:r,pickable:!1,updateTriggers:{...n,getFillColor:n.getFillColor,getRadius:n.getInnerRadius}})]}};P($f,"layerName","JunctionScatterplotLayer"),P($f,"defaultProps",{...ln.defaultProps,getFillColor:A=>[0,0,0,255],getStrokeColor:A=>[255,255,255,255],getInnerRadius:A=>1});var n6t={[Xc.NONE]:{forward:!1,backward:!1},[Xc.FORWARD]:{forward:!0,backward:!1},[Xc.BACKWARD]:{forward:!1,backward:!0},[Xc.BOTH]:{forward:!0,backward:!0}};var u3=Ws(Ny(),1);var Xn=63710088e-1,h6t={centimeters:Xn*100,centimetres:Xn*100,degrees:Xn/111325,feet:Xn*3.28084,inches:Xn*39.37,kilometers:Xn/1e3,kilometres:Xn/1e3,meters:Xn,metres:Xn,miles:Xn/1609.344,millimeters:Xn*1e3,millimetres:Xn*1e3,nauticalmiles:Xn/1852,radians:1,yards:Xn*1.0936},d6t={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Xn,yards:1.0936133};function a3(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function l3(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return a3(o,A,j)}function c3(t,A,j){j===void 0&&(j={});var e={type:"MultiPolygon",coordinates:t};return a3(e,A,j)}function gP(t){return t.type==="Feature"?t.geometry:t}function UcA(t,A,j){j===void 0&&(j={});var e=gP(t),r=gP(A),n=u3.default.union(e.coordinates,r.coordinates);return n.length===0?null:n.length===1?l3(n[0],j.properties):c3(n,j.properties)}var B3=UcA;var zn=63710088e-1,y6t={centimeters:zn*100,centimetres:zn*100,degrees:zn/111325,feet:zn*3.28084,inches:zn*39.37,kilometers:zn/1e3,kilometres:zn/1e3,meters:zn,metres:zn,miles:zn/1609.344,millimeters:zn*1e3,millimetres:zn*1e3,nauticalmiles:zn/1852,radians:1,yards:zn*1.0936},v6t={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/zn,yards:1.0936133};function f3(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function h3(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return f3(o,A,j)}function d3(t,A,j){j===void 0&&(j={});var e={type:"MultiPolygon",coordinates:t};return f3(e,A,j)}function mP(t){return t.type==="Feature"?t.geometry:t}var p3=Ws(Ny(),1);function EP(t,A,j){j===void 0&&(j={});var e=mP(t),r=mP(A),n=p3.default.intersection(e.coordinates,r.coordinates);return n.length===0?null:n.length===1?h3(n[0],j.properties):d3(n,j.properties)}function VcA(t){if(!t)throw new Error("geojson is required");switch(t.type){case"Feature":return k3(t);case"FeatureCollection":return QcA(t);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return $P(t);default:throw new Error("unknown GeoJSON type")}}function k3(t){var A={type:"Feature"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"properties":case"geometry":return;default:A[j]=t[j]}}),A.properties=g3(t.properties),A.geometry=$P(t.geometry),A}function g3(t){var A={};return t&&Object.keys(t).forEach(function(j){var e=t[j];typeof e=="object"?e===null?A[j]=null:Array.isArray(e)?A[j]=e.map(function(r){return r}):A[j]=g3(e):A[j]=e}),A}function QcA(t){var A={type:"FeatureCollection"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"features":return;default:A[j]=t[j]}}),A.features=t.features.map(function(j){return k3(j)}),A}function $P(t){var A={type:t.type};return t.bbox&&(A.bbox=t.bbox),t.type==="GeometryCollection"?(A.geometries=t.geometries.map(function(j){return $P(j)}),A):(A.coordinates=m3(t.coordinates),A)}function m3(t){var A=t;return typeof A[0]!="object"?A.slice():A.map(function(j){return m3(j)})}var Av=VcA;function E3(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function bs(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function tv(t){return t.type==="Feature"?t.geometry:t}function d0(t){for(var A=bs(t),j=0,e=1,r,n;e<A.length;)r=n||A[0],n=A[e],j+=(n[0]-r[0])*(n[1]+r[1]),e++;return j>0}function p0(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(p0(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function xP(t,A){if(t.type==="Feature")A(t,0);else if(t.type==="FeatureCollection")for(var j=0;j<t.features.length&&A(t.features[j],j)!==!1;j++);}function k0(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function $3(t,A,j){var e=j;return k0(t,function(r,n,i,o,l){n===0&&j===void 0?e=r:e=A(e,r,n,i,o,l)}),e}function x3(t,A){k0(t,function(j,e,r,n,i){var o=j===null?null:j.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(A0(j,r,{bbox:n,id:i}),e,0)===!1?!1:void 0}var l;switch(o){case"MultiPoint":l="Point";break;case"MultiLineString":l="LineString";break;case"MultiPolygon":l="Polygon";break}for(var c=0;c<j.coordinates.length;c++){var B=j.coordinates[c],h={type:l,coordinates:B};if(A(A0(h,r),e,c)===!1)return!1}})}function WcA(t,A){if(A=A||{},!G1(A))throw new Error("options is invalid");var j=A.reverse||!1,e=A.mutate||!1;if(!t)throw new Error("<geojson> is required");if(typeof j!="boolean")throw new Error("<reverse> must be a boolean");if(typeof e!="boolean")throw new Error("<mutate> must be a boolean");e===!1&&(t=Av(t));var r=[];switch(t.type){case"GeometryCollection":return k0(t,function(n){jv(n,j)}),t;case"FeatureCollection":return xP(t,function(n){xP(jv(n,j),function(i){r.push(i)})}),za(r)}return jv(t,j)}function jv(t,A){var j=t.type==="Feature"?t.geometry.type:t.type;switch(j){case"GeometryCollection":return k0(t,function(e){jv(e,A)}),t;case"LineString":return y3(bs(t),A),t;case"Polygon":return v3(bs(t),A),t;case"MultiLineString":return bs(t).forEach(function(e){y3(e,A)}),t;case"MultiPolygon":return bs(t).forEach(function(e){v3(e,A)}),t;case"Point":case"MultiPoint":return t}}function y3(t,A){d0(t)===A&&t.reverse()}function v3(t,A){d0(t[0])!==A&&t[0].reverse();for(var j=1;j<t.length;j++)d0(t[j])===A&&t[j].reverse()}var _3=WcA;function ev(t,A,j){if(!Array.isArray(t[0]))return!0;for(let e=0;e<t.length;e++)if(ev(t[e],[...A,e],j)){j(t,A);break}return!1}function Va(t,A,j){let e={type:"LineString",coordinates:[t,A]},r=Xt(j),n=cP(r,e),i=Fj(t,A),l=(j[0]-t[0])*(A[1]-t[1])-(j[1]-t[1])*(A[0]-t[0])<0?i-90:i-270,c=Er(A,n,l),B=Er(t,n,l);return[c.geometry.coordinates,B.geometry.coordinates]}function q3(t,A,j,e){let r=t-j,n=A-e;return Math.sqrt(r*r+n*n)}function YcA(t,A,j){return A*j+t*(1-j)}function vP(t,A,j){let e=new Si(j),n=t.geometry.coordinates.map(([S,w,K=0])=>e.project([S,w,K])),[i,o]=e.project(A.geometry.coordinates),l=1/0,c={};n.forEach(([S,w],K)=>{if(K===0)return;let[C,U]=n[K-1],T=U-w,Y=S-C,L=C*w-S*U,nA=T*T+Y*Y,M=Math.abs(T*i+Y*o+L)/Math.sqrt(nA);M<l&&(l=M,c={index:K,x0:(Y*(Y*i-T*o)-T*L)/nA,y0:(T*(-Y*i+T*o)-Y*L)/nA})});let{index:B,x0:h,y0:d}=c,[k,m,$=0]=n[B-1],[g,y,b=0]=n[B],v=q3(k,m,g,y),G=q3(k,m,h,d)/v,x=YcA($,b,G);return{type:"Feature",geometry:{type:"Point",coordinates:e.unproject([h,d,x])},properties:{dist:l,index:B-1}}}function b3(t,A,j){let e;j&&(e=new Si(j));let r=Xt([1/0,1/0],{dist:1/0});return!t.geometry?.coordinates.length||t.geometry?.coordinates.length<2||x3(t,n=>{let i=bs(n),o=bs(A),l,c,B,h,d,k,m;if(i.length>1&&o.length){let g,y;e?(g=i.map(q=>e.project(q)),y=e.project(o)):(g=i,y=o);for(let q=1;q<g.length;q++){if(g[q][0]!==g[q-1][0]){let C=(g[q][1]-g[q-1][1])/(g[q][0]-g[q-1][0]),U=g[q][1]-C*g[q][0];m=Math.abs(C*y[0]+U-y[1])/Math.sqrt(C*C+1)}else m=Math.abs(y[0]-g[q][0]);let G=Math.pow(g[q][1]-g[q-1][1],2)+Math.pow(g[q][0]-g[q-1][0],2),x=Math.pow(g[q][1]-y[1],2)+Math.pow(g[q][0]-y[0],2),S=Math.pow(g[q-1][1]-y[1],2)+Math.pow(g[q-1][0]-y[0],2),w=Math.pow(m,2),K=x-w+S-w;K>G&&(m=Math.sqrt(Math.min(x,S))),(l==null||l>m)&&(K>G?S<x?(c=0,B=1):(B=0,c=1):(c=Math.sqrt(S-w)/Math.sqrt(G),B=Math.sqrt(x-w)/Math.sqrt(G)),l=m,k=q)}let b=g[k-1][0]-g[k][0],v=g[k-1][1]-g[k][1];h=g[k-1][0]-b*c,d=g[k-1][1]-v*c}let $={x:h,y:d,idx:k-1,to:c,from:B};if(e){let g=e.unproject([$.x,$.y]);$={x:g[0],y:g[1],idx:k-1,to:c,from:B}}r=Xt([$.x,$.y],{dist:Math.abs($.from-$.to),index:$.idx})}),r}function te(t){let A=To(t);return A.length?A[0]:null}function G3(t){return To(t).find(j=>j.properties.editHandleType==="snap-source")}function w3(t){return t&&t.filter(A=>!A.isGuide)}function _P(t){return To(t).find(({properties:j})=>j.featureIndex>=0&&j.editHandleType==="existing")}function g0(t){return To(t).find(({properties:j})=>j.featureIndex>=0&&j.editHandleType==="intermediate")}function To(t){return t&&t.filter(j=>j.isGuide&&j.object.properties.guideType==="editHandle").map(j=>j.object)||[]}function Bl(t,A,j="existing"){let e=[];switch(t.type){case"Point":e=[{type:"Feature",properties:{guideType:"editHandle",editHandleType:j,positionIndexes:[],featureIndex:A},geometry:{type:"Point",coordinates:t.coordinates}}];break;case"MultiPoint":case"LineString":e=e.concat(yP(t.coordinates,[],A,j));break;case"Polygon":case"MultiLineString":for(let r=0;r<t.coordinates.length;r++)e=e.concat(yP(t.coordinates[r],[r],A,j)),t.type==="Polygon"&&(e=e.slice(0,-1));break;case"MultiPolygon":for(let r=0;r<t.coordinates.length;r++)for(let n=0;n<t.coordinates[r].length;n++)e=e.concat(yP(t.coordinates[r][n],[r,n],A,j)),e=e.slice(0,-1);break;default:throw Error(`Unhandled geometry type: ${t.type}`)}return e}function yP(t,A,j,e="existing"){let r=[];for(let n=0;n<t.length;n++){let i=t[n];r.push({type:"Feature",properties:{guideType:"editHandle",positionIndexes:[...A,n],featureIndex:j,editHandleType:e},geometry:{type:"Point",coordinates:i}})}return r}function F3(t,A,j){let e=t.geometry.coordinates;if(!e)return null;let r=e[0].slice(0,4);r[A%4]=j;let n=r[(A+2)%4],i=r[A%4];return r[(A+1)%4]=[i[0],n[1]],r[(A+3)%4]=[n[0],i[1]],[[...r,r[0]]]}function m0(t,A){return typeof t[0]=="number"?!isNaN(t[0])&&isFinite(t[0])?A(t):t:t.map(j=>m0(j,A)).filter(Boolean)}var Pj=class t{constructor(A){P(this,"featureCollection");this.featureCollection=A}getObject(){return this.featureCollection}replacePosition(A,j,e){let r=this.featureCollection.features[A].geometry,n=r.type==="Polygon"||r.type==="MultiPolygon",i={...r,coordinates:P3(r.coordinates,j,e,n)};return this.replaceGeometry(A,i)}removePosition(A,j){let e=this.featureCollection.features[A].geometry;if(e.type==="Point")throw Error("Can't remove a position from a Point or there'd be nothing left");if(e.type==="MultiPoint"&&e.coordinates.length<2)throw Error("Can't remove the last point of a MultiPoint or there'd be nothing left");if(e.type==="LineString"&&e.coordinates.length<3)throw Error("Can't remove position. LineString must have at least two positions");if(e.type==="Polygon"&&e.coordinates[0].length<5&&Array.isArray(j)&&j[0]===0)throw Error("Can't remove position. Polygon's outer ring must have at least four positions");if(e.type==="MultiLineString"&&e.coordinates.length===1&&e.coordinates[0].length<3)throw Error("Can't remove position. MultiLineString must have at least two positions");if(e.type==="MultiPolygon"&&e.coordinates.length===1&&e.coordinates[0][0].length<5&&Array.isArray(j)&&j[0]===0&&j[1]===0)throw Error("Can't remove position. MultiPolygon's outer ring must have at least four positions");let r=e.type==="Polygon"||e.type==="MultiPolygon",n={...e,coordinates:I3(e.coordinates,j,r)};return JcA(n),this.replaceGeometry(A,n)}addPosition(A,j,e){let r=this.featureCollection.features[A].geometry;if(r.type==="Point")throw new Error("Unable to add a position to a Point feature");let n=r.type==="Polygon"||r.type==="MultiPolygon",i={...r,coordinates:M3(r.coordinates,j,e,n)};return this.replaceGeometry(A,i)}replaceGeometry(A,j){let e={...this.featureCollection.features[A],geometry:j},r={...this.featureCollection,features:[...this.featureCollection.features.slice(0,A),e,...this.featureCollection.features.slice(A+1)]};return new t(r)}addFeature(A){return this.addFeatures([A])}addFeatures(A){let j={...this.featureCollection,features:[...this.featureCollection.features,...A]};return new t(j)}deleteFeature(A){return this.deleteFeatures([A])}deleteFeatures(A){let j=[...this.featureCollection.features];A.sort();for(let r=A.length-1;r>=0;r--){let n=A[r];n>=0&&n<j.length&&j.splice(n,1)}let e={...this.featureCollection,features:j};return new t(e)}};function rv(t,A){if(t.length===2&&A.length===3){let j=A[2];return[t[0],t[1],j]}return t}function P3(t,A,j,e){if(!A)return t;if(A.length===0)return rv(j,t);if(A.length===1){let r=[...t.slice(0,A[0]),rv(j,t[A[0]]),...t.slice(A[0]+1)];return e&&(A[0]===0||A[0]===t.length-1)&&(r[0]=rv(j,t[0]),r[t.length-1]=rv(j,t[0])),r}return[...t.slice(0,A[0]),P3(t[A[0]],A.slice(1,A.length),j,e),...t.slice(A[0]+1)]}function I3(t,A,j){if(!A)return t;if(A.length===0)throw Error("Must specify the index of the position to remove");if(A.length===1){let e=[...t.slice(0,A[0]),...t.slice(A[0]+1)];return j&&(A[0]===0||A[0]===t.length-1)&&(A[0]===0?e[e.length-1]=e[0]:A[0]===t.length-1&&(e[0]=e[e.length-1])),e}return[...t.slice(0,A[0]),I3(t[A[0]],A.slice(1,A.length),j),...t.slice(A[0]+1)]}function M3(t,A,j,e){if(!A)return t;if(A.length===0)throw Error("Must specify the index of the position to remove");return A.length===1?[...t.slice(0,A[0]),j,...t.slice(A[0])]:[...t.slice(0,A[0]),M3(t[A[0]],A.slice(1,A.length),j,e),...t.slice(A[0]+1)]}function JcA(t){switch(t.type){case"Polygon":ZcA(t);break;case"MultiLineString":AuA(t);break;case"MultiPolygon":tuA(t);break;default:break}}function ZcA(t){let A=t.coordinates;for(let j=1;j<A.length;j++)O3(A,j)&&j--}function AuA(t){for(let A=0;A<t.coordinates.length;A++)t.coordinates[A].length===1&&(t.coordinates.splice(A,1),A--)}function tuA(t){for(let A=0;A<t.coordinates.length;A++){let j=t.coordinates[A];j[0].length<=3&&(t.coordinates.splice(A,1),A--);for(let r=1;r<j.length;r++)O3(j,r)&&r--}}function O3(t,A){return t[A].length<=3?(t.splice(A,1),!0):!1}var juA={type:"FeatureCollection",features:[]},euA=[],Qt=class{constructor(){P(this,"_clickSequence",[])}getGuides(A){return juA}getTooltips(A){return euA}getSelectedFeature(A){return A.selectedIndexes.length===1?A.data.features[A.selectedIndexes[0]]:null}getSelectedGeometry(A){let j=this.getSelectedFeature(A);return j?j.geometry:null}getSelectedFeaturesAsFeatureCollection(A){let{features:j}=A.data;return{type:"FeatureCollection",features:A.selectedIndexes.map(r=>j[r])}}getClickSequence(){return this._clickSequence}addClickSequence({mapCoords:A}){this._clickSequence.push(A)}resetClickSequence(){this._clickSequence=[]}getTentativeGuide(A){return this.getGuides(A).features.find(e=>e.properties&&e.properties.guideType==="tentative")}isSelectionPicked(A,j){if(!A.length)return!1;let e=w3(A).map(({index:i})=>i),r=To(A).map(({properties:i})=>i.featureIndex),n=new Set([...e,...r]);return j.selectedIndexes.some(i=>n.has(i))}rewindPolygon(A){let{geometry:j}=A;return j.type==="Polygon"||j.type==="MultiPolygon"?_3(A):A}getAddFeatureAction(A,j){let e=A,r=e.type==="Feature"?e:{type:"Feature",properties:{},geometry:e},n=this.rewindPolygon(r),i=new Pj(j).addFeature(n).getObject();return{updatedData:i,editType:"addFeature",editContext:{featureIndexes:[i.features.length-1]}}}getAddManyFeaturesAction({features:A},j){let e=new Pj(j),r=e.getObject().features.length,n=[];for(let i of A){let{properties:o,geometry:l}=i,c=l;e=e.addFeature({type:"Feature",properties:o,geometry:c}),n.push(r+n.length)}return{updatedData:e.getObject(),editType:"addFeature",editContext:{featureIndexes:n}}}getAddFeatureOrBooleanPolygonAction(A,j){let e=A,r=this.getSelectedFeature(j),{modeConfig:n}=j;if(n&&n.booleanOperation){if(!r||r.geometry.type!=="Polygon"&&r.geometry.type!=="MultiPolygon")return console.warn("booleanOperation only supported for single Polygon or MultiPolygon selection"),null;let i=e.type==="Feature"?e:{type:"Feature",geometry:e},o;if(n.booleanOperation==="union")o=B3(r,i);else if(n.booleanOperation==="difference")o=kf(r,i);else if(n.booleanOperation==="intersection")o=EP(r,i);else return console.warn(`Invalid booleanOperation ${n.booleanOperation}`),null;if(!o)return console.warn("Canceling edit. Boolean operation erased entire polygon."),null;let l=j.selectedIndexes[0];return{updatedData:new Pj(j.data).replaceGeometry(l,o.geometry).getObject(),editType:"unionGeometry",editContext:{featureIndexes:[l]}}}return this.getAddFeatureAction(A,j.data)}createTentativeFeature(A){return null}handleClick(A,j){}handlePointerMove(A,j){let e=this.createTentativeFeature(j);e&&j.onEdit({updatedData:j.data,editType:"updateTentativeFeature",editContext:{feature:e}})}handleStartDragging(A,j){}handleStopDragging(A,j){}handleDragging(A,j){}handleKeyUp(A,j){A.key==="Escape"&&(this.resetClickSequence(),j.onEdit({updatedData:j.data,editType:"cancelFeature",editContext:{}}))}};function fl(t,A){return[(t[0]+A[0])/2,(t[1]+A[1])/2]}var Dr=class extends Qt{};var Un=63710088e-1,uit={centimeters:Un*100,centimetres:Un*100,degrees:Un/111325,feet:Un*3.28084,inches:Un*39.37,kilometers:Un/1e3,kilometres:Un/1e3,meters:Un,metres:Un,miles:Un/1609.344,millimeters:Un*1e3,millimetres:Un*1e3,nauticalmiles:Un/1852,radians:1,yards:Un*1.0936},Bit={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Un,yards:1.0936133};function T3(t){var A=t%(2*Math.PI);return A*180/Math.PI}function nv(t){var A=t%360;return A*Math.PI/180}function E0(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function ruA(t,A,j){j===void 0&&(j={});var e;j.final?e=S3(E0(A),E0(t)):e=S3(E0(t),E0(A));var r=e>180?-(360-e):e;return r}function S3(t,A){var j=nv(t[1]),e=nv(A[1]),r=nv(A[0]-t[0]);r>Math.PI&&(r-=2*Math.PI),r<-Math.PI&&(r+=2*Math.PI);var n=Math.log(Math.tan(e/2+Math.PI/4)/Math.tan(j/2+Math.PI/4)),i=Math.atan2(r,n);return(T3(i)+360)%360}var xf=ruA;var Nr=63710088e-1,R3={centimeters:Nr*100,centimetres:Nr*100,degrees:Nr/111325,feet:Nr*3.28084,inches:Nr*39.37,kilometers:Nr/1e3,kilometres:Nr/1e3,meters:Nr,metres:Nr,miles:Nr/1609.344,millimeters:Nr*1e3,millimetres:Nr*1e3,nauticalmiles:Nr/1852,radians:1,yards:Nr*1.0936},Eit={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Nr,yards:1.0936133};function nuA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function L3(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!qP(t[0])||!qP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return nuA(e,A,j)}function iuA(t,A){A===void 0&&(A="kilometers");var j=R3[A];if(!j)throw new Error(A+" units is invalid");return t*j}function ouA(t,A){A===void 0&&(A="kilometers");var j=R3[A];if(!j)throw new Error(A+" units is invalid");return t/j}function bP(t){var A=t%360;return A*Math.PI/180}function C3(t,A,j){if(A===void 0&&(A="kilometers"),j===void 0&&(j="kilometers"),!(t>=0))throw new Error("length must be a positive number");return iuA(ouA(t,A),j)}function qP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function H3(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function suA(t,A,j,e){e===void 0&&(e={});var r=A<0,n=C3(Math.abs(A),e.units,"meters");r&&(n=-Math.abs(n));var i=H3(t),o=auA(i,n,j);return o[0]+=o[0]-i[0]>180?-360:i[0]-o[0]>180?360:0,L3(o,e.properties)}function auA(t,A,j,e){e=e===void 0?Nr:Number(e);var r=A/e,n=t[0]*Math.PI/180,i=bP(t[1]),o=bP(j),l=r*Math.cos(o),c=i+l;Math.abs(c)>Math.PI/2&&(c=c>0?Math.PI-c:-Math.PI-c);var B=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(i/2+Math.PI/4)),h=Math.abs(B)>1e-11?l/B:Math.cos(i),d=r*Math.sin(o)/h,k=n+d;return[(k*180/Math.PI+540)%360-180,c*180/Math.PI]}var Gs=suA;function D3(t,A,j){let e=ol(t),r=Gs(e,A,j),n=m0(t.geometry.coordinates,i=>{let o=cl(e.geometry.coordinates,i),l=xf(e.geometry.coordinates,i);return Gs(r.geometry.coordinates,o,l).geometry.coordinates});return t.geometry.coordinates=n,t}var ws=class extends Qt{constructor(){super(...arguments);P(this,"_geometryBeforeTranslate");P(this,"_isTranslatable")}handleDragging(j,e){if(this._isTranslatable){if(this._geometryBeforeTranslate){let r=this.getTranslateAction(j.pointerDownMapCoords,j.mapCoords,"translating",e);r&&e.onEdit(r)}j.cancelPan()}}handlePointerMove(j,e){this._isTranslatable=this.isSelectionPicked(j.pointerDownPicks||j.picks,e),this.updateCursor(e)}handleStartDragging(j,e){this._isTranslatable&&(this._geometryBeforeTranslate=this.getSelectedFeaturesAsFeatureCollection(e))}handleStopDragging(j,e){if(this._geometryBeforeTranslate){let r=this.getTranslateAction(j.pointerDownMapCoords,j.mapCoords,"translated",e);r&&e.onEdit(r),this._geometryBeforeTranslate=null}}updateCursor(j){this._isTranslatable?j.onUpdateCursor("move"):j.onUpdateCursor(null)}getTranslateAction(j,e,r,n){if(!this._geometryBeforeTranslate)return null;let i=new Pj(n.data),o=n.selectedIndexes,{viewport:l,screenSpace:c}=n.modeConfig||{};if(l&&c){let B=l.project?l:new Si(l),h=B.project(j),d=B.project(e),k=d[0]-h[0],m=d[1]-h[1];for(let $=0;$<o.length;$++){let g=o[$],y=this._geometryBeforeTranslate.features[$],b=y.geometry.coordinates;b&&(b=m0(b,v=>{let q=B.project(v);return q?(q[0]+=k,q[1]+=m,B.unproject(q)):null}),i=i.replaceGeometry(g,{type:y.geometry.type,coordinates:b}))}}else{let B=Xt(j),h=Xt(e),d=yt(B,h),k=Fj(B,h),m=this._geometryBeforeTranslate.features.map($=>D3(Av($),d,k));for(let $=0;$<o.length;$++){let g=o[$],y=m[$];i=i.replaceGeometry(g,y.geometry)}}return{updatedData:i.getObject(),editType:r,editContext:{featureIndexes:o}}}};var So=class extends Qt{getGuides(A){let j=[],{data:e,lastPointerMoveEvent:r}=A,{features:n}=e,i=r&&r.picks,o=r&&r.mapCoords;for(let l of A.selectedIndexes)if(l<n.length){let{geometry:c}=n[l];j.push(...Bl(c,l))}else console.warn(`selectedFeatureIndexes out of range ${l}`);if(i&&i.length&&o){let c=!_P(i)&&i.find(B=>!B.isGuide);if(c&&!c.object.geometry.type.includes("Point")&&!(A.modeConfig?.lockRectangles&&c.object.properties.shape==="Rectangle")&&A.selectedIndexes.includes(c.index)){let B=null,h=[],d=Xt(o);if(ev(c.object.geometry.coordinates,[],(k,m)=>{let $=gr(k),g=this.getNearestPoint($,d,A.modeConfig&&A.modeConfig.viewport);(!B||g.properties.dist<B.properties.dist)&&(B=g,h=m)}),B){let{geometry:{coordinates:k},properties:{index:m}}=B;j.push({type:"Feature",properties:{guideType:"editHandle",editHandleType:"intermediate",featureIndex:c.index,positionIndexes:[...h,m+1]},geometry:{type:"Point",coordinates:k}})}}}return{type:"FeatureCollection",features:j}}getNearestPoint(A,j,e){let{coordinates:r}=A.geometry;if(r.some(n=>n.length>2)){if(e)return vP(A,j,e);console.log("Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.")}return b3(A,j,e)}handleClick(A,j){let e=_P(A.picks),r=g0(A.picks);if(e){let{featureIndex:n,positionIndexes:i}=e.properties,o;try{o=new Pj(j.data).removePosition(n,i).getObject()}catch{}o&&j.onEdit({updatedData:o,editType:"removePosition",editContext:{featureIndexes:[n],positionIndexes:i,position:e.geometry.coordinates}})}else if(r){let{featureIndex:n,positionIndexes:i}=r.properties,o=j.data.features[n];if(!(j.modeConfig?.lockRectangles&&o?.properties.shape==="Rectangle")){let c=new Pj(j.data).addPosition(n,i,r.geometry.coordinates).getObject();c&&j.onEdit({updatedData:c,editType:"addPosition",editContext:{featureIndexes:[n],positionIndexes:i,position:r.geometry.coordinates}})}}}handleDragging(A,j){let e=te(A.pointerDownPicks);e&&(A.cancelPan(),this._dragEditHandle("movePosition",j,e,A))}_dragEditHandle(A,j,e,r){let n=e.properties,i=j.data.features[n.featureIndex],o;if(j.modeConfig?.lockRectangles&&i.properties.shape==="Rectangle"){let l=F3(i,n.positionIndexes[1],r.mapCoords);o=new Pj(j.data).replaceGeometry(n.featureIndex,{coordinates:l,type:"Polygon"}).getObject()}else o=new Pj(j.data).replacePosition(n.featureIndex,n.positionIndexes,r.mapCoords).getObject();j.onEdit({updatedData:o,editType:A,editContext:{featureIndexes:[n.featureIndex],positionIndexes:n.positionIndexes,position:r.mapCoords}})}handlePointerMove(A,j){let e=this.getCursor(A);j.onUpdateCursor(e)}handleStartDragging(A,j){let e=j.selectedIndexes,r=g0(A.picks);if(e.length&&r){let n=r.properties,i=new Pj(j.data).addPosition(n.featureIndex,n.positionIndexes,A.mapCoords).getObject();j.onEdit({updatedData:i,editType:"addPosition",editContext:{featureIndexes:[n.featureIndex],positionIndexes:n.positionIndexes,position:A.mapCoords}})}}handleStopDragging(A,j){let e=j.selectedIndexes,r=te(A.picks);e.length&&r&&this._dragEditHandle("finishMovePosition",j,r,A)}getCursor(A){let j=A&&A.picks||[];return To(j).length?"cell":null}};var Vn=63710088e-1,Wit={centimeters:Vn*100,centimetres:Vn*100,degrees:Vn/111325,feet:Vn*3.28084,inches:Vn*39.37,kilometers:Vn/1e3,kilometres:Vn/1e3,meters:Vn,metres:Vn,miles:Vn/1609.344,millimeters:Vn*1e3,millimetres:Vn*1e3,nauticalmiles:Vn/1852,radians:1,yards:Vn*1.0936},Yit={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Vn,yards:1.0936133};function K3(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function GP(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!N3(t[0])||!N3(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return K3(e,A,j)}function N3(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function wP(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(wP(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function luA(t,A){A===void 0&&(A={});var j=0,e=0,r=0;return wP(t,function(n){j+=n[0],e+=n[1],r++},!0),GP([j/r,e/r],A.properties)}var Fs=luA;var Qn=63710088e-1,iot={centimeters:Qn*100,centimetres:Qn*100,degrees:Qn/111325,feet:Qn*3.28084,inches:Qn*39.37,kilometers:Qn/1e3,kilometres:Qn/1e3,meters:Qn,metres:Qn,miles:Qn/1609.344,millimeters:Qn*1e3,millimetres:Qn*1e3,nauticalmiles:Qn/1852,radians:1,yards:Qn*1.0936},oot={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Qn,yards:1.0936133};function X3(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function z3(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return X3(e,A,j)}function U3(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function V3(t,A,j){j===void 0&&(j={});var e={type:"MultiLineString",coordinates:t};return X3(e,A,j)}function iv(t){return t.type==="Feature"?t.geometry:t}function yf(t,A){A===void 0&&(A={});var j=iv(t);switch(!A.properties&&t.type==="Feature"&&(A.properties=t.properties),j.type){case"Polygon":return cuA(j,A);case"MultiPolygon":return uuA(j,A);default:throw new Error("invalid poly")}}function cuA(t,A){A===void 0&&(A={});var j=iv(t),e=j.coordinates,r=A.properties?A.properties:t.type==="Feature"?t.properties:{};return Q3(e,r)}function uuA(t,A){A===void 0&&(A={});var j=iv(t),e=j.coordinates,r=A.properties?A.properties:t.type==="Feature"?t.properties:{},n=[];return e.forEach(function(i){n.push(Q3(i,r))}),U3(n)}function Q3(t,A){return t.length>1?V3(t,A):z3(t[0],A)}function BuA(t){if(!t)throw new Error("geojson is required");switch(t.type){case"Feature":return W3(t);case"FeatureCollection":return fuA(t);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return FP(t);default:throw new Error("unknown GeoJSON type")}}function W3(t){var A={type:"Feature"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"properties":case"geometry":return;default:A[j]=t[j]}}),A.properties=Y3(t.properties),A.geometry=FP(t.geometry),A}function Y3(t){var A={};return t&&Object.keys(t).forEach(function(j){var e=t[j];typeof e=="object"?e===null?A[j]=null:Array.isArray(e)?A[j]=e.map(function(r){return r}):A[j]=Y3(e):A[j]=e}),A}function fuA(t){var A={type:"FeatureCollection"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"features":return;default:A[j]=t[j]}}),A.features=t.features.map(function(j){return W3(j)}),A}function FP(t){var A={type:t.type};return t.bbox&&(A.bbox=t.bbox),t.type==="GeometryCollection"?(A.geometries=t.geometries.map(function(j){return FP(j)}),A):(A.coordinates=J3(t.coordinates),A)}function J3(t){var A=t;return typeof A[0]!="object"?A.slice():A.map(function(j){return J3(j)})}var Z3=BuA;var Wn=63710088e-1,dot={centimeters:Wn*100,centimetres:Wn*100,degrees:Wn/111325,feet:Wn*3.28084,inches:Wn*39.37,kilometers:Wn/1e3,kilometres:Wn/1e3,meters:Wn,metres:Wn,miles:Wn/1609.344,millimeters:Wn*1e3,millimetres:Wn*1e3,nauticalmiles:Wn/1852,radians:1,yards:Wn*1.0936},pot={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Wn,yards:1.0936133};function AK(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function vf(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!PP(t[0])||!PP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return AK(e,A,j)}function PP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function IP(t){return!!t&&t.constructor===Object}function MP(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(MP(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function tK(t,A){if(t.type==="Feature")A(t,0);else if(t.type==="FeatureCollection")for(var j=0;j<t.features.length&&A(t.features[j],j)!==!1;j++);}function jK(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function eK(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function rK(t,A){return t.type==="FeatureCollection"?"FeatureCollection":t.type==="GeometryCollection"?"GeometryCollection":t.type==="Feature"&&t.geometry!==null?t.geometry.type:t.type}function huA(t,A,j){if(j=j||{},!IP(j))throw new Error("options is invalid");var e=j.origin,r=j.mutate;if(!t)throw new Error("geojson required");if(typeof A!="number"||A===0)throw new Error("invalid factor");var n=Array.isArray(e)||typeof e=="object";return r!==!0&&(t=Z3(t)),t.type==="FeatureCollection"&&!n?(tK(t,function(i,o){t.features[o]=nK(i,A,e)}),t):nK(t,A,e)}function nK(t,A,j){var e=rK(t)==="Point";return j=duA(t,j),A===1||e||MP(t,function(r){var n=cl(j,r),i=xf(j,r),o=n*A,l=eK(Gs(j,o,i));r[0]=l[0],r[1]=l[1],r.length===3&&(r[2]*=A)}),t}function duA(t,A){if(A==null&&(A="centroid"),Array.isArray(A)||typeof A=="object")return jK(A);var j=t.bbox?t.bbox:Ua(t),e=j[0],r=j[1],n=j[2],i=j[3];switch(A){case"sw":case"southwest":case"westsouth":case"bottomleft":return vf([e,r]);case"se":case"southeast":case"eastsouth":case"bottomright":return vf([n,r]);case"nw":case"northwest":case"westnorth":case"topleft":return vf([e,i]);case"ne":case"northeast":case"eastnorth":case"topright":return vf([n,i]);case"center":return ol(t);case void 0:case null:case"centroid":return Fs(t);default:throw new Error("invalid origin")}}var iK=huA;var Qa=class extends Qt{constructor(){super(...arguments);P(this,"_geometryBeingScaled");P(this,"_selectedEditHandle");P(this,"_cornerGuidePoints",[]);P(this,"_cursor");P(this,"_isScaling",!1);P(this,"_isSinglePointGeometrySelected",j=>{let{features:e}=j||{};if(Array.isArray(e)&&e.length===1){let{type:r}=tv(e[0]);return r==="Point"}return!1});P(this,"_getOppositeScaleHandle",j=>{let e=j&&j.properties&&Array.isArray(j.properties.positionIndexes)&&j.properties.positionIndexes[0];if(typeof e!="number")return null;let r=this._cornerGuidePoints.length,n=(e+r/2)%r;return this._cornerGuidePoints.find(i=>Array.isArray(i.properties.positionIndexes)?i.properties.positionIndexes[0]===n:!1)||null});P(this,"_getUpdatedData",(j,e)=>{let r=new Pj(j.data),n=j.selectedIndexes;for(let i=0;i<n.length;i++){let o=n[i],l=e.features[i];r=r.replaceGeometry(o,l.geometry)}return r.getObject()});P(this,"isEditHandleSelected",()=>!!this._selectedEditHandle);P(this,"getScaleAction",(j,e,r,n)=>{if(!this._selectedEditHandle)return null;let i=this._getOppositeScaleHandle(this._selectedEditHandle),o=E3(i),l=puA(o,j,e),c=iK(this._geometryBeingScaled,l,{origin:o});return{updatedData:this._getUpdatedData(n,c),editType:r,editContext:{featureIndexes:n.selectedIndexes}}});P(this,"updateCursor",j=>{if(this._selectedEditHandle){this._cursor&&j.onUpdateCursor(this._cursor);let e=this.getSelectedFeaturesAsFeatureCollection(j),r=Fs(e),n=Fj(r,this._selectedEditHandle),i=n<0?n+180:n;i>=0&&i<=90||i>=180&&i<=270?(this._cursor="nesw-resize",j.onUpdateCursor("nesw-resize")):(this._cursor="nwse-resize",j.onUpdateCursor("nwse-resize"))}else j.onUpdateCursor(null),this._cursor=null})}handlePointerMove(j,e){if(!this._isScaling){let r=te(j.picks);this._selectedEditHandle=r&&r.properties.editHandleType==="scale"?r:null,this.updateCursor(e)}}handleStartDragging(j,e){this._selectedEditHandle&&(this._isScaling=!0,this._geometryBeingScaled=this.getSelectedFeaturesAsFeatureCollection(e))}handleDragging(j,e){if(!this._isScaling)return;e.onUpdateCursor(this._cursor);let r=this.getScaleAction(j.pointerDownMapCoords,j.mapCoords,"scaling",e);r&&e.onEdit(r),j.cancelPan()}handleStopDragging(j,e){if(this._isScaling){let r=this.getScaleAction(j.pointerDownMapCoords,j.mapCoords,"scaled",e);r&&e.onEdit(r),e.onUpdateCursor(null),this._geometryBeingScaled=null,this._selectedEditHandle=null,this._cursor=null,this._isScaling=!1}}getGuides(j){this._cornerGuidePoints=[];let e=this.getSelectedFeaturesAsFeatureCollection(j);if(this._isSinglePointGeometrySelected(e))return{type:"FeatureCollection",features:[]};let r=cn(Ua(e));r.properties.mode="scale";let n=[];return p0(r,(i,o)=>{if(o<4){let l=Xt(i,{guideType:"editHandle",editHandleType:"scale",positionIndexes:[o]});n.push(l)}}),this._cornerGuidePoints=n,za([yf(r),...this._cornerGuidePoints])}};function puA(t,A,j){let e=yt(t,A);return yt(t,j)/e}function kuA(t){if(!t)throw new Error("geojson is required");switch(t.type){case"Feature":return oK(t);case"FeatureCollection":return guA(t);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return OP(t);default:throw new Error("unknown GeoJSON type")}}function oK(t){var A={type:"Feature"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"properties":case"geometry":return;default:A[j]=t[j]}}),A.properties=sK(t.properties),A.geometry=OP(t.geometry),A}function sK(t){var A={};return t&&Object.keys(t).forEach(function(j){var e=t[j];typeof e=="object"?e===null?A[j]=null:Array.isArray(e)?A[j]=e.map(function(r){return r}):A[j]=sK(e):A[j]=e}),A}function guA(t){var A={type:"FeatureCollection"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"features":return;default:A[j]=t[j]}}),A.features=t.features.map(function(j){return oK(j)}),A}function OP(t){var A={type:t.type};return t.bbox&&(A.bbox=t.bbox),t.type==="GeometryCollection"?(A.geometries=t.geometries.map(function(j){return OP(j)}),A):(A.coordinates=aK(t.coordinates),A)}function aK(t){var A=t;return typeof A[0]!="object"?A.slice():A.map(function(j){return aK(j)})}var lK=kuA;var Yn=63710088e-1,Yot={centimeters:Yn*100,centimetres:Yn*100,degrees:Yn/111325,feet:Yn*3.28084,inches:Yn*39.37,kilometers:Yn/1e3,kilometres:Yn/1e3,meters:Yn,metres:Yn,miles:Yn/1609.344,millimeters:Yn*1e3,millimetres:Yn*1e3,nauticalmiles:Yn/1852,radians:1,yards:Yn*1.0936},Jot={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Yn,yards:1.0936133};function TP(t){return!!t&&t.constructor===Object}function SP(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(SP(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function cK(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function muA(t,A,j){if(j=j||{},!TP(j))throw new Error("options is invalid");var e=j.pivot,r=j.mutate;if(!t)throw new Error("geojson is required");if(A==null||isNaN(A))throw new Error("angle is required");return A===0||(e||(e=Fs(t)),(r===!1||r===void 0)&&(t=lK(t)),SP(t,function(n){var i=xf(e,n),o=i+A,l=cl(e,n),c=cK(Gs(e,l,o));n[0]=c[0],n[1]=c[1]})),t}var ov=muA;var Wa=class extends Qt{constructor(){super(...arguments);P(this,"_selectedEditHandle");P(this,"_geometryBeingRotated");P(this,"_isRotating",!1);P(this,"_isSinglePointGeometrySelected",j=>{let{features:e}=j||{};if(Array.isArray(e)&&e.length===1){let{type:r}=tv(e[0]);return r==="Point"}return!1});P(this,"getIsRotating",()=>this._isRotating)}getGuides(j){let e=this._geometryBeingRotated||this.getSelectedFeaturesAsFeatureCollection(j);if(this._isSinglePointGeometrySelected(e))return{type:"FeatureCollection",features:[]};if(this._isRotating)return za([Fs(e)]);let r=cn(Ua(e)),n=null,i=null,o=0;p0(r,d=>{if(n){let k=fl(d,n);(!i||k[1]>i[1])&&(i=k);let m=yt(d,n);o=Math.max(o,m)}n=d});let l=i&&[i[0],i[1]+o/1e3],c=gr([i,l]),B=Xt(l,{guideType:"editHandle",editHandleType:"rotate"}),h=[yf(r),B,c];return za(h)}handleDragging(j,e){if(!this._isRotating)return;let r=this.getRotateAction(j.pointerDownMapCoords,j.mapCoords,"rotating",e);r&&e.onEdit(r),j.cancelPan()}handlePointerMove(j,e){if(!this._isRotating){let r=te(j.picks);this._selectedEditHandle=r&&r.properties.editHandleType==="rotate"?r:null}this.updateCursor(e)}handleStartDragging(j,e){this._selectedEditHandle&&(this._isRotating=!0,this._geometryBeingRotated=this.getSelectedFeaturesAsFeatureCollection(e))}handleStopDragging(j,e){if(this._isRotating){let r=this.getRotateAction(j.pointerDownMapCoords,j.mapCoords,"rotated",e);r&&e.onEdit(r),this._geometryBeingRotated=null,this._selectedEditHandle=null,this._isRotating=!1}}updateCursor(j){this._selectedEditHandle?j.onUpdateCursor("crosshair"):j.onUpdateCursor(null)}getRotateAction(j,e,r,n){if(!this._geometryBeingRotated)return null;let i=Fs(this._geometryBeingRotated),o=EuA(i,j,e),l=ov(this._geometryBeingRotated,o,{pivot:i}),c=new Pj(n.data),B=n.selectedIndexes;for(let h=0;h<B.length;h++){let d=B[h],k=l.features[h];c=c.replaceGeometry(d,k.geometry)}return{updatedData:c.getObject(),editType:r,editContext:{featureIndexes:B}}}};function EuA(t,A,j){let e=Fj(t,A);return Fj(t,j)-e}var $0=class extends ws{handleStartDragging(A,j){super.handleStartDragging(A,j),this._geometryBeforeTranslate&&j.onEdit(this.getAddManyFeaturesAction(this._geometryBeforeTranslate,j.data))}updateCursor(A){this._isTranslatable?A.onUpdateCursor("copy"):A.onUpdateCursor(null)}};var Jn=63710088e-1,Mst={centimeters:Jn*100,centimetres:Jn*100,degrees:Jn/111325,feet:Jn*3.28084,inches:Jn*39.37,kilometers:Jn/1e3,kilometres:Jn/1e3,meters:Jn,metres:Jn,miles:Jn/1609.344,millimeters:Jn*1e3,millimetres:Jn*1e3,nauticalmiles:Jn/1852,radians:1,yards:Jn*1.0936},Ost={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Jn,yards:1.0936133};function uK(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function BK(t){return t.type==="Feature"?t.geometry:t}function RP(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("point is required");if(!A)throw new Error("polygon is required");var e=uK(t),r=BK(A),n=r.type,i=A.bbox,o=r.coordinates;if(i&&$uA(e,i)===!1)return!1;n==="Polygon"&&(o=[o]);for(var l=!1,c=0;c<o.length&&!l;c++)if(fK(e,o[c][0],j.ignoreBoundary)){for(var B=!1,h=1;h<o[c].length&&!B;)fK(e,o[c][h],!j.ignoreBoundary)&&(B=!0),h++;B||(l=!0)}return l}function fK(t,A,j){var e=!1;A[0][0]===A[A.length-1][0]&&A[0][1]===A[A.length-1][1]&&(A=A.slice(0,A.length-1));for(var r=0,n=A.length-1;r<A.length;n=r++){var i=A[r][0],o=A[r][1],l=A[n][0],c=A[n][1],B=t[1]*(i-l)+o*(l-t[0])+c*(t[0]-i)===0&&(i-t[0])*(l-t[0])<=0&&(o-t[1])*(c-t[1])<=0;if(B)return!j;var h=o>t[1]!=c>t[1]&&t[0]<(l-i)*(t[1]-o)/(c-o)+i;h&&(e=!e)}return e}function $uA(t,A){return A[0]<=t[0]&&A[1]<=t[1]&&A[2]>=t[0]&&A[3]>=t[1]}var Zn=63710088e-1,Dst={centimeters:Zn*100,centimetres:Zn*100,degrees:Zn/111325,feet:Zn*3.28084,inches:Zn*39.37,kilometers:Zn/1e3,kilometres:Zn/1e3,meters:Zn,metres:Zn,miles:Zn/1609.344,millimeters:Zn*1e3,millimetres:Zn*1e3,nauticalmiles:Zn/1852,radians:1,yards:Zn*1.0936},Nst={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Zn,yards:1.0936133};function x0(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function CP(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!LP(t[0])||!LP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return x0(e,A,j)}function HP(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function LP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function sv(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}var A6=63710088e-1,Ust={centimeters:A6*100,centimetres:A6*100,degrees:A6/111325,feet:A6*3.28084,inches:A6*39.37,kilometers:A6/1e3,kilometres:A6/1e3,meters:A6,metres:A6,miles:A6/1609.344,millimeters:A6*1e3,millimetres:A6*1e3,nauticalmiles:A6/1852,radians:1,yards:A6*1.0936},Vst={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/A6,yards:1.0936133};function av(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function DP(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return av(e,A,j)}function hK(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function NP(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function xuA(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function dK(t,A){xuA(t,function(j,e,r,n,i){var o=j===null?null:j.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(av(j,r,{bbox:n,id:i}),e,0)===!1?!1:void 0}var l;switch(o){case"MultiPoint":l="Point";break;case"MultiLineString":l="LineString";break;case"MultiPolygon":l="Polygon";break}for(var c=0;c<j.coordinates.length;c++){var B=j.coordinates[c],h={type:l,coordinates:B};if(A(av(h,r),e,c)===!1)return!1}})}function yuA(t){if(!t)throw new Error("geojson is required");var A=[];return dK(t,function(j){vuA(j,A)}),hK(A)}function vuA(t,A){var j=[],e=t.geometry;if(e!==null){switch(e.type){case"Polygon":j=NP(e);break;case"LineString":j=[NP(e)]}j.forEach(function(r){var n=_uA(r,t.properties);n.forEach(function(i){i.id=A.length,A.push(i)})})}}function _uA(t,A){var j=[];return t.reduce(function(e,r){var n=DP([e,r],A);return n.bbox=quA(e,r),j.push(n),r}),j}function quA(t,A){var j=t[0],e=t[1],r=A[0],n=A[1],i=j<r?j:r,o=e<n?e:n,l=j>r?j:r,c=e>n?e:n;return[i,o,l,c]}var KP=yuA;function XP(t,A){if(t.type==="Feature")A(t,0);else if(t.type==="FeatureCollection")for(var j=0;j<t.features.length&&A(t.features[j],j)!==!1;j++);}var zK=Ws(KK(),1);function yBA(t,A){var j={},e=[];if(t.type==="LineString"&&(t=x0(t)),A.type==="LineString"&&(A=x0(A)),t.type==="Feature"&&A.type==="Feature"&&t.geometry!==null&&A.geometry!==null&&t.geometry.type==="LineString"&&A.geometry.type==="LineString"&&t.geometry.coordinates.length===2&&A.geometry.coordinates.length===2){var r=XK(t,A);return r&&e.push(r),HP(e)}var n=(0,zK.default)();return n.load(KP(A)),XP(KP(t),function(i){XP(n.search(i),function(o){var l=XK(i,o);if(l){var c=sv(l).join(",");j[c]||(j[c]=!0,e.push(l))}})}),HP(e)}function XK(t,A){var j=sv(t),e=sv(A);if(j.length!==2)throw new Error("<intersects> line1 must only contain 2 coordinates");if(e.length!==2)throw new Error("<intersects> line2 must only contain 2 coordinates");var r=j[0][0],n=j[0][1],i=j[1][0],o=j[1][1],l=e[0][0],c=e[0][1],B=e[1][0],h=e[1][1],d=(h-c)*(i-r)-(B-l)*(o-n),k=(B-l)*(n-c)-(h-c)*(r-l),m=(i-r)*(n-c)-(o-n)*(r-l);if(d===0)return null;var $=k/d,g=m/d;if($>=0&&$<=1&&g>=0&&g<=1){var y=r+$*(i-r),b=n+$*(o-n);return CP([y,b])}return null}var pl=yBA;var t6=63710088e-1,yat={centimeters:t6*100,centimetres:t6*100,degrees:t6/111325,feet:t6*3.28084,inches:t6*39.37,kilometers:t6/1e3,kilometres:t6/1e3,meters:t6,metres:t6,miles:t6/1609.344,millimeters:t6*1e3,millimetres:t6*1e3,nauticalmiles:t6/1852,radians:1,yards:t6*1.0936},vat={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/t6,yards:1.0936133};function _0(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function q0(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!sI(t[0])||!sI(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return _0(e,A,j)}function dv(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return _0(e,A,j)}function sI(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function vBA(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function UK(t,A){vBA(t,function(j,e,r,n,i){var o=j===null?null:j.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(_0(j,r,{bbox:n,id:i}),e,0)===!1?!1:void 0}var l;switch(o){case"MultiPoint":l="Point";break;case"MultiLineString":l="LineString";break;case"MultiPolygon":l="Polygon";break}for(var c=0;c<j.coordinates.length;c++){var B=j.coordinates[c],h={type:l,coordinates:B};if(A(_0(h,r),e,c)===!1)return!1}})}function VK(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function _BA(t,A,j){j===void 0&&(j={});var e=q0([1/0,1/0],{dist:1/0}),r=0;return UK(t,function(n){for(var i=VK(n),o=0;o<i.length-1;o++){var l=q0(i[o]);l.properties.dist=yt(A,l,j);var c=q0(i[o+1]);c.properties.dist=yt(A,c,j);var B=yt(l,c,j),h=Math.max(l.properties.dist,c.properties.dist),d=Fj(l,c),k=Er(A,h,d+90,j),m=Er(A,h,d-90,j),$=pl(dv([k.geometry.coordinates,m.geometry.coordinates]),dv([l.geometry.coordinates,c.geometry.coordinates])),g=null;$.features.length>0&&(g=$.features[0],g.properties.dist=yt(A,g,j),g.properties.location=r+yt(l,g,j)),l.properties.dist<e.properties.dist&&(e=l,e.properties.index=o,e.properties.location=r),c.properties.dist<e.properties.dist&&(e=c,e.properties.index=o+1,e.properties.location=r+B),g&&g.properties.dist<e.properties.dist&&(e=g,e.properties.index=o),r+=B}}),e}var pv=_BA;var b0=class extends Qt{calculateMapCoords(A,j,e){let r=e.modeConfig;if(!r||!r.lock90Degree||!A.length)return j;if(A.length===1){let l=A[0],c=this.getSelectedGeometry(e),B=yf(c),h=B.type==="FeatureCollection"?B.features:[B],d=Number.MAX_SAFE_INTEGER,k=null;if(h.forEach(m=>{let $=pv(m,l),g=yt($,l);d>g&&(d=g,k=$)}),k){let m=Fj(l,k),$=yt(l,j,{units:"meters"});return Er(l,$,m,{units:"meters"}).geometry.coordinates}return j}let n=A[A.length-1],[i]=Va(A[A.length-2],n,j);return pv(gr([n,i]),j).geometry.coordinates}getGuides(A){let j=this.getClickSequence(),e={type:"FeatureCollection",features:[]};if(j.length===0||!A.lastPointerMoveEvent)return e;let{mapCoords:r}=A.lastPointerMoveEvent;return e.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...j,this.calculateMapCoords(j,r,A)]}}),e}handleClick(A,j){let e=this.getTentativeGuide(j),r=this.getSelectedGeometry(j);if(!r){console.warn("A polygon must be selected for splitting");return}let n=this.getClickSequence();e&&e.geometry.type==="LineString"?n.push(e.geometry.coordinates[e.geometry.coordinates.length-1]):this.addClickSequence(A);let i={type:"Point",coordinates:n[n.length-1]},o=RP(i,r);if(n.length>1&&e&&!o){if(this.resetClickSequence(),pl(e,r).features.length===0)return;let c=this.splitPolygon(e,j);c&&j.onEdit(c)}}handlePointerMove(A,j){j.onUpdateCursor("cell")}splitPolygon(A,j){let e=this.getSelectedGeometry(j),r=j.selectedIndexes[0],n=j.modeConfig||{},{gap:i=.1,units:o="centimeters"}=n;i===0&&(i=.1,o="centimeters");let l=Dy(A,i,{units:o}),c=kf(e,l);if(!c)return console.warn("Canceling edit. Split Polygon erased"),null;let{type:B,coordinates:h}=c.geometry,d=[];return B==="Polygon"?d=h.map($=>[$]):d=h.reduce(($,g)=>(g.forEach(y=>{$.push([y])}),$),[]),{updatedData:new Pj(j.data).replaceGeometry(r,{type:"MultiPolygon",coordinates:d}).getObject(),editType:"split",editContext:{featureIndexes:[r]}}}};var G0=class extends So{constructor(){super(...arguments);P(this,"isPointAdded",!1)}handleDragging(j,e){let r=te(j.pointerDownPicks);if(r){let{featureIndex:n}=r.properties,{positionIndexes:i}=r.properties,o=this.coordinatesSize(i,n,e.data);i=this.isPointAdded?this.nextPositionIndexes(i,o):i;let l=this.getPointForPositionIndexes(this.prevPositionIndexes(i,o),n,e.data),c=this.getPointForPositionIndexes(i,n,e.data);if(l&&c){let[B,h]=Va(l,c,j.mapCoords),d=new Pj(e.data).replacePosition(n,this.prevPositionIndexes(i,o),h).replacePosition(n,i,B).getObject();e.onEdit({updatedData:d,editType:"extruding",editContext:{featureIndexes:[n],positionIndexes:this.nextPositionIndexes(i,o),position:B}}),j.cancelPan()}}}handleStartDragging(j,e){let r=e.selectedIndexes,n=g0(j.picks);if(r.length&&n){let{positionIndexes:i,featureIndex:o}=n.properties,l=this.coordinatesSize(i,o,e.data),c=this.getPointForPositionIndexes(this.prevPositionIndexes(i,l),o,e.data),B=this.getPointForPositionIndexes(i,o,e.data);if(c&&B){let h=new Pj(e.data);this.isOrthogonal(i,o,l,e.data)||(h=h.addPosition(o,i,B)),this.isOrthogonal(this.prevPositionIndexes(i,l),o,l,e.data)||(h=h.addPosition(o,i,c),this.isPointAdded=!0),e.onEdit({updatedData:h.getObject(),editType:"startExtruding",editContext:{featureIndexes:[o],positionIndexes:i,position:c}})}}}handleStopDragging(j,e){let r=e.selectedIndexes,n=te(j.pointerDownPicks);if(r.length&&n){let{featureIndex:i}=n.properties,{positionIndexes:o}=n.properties,l=this.coordinatesSize(o,i,e.data);o=this.isPointAdded?this.nextPositionIndexes(o,l):o;let c=this.getPointForPositionIndexes(this.prevPositionIndexes(o,l),i,e.data),B=this.getPointForPositionIndexes(o,i,e.data);if(c&&B){let[h,d]=Va(c,B,j.mapCoords),k=new Pj(e.data).replacePosition(i,this.prevPositionIndexes(o,l),d).replacePosition(i,o,h).getObject();e.onEdit({updatedData:k,editType:"extruded",editContext:{featureIndexes:[i],positionIndexes:o,position:h}})}}this.isPointAdded=!1}coordinatesSize(j,e,{features:r}){let n=0;if(Array.isArray(j)){let o=r[e].geometry.coordinates;if(j.length===3){let[l,c]=j;o.length&&o[l].length&&(n=o[l][c].length)}else{let[l]=j;o.length&&o[l].length&&(n=o[l].length)}}return n}getBearing(j,e){let r=Fj(j,e);return r<0?Math.floor(360+r):Math.floor(r)}isOrthogonal(j,e,r,n){if(!Array.isArray(j))return!1;j[j.length-1]===r-1&&(j[j.length-1]=0);let i=this.getPointForPositionIndexes(this.prevPositionIndexes(j,r),e,n),o=this.getPointForPositionIndexes(this.nextPositionIndexes(j,r),e,n),l=this.getPointForPositionIndexes(j,e,n),c=this.getBearing(l,i),B=this.getBearing(l,o);return[89,90,91,269,270,271].includes(Math.abs(c-B))}nextPositionIndexes(j,e){if(!Array.isArray(j))return[];let r=[...j];return r.length&&(r[r.length-1]=r[r.length-1]===e-1?0:r[r.length-1]+1),r}prevPositionIndexes(j,e){if(!Array.isArray(j))return[];let r=[...j];return r.length&&(r[r.length-1]=r[r.length-1]===0?e-2:r[r.length-1]-1),r}getPointForPositionIndexes(j,e,{features:r}){let n;if(Array.isArray(j)){let o=r[e].geometry.coordinates;if(j.length===3){let[l,c,B]=j;o.length&&o[l].length&&(n=o[l][c][B])}else{let[l,c]=j;o.length&&o[l].length&&(n=o[l][c])}}return n}};function qBA({pointerDownScreenCoords:t,screenCoords:A}){return 10*(t[1]-A[1])}var w0=class extends So{makeElevatedEvent(A,j,e){let{minElevation:r=0,maxElevation:n=2e4,calculateElevationChange:i=qBA}=e.modeConfig||{};if(!A.pointerDownScreenCoords)return A;let o=j.length===3?j[2]:0;return o+=i({pointerDownScreenCoords:A.pointerDownScreenCoords,screenCoords:A.screenCoords}),o=Math.min(o,n),o=Math.max(o,r),Object.assign({},A,{mapCoords:[j[0],j[1],o]})}handlePointerMove(A,j){let e=te(A.pointerDownPicks),r=e?e.geometry.coordinates:A.mapCoords;super.handlePointerMove(this.makeElevatedEvent(A,r,j),j)}handleStopDragging(A,j){let e=te(A.picks),r=e?e.geometry.coordinates:A.mapCoords;super.handleStopDragging(this.makeElevatedEvent(A,r,j),j)}getCursor(A){let j=super.getCursor(A);return j==="cell"&&(j="ns-resize"),j}static calculateElevationChangeWithViewport(A,{pointerDownScreenCoords:j,screenCoords:e}){return 156543.03392*Math.cos(A.latitude*Math.PI/180)/Math.pow(2,A.zoom)*(j[1]-e[1])/2}};var F0=class extends Qt{createTentativeFeature(A){let{lastPointerMoveEvent:j}=A,e=j?[j.mapCoords]:[];return{type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Point",coordinates:e[0]}}}handleClick({mapCoords:A},j){let e={type:"Point",coordinates:A};j.onEdit(this.getAddFeatureAction(e,j.data))}handlePointerMove(A,j){j.onUpdateCursor("cell"),super.handlePointerMove(A,j)}};function bBA(t,A){if(t===A)return!0;if(Array.isArray(t)){let j=t.length;if(!A||A.length!==j)return!1;for(let e=0;e<j;e++)if(t[e]!==A[e])return!1;return!0}return!1}function kl(t){let A={},j;return e=>{for(let r in e)if(!bBA(e[r],A[r])){j=t(e),A=e;break}return j}}var P0=class extends Qt{constructor(){super(...arguments);P(this,"dist",0);P(this,"position",null);P(this,"elems",[]);P(this,"_getTooltips",kl(({modeConfig:j,dist:e})=>{let r=[],{formatTooltip:n}=j||{},i;return e&&(n?i=n(e):i=`Distance: ${parseFloat(e).toFixed(2)} kilometers`,r=[{position:this.position,text:i}]),r}))}handleClick(j,e){let{picks:r}=j,n=te(r),i=!1;n||(this.addClickSequence(j),i=!0);let o=this.getClickSequence();if(n||this.calculateInfoDraw(o),o.length>1&&n&&Array.isArray(n.properties.positionIndexes)&&n.properties.positionIndexes[0]===o.length-1){this.dist=0;let l={type:"LineString",coordinates:[...o]};this.resetClickSequence();let c=this.getAddFeatureAction(l,e.data);c&&e.onEdit(c)}else i&&e.onEdit({updatedData:e.data,editType:"addTentativePosition",editContext:{position:j.mapCoords}})}handleKeyUp(j,e){let{key:r}=j;if(r==="Enter"){let n=this.getClickSequence();if(n.length>1){let i={type:"LineString",coordinates:[...n]};this.resetClickSequence();let o=this.getAddFeatureAction(i,e.data);o&&e.onEdit(o)}}else r==="Escape"&&(this.resetClickSequence(),e.onEdit({updatedData:e.data,editType:"cancelFeature",editContext:{}}))}getGuides(j){let{lastPointerMoveEvent:e}=j,r=this.getClickSequence(),n=e?[e.mapCoords]:[],i={type:"FeatureCollection",features:[]},o;r.length>0&&(o={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...r,...n]}}),o&&i.features.push(o);let l=r.map((c,B)=>({type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[B]},geometry:{type:"Point",coordinates:c}}));return i.features.push(...l),i}handlePointerMove(j,e){e.onUpdateCursor("cell")}getTooltips(j){return this._getTooltips({modeConfig:j.modeConfig,dist:this.dist})}calculateInfoDraw(j){j.length>1&&(this.position=j[j.length-1],this.dist+=yt(j[j.length-2],j[j.length-1]))}};var Ai=class extends Qt{createTentativeFeature(A){let{lastPointerMoveEvent:j}=A,e=this.getClickSequence(),r=j?[j.mapCoords]:[],n;return e.length===1||e.length===2?n={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...e,...r]}}:e.length>2&&(n={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Polygon",coordinates:[[...e,...r,e[0]]]}}),n}getGuides(A){let j=this.getClickSequence(),e={type:"FeatureCollection",features:[]},r=this.createTentativeFeature(A);r&&e.features.push(r);let n=j.map((i,o)=>({type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[o]},geometry:{type:"Point",coordinates:i}}));return e.features.push(...n),e}handleClick(A,j){let{picks:e}=A,r=te(e),n=this.getClickSequence(),i=!1;if(n.length>2&&j.modeConfig&&j.modeConfig.preventOverlappingLines){let l=gr([n[n.length-1],A.mapCoords]),c=gr([...n.slice(0,n.length-1)]);pl(l,c).features.length>0&&(i=!0)}let o=!1;if(!r&&!i&&(this.addClickSequence(A),o=!0),n.length>2&&r&&Array.isArray(r.properties.positionIndexes)&&(r.properties.positionIndexes[0]===0||r.properties.positionIndexes[0]===n.length-1)){let l={type:"Polygon",coordinates:[[...n,n[0]]]};this.resetClickSequence();let c=this.getAddFeatureOrBooleanPolygonAction(l,j);c&&j.onEdit(c)}else o&&j.onEdit({updatedData:j.data,editType:"addTentativePosition",editContext:{position:A.mapCoords}})}handleKeyUp(A,j){if(A.key==="Enter"){let e=this.getClickSequence();if(e.length>2){let r={type:"Polygon",coordinates:[[...e,e[0]]]};this.resetClickSequence();let n=this.getAddFeatureOrBooleanPolygonAction(r,j);n&&j.onEdit(n)}}else A.key==="Escape"&&(this.resetClickSequence(),j.onEdit({updatedData:j.data,editType:"cancelFeature",editContext:{}}))}handlePointerMove(A,j){j.onUpdateCursor("cell"),super.handlePointerMove(A,j)}};var hn=class extends Qt{handleClick(A,j){j.modeConfig&&j.modeConfig.dragToDraw||(this.addClickSequence(A),this.checkAndFinishPolygon(j))}handleStartDragging(A,j){!j.modeConfig||!j.modeConfig.dragToDraw||(this.addClickSequence(A),A.cancelPan())}handleStopDragging(A,j){!j.modeConfig||!j.modeConfig.dragToDraw||(this.addClickSequence(A),this.checkAndFinishPolygon(j))}checkAndFinishPolygon(A){let j=this.getClickSequence(),e=this.getTentativeGuide(A);if(j.length>1&&e&&e.geometry.type==="Polygon"){let r={type:"Feature",properties:{shape:e.properties.shape},geometry:{type:"Polygon",coordinates:e.geometry.coordinates}},n=this.getAddFeatureOrBooleanPolygonAction(r,A);this.resetClickSequence(),n&&A.onEdit(n)}}getGuides(A){let{lastPointerMoveEvent:j,modeConfig:e}=A,r=this.getClickSequence(),n={type:"FeatureCollection",features:[]};if(r.length===0||!j)return n;let i=r[0],o=j.mapCoords,l=this.getTwoClickPolygon(i,o,e);return l&&n.features.push({type:"Feature",properties:{shape:l.properties&&l.properties.shape,guideType:"tentative"},geometry:l.geometry}),n}getTwoClickPolygon(A,j,e){return null}handlePointerMove(A,j){j.onUpdateCursor("cell"),super.handlePointerMove(A,j)}createTentativeFeature(A){let{lastPointerMoveEvent:j}=A,e=this.getClickSequence(),r=j?[j.mapCoords]:[],n;return e.length===1&&(n=this.getTwoClickPolygon(e[0],r[0],A.modeConfig)),n}};var Uc=class extends hn{getTwoClickPolygon(A,j,e){let r=cn([A[0],A[1],j[0],j[1]]);return r.properties=r.properties||{},r.properties.shape="Rectangle",r}};var j6=63710088e-1,b7t={centimeters:j6*100,centimetres:j6*100,degrees:j6/111325,feet:j6*3.28084,inches:j6*39.37,kilometers:j6/1e3,kilometres:j6/1e3,meters:j6,metres:j6,miles:j6/1609.344,millimeters:j6*1e3,millimetres:j6*1e3,nauticalmiles:j6/1852,radians:1,yards:j6*1.0936},G7t={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/j6,yards:1.0936133};function GBA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function lI(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!aI(t[0])||!aI(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return GBA(e,A,j)}function aI(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function QK(t){return t.type==="Feature"?t.geometry:t}function I0(t,A,j){j===void 0&&(j={});for(var e=QK(t),r=e.coordinates,n=0,i=0;i<r.length&&!(A>=n&&i===r.length-1);i++)if(n>=A){var o=A-n;if(o){var l=Fj(r[i],r[i-1])-180,c=Er(r[i],o,l,j);return c}else return lI(r[i])}else n+=yt(r[i],r[i+1],j);return lI(r[r.length-1])}var M0=class extends hn{getTwoClickPolygon(A,j,e){let r=[j[0],A[1]],n=[A[0],j[1]],i=yt(Xt(r),Xt(A)),o=yt(Xt(n),Xt(A)),l=i<=o?i:o,c=i<=o?r:n,B=gr([c,j]),d=I0(B,l).geometry.coordinates,k=cn([A[0],A[1],d[0],d[1]]);return k.properties=k.properties||{},k.properties.shape="Square",k}};var O0=class extends hn{getTwoClickPolygon(A,j,e){let r=A[0]>j[0]?A[0]+Math.abs(A[0]-j[0]):A[0]-Math.abs(A[0]-j[0]),n=A[1]>j[1]?A[1]+Math.abs(A[1]-j[1]):A[1]-Math.abs(A[1]-j[1]),i=cn([r,n,j[0],j[1]]);return i.properties=i.properties||{},i.properties.shape="Rectangle",i}};var T0=class extends hn{getTwoClickPolygon(A,j,e){let r=[j[0],A[1]],n=[A[0],j[1]],i=yt(Xt(r),Xt(A)),o=yt(Xt(n),Xt(A)),l=i<=o?i:o,c=i<=o?r:n,B=gr([c,j]),d=I0(B,l).geometry.coordinates,k=A[0]>d[0]?A[0]+Math.abs(A[0]-d[0]):A[0]-Math.abs(A[0]-d[0]),m=A[1]>d[1]?A[1]+Math.abs(A[1]-d[1]):A[1]-Math.abs(A[1]-d[1]),$=cn([k,m,d[0],d[1]]);return $.properties=$.properties||{},$.properties.shape="Square",$}};var e6=63710088e-1,Alt={centimeters:e6*100,centimetres:e6*100,degrees:e6/111325,feet:e6*3.28084,inches:e6*39.37,kilometers:e6/1e3,kilometres:e6/1e3,meters:e6,metres:e6,miles:e6/1609.344,millimeters:e6*1e3,millimetres:e6*1e3,nauticalmiles:e6/1852,radians:1,yards:e6*1.0936},tlt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/e6,yards:1.0936133};function wBA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function WK(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return wBA(o,A,j)}function FBA(t,A,j){j===void 0&&(j={});for(var e=j.steps||64,r=j.properties?j.properties:!Array.isArray(t)&&t.type==="Feature"&&t.properties?t.properties:{},n=[],i=0;i<e;i++)n.push(Er(t,A,i*-360/e,j).geometry.coordinates);return n.push(n[0]),WK([n],r)}var S0=FBA;var YK=6378137;function qf(t){return $3(t,function(A,j){return A+PBA(j)},0)}function PBA(t){var A=0,j;switch(t.type){case"Polygon":return JK(t.coordinates);case"MultiPolygon":for(j=0;j<t.coordinates.length;j++)A+=JK(t.coordinates[j]);return A;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}function JK(t){var A=0;if(t&&t.length>0){A+=Math.abs(ZK(t[0]));for(var j=1;j<t.length;j++)A-=Math.abs(ZK(t[j]))}return A}function ZK(t){var A,j,e,r,n,i,o,l=0,c=t.length;if(c>2){for(o=0;o<c;o++)o===c-2?(r=c-2,n=c-1,i=0):o===c-1?(r=c-1,n=0,i=1):(r=o,n=o+1,i=o+2),A=t[r],j=t[n],e=t[i],l+=(cI(e[0])-cI(A[0]))*Math.sin(cI(j[1]));l=l*YK*YK/2}return l}function cI(t){return t*Math.PI/180}var R0=class extends hn{constructor(){super(...arguments);P(this,"radius",null);P(this,"position",null);P(this,"areaCircle",null);P(this,"_getTooltips",kl(({modeConfig:j,radius:e,areaCircle:r})=>{let n=[],{formatTooltip:i}=j||{},o;return e&&r&&(i?o=i(e):o=`Radius: ${parseFloat(e).toFixed(2)} kilometers
1751
+ `},A}updateState(A){super.updateState(A);let{props:j,oldProps:e}=A;(j.color!==e.color||j.opacityScale!==e.opacityScale)&&this.setState({uniforms:{uColor:j.color.map(r=>r/255),uOpacityScale:j.opacityScale}})}draw(A){let{uniforms:j}=this.state;super.draw({...A,uniforms:{...A.uniforms,...j}})}};var Zk=(t,A,j,e,r={},n=null)=>async({index:i})=>{let{x:o,y:l,z:c}=i,B=`${t}/pyramid_images/${A}_files/${e+c}/${o}_${l}${j}`,{fetch:h={},...d}=r,k=async(m,$={})=>{let g={...h,...$};return n?n.fetch(m,g):fetch(m,g)};try{return await rs(B,Zd,{...d,fetch:k})}catch(m){let $=Zj(m,{coordinates:`${o},${l},${c}`,url:B,messages:{network:"Failed to load tile due to network issues",notFound:"Tile does not exist",unauthorized:"Unauthorized access to tile",forbidden:"Access forbidden for tile",unexpected:"Failed to load tile"},throwOnAuth:!0,logUnexpected:!0});return $.error==="not_found"||$.error==="network",null}},dy=(t,A,j)=>e=>{let{bbox:{left:r,bottom:n,right:i,top:o}}=e.tile,{width:l,height:c}=t;return new hy(e,{data:null,image:e.data,bounds:[xs(r,0,l),xs(n,0,c),xs(i,0,l),xs(o,0,c)],color:A,opacityScale:j})},py=t=>A=>{let{bbox:{left:j,bottom:e,right:r,top:n}}=A.tile,{width:i,height:o}=t;return new JB(A,{data:null,image:A.data,bounds:[xs(j,0,i),xs(e,0,o),xs(r,0,i),xs(n,0,o)]})};var ky=async(t,A,j=0,e="")=>{let{global_base_url:r}=t,{dimensions:n}=t,{landscape_parameters:i}=t.img,{image_format:o}=t.img.landscape_parameters,l=`global-simple-image-layer-ds${j}${e?`-${e}`:""}`;return new Dc({id:l,tileSize:n.tileSize,refinementStrategy:"no-overlap",minZoom:-7,maxZoom:0,maxCacheSize:0,extent:[0,0,n.width,n.height],getTileData:Zk(r,A.name,o,i.max_pyramid_zoom,nj,t.aws),renderSubLayers:py(n),visible:!0,...kr(t.rotation)})};var rl=(t,A)=>{t.global_base_url=A};var JD=async(t,A,j,e)=>{let r=`${t}/pyramid_images/${A}.dzi`,i=await(e!==null?await e.fetch(r):await fetch(r,j.fetch)).text(),o=new DOMParser().parseFromString(i,"text/xml");return{height:Number(o.getElementsByTagName("Size")[0].attributes.Height.value),width:Number(o.getElementsByTagName("Size")[0].attributes.Width.value),tileSize:Number(o.getElementsByTagName("Image")[0].attributes.TileSize.value)}};var nl=async(t,A,j)=>{try{t.dimensions=await JD(A,j,nj,t.aws);return}catch{}if(t.use_row_groups&&t.img?.landscape_parameters){let e=t.img.landscape_parameters;if(e.image_dimensions?.width&&e.image_dimensions?.height){t.dimensions={width:e.image_dimensions.width,height:e.image_dimensions.height,tileSize:e.image_dimensions.tile_size||512};return}if(t.row_group_readers?.images){let r=Object.values(t.row_group_readers.images)[0];if(r?.zoomInfo){let i=Object.keys(r.zoomInfo).map(Number).sort((l,c)=>c-l)[0],o=r.zoomInfo[String(i)];if(o){let c=o.num_tiles_x*512,B=o.num_tiles_y*512;t.dimensions={width:c,height:B,tileSize:512};return}}}}t.dimensions={width:1e4,height:1e4,tileSize:512}};var il=async(t,A,j)=>{let e=`${A}/landscape_parameters.json`,r=j?await j.fetch(e):await fetch(e,nj.fetch);if(!r.ok)throw new Error(`Failed to fetch landscape_parameters.json: ${r.status} ${r.statusText}`);t.landscape_parameters=await r.json()};var q1=async(t,A,j,e,r,n,i,o,l="",c=0,B=800,h={})=>{c===0&&(c="100%");let d=document.createElement("div");d.style.height=`${B}px`;let k={};if(uf(e),rl(k,j),"accessKeyId"in h){k.aws=new G7({accessKeyId:h.accessKeyId,secretAccessKey:h.secretAccessKey,sessionToken:h.sessionToken,region:"us-east-1",service:"s3"});let v=await k.aws.fetch(`${j}/landscape_parameters.json`);if(!v.ok)throw new Error(`Fetch failed: ${v.statusText}`)}else k.aws=null;k.model=t,k.img={},k.img.image_layer_colors={},k.img.image_layer_sliders={},await il(k.img,j,k.aws),await nl(k,j,"h_and_e"),k.buttons={},k.buttons.blue="#8797ff",k.buttons.gray="gray",k.buttons.light_gray="#EEEEEE",k.buttons.buttons={};let g={simple_image_layer:await ky(k,{name:"h_and_e",color:[0,0,255]})};k.views=ly();let y=PD(d,c,B),b={target:[r,n,i],zoom:o};return y.setProps({views:k.views,layers:[g.simple_image_layer],initialViewState:b}),A.appendChild(d),()=>y.finalize()};var Xc={NONE:0,FORWARD:1,BACKWARD:2,BOTH:3},ZD=1;var ClA={arrowColor:[0,0,0,1],arrowCount:ZD,arrowStyle:Xc.NONE,fillColor:[0,0,0,1],lineColor:[0,0,0,1],lineWidthMeters:5,outlineRadiusMeters:0,opacity:1,zLevel:0};var In=63710088e-1,zQA={centimeters:In*100,centimetres:In*100,degrees:In/111325,feet:In*3.28084,inches:In*39.37,kilometers:In/1e3,kilometres:In/1e3,meters:In,metres:In,miles:In/1609.344,millimeters:In*1e3,millimetres:In*1e3,nauticalmiles:In/1852,radians:1,yards:In*1.0936},UQA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/In,yards:1.0936133};function A0(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function Xt(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!b1(t[0])||!b1(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return A0(e,A,j)}function gr(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return A0(e,A,j)}function za(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function b1(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function G1(t){return!!t&&t.constructor===Object}var Mn=63710088e-1,QQA={centimeters:Mn*100,centimetres:Mn*100,degrees:Mn/111325,feet:Mn*3.28084,inches:Mn*39.37,kilometers:Mn/1e3,kilometres:Mn/1e3,meters:Mn,metres:Mn,miles:Mn/1609.344,millimeters:Mn*1e3,millimetres:Mn*1e3,nauticalmiles:Mn/1852,radians:1,yards:Mn*1.0936},WQA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Mn,yards:1.0936133};function w1(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(w1(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function F1(t){var A=[1/0,1/0,-1/0,-1/0];return w1(t,function(j){A[0]>j[0]&&(A[0]=j[0]),A[1]>j[1]&&(A[1]=j[1]),A[2]<j[0]&&(A[2]=j[0]),A[3]<j[1]&&(A[3]=j[1])}),A}F1.default=F1;var Ua=F1;var On=63710088e-1,iWA={centimeters:On*100,centimetres:On*100,degrees:On/111325,feet:On*3.28084,inches:On*39.37,kilometers:On/1e3,kilometres:On/1e3,meters:On,metres:On,miles:On/1609.344,millimeters:On*1e3,millimetres:On*1e3,nauticalmiles:On/1852,radians:1,yards:On*1.0936},oWA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/On,yards:1.0936133};function HlA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function AN(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return HlA(o,A,j)}function cn(t,A){A===void 0&&(A={});var j=Number(t[0]),e=Number(t[1]),r=Number(t[2]),n=Number(t[3]);if(t.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var i=[j,e],o=[j,n],l=[r,n],c=[r,e];return AN([[i,c,l,o,i]],A.properties,{bbox:t,id:A.id})}var Tn=63710088e-1,cWA={centimeters:Tn*100,centimetres:Tn*100,degrees:Tn/111325,feet:Tn*3.28084,inches:Tn*39.37,kilometers:Tn/1e3,kilometres:Tn/1e3,meters:Tn,metres:Tn,miles:Tn/1609.344,millimeters:Tn*1e3,millimetres:Tn*1e3,nauticalmiles:Tn/1852,radians:1,yards:Tn*1.0936},uWA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Tn,yards:1.0936133};function DlA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function jN(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!tN(t[0])||!tN(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return DlA(e,A,j)}function tN(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function NlA(t,A){A===void 0&&(A={});var j=Ua(t),e=(j[0]+j[2])/2,r=(j[1]+j[3])/2;return jN([e,r],A.properties,A)}var ol=NlA;var pf=Ws(rN(),1);var Lr=63710088e-1,nN={centimeters:Lr*100,centimetres:Lr*100,degrees:Lr/111325,feet:Lr*3.28084,inches:Lr*39.37,kilometers:Lr/1e3,kilometres:Lr/1e3,meters:Lr,metres:Lr,miles:Lr/1609.344,millimeters:Lr*1e3,millimetres:Lr*1e3,nauticalmiles:Lr/1852,radians:1,yards:Lr*1.0936},pWA={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Lr,yards:1.0936133};function P1(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function my(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function iN(t,A){A===void 0&&(A="kilometers");var j=nN[A];if(!j)throw new Error(A+" units is invalid");return t*j}function oN(t,A){A===void 0&&(A="kilometers");var j=nN[A];if(!j)throw new Error(A+" units is invalid");return t/j}function I1(t,A){if(t.type==="Feature")A(t,0);else if(t.type==="FeatureCollection")for(var j=0;j<t.features.length&&A(t.features[j],j)!==!1;j++);}function M1(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function G6(){return new $y}function $y(){this.reset()}$y.prototype={constructor:$y,reset:function(){this.s=this.t=0},add:function(t){sN(Ey,t,this.t),sN(this,Ey.s,this.s),this.s?this.t+=Ey.t:this.s=Ey.t},valueOf:function(){return this.s}};var Ey=new $y;function sN(t,A,j){var e=t.s=A+j,r=e-A,n=e-r;t.t=A-n+(j-r)}var xt=1e-6;var Rt=Math.PI,Je=Rt/2,xy=Rt/4,Cr=Rt*2,Sn=180/Rt,se=Rt/180,ij=Math.abs,wo=Math.atan,mr=Math.atan2,gt=Math.cos;var yy=Math.exp;var t0=Math.log;var mt=Math.sin;var Ke=Math.sqrt,j0=Math.tan;function vy(t){return t>1?0:t<-1?Rt:Math.acos(t)}function Ze(t){return t>1?Je:t<-1?-Je:Math.asin(t)}function Rn(){}function _y(t,A){t&&lN.hasOwnProperty(t.type)&&lN[t.type](t,A)}var aN={Feature:function(t,A){_y(t.geometry,A)},FeatureCollection:function(t,A){for(var j=t.features,e=-1,r=j.length;++e<r;)_y(j[e].geometry,A)}},lN={Sphere:function(t,A){A.sphere()},Point:function(t,A){t=t.coordinates,A.point(t[0],t[1],t[2])},MultiPoint:function(t,A){for(var j=t.coordinates,e=-1,r=j.length;++e<r;)t=j[e],A.point(t[0],t[1],t[2])},LineString:function(t,A){O1(t.coordinates,A,0)},MultiLineString:function(t,A){for(var j=t.coordinates,e=-1,r=j.length;++e<r;)O1(j[e],A,0)},Polygon:function(t,A){cN(t.coordinates,A)},MultiPolygon:function(t,A){for(var j=t.coordinates,e=-1,r=j.length;++e<r;)cN(j[e],A)},GeometryCollection:function(t,A){for(var j=t.geometries,e=-1,r=j.length;++e<r;)_y(j[e],A)}};function O1(t,A,j){var e=-1,r=t.length-j,n;for(A.lineStart();++e<r;)n=t[e],A.point(n[0],n[1],n[2]);A.lineEnd()}function cN(t,A){var j=-1,e=t.length;for(A.polygonStart();++j<e;)O1(t[j],A,1);A.polygonEnd()}function sl(t,A){t&&aN.hasOwnProperty(t.type)?aN[t.type](t,A):_y(t,A)}var KlA=G6(),PWA=G6();function Bf(t){return[mr(t[1],t[0]),Ze(t[2])]}function Fo(t){var A=t[0],j=t[1],e=gt(j);return[e*gt(A),e*mt(A),mt(j)]}function e0(t,A){return t[0]*A[0]+t[1]*A[1]+t[2]*A[2]}function zc(t,A){return[t[1]*A[2]-t[2]*A[1],t[2]*A[0]-t[0]*A[2],t[0]*A[1]-t[1]*A[0]]}function qy(t,A){t[0]+=A[0],t[1]+=A[1],t[2]+=A[2]}function r0(t,A){return[t[0]*A,t[1]*A,t[2]*A]}function ff(t){var A=Ke(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=A,t[1]/=A,t[2]/=A}var DWA=G6();function by(t,A){function j(e,r){return e=t(e,r),A(e[0],e[1])}return t.invert&&A.invert&&(j.invert=function(e,r){return e=A.invert(e,r),e&&t.invert(e[0],e[1])}),j}function T1(t,A){return[t>Rt?t-Cr:t<-Rt?t+Cr:t,A]}T1.invert=T1;function S1(t,A,j){return(t%=Cr)?A||j?by(BN(t),fN(A,j)):BN(t):A||j?fN(A,j):T1}function uN(t){return function(A,j){return A+=t,[A>Rt?A-Cr:A<-Rt?A+Cr:A,j]}}function BN(t){var A=uN(t);return A.invert=uN(-t),A}function fN(t,A){var j=gt(t),e=mt(t),r=gt(A),n=mt(A);function i(o,l){var c=gt(l),B=gt(o)*c,h=mt(o)*c,d=mt(l),k=d*j+B*e;return[mr(h*r-k*n,B*j-d*e),Ze(k*r+h*n)]}return i.invert=function(o,l){var c=gt(l),B=gt(o)*c,h=mt(o)*c,d=mt(l),k=d*r-h*n;return[mr(h*r+d*n,B*j+k*e),Ze(k*j-B*e)]},i}function dN(t,A,j,e,r,n){if(j){var i=gt(A),o=mt(A),l=e*j;r==null?(r=A+e*Cr,n=A-l/2):(r=hN(i,r),n=hN(i,n),(e>0?r<n:r>n)&&(r+=e*Cr));for(var c,B=r;e>0?B>n:B<n;B-=l)c=Bf([i,-o*gt(B),-o*mt(B)]),t.point(c[0],c[1])}}function hN(t,A){A=Fo(A),A[0]-=t,ff(A);var j=vy(-A[1]);return((-A[2]<0?-j:j)+Cr-xt)%Cr}function Gy(){var t=[],A;return{point:function(j,e){A.push([j,e])},lineStart:function(){t.push(A=[])},lineEnd:Rn,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var j=t;return t=[],A=null,j}}}function pN(t,A,j,e,r,n){var i=t[0],o=t[1],l=A[0],c=A[1],B=0,h=1,d=l-i,k=c-o,m;if(m=j-i,!(!d&&m>0)){if(m/=d,d<0){if(m<B)return;m<h&&(h=m)}else if(d>0){if(m>h)return;m>B&&(B=m)}if(m=r-i,!(!d&&m<0)){if(m/=d,d<0){if(m>h)return;m>B&&(B=m)}else if(d>0){if(m<B)return;m<h&&(h=m)}if(m=e-o,!(!k&&m>0)){if(m/=k,k<0){if(m<B)return;m<h&&(h=m)}else if(k>0){if(m>h)return;m>B&&(B=m)}if(m=n-o,!(!k&&m<0)){if(m/=k,k<0){if(m>h)return;m>B&&(B=m)}else if(k>0){if(m<B)return;m<h&&(h=m)}return B>0&&(t[0]=i+B*d,t[1]=o+B*k),h<1&&(A[0]=i+h*d,A[1]=o+h*k),!0}}}}}function hf(t,A){return ij(t[0]-A[0])<xt&&ij(t[1]-A[1])<xt}function wy(t,A,j,e){this.x=t,this.z=A,this.o=j,this.e=e,this.v=!1,this.n=this.p=null}function Fy(t,A,j,e,r){var n=[],i=[],o,l;if(t.forEach(function(m){if(!(($=m.length-1)<=0)){var $,g=m[0],y=m[$],b;if(hf(g,y)){for(r.lineStart(),o=0;o<$;++o)r.point((g=m[o])[0],g[1]);r.lineEnd();return}n.push(b=new wy(g,m,null,!0)),i.push(b.o=new wy(g,null,b,!1)),n.push(b=new wy(y,m,null,!1)),i.push(b.o=new wy(y,null,b,!0))}}),!!n.length){for(i.sort(A),kN(n),kN(i),o=0,l=i.length;o<l;++o)i[o].e=j=!j;for(var c=n[0],B,h;;){for(var d=c,k=!0;d.v;)if((d=d.n)===c)return;B=d.z,r.lineStart();do{if(d.v=d.o.v=!0,d.e){if(k)for(o=0,l=B.length;o<l;++o)r.point((h=B[o])[0],h[1]);else e(d.x,d.n.x,1,r);d=d.n}else{if(k)for(B=d.p.z,o=B.length-1;o>=0;--o)r.point((h=B[o])[0],h[1]);else e(d.x,d.p.x,-1,r);d=d.p}d=d.o,B=d.z,k=!k}while(!d.v);r.lineEnd()}}}function kN(t){if(A=t.length){for(var A,j=0,e=t[0],r;++j<A;)e.n=r=t[j],r.p=e,e=r;e.n=r=t[0],r.p=e}}function al(t,A){return t<A?-1:t>A?1:t>=A?0:NaN}function R1(t){return t.length===1&&(t=XlA(t)),{left:function(A,j,e,r){for(e==null&&(e=0),r==null&&(r=A.length);e<r;){var n=e+r>>>1;t(A[n],j)<0?e=n+1:r=n}return e},right:function(A,j,e,r){for(e==null&&(e=0),r==null&&(r=A.length);e<r;){var n=e+r>>>1;t(A[n],j)>0?r=n:e=n+1}return e}}}function XlA(t){return function(A,j){return al(t(A),j)}}var gN=R1(al),zlA=gN.right,UlA=gN.left;var mN=Array.prototype,QlA=mN.slice,WlA=mN.map;var MYA=Math.sqrt(50),OYA=Math.sqrt(10),TYA=Math.sqrt(2);function n0(t){for(var A=t.length,j,e=-1,r=0,n,i;++e<A;)r+=t[e].length;for(n=new Array(r);--A>=0;)for(i=t[A],j=i.length;--j>=0;)n[--r]=i[j];return n}var i0=1e9,Iy=-i0;function L1(t,A,j,e){function r(c,B){return t<=c&&c<=j&&A<=B&&B<=e}function n(c,B,h,d){var k=0,m=0;if(c==null||(k=i(c,h))!==(m=i(B,h))||l(c,B)<0^h>0)do d.point(k===0||k===3?t:j,k>1?e:A);while((k=(k+h+4)%4)!==m);else d.point(B[0],B[1])}function i(c,B){return ij(c[0]-t)<xt?B>0?0:3:ij(c[0]-j)<xt?B>0?2:1:ij(c[1]-A)<xt?B>0?1:0:B>0?3:2}function o(c,B){return l(c.x,B.x)}function l(c,B){var h=i(c,1),d=i(B,1);return h!==d?h-d:h===0?B[1]-c[1]:h===1?c[0]-B[0]:h===2?c[1]-B[1]:B[0]-c[0]}return function(c){var B=c,h=Gy(),d,k,m,$,g,y,b,v,q,G,x,S={point:w,lineStart:T,lineEnd:Y,polygonStart:C,polygonEnd:U};function w(nA,M){r(nA,M)&&B.point(nA,M)}function K(){for(var nA=0,M=0,gA=k.length;M<gA;++M)for(var $A=k[M],vA=1,J=$A.length,XA=$A[0],ht,Lt,GA=XA[0],dt=XA[1];vA<J;++vA)ht=GA,Lt=dt,XA=$A[vA],GA=XA[0],dt=XA[1],Lt<=e?dt>e&&(GA-ht)*(e-Lt)>(dt-Lt)*(t-ht)&&++nA:dt<=e&&(GA-ht)*(e-Lt)<(dt-Lt)*(t-ht)&&--nA;return nA}function C(){B=h,d=[],k=[],x=!0}function U(){var nA=K(),M=x&&nA,gA=(d=n0(d)).length;(M||gA)&&(c.polygonStart(),M&&(c.lineStart(),n(null,null,1,c),c.lineEnd()),gA&&Fy(d,o,nA,n,c),c.polygonEnd()),B=c,d=k=m=null}function T(){S.point=L,k&&k.push(m=[]),G=!0,q=!1,b=v=NaN}function Y(){d&&(L($,g),y&&q&&h.rejoin(),d.push(h.result())),S.point=w,q&&B.lineEnd()}function L(nA,M){var gA=r(nA,M);if(k&&m.push([nA,M]),G)$=nA,g=M,y=gA,G=!1,gA&&(B.lineStart(),B.point(nA,M));else if(gA&&q)B.point(nA,M);else{var $A=[b=Math.max(Iy,Math.min(i0,b)),v=Math.max(Iy,Math.min(i0,v))],vA=[nA=Math.max(Iy,Math.min(i0,nA)),M=Math.max(Iy,Math.min(i0,M))];pN($A,vA,t,A,j,e)?(q||(B.lineStart(),B.point($A[0],$A[1])),B.point(vA[0],vA[1]),gA||B.lineEnd(),x=!1):gA&&(B.lineStart(),B.point(nA,M),x=!1)}b=nA,v=M,q=gA}return S}}var C1=G6();function H1(t,A){var j=A[0],e=A[1],r=[mt(j),-gt(j),0],n=0,i=0;C1.reset();for(var o=0,l=t.length;o<l;++o)if(B=(c=t[o]).length)for(var c,B,h=c[B-1],d=h[0],k=h[1]/2+xy,m=mt(k),$=gt(k),g=0;g<B;++g,d=b,m=q,$=G,h=y){var y=c[g],b=y[0],v=y[1]/2+xy,q=mt(v),G=gt(v),x=b-d,S=x>=0?1:-1,w=S*x,K=w>Rt,C=m*q;if(C1.add(mr(C*S*mt(w),$*G+C*gt(w))),n+=K?x+S*Cr:x,K^d>=j^b>=j){var U=zc(Fo(h),Fo(y));ff(U);var T=zc(r,U);ff(T);var Y=(K^x>=0?-1:1)*Ze(T[2]);(e>Y||e===Y&&(U[0]||U[1]))&&(i+=K^x>=0?1:-1)}}return(n<-xt||n<xt&&C1<-xt)^i&1}var qZA=G6();function o0(t){return t}var zZA=G6(),UZA=G6();var df=1/0,My=df,s0=-df,Oy=s0,icA={point:ocA,lineStart:Rn,lineEnd:Rn,polygonStart:Rn,polygonEnd:Rn,result:function(){var t=[[df,My],[s0,Oy]];return s0=Oy=-(My=df=1/0),t}};function ocA(t,A){t<df&&(df=t),t>s0&&(s0=t),A<My&&(My=A),A>Oy&&(Oy=A)}var Ty=icA;function D1(t){this._context=t}D1.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,A){switch(this._point){case 0:{this._context.moveTo(t,A),this._point=1;break}case 1:{this._context.lineTo(t,A);break}default:{this._context.moveTo(t+this._radius,A),this._context.arc(t,A,this._radius,0,Cr);break}}},result:Rn};var nAt=G6();function N1(){this._string=[]}N1.prototype={_radius:4.5,_circle:xN(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._string.push("Z"),this._point=NaN},point:function(t,A){switch(this._point){case 0:{this._string.push("M",t,",",A),this._point=1;break}case 1:{this._string.push("L",t,",",A);break}default:{this._circle==null&&(this._circle=xN(this._radius)),this._string.push("M",t,",",A,this._circle);break}}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}else return null}};function xN(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Sy(t,A,j,e){return function(r,n){var i=A(n),o=r.invert(e[0],e[1]),l=Gy(),c=A(l),B=!1,h,d,k,m={point:$,lineStart:y,lineEnd:b,polygonStart:function(){m.point=v,m.lineStart=q,m.lineEnd=G,d=[],h=[]},polygonEnd:function(){m.point=$,m.lineStart=y,m.lineEnd=b,d=n0(d);var x=H1(h,o);d.length?(B||(n.polygonStart(),B=!0),Fy(d,acA,x,j,n)):x&&(B||(n.polygonStart(),B=!0),n.lineStart(),j(null,null,1,n),n.lineEnd()),B&&(n.polygonEnd(),B=!1),d=h=null},sphere:function(){n.polygonStart(),n.lineStart(),j(null,null,1,n),n.lineEnd(),n.polygonEnd()}};function $(x,S){var w=r(x,S);t(x=w[0],S=w[1])&&n.point(x,S)}function g(x,S){var w=r(x,S);i.point(w[0],w[1])}function y(){m.point=g,i.lineStart()}function b(){m.point=$,i.lineEnd()}function v(x,S){k.push([x,S]);var w=r(x,S);c.point(w[0],w[1])}function q(){c.lineStart(),k=[]}function G(){v(k[0][0],k[0][1]),c.lineEnd();var x=c.clean(),S=l.result(),w,K=S.length,C,U,T;if(k.pop(),h.push(k),k=null,!!K){if(x&1){if(U=S[0],(C=U.length-1)>0){for(B||(n.polygonStart(),B=!0),n.lineStart(),w=0;w<C;++w)n.point((T=U[w])[0],T[1]);n.lineEnd()}return}K>1&&x&2&&S.push(S.pop().concat(S.shift())),d.push(S.filter(scA))}}return m}}function scA(t){return t.length>1}function acA(t,A){return((t=t.x)[0]<0?t[1]-Je-xt:Je-t[1])-((A=A.x)[0]<0?A[1]-Je-xt:Je-A[1])}var K1=Sy(function(){return!0},lcA,ucA,[-Rt,-Je]);function lcA(t){var A=NaN,j=NaN,e=NaN,r;return{lineStart:function(){t.lineStart(),r=1},point:function(n,i){var o=n>0?Rt:-Rt,l=ij(n-A);ij(l-Rt)<xt?(t.point(A,j=(j+i)/2>0?Je:-Je),t.point(e,j),t.lineEnd(),t.lineStart(),t.point(o,j),t.point(n,j),r=0):e!==o&&l>=Rt&&(ij(A-e)<xt&&(A-=e*xt),ij(n-o)<xt&&(n-=o*xt),j=ccA(A,j,n,i),t.point(e,j),t.lineEnd(),t.lineStart(),t.point(o,j),r=0),t.point(A=n,j=i),e=o},lineEnd:function(){t.lineEnd(),A=j=NaN},clean:function(){return 2-r}}}function ccA(t,A,j,e){var r,n,i=mt(t-j);return ij(i)>xt?wo((mt(A)*(n=gt(e))*mt(j)-mt(e)*(r=gt(A))*mt(t))/(r*n*i)):(A+e)/2}function ucA(t,A,j,e){var r;if(t==null)r=j*Je,e.point(-Rt,r),e.point(0,r),e.point(Rt,r),e.point(Rt,0),e.point(Rt,-r),e.point(0,-r),e.point(-Rt,-r),e.point(-Rt,0),e.point(-Rt,r);else if(ij(t[0]-A[0])>xt){var n=t[0]<A[0]?Rt:-Rt;r=j*n/2,e.point(-n,r),e.point(0,r),e.point(n,r)}else e.point(A[0],A[1])}function yN(t,A){var j=gt(t),e=j>0,r=ij(j)>xt;function n(B,h,d,k){dN(k,t,A,d,B,h)}function i(B,h){return gt(B)*gt(h)>j}function o(B){var h,d,k,m,$;return{lineStart:function(){m=k=!1,$=1},point:function(g,y){var b=[g,y],v,q=i(g,y),G=e?q?0:c(g,y):q?c(g+(g<0?Rt:-Rt),y):0;if(!h&&(m=k=q)&&B.lineStart(),q!==k&&(v=l(h,b),(!v||hf(h,v)||hf(b,v))&&(b[0]+=xt,b[1]+=xt,q=i(b[0],b[1]))),q!==k)$=0,q?(B.lineStart(),v=l(b,h),B.point(v[0],v[1])):(v=l(h,b),B.point(v[0],v[1]),B.lineEnd()),h=v;else if(r&&h&&e^q){var x;!(G&d)&&(x=l(b,h,!0))&&($=0,e?(B.lineStart(),B.point(x[0][0],x[0][1]),B.point(x[1][0],x[1][1]),B.lineEnd()):(B.point(x[1][0],x[1][1]),B.lineEnd(),B.lineStart(),B.point(x[0][0],x[0][1])))}q&&(!h||!hf(h,b))&&B.point(b[0],b[1]),h=b,k=q,d=G},lineEnd:function(){k&&B.lineEnd(),h=null},clean:function(){return $|(m&&k)<<1}}}function l(B,h,d){var k=Fo(B),m=Fo(h),$=[1,0,0],g=zc(k,m),y=e0(g,g),b=g[0],v=y-b*b;if(!v)return!d&&B;var q=j*y/v,G=-j*b/v,x=zc($,g),S=r0($,q),w=r0(g,G);qy(S,w);var K=x,C=e0(S,K),U=e0(K,K),T=C*C-U*(e0(S,S)-1);if(!(T<0)){var Y=Ke(T),L=r0(K,(-C-Y)/U);if(qy(L,S),L=Bf(L),!d)return L;var nA=B[0],M=h[0],gA=B[1],$A=h[1],vA;M<nA&&(vA=nA,nA=M,M=vA);var J=M-nA,XA=ij(J-Rt)<xt,ht=XA||J<xt;if(!XA&&$A<gA&&(vA=gA,gA=$A,$A=vA),ht?XA?gA+$A>0^L[1]<(ij(L[0]-nA)<xt?gA:$A):gA<=L[1]&&L[1]<=$A:J>Rt^(nA<=L[0]&&L[0]<=M)){var Lt=r0(K,(-C+Y)/U);return qy(Lt,S),[L,Bf(Lt)]}}}function c(B,h){var d=e?t:Rt-t,k=0;return B<-d?k|=1:B>d&&(k|=2),h<-d?k|=4:h>d&&(k|=8),k}return Sy(i,o,n,e?[0,-t]:[-Rt,t-Rt])}function a0(t){return function(A){var j=new X1;for(var e in t)j[e]=t[e];return j.stream=A,j}}function X1(){}X1.prototype={constructor:X1,point:function(t,A){this.stream.point(t,A)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function l0(t,A,j){var e=A[1][0]-A[0][0],r=A[1][1]-A[0][1],n=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),n!=null&&t.clipExtent(null),sl(j,t.stream(Ty));var i=Ty.result(),o=Math.min(e/(i[1][0]-i[0][0]),r/(i[1][1]-i[0][1])),l=+A[0][0]+(e-o*(i[1][0]+i[0][0]))/2,c=+A[0][1]+(r-o*(i[1][1]+i[0][1]))/2;return n!=null&&t.clipExtent(n),t.scale(o*150).translate([l,c])}function Ry(t,A,j){return l0(t,[[0,0],A],j)}var vN=16,BcA=gt(30*se);function z1(t,A){return+A?hcA(t,A):fcA(t)}function fcA(t){return a0({point:function(A,j){A=t(A,j),this.stream.point(A[0],A[1])}})}function hcA(t,A){function j(e,r,n,i,o,l,c,B,h,d,k,m,$,g){var y=c-e,b=B-r,v=y*y+b*b;if(v>4*A&&$--){var q=i+d,G=o+k,x=l+m,S=Ke(q*q+G*G+x*x),w=Ze(x/=S),K=ij(ij(x)-1)<xt||ij(n-h)<xt?(n+h)/2:mr(G,q),C=t(K,w),U=C[0],T=C[1],Y=U-e,L=T-r,nA=b*Y-y*L;(nA*nA/v>A||ij((y*Y+b*L)/v-.5)>.3||i*d+o*k+l*m<BcA)&&(j(e,r,n,i,o,l,U,T,K,q/=S,G/=S,x,$,g),g.point(U,T),j(U,T,K,q,G,x,c,B,h,d,k,m,$,g))}}return function(e){var r,n,i,o,l,c,B,h,d,k,m,$,g={point:y,lineStart:b,lineEnd:q,polygonStart:function(){e.polygonStart(),g.lineStart=G},polygonEnd:function(){e.polygonEnd(),g.lineStart=b}};function y(w,K){w=t(w,K),e.point(w[0],w[1])}function b(){h=NaN,g.point=v,e.lineStart()}function v(w,K){var C=Fo([w,K]),U=t(w,K);j(h,d,B,k,m,$,h=U[0],d=U[1],B=w,k=C[0],m=C[1],$=C[2],vN,e),e.point(h,d)}function q(){g.point=y,e.lineEnd()}function G(){b(),g.point=x,g.lineEnd=S}function x(w,K){v(r=w,K),n=h,i=d,o=k,l=m,c=$,g.point=v}function S(){j(h,d,B,k,m,$,n,i,r,o,l,c,vN,e),g.lineEnd=q,q()}return g}}var dcA=a0({point:function(t,A){this.stream.point(t*se,A*se)}});function Po(t){return U1(function(){return t})()}function U1(t){var A,j=150,e=480,r=250,n,i,o=0,l=0,c=0,B=0,h=0,d,k,m=null,$=K1,g=null,y,b,v,q=o0,G=.5,x=z1(U,G),S,w;function K(L){return L=k(L[0]*se,L[1]*se),[L[0]*j+n,i-L[1]*j]}function C(L){return L=k.invert((L[0]-n)/j,(i-L[1])/j),L&&[L[0]*Sn,L[1]*Sn]}function U(L,nA){return L=A(L,nA),[L[0]*j+n,i-L[1]*j]}K.stream=function(L){return S&&w===L?S:S=dcA($(d,x(q(w=L))))},K.clipAngle=function(L){return arguments.length?($=+L?yN(m=L*se,6*se):(m=null,K1),Y()):m*Sn},K.clipExtent=function(L){return arguments.length?(q=L==null?(g=y=b=v=null,o0):L1(g=+L[0][0],y=+L[0][1],b=+L[1][0],v=+L[1][1]),Y()):g==null?null:[[g,y],[b,v]]},K.scale=function(L){return arguments.length?(j=+L,T()):j},K.translate=function(L){return arguments.length?(e=+L[0],r=+L[1],T()):[e,r]},K.center=function(L){return arguments.length?(o=L[0]%360*se,l=L[1]%360*se,T()):[o*Sn,l*Sn]},K.rotate=function(L){return arguments.length?(c=L[0]%360*se,B=L[1]%360*se,h=L.length>2?L[2]%360*se:0,T()):[c*Sn,B*Sn,h*Sn]},K.precision=function(L){return arguments.length?(x=z1(U,G=L*L),Y()):Ke(G)},K.fitExtent=function(L,nA){return l0(K,L,nA)},K.fitSize=function(L,nA){return Ry(K,L,nA)};function T(){k=by(d=S1(c,B,h),A);var L=A(o,l);return n=e-L[0]*j,i=r+L[1]*j,Y()}function Y(){return S=w=null,K}return function(){return A=t.apply(this,arguments),K.invert=A.invert&&C,T()}}function Ly(t){return function(A,j){var e=gt(A),r=gt(j),n=t(e*r);return[n*r*mt(A),n*mt(j)]}}function vs(t){return function(A,j){var e=Ke(A*A+j*j),r=t(e),n=mt(r),i=gt(r);return[mr(A*n,e*i),Ze(e&&j*n/e)]}}var GN=Ly(function(t){return Ke(2/(1+t))});GN.invert=vs(function(t){return 2*Ze(t/2)});var V1=Ly(function(t){return(t=vy(t))&&t/mt(t)});V1.invert=vs(function(t){return t});function Q1(){return Po(V1).scale(79.4188).clipAngle(180-.001)}function W1(t,A){return[t,t0(j0((Je+A)/2))]}W1.invert=function(t,A){return[t,2*wo(yy(A))-Je]};function Cy(t,A){return[t,A]}Cy.invert=Cy;function wN(t,A){var j=gt(A),e=gt(t)*j;return[j*mt(t)/e,mt(A)/e]}wN.invert=vs(wo);function FN(t,A){var j=A*A,e=j*j;return[t*(.8707-.131979*j+e*(-.013791+e*(.003971*j-.001529*e))),A*(1.007226+j*(.015085+e*(-.044475+.028874*j-.005916*e)))]}FN.invert=function(t,A){var j=A,e=25,r;do{var n=j*j,i=n*n;j-=r=(j*(1.007226+n*(.015085+i*(-.044475+.028874*n-.005916*i)))-A)/(1.007226+n*(.015085*3+i*(-.044475*7+.028874*9*n-.005916*11*i)))}while(ij(r)>xt&&--e>0);return[t/(.8707+(n=j*j)*(-.131979+n*(-.013791+n*n*n*(.003971-.001529*n)))),j]};function PN(t,A){return[gt(A)*mt(t),mt(A)]}PN.invert=vs(Ze);function IN(t,A){var j=gt(A),e=1+gt(t)*j;return[j*mt(t)/e,mt(A)/e]}IN.invert=vs(function(t){return 2*wo(t)});function MN(t,A){return[t0(j0((Je+A)/2)),-t]}MN.invert=function(t,A){return[-A,2*wo(yy(t))-Je]};function gcA(t,A,j){j=j||{};var e=j.units||"kilometers",r=j.steps||8;if(!t)throw new Error("geojson is required");if(typeof j!="object")throw new Error("options must be an object");if(typeof r!="number")throw new Error("steps must be an number");if(A===void 0)throw new Error("radius is required");if(r<=0)throw new Error("steps must be greater than 0");var n=[];switch(t.type){case"GeometryCollection":return M1(t,function(i){var o=Hy(i,A,e,r);o&&n.push(o)}),my(n);case"FeatureCollection":return I1(t,function(i){var o=Hy(i,A,e,r);o&&I1(o,function(l){l&&n.push(l)})}),my(n)}return Hy(t,A,e,r)}function Hy(t,A,j,e){var r=t.properties||{},n=t.type==="Feature"?t.geometry:t;if(n.type==="GeometryCollection"){var i=[];return M1(t,function($){var g=Hy($,A,j,e);g&&i.push(g)}),my(i)}var o=mcA(n),l={type:n.type,coordinates:TN(n.coordinates,o)},c=new pf.GeoJSONReader,B=c.read(l),h=iN(oN(A,j),"meters"),d=pf.BufferOp.bufferOp(B,h,e),k=new pf.GeoJSONWriter;if(d=k.write(d),!ON(d.coordinates)){var m={type:d.type,coordinates:SN(d.coordinates,o)};return P1(m,r)}}function ON(t){return Array.isArray(t[0])?ON(t[0]):isNaN(t[0])}function TN(t,A){return typeof t[0]!="object"?A(t):t.map(function(j){return TN(j,A)})}function SN(t,A){return typeof t[0]!="object"?A.invert(t):t.map(function(j){return SN(j,A)})}function mcA(t){var A=ol(t).geometry.coordinates,j=[-A[0],-A[1]];return Q1().rotate(j).scale(Lr)}var Dy=gcA;var HN=Ws(Ny(),1);var Ln=63710088e-1,Eet={centimeters:Ln*100,centimetres:Ln*100,degrees:Ln/111325,feet:Ln*3.28084,inches:Ln*39.37,kilometers:Ln/1e3,kilometres:Ln/1e3,meters:Ln,metres:Ln,miles:Ln/1609.344,millimeters:Ln*1e3,millimetres:Ln*1e3,nauticalmiles:Ln/1852,radians:1,yards:Ln*1.0936},$et={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Ln,yards:1.0936133};function RN(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function LN(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return RN(o,A,j)}function CN(t,A,j){j===void 0&&(j={});var e={type:"MultiPolygon",coordinates:t};return RN(e,A,j)}function Z1(t){return t.type==="Feature"?t.geometry:t}function EcA(t,A){var j=Z1(t),e=Z1(A),r=t.properties||{},n=HN.default.difference(j.coordinates,e.coordinates);return n.length===0?null:n.length===1?LN(n[0],r):CN(n,r)}var kf=EcA;var Cn=63710088e-1,$cA={centimeters:Cn*100,centimetres:Cn*100,degrees:Cn/111325,feet:Cn*3.28084,inches:Cn*39.37,kilometers:Cn/1e3,kilometres:Cn/1e3,meters:Cn,metres:Cn,miles:Cn/1609.344,millimeters:Cn*1e3,millimetres:Cn*1e3,nauticalmiles:Cn/1852,radians:1,yards:Cn*1.0936},wet={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Cn,yards:1.0936133};function DN(t,A){A===void 0&&(A="kilometers");var j=$cA[A];if(!j)throw new Error(A+" units is invalid");return t*j}function c0(t){var A=t%360;return A*Math.PI/180}function AP(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function xcA(t,A,j){j===void 0&&(j={});var e=AP(t),r=AP(A),n=c0(r[1]-e[1]),i=c0(r[0]-e[0]),o=c0(e[1]),l=c0(r[1]),c=Math.pow(Math.sin(n/2),2)+Math.pow(Math.sin(i/2),2)*Math.cos(o)*Math.cos(l);return DN(2*Math.atan2(Math.sqrt(c),Math.sqrt(1-c)),j.units)}var yt=xcA;var jP=Ws(KN(),1);var Dn=63710088e-1,qcA={centimeters:Dn*100,centimetres:Dn*100,degrees:Dn/111325,feet:Dn*3.28084,inches:Dn*39.37,kilometers:Dn/1e3,kilometres:Dn/1e3,meters:Dn,metres:Dn,miles:Dn/1609.344,millimeters:Dn*1e3,millimetres:Dn*1e3,nauticalmiles:Dn/1852,radians:1,yards:Dn*1.0936},jrt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Dn,yards:1.0936133};function bcA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function XN(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!eP(t[0])||!eP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return bcA(e,A,j)}function zN(t,A){A===void 0&&(A="kilometers");var j=qcA[A];if(!j)throw new Error(A+" units is invalid");return t/j}function rP(t){var A=t%(2*Math.PI);return A*180/Math.PI}function Xy(t){var A=t%360;return A*Math.PI/180}function eP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function UN(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function Er(t,A,j,e){e===void 0&&(e={});var r=UN(t),n=Xy(r[0]),i=Xy(r[1]),o=Xy(j),l=zN(A,e.units),c=Math.asin(Math.sin(i)*Math.cos(l)+Math.cos(i)*Math.sin(l)*Math.cos(o)),B=n+Math.atan2(Math.sin(o)*Math.sin(l)*Math.cos(i),Math.cos(l)-Math.sin(i)*Math.sin(c)),h=rP(B),d=rP(c);return XN([h,d],e.properties)}var Nn=63710088e-1,art={centimeters:Nn*100,centimetres:Nn*100,degrees:Nn/111325,feet:Nn*3.28084,inches:Nn*39.37,kilometers:Nn/1e3,kilometres:Nn/1e3,meters:Nn,metres:Nn,miles:Nn/1609.344,millimeters:Nn*1e3,millimetres:Nn*1e3,nauticalmiles:Nn/1852,radians:1,yards:Nn*1.0936},lrt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Nn,yards:1.0936133};function VN(t){var A=t%(2*Math.PI);return A*180/Math.PI}function B0(t){var A=t%360;return A*Math.PI/180}function nP(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function Fj(t,A,j){if(j===void 0&&(j={}),j.final===!0)return GcA(t,A);var e=nP(t),r=nP(A),n=B0(e[0]),i=B0(r[0]),o=B0(e[1]),l=B0(r[1]),c=Math.sin(i-n)*Math.cos(l),B=Math.cos(o)*Math.sin(l)-Math.sin(o)*Math.cos(l)*Math.cos(i-n);return VN(Math.atan2(c,B))}function GcA(t,A){var j=Fj(A,t);return j=(j+180)%360,j}var Kn=63710088e-1,QN={centimeters:Kn*100,centimetres:Kn*100,degrees:Kn/111325,feet:Kn*3.28084,inches:Kn*39.37,kilometers:Kn/1e3,kilometres:Kn/1e3,meters:Kn,metres:Kn,miles:Kn/1609.344,millimeters:Kn*1e3,millimetres:Kn*1e3,nauticalmiles:Kn/1852,radians:1,yards:Kn*1.0936},krt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Kn,yards:1.0936133};function ll(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function oP(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!iP(t[0])||!iP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return ll(e,A,j)}function zy(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return ll(e,A,j)}function wcA(t,A){A===void 0&&(A="kilometers");var j=QN[A];if(!j)throw new Error(A+" units is invalid");return t*j}function FcA(t,A){A===void 0&&(A="kilometers");var j=QN[A];if(!j)throw new Error(A+" units is invalid");return t/j}function WN(t,A,j){if(A===void 0&&(A="kilometers"),j===void 0&&(j="kilometers"),!(t>=0))throw new Error("length must be a positive number");return wcA(FcA(t,A),j)}function iP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function sP(t,A,j){if(!t)throw new Error("No feature passed");if(!j)throw new Error(".featureOf() requires a name");if(!t||t.type!=="Feature"||!t.geometry)throw new Error("Invalid input to "+j+", Feature with geometry required");if(!t.geometry||t.geometry.type!==A)throw new Error("Invalid input to "+j+": must be a "+A+", given "+t.geometry.type)}function YN(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(YN(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function PcA(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function IcA(t,A){PcA(t,function(j,e,r,n,i){var o=j===null?null:j.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(ll(j,r,{bbox:n,id:i}),e,0)===!1?!1:void 0}var l;switch(o){case"MultiPoint":l="Point";break;case"MultiLineString":l="LineString";break;case"MultiPolygon":l="Polygon";break}for(var c=0;c<j.coordinates.length;c++){var B=j.coordinates[c],h={type:l,coordinates:B};if(A(ll(h,r),e,c)===!1)return!1}})}function JN(t,A){IcA(t,function(j,e,r){var n=0;if(j.geometry){var i=j.geometry.type;if(!(i==="Point"||i==="MultiPoint")){var o,l=0,c=0,B=0;if(YN(j,function(h,d,k,m,$){if(o===void 0||e>l||m>c||$>B){o=h,l=e,c=m,B=$,n=0;return}var g=zy([o,h],j.properties);if(A(g,e,r,$,n)===!1)return!1;n++,o=h})===!1)return!1}}})}var Hr=63710088e-1,ZN={centimeters:Hr*100,centimetres:Hr*100,degrees:Hr/111325,feet:Hr*3.28084,inches:Hr*39.37,kilometers:Hr/1e3,kilometres:Hr/1e3,meters:Hr,metres:Hr,miles:Hr/1609.344,millimeters:Hr*1e3,millimetres:Hr*1e3,nauticalmiles:Hr/1852,radians:1,yards:Hr*1.0936},vrt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Hr,yards:1.0936133};function McA(t,A){A===void 0&&(A="kilometers");var j=ZN[A];if(!j)throw new Error(A+" units is invalid");return t*j}function OcA(t,A){A===void 0&&(A="kilometers");var j=ZN[A];if(!j)throw new Error(A+" units is invalid");return t/j}function A3(t,A,j){if(A===void 0&&(A="kilometers"),j===void 0&&(j="kilometers"),!(t>=0))throw new Error("length must be a positive number");return McA(OcA(t,A),j)}function aP(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function TcA(t,A,j){j===void 0&&(j={});var e=aP(t),r=aP(A);r[0]+=r[0]-e[0]>180?-360:e[0]-r[0]>180?360:0;var n=ScA(e,r),i=A3(n,"meters",j.units);return i}function ScA(t,A,j){j=j===void 0?Hr:Number(j);var e=j,r=t[1]*Math.PI/180,n=A[1]*Math.PI/180,i=n-r,o=Math.abs(A[0]-t[0])*Math.PI/180;o>Math.PI&&(o-=2*Math.PI);var l=Math.log(Math.tan(n/2+Math.PI/4)/Math.tan(r/2+Math.PI/4)),c=Math.abs(l)>1e-11?i/l:Math.cos(r),B=Math.sqrt(i*i+c*c*o*o),h=B*e;return h}var cl=TcA;function RcA(t,A,j){if(j===void 0&&(j={}),j.method||(j.method="geodesic"),j.units||(j.units="kilometers"),!t)throw new Error("pt is required");if(Array.isArray(t)?t=oP(t):t.type==="Point"?t=ll(t):sP(t,"Point","point"),!A)throw new Error("line is required");Array.isArray(A)?A=zy(A):A.type==="LineString"?A=ll(A):sP(A,"LineString","line");var e=1/0,r=t.geometry.coordinates;return JN(A,function(n){var i=n.geometry.coordinates[0],o=n.geometry.coordinates[1],l=LcA(r,i,o,j);l<e&&(e=l)}),WN(e,"degrees",j.units)}function LcA(t,A,j,e){var r=[j[0]-A[0],j[1]-A[1]],n=[t[0]-A[0],t[1]-A[1]],i=t3(n,r);if(i<=0)return lP(t,A,{method:e.method,units:"degrees"});var o=t3(r,r);if(o<=i)return lP(t,j,{method:e.method,units:"degrees"});var l=i/o,c=[A[0]+l*r[0],A[1]+l*r[1]];return lP(t,c,{method:e.method,units:"degrees"})}function t3(t,A){return t[0]*A[0]+t[1]*A[1]}function lP(t,A,j){return j.method==="planar"?cl(t,A,j):yt(t,A,j)}var cP=RcA;function Ae(t,A,j){return(A=TD(A))in t?Object.defineProperty(t,A,{value:j,enumerable:!0,configurable:!0,writable:!0}):t[A]=j,t}function gf(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function ul(t,A){let j=YD([],A,t);return WD(j,j,1/j[3]),j}function f0(t,A,j){return t<A?A:t>j?j:t}function CcA(t){return Math.log(t)*Math.LOG2E}var Uy=Math.log2||CcA;function Io(t,A){if(!t)throw new Error(A||"@math.gl/web-mercator: assertion failed.")}var Mo=Math.PI,e3=Mo/4,_s=Mo/180,uP=180/Mo,h0=512,j3=4003e4,Ef=85.051129,BP=1.5;function Vy(t){return Math.pow(2,t)}function qs(t){let[A,j]=t;Io(Number.isFinite(A)),Io(Number.isFinite(j)&&j>=-90&&j<=90,"invalid latitude");let e=A*_s,r=j*_s,n=h0*(e+Mo)/(2*Mo),i=h0*(Mo+Math.log(Math.tan(e3+r*.5)))/(2*Mo);return[n,i]}function Oo(t){let[A,j]=t,e=A/h0*(2*Mo)-Mo,r=2*(Math.atan(Math.exp(j/h0*(2*Mo)-Mo))-e3);return[e*uP,r*uP]}function fP(t){let{latitude:A,longitude:j,highPrecision:e=!1}=t;Io(Number.isFinite(A)&&Number.isFinite(j));let r=h0,n=Math.cos(A*_s),i=r/360,o=i/n,l=r/j3/n,c={unitsPerMeter:[l,l,l],metersPerUnit:[1/l,1/l,1/l],unitsPerDegree:[i,o,l],degreesPerUnit:[1/i,1/o,1/l]};if(e){let B=_s*Math.tan(A*_s)/n,h=i*B/2,d=r/j3*B,k=d/o*l;c.unitsPerDegree2=[0,h,d],c.unitsPerMeter2=[k,0,k]}return c}function hP(t){let{height:A,pitch:j,bearing:e,altitude:r,scale:n,center:i}=t,o=gf();Jk(o,o,[0,0,-r]),zD(o,o,-j*_s),UD(o,o,e*_s);let l=n/A;return fy(o,o,[l,l,l]),i&&Jk(o,o,DD([],i)),o}function r3(t){let{width:A,height:j,altitude:e,pitch:r=0,offset:n,center:i,scale:o,nearZMultiplier:l=1,farZMultiplier:c=1}=t,{fovy:B=mf(BP)}=t;e!==void 0&&(B=mf(e));let h=B*_s,d=r*_s,k=Qy(B),m=k;i&&(m+=i[2]*o/Math.cos(d)/j);let $=h*(.5+(n?n[1]:0)/j),g=Math.sin($)*m/Math.sin(f0(Math.PI/2-d-$,.01,Math.PI-.01)),y=Math.sin(d)*g+m,b=m*10,v=Math.min(y*c,b);return{fov:h,aspect:A/j,focalDistance:k,near:l,far:v}}function dP(t){let{fov:A,aspect:j,near:e,far:r}=r3(t);return VD([],A,j,e,r)}function mf(t){return 2*Math.atan(.5/t)*uP}function Qy(t){return .5/Math.tan(.5*t*_s)}function pP(t,A){let[j,e,r=0]=t;return Io(Number.isFinite(j)&&Number.isFinite(e)&&Number.isFinite(r)),ul(A,[j,e,r,1])}function Wy(t,A,j=0){let[e,r,n]=t;if(Io(Number.isFinite(e)&&Number.isFinite(r),"invalid pixel coordinate"),Number.isFinite(n))return ul(A,[e,r,n,1]);let i=ul(A,[e,r,0,1]),o=ul(A,[e,r,1,1]),l=i[2],c=o[2],B=l===c?0:((j||0)-l)/(c-l);return uy([],i,o,B)}function Yy(t){let{width:A,height:j,bounds:e,minExtent:r=0,maxZoom:n=24,offset:i=[0,0]}=t,[[o,l],[c,B]]=e,h=HcA(t.padding),d=qs([o,f0(B,-Ef,Ef)]),k=qs([c,f0(l,-Ef,Ef)]),m=[Math.max(Math.abs(k[0]-d[0]),r),Math.max(Math.abs(k[1]-d[1]),r)],$=[A-h.left-h.right-Math.abs(i[0])*2,j-h.top-h.bottom-Math.abs(i[1])*2];Io($[0]>0&&$[1]>0);let g=$[0]/m[0],y=$[1]/m[1],b=(h.right-h.left)/2/g,v=(h.top-h.bottom)/2/y,q=[(k[0]+d[0])/2+b,(k[1]+d[1])/2+v],G=Oo(q),x=Math.min(n,Uy(Math.abs(Math.min(g,y))));return Io(Number.isFinite(x)),{longitude:G[0],latitude:G[1],zoom:x}}function HcA(t=0){return typeof t=="number"?{top:t,bottom:t,left:t,right:t}:(Io(Number.isFinite(t.top)&&Number.isFinite(t.bottom)&&Number.isFinite(t.left)&&Number.isFinite(t.right)),t)}var n3=Math.PI/180;function Jy(t,A=0){let{width:j,height:e,unproject:r}=t,n={targetZ:A},i=r([0,e],n),o=r([j,e],n),l,c,B=t.fovy?.5*t.fovy*n3:Math.atan(.5/t.altitude),h=(90-t.pitch)*n3;return B>h-.01?(l=i3(t,0,A),c=i3(t,j,A)):(l=r([0,0],n),c=r([j,0],n)),[i,o,c,l]}function i3(t,A,j){let{pixelUnprojectionMatrix:e}=t,r=ul(e,[A,0,1,1]),n=ul(e,[A,t.height,1,1]),o=(j*t.distanceScales.unitsPerMeter[2]-r[2])/(n[2]-r[2]),l=uy([],r,n,o),c=Oo(l);return c.push(j),c}var Si=class t{constructor(A={width:1,height:1}){Ae(this,"latitude",void 0),Ae(this,"longitude",void 0),Ae(this,"zoom",void 0),Ae(this,"pitch",void 0),Ae(this,"bearing",void 0),Ae(this,"altitude",void 0),Ae(this,"fovy",void 0),Ae(this,"meterOffset",void 0),Ae(this,"center",void 0),Ae(this,"width",void 0),Ae(this,"height",void 0),Ae(this,"scale",void 0),Ae(this,"distanceScales",void 0),Ae(this,"viewMatrix",void 0),Ae(this,"projectionMatrix",void 0),Ae(this,"viewProjectionMatrix",void 0),Ae(this,"pixelProjectionMatrix",void 0),Ae(this,"pixelUnprojectionMatrix",void 0),Ae(this,"equals",y=>y instanceof t?y.width===this.width&&y.height===this.height&&_1(y.projectionMatrix,this.projectionMatrix)&&_1(y.viewMatrix,this.viewMatrix):!1),Ae(this,"project",(y,b={})=>{let{topLeft:v=!0}=b,q=this.projectPosition(y),G=pP(q,this.pixelProjectionMatrix),[x,S]=G,w=v?S:this.height-S;return y.length===2?[x,w]:[x,w,G[2]]}),Ae(this,"unproject",(y,b={})=>{let{topLeft:v=!0,targetZ:q=void 0}=b,[G,x,S]=y,w=v?x:this.height-x,K=q&&q*this.distanceScales.unitsPerMeter[2],C=Wy([G,w,S],this.pixelUnprojectionMatrix,K),[U,T,Y]=this.unprojectPosition(C);return Number.isFinite(S)?[U,T,Y]:Number.isFinite(q)?[U,T,q]:[U,T]}),Ae(this,"projectPosition",y=>{let[b,v]=qs(y),q=(y[2]||0)*this.distanceScales.unitsPerMeter[2];return[b,v,q]}),Ae(this,"unprojectPosition",y=>{let[b,v]=Oo(y),q=(y[2]||0)*this.distanceScales.metersPerUnit[2];return[b,v,q]});let{width:j,height:e,altitude:r=null,fovy:n=null}=A,{latitude:i=0,longitude:o=0,zoom:l=0,pitch:c=0,bearing:B=0,position:h=null,nearZMultiplier:d=.02,farZMultiplier:k=1.01}=A;j=j||1,e=e||1,n===null&&r===null?(r=BP,n=mf(r)):n===null?n=mf(r):r===null&&(r=Qy(n));let m=Vy(l);r=Math.max(.75,r);let $=fP({longitude:o,latitude:i}),g=qs([o,i]);g.push(0),h&&HD(g,g,ND([],h,$.unitsPerMeter)),this.projectionMatrix=dP({width:j,height:e,scale:m,center:g,pitch:c,fovy:n,nearZMultiplier:d,farZMultiplier:k}),this.viewMatrix=hP({height:e,scale:m,center:g,pitch:c,bearing:B,altitude:r}),this.width=j,this.height=e,this.scale=m,this.latitude=i,this.longitude=o,this.zoom=l,this.pitch=c,this.bearing=B,this.altitude=r,this.fovy=n,this.center=g,this.meterOffset=h||[0,0,0],this.distanceScales=$,this._initMatrices(),Object.freeze(this)}_initMatrices(){let{width:A,height:j,projectionMatrix:e,viewMatrix:r}=this,n=gf();By(n,n,e),By(n,n,r),this.viewProjectionMatrix=n;let i=gf();fy(i,i,[A/2,-j/2,1]),Jk(i,i,[1,-1,0]),By(i,i,n);let o=XD(gf(),i);if(!o)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=i,this.pixelUnprojectionMatrix=o}projectFlat(A){return qs(A)}unprojectFlat(A){return Oo(A)}getMapCenterByLngLatPosition({lngLat:A,pos:j}){let e=Wy(j,this.pixelUnprojectionMatrix),r=qs(A),n=y1([],r,CD([],e)),i=y1([],this.center,n);return Oo(i)}fitBounds(A,j={}){let{width:e,height:r}=this,{longitude:n,latitude:i,zoom:o}=Yy(Object.assign({width:e,height:r,bounds:A},j));return new t({width:e,height:r,longitude:n,latitude:i,zoom:o})}getBounds(A){let j=this.getBoundingRegion(A),e=Math.min(...j.map(o=>o[0])),r=Math.max(...j.map(o=>o[0])),n=Math.min(...j.map(o=>o[1])),i=Math.max(...j.map(o=>o[1]));return[[e,n],[r,i]]}getBoundingRegion(A={}){return Jy(this,A.z||0)}getLocationAtPoint({lngLat:A,pos:j}){return this.getMapCenterByLngLatPosition({lngLat:A,pos:j})}};function o3(t,A,j){let e=t.indexOf(A);return e<0?t:t.slice(0,e)+j+t.slice(e)}var $f=class extends q6{renderLayers(){let{id:A,getFillColor:j,getStrokeColor:e,getInnerRadius:r,updateTriggers:n}=this.props;return[new ln({...this.props,id:`${A}-full`,data:this.props.data,getLineColor:e,updateTriggers:{...n,getStrokeColor:n.getStrokeColor}}),new ln({...this.props,id:`${A}-inner`,data:this.props.data,getFillColor:j,getRadius:r,pickable:!1,updateTriggers:{...n,getFillColor:n.getFillColor,getRadius:n.getInnerRadius}})]}};P($f,"layerName","JunctionScatterplotLayer"),P($f,"defaultProps",{...ln.defaultProps,getFillColor:A=>[0,0,0,255],getStrokeColor:A=>[255,255,255,255],getInnerRadius:A=>1});var n6t={[Xc.NONE]:{forward:!1,backward:!1},[Xc.FORWARD]:{forward:!0,backward:!1},[Xc.BACKWARD]:{forward:!1,backward:!0},[Xc.BOTH]:{forward:!0,backward:!0}};var u3=Ws(Ny(),1);var Xn=63710088e-1,h6t={centimeters:Xn*100,centimetres:Xn*100,degrees:Xn/111325,feet:Xn*3.28084,inches:Xn*39.37,kilometers:Xn/1e3,kilometres:Xn/1e3,meters:Xn,metres:Xn,miles:Xn/1609.344,millimeters:Xn*1e3,millimetres:Xn*1e3,nauticalmiles:Xn/1852,radians:1,yards:Xn*1.0936},d6t={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Xn,yards:1.0936133};function a3(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function l3(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return a3(o,A,j)}function c3(t,A,j){j===void 0&&(j={});var e={type:"MultiPolygon",coordinates:t};return a3(e,A,j)}function gP(t){return t.type==="Feature"?t.geometry:t}function UcA(t,A,j){j===void 0&&(j={});var e=gP(t),r=gP(A),n=u3.default.union(e.coordinates,r.coordinates);return n.length===0?null:n.length===1?l3(n[0],j.properties):c3(n,j.properties)}var B3=UcA;var zn=63710088e-1,y6t={centimeters:zn*100,centimetres:zn*100,degrees:zn/111325,feet:zn*3.28084,inches:zn*39.37,kilometers:zn/1e3,kilometres:zn/1e3,meters:zn,metres:zn,miles:zn/1609.344,millimeters:zn*1e3,millimetres:zn*1e3,nauticalmiles:zn/1852,radians:1,yards:zn*1.0936},v6t={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/zn,yards:1.0936133};function f3(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function h3(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return f3(o,A,j)}function d3(t,A,j){j===void 0&&(j={});var e={type:"MultiPolygon",coordinates:t};return f3(e,A,j)}function mP(t){return t.type==="Feature"?t.geometry:t}var p3=Ws(Ny(),1);function EP(t,A,j){j===void 0&&(j={});var e=mP(t),r=mP(A),n=p3.default.intersection(e.coordinates,r.coordinates);return n.length===0?null:n.length===1?h3(n[0],j.properties):d3(n,j.properties)}function VcA(t){if(!t)throw new Error("geojson is required");switch(t.type){case"Feature":return k3(t);case"FeatureCollection":return QcA(t);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return $P(t);default:throw new Error("unknown GeoJSON type")}}function k3(t){var A={type:"Feature"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"properties":case"geometry":return;default:A[j]=t[j]}}),A.properties=g3(t.properties),A.geometry=$P(t.geometry),A}function g3(t){var A={};return t&&Object.keys(t).forEach(function(j){var e=t[j];typeof e=="object"?e===null?A[j]=null:Array.isArray(e)?A[j]=e.map(function(r){return r}):A[j]=g3(e):A[j]=e}),A}function QcA(t){var A={type:"FeatureCollection"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"features":return;default:A[j]=t[j]}}),A.features=t.features.map(function(j){return k3(j)}),A}function $P(t){var A={type:t.type};return t.bbox&&(A.bbox=t.bbox),t.type==="GeometryCollection"?(A.geometries=t.geometries.map(function(j){return $P(j)}),A):(A.coordinates=m3(t.coordinates),A)}function m3(t){var A=t;return typeof A[0]!="object"?A.slice():A.map(function(j){return m3(j)})}var Av=VcA;function E3(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function bs(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function tv(t){return t.type==="Feature"?t.geometry:t}function d0(t){for(var A=bs(t),j=0,e=1,r,n;e<A.length;)r=n||A[0],n=A[e],j+=(n[0]-r[0])*(n[1]+r[1]),e++;return j>0}function p0(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(p0(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function xP(t,A){if(t.type==="Feature")A(t,0);else if(t.type==="FeatureCollection")for(var j=0;j<t.features.length&&A(t.features[j],j)!==!1;j++);}function k0(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function $3(t,A,j){var e=j;return k0(t,function(r,n,i,o,l){n===0&&j===void 0?e=r:e=A(e,r,n,i,o,l)}),e}function x3(t,A){k0(t,function(j,e,r,n,i){var o=j===null?null:j.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(A0(j,r,{bbox:n,id:i}),e,0)===!1?!1:void 0}var l;switch(o){case"MultiPoint":l="Point";break;case"MultiLineString":l="LineString";break;case"MultiPolygon":l="Polygon";break}for(var c=0;c<j.coordinates.length;c++){var B=j.coordinates[c],h={type:l,coordinates:B};if(A(A0(h,r),e,c)===!1)return!1}})}function WcA(t,A){if(A=A||{},!G1(A))throw new Error("options is invalid");var j=A.reverse||!1,e=A.mutate||!1;if(!t)throw new Error("<geojson> is required");if(typeof j!="boolean")throw new Error("<reverse> must be a boolean");if(typeof e!="boolean")throw new Error("<mutate> must be a boolean");e===!1&&(t=Av(t));var r=[];switch(t.type){case"GeometryCollection":return k0(t,function(n){jv(n,j)}),t;case"FeatureCollection":return xP(t,function(n){xP(jv(n,j),function(i){r.push(i)})}),za(r)}return jv(t,j)}function jv(t,A){var j=t.type==="Feature"?t.geometry.type:t.type;switch(j){case"GeometryCollection":return k0(t,function(e){jv(e,A)}),t;case"LineString":return y3(bs(t),A),t;case"Polygon":return v3(bs(t),A),t;case"MultiLineString":return bs(t).forEach(function(e){y3(e,A)}),t;case"MultiPolygon":return bs(t).forEach(function(e){v3(e,A)}),t;case"Point":case"MultiPoint":return t}}function y3(t,A){d0(t)===A&&t.reverse()}function v3(t,A){d0(t[0])!==A&&t[0].reverse();for(var j=1;j<t.length;j++)d0(t[j])===A&&t[j].reverse()}var _3=WcA;function ev(t,A,j){if(!Array.isArray(t[0]))return!0;for(let e=0;e<t.length;e++)if(ev(t[e],[...A,e],j)){j(t,A);break}return!1}function Va(t,A,j){let e={type:"LineString",coordinates:[t,A]},r=Xt(j),n=cP(r,e),i=Fj(t,A),l=(j[0]-t[0])*(A[1]-t[1])-(j[1]-t[1])*(A[0]-t[0])<0?i-90:i-270,c=Er(A,n,l),B=Er(t,n,l);return[c.geometry.coordinates,B.geometry.coordinates]}function q3(t,A,j,e){let r=t-j,n=A-e;return Math.sqrt(r*r+n*n)}function YcA(t,A,j){return A*j+t*(1-j)}function vP(t,A,j){let e=new Si(j),n=t.geometry.coordinates.map(([S,w,K=0])=>e.project([S,w,K])),[i,o]=e.project(A.geometry.coordinates),l=1/0,c={};n.forEach(([S,w],K)=>{if(K===0)return;let[C,U]=n[K-1],T=U-w,Y=S-C,L=C*w-S*U,nA=T*T+Y*Y,M=Math.abs(T*i+Y*o+L)/Math.sqrt(nA);M<l&&(l=M,c={index:K,x0:(Y*(Y*i-T*o)-T*L)/nA,y0:(T*(-Y*i+T*o)-Y*L)/nA})});let{index:B,x0:h,y0:d}=c,[k,m,$=0]=n[B-1],[g,y,b=0]=n[B],v=q3(k,m,g,y),G=q3(k,m,h,d)/v,x=YcA($,b,G);return{type:"Feature",geometry:{type:"Point",coordinates:e.unproject([h,d,x])},properties:{dist:l,index:B-1}}}function b3(t,A,j){let e;j&&(e=new Si(j));let r=Xt([1/0,1/0],{dist:1/0});return!t.geometry?.coordinates.length||t.geometry?.coordinates.length<2||x3(t,n=>{let i=bs(n),o=bs(A),l,c,B,h,d,k,m;if(i.length>1&&o.length){let g,y;e?(g=i.map(q=>e.project(q)),y=e.project(o)):(g=i,y=o);for(let q=1;q<g.length;q++){if(g[q][0]!==g[q-1][0]){let C=(g[q][1]-g[q-1][1])/(g[q][0]-g[q-1][0]),U=g[q][1]-C*g[q][0];m=Math.abs(C*y[0]+U-y[1])/Math.sqrt(C*C+1)}else m=Math.abs(y[0]-g[q][0]);let G=Math.pow(g[q][1]-g[q-1][1],2)+Math.pow(g[q][0]-g[q-1][0],2),x=Math.pow(g[q][1]-y[1],2)+Math.pow(g[q][0]-y[0],2),S=Math.pow(g[q-1][1]-y[1],2)+Math.pow(g[q-1][0]-y[0],2),w=Math.pow(m,2),K=x-w+S-w;K>G&&(m=Math.sqrt(Math.min(x,S))),(l==null||l>m)&&(K>G?S<x?(c=0,B=1):(B=0,c=1):(c=Math.sqrt(S-w)/Math.sqrt(G),B=Math.sqrt(x-w)/Math.sqrt(G)),l=m,k=q)}let b=g[k-1][0]-g[k][0],v=g[k-1][1]-g[k][1];h=g[k-1][0]-b*c,d=g[k-1][1]-v*c}let $={x:h,y:d,idx:k-1,to:c,from:B};if(e){let g=e.unproject([$.x,$.y]);$={x:g[0],y:g[1],idx:k-1,to:c,from:B}}r=Xt([$.x,$.y],{dist:Math.abs($.from-$.to),index:$.idx})}),r}function te(t){let A=To(t);return A.length?A[0]:null}function G3(t){return To(t).find(j=>j.properties.editHandleType==="snap-source")}function w3(t){return t&&t.filter(A=>!A.isGuide)}function _P(t){return To(t).find(({properties:j})=>j.featureIndex>=0&&j.editHandleType==="existing")}function g0(t){return To(t).find(({properties:j})=>j.featureIndex>=0&&j.editHandleType==="intermediate")}function To(t){return t&&t.filter(j=>j.isGuide&&j.object.properties.guideType==="editHandle").map(j=>j.object)||[]}function Bl(t,A,j="existing"){let e=[];switch(t.type){case"Point":e=[{type:"Feature",properties:{guideType:"editHandle",editHandleType:j,positionIndexes:[],featureIndex:A},geometry:{type:"Point",coordinates:t.coordinates}}];break;case"MultiPoint":case"LineString":e=e.concat(yP(t.coordinates,[],A,j));break;case"Polygon":case"MultiLineString":for(let r=0;r<t.coordinates.length;r++)e=e.concat(yP(t.coordinates[r],[r],A,j)),t.type==="Polygon"&&(e=e.slice(0,-1));break;case"MultiPolygon":for(let r=0;r<t.coordinates.length;r++)for(let n=0;n<t.coordinates[r].length;n++)e=e.concat(yP(t.coordinates[r][n],[r,n],A,j)),e=e.slice(0,-1);break;default:throw Error(`Unhandled geometry type: ${t.type}`)}return e}function yP(t,A,j,e="existing"){let r=[];for(let n=0;n<t.length;n++){let i=t[n];r.push({type:"Feature",properties:{guideType:"editHandle",positionIndexes:[...A,n],featureIndex:j,editHandleType:e},geometry:{type:"Point",coordinates:i}})}return r}function F3(t,A,j){let e=t.geometry.coordinates;if(!e)return null;let r=e[0].slice(0,4);r[A%4]=j;let n=r[(A+2)%4],i=r[A%4];return r[(A+1)%4]=[i[0],n[1]],r[(A+3)%4]=[n[0],i[1]],[[...r,r[0]]]}function m0(t,A){return typeof t[0]=="number"?!isNaN(t[0])&&isFinite(t[0])?A(t):t:t.map(j=>m0(j,A)).filter(Boolean)}var Pj=class t{constructor(A){P(this,"featureCollection");this.featureCollection=A}getObject(){return this.featureCollection}replacePosition(A,j,e){let r=this.featureCollection.features[A].geometry,n=r.type==="Polygon"||r.type==="MultiPolygon",i={...r,coordinates:P3(r.coordinates,j,e,n)};return this.replaceGeometry(A,i)}removePosition(A,j){let e=this.featureCollection.features[A].geometry;if(e.type==="Point")throw Error("Can't remove a position from a Point or there'd be nothing left");if(e.type==="MultiPoint"&&e.coordinates.length<2)throw Error("Can't remove the last point of a MultiPoint or there'd be nothing left");if(e.type==="LineString"&&e.coordinates.length<3)throw Error("Can't remove position. LineString must have at least two positions");if(e.type==="Polygon"&&e.coordinates[0].length<5&&Array.isArray(j)&&j[0]===0)throw Error("Can't remove position. Polygon's outer ring must have at least four positions");if(e.type==="MultiLineString"&&e.coordinates.length===1&&e.coordinates[0].length<3)throw Error("Can't remove position. MultiLineString must have at least two positions");if(e.type==="MultiPolygon"&&e.coordinates.length===1&&e.coordinates[0][0].length<5&&Array.isArray(j)&&j[0]===0&&j[1]===0)throw Error("Can't remove position. MultiPolygon's outer ring must have at least four positions");let r=e.type==="Polygon"||e.type==="MultiPolygon",n={...e,coordinates:I3(e.coordinates,j,r)};return JcA(n),this.replaceGeometry(A,n)}addPosition(A,j,e){let r=this.featureCollection.features[A].geometry;if(r.type==="Point")throw new Error("Unable to add a position to a Point feature");let n=r.type==="Polygon"||r.type==="MultiPolygon",i={...r,coordinates:M3(r.coordinates,j,e,n)};return this.replaceGeometry(A,i)}replaceGeometry(A,j){let e={...this.featureCollection.features[A],geometry:j},r={...this.featureCollection,features:[...this.featureCollection.features.slice(0,A),e,...this.featureCollection.features.slice(A+1)]};return new t(r)}addFeature(A){return this.addFeatures([A])}addFeatures(A){let j={...this.featureCollection,features:[...this.featureCollection.features,...A]};return new t(j)}deleteFeature(A){return this.deleteFeatures([A])}deleteFeatures(A){let j=[...this.featureCollection.features];A.sort();for(let r=A.length-1;r>=0;r--){let n=A[r];n>=0&&n<j.length&&j.splice(n,1)}let e={...this.featureCollection,features:j};return new t(e)}};function rv(t,A){if(t.length===2&&A.length===3){let j=A[2];return[t[0],t[1],j]}return t}function P3(t,A,j,e){if(!A)return t;if(A.length===0)return rv(j,t);if(A.length===1){let r=[...t.slice(0,A[0]),rv(j,t[A[0]]),...t.slice(A[0]+1)];return e&&(A[0]===0||A[0]===t.length-1)&&(r[0]=rv(j,t[0]),r[t.length-1]=rv(j,t[0])),r}return[...t.slice(0,A[0]),P3(t[A[0]],A.slice(1,A.length),j,e),...t.slice(A[0]+1)]}function I3(t,A,j){if(!A)return t;if(A.length===0)throw Error("Must specify the index of the position to remove");if(A.length===1){let e=[...t.slice(0,A[0]),...t.slice(A[0]+1)];return j&&(A[0]===0||A[0]===t.length-1)&&(A[0]===0?e[e.length-1]=e[0]:A[0]===t.length-1&&(e[0]=e[e.length-1])),e}return[...t.slice(0,A[0]),I3(t[A[0]],A.slice(1,A.length),j),...t.slice(A[0]+1)]}function M3(t,A,j,e){if(!A)return t;if(A.length===0)throw Error("Must specify the index of the position to remove");return A.length===1?[...t.slice(0,A[0]),j,...t.slice(A[0])]:[...t.slice(0,A[0]),M3(t[A[0]],A.slice(1,A.length),j,e),...t.slice(A[0]+1)]}function JcA(t){switch(t.type){case"Polygon":ZcA(t);break;case"MultiLineString":AuA(t);break;case"MultiPolygon":tuA(t);break;default:break}}function ZcA(t){let A=t.coordinates;for(let j=1;j<A.length;j++)O3(A,j)&&j--}function AuA(t){for(let A=0;A<t.coordinates.length;A++)t.coordinates[A].length===1&&(t.coordinates.splice(A,1),A--)}function tuA(t){for(let A=0;A<t.coordinates.length;A++){let j=t.coordinates[A];j[0].length<=3&&(t.coordinates.splice(A,1),A--);for(let r=1;r<j.length;r++)O3(j,r)&&r--}}function O3(t,A){return t[A].length<=3?(t.splice(A,1),!0):!1}var juA={type:"FeatureCollection",features:[]},euA=[],Qt=class{constructor(){P(this,"_clickSequence",[])}getGuides(A){return juA}getTooltips(A){return euA}getSelectedFeature(A){return A.selectedIndexes.length===1?A.data.features[A.selectedIndexes[0]]:null}getSelectedGeometry(A){let j=this.getSelectedFeature(A);return j?j.geometry:null}getSelectedFeaturesAsFeatureCollection(A){let{features:j}=A.data;return{type:"FeatureCollection",features:A.selectedIndexes.map(r=>j[r])}}getClickSequence(){return this._clickSequence}addClickSequence({mapCoords:A}){this._clickSequence.push(A)}resetClickSequence(){this._clickSequence=[]}getTentativeGuide(A){return this.getGuides(A).features.find(e=>e.properties&&e.properties.guideType==="tentative")}isSelectionPicked(A,j){if(!A.length)return!1;let e=w3(A).map(({index:i})=>i),r=To(A).map(({properties:i})=>i.featureIndex),n=new Set([...e,...r]);return j.selectedIndexes.some(i=>n.has(i))}rewindPolygon(A){let{geometry:j}=A;return j.type==="Polygon"||j.type==="MultiPolygon"?_3(A):A}getAddFeatureAction(A,j){let e=A,r=e.type==="Feature"?e:{type:"Feature",properties:{},geometry:e},n=this.rewindPolygon(r),i=new Pj(j).addFeature(n).getObject();return{updatedData:i,editType:"addFeature",editContext:{featureIndexes:[i.features.length-1]}}}getAddManyFeaturesAction({features:A},j){let e=new Pj(j),r=e.getObject().features.length,n=[];for(let i of A){let{properties:o,geometry:l}=i,c=l;e=e.addFeature({type:"Feature",properties:o,geometry:c}),n.push(r+n.length)}return{updatedData:e.getObject(),editType:"addFeature",editContext:{featureIndexes:n}}}getAddFeatureOrBooleanPolygonAction(A,j){let e=A,r=this.getSelectedFeature(j),{modeConfig:n}=j;if(n&&n.booleanOperation){if(!r||r.geometry.type!=="Polygon"&&r.geometry.type!=="MultiPolygon")return console.warn("booleanOperation only supported for single Polygon or MultiPolygon selection"),null;let i=e.type==="Feature"?e:{type:"Feature",geometry:e},o;if(n.booleanOperation==="union")o=B3(r,i);else if(n.booleanOperation==="difference")o=kf(r,i);else if(n.booleanOperation==="intersection")o=EP(r,i);else return console.warn(`Invalid booleanOperation ${n.booleanOperation}`),null;if(!o)return console.warn("Canceling edit. Boolean operation erased entire polygon."),null;let l=j.selectedIndexes[0];return{updatedData:new Pj(j.data).replaceGeometry(l,o.geometry).getObject(),editType:"unionGeometry",editContext:{featureIndexes:[l]}}}return this.getAddFeatureAction(A,j.data)}createTentativeFeature(A){return null}handleClick(A,j){}handlePointerMove(A,j){let e=this.createTentativeFeature(j);e&&j.onEdit({updatedData:j.data,editType:"updateTentativeFeature",editContext:{feature:e}})}handleStartDragging(A,j){}handleStopDragging(A,j){}handleDragging(A,j){}handleKeyUp(A,j){A.key==="Escape"&&(this.resetClickSequence(),j.onEdit({updatedData:j.data,editType:"cancelFeature",editContext:{}}))}};function fl(t,A){return[(t[0]+A[0])/2,(t[1]+A[1])/2]}var Dr=class extends Qt{};var Un=63710088e-1,uit={centimeters:Un*100,centimetres:Un*100,degrees:Un/111325,feet:Un*3.28084,inches:Un*39.37,kilometers:Un/1e3,kilometres:Un/1e3,meters:Un,metres:Un,miles:Un/1609.344,millimeters:Un*1e3,millimetres:Un*1e3,nauticalmiles:Un/1852,radians:1,yards:Un*1.0936},Bit={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Un,yards:1.0936133};function T3(t){var A=t%(2*Math.PI);return A*180/Math.PI}function nv(t){var A=t%360;return A*Math.PI/180}function E0(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function ruA(t,A,j){j===void 0&&(j={});var e;j.final?e=S3(E0(A),E0(t)):e=S3(E0(t),E0(A));var r=e>180?-(360-e):e;return r}function S3(t,A){var j=nv(t[1]),e=nv(A[1]),r=nv(A[0]-t[0]);r>Math.PI&&(r-=2*Math.PI),r<-Math.PI&&(r+=2*Math.PI);var n=Math.log(Math.tan(e/2+Math.PI/4)/Math.tan(j/2+Math.PI/4)),i=Math.atan2(r,n);return(T3(i)+360)%360}var xf=ruA;var Nr=63710088e-1,R3={centimeters:Nr*100,centimetres:Nr*100,degrees:Nr/111325,feet:Nr*3.28084,inches:Nr*39.37,kilometers:Nr/1e3,kilometres:Nr/1e3,meters:Nr,metres:Nr,miles:Nr/1609.344,millimeters:Nr*1e3,millimetres:Nr*1e3,nauticalmiles:Nr/1852,radians:1,yards:Nr*1.0936},Eit={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Nr,yards:1.0936133};function nuA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function L3(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!qP(t[0])||!qP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return nuA(e,A,j)}function iuA(t,A){A===void 0&&(A="kilometers");var j=R3[A];if(!j)throw new Error(A+" units is invalid");return t*j}function ouA(t,A){A===void 0&&(A="kilometers");var j=R3[A];if(!j)throw new Error(A+" units is invalid");return t/j}function bP(t){var A=t%360;return A*Math.PI/180}function C3(t,A,j){if(A===void 0&&(A="kilometers"),j===void 0&&(j="kilometers"),!(t>=0))throw new Error("length must be a positive number");return iuA(ouA(t,A),j)}function qP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function H3(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function suA(t,A,j,e){e===void 0&&(e={});var r=A<0,n=C3(Math.abs(A),e.units,"meters");r&&(n=-Math.abs(n));var i=H3(t),o=auA(i,n,j);return o[0]+=o[0]-i[0]>180?-360:i[0]-o[0]>180?360:0,L3(o,e.properties)}function auA(t,A,j,e){e=e===void 0?Nr:Number(e);var r=A/e,n=t[0]*Math.PI/180,i=bP(t[1]),o=bP(j),l=r*Math.cos(o),c=i+l;Math.abs(c)>Math.PI/2&&(c=c>0?Math.PI-c:-Math.PI-c);var B=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(i/2+Math.PI/4)),h=Math.abs(B)>1e-11?l/B:Math.cos(i),d=r*Math.sin(o)/h,k=n+d;return[(k*180/Math.PI+540)%360-180,c*180/Math.PI]}var Gs=suA;function D3(t,A,j){let e=ol(t),r=Gs(e,A,j),n=m0(t.geometry.coordinates,i=>{let o=cl(e.geometry.coordinates,i),l=xf(e.geometry.coordinates,i);return Gs(r.geometry.coordinates,o,l).geometry.coordinates});return t.geometry.coordinates=n,t}var ws=class extends Qt{constructor(){super(...arguments);P(this,"_geometryBeforeTranslate");P(this,"_isTranslatable")}handleDragging(j,e){if(this._isTranslatable){if(this._geometryBeforeTranslate){let r=this.getTranslateAction(j.pointerDownMapCoords,j.mapCoords,"translating",e);r&&e.onEdit(r)}j.cancelPan()}}handlePointerMove(j,e){this._isTranslatable=this.isSelectionPicked(j.pointerDownPicks||j.picks,e),this.updateCursor(e)}handleStartDragging(j,e){this._isTranslatable&&(this._geometryBeforeTranslate=this.getSelectedFeaturesAsFeatureCollection(e))}handleStopDragging(j,e){if(this._geometryBeforeTranslate){let r=this.getTranslateAction(j.pointerDownMapCoords,j.mapCoords,"translated",e);r&&e.onEdit(r),this._geometryBeforeTranslate=null}}updateCursor(j){this._isTranslatable?j.onUpdateCursor("move"):j.onUpdateCursor(null)}getTranslateAction(j,e,r,n){if(!this._geometryBeforeTranslate)return null;let i=new Pj(n.data),o=n.selectedIndexes,{viewport:l,screenSpace:c}=n.modeConfig||{};if(l&&c){let B=l.project?l:new Si(l),h=B.project(j),d=B.project(e),k=d[0]-h[0],m=d[1]-h[1];for(let $=0;$<o.length;$++){let g=o[$],y=this._geometryBeforeTranslate.features[$],b=y.geometry.coordinates;b&&(b=m0(b,v=>{let q=B.project(v);return q?(q[0]+=k,q[1]+=m,B.unproject(q)):null}),i=i.replaceGeometry(g,{type:y.geometry.type,coordinates:b}))}}else{let B=Xt(j),h=Xt(e),d=yt(B,h),k=Fj(B,h),m=this._geometryBeforeTranslate.features.map($=>D3(Av($),d,k));for(let $=0;$<o.length;$++){let g=o[$],y=m[$];i=i.replaceGeometry(g,y.geometry)}}return{updatedData:i.getObject(),editType:r,editContext:{featureIndexes:o}}}};var So=class extends Qt{getGuides(A){let j=[],{data:e,lastPointerMoveEvent:r}=A,{features:n}=e,i=r&&r.picks,o=r&&r.mapCoords;for(let l of A.selectedIndexes)if(l<n.length){let{geometry:c}=n[l];j.push(...Bl(c,l))}else console.warn(`selectedFeatureIndexes out of range ${l}`);if(i&&i.length&&o){let c=!_P(i)&&i.find(B=>!B.isGuide);if(c&&!c.object.geometry.type.includes("Point")&&!(A.modeConfig?.lockRectangles&&c.object.properties.shape==="Rectangle")&&A.selectedIndexes.includes(c.index)){let B=null,h=[],d=Xt(o);if(ev(c.object.geometry.coordinates,[],(k,m)=>{let $=gr(k),g=this.getNearestPoint($,d,A.modeConfig&&A.modeConfig.viewport);(!B||g.properties.dist<B.properties.dist)&&(B=g,h=m)}),B){let{geometry:{coordinates:k},properties:{index:m}}=B;j.push({type:"Feature",properties:{guideType:"editHandle",editHandleType:"intermediate",featureIndex:c.index,positionIndexes:[...h,m+1]},geometry:{type:"Point",coordinates:k}})}}}return{type:"FeatureCollection",features:j}}getNearestPoint(A,j,e){let{coordinates:r}=A.geometry;if(r.some(n=>n.length>2)){if(e)return vP(A,j,e);console.log("Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.")}return b3(A,j,e)}handleClick(A,j){let e=_P(A.picks),r=g0(A.picks);if(e){let{featureIndex:n,positionIndexes:i}=e.properties,o;try{o=new Pj(j.data).removePosition(n,i).getObject()}catch{}o&&j.onEdit({updatedData:o,editType:"removePosition",editContext:{featureIndexes:[n],positionIndexes:i,position:e.geometry.coordinates}})}else if(r){let{featureIndex:n,positionIndexes:i}=r.properties,o=j.data.features[n];if(!(j.modeConfig?.lockRectangles&&o?.properties.shape==="Rectangle")){let c=new Pj(j.data).addPosition(n,i,r.geometry.coordinates).getObject();c&&j.onEdit({updatedData:c,editType:"addPosition",editContext:{featureIndexes:[n],positionIndexes:i,position:r.geometry.coordinates}})}}}handleDragging(A,j){let e=te(A.pointerDownPicks);e&&(A.cancelPan(),this._dragEditHandle("movePosition",j,e,A))}_dragEditHandle(A,j,e,r){let n=e.properties,i=j.data.features[n.featureIndex],o;if(j.modeConfig?.lockRectangles&&i.properties.shape==="Rectangle"){let l=F3(i,n.positionIndexes[1],r.mapCoords);o=new Pj(j.data).replaceGeometry(n.featureIndex,{coordinates:l,type:"Polygon"}).getObject()}else o=new Pj(j.data).replacePosition(n.featureIndex,n.positionIndexes,r.mapCoords).getObject();j.onEdit({updatedData:o,editType:A,editContext:{featureIndexes:[n.featureIndex],positionIndexes:n.positionIndexes,position:r.mapCoords}})}handlePointerMove(A,j){let e=this.getCursor(A);j.onUpdateCursor(e)}handleStartDragging(A,j){let e=j.selectedIndexes,r=g0(A.picks);if(e.length&&r){let n=r.properties,i=new Pj(j.data).addPosition(n.featureIndex,n.positionIndexes,A.mapCoords).getObject();j.onEdit({updatedData:i,editType:"addPosition",editContext:{featureIndexes:[n.featureIndex],positionIndexes:n.positionIndexes,position:A.mapCoords}})}}handleStopDragging(A,j){let e=j.selectedIndexes,r=te(A.picks);e.length&&r&&this._dragEditHandle("finishMovePosition",j,r,A)}getCursor(A){let j=A&&A.picks||[];return To(j).length?"cell":null}};var Vn=63710088e-1,Wit={centimeters:Vn*100,centimetres:Vn*100,degrees:Vn/111325,feet:Vn*3.28084,inches:Vn*39.37,kilometers:Vn/1e3,kilometres:Vn/1e3,meters:Vn,metres:Vn,miles:Vn/1609.344,millimeters:Vn*1e3,millimetres:Vn*1e3,nauticalmiles:Vn/1852,radians:1,yards:Vn*1.0936},Yit={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Vn,yards:1.0936133};function K3(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function GP(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!N3(t[0])||!N3(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return K3(e,A,j)}function N3(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function wP(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(wP(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function luA(t,A){A===void 0&&(A={});var j=0,e=0,r=0;return wP(t,function(n){j+=n[0],e+=n[1],r++},!0),GP([j/r,e/r],A.properties)}var Fs=luA;var Qn=63710088e-1,iot={centimeters:Qn*100,centimetres:Qn*100,degrees:Qn/111325,feet:Qn*3.28084,inches:Qn*39.37,kilometers:Qn/1e3,kilometres:Qn/1e3,meters:Qn,metres:Qn,miles:Qn/1609.344,millimeters:Qn*1e3,millimetres:Qn*1e3,nauticalmiles:Qn/1852,radians:1,yards:Qn*1.0936},oot={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Qn,yards:1.0936133};function X3(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function z3(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return X3(e,A,j)}function U3(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function V3(t,A,j){j===void 0&&(j={});var e={type:"MultiLineString",coordinates:t};return X3(e,A,j)}function iv(t){return t.type==="Feature"?t.geometry:t}function yf(t,A){A===void 0&&(A={});var j=iv(t);switch(!A.properties&&t.type==="Feature"&&(A.properties=t.properties),j.type){case"Polygon":return cuA(j,A);case"MultiPolygon":return uuA(j,A);default:throw new Error("invalid poly")}}function cuA(t,A){A===void 0&&(A={});var j=iv(t),e=j.coordinates,r=A.properties?A.properties:t.type==="Feature"?t.properties:{};return Q3(e,r)}function uuA(t,A){A===void 0&&(A={});var j=iv(t),e=j.coordinates,r=A.properties?A.properties:t.type==="Feature"?t.properties:{},n=[];return e.forEach(function(i){n.push(Q3(i,r))}),U3(n)}function Q3(t,A){return t.length>1?V3(t,A):z3(t[0],A)}function BuA(t){if(!t)throw new Error("geojson is required");switch(t.type){case"Feature":return W3(t);case"FeatureCollection":return fuA(t);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return FP(t);default:throw new Error("unknown GeoJSON type")}}function W3(t){var A={type:"Feature"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"properties":case"geometry":return;default:A[j]=t[j]}}),A.properties=Y3(t.properties),A.geometry=FP(t.geometry),A}function Y3(t){var A={};return t&&Object.keys(t).forEach(function(j){var e=t[j];typeof e=="object"?e===null?A[j]=null:Array.isArray(e)?A[j]=e.map(function(r){return r}):A[j]=Y3(e):A[j]=e}),A}function fuA(t){var A={type:"FeatureCollection"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"features":return;default:A[j]=t[j]}}),A.features=t.features.map(function(j){return W3(j)}),A}function FP(t){var A={type:t.type};return t.bbox&&(A.bbox=t.bbox),t.type==="GeometryCollection"?(A.geometries=t.geometries.map(function(j){return FP(j)}),A):(A.coordinates=J3(t.coordinates),A)}function J3(t){var A=t;return typeof A[0]!="object"?A.slice():A.map(function(j){return J3(j)})}var Z3=BuA;var Wn=63710088e-1,dot={centimeters:Wn*100,centimetres:Wn*100,degrees:Wn/111325,feet:Wn*3.28084,inches:Wn*39.37,kilometers:Wn/1e3,kilometres:Wn/1e3,meters:Wn,metres:Wn,miles:Wn/1609.344,millimeters:Wn*1e3,millimetres:Wn*1e3,nauticalmiles:Wn/1852,radians:1,yards:Wn*1.0936},pot={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Wn,yards:1.0936133};function AK(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function vf(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!PP(t[0])||!PP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return AK(e,A,j)}function PP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function IP(t){return!!t&&t.constructor===Object}function MP(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(MP(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function tK(t,A){if(t.type==="Feature")A(t,0);else if(t.type==="FeatureCollection")for(var j=0;j<t.features.length&&A(t.features[j],j)!==!1;j++);}function jK(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function eK(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function rK(t,A){return t.type==="FeatureCollection"?"FeatureCollection":t.type==="GeometryCollection"?"GeometryCollection":t.type==="Feature"&&t.geometry!==null?t.geometry.type:t.type}function huA(t,A,j){if(j=j||{},!IP(j))throw new Error("options is invalid");var e=j.origin,r=j.mutate;if(!t)throw new Error("geojson required");if(typeof A!="number"||A===0)throw new Error("invalid factor");var n=Array.isArray(e)||typeof e=="object";return r!==!0&&(t=Z3(t)),t.type==="FeatureCollection"&&!n?(tK(t,function(i,o){t.features[o]=nK(i,A,e)}),t):nK(t,A,e)}function nK(t,A,j){var e=rK(t)==="Point";return j=duA(t,j),A===1||e||MP(t,function(r){var n=cl(j,r),i=xf(j,r),o=n*A,l=eK(Gs(j,o,i));r[0]=l[0],r[1]=l[1],r.length===3&&(r[2]*=A)}),t}function duA(t,A){if(A==null&&(A="centroid"),Array.isArray(A)||typeof A=="object")return jK(A);var j=t.bbox?t.bbox:Ua(t),e=j[0],r=j[1],n=j[2],i=j[3];switch(A){case"sw":case"southwest":case"westsouth":case"bottomleft":return vf([e,r]);case"se":case"southeast":case"eastsouth":case"bottomright":return vf([n,r]);case"nw":case"northwest":case"westnorth":case"topleft":return vf([e,i]);case"ne":case"northeast":case"eastnorth":case"topright":return vf([n,i]);case"center":return ol(t);case void 0:case null:case"centroid":return Fs(t);default:throw new Error("invalid origin")}}var iK=huA;var Qa=class extends Qt{constructor(){super(...arguments);P(this,"_geometryBeingScaled");P(this,"_selectedEditHandle");P(this,"_cornerGuidePoints",[]);P(this,"_cursor");P(this,"_isScaling",!1);P(this,"_isSinglePointGeometrySelected",j=>{let{features:e}=j||{};if(Array.isArray(e)&&e.length===1){let{type:r}=tv(e[0]);return r==="Point"}return!1});P(this,"_getOppositeScaleHandle",j=>{let e=j&&j.properties&&Array.isArray(j.properties.positionIndexes)&&j.properties.positionIndexes[0];if(typeof e!="number")return null;let r=this._cornerGuidePoints.length,n=(e+r/2)%r;return this._cornerGuidePoints.find(i=>Array.isArray(i.properties.positionIndexes)?i.properties.positionIndexes[0]===n:!1)||null});P(this,"_getUpdatedData",(j,e)=>{let r=new Pj(j.data),n=j.selectedIndexes;for(let i=0;i<n.length;i++){let o=n[i],l=e.features[i];r=r.replaceGeometry(o,l.geometry)}return r.getObject()});P(this,"isEditHandleSelected",()=>!!this._selectedEditHandle);P(this,"getScaleAction",(j,e,r,n)=>{if(!this._selectedEditHandle)return null;let i=this._getOppositeScaleHandle(this._selectedEditHandle),o=E3(i),l=puA(o,j,e),c=iK(this._geometryBeingScaled,l,{origin:o});return{updatedData:this._getUpdatedData(n,c),editType:r,editContext:{featureIndexes:n.selectedIndexes}}});P(this,"updateCursor",j=>{if(this._selectedEditHandle){this._cursor&&j.onUpdateCursor(this._cursor);let e=this.getSelectedFeaturesAsFeatureCollection(j),r=Fs(e),n=Fj(r,this._selectedEditHandle),i=n<0?n+180:n;i>=0&&i<=90||i>=180&&i<=270?(this._cursor="nesw-resize",j.onUpdateCursor("nesw-resize")):(this._cursor="nwse-resize",j.onUpdateCursor("nwse-resize"))}else j.onUpdateCursor(null),this._cursor=null})}handlePointerMove(j,e){if(!this._isScaling){let r=te(j.picks);this._selectedEditHandle=r&&r.properties.editHandleType==="scale"?r:null,this.updateCursor(e)}}handleStartDragging(j,e){this._selectedEditHandle&&(this._isScaling=!0,this._geometryBeingScaled=this.getSelectedFeaturesAsFeatureCollection(e))}handleDragging(j,e){if(!this._isScaling)return;e.onUpdateCursor(this._cursor);let r=this.getScaleAction(j.pointerDownMapCoords,j.mapCoords,"scaling",e);r&&e.onEdit(r),j.cancelPan()}handleStopDragging(j,e){if(this._isScaling){let r=this.getScaleAction(j.pointerDownMapCoords,j.mapCoords,"scaled",e);r&&e.onEdit(r),e.onUpdateCursor(null),this._geometryBeingScaled=null,this._selectedEditHandle=null,this._cursor=null,this._isScaling=!1}}getGuides(j){this._cornerGuidePoints=[];let e=this.getSelectedFeaturesAsFeatureCollection(j);if(this._isSinglePointGeometrySelected(e))return{type:"FeatureCollection",features:[]};let r=cn(Ua(e));r.properties.mode="scale";let n=[];return p0(r,(i,o)=>{if(o<4){let l=Xt(i,{guideType:"editHandle",editHandleType:"scale",positionIndexes:[o]});n.push(l)}}),this._cornerGuidePoints=n,za([yf(r),...this._cornerGuidePoints])}};function puA(t,A,j){let e=yt(t,A);return yt(t,j)/e}function kuA(t){if(!t)throw new Error("geojson is required");switch(t.type){case"Feature":return oK(t);case"FeatureCollection":return guA(t);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return OP(t);default:throw new Error("unknown GeoJSON type")}}function oK(t){var A={type:"Feature"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"properties":case"geometry":return;default:A[j]=t[j]}}),A.properties=sK(t.properties),A.geometry=OP(t.geometry),A}function sK(t){var A={};return t&&Object.keys(t).forEach(function(j){var e=t[j];typeof e=="object"?e===null?A[j]=null:Array.isArray(e)?A[j]=e.map(function(r){return r}):A[j]=sK(e):A[j]=e}),A}function guA(t){var A={type:"FeatureCollection"};return Object.keys(t).forEach(function(j){switch(j){case"type":case"features":return;default:A[j]=t[j]}}),A.features=t.features.map(function(j){return oK(j)}),A}function OP(t){var A={type:t.type};return t.bbox&&(A.bbox=t.bbox),t.type==="GeometryCollection"?(A.geometries=t.geometries.map(function(j){return OP(j)}),A):(A.coordinates=aK(t.coordinates),A)}function aK(t){var A=t;return typeof A[0]!="object"?A.slice():A.map(function(j){return aK(j)})}var lK=kuA;var Yn=63710088e-1,Yot={centimeters:Yn*100,centimetres:Yn*100,degrees:Yn/111325,feet:Yn*3.28084,inches:Yn*39.37,kilometers:Yn/1e3,kilometres:Yn/1e3,meters:Yn,metres:Yn,miles:Yn/1609.344,millimeters:Yn*1e3,millimetres:Yn*1e3,nauticalmiles:Yn/1852,radians:1,yards:Yn*1.0936},Jot={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Yn,yards:1.0936133};function TP(t){return!!t&&t.constructor===Object}function SP(t,A,j){if(t!==null)for(var e,r,n,i,o,l,c,B=0,h=0,d,k=t.type,m=k==="FeatureCollection",$=k==="Feature",g=m?t.features.length:1,y=0;y<g;y++){c=m?t.features[y].geometry:$?t.geometry:t,d=c?c.type==="GeometryCollection":!1,o=d?c.geometries.length:1;for(var b=0;b<o;b++){var v=0,q=0;if(i=d?c.geometries[b]:c,i!==null){l=i.coordinates;var G=i.type;switch(B=j&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(A(l,h,y,v,q)===!1)return!1;h++,v++;break;case"LineString":case"MultiPoint":for(e=0;e<l.length;e++){if(A(l[e],h,y,v,q)===!1)return!1;h++,G==="MultiPoint"&&v++}G==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(e=0;e<l.length;e++){for(r=0;r<l[e].length-B;r++){if(A(l[e][r],h,y,v,q)===!1)return!1;h++}G==="MultiLineString"&&v++,G==="Polygon"&&q++}G==="Polygon"&&v++;break;case"MultiPolygon":for(e=0;e<l.length;e++){for(q=0,r=0;r<l[e].length;r++){for(n=0;n<l[e][r].length-B;n++){if(A(l[e][r][n],h,y,v,q)===!1)return!1;h++}q++}v++}break;case"GeometryCollection":for(e=0;e<i.geometries.length;e++)if(SP(i.geometries[e],A,j)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function cK(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function muA(t,A,j){if(j=j||{},!TP(j))throw new Error("options is invalid");var e=j.pivot,r=j.mutate;if(!t)throw new Error("geojson is required");if(A==null||isNaN(A))throw new Error("angle is required");return A===0||(e||(e=Fs(t)),(r===!1||r===void 0)&&(t=lK(t)),SP(t,function(n){var i=xf(e,n),o=i+A,l=cl(e,n),c=cK(Gs(e,l,o));n[0]=c[0],n[1]=c[1]})),t}var ov=muA;var Wa=class extends Qt{constructor(){super(...arguments);P(this,"_selectedEditHandle");P(this,"_geometryBeingRotated");P(this,"_isRotating",!1);P(this,"_isSinglePointGeometrySelected",j=>{let{features:e}=j||{};if(Array.isArray(e)&&e.length===1){let{type:r}=tv(e[0]);return r==="Point"}return!1});P(this,"getIsRotating",()=>this._isRotating)}getGuides(j){let e=this._geometryBeingRotated||this.getSelectedFeaturesAsFeatureCollection(j);if(this._isSinglePointGeometrySelected(e))return{type:"FeatureCollection",features:[]};if(this._isRotating)return za([Fs(e)]);let r=cn(Ua(e)),n=null,i=null,o=0;p0(r,d=>{if(n){let k=fl(d,n);(!i||k[1]>i[1])&&(i=k);let m=yt(d,n);o=Math.max(o,m)}n=d});let l=i&&[i[0],i[1]+o/1e3],c=gr([i,l]),B=Xt(l,{guideType:"editHandle",editHandleType:"rotate"}),h=[yf(r),B,c];return za(h)}handleDragging(j,e){if(!this._isRotating)return;let r=this.getRotateAction(j.pointerDownMapCoords,j.mapCoords,"rotating",e);r&&e.onEdit(r),j.cancelPan()}handlePointerMove(j,e){if(!this._isRotating){let r=te(j.picks);this._selectedEditHandle=r&&r.properties.editHandleType==="rotate"?r:null}this.updateCursor(e)}handleStartDragging(j,e){this._selectedEditHandle&&(this._isRotating=!0,this._geometryBeingRotated=this.getSelectedFeaturesAsFeatureCollection(e))}handleStopDragging(j,e){if(this._isRotating){let r=this.getRotateAction(j.pointerDownMapCoords,j.mapCoords,"rotated",e);r&&e.onEdit(r),this._geometryBeingRotated=null,this._selectedEditHandle=null,this._isRotating=!1}}updateCursor(j){this._selectedEditHandle?j.onUpdateCursor("crosshair"):j.onUpdateCursor(null)}getRotateAction(j,e,r,n){if(!this._geometryBeingRotated)return null;let i=Fs(this._geometryBeingRotated),o=EuA(i,j,e),l=ov(this._geometryBeingRotated,o,{pivot:i}),c=new Pj(n.data),B=n.selectedIndexes;for(let h=0;h<B.length;h++){let d=B[h],k=l.features[h];c=c.replaceGeometry(d,k.geometry)}return{updatedData:c.getObject(),editType:r,editContext:{featureIndexes:B}}}};function EuA(t,A,j){let e=Fj(t,A);return Fj(t,j)-e}var $0=class extends ws{handleStartDragging(A,j){super.handleStartDragging(A,j),this._geometryBeforeTranslate&&j.onEdit(this.getAddManyFeaturesAction(this._geometryBeforeTranslate,j.data))}updateCursor(A){this._isTranslatable?A.onUpdateCursor("copy"):A.onUpdateCursor(null)}};var Jn=63710088e-1,Mst={centimeters:Jn*100,centimetres:Jn*100,degrees:Jn/111325,feet:Jn*3.28084,inches:Jn*39.37,kilometers:Jn/1e3,kilometres:Jn/1e3,meters:Jn,metres:Jn,miles:Jn/1609.344,millimeters:Jn*1e3,millimetres:Jn*1e3,nauticalmiles:Jn/1852,radians:1,yards:Jn*1.0936},Ost={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Jn,yards:1.0936133};function uK(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function BK(t){return t.type==="Feature"?t.geometry:t}function RP(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("point is required");if(!A)throw new Error("polygon is required");var e=uK(t),r=BK(A),n=r.type,i=A.bbox,o=r.coordinates;if(i&&$uA(e,i)===!1)return!1;n==="Polygon"&&(o=[o]);for(var l=!1,c=0;c<o.length&&!l;c++)if(fK(e,o[c][0],j.ignoreBoundary)){for(var B=!1,h=1;h<o[c].length&&!B;)fK(e,o[c][h],!j.ignoreBoundary)&&(B=!0),h++;B||(l=!0)}return l}function fK(t,A,j){var e=!1;A[0][0]===A[A.length-1][0]&&A[0][1]===A[A.length-1][1]&&(A=A.slice(0,A.length-1));for(var r=0,n=A.length-1;r<A.length;n=r++){var i=A[r][0],o=A[r][1],l=A[n][0],c=A[n][1],B=t[1]*(i-l)+o*(l-t[0])+c*(t[0]-i)===0&&(i-t[0])*(l-t[0])<=0&&(o-t[1])*(c-t[1])<=0;if(B)return!j;var h=o>t[1]!=c>t[1]&&t[0]<(l-i)*(t[1]-o)/(c-o)+i;h&&(e=!e)}return e}function $uA(t,A){return A[0]<=t[0]&&A[1]<=t[1]&&A[2]>=t[0]&&A[3]>=t[1]}var Zn=63710088e-1,Dst={centimeters:Zn*100,centimetres:Zn*100,degrees:Zn/111325,feet:Zn*3.28084,inches:Zn*39.37,kilometers:Zn/1e3,kilometres:Zn/1e3,meters:Zn,metres:Zn,miles:Zn/1609.344,millimeters:Zn*1e3,millimetres:Zn*1e3,nauticalmiles:Zn/1852,radians:1,yards:Zn*1.0936},Nst={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Zn,yards:1.0936133};function x0(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function CP(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!LP(t[0])||!LP(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return x0(e,A,j)}function HP(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function LP(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function sv(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}var A6=63710088e-1,Ust={centimeters:A6*100,centimetres:A6*100,degrees:A6/111325,feet:A6*3.28084,inches:A6*39.37,kilometers:A6/1e3,kilometres:A6/1e3,meters:A6,metres:A6,miles:A6/1609.344,millimeters:A6*1e3,millimetres:A6*1e3,nauticalmiles:A6/1852,radians:1,yards:A6*1.0936},Vst={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/A6,yards:1.0936133};function av(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function DP(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return av(e,A,j)}function hK(t,A){A===void 0&&(A={});var j={type:"FeatureCollection"};return A.id&&(j.id=A.id),A.bbox&&(j.bbox=A.bbox),j.features=t,j}function NP(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function xuA(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function dK(t,A){xuA(t,function(j,e,r,n,i){var o=j===null?null:j.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(av(j,r,{bbox:n,id:i}),e,0)===!1?!1:void 0}var l;switch(o){case"MultiPoint":l="Point";break;case"MultiLineString":l="LineString";break;case"MultiPolygon":l="Polygon";break}for(var c=0;c<j.coordinates.length;c++){var B=j.coordinates[c],h={type:l,coordinates:B};if(A(av(h,r),e,c)===!1)return!1}})}function yuA(t){if(!t)throw new Error("geojson is required");var A=[];return dK(t,function(j){vuA(j,A)}),hK(A)}function vuA(t,A){var j=[],e=t.geometry;if(e!==null){switch(e.type){case"Polygon":j=NP(e);break;case"LineString":j=[NP(e)]}j.forEach(function(r){var n=_uA(r,t.properties);n.forEach(function(i){i.id=A.length,A.push(i)})})}}function _uA(t,A){var j=[];return t.reduce(function(e,r){var n=DP([e,r],A);return n.bbox=quA(e,r),j.push(n),r}),j}function quA(t,A){var j=t[0],e=t[1],r=A[0],n=A[1],i=j<r?j:r,o=e<n?e:n,l=j>r?j:r,c=e>n?e:n;return[i,o,l,c]}var KP=yuA;function XP(t,A){if(t.type==="Feature")A(t,0);else if(t.type==="FeatureCollection")for(var j=0;j<t.features.length&&A(t.features[j],j)!==!1;j++);}var zK=Ws(KK(),1);function yBA(t,A){var j={},e=[];if(t.type==="LineString"&&(t=x0(t)),A.type==="LineString"&&(A=x0(A)),t.type==="Feature"&&A.type==="Feature"&&t.geometry!==null&&A.geometry!==null&&t.geometry.type==="LineString"&&A.geometry.type==="LineString"&&t.geometry.coordinates.length===2&&A.geometry.coordinates.length===2){var r=XK(t,A);return r&&e.push(r),HP(e)}var n=(0,zK.default)();return n.load(KP(A)),XP(KP(t),function(i){XP(n.search(i),function(o){var l=XK(i,o);if(l){var c=sv(l).join(",");j[c]||(j[c]=!0,e.push(l))}})}),HP(e)}function XK(t,A){var j=sv(t),e=sv(A);if(j.length!==2)throw new Error("<intersects> line1 must only contain 2 coordinates");if(e.length!==2)throw new Error("<intersects> line2 must only contain 2 coordinates");var r=j[0][0],n=j[0][1],i=j[1][0],o=j[1][1],l=e[0][0],c=e[0][1],B=e[1][0],h=e[1][1],d=(h-c)*(i-r)-(B-l)*(o-n),k=(B-l)*(n-c)-(h-c)*(r-l),m=(i-r)*(n-c)-(o-n)*(r-l);if(d===0)return null;var $=k/d,g=m/d;if($>=0&&$<=1&&g>=0&&g<=1){var y=r+$*(i-r),b=n+$*(o-n);return CP([y,b])}return null}var pl=yBA;var t6=63710088e-1,yat={centimeters:t6*100,centimetres:t6*100,degrees:t6/111325,feet:t6*3.28084,inches:t6*39.37,kilometers:t6/1e3,kilometres:t6/1e3,meters:t6,metres:t6,miles:t6/1609.344,millimeters:t6*1e3,millimetres:t6*1e3,nauticalmiles:t6/1852,radians:1,yards:t6*1.0936},vat={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/t6,yards:1.0936133};function _0(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function q0(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!sI(t[0])||!sI(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return _0(e,A,j)}function dv(t,A,j){if(j===void 0&&(j={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");var e={type:"LineString",coordinates:t};return _0(e,A,j)}function sI(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function vBA(t,A){var j,e,r,n,i,o,l,c,B,h,d=0,k=t.type==="FeatureCollection",m=t.type==="Feature",$=k?t.features.length:1;for(j=0;j<$;j++){for(o=k?t.features[j].geometry:m?t.geometry:t,c=k?t.features[j].properties:m?t.properties:{},B=k?t.features[j].bbox:m?t.bbox:void 0,h=k?t.features[j].id:m?t.id:void 0,l=o?o.type==="GeometryCollection":!1,i=l?o.geometries.length:1,r=0;r<i;r++){if(n=l?o.geometries[r]:o,n===null){if(A(null,d,c,B,h)===!1)return!1;continue}switch(n.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(n,d,c,B,h)===!1)return!1;break}case"GeometryCollection":{for(e=0;e<n.geometries.length;e++)if(A(n.geometries[e],d,c,B,h)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}d++}}function UK(t,A){vBA(t,function(j,e,r,n,i){var o=j===null?null:j.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(_0(j,r,{bbox:n,id:i}),e,0)===!1?!1:void 0}var l;switch(o){case"MultiPoint":l="Point";break;case"MultiLineString":l="LineString";break;case"MultiPolygon":l="Polygon";break}for(var c=0;c<j.coordinates.length;c++){var B=j.coordinates[c],h={type:l,coordinates:B};if(A(_0(h,r),e,c)===!1)return!1}})}function VK(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function _BA(t,A,j){j===void 0&&(j={});var e=q0([1/0,1/0],{dist:1/0}),r=0;return UK(t,function(n){for(var i=VK(n),o=0;o<i.length-1;o++){var l=q0(i[o]);l.properties.dist=yt(A,l,j);var c=q0(i[o+1]);c.properties.dist=yt(A,c,j);var B=yt(l,c,j),h=Math.max(l.properties.dist,c.properties.dist),d=Fj(l,c),k=Er(A,h,d+90,j),m=Er(A,h,d-90,j),$=pl(dv([k.geometry.coordinates,m.geometry.coordinates]),dv([l.geometry.coordinates,c.geometry.coordinates])),g=null;$.features.length>0&&(g=$.features[0],g.properties.dist=yt(A,g,j),g.properties.location=r+yt(l,g,j)),l.properties.dist<e.properties.dist&&(e=l,e.properties.index=o,e.properties.location=r),c.properties.dist<e.properties.dist&&(e=c,e.properties.index=o+1,e.properties.location=r+B),g&&g.properties.dist<e.properties.dist&&(e=g,e.properties.index=o),r+=B}}),e}var pv=_BA;var b0=class extends Qt{calculateMapCoords(A,j,e){let r=e.modeConfig;if(!r||!r.lock90Degree||!A.length)return j;if(A.length===1){let l=A[0],c=this.getSelectedGeometry(e),B=yf(c),h=B.type==="FeatureCollection"?B.features:[B],d=Number.MAX_SAFE_INTEGER,k=null;if(h.forEach(m=>{let $=pv(m,l),g=yt($,l);d>g&&(d=g,k=$)}),k){let m=Fj(l,k),$=yt(l,j,{units:"meters"});return Er(l,$,m,{units:"meters"}).geometry.coordinates}return j}let n=A[A.length-1],[i]=Va(A[A.length-2],n,j);return pv(gr([n,i]),j).geometry.coordinates}getGuides(A){let j=this.getClickSequence(),e={type:"FeatureCollection",features:[]};if(j.length===0||!A.lastPointerMoveEvent)return e;let{mapCoords:r}=A.lastPointerMoveEvent;return e.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...j,this.calculateMapCoords(j,r,A)]}}),e}handleClick(A,j){let e=this.getTentativeGuide(j),r=this.getSelectedGeometry(j);if(!r){console.warn("A polygon must be selected for splitting");return}let n=this.getClickSequence();e&&e.geometry.type==="LineString"?n.push(e.geometry.coordinates[e.geometry.coordinates.length-1]):this.addClickSequence(A);let i={type:"Point",coordinates:n[n.length-1]},o=RP(i,r);if(n.length>1&&e&&!o){if(this.resetClickSequence(),pl(e,r).features.length===0)return;let c=this.splitPolygon(e,j);c&&j.onEdit(c)}}handlePointerMove(A,j){j.onUpdateCursor("cell")}splitPolygon(A,j){let e=this.getSelectedGeometry(j),r=j.selectedIndexes[0],n=j.modeConfig||{},{gap:i=.1,units:o="centimeters"}=n;i===0&&(i=.1,o="centimeters");let l=Dy(A,i,{units:o}),c=kf(e,l);if(!c)return console.warn("Canceling edit. Split Polygon erased"),null;let{type:B,coordinates:h}=c.geometry,d=[];return B==="Polygon"?d=h.map($=>[$]):d=h.reduce(($,g)=>(g.forEach(y=>{$.push([y])}),$),[]),{updatedData:new Pj(j.data).replaceGeometry(r,{type:"MultiPolygon",coordinates:d}).getObject(),editType:"split",editContext:{featureIndexes:[r]}}}};var G0=class extends So{constructor(){super(...arguments);P(this,"isPointAdded",!1)}handleDragging(j,e){let r=te(j.pointerDownPicks);if(r){let{featureIndex:n}=r.properties,{positionIndexes:i}=r.properties,o=this.coordinatesSize(i,n,e.data);i=this.isPointAdded?this.nextPositionIndexes(i,o):i;let l=this.getPointForPositionIndexes(this.prevPositionIndexes(i,o),n,e.data),c=this.getPointForPositionIndexes(i,n,e.data);if(l&&c){let[B,h]=Va(l,c,j.mapCoords),d=new Pj(e.data).replacePosition(n,this.prevPositionIndexes(i,o),h).replacePosition(n,i,B).getObject();e.onEdit({updatedData:d,editType:"extruding",editContext:{featureIndexes:[n],positionIndexes:this.nextPositionIndexes(i,o),position:B}}),j.cancelPan()}}}handleStartDragging(j,e){let r=e.selectedIndexes,n=g0(j.picks);if(r.length&&n){let{positionIndexes:i,featureIndex:o}=n.properties,l=this.coordinatesSize(i,o,e.data),c=this.getPointForPositionIndexes(this.prevPositionIndexes(i,l),o,e.data),B=this.getPointForPositionIndexes(i,o,e.data);if(c&&B){let h=new Pj(e.data);this.isOrthogonal(i,o,l,e.data)||(h=h.addPosition(o,i,B)),this.isOrthogonal(this.prevPositionIndexes(i,l),o,l,e.data)||(h=h.addPosition(o,i,c),this.isPointAdded=!0),e.onEdit({updatedData:h.getObject(),editType:"startExtruding",editContext:{featureIndexes:[o],positionIndexes:i,position:c}})}}}handleStopDragging(j,e){let r=e.selectedIndexes,n=te(j.pointerDownPicks);if(r.length&&n){let{featureIndex:i}=n.properties,{positionIndexes:o}=n.properties,l=this.coordinatesSize(o,i,e.data);o=this.isPointAdded?this.nextPositionIndexes(o,l):o;let c=this.getPointForPositionIndexes(this.prevPositionIndexes(o,l),i,e.data),B=this.getPointForPositionIndexes(o,i,e.data);if(c&&B){let[h,d]=Va(c,B,j.mapCoords),k=new Pj(e.data).replacePosition(i,this.prevPositionIndexes(o,l),d).replacePosition(i,o,h).getObject();e.onEdit({updatedData:k,editType:"extruded",editContext:{featureIndexes:[i],positionIndexes:o,position:h}})}}this.isPointAdded=!1}coordinatesSize(j,e,{features:r}){let n=0;if(Array.isArray(j)){let o=r[e].geometry.coordinates;if(j.length===3){let[l,c]=j;o.length&&o[l].length&&(n=o[l][c].length)}else{let[l]=j;o.length&&o[l].length&&(n=o[l].length)}}return n}getBearing(j,e){let r=Fj(j,e);return r<0?Math.floor(360+r):Math.floor(r)}isOrthogonal(j,e,r,n){if(!Array.isArray(j))return!1;j[j.length-1]===r-1&&(j[j.length-1]=0);let i=this.getPointForPositionIndexes(this.prevPositionIndexes(j,r),e,n),o=this.getPointForPositionIndexes(this.nextPositionIndexes(j,r),e,n),l=this.getPointForPositionIndexes(j,e,n),c=this.getBearing(l,i),B=this.getBearing(l,o);return[89,90,91,269,270,271].includes(Math.abs(c-B))}nextPositionIndexes(j,e){if(!Array.isArray(j))return[];let r=[...j];return r.length&&(r[r.length-1]=r[r.length-1]===e-1?0:r[r.length-1]+1),r}prevPositionIndexes(j,e){if(!Array.isArray(j))return[];let r=[...j];return r.length&&(r[r.length-1]=r[r.length-1]===0?e-2:r[r.length-1]-1),r}getPointForPositionIndexes(j,e,{features:r}){let n;if(Array.isArray(j)){let o=r[e].geometry.coordinates;if(j.length===3){let[l,c,B]=j;o.length&&o[l].length&&(n=o[l][c][B])}else{let[l,c]=j;o.length&&o[l].length&&(n=o[l][c])}}return n}};function qBA({pointerDownScreenCoords:t,screenCoords:A}){return 10*(t[1]-A[1])}var w0=class extends So{makeElevatedEvent(A,j,e){let{minElevation:r=0,maxElevation:n=2e4,calculateElevationChange:i=qBA}=e.modeConfig||{};if(!A.pointerDownScreenCoords)return A;let o=j.length===3?j[2]:0;return o+=i({pointerDownScreenCoords:A.pointerDownScreenCoords,screenCoords:A.screenCoords}),o=Math.min(o,n),o=Math.max(o,r),Object.assign({},A,{mapCoords:[j[0],j[1],o]})}handlePointerMove(A,j){let e=te(A.pointerDownPicks),r=e?e.geometry.coordinates:A.mapCoords;super.handlePointerMove(this.makeElevatedEvent(A,r,j),j)}handleStopDragging(A,j){let e=te(A.picks),r=e?e.geometry.coordinates:A.mapCoords;super.handleStopDragging(this.makeElevatedEvent(A,r,j),j)}getCursor(A){let j=super.getCursor(A);return j==="cell"&&(j="ns-resize"),j}static calculateElevationChangeWithViewport(A,{pointerDownScreenCoords:j,screenCoords:e}){return 156543.03392*Math.cos(A.latitude*Math.PI/180)/Math.pow(2,A.zoom)*(j[1]-e[1])/2}};var F0=class extends Qt{createTentativeFeature(A){let{lastPointerMoveEvent:j}=A,e=j?[j.mapCoords]:[];return{type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Point",coordinates:e[0]}}}handleClick({mapCoords:A},j){let e={type:"Point",coordinates:A};j.onEdit(this.getAddFeatureAction(e,j.data))}handlePointerMove(A,j){j.onUpdateCursor("cell"),super.handlePointerMove(A,j)}};function bBA(t,A){if(t===A)return!0;if(Array.isArray(t)){let j=t.length;if(!A||A.length!==j)return!1;for(let e=0;e<j;e++)if(t[e]!==A[e])return!1;return!0}return!1}function kl(t){let A={},j;return e=>{for(let r in e)if(!bBA(e[r],A[r])){j=t(e),A=e;break}return j}}var P0=class extends Qt{constructor(){super(...arguments);P(this,"dist",0);P(this,"position",null);P(this,"elems",[]);P(this,"_getTooltips",kl(({modeConfig:j,dist:e})=>{let r=[],{formatTooltip:n}=j||{},i;return e&&(n?i=n(e):i=`Distance: ${parseFloat(e).toFixed(2)} kilometers`,r=[{position:this.position,text:i}]),r}))}handleClick(j,e){let{picks:r}=j,n=te(r),i=!1;n||(this.addClickSequence(j),i=!0);let o=this.getClickSequence();if(n||this.calculateInfoDraw(o),o.length>1&&n&&Array.isArray(n.properties.positionIndexes)&&n.properties.positionIndexes[0]===o.length-1){this.dist=0;let l={type:"LineString",coordinates:[...o]};this.resetClickSequence();let c=this.getAddFeatureAction(l,e.data);c&&e.onEdit(c)}else i&&e.onEdit({updatedData:e.data,editType:"addTentativePosition",editContext:{position:j.mapCoords}})}handleKeyUp(j,e){let{key:r}=j;if(r==="Enter"){let n=this.getClickSequence();if(n.length>1){let i={type:"LineString",coordinates:[...n]};this.resetClickSequence();let o=this.getAddFeatureAction(i,e.data);o&&e.onEdit(o)}}else r==="Escape"&&(this.resetClickSequence(),e.onEdit({updatedData:e.data,editType:"cancelFeature",editContext:{}}))}getGuides(j){let{lastPointerMoveEvent:e}=j,r=this.getClickSequence(),n=e?[e.mapCoords]:[],i={type:"FeatureCollection",features:[]},o;r.length>0&&(o={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...r,...n]}}),o&&i.features.push(o);let l=r.map((c,B)=>({type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[B]},geometry:{type:"Point",coordinates:c}}));return i.features.push(...l),i}handlePointerMove(j,e){e.onUpdateCursor("cell")}getTooltips(j){return this._getTooltips({modeConfig:j.modeConfig,dist:this.dist})}calculateInfoDraw(j){j.length>1&&(this.position=j[j.length-1],this.dist+=yt(j[j.length-2],j[j.length-1]))}};var Ai=class extends Qt{createTentativeFeature(A){let{lastPointerMoveEvent:j}=A,e=this.getClickSequence(),r=j?[j.mapCoords]:[],n;return e.length===1||e.length===2?n={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...e,...r]}}:e.length>2&&(n={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Polygon",coordinates:[[...e,...r,e[0]]]}}),n}getGuides(A){let j=this.getClickSequence(),e={type:"FeatureCollection",features:[]},r=this.createTentativeFeature(A);r&&e.features.push(r);let n=j.map((i,o)=>({type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[o]},geometry:{type:"Point",coordinates:i}}));return e.features.push(...n),e}handleClick(A,j){let{picks:e}=A,r=te(e),n=this.getClickSequence(),i=!1;if(n.length>2&&j.modeConfig&&j.modeConfig.preventOverlappingLines){let l=gr([n[n.length-1],A.mapCoords]),c=gr([...n.slice(0,n.length-1)]);pl(l,c).features.length>0&&(i=!0)}let o=!1;if(!r&&!i&&(this.addClickSequence(A),o=!0),n.length>2&&r&&Array.isArray(r.properties.positionIndexes)&&(r.properties.positionIndexes[0]===0||r.properties.positionIndexes[0]===n.length-1)){let l={type:"Polygon",coordinates:[[...n,n[0]]]};this.resetClickSequence();let c=this.getAddFeatureOrBooleanPolygonAction(l,j);c&&j.onEdit(c)}else o&&j.onEdit({updatedData:j.data,editType:"addTentativePosition",editContext:{position:A.mapCoords}})}handleKeyUp(A,j){if(A.key==="Enter"){let e=this.getClickSequence();if(e.length>2){let r={type:"Polygon",coordinates:[[...e,e[0]]]};this.resetClickSequence();let n=this.getAddFeatureOrBooleanPolygonAction(r,j);n&&j.onEdit(n)}}else A.key==="Escape"&&(this.resetClickSequence(),j.onEdit({updatedData:j.data,editType:"cancelFeature",editContext:{}}))}handlePointerMove(A,j){j.onUpdateCursor("cell"),super.handlePointerMove(A,j)}};var hn=class extends Qt{handleClick(A,j){j.modeConfig&&j.modeConfig.dragToDraw||(this.addClickSequence(A),this.checkAndFinishPolygon(j))}handleStartDragging(A,j){!j.modeConfig||!j.modeConfig.dragToDraw||(this.addClickSequence(A),A.cancelPan())}handleStopDragging(A,j){!j.modeConfig||!j.modeConfig.dragToDraw||(this.addClickSequence(A),this.checkAndFinishPolygon(j))}checkAndFinishPolygon(A){let j=this.getClickSequence(),e=this.getTentativeGuide(A);if(j.length>1&&e&&e.geometry.type==="Polygon"){let r={type:"Feature",properties:{shape:e.properties.shape},geometry:{type:"Polygon",coordinates:e.geometry.coordinates}},n=this.getAddFeatureOrBooleanPolygonAction(r,A);this.resetClickSequence(),n&&A.onEdit(n)}}getGuides(A){let{lastPointerMoveEvent:j,modeConfig:e}=A,r=this.getClickSequence(),n={type:"FeatureCollection",features:[]};if(r.length===0||!j)return n;let i=r[0],o=j.mapCoords,l=this.getTwoClickPolygon(i,o,e);return l&&n.features.push({type:"Feature",properties:{shape:l.properties&&l.properties.shape,guideType:"tentative"},geometry:l.geometry}),n}getTwoClickPolygon(A,j,e){return null}handlePointerMove(A,j){j.onUpdateCursor("cell"),super.handlePointerMove(A,j)}createTentativeFeature(A){let{lastPointerMoveEvent:j}=A,e=this.getClickSequence(),r=j?[j.mapCoords]:[],n;return e.length===1&&(n=this.getTwoClickPolygon(e[0],r[0],A.modeConfig)),n}};var Uc=class extends hn{getTwoClickPolygon(A,j,e){let r=cn([A[0],A[1],j[0],j[1]]);return r.properties=r.properties||{},r.properties.shape="Rectangle",r}};var j6=63710088e-1,b7t={centimeters:j6*100,centimetres:j6*100,degrees:j6/111325,feet:j6*3.28084,inches:j6*39.37,kilometers:j6/1e3,kilometres:j6/1e3,meters:j6,metres:j6,miles:j6/1609.344,millimeters:j6*1e3,millimetres:j6*1e3,nauticalmiles:j6/1852,radians:1,yards:j6*1.0936},G7t={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/j6,yards:1.0936133};function GBA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function lI(t,A,j){if(j===void 0&&(j={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!aI(t[0])||!aI(t[1]))throw new Error("coordinates must contain numbers");var e={type:"Point",coordinates:t};return GBA(e,A,j)}function aI(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function QK(t){return t.type==="Feature"?t.geometry:t}function I0(t,A,j){j===void 0&&(j={});for(var e=QK(t),r=e.coordinates,n=0,i=0;i<r.length&&!(A>=n&&i===r.length-1);i++)if(n>=A){var o=A-n;if(o){var l=Fj(r[i],r[i-1])-180,c=Er(r[i],o,l,j);return c}else return lI(r[i])}else n+=yt(r[i],r[i+1],j);return lI(r[r.length-1])}var M0=class extends hn{getTwoClickPolygon(A,j,e){let r=[j[0],A[1]],n=[A[0],j[1]],i=yt(Xt(r),Xt(A)),o=yt(Xt(n),Xt(A)),l=i<=o?i:o,c=i<=o?r:n,B=gr([c,j]),d=I0(B,l).geometry.coordinates,k=cn([A[0],A[1],d[0],d[1]]);return k.properties=k.properties||{},k.properties.shape="Square",k}};var O0=class extends hn{getTwoClickPolygon(A,j,e){let r=A[0]>j[0]?A[0]+Math.abs(A[0]-j[0]):A[0]-Math.abs(A[0]-j[0]),n=A[1]>j[1]?A[1]+Math.abs(A[1]-j[1]):A[1]-Math.abs(A[1]-j[1]),i=cn([r,n,j[0],j[1]]);return i.properties=i.properties||{},i.properties.shape="Rectangle",i}};var T0=class extends hn{getTwoClickPolygon(A,j,e){let r=[j[0],A[1]],n=[A[0],j[1]],i=yt(Xt(r),Xt(A)),o=yt(Xt(n),Xt(A)),l=i<=o?i:o,c=i<=o?r:n,B=gr([c,j]),d=I0(B,l).geometry.coordinates,k=A[0]>d[0]?A[0]+Math.abs(A[0]-d[0]):A[0]-Math.abs(A[0]-d[0]),m=A[1]>d[1]?A[1]+Math.abs(A[1]-d[1]):A[1]-Math.abs(A[1]-d[1]),$=cn([k,m,d[0],d[1]]);return $.properties=$.properties||{},$.properties.shape="Square",$}};var e6=63710088e-1,Alt={centimeters:e6*100,centimetres:e6*100,degrees:e6/111325,feet:e6*3.28084,inches:e6*39.37,kilometers:e6/1e3,kilometres:e6/1e3,meters:e6,metres:e6,miles:e6/1609.344,millimeters:e6*1e3,millimetres:e6*1e3,nauticalmiles:e6/1852,radians:1,yards:e6*1.0936},tlt={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/e6,yards:1.0936133};function wBA(t,A,j){j===void 0&&(j={});var e={type:"Feature"};return(j.id===0||j.id)&&(e.id=j.id),j.bbox&&(e.bbox=j.bbox),e.properties=A||{},e.geometry=t,e}function WK(t,A,j){j===void 0&&(j={});for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var i=0;i<n[n.length-1].length;i++)if(n[n.length-1][i]!==n[0][i])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:t};return wBA(o,A,j)}function FBA(t,A,j){j===void 0&&(j={});for(var e=j.steps||64,r=j.properties?j.properties:!Array.isArray(t)&&t.type==="Feature"&&t.properties?t.properties:{},n=[],i=0;i<e;i++)n.push(Er(t,A,i*-360/e,j).geometry.coordinates);return n.push(n[0]),WK([n],r)}var S0=FBA;var YK=6378137;function qf(t){return $3(t,function(A,j){return A+PBA(j)},0)}function PBA(t){var A=0,j;switch(t.type){case"Polygon":return JK(t.coordinates);case"MultiPolygon":for(j=0;j<t.coordinates.length;j++)A+=JK(t.coordinates[j]);return A;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}function JK(t){var A=0;if(t&&t.length>0){A+=Math.abs(ZK(t[0]));for(var j=1;j<t.length;j++)A-=Math.abs(ZK(t[j]))}return A}function ZK(t){var A,j,e,r,n,i,o,l=0,c=t.length;if(c>2){for(o=0;o<c;o++)o===c-2?(r=c-2,n=c-1,i=0):o===c-1?(r=c-1,n=0,i=1):(r=o,n=o+1,i=o+2),A=t[r],j=t[n],e=t[i],l+=(cI(e[0])-cI(A[0]))*Math.sin(cI(j[1]));l=l*YK*YK/2}return l}function cI(t){return t*Math.PI/180}var R0=class extends hn{constructor(){super(...arguments);P(this,"radius",null);P(this,"position",null);P(this,"areaCircle",null);P(this,"_getTooltips",kl(({modeConfig:j,radius:e,areaCircle:r})=>{let n=[],{formatTooltip:i}=j||{},o;return e&&r&&(i?o=i(e):o=`Radius: ${parseFloat(e).toFixed(2)} kilometers
1752
1752
 
1753
1753
  Area: ${parseFloat(r).toFixed(2)}`,n=[{position:this.position,text:o}]),n}))}getTwoClickPolygon(j,e,r){let{steps:n=64}=r||{},i={steps:n};this.position=e,n<4&&(console.warn("Minimum steps to draw a circle is 4 "),i.steps=4),this.radius=Math.max(yt(j,e),.001);let o=S0(j,this.radius,i);return o.properties=o.properties||{},o.properties.shape="Circle",this.areaCircle=qf(o),o}getTooltips(j){return this._getTooltips({modeConfig:j?.modeConfig,radius:this.radius,areaCircle:this.areaCircle})}};var L0=class extends hn{constructor(){super(...arguments);P(this,"radius",null);P(this,"position",null);P(this,"areaCircle",null);P(this,"diameter",null);P(this,"_getTooltips",kl(({modeConfig:j,radius:e,areaCircle:r,diameter:n})=>{let i=[],{formatTooltip:o}=j||{},l;return e&&r&&(o?l=o(e):l=`Radius: ${parseFloat(e).toFixed(2)} kilometers
1754
1754