celldega 0.14.0 → 0.14.2

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.14.0",
3
+ "version": "0.14.2",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=16",
@@ -1749,7 +1749,7 @@ DECKGL_FILTER_COLOR(fragColor, geometry);
1749
1749
  grayscale = clamp(grayscale, 0.0, 1.0);
1750
1750
  // Apply custom color and scaled opacity
1751
1751
  color = vec4(uColor, grayscale);
1752
- `},A}updateState(A){super.updateState(A);let{props:I,oldProps:B}=A;(I.color!==B.color||I.opacityScale!==B.opacityScale)&&this.setState({uniforms:{uColor:I.color.map(Q=>Q/255),uOpacityScale:I.opacityScale}})}draw(A){let{uniforms:I}=this.state;super.draw({...A,uniforms:{...A.uniforms,...I}})}};var tM=(g,A,I,B,Q={},C=null)=>async({index:E})=>{let{x:o,y:e,z:D}=E,r=`${g}/pyramid_images/${A}_files/${B+D}/${o}_${e}${I}`,{fetch:n={},...G}=Q,w=async(h,y={})=>{let N={...n,...y};return C?C.fetch(h,N):fetch(h,N)};try{return await bo(r,jG,{...G,fetch:w})}catch(h){let y=ZI(h,{coordinates:`${o},${e},${D}`,url:r,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 y.error==="not_found"||y.error==="network",null}},fd=(g,A,I)=>B=>{let{bbox:{left:Q,bottom:C,right:E,top:o}}=B.tile,{width:e,height:D}=g;return new oM(B,{data:null,image:B.data,bounds:[Et(Q,0,e),Et(C,0,D),Et(E,0,e),Et(o,0,D)],color:A,opacityScale:I})},YZ=g=>A=>{let{bbox:{left:I,bottom:B,right:Q,top:C}}=A.tile,{width:E,height:o}=g;return new cn(A,{data:null,image:A.data,bounds:[Et(I,0,E),Et(B,0,o),Et(Q,0,E),Et(C,0,o)]})};var dn=async(g,A)=>{let{global_base_url:I}=g,{dimensions:B}=g,{landscape_parameters:Q}=g.img,{image_format:C}=g.img.landscape_parameters;return new Kn({id:"global-simple-image-layer",tileSize:B.tileSize,refinementStrategy:"no-overlap",minZoom:-7,maxZoom:0,maxCacheSize:20,extent:[0,0,B.width,B.height],getTileData:tM(I,A.name,C,Q.max_pyramid_zoom,AI),renderSubLayers:YZ(B),visible:!0})},KZ=(g,A)=>{g.simple_image_layer=g.simple_image_layer.clone({visible:A})};var Un=(g,A)=>{g.global_base_url=A};var pZ=async(g,A,I,B)=>{let Q=`${g}/pyramid_images/${A}.dzi`,E=await(B!==null?await B.fetch(Q):await fetch(Q,I.fetch)).text(),o=new DOMParser().parseFromString(E,"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 Sn=async(g,A,I)=>{g.dimensions=await pZ(A,I,AI,g.aws)};var Ln=async(g,A,I)=>{let B=`${A}/landscape_parameters.json`,Q=await fetch(B,AI.fetch);g.landscape_parameters=await Q.json()};var ud=async(g,A,I,B,Q,C,E,o,e="",D=0,r=800,n={})=>{D===0&&(D="100%");let G=document.createElement("div");G.style.height=`${r}px`;let w={};if(qn(B),Un(w,I),"accessKeyId"in n){w.aws=new ra({accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey,sessionToken:n.sessionToken,region:"us-east-1",service:"s3"});let M=await w.aws.fetch(`${I}/landscape_parameters.json`);if(!M.ok)throw new Error(`Fetch failed: ${M.statusText}`)}else w.aws=null;w.model=g,w.img={},w.img.image_layer_colors={},w.img.image_layer_sliders={},await Ln(w.img,I),await Sn(w,I,"h_and_e"),w.buttons={},w.buttons.blue="#8797ff",w.buttons.gray="gray",w.buttons.light_gray="#EEEEEE",w.buttons.buttons={};let N={simple_image_layer:await dn(w,{name:"h_and_e",color:[0,0,255]})};w.views=pn();let F=BM(G,D,r),K={target:[Q,C,E],zoom:o};return F.setProps({views:w.views,layers:[N.simple_image_layer],initialViewState:K}),A.appendChild(G),()=>F.finalize()};var ks={NONE:0,FORWARD:1,BACKWARD:2,BOTH:3},qZ=1;var ztA={arrowColor:[0,0,0,1],arrowCount:qZ,arrowStyle:ks.NONE,fillColor:[0,0,0,1],lineColor:[0,0,0,1],lineWidthMeters:5,outlineRadiusMeters:0,opacity:1,zLevel:0};var GC=63710088e-1,ejA={centimeters:GC*100,centimetres:GC*100,degrees:GC/111325,feet:GC*3.28084,inches:GC*39.37,kilometers:GC/1e3,kilometres:GC/1e3,meters:GC,metres:GC,miles:GC/1609.344,millimeters:GC*1e3,millimetres:GC*1e3,nauticalmiles:GC/1852,radians:1,yards:GC*1.0936},ajA={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/GC,yards:1.0936133};function jh(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function Hg(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!md(g[0])||!md(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return jh(B,A,I)}function iQ(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return jh(B,A,I)}function Se(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function md(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function xd(g){return!!g&&g.constructor===Object}var wC=63710088e-1,sjA={centimeters:wC*100,centimetres:wC*100,degrees:wC/111325,feet:wC*3.28084,inches:wC*39.37,kilometers:wC/1e3,kilometres:wC/1e3,meters:wC,metres:wC,miles:wC/1609.344,millimeters:wC*1e3,millimetres:wC*1e3,nauticalmiles:wC/1852,radians:1,yards:wC*1.0936},rjA={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/wC,yards:1.0936133};function bd(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(bd(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function Td(g){var A=[1/0,1/0,-1/0,-1/0];return bd(g,function(I){A[0]>I[0]&&(A[0]=I[0]),A[1]>I[1]&&(A[1]=I[1]),A[2]<I[0]&&(A[2]=I[0]),A[3]<I[1]&&(A[3]=I[1])}),A}Td.default=Td;var Le=Td;var hC=63710088e-1,RjA={centimeters:hC*100,centimetres:hC*100,degrees:hC/111325,feet:hC*3.28084,inches:hC*39.37,kilometers:hC/1e3,kilometres:hC/1e3,meters:hC,metres:hC,miles:hC/1609.344,millimeters:hC*1e3,millimetres:hC*1e3,nauticalmiles:hC/1852,radians:1,yards:hC*1.0936},MjA={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/hC,yards:1.0936133};function _tA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function dZ(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return _tA(o,A,I)}function jQ(g,A){A===void 0&&(A={});var I=Number(g[0]),B=Number(g[1]),Q=Number(g[2]),C=Number(g[3]);if(g.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var E=[I,B],o=[I,C],e=[Q,C],D=[Q,B];return dZ([[E,D,e,o,E]],A.properties,{bbox:g,id:A.id})}var NC=63710088e-1,KjA={centimeters:NC*100,centimetres:NC*100,degrees:NC/111325,feet:NC*3.28084,inches:NC*39.37,kilometers:NC/1e3,kilometres:NC/1e3,meters:NC,metres:NC,miles:NC/1609.344,millimeters:NC*1e3,millimetres:NC*1e3,nauticalmiles:NC/1852,radians:1,yards:NC*1.0936},pjA={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/NC,yards:1.0936133};function $tA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function SZ(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!UZ(g[0])||!UZ(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return $tA(B,A,I)}function UZ(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function AeA(g,A){A===void 0&&(A={});var I=Le(g),B=(I[0]+I[2])/2,Q=(I[1]+I[3])/2;return SZ([B,Q],A.properties,A)}var Wa=AeA;var xn=ft(HZ(),1);var RQ=63710088e-1,fZ={centimeters:RQ*100,centimetres:RQ*100,degrees:RQ/111325,feet:RQ*3.28084,inches:RQ*39.37,kilometers:RQ/1e3,kilometres:RQ/1e3,meters:RQ,metres:RQ,miles:RQ/1609.344,millimeters:RQ*1e3,millimetres:RQ*1e3,nauticalmiles:RQ/1852,radians:1,yards:RQ*1.0936},LjA={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/RQ,yards:1.0936133};function Wd(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function aM(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function uZ(g,A){A===void 0&&(A="kilometers");var I=fZ[A];if(!I)throw new Error(A+" units is invalid");return g*I}function mZ(g,A){A===void 0&&(A="kilometers");var I=fZ[A];if(!I)throw new Error(A+" units is invalid");return g/I}function Zd(g,A){if(g.type==="Feature")A(g,0);else if(g.type==="FeatureCollection")for(var I=0;I<g.features.length&&A(g.features[I],I)!==!1;I++);}function Pd(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function DE(){return new sM}function sM(){this.reset()}sM.prototype={constructor:sM,reset:function(){this.s=this.t=0},add:function(g){xZ(DM,g,this.t),xZ(this,DM.s,this.s),this.s?this.t+=DM.t:this.s=DM.t},valueOf:function(){return this.s}};var DM=new sM;function xZ(g,A,I){var B=g.s=A+I,Q=B-A,C=B-Q;g.t=A-C+(I-Q)}var rg=1e-6;var dg=Math.PI,TB=dg/2,rM=dg/4,MQ=dg*2,kC=180/dg,AB=dg/180,Xg=Math.abs,so=Math.atan,oQ=Math.atan2,tg=Math.cos;var nM=Math.exp;var Xh=Math.log;var eg=Math.sin;var UB=Math.sqrt,zh=Math.tan;function cM(g){return g>1?0:g<-1?dg:Math.acos(g)}function WB(g){return g>1?TB:g<-1?-TB:Math.asin(g)}function yC(){}function GM(g,A){g&&TZ.hasOwnProperty(g.type)&&TZ[g.type](g,A)}var bZ={Feature:function(g,A){GM(g.geometry,A)},FeatureCollection:function(g,A){for(var I=g.features,B=-1,Q=I.length;++B<Q;)GM(I[B].geometry,A)}},TZ={Sphere:function(g,A){A.sphere()},Point:function(g,A){g=g.coordinates,A.point(g[0],g[1],g[2])},MultiPoint:function(g,A){for(var I=g.coordinates,B=-1,Q=I.length;++B<Q;)g=I[B],A.point(g[0],g[1],g[2])},LineString:function(g,A){Od(g.coordinates,A,0)},MultiLineString:function(g,A){for(var I=g.coordinates,B=-1,Q=I.length;++B<Q;)Od(I[B],A,0)},Polygon:function(g,A){WZ(g.coordinates,A)},MultiPolygon:function(g,A){for(var I=g.coordinates,B=-1,Q=I.length;++B<Q;)WZ(I[B],A)},GeometryCollection:function(g,A){for(var I=g.geometries,B=-1,Q=I.length;++B<Q;)GM(I[B],A)}};function Od(g,A,I){var B=-1,Q=g.length-I,C;for(A.lineStart();++B<Q;)C=g[B],A.point(C[0],C[1],C[2]);A.lineEnd()}function WZ(g,A){var I=-1,B=g.length;for(A.polygonStart();++I<B;)Od(g[I],A,1);A.polygonEnd()}function Za(g,A){g&&bZ.hasOwnProperty(g.type)?bZ[g.type](g,A):GM(g,A)}var geA=DE(),XjA=DE();function Hn(g){return[oQ(g[1],g[0]),WB(g[2])]}function ro(g){var A=g[0],I=g[1],B=tg(I);return[B*tg(A),B*eg(A),eg(I)]}function _h(g,A){return g[0]*A[0]+g[1]*A[1]+g[2]*A[2]}function ys(g,A){return[g[1]*A[2]-g[2]*A[1],g[2]*A[0]-g[0]*A[2],g[0]*A[1]-g[1]*A[0]]}function wM(g,A){g[0]+=A[0],g[1]+=A[1],g[2]+=A[2]}function $h(g,A){return[g[0]*A,g[1]*A,g[2]*A]}function fn(g){var A=UB(g[0]*g[0]+g[1]*g[1]+g[2]*g[2]);g[0]/=A,g[1]/=A,g[2]/=A}var E9A=DE();function hM(g,A){function I(B,Q){return B=g(B,Q),A(B[0],B[1])}return g.invert&&A.invert&&(I.invert=function(B,Q){return B=A.invert(B,Q),B&&g.invert(B[0],B[1])}),I}function Vd(g,A){return[g>dg?g-MQ:g<-dg?g+MQ:g,A]}Vd.invert=Vd;function vd(g,A,I){return(g%=MQ)?A||I?hM(PZ(g),OZ(A,I)):PZ(g):A||I?OZ(A,I):Vd}function ZZ(g){return function(A,I){return A+=g,[A>dg?A-MQ:A<-dg?A+MQ:A,I]}}function PZ(g){var A=ZZ(g);return A.invert=ZZ(-g),A}function OZ(g,A){var I=tg(g),B=eg(g),Q=tg(A),C=eg(A);function E(o,e){var D=tg(e),r=tg(o)*D,n=eg(o)*D,G=eg(e),w=G*I+r*B;return[oQ(n*Q-w*C,r*I-G*B),WB(w*Q+n*C)]}return E.invert=function(o,e){var D=tg(e),r=tg(o)*D,n=eg(o)*D,G=eg(e),w=G*Q-n*C;return[oQ(n*Q+G*C,r*I+w*B),WB(w*I-r*B)]},E}function vZ(g,A,I,B,Q,C){if(I){var E=tg(A),o=eg(A),e=B*I;Q==null?(Q=A+B*MQ,C=A-e/2):(Q=VZ(E,Q),C=VZ(E,C),(B>0?Q<C:Q>C)&&(Q+=B*MQ));for(var D,r=Q;B>0?r>C:r<C;r-=e)D=Hn([E,-o*tg(r),-o*eg(r)]),g.point(D[0],D[1])}}function VZ(g,A){A=ro(A),A[0]-=g,fn(A);var I=cM(-A[1]);return((-A[2]<0?-I:I)+MQ-rg)%MQ}function NM(){var g=[],A;return{point:function(I,B){A.push([I,B])},lineStart:function(){g.push(A=[])},lineEnd:yC,rejoin:function(){g.length>1&&g.push(g.pop().concat(g.shift()))},result:function(){var I=g;return g=[],A=null,I}}}function jZ(g,A,I,B,Q,C){var E=g[0],o=g[1],e=A[0],D=A[1],r=0,n=1,G=e-E,w=D-o,h;if(h=I-E,!(!G&&h>0)){if(h/=G,G<0){if(h<r)return;h<n&&(n=h)}else if(G>0){if(h>n)return;h>r&&(r=h)}if(h=Q-E,!(!G&&h<0)){if(h/=G,G<0){if(h>n)return;h>r&&(r=h)}else if(G>0){if(h<r)return;h<n&&(n=h)}if(h=B-o,!(!w&&h>0)){if(h/=w,w<0){if(h<r)return;h<n&&(n=h)}else if(w>0){if(h>n)return;h>r&&(r=h)}if(h=C-o,!(!w&&h<0)){if(h/=w,w<0){if(h>n)return;h>r&&(r=h)}else if(w>0){if(h<r)return;h<n&&(n=h)}return r>0&&(g[0]=E+r*G,g[1]=o+r*w),n<1&&(A[0]=E+n*G,A[1]=o+n*w),!0}}}}}function un(g,A){return Xg(g[0]-A[0])<rg&&Xg(g[1]-A[1])<rg}function kM(g,A,I,B){this.x=g,this.z=A,this.o=I,this.e=B,this.v=!1,this.n=this.p=null}function yM(g,A,I,B,Q){var C=[],E=[],o,e;if(g.forEach(function(h){if(!((y=h.length-1)<=0)){var y,N=h[0],F=h[y],K;if(un(N,F)){for(Q.lineStart(),o=0;o<y;++o)Q.point((N=h[o])[0],N[1]);Q.lineEnd();return}C.push(K=new kM(N,h,null,!0)),E.push(K.o=new kM(N,null,K,!1)),C.push(K=new kM(F,h,null,!1)),E.push(K.o=new kM(F,null,K,!0))}}),!!C.length){for(E.sort(A),XZ(C),XZ(E),o=0,e=E.length;o<e;++o)E[o].e=I=!I;for(var D=C[0],r,n;;){for(var G=D,w=!0;G.v;)if((G=G.n)===D)return;r=G.z,Q.lineStart();do{if(G.v=G.o.v=!0,G.e){if(w)for(o=0,e=r.length;o<e;++o)Q.point((n=r[o])[0],n[1]);else B(G.x,G.n.x,1,Q);G=G.n}else{if(w)for(r=G.p.z,o=r.length-1;o>=0;--o)Q.point((n=r[o])[0],n[1]);else B(G.x,G.p.x,-1,Q);G=G.p}G=G.o,r=G.z,w=!w}while(!G.v);Q.lineEnd()}}}function XZ(g){if(A=g.length){for(var A,I=0,B=g[0],Q;++I<A;)B.n=Q=g[I],Q.p=B,B=Q;B.n=Q=g[0],Q.p=B}}function Pa(g,A){return g<A?-1:g>A?1:g>=A?0:NaN}function jd(g){return g.length===1&&(g=IeA(g)),{left:function(A,I,B,Q){for(B==null&&(B=0),Q==null&&(Q=A.length);B<Q;){var C=B+Q>>>1;g(A[C],I)<0?B=C+1:Q=C}return B},right:function(A,I,B,Q){for(B==null&&(B=0),Q==null&&(Q=A.length);B<Q;){var C=B+Q>>>1;g(A[C],I)>0?Q=C:B=C+1}return B}}}function IeA(g){return function(A,I){return Pa(g(A),I)}}var zZ=jd(Pa),BeA=zZ.right,QeA=zZ.left;var _Z=Array.prototype,EeA=_Z.slice,ieA=_Z.map;var _9A=Math.sqrt(50),$9A=Math.sqrt(10),AXA=Math.sqrt(2);function A0(g){for(var A=g.length,I,B=-1,Q=0,C,E;++B<A;)Q+=g[B].length;for(C=new Array(Q);--A>=0;)for(E=g[A],I=E.length;--I>=0;)C[--Q]=E[I];return C}var g0=1e9,RM=-g0;function Xd(g,A,I,B){function Q(D,r){return g<=D&&D<=I&&A<=r&&r<=B}function C(D,r,n,G){var w=0,h=0;if(D==null||(w=E(D,n))!==(h=E(r,n))||e(D,r)<0^n>0)do G.point(w===0||w===3?g:I,w>1?B:A);while((w=(w+n+4)%4)!==h);else G.point(r[0],r[1])}function E(D,r){return Xg(D[0]-g)<rg?r>0?0:3:Xg(D[0]-I)<rg?r>0?2:1:Xg(D[1]-A)<rg?r>0?1:0:r>0?3:2}function o(D,r){return e(D.x,r.x)}function e(D,r){var n=E(D,1),G=E(r,1);return n!==G?n-G:n===0?r[1]-D[1]:n===1?D[0]-r[0]:n===2?D[1]-r[1]:r[0]-D[0]}return function(D){var r=D,n=NM(),G,w,h,y,N,F,K,M,l,Y,S,T={point:q,lineStart:H,lineEnd:X,polygonStart:J,polygonEnd:v};function q(EA,GA){Q(EA,GA)&&r.point(EA,GA)}function P(){for(var EA=0,GA=0,nA=w.length;GA<nA;++GA)for(var lA=w[GA],dA=1,z=lA.length,yg=lA[0],pg,gI,xA=yg[0],RA=yg[1];dA<z;++dA)pg=xA,gI=RA,yg=lA[dA],xA=yg[0],RA=yg[1],gI<=B?RA>B&&(xA-pg)*(B-gI)>(RA-gI)*(g-pg)&&++EA:RA<=B&&(xA-pg)*(B-gI)<(RA-gI)*(g-pg)&&--EA;return EA}function J(){r=n,G=[],w=[],S=!0}function v(){var EA=P(),GA=S&&EA,nA=(G=A0(G)).length;(GA||nA)&&(D.polygonStart(),GA&&(D.lineStart(),C(null,null,1,D),D.lineEnd()),nA&&yM(G,o,EA,C,D),D.polygonEnd()),r=D,G=w=h=null}function H(){T.point=x,w&&w.push(h=[]),Y=!0,l=!1,K=M=NaN}function X(){G&&(x(y,N),F&&l&&n.rejoin(),G.push(n.result())),T.point=q,l&&r.lineEnd()}function x(EA,GA){var nA=Q(EA,GA);if(w&&h.push([EA,GA]),Y)y=EA,N=GA,F=nA,Y=!1,nA&&(r.lineStart(),r.point(EA,GA));else if(nA&&l)r.point(EA,GA);else{var lA=[K=Math.max(RM,Math.min(g0,K)),M=Math.max(RM,Math.min(g0,M))],dA=[EA=Math.max(RM,Math.min(g0,EA)),GA=Math.max(RM,Math.min(g0,GA))];jZ(lA,dA,g,A,I,B)?(l||(r.lineStart(),r.point(lA[0],lA[1])),r.point(dA[0],dA[1]),nA||r.lineEnd(),S=!1):nA&&(r.lineStart(),r.point(EA,GA),S=!1)}K=EA,M=GA,l=nA}return T}}var zd=DE();function _d(g,A){var I=A[0],B=A[1],Q=[eg(I),-tg(I),0],C=0,E=0;zd.reset();for(var o=0,e=g.length;o<e;++o)if(r=(D=g[o]).length)for(var D,r,n=D[r-1],G=n[0],w=n[1]/2+rM,h=eg(w),y=tg(w),N=0;N<r;++N,G=K,h=l,y=Y,n=F){var F=D[N],K=F[0],M=F[1]/2+rM,l=eg(M),Y=tg(M),S=K-G,T=S>=0?1:-1,q=T*S,P=q>dg,J=h*l;if(zd.add(oQ(J*T*eg(q),y*Y+J*tg(q))),C+=P?S+T*MQ:S,P^G>=I^K>=I){var v=ys(ro(n),ro(F));fn(v);var H=ys(Q,v);fn(H);var X=(P^S>=0?-1:1)*WB(H[2]);(B>X||B===X&&(v[0]||v[1]))&&(E+=P^S>=0?1:-1)}}return(C<-rg||C<rg&&zd<-rg)^E&1}var PzA=DE();function I0(g){return g}var e5A=DE(),a5A=DE();var mn=1/0,MM=mn,B0=-mn,lM=B0,GeA={point:weA,lineStart:yC,lineEnd:yC,polygonStart:yC,polygonEnd:yC,result:function(){var g=[[mn,MM],[B0,lM]];return B0=lM=-(MM=mn=1/0),g}};function weA(g,A){g<mn&&(mn=g),g>B0&&(B0=g),A<MM&&(MM=A),A>lM&&(lM=A)}var JM=GeA;function $d(g){this._context=g}$d.prototype={_radius:4.5,pointRadius:function(g){return this._radius=g,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(g,A){switch(this._point){case 0:{this._context.moveTo(g,A),this._point=1;break}case 1:{this._context.lineTo(g,A);break}default:{this._context.moveTo(g+this._radius,A),this._context.arc(g,A,this._radius,0,MQ);break}}},result:yC};var F5A=DE();function AU(){this._string=[]}AU.prototype={_radius:4.5,_circle:g4(4.5),pointRadius:function(g){return(g=+g)!==this._radius&&(this._radius=g,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(g,A){switch(this._point){case 0:{this._string.push("M",g,",",A),this._point=1;break}case 1:{this._string.push("L",g,",",A);break}default:{this._circle==null&&(this._circle=g4(this._radius)),this._string.push("M",g,",",A,this._circle);break}}},result:function(){if(this._string.length){var g=this._string.join("");return this._string=[],g}else return null}};function g4(g){return"m0,"+g+"a"+g+","+g+" 0 1,1 0,"+-2*g+"a"+g+","+g+" 0 1,1 0,"+2*g+"z"}function YM(g,A,I,B){return function(Q,C){var E=A(C),o=Q.invert(B[0],B[1]),e=NM(),D=A(e),r=!1,n,G,w,h={point:y,lineStart:F,lineEnd:K,polygonStart:function(){h.point=M,h.lineStart=l,h.lineEnd=Y,G=[],n=[]},polygonEnd:function(){h.point=y,h.lineStart=F,h.lineEnd=K,G=A0(G);var S=_d(n,o);G.length?(r||(C.polygonStart(),r=!0),yM(G,NeA,S,I,C)):S&&(r||(C.polygonStart(),r=!0),C.lineStart(),I(null,null,1,C),C.lineEnd()),r&&(C.polygonEnd(),r=!1),G=n=null},sphere:function(){C.polygonStart(),C.lineStart(),I(null,null,1,C),C.lineEnd(),C.polygonEnd()}};function y(S,T){var q=Q(S,T);g(S=q[0],T=q[1])&&C.point(S,T)}function N(S,T){var q=Q(S,T);E.point(q[0],q[1])}function F(){h.point=N,E.lineStart()}function K(){h.point=y,E.lineEnd()}function M(S,T){w.push([S,T]);var q=Q(S,T);D.point(q[0],q[1])}function l(){D.lineStart(),w=[]}function Y(){M(w[0][0],w[0][1]),D.lineEnd();var S=D.clean(),T=e.result(),q,P=T.length,J,v,H;if(w.pop(),n.push(w),w=null,!!P){if(S&1){if(v=T[0],(J=v.length-1)>0){for(r||(C.polygonStart(),r=!0),C.lineStart(),q=0;q<J;++q)C.point((H=v[q])[0],H[1]);C.lineEnd()}return}P>1&&S&2&&T.push(T.pop().concat(T.shift())),G.push(T.filter(heA))}}return h}}function heA(g){return g.length>1}function NeA(g,A){return((g=g.x)[0]<0?g[1]-TB-rg:TB-g[1])-((A=A.x)[0]<0?A[1]-TB-rg:TB-A[1])}var gU=YM(function(){return!0},keA,FeA,[-dg,-TB]);function keA(g){var A=NaN,I=NaN,B=NaN,Q;return{lineStart:function(){g.lineStart(),Q=1},point:function(C,E){var o=C>0?dg:-dg,e=Xg(C-A);Xg(e-dg)<rg?(g.point(A,I=(I+E)/2>0?TB:-TB),g.point(B,I),g.lineEnd(),g.lineStart(),g.point(o,I),g.point(C,I),Q=0):B!==o&&e>=dg&&(Xg(A-B)<rg&&(A-=B*rg),Xg(C-o)<rg&&(C-=o*rg),I=yeA(A,I,C,E),g.point(B,I),g.lineEnd(),g.lineStart(),g.point(o,I),Q=0),g.point(A=C,I=E),B=o},lineEnd:function(){g.lineEnd(),A=I=NaN},clean:function(){return 2-Q}}}function yeA(g,A,I,B){var Q,C,E=eg(g-I);return Xg(E)>rg?so((eg(A)*(C=tg(B))*eg(I)-eg(B)*(Q=tg(A))*eg(g))/(Q*C*E)):(A+B)/2}function FeA(g,A,I,B){var Q;if(g==null)Q=I*TB,B.point(-dg,Q),B.point(0,Q),B.point(dg,Q),B.point(dg,0),B.point(dg,-Q),B.point(0,-Q),B.point(-dg,-Q),B.point(-dg,0),B.point(-dg,Q);else if(Xg(g[0]-A[0])>rg){var C=g[0]<A[0]?dg:-dg;Q=I*C/2,B.point(-C,Q),B.point(0,Q),B.point(C,Q)}else B.point(A[0],A[1])}function I4(g,A){var I=tg(g),B=I>0,Q=Xg(I)>rg;function C(r,n,G,w){vZ(w,g,A,G,r,n)}function E(r,n){return tg(r)*tg(n)>I}function o(r){var n,G,w,h,y;return{lineStart:function(){h=w=!1,y=1},point:function(N,F){var K=[N,F],M,l=E(N,F),Y=B?l?0:D(N,F):l?D(N+(N<0?dg:-dg),F):0;if(!n&&(h=w=l)&&r.lineStart(),l!==w&&(M=e(n,K),(!M||un(n,M)||un(K,M))&&(K[0]+=rg,K[1]+=rg,l=E(K[0],K[1]))),l!==w)y=0,l?(r.lineStart(),M=e(K,n),r.point(M[0],M[1])):(M=e(n,K),r.point(M[0],M[1]),r.lineEnd()),n=M;else if(Q&&n&&B^l){var S;!(Y&G)&&(S=e(K,n,!0))&&(y=0,B?(r.lineStart(),r.point(S[0][0],S[0][1]),r.point(S[1][0],S[1][1]),r.lineEnd()):(r.point(S[1][0],S[1][1]),r.lineEnd(),r.lineStart(),r.point(S[0][0],S[0][1])))}l&&(!n||!un(n,K))&&r.point(K[0],K[1]),n=K,w=l,G=Y},lineEnd:function(){w&&r.lineEnd(),n=null},clean:function(){return y|(h&&w)<<1}}}function e(r,n,G){var w=ro(r),h=ro(n),y=[1,0,0],N=ys(w,h),F=_h(N,N),K=N[0],M=F-K*K;if(!M)return!G&&r;var l=I*F/M,Y=-I*K/M,S=ys(y,N),T=$h(y,l),q=$h(N,Y);wM(T,q);var P=S,J=_h(T,P),v=_h(P,P),H=J*J-v*(_h(T,T)-1);if(!(H<0)){var X=UB(H),x=$h(P,(-J-X)/v);if(wM(x,T),x=Hn(x),!G)return x;var EA=r[0],GA=n[0],nA=r[1],lA=n[1],dA;GA<EA&&(dA=EA,EA=GA,GA=dA);var z=GA-EA,yg=Xg(z-dg)<rg,pg=yg||z<rg;if(!yg&&lA<nA&&(dA=nA,nA=lA,lA=dA),pg?yg?nA+lA>0^x[1]<(Xg(x[0]-EA)<rg?nA:lA):nA<=x[1]&&x[1]<=lA:z>dg^(EA<=x[0]&&x[0]<=GA)){var gI=$h(P,(-J+X)/v);return wM(gI,T),[x,Hn(gI)]}}}function D(r,n){var G=B?g:dg-g,w=0;return r<-G?w|=1:r>G&&(w|=2),n<-G?w|=4:n>G&&(w|=8),w}return YM(E,o,C,B?[0,-g]:[-dg,g-dg])}function Q0(g){return function(A){var I=new IU;for(var B in g)I[B]=g[B];return I.stream=A,I}}function IU(){}IU.prototype={constructor:IU,point:function(g,A){this.stream.point(g,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 C0(g,A,I){var B=A[1][0]-A[0][0],Q=A[1][1]-A[0][1],C=g.clipExtent&&g.clipExtent();g.scale(150).translate([0,0]),C!=null&&g.clipExtent(null),Za(I,g.stream(JM));var E=JM.result(),o=Math.min(B/(E[1][0]-E[0][0]),Q/(E[1][1]-E[0][1])),e=+A[0][0]+(B-o*(E[1][0]+E[0][0]))/2,D=+A[0][1]+(Q-o*(E[1][1]+E[0][1]))/2;return C!=null&&g.clipExtent(C),g.scale(o*150).translate([e,D])}function KM(g,A,I){return C0(g,[[0,0],A],I)}var B4=16,ReA=tg(30*AB);function BU(g,A){return+A?leA(g,A):MeA(g)}function MeA(g){return Q0({point:function(A,I){A=g(A,I),this.stream.point(A[0],A[1])}})}function leA(g,A){function I(B,Q,C,E,o,e,D,r,n,G,w,h,y,N){var F=D-B,K=r-Q,M=F*F+K*K;if(M>4*A&&y--){var l=E+G,Y=o+w,S=e+h,T=UB(l*l+Y*Y+S*S),q=WB(S/=T),P=Xg(Xg(S)-1)<rg||Xg(C-n)<rg?(C+n)/2:oQ(Y,l),J=g(P,q),v=J[0],H=J[1],X=v-B,x=H-Q,EA=K*X-F*x;(EA*EA/M>A||Xg((F*X+K*x)/M-.5)>.3||E*G+o*w+e*h<ReA)&&(I(B,Q,C,E,o,e,v,H,P,l/=T,Y/=T,S,y,N),N.point(v,H),I(v,H,P,l,Y,S,D,r,n,G,w,h,y,N))}}return function(B){var Q,C,E,o,e,D,r,n,G,w,h,y,N={point:F,lineStart:K,lineEnd:l,polygonStart:function(){B.polygonStart(),N.lineStart=Y},polygonEnd:function(){B.polygonEnd(),N.lineStart=K}};function F(q,P){q=g(q,P),B.point(q[0],q[1])}function K(){n=NaN,N.point=M,B.lineStart()}function M(q,P){var J=ro([q,P]),v=g(q,P);I(n,G,r,w,h,y,n=v[0],G=v[1],r=q,w=J[0],h=J[1],y=J[2],B4,B),B.point(n,G)}function l(){N.point=F,B.lineEnd()}function Y(){K(),N.point=S,N.lineEnd=T}function S(q,P){M(Q=q,P),C=n,E=G,o=w,e=h,D=y,N.point=M}function T(){I(n,G,r,w,h,y,C,E,Q,o,e,D,B4,B),N.lineEnd=l,l()}return N}}var JeA=Q0({point:function(g,A){this.stream.point(g*AB,A*AB)}});function no(g){return QU(function(){return g})()}function QU(g){var A,I=150,B=480,Q=250,C,E,o=0,e=0,D=0,r=0,n=0,G,w,h=null,y=gU,N=null,F,K,M,l=I0,Y=.5,S=BU(v,Y),T,q;function P(x){return x=w(x[0]*AB,x[1]*AB),[x[0]*I+C,E-x[1]*I]}function J(x){return x=w.invert((x[0]-C)/I,(E-x[1])/I),x&&[x[0]*kC,x[1]*kC]}function v(x,EA){return x=A(x,EA),[x[0]*I+C,E-x[1]*I]}P.stream=function(x){return T&&q===x?T:T=JeA(y(G,S(l(q=x))))},P.clipAngle=function(x){return arguments.length?(y=+x?I4(h=x*AB,6*AB):(h=null,gU),X()):h*kC},P.clipExtent=function(x){return arguments.length?(l=x==null?(N=F=K=M=null,I0):Xd(N=+x[0][0],F=+x[0][1],K=+x[1][0],M=+x[1][1]),X()):N==null?null:[[N,F],[K,M]]},P.scale=function(x){return arguments.length?(I=+x,H()):I},P.translate=function(x){return arguments.length?(B=+x[0],Q=+x[1],H()):[B,Q]},P.center=function(x){return arguments.length?(o=x[0]%360*AB,e=x[1]%360*AB,H()):[o*kC,e*kC]},P.rotate=function(x){return arguments.length?(D=x[0]%360*AB,r=x[1]%360*AB,n=x.length>2?x[2]%360*AB:0,H()):[D*kC,r*kC,n*kC]},P.precision=function(x){return arguments.length?(S=BU(v,Y=x*x),X()):UB(Y)},P.fitExtent=function(x,EA){return C0(P,x,EA)},P.fitSize=function(x,EA){return KM(P,x,EA)};function H(){w=hM(G=vd(D,r,n),A);var x=A(o,e);return C=B-x[0]*I,E=Q+x[1]*I,X()}function X(){return T=q=null,P}return function(){return A=g.apply(this,arguments),P.invert=A.invert&&J,H()}}function pM(g){return function(A,I){var B=tg(A),Q=tg(I),C=g(B*Q);return[C*Q*eg(A),C*eg(I)]}}function ot(g){return function(A,I){var B=UB(A*A+I*I),Q=g(B),C=eg(Q),E=tg(Q);return[oQ(A*C,B*E),WB(B&&I*C/B)]}}var i4=pM(function(g){return UB(2/(1+g))});i4.invert=ot(function(g){return 2*WB(g/2)});var CU=pM(function(g){return(g=cM(g))&&g/eg(g)});CU.invert=ot(function(g){return g});function EU(){return no(CU).scale(79.4188).clipAngle(180-.001)}function iU(g,A){return[g,Xh(zh((TB+A)/2))]}iU.invert=function(g,A){return[g,2*so(nM(A))-TB]};function qM(g,A){return[g,A]}qM.invert=qM;function o4(g,A){var I=tg(A),B=tg(g)*I;return[I*eg(g)/B,eg(A)/B]}o4.invert=ot(so);function t4(g,A){var I=A*A,B=I*I;return[g*(.8707-.131979*I+B*(-.013791+B*(.003971*I-.001529*B))),A*(1.007226+I*(.015085+B*(-.044475+.028874*I-.005916*B)))]}t4.invert=function(g,A){var I=A,B=25,Q;do{var C=I*I,E=C*C;I-=Q=(I*(1.007226+C*(.015085+E*(-.044475+.028874*C-.005916*E)))-A)/(1.007226+C*(.015085*3+E*(-.044475*7+.028874*9*C-.005916*11*E)))}while(Xg(Q)>rg&&--B>0);return[g/(.8707+(C=I*I)*(-.131979+C*(-.013791+C*C*C*(.003971-.001529*C)))),I]};function e4(g,A){return[tg(A)*eg(g),eg(A)]}e4.invert=ot(WB);function a4(g,A){var I=tg(A),B=1+tg(g)*I;return[I*eg(g)/B,eg(A)/B]}a4.invert=ot(function(g){return 2*so(g)});function D4(g,A){return[Xh(zh((TB+A)/2)),-g]}D4.invert=function(g,A){return[-A,2*so(nM(g))-TB]};function peA(g,A,I){I=I||{};var B=I.units||"kilometers",Q=I.steps||8;if(!g)throw new Error("geojson is required");if(typeof I!="object")throw new Error("options must be an object");if(typeof Q!="number")throw new Error("steps must be an number");if(A===void 0)throw new Error("radius is required");if(Q<=0)throw new Error("steps must be greater than 0");var C=[];switch(g.type){case"GeometryCollection":return Pd(g,function(E){var o=dM(E,A,B,Q);o&&C.push(o)}),aM(C);case"FeatureCollection":return Zd(g,function(E){var o=dM(E,A,B,Q);o&&Zd(o,function(e){e&&C.push(e)})}),aM(C)}return dM(g,A,B,Q)}function dM(g,A,I,B){var Q=g.properties||{},C=g.type==="Feature"?g.geometry:g;if(C.type==="GeometryCollection"){var E=[];return Pd(g,function(y){var N=dM(y,A,I,B);N&&E.push(N)}),aM(E)}var o=qeA(C),e={type:C.type,coordinates:r4(C.coordinates,o)},D=new xn.GeoJSONReader,r=D.read(e),n=uZ(mZ(A,I),"meters"),G=xn.BufferOp.bufferOp(r,n,B),w=new xn.GeoJSONWriter;if(G=w.write(G),!s4(G.coordinates)){var h={type:G.type,coordinates:n4(G.coordinates,o)};return Wd(h,Q)}}function s4(g){return Array.isArray(g[0])?s4(g[0]):isNaN(g[0])}function r4(g,A){return typeof g[0]!="object"?A(g):g.map(function(I){return r4(I,A)})}function n4(g,A){return typeof g[0]!="object"?A.invert(g):g.map(function(I){return n4(I,A)})}function qeA(g){var A=Wa(g).geometry.coordinates,I=[-A[0],-A[1]];return EU().rotate(I).scale(RQ)}var UM=peA;var h4=ft(SM(),1);var FC=63710088e-1,u7A={centimeters:FC*100,centimetres:FC*100,degrees:FC/111325,feet:FC*3.28084,inches:FC*39.37,kilometers:FC/1e3,kilometres:FC/1e3,meters:FC,metres:FC,miles:FC/1609.344,millimeters:FC*1e3,millimetres:FC*1e3,nauticalmiles:FC/1852,radians:1,yards:FC*1.0936},m7A={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/FC,yards:1.0936133};function c4(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function G4(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return c4(o,A,I)}function w4(g,A,I){I===void 0&&(I={});var B={type:"MultiPolygon",coordinates:g};return c4(B,A,I)}function eU(g){return g.type==="Feature"?g.geometry:g}function deA(g,A){var I=eU(g),B=eU(A),Q=g.properties||{},C=h4.default.difference(I.coordinates,B.coordinates);return C.length===0?null:C.length===1?G4(C[0],Q):w4(C,Q)}var bn=deA;var RC=63710088e-1,UeA={centimeters:RC*100,centimetres:RC*100,degrees:RC/111325,feet:RC*3.28084,inches:RC*39.37,kilometers:RC/1e3,kilometres:RC/1e3,meters:RC,metres:RC,miles:RC/1609.344,millimeters:RC*1e3,millimetres:RC*1e3,nauticalmiles:RC/1852,radians:1,yards:RC*1.0936},V7A={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/RC,yards:1.0936133};function N4(g,A){A===void 0&&(A="kilometers");var I=UeA[A];if(!I)throw new Error(A+" units is invalid");return g*I}function E0(g){var A=g%360;return A*Math.PI/180}function aU(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function SeA(g,A,I){I===void 0&&(I={});var B=aU(g),Q=aU(A),C=E0(Q[1]-B[1]),E=E0(Q[0]-B[0]),o=E0(B[1]),e=E0(Q[1]),D=Math.pow(Math.sin(C/2),2)+Math.pow(Math.sin(E/2),2)*Math.cos(o)*Math.cos(e);return N4(2*Math.atan2(Math.sqrt(D),Math.sqrt(1-D)),I.units)}var ng=SeA;var sU=ft(y4(),1);var lC=63710088e-1,ueA={centimeters:lC*100,centimetres:lC*100,degrees:lC/111325,feet:lC*3.28084,inches:lC*39.37,kilometers:lC/1e3,kilometres:lC/1e3,meters:lC,metres:lC,miles:lC/1609.344,millimeters:lC*1e3,millimetres:lC*1e3,nauticalmiles:lC/1852,radians:1,yards:lC*1.0936},w$A={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/lC,yards:1.0936133};function meA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function F4(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!rU(g[0])||!rU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return meA(B,A,I)}function R4(g,A){A===void 0&&(A="kilometers");var I=ueA[A];if(!I)throw new Error(A+" units is invalid");return g/I}function nU(g){var A=g%(2*Math.PI);return A*180/Math.PI}function HM(g){var A=g%360;return A*Math.PI/180}function rU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function M4(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function tQ(g,A,I,B){B===void 0&&(B={});var Q=M4(g),C=HM(Q[0]),E=HM(Q[1]),o=HM(I),e=R4(A,B.units),D=Math.asin(Math.sin(E)*Math.cos(e)+Math.cos(E)*Math.sin(e)*Math.cos(o)),r=C+Math.atan2(Math.sin(o)*Math.sin(e)*Math.cos(E),Math.cos(e)-Math.sin(E)*Math.sin(D)),n=nU(r),G=nU(D);return F4([n,G],B.properties)}var JC=63710088e-1,M$A={centimeters:JC*100,centimetres:JC*100,degrees:JC/111325,feet:JC*3.28084,inches:JC*39.37,kilometers:JC/1e3,kilometres:JC/1e3,meters:JC,metres:JC,miles:JC/1609.344,millimeters:JC*1e3,millimetres:JC*1e3,nauticalmiles:JC/1852,radians:1,yards:JC*1.0936},l$A={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/JC,yards:1.0936133};function l4(g){var A=g%(2*Math.PI);return A*180/Math.PI}function o0(g){var A=g%360;return A*Math.PI/180}function cU(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function yI(g,A,I){if(I===void 0&&(I={}),I.final===!0)return xeA(g,A);var B=cU(g),Q=cU(A),C=o0(B[0]),E=o0(Q[0]),o=o0(B[1]),e=o0(Q[1]),D=Math.sin(E-C)*Math.cos(e),r=Math.cos(o)*Math.sin(e)-Math.sin(o)*Math.cos(e)*Math.cos(E-C);return l4(Math.atan2(D,r))}function xeA(g,A){var I=yI(A,g);return I=(I+180)%360,I}var YC=63710088e-1,J4={centimeters:YC*100,centimetres:YC*100,degrees:YC/111325,feet:YC*3.28084,inches:YC*39.37,kilometers:YC/1e3,kilometres:YC/1e3,meters:YC,metres:YC,miles:YC/1609.344,millimeters:YC*1e3,millimetres:YC*1e3,nauticalmiles:YC/1852,radians:1,yards:YC*1.0936},S$A={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/YC,yards:1.0936133};function Oa(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function wU(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!GU(g[0])||!GU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return Oa(B,A,I)}function fM(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return Oa(B,A,I)}function beA(g,A){A===void 0&&(A="kilometers");var I=J4[A];if(!I)throw new Error(A+" units is invalid");return g*I}function TeA(g,A){A===void 0&&(A="kilometers");var I=J4[A];if(!I)throw new Error(A+" units is invalid");return g/I}function Y4(g,A,I){if(A===void 0&&(A="kilometers"),I===void 0&&(I="kilometers"),!(g>=0))throw new Error("length must be a positive number");return beA(TeA(g,A),I)}function GU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function hU(g,A,I){if(!g)throw new Error("No feature passed");if(!I)throw new Error(".featureOf() requires a name");if(!g||g.type!=="Feature"||!g.geometry)throw new Error("Invalid input to "+I+", Feature with geometry required");if(!g.geometry||g.geometry.type!==A)throw new Error("Invalid input to "+I+": must be a "+A+", given "+g.geometry.type)}function K4(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(K4(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function WeA(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function ZeA(g,A){WeA(g,function(I,B,Q,C,E){var o=I===null?null:I.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(Oa(I,Q,{bbox:C,id:E}),B,0)===!1?!1:void 0}var e;switch(o){case"MultiPoint":e="Point";break;case"MultiLineString":e="LineString";break;case"MultiPolygon":e="Polygon";break}for(var D=0;D<I.coordinates.length;D++){var r=I.coordinates[D],n={type:e,coordinates:r};if(A(Oa(n,Q),B,D)===!1)return!1}})}function p4(g,A){ZeA(g,function(I,B,Q){var C=0;if(I.geometry){var E=I.geometry.type;if(!(E==="Point"||E==="MultiPoint")){var o,e=0,D=0,r=0;if(K4(I,function(n,G,w,h,y){if(o===void 0||B>e||h>D||y>r){o=n,e=B,D=h,r=y,C=0;return}var N=fM([o,n],I.properties);if(A(N,B,Q,y,C)===!1)return!1;C++,o=n})===!1)return!1}}})}var lQ=63710088e-1,q4={centimeters:lQ*100,centimetres:lQ*100,degrees:lQ/111325,feet:lQ*3.28084,inches:lQ*39.37,kilometers:lQ/1e3,kilometres:lQ/1e3,meters:lQ,metres:lQ,miles:lQ/1609.344,millimeters:lQ*1e3,millimetres:lQ*1e3,nauticalmiles:lQ/1852,radians:1,yards:lQ*1.0936},b$A={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/lQ,yards:1.0936133};function PeA(g,A){A===void 0&&(A="kilometers");var I=q4[A];if(!I)throw new Error(A+" units is invalid");return g*I}function OeA(g,A){A===void 0&&(A="kilometers");var I=q4[A];if(!I)throw new Error(A+" units is invalid");return g/I}function d4(g,A,I){if(A===void 0&&(A="kilometers"),I===void 0&&(I="kilometers"),!(g>=0))throw new Error("length must be a positive number");return PeA(OeA(g,A),I)}function NU(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function VeA(g,A,I){I===void 0&&(I={});var B=NU(g),Q=NU(A);Q[0]+=Q[0]-B[0]>180?-360:B[0]-Q[0]>180?360:0;var C=veA(B,Q),E=d4(C,"meters",I.units);return E}function veA(g,A,I){I=I===void 0?lQ:Number(I);var B=I,Q=g[1]*Math.PI/180,C=A[1]*Math.PI/180,E=C-Q,o=Math.abs(A[0]-g[0])*Math.PI/180;o>Math.PI&&(o-=2*Math.PI);var e=Math.log(Math.tan(C/2+Math.PI/4)/Math.tan(Q/2+Math.PI/4)),D=Math.abs(e)>1e-11?E/e:Math.cos(Q),r=Math.sqrt(E*E+D*D*o*o),n=r*B;return n}var Va=VeA;function jeA(g,A,I){if(I===void 0&&(I={}),I.method||(I.method="geodesic"),I.units||(I.units="kilometers"),!g)throw new Error("pt is required");if(Array.isArray(g)?g=wU(g):g.type==="Point"?g=Oa(g):hU(g,"Point","point"),!A)throw new Error("line is required");Array.isArray(A)?A=fM(A):A.type==="LineString"?A=Oa(A):hU(A,"LineString","line");var B=1/0,Q=g.geometry.coordinates;return p4(A,function(C){var E=C.geometry.coordinates[0],o=C.geometry.coordinates[1],e=XeA(Q,E,o,I);e<B&&(B=e)}),Y4(B,"degrees",I.units)}function XeA(g,A,I,B){var Q=[I[0]-A[0],I[1]-A[1]],C=[g[0]-A[0],g[1]-A[1]],E=U4(C,Q);if(E<=0)return kU(g,A,{method:B.method,units:"degrees"});var o=U4(Q,Q);if(o<=E)return kU(g,I,{method:B.method,units:"degrees"});var e=E/o,D=[A[0]+e*Q[0],A[1]+e*Q[1]];return kU(g,D,{method:B.method,units:"degrees"})}function U4(g,A){return g[0]*A[0]+g[1]*A[1]}function kU(g,A,I){return I.method==="planar"?Va(g,A,I):ng(g,A,I)}var yU=jeA;function PI(g,A,I){return(A=DZ(A))in g?Object.defineProperty(g,A,{value:I,enumerable:!0,configurable:!0,writable:!0}):g[A]=I,g}function Tn(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function va(g,A){let I=JZ([],A,g);return lZ(I,I,1/I[3]),I}function t0(g,A,I){return g<A?A:g>I?I:g}function zeA(g){return Math.log(g)*Math.LOG2E}var uM=Math.log2||zeA;function co(g,A){if(!g)throw new Error(A||"@math.gl/web-mercator: assertion failed.")}var Go=Math.PI,L4=Go/4,tt=Go/180,FU=180/Go,e0=512,S4=4003e4,Zn=85.051129,RU=1.5;function mM(g){return Math.pow(2,g)}function et(g){let[A,I]=g;co(Number.isFinite(A)),co(Number.isFinite(I)&&I>=-90&&I<=90,"invalid latitude");let B=A*tt,Q=I*tt,C=e0*(B+Go)/(2*Go),E=e0*(Go+Math.log(Math.tan(L4+Q*.5)))/(2*Go);return[C,E]}function wo(g){let[A,I]=g,B=A/e0*(2*Go)-Go,Q=2*(Math.atan(Math.exp(I/e0*(2*Go)-Go))-L4);return[B*FU,Q*FU]}function MU(g){let{latitude:A,longitude:I,highPrecision:B=!1}=g;co(Number.isFinite(A)&&Number.isFinite(I));let Q=e0,C=Math.cos(A*tt),E=Q/360,o=E/C,e=Q/S4/C,D={unitsPerMeter:[e,e,e],metersPerUnit:[1/e,1/e,1/e],unitsPerDegree:[E,o,e],degreesPerUnit:[1/E,1/o,1/e]};if(B){let r=tt*Math.tan(A*tt)/C,n=E*r/2,G=Q/S4*r,w=G/o*e;D.unitsPerDegree2=[0,n,G],D.unitsPerMeter2=[w,0,w]}return D}function lU(g){let{height:A,pitch:I,bearing:B,altitude:Q,scale:C,center:E}=g,o=Tn();vh(o,o,[0,0,-Q]),yZ(o,o,-I*tt),FZ(o,o,B*tt);let e=C/A;return iM(o,o,[e,e,e]),E&&vh(o,o,wZ([],E)),o}function H4(g){let{width:A,height:I,altitude:B,pitch:Q=0,offset:C,center:E,scale:o,nearZMultiplier:e=1,farZMultiplier:D=1}=g,{fovy:r=Wn(RU)}=g;B!==void 0&&(r=Wn(B));let n=r*tt,G=Q*tt,w=xM(r),h=w;E&&(h+=E[2]*o/Math.cos(G)/I);let y=n*(.5+(C?C[1]:0)/I),N=Math.sin(y)*h/Math.sin(t0(Math.PI/2-G-y,.01,Math.PI-.01)),F=Math.sin(G)*N+h,K=h*10,M=Math.min(F*D,K);return{fov:n,aspect:A/I,focalDistance:w,near:e,far:M}}function JU(g){let{fov:A,aspect:I,near:B,far:Q}=H4(g);return RZ([],A,I,B,Q)}function Wn(g){return 2*Math.atan(.5/g)*FU}function xM(g){return .5/Math.tan(.5*g*tt)}function YU(g,A){let[I,B,Q=0]=g;return co(Number.isFinite(I)&&Number.isFinite(B)&&Number.isFinite(Q)),va(A,[I,B,Q,1])}function bM(g,A,I=0){let[B,Q,C]=g;if(co(Number.isFinite(B)&&Number.isFinite(Q),"invalid pixel coordinate"),Number.isFinite(C))return va(A,[B,Q,C,1]);let E=va(A,[B,Q,0,1]),o=va(A,[B,Q,1,1]),e=E[2],D=o[2],r=e===D?0:((I||0)-e)/(D-e);return CM([],E,o,r)}function TM(g){let{width:A,height:I,bounds:B,minExtent:Q=0,maxZoom:C=24,offset:E=[0,0]}=g,[[o,e],[D,r]]=B,n=_eA(g.padding),G=et([o,t0(r,-Zn,Zn)]),w=et([D,t0(e,-Zn,Zn)]),h=[Math.max(Math.abs(w[0]-G[0]),Q),Math.max(Math.abs(w[1]-G[1]),Q)],y=[A-n.left-n.right-Math.abs(E[0])*2,I-n.top-n.bottom-Math.abs(E[1])*2];co(y[0]>0&&y[1]>0);let N=y[0]/h[0],F=y[1]/h[1],K=(n.right-n.left)/2/N,M=(n.top-n.bottom)/2/F,l=[(w[0]+G[0])/2+K,(w[1]+G[1])/2+M],Y=wo(l),S=Math.min(C,uM(Math.abs(Math.min(N,F))));return co(Number.isFinite(S)),{longitude:Y[0],latitude:Y[1],zoom:S}}function _eA(g=0){return typeof g=="number"?{top:g,bottom:g,left:g,right:g}:(co(Number.isFinite(g.top)&&Number.isFinite(g.bottom)&&Number.isFinite(g.left)&&Number.isFinite(g.right)),g)}var f4=Math.PI/180;function WM(g,A=0){let{width:I,height:B,unproject:Q}=g,C={targetZ:A},E=Q([0,B],C),o=Q([I,B],C),e,D,r=g.fovy?.5*g.fovy*f4:Math.atan(.5/g.altitude),n=(90-g.pitch)*f4;return r>n-.01?(e=u4(g,0,A),D=u4(g,I,A)):(e=Q([0,0],C),D=Q([I,0],C)),[E,o,D,e]}function u4(g,A,I){let{pixelUnprojectionMatrix:B}=g,Q=va(B,[A,0,1,1]),C=va(B,[A,g.height,1,1]),o=(I*g.distanceScales.unitsPerMeter[2]-Q[2])/(C[2]-Q[2]),e=CM([],Q,C,o),D=wo(e);return D.push(I),D}var hi=class g{constructor(A={width:1,height:1}){PI(this,"latitude",void 0),PI(this,"longitude",void 0),PI(this,"zoom",void 0),PI(this,"pitch",void 0),PI(this,"bearing",void 0),PI(this,"altitude",void 0),PI(this,"fovy",void 0),PI(this,"meterOffset",void 0),PI(this,"center",void 0),PI(this,"width",void 0),PI(this,"height",void 0),PI(this,"scale",void 0),PI(this,"distanceScales",void 0),PI(this,"viewMatrix",void 0),PI(this,"projectionMatrix",void 0),PI(this,"viewProjectionMatrix",void 0),PI(this,"pixelProjectionMatrix",void 0),PI(this,"pixelUnprojectionMatrix",void 0),PI(this,"equals",F=>F instanceof g?F.width===this.width&&F.height===this.height&&Hd(F.projectionMatrix,this.projectionMatrix)&&Hd(F.viewMatrix,this.viewMatrix):!1),PI(this,"project",(F,K={})=>{let{topLeft:M=!0}=K,l=this.projectPosition(F),Y=YU(l,this.pixelProjectionMatrix),[S,T]=Y,q=M?T:this.height-T;return F.length===2?[S,q]:[S,q,Y[2]]}),PI(this,"unproject",(F,K={})=>{let{topLeft:M=!0,targetZ:l=void 0}=K,[Y,S,T]=F,q=M?S:this.height-S,P=l&&l*this.distanceScales.unitsPerMeter[2],J=bM([Y,q,T],this.pixelUnprojectionMatrix,P),[v,H,X]=this.unprojectPosition(J);return Number.isFinite(T)?[v,H,X]:Number.isFinite(l)?[v,H,l]:[v,H]}),PI(this,"projectPosition",F=>{let[K,M]=et(F),l=(F[2]||0)*this.distanceScales.unitsPerMeter[2];return[K,M,l]}),PI(this,"unprojectPosition",F=>{let[K,M]=wo(F),l=(F[2]||0)*this.distanceScales.metersPerUnit[2];return[K,M,l]});let{width:I,height:B,altitude:Q=null,fovy:C=null}=A,{latitude:E=0,longitude:o=0,zoom:e=0,pitch:D=0,bearing:r=0,position:n=null,nearZMultiplier:G=.02,farZMultiplier:w=1.01}=A;I=I||1,B=B||1,C===null&&Q===null?(Q=RU,C=Wn(Q)):C===null?C=Wn(Q):Q===null&&(Q=xM(C));let h=mM(e);Q=Math.max(.75,Q);let y=MU({longitude:o,latitude:E}),N=et([o,E]);N.push(0),n&&GZ(N,N,hZ([],n,y.unitsPerMeter)),this.projectionMatrix=JU({width:I,height:B,scale:h,center:N,pitch:D,fovy:C,nearZMultiplier:G,farZMultiplier:w}),this.viewMatrix=lU({height:B,scale:h,center:N,pitch:D,bearing:r,altitude:Q}),this.width=I,this.height=B,this.scale=h,this.latitude=E,this.longitude=o,this.zoom=e,this.pitch=D,this.bearing=r,this.altitude=Q,this.fovy=C,this.center=N,this.meterOffset=n||[0,0,0],this.distanceScales=y,this._initMatrices(),Object.freeze(this)}_initMatrices(){let{width:A,height:I,projectionMatrix:B,viewMatrix:Q}=this,C=Tn();EM(C,C,B),EM(C,C,Q),this.viewProjectionMatrix=C;let E=Tn();iM(E,E,[A/2,-I/2,1]),vh(E,E,[1,-1,0]),EM(E,E,C);let o=kZ(Tn(),E);if(!o)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=E,this.pixelUnprojectionMatrix=o}projectFlat(A){return et(A)}unprojectFlat(A){return wo(A)}getMapCenterByLngLatPosition({lngLat:A,pos:I}){let B=bM(I,this.pixelUnprojectionMatrix),Q=et(A),C=Sd([],Q,cZ([],B)),E=Sd([],this.center,C);return wo(E)}fitBounds(A,I={}){let{width:B,height:Q}=this,{longitude:C,latitude:E,zoom:o}=TM(Object.assign({width:B,height:Q,bounds:A},I));return new g({width:B,height:Q,longitude:C,latitude:E,zoom:o})}getBounds(A){let I=this.getBoundingRegion(A),B=Math.min(...I.map(o=>o[0])),Q=Math.max(...I.map(o=>o[0])),C=Math.min(...I.map(o=>o[1])),E=Math.max(...I.map(o=>o[1]));return[[B,C],[Q,E]]}getBoundingRegion(A={}){return WM(this,A.z||0)}getLocationAtPoint({lngLat:A,pos:I}){return this.getMapCenterByLngLatPosition({lngLat:A,pos:I})}};function m4(g,A,I){let B=g.indexOf(A);return B<0?g:g.slice(0,B)+I+g.slice(B)}var Pn=class extends eE{renderLayers(){let{id:A,getFillColor:I,getStrokeColor:B,getInnerRadius:Q,updateTriggers:C}=this.props;return[new EQ({...this.props,id:`${A}-full`,data:this.props.data,getLineColor:B,updateTriggers:{...C,getStrokeColor:C.getStrokeColor}}),new EQ({...this.props,id:`${A}-inner`,data:this.props.data,getFillColor:I,getRadius:Q,pickable:!1,updateTriggers:{...C,getFillColor:C.getFillColor,getRadius:C.getInnerRadius}})]}};d(Pn,"layerName","JunctionScatterplotLayer"),d(Pn,"defaultProps",{...EQ.defaultProps,getFillColor:A=>[0,0,0,255],getStrokeColor:A=>[255,255,255,255],getInnerRadius:A=>1});var kgg={[ks.NONE]:{forward:!1,backward:!1},[ks.FORWARD]:{forward:!0,backward:!1},[ks.BACKWARD]:{forward:!1,backward:!0},[ks.BOTH]:{forward:!0,backward:!0}};var Z4=ft(SM(),1);var KC=63710088e-1,qgg={centimeters:KC*100,centimetres:KC*100,degrees:KC/111325,feet:KC*3.28084,inches:KC*39.37,kilometers:KC/1e3,kilometres:KC/1e3,meters:KC,metres:KC,miles:KC/1609.344,millimeters:KC*1e3,millimetres:KC*1e3,nauticalmiles:KC/1852,radians:1,yards:KC*1.0936},dgg={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/KC,yards:1.0936133};function b4(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function T4(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return b4(o,A,I)}function W4(g,A,I){I===void 0&&(I={});var B={type:"MultiPolygon",coordinates:g};return b4(B,A,I)}function pU(g){return g.type==="Feature"?g.geometry:g}function QaA(g,A,I){I===void 0&&(I={});var B=pU(g),Q=pU(A),C=Z4.default.union(B.coordinates,Q.coordinates);return C.length===0?null:C.length===1?T4(C[0],I.properties):W4(C,I.properties)}var P4=QaA;var pC=63710088e-1,xgg={centimeters:pC*100,centimetres:pC*100,degrees:pC/111325,feet:pC*3.28084,inches:pC*39.37,kilometers:pC/1e3,kilometres:pC/1e3,meters:pC,metres:pC,miles:pC/1609.344,millimeters:pC*1e3,millimetres:pC*1e3,nauticalmiles:pC/1852,radians:1,yards:pC*1.0936},bgg={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/pC,yards:1.0936133};function O4(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function V4(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return O4(o,A,I)}function v4(g,A,I){I===void 0&&(I={});var B={type:"MultiPolygon",coordinates:g};return O4(B,A,I)}function qU(g){return g.type==="Feature"?g.geometry:g}var j4=ft(SM(),1);function dU(g,A,I){I===void 0&&(I={});var B=qU(g),Q=qU(A),C=j4.default.intersection(B.coordinates,Q.coordinates);return C.length===0?null:C.length===1?V4(C[0],I.properties):v4(C,I.properties)}function CaA(g){if(!g)throw new Error("geojson is required");switch(g.type){case"Feature":return X4(g);case"FeatureCollection":return EaA(g);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return UU(g);default:throw new Error("unknown GeoJSON type")}}function X4(g){var A={type:"Feature"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"properties":case"geometry":return;default:A[I]=g[I]}}),A.properties=z4(g.properties),A.geometry=UU(g.geometry),A}function z4(g){var A={};return g&&Object.keys(g).forEach(function(I){var B=g[I];typeof B=="object"?B===null?A[I]=null:Array.isArray(B)?A[I]=B.map(function(Q){return Q}):A[I]=z4(B):A[I]=B}),A}function EaA(g){var A={type:"FeatureCollection"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"features":return;default:A[I]=g[I]}}),A.features=g.features.map(function(I){return X4(I)}),A}function UU(g){var A={type:g.type};return g.bbox&&(A.bbox=g.bbox),g.type==="GeometryCollection"?(A.geometries=g.geometries.map(function(I){return UU(I)}),A):(A.coordinates=_4(g.coordinates),A)}function _4(g){var A=g;return typeof A[0]!="object"?A.slice():A.map(function(I){return _4(I)})}var PM=CaA;function $4(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function at(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function OM(g){return g.type==="Feature"?g.geometry:g}function a0(g){for(var A=at(g),I=0,B=1,Q,C;B<A.length;)Q=C||A[0],C=A[B],I+=(C[0]-Q[0])*(C[1]+Q[1]),B++;return I>0}function D0(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(D0(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function SU(g,A){if(g.type==="Feature")A(g,0);else if(g.type==="FeatureCollection")for(var I=0;I<g.features.length&&A(g.features[I],I)!==!1;I++);}function s0(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function A8(g,A,I){var B=I;return s0(g,function(Q,C,E,o,e){C===0&&I===void 0?B=Q:B=A(B,Q,C,E,o,e)}),B}function g8(g,A){s0(g,function(I,B,Q,C,E){var o=I===null?null:I.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(jh(I,Q,{bbox:C,id:E}),B,0)===!1?!1:void 0}var e;switch(o){case"MultiPoint":e="Point";break;case"MultiLineString":e="LineString";break;case"MultiPolygon":e="Polygon";break}for(var D=0;D<I.coordinates.length;D++){var r=I.coordinates[D],n={type:e,coordinates:r};if(A(jh(n,Q),B,D)===!1)return!1}})}function iaA(g,A){if(A=A||{},!xd(A))throw new Error("options is invalid");var I=A.reverse||!1,B=A.mutate||!1;if(!g)throw new Error("<geojson> is required");if(typeof I!="boolean")throw new Error("<reverse> must be a boolean");if(typeof B!="boolean")throw new Error("<mutate> must be a boolean");B===!1&&(g=PM(g));var Q=[];switch(g.type){case"GeometryCollection":return s0(g,function(C){VM(C,I)}),g;case"FeatureCollection":return SU(g,function(C){SU(VM(C,I),function(E){Q.push(E)})}),Se(Q)}return VM(g,I)}function VM(g,A){var I=g.type==="Feature"?g.geometry.type:g.type;switch(I){case"GeometryCollection":return s0(g,function(B){VM(B,A)}),g;case"LineString":return I8(at(g),A),g;case"Polygon":return B8(at(g),A),g;case"MultiLineString":return at(g).forEach(function(B){I8(B,A)}),g;case"MultiPolygon":return at(g).forEach(function(B){B8(B,A)}),g;case"Point":case"MultiPoint":return g}}function I8(g,A){a0(g)===A&&g.reverse()}function B8(g,A){a0(g[0])!==A&&g[0].reverse();for(var I=1;I<g.length;I++)a0(g[I])===A&&g[I].reverse()}var Q8=iaA;function vM(g,A,I){if(!Array.isArray(g[0]))return!0;for(let B=0;B<g.length;B++)if(vM(g[B],[...A,B],I)){I(g,A);break}return!1}function He(g,A,I){let B={type:"LineString",coordinates:[g,A]},Q=Hg(I),C=yU(Q,B),E=yI(g,A),e=(I[0]-g[0])*(A[1]-g[1])-(I[1]-g[1])*(A[0]-g[0])<0?E-90:E-270,D=tQ(A,C,e),r=tQ(g,C,e);return[D.geometry.coordinates,r.geometry.coordinates]}function C8(g,A,I,B){let Q=g-I,C=A-B;return Math.sqrt(Q*Q+C*C)}function oaA(g,A,I){return A*I+g*(1-I)}function HU(g,A,I){let B=new hi(I),C=g.geometry.coordinates.map(([T,q,P=0])=>B.project([T,q,P])),[E,o]=B.project(A.geometry.coordinates),e=1/0,D={};C.forEach(([T,q],P)=>{if(P===0)return;let[J,v]=C[P-1],H=v-q,X=T-J,x=J*q-T*v,EA=H*H+X*X,GA=Math.abs(H*E+X*o+x)/Math.sqrt(EA);GA<e&&(e=GA,D={index:P,x0:(X*(X*E-H*o)-H*x)/EA,y0:(H*(-X*E+H*o)-X*x)/EA})});let{index:r,x0:n,y0:G}=D,[w,h,y=0]=C[r-1],[N,F,K=0]=C[r],M=C8(w,h,N,F),Y=C8(w,h,n,G)/M,S=oaA(y,K,Y);return{type:"Feature",geometry:{type:"Point",coordinates:B.unproject([n,G,S])},properties:{dist:e,index:r-1}}}function E8(g,A,I){let B;I&&(B=new hi(I));let Q=Hg([1/0,1/0],{dist:1/0});return!g.geometry?.coordinates.length||g.geometry?.coordinates.length<2||g8(g,C=>{let E=at(C),o=at(A),e,D,r,n,G,w,h;if(E.length>1&&o.length){let N,F;B?(N=E.map(l=>B.project(l)),F=B.project(o)):(N=E,F=o);for(let l=1;l<N.length;l++){if(N[l][0]!==N[l-1][0]){let J=(N[l][1]-N[l-1][1])/(N[l][0]-N[l-1][0]),v=N[l][1]-J*N[l][0];h=Math.abs(J*F[0]+v-F[1])/Math.sqrt(J*J+1)}else h=Math.abs(F[0]-N[l][0]);let Y=Math.pow(N[l][1]-N[l-1][1],2)+Math.pow(N[l][0]-N[l-1][0],2),S=Math.pow(N[l][1]-F[1],2)+Math.pow(N[l][0]-F[0],2),T=Math.pow(N[l-1][1]-F[1],2)+Math.pow(N[l-1][0]-F[0],2),q=Math.pow(h,2),P=S-q+T-q;P>Y&&(h=Math.sqrt(Math.min(S,T))),(e==null||e>h)&&(P>Y?T<S?(D=0,r=1):(r=0,D=1):(D=Math.sqrt(T-q)/Math.sqrt(Y),r=Math.sqrt(S-q)/Math.sqrt(Y)),e=h,w=l)}let K=N[w-1][0]-N[w][0],M=N[w-1][1]-N[w][1];n=N[w-1][0]-K*D,G=N[w-1][1]-M*D}let y={x:n,y:G,idx:w-1,to:D,from:r};if(B){let N=B.unproject([y.x,y.y]);y={x:N[0],y:N[1],idx:w-1,to:D,from:r}}Q=Hg([y.x,y.y],{dist:Math.abs(y.from-y.to),index:y.idx})}),Q}function OI(g){let A=ho(g);return A.length?A[0]:null}function i8(g){return ho(g).find(I=>I.properties.editHandleType==="snap-source")}function o8(g){return g&&g.filter(A=>!A.isGuide)}function fU(g){return ho(g).find(({properties:I})=>I.featureIndex>=0&&I.editHandleType==="existing")}function r0(g){return ho(g).find(({properties:I})=>I.featureIndex>=0&&I.editHandleType==="intermediate")}function ho(g){return g&&g.filter(I=>I.isGuide&&I.object.properties.guideType==="editHandle").map(I=>I.object)||[]}function ja(g,A,I="existing"){let B=[];switch(g.type){case"Point":B=[{type:"Feature",properties:{guideType:"editHandle",editHandleType:I,positionIndexes:[],featureIndex:A},geometry:{type:"Point",coordinates:g.coordinates}}];break;case"MultiPoint":case"LineString":B=B.concat(LU(g.coordinates,[],A,I));break;case"Polygon":case"MultiLineString":for(let Q=0;Q<g.coordinates.length;Q++)B=B.concat(LU(g.coordinates[Q],[Q],A,I)),g.type==="Polygon"&&(B=B.slice(0,-1));break;case"MultiPolygon":for(let Q=0;Q<g.coordinates.length;Q++)for(let C=0;C<g.coordinates[Q].length;C++)B=B.concat(LU(g.coordinates[Q][C],[Q,C],A,I)),B=B.slice(0,-1);break;default:throw Error(`Unhandled geometry type: ${g.type}`)}return B}function LU(g,A,I,B="existing"){let Q=[];for(let C=0;C<g.length;C++){let E=g[C];Q.push({type:"Feature",properties:{guideType:"editHandle",positionIndexes:[...A,C],featureIndex:I,editHandleType:B},geometry:{type:"Point",coordinates:E}})}return Q}function t8(g,A,I){let B=g.geometry.coordinates;if(!B)return null;let Q=B[0].slice(0,4);Q[A%4]=I;let C=Q[(A+2)%4],E=Q[A%4];return Q[(A+1)%4]=[E[0],C[1]],Q[(A+3)%4]=[C[0],E[1]],[[...Q,Q[0]]]}function n0(g,A){return typeof g[0]=="number"?!isNaN(g[0])&&isFinite(g[0])?A(g):g:g.map(I=>n0(I,A)).filter(Boolean)}var FI=class g{constructor(A){d(this,"featureCollection");this.featureCollection=A}getObject(){return this.featureCollection}replacePosition(A,I,B){let Q=this.featureCollection.features[A].geometry,C=Q.type==="Polygon"||Q.type==="MultiPolygon",E={...Q,coordinates:e8(Q.coordinates,I,B,C)};return this.replaceGeometry(A,E)}removePosition(A,I){let B=this.featureCollection.features[A].geometry;if(B.type==="Point")throw Error("Can't remove a position from a Point or there'd be nothing left");if(B.type==="MultiPoint"&&B.coordinates.length<2)throw Error("Can't remove the last point of a MultiPoint or there'd be nothing left");if(B.type==="LineString"&&B.coordinates.length<3)throw Error("Can't remove position. LineString must have at least two positions");if(B.type==="Polygon"&&B.coordinates[0].length<5&&Array.isArray(I)&&I[0]===0)throw Error("Can't remove position. Polygon's outer ring must have at least four positions");if(B.type==="MultiLineString"&&B.coordinates.length===1&&B.coordinates[0].length<3)throw Error("Can't remove position. MultiLineString must have at least two positions");if(B.type==="MultiPolygon"&&B.coordinates.length===1&&B.coordinates[0][0].length<5&&Array.isArray(I)&&I[0]===0&&I[1]===0)throw Error("Can't remove position. MultiPolygon's outer ring must have at least four positions");let Q=B.type==="Polygon"||B.type==="MultiPolygon",C={...B,coordinates:a8(B.coordinates,I,Q)};return taA(C),this.replaceGeometry(A,C)}addPosition(A,I,B){let Q=this.featureCollection.features[A].geometry;if(Q.type==="Point")throw new Error("Unable to add a position to a Point feature");let C=Q.type==="Polygon"||Q.type==="MultiPolygon",E={...Q,coordinates:D8(Q.coordinates,I,B,C)};return this.replaceGeometry(A,E)}replaceGeometry(A,I){let B={...this.featureCollection.features[A],geometry:I},Q={...this.featureCollection,features:[...this.featureCollection.features.slice(0,A),B,...this.featureCollection.features.slice(A+1)]};return new g(Q)}addFeature(A){return this.addFeatures([A])}addFeatures(A){let I={...this.featureCollection,features:[...this.featureCollection.features,...A]};return new g(I)}deleteFeature(A){return this.deleteFeatures([A])}deleteFeatures(A){let I=[...this.featureCollection.features];A.sort();for(let Q=A.length-1;Q>=0;Q--){let C=A[Q];C>=0&&C<I.length&&I.splice(C,1)}let B={...this.featureCollection,features:I};return new g(B)}};function jM(g,A){if(g.length===2&&A.length===3){let I=A[2];return[g[0],g[1],I]}return g}function e8(g,A,I,B){if(!A)return g;if(A.length===0)return jM(I,g);if(A.length===1){let Q=[...g.slice(0,A[0]),jM(I,g[A[0]]),...g.slice(A[0]+1)];return B&&(A[0]===0||A[0]===g.length-1)&&(Q[0]=jM(I,g[0]),Q[g.length-1]=jM(I,g[0])),Q}return[...g.slice(0,A[0]),e8(g[A[0]],A.slice(1,A.length),I,B),...g.slice(A[0]+1)]}function a8(g,A,I){if(!A)return g;if(A.length===0)throw Error("Must specify the index of the position to remove");if(A.length===1){let B=[...g.slice(0,A[0]),...g.slice(A[0]+1)];return I&&(A[0]===0||A[0]===g.length-1)&&(A[0]===0?B[B.length-1]=B[0]:A[0]===g.length-1&&(B[0]=B[B.length-1])),B}return[...g.slice(0,A[0]),a8(g[A[0]],A.slice(1,A.length),I),...g.slice(A[0]+1)]}function D8(g,A,I,B){if(!A)return g;if(A.length===0)throw Error("Must specify the index of the position to remove");return A.length===1?[...g.slice(0,A[0]),I,...g.slice(A[0])]:[...g.slice(0,A[0]),D8(g[A[0]],A.slice(1,A.length),I,B),...g.slice(A[0]+1)]}function taA(g){switch(g.type){case"Polygon":eaA(g);break;case"MultiLineString":aaA(g);break;case"MultiPolygon":DaA(g);break;default:break}}function eaA(g){let A=g.coordinates;for(let I=1;I<A.length;I++)s8(A,I)&&I--}function aaA(g){for(let A=0;A<g.coordinates.length;A++)g.coordinates[A].length===1&&(g.coordinates.splice(A,1),A--)}function DaA(g){for(let A=0;A<g.coordinates.length;A++){let I=g.coordinates[A];I[0].length<=3&&(g.coordinates.splice(A,1),A--);for(let Q=1;Q<I.length;Q++)s8(I,Q)&&Q--}}function s8(g,A){return g[A].length<=3?(g.splice(A,1),!0):!1}var saA={type:"FeatureCollection",features:[]},raA=[],Tg=class{constructor(){d(this,"_clickSequence",[])}getGuides(A){return saA}getTooltips(A){return raA}getSelectedFeature(A){return A.selectedIndexes.length===1?A.data.features[A.selectedIndexes[0]]:null}getSelectedGeometry(A){let I=this.getSelectedFeature(A);return I?I.geometry:null}getSelectedFeaturesAsFeatureCollection(A){let{features:I}=A.data;return{type:"FeatureCollection",features:A.selectedIndexes.map(Q=>I[Q])}}getClickSequence(){return this._clickSequence}addClickSequence({mapCoords:A}){this._clickSequence.push(A)}resetClickSequence(){this._clickSequence=[]}getTentativeGuide(A){return this.getGuides(A).features.find(B=>B.properties&&B.properties.guideType==="tentative")}isSelectionPicked(A,I){if(!A.length)return!1;let B=o8(A).map(({index:E})=>E),Q=ho(A).map(({properties:E})=>E.featureIndex),C=new Set([...B,...Q]);return I.selectedIndexes.some(E=>C.has(E))}rewindPolygon(A){let{geometry:I}=A;return I.type==="Polygon"||I.type==="MultiPolygon"?Q8(A):A}getAddFeatureAction(A,I){let B=A,Q=B.type==="Feature"?B:{type:"Feature",properties:{},geometry:B},C=this.rewindPolygon(Q),E=new FI(I).addFeature(C).getObject();return{updatedData:E,editType:"addFeature",editContext:{featureIndexes:[E.features.length-1]}}}getAddManyFeaturesAction({features:A},I){let B=new FI(I),Q=B.getObject().features.length,C=[];for(let E of A){let{properties:o,geometry:e}=E,D=e;B=B.addFeature({type:"Feature",properties:o,geometry:D}),C.push(Q+C.length)}return{updatedData:B.getObject(),editType:"addFeature",editContext:{featureIndexes:C}}}getAddFeatureOrBooleanPolygonAction(A,I){let B=A,Q=this.getSelectedFeature(I),{modeConfig:C}=I;if(C&&C.booleanOperation){if(!Q||Q.geometry.type!=="Polygon"&&Q.geometry.type!=="MultiPolygon")return console.warn("booleanOperation only supported for single Polygon or MultiPolygon selection"),null;let E=B.type==="Feature"?B:{type:"Feature",geometry:B},o;if(C.booleanOperation==="union")o=P4(Q,E);else if(C.booleanOperation==="difference")o=bn(Q,E);else if(C.booleanOperation==="intersection")o=dU(Q,E);else return console.warn(`Invalid booleanOperation ${C.booleanOperation}`),null;if(!o)return console.warn("Canceling edit. Boolean operation erased entire polygon."),null;let e=I.selectedIndexes[0];return{updatedData:new FI(I.data).replaceGeometry(e,o.geometry).getObject(),editType:"unionGeometry",editContext:{featureIndexes:[e]}}}return this.getAddFeatureAction(A,I.data)}createTentativeFeature(A){return null}handleClick(A,I){}handlePointerMove(A,I){let B=this.createTentativeFeature(I);B&&I.onEdit({updatedData:I.data,editType:"updateTentativeFeature",editContext:{feature:B}})}handleStartDragging(A,I){}handleStopDragging(A,I){}handleDragging(A,I){}handleKeyUp(A,I){A.key==="Escape"&&(this.resetClickSequence(),I.onEdit({updatedData:I.data,editType:"cancelFeature",editContext:{}}))}};function Xa(g,A){return[(g[0]+A[0])/2,(g[1]+A[1])/2]}var JQ=class extends Tg{};var qC=63710088e-1,YIg={centimeters:qC*100,centimetres:qC*100,degrees:qC/111325,feet:qC*3.28084,inches:qC*39.37,kilometers:qC/1e3,kilometres:qC/1e3,meters:qC,metres:qC,miles:qC/1609.344,millimeters:qC*1e3,millimetres:qC*1e3,nauticalmiles:qC/1852,radians:1,yards:qC*1.0936},KIg={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/qC,yards:1.0936133};function r8(g){var A=g%(2*Math.PI);return A*180/Math.PI}function XM(g){var A=g%360;return A*Math.PI/180}function c0(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function naA(g,A,I){I===void 0&&(I={});var B;I.final?B=n8(c0(A),c0(g)):B=n8(c0(g),c0(A));var Q=B>180?-(360-B):B;return Q}function n8(g,A){var I=XM(g[1]),B=XM(A[1]),Q=XM(A[0]-g[0]);Q>Math.PI&&(Q-=2*Math.PI),Q<-Math.PI&&(Q+=2*Math.PI);var C=Math.log(Math.tan(B/2+Math.PI/4)/Math.tan(I/2+Math.PI/4)),E=Math.atan2(Q,C);return(r8(E)+360)%360}var On=naA;var YQ=63710088e-1,c8={centimeters:YQ*100,centimetres:YQ*100,degrees:YQ/111325,feet:YQ*3.28084,inches:YQ*39.37,kilometers:YQ/1e3,kilometres:YQ/1e3,meters:YQ,metres:YQ,miles:YQ/1609.344,millimeters:YQ*1e3,millimetres:YQ*1e3,nauticalmiles:YQ/1852,radians:1,yards:YQ*1.0936},fIg={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/YQ,yards:1.0936133};function caA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function G8(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!uU(g[0])||!uU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return caA(B,A,I)}function GaA(g,A){A===void 0&&(A="kilometers");var I=c8[A];if(!I)throw new Error(A+" units is invalid");return g*I}function waA(g,A){A===void 0&&(A="kilometers");var I=c8[A];if(!I)throw new Error(A+" units is invalid");return g/I}function mU(g){var A=g%360;return A*Math.PI/180}function w8(g,A,I){if(A===void 0&&(A="kilometers"),I===void 0&&(I="kilometers"),!(g>=0))throw new Error("length must be a positive number");return GaA(waA(g,A),I)}function uU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function h8(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function haA(g,A,I,B){B===void 0&&(B={});var Q=A<0,C=w8(Math.abs(A),B.units,"meters");Q&&(C=-Math.abs(C));var E=h8(g),o=NaA(E,C,I);return o[0]+=o[0]-E[0]>180?-360:E[0]-o[0]>180?360:0,G8(o,B.properties)}function NaA(g,A,I,B){B=B===void 0?YQ:Number(B);var Q=A/B,C=g[0]*Math.PI/180,E=mU(g[1]),o=mU(I),e=Q*Math.cos(o),D=E+e;Math.abs(D)>Math.PI/2&&(D=D>0?Math.PI-D:-Math.PI-D);var r=Math.log(Math.tan(D/2+Math.PI/4)/Math.tan(E/2+Math.PI/4)),n=Math.abs(r)>1e-11?e/r:Math.cos(E),G=Q*Math.sin(o)/n,w=C+G;return[(w*180/Math.PI+540)%360-180,D*180/Math.PI]}var Dt=haA;function N8(g,A,I){let B=Wa(g),Q=Dt(B,A,I),C=n0(g.geometry.coordinates,E=>{let o=Va(B.geometry.coordinates,E),e=On(B.geometry.coordinates,E);return Dt(Q.geometry.coordinates,o,e).geometry.coordinates});return g.geometry.coordinates=C,g}var st=class extends Tg{constructor(){super(...arguments);d(this,"_geometryBeforeTranslate");d(this,"_isTranslatable")}handleDragging(I,B){if(this._isTranslatable){if(this._geometryBeforeTranslate){let Q=this.getTranslateAction(I.pointerDownMapCoords,I.mapCoords,"translating",B);Q&&B.onEdit(Q)}I.cancelPan()}}handlePointerMove(I,B){this._isTranslatable=this.isSelectionPicked(I.pointerDownPicks||I.picks,B),this.updateCursor(B)}handleStartDragging(I,B){this._isTranslatable&&(this._geometryBeforeTranslate=this.getSelectedFeaturesAsFeatureCollection(B))}handleStopDragging(I,B){if(this._geometryBeforeTranslate){let Q=this.getTranslateAction(I.pointerDownMapCoords,I.mapCoords,"translated",B);Q&&B.onEdit(Q),this._geometryBeforeTranslate=null}}updateCursor(I){this._isTranslatable?I.onUpdateCursor("move"):I.onUpdateCursor(null)}getTranslateAction(I,B,Q,C){if(!this._geometryBeforeTranslate)return null;let E=new FI(C.data),o=C.selectedIndexes,{viewport:e,screenSpace:D}=C.modeConfig||{};if(e&&D){let r=e.project?e:new hi(e),n=r.project(I),G=r.project(B),w=G[0]-n[0],h=G[1]-n[1];for(let y=0;y<o.length;y++){let N=o[y],F=this._geometryBeforeTranslate.features[y],K=F.geometry.coordinates;K&&(K=n0(K,M=>{let l=r.project(M);return l?(l[0]+=w,l[1]+=h,r.unproject(l)):null}),E=E.replaceGeometry(N,{type:F.geometry.type,coordinates:K}))}}else{let r=Hg(I),n=Hg(B),G=ng(r,n),w=yI(r,n),h=this._geometryBeforeTranslate.features.map(y=>N8(PM(y),G,w));for(let y=0;y<o.length;y++){let N=o[y],F=h[y];E=E.replaceGeometry(N,F.geometry)}}return{updatedData:E.getObject(),editType:Q,editContext:{featureIndexes:o}}}};var No=class extends Tg{getGuides(A){let I=[],{data:B,lastPointerMoveEvent:Q}=A,{features:C}=B,E=Q&&Q.picks,o=Q&&Q.mapCoords;for(let e of A.selectedIndexes)if(e<C.length){let{geometry:D}=C[e];I.push(...ja(D,e))}else console.warn(`selectedFeatureIndexes out of range ${e}`);if(E&&E.length&&o){let D=!fU(E)&&E.find(r=>!r.isGuide);if(D&&!D.object.geometry.type.includes("Point")&&!(A.modeConfig?.lockRectangles&&D.object.properties.shape==="Rectangle")&&A.selectedIndexes.includes(D.index)){let r=null,n=[],G=Hg(o);if(vM(D.object.geometry.coordinates,[],(w,h)=>{let y=iQ(w),N=this.getNearestPoint(y,G,A.modeConfig&&A.modeConfig.viewport);(!r||N.properties.dist<r.properties.dist)&&(r=N,n=h)}),r){let{geometry:{coordinates:w},properties:{index:h}}=r;I.push({type:"Feature",properties:{guideType:"editHandle",editHandleType:"intermediate",featureIndex:D.index,positionIndexes:[...n,h+1]},geometry:{type:"Point",coordinates:w}})}}}return{type:"FeatureCollection",features:I}}getNearestPoint(A,I,B){let{coordinates:Q}=A.geometry;if(Q.some(C=>C.length>2)){if(B)return HU(A,I,B);console.log("Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.")}return E8(A,I,B)}handleClick(A,I){let B=fU(A.picks),Q=r0(A.picks);if(B){let{featureIndex:C,positionIndexes:E}=B.properties,o;try{o=new FI(I.data).removePosition(C,E).getObject()}catch{}o&&I.onEdit({updatedData:o,editType:"removePosition",editContext:{featureIndexes:[C],positionIndexes:E,position:B.geometry.coordinates}})}else if(Q){let{featureIndex:C,positionIndexes:E}=Q.properties,o=I.data.features[C];if(!(I.modeConfig?.lockRectangles&&o?.properties.shape==="Rectangle")){let D=new FI(I.data).addPosition(C,E,Q.geometry.coordinates).getObject();D&&I.onEdit({updatedData:D,editType:"addPosition",editContext:{featureIndexes:[C],positionIndexes:E,position:Q.geometry.coordinates}})}}}handleDragging(A,I){let B=OI(A.pointerDownPicks);B&&(A.cancelPan(),this._dragEditHandle("movePosition",I,B,A))}_dragEditHandle(A,I,B,Q){let C=B.properties,E=I.data.features[C.featureIndex],o;if(I.modeConfig?.lockRectangles&&E.properties.shape==="Rectangle"){let e=t8(E,C.positionIndexes[1],Q.mapCoords);o=new FI(I.data).replaceGeometry(C.featureIndex,{coordinates:e,type:"Polygon"}).getObject()}else o=new FI(I.data).replacePosition(C.featureIndex,C.positionIndexes,Q.mapCoords).getObject();I.onEdit({updatedData:o,editType:A,editContext:{featureIndexes:[C.featureIndex],positionIndexes:C.positionIndexes,position:Q.mapCoords}})}handlePointerMove(A,I){let B=this.getCursor(A);I.onUpdateCursor(B)}handleStartDragging(A,I){let B=I.selectedIndexes,Q=r0(A.picks);if(B.length&&Q){let C=Q.properties,E=new FI(I.data).addPosition(C.featureIndex,C.positionIndexes,A.mapCoords).getObject();I.onEdit({updatedData:E,editType:"addPosition",editContext:{featureIndexes:[C.featureIndex],positionIndexes:C.positionIndexes,position:A.mapCoords}})}}handleStopDragging(A,I){let B=I.selectedIndexes,Q=OI(A.picks);B.length&&Q&&this._dragEditHandle("finishMovePosition",I,Q,A)}getCursor(A){let I=A&&A.picks||[];return ho(I).length?"cell":null}};var dC=63710088e-1,DBg={centimeters:dC*100,centimetres:dC*100,degrees:dC/111325,feet:dC*3.28084,inches:dC*39.37,kilometers:dC/1e3,kilometres:dC/1e3,meters:dC,metres:dC,miles:dC/1609.344,millimeters:dC*1e3,millimetres:dC*1e3,nauticalmiles:dC/1852,radians:1,yards:dC*1.0936},sBg={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/dC,yards:1.0936133};function y8(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function xU(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!k8(g[0])||!k8(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return y8(B,A,I)}function k8(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function bU(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(bU(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function kaA(g,A){A===void 0&&(A={});var I=0,B=0,Q=0;return bU(g,function(C){I+=C[0],B+=C[1],Q++},!0),xU([I/Q,B/Q],A.properties)}var rt=kaA;var UC=63710088e-1,yBg={centimeters:UC*100,centimetres:UC*100,degrees:UC/111325,feet:UC*3.28084,inches:UC*39.37,kilometers:UC/1e3,kilometres:UC/1e3,meters:UC,metres:UC,miles:UC/1609.344,millimeters:UC*1e3,millimetres:UC*1e3,nauticalmiles:UC/1852,radians:1,yards:UC*1.0936},FBg={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/UC,yards:1.0936133};function F8(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function R8(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return F8(B,A,I)}function M8(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function l8(g,A,I){I===void 0&&(I={});var B={type:"MultiLineString",coordinates:g};return F8(B,A,I)}function zM(g){return g.type==="Feature"?g.geometry:g}function Vn(g,A){A===void 0&&(A={});var I=zM(g);switch(!A.properties&&g.type==="Feature"&&(A.properties=g.properties),I.type){case"Polygon":return yaA(I,A);case"MultiPolygon":return FaA(I,A);default:throw new Error("invalid poly")}}function yaA(g,A){A===void 0&&(A={});var I=zM(g),B=I.coordinates,Q=A.properties?A.properties:g.type==="Feature"?g.properties:{};return J8(B,Q)}function FaA(g,A){A===void 0&&(A={});var I=zM(g),B=I.coordinates,Q=A.properties?A.properties:g.type==="Feature"?g.properties:{},C=[];return B.forEach(function(E){C.push(J8(E,Q))}),M8(C)}function J8(g,A){return g.length>1?l8(g,A):R8(g[0],A)}function RaA(g){if(!g)throw new Error("geojson is required");switch(g.type){case"Feature":return Y8(g);case"FeatureCollection":return MaA(g);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return TU(g);default:throw new Error("unknown GeoJSON type")}}function Y8(g){var A={type:"Feature"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"properties":case"geometry":return;default:A[I]=g[I]}}),A.properties=K8(g.properties),A.geometry=TU(g.geometry),A}function K8(g){var A={};return g&&Object.keys(g).forEach(function(I){var B=g[I];typeof B=="object"?B===null?A[I]=null:Array.isArray(B)?A[I]=B.map(function(Q){return Q}):A[I]=K8(B):A[I]=B}),A}function MaA(g){var A={type:"FeatureCollection"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"features":return;default:A[I]=g[I]}}),A.features=g.features.map(function(I){return Y8(I)}),A}function TU(g){var A={type:g.type};return g.bbox&&(A.bbox=g.bbox),g.type==="GeometryCollection"?(A.geometries=g.geometries.map(function(I){return TU(I)}),A):(A.coordinates=p8(g.coordinates),A)}function p8(g){var A=g;return typeof A[0]!="object"?A.slice():A.map(function(I){return p8(I)})}var q8=RaA;var SC=63710088e-1,dBg={centimeters:SC*100,centimetres:SC*100,degrees:SC/111325,feet:SC*3.28084,inches:SC*39.37,kilometers:SC/1e3,kilometres:SC/1e3,meters:SC,metres:SC,miles:SC/1609.344,millimeters:SC*1e3,millimetres:SC*1e3,nauticalmiles:SC/1852,radians:1,yards:SC*1.0936},UBg={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/SC,yards:1.0936133};function d8(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function vn(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!WU(g[0])||!WU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return d8(B,A,I)}function WU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function ZU(g){return!!g&&g.constructor===Object}function PU(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(PU(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function U8(g,A){if(g.type==="Feature")A(g,0);else if(g.type==="FeatureCollection")for(var I=0;I<g.features.length&&A(g.features[I],I)!==!1;I++);}function S8(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function L8(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function H8(g,A){return g.type==="FeatureCollection"?"FeatureCollection":g.type==="GeometryCollection"?"GeometryCollection":g.type==="Feature"&&g.geometry!==null?g.geometry.type:g.type}function laA(g,A,I){if(I=I||{},!ZU(I))throw new Error("options is invalid");var B=I.origin,Q=I.mutate;if(!g)throw new Error("geojson required");if(typeof A!="number"||A===0)throw new Error("invalid factor");var C=Array.isArray(B)||typeof B=="object";return Q!==!0&&(g=q8(g)),g.type==="FeatureCollection"&&!C?(U8(g,function(E,o){g.features[o]=f8(E,A,B)}),g):f8(g,A,B)}function f8(g,A,I){var B=H8(g)==="Point";return I=JaA(g,I),A===1||B||PU(g,function(Q){var C=Va(I,Q),E=On(I,Q),o=C*A,e=L8(Dt(I,o,E));Q[0]=e[0],Q[1]=e[1],Q.length===3&&(Q[2]*=A)}),g}function JaA(g,A){if(A==null&&(A="centroid"),Array.isArray(A)||typeof A=="object")return S8(A);var I=g.bbox?g.bbox:Le(g),B=I[0],Q=I[1],C=I[2],E=I[3];switch(A){case"sw":case"southwest":case"westsouth":case"bottomleft":return vn([B,Q]);case"se":case"southeast":case"eastsouth":case"bottomright":return vn([C,Q]);case"nw":case"northwest":case"westnorth":case"topleft":return vn([B,E]);case"ne":case"northeast":case"eastnorth":case"topright":return vn([C,E]);case"center":return Wa(g);case void 0:case null:case"centroid":return rt(g);default:throw new Error("invalid origin")}}var u8=laA;var fe=class extends Tg{constructor(){super(...arguments);d(this,"_geometryBeingScaled");d(this,"_selectedEditHandle");d(this,"_cornerGuidePoints",[]);d(this,"_cursor");d(this,"_isScaling",!1);d(this,"_isSinglePointGeometrySelected",I=>{let{features:B}=I||{};if(Array.isArray(B)&&B.length===1){let{type:Q}=OM(B[0]);return Q==="Point"}return!1});d(this,"_getOppositeScaleHandle",I=>{let B=I&&I.properties&&Array.isArray(I.properties.positionIndexes)&&I.properties.positionIndexes[0];if(typeof B!="number")return null;let Q=this._cornerGuidePoints.length,C=(B+Q/2)%Q;return this._cornerGuidePoints.find(E=>Array.isArray(E.properties.positionIndexes)?E.properties.positionIndexes[0]===C:!1)||null});d(this,"_getUpdatedData",(I,B)=>{let Q=new FI(I.data),C=I.selectedIndexes;for(let E=0;E<C.length;E++){let o=C[E],e=B.features[E];Q=Q.replaceGeometry(o,e.geometry)}return Q.getObject()});d(this,"isEditHandleSelected",()=>!!this._selectedEditHandle);d(this,"getScaleAction",(I,B,Q,C)=>{if(!this._selectedEditHandle)return null;let E=this._getOppositeScaleHandle(this._selectedEditHandle),o=$4(E),e=YaA(o,I,B),D=u8(this._geometryBeingScaled,e,{origin:o});return{updatedData:this._getUpdatedData(C,D),editType:Q,editContext:{featureIndexes:C.selectedIndexes}}});d(this,"updateCursor",I=>{if(this._selectedEditHandle){this._cursor&&I.onUpdateCursor(this._cursor);let B=this.getSelectedFeaturesAsFeatureCollection(I),Q=rt(B),C=yI(Q,this._selectedEditHandle),E=C<0?C+180:C;E>=0&&E<=90||E>=180&&E<=270?(this._cursor="nesw-resize",I.onUpdateCursor("nesw-resize")):(this._cursor="nwse-resize",I.onUpdateCursor("nwse-resize"))}else I.onUpdateCursor(null),this._cursor=null})}handlePointerMove(I,B){if(!this._isScaling){let Q=OI(I.picks);this._selectedEditHandle=Q&&Q.properties.editHandleType==="scale"?Q:null,this.updateCursor(B)}}handleStartDragging(I,B){this._selectedEditHandle&&(this._isScaling=!0,this._geometryBeingScaled=this.getSelectedFeaturesAsFeatureCollection(B))}handleDragging(I,B){if(!this._isScaling)return;B.onUpdateCursor(this._cursor);let Q=this.getScaleAction(I.pointerDownMapCoords,I.mapCoords,"scaling",B);Q&&B.onEdit(Q),I.cancelPan()}handleStopDragging(I,B){if(this._isScaling){let Q=this.getScaleAction(I.pointerDownMapCoords,I.mapCoords,"scaled",B);Q&&B.onEdit(Q),B.onUpdateCursor(null),this._geometryBeingScaled=null,this._selectedEditHandle=null,this._cursor=null,this._isScaling=!1}}getGuides(I){this._cornerGuidePoints=[];let B=this.getSelectedFeaturesAsFeatureCollection(I);if(this._isSinglePointGeometrySelected(B))return{type:"FeatureCollection",features:[]};let Q=jQ(Le(B));Q.properties.mode="scale";let C=[];return D0(Q,(E,o)=>{if(o<4){let e=Hg(E,{guideType:"editHandle",editHandleType:"scale",positionIndexes:[o]});C.push(e)}}),this._cornerGuidePoints=C,Se([Vn(Q),...this._cornerGuidePoints])}};function YaA(g,A,I){let B=ng(g,A);return ng(g,I)/B}function KaA(g){if(!g)throw new Error("geojson is required");switch(g.type){case"Feature":return m8(g);case"FeatureCollection":return paA(g);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return OU(g);default:throw new Error("unknown GeoJSON type")}}function m8(g){var A={type:"Feature"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"properties":case"geometry":return;default:A[I]=g[I]}}),A.properties=x8(g.properties),A.geometry=OU(g.geometry),A}function x8(g){var A={};return g&&Object.keys(g).forEach(function(I){var B=g[I];typeof B=="object"?B===null?A[I]=null:Array.isArray(B)?A[I]=B.map(function(Q){return Q}):A[I]=x8(B):A[I]=B}),A}function paA(g){var A={type:"FeatureCollection"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"features":return;default:A[I]=g[I]}}),A.features=g.features.map(function(I){return m8(I)}),A}function OU(g){var A={type:g.type};return g.bbox&&(A.bbox=g.bbox),g.type==="GeometryCollection"?(A.geometries=g.geometries.map(function(I){return OU(I)}),A):(A.coordinates=b8(g.coordinates),A)}function b8(g){var A=g;return typeof A[0]!="object"?A.slice():A.map(function(I){return b8(I)})}var T8=KaA;var LC=63710088e-1,sQg={centimeters:LC*100,centimetres:LC*100,degrees:LC/111325,feet:LC*3.28084,inches:LC*39.37,kilometers:LC/1e3,kilometres:LC/1e3,meters:LC,metres:LC,miles:LC/1609.344,millimeters:LC*1e3,millimetres:LC*1e3,nauticalmiles:LC/1852,radians:1,yards:LC*1.0936},rQg={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/LC,yards:1.0936133};function VU(g){return!!g&&g.constructor===Object}function vU(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(vU(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function W8(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function qaA(g,A,I){if(I=I||{},!VU(I))throw new Error("options is invalid");var B=I.pivot,Q=I.mutate;if(!g)throw new Error("geojson is required");if(A==null||isNaN(A))throw new Error("angle is required");return A===0||(B||(B=rt(g)),(Q===!1||Q===void 0)&&(g=T8(g)),vU(g,function(C){var E=On(B,C),o=E+A,e=Va(B,C),D=W8(Dt(B,e,o));C[0]=D[0],C[1]=D[1]})),g}var _M=qaA;var ue=class extends Tg{constructor(){super(...arguments);d(this,"_selectedEditHandle");d(this,"_geometryBeingRotated");d(this,"_isRotating",!1);d(this,"_isSinglePointGeometrySelected",I=>{let{features:B}=I||{};if(Array.isArray(B)&&B.length===1){let{type:Q}=OM(B[0]);return Q==="Point"}return!1});d(this,"getIsRotating",()=>this._isRotating)}getGuides(I){let B=this._geometryBeingRotated||this.getSelectedFeaturesAsFeatureCollection(I);if(this._isSinglePointGeometrySelected(B))return{type:"FeatureCollection",features:[]};if(this._isRotating)return Se([rt(B)]);let Q=jQ(Le(B)),C=null,E=null,o=0;D0(Q,G=>{if(C){let w=Xa(G,C);(!E||w[1]>E[1])&&(E=w);let h=ng(G,C);o=Math.max(o,h)}C=G});let e=E&&[E[0],E[1]+o/1e3],D=iQ([E,e]),r=Hg(e,{guideType:"editHandle",editHandleType:"rotate"}),n=[Vn(Q),r,D];return Se(n)}handleDragging(I,B){if(!this._isRotating)return;let Q=this.getRotateAction(I.pointerDownMapCoords,I.mapCoords,"rotating",B);Q&&B.onEdit(Q),I.cancelPan()}handlePointerMove(I,B){if(!this._isRotating){let Q=OI(I.picks);this._selectedEditHandle=Q&&Q.properties.editHandleType==="rotate"?Q:null}this.updateCursor(B)}handleStartDragging(I,B){this._selectedEditHandle&&(this._isRotating=!0,this._geometryBeingRotated=this.getSelectedFeaturesAsFeatureCollection(B))}handleStopDragging(I,B){if(this._isRotating){let Q=this.getRotateAction(I.pointerDownMapCoords,I.mapCoords,"rotated",B);Q&&B.onEdit(Q),this._geometryBeingRotated=null,this._selectedEditHandle=null,this._isRotating=!1}}updateCursor(I){this._selectedEditHandle?I.onUpdateCursor("crosshair"):I.onUpdateCursor(null)}getRotateAction(I,B,Q,C){if(!this._geometryBeingRotated)return null;let E=rt(this._geometryBeingRotated),o=daA(E,I,B),e=_M(this._geometryBeingRotated,o,{pivot:E}),D=new FI(C.data),r=C.selectedIndexes;for(let n=0;n<r.length;n++){let G=r[n],w=e.features[n];D=D.replaceGeometry(G,w.geometry)}return{updatedData:D.getObject(),editType:Q,editContext:{featureIndexes:r}}}};function daA(g,A,I){let B=yI(g,A);return yI(g,I)-B}var G0=class extends st{handleStartDragging(A,I){super.handleStartDragging(A,I),this._geometryBeforeTranslate&&I.onEdit(this.getAddManyFeaturesAction(this._geometryBeforeTranslate,I.data))}updateCursor(A){this._isTranslatable?A.onUpdateCursor("copy"):A.onUpdateCursor(null)}};var HC=63710088e-1,XQg={centimeters:HC*100,centimetres:HC*100,degrees:HC/111325,feet:HC*3.28084,inches:HC*39.37,kilometers:HC/1e3,kilometres:HC/1e3,meters:HC,metres:HC,miles:HC/1609.344,millimeters:HC*1e3,millimetres:HC*1e3,nauticalmiles:HC/1852,radians:1,yards:HC*1.0936},zQg={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/HC,yards:1.0936133};function Z8(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function P8(g){return g.type==="Feature"?g.geometry:g}function jU(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("point is required");if(!A)throw new Error("polygon is required");var B=Z8(g),Q=P8(A),C=Q.type,E=A.bbox,o=Q.coordinates;if(E&&UaA(B,E)===!1)return!1;C==="Polygon"&&(o=[o]);for(var e=!1,D=0;D<o.length&&!e;D++)if(O8(B,o[D][0],I.ignoreBoundary)){for(var r=!1,n=1;n<o[D].length&&!r;)O8(B,o[D][n],!I.ignoreBoundary)&&(r=!0),n++;r||(e=!0)}return e}function O8(g,A,I){var B=!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 Q=0,C=A.length-1;Q<A.length;C=Q++){var E=A[Q][0],o=A[Q][1],e=A[C][0],D=A[C][1],r=g[1]*(E-e)+o*(e-g[0])+D*(g[0]-E)===0&&(E-g[0])*(e-g[0])<=0&&(o-g[1])*(D-g[1])<=0;if(r)return!I;var n=o>g[1]!=D>g[1]&&g[0]<(e-E)*(g[1]-o)/(D-o)+E;n&&(B=!B)}return B}function UaA(g,A){return A[0]<=g[0]&&A[1]<=g[1]&&A[2]>=g[0]&&A[3]>=g[1]}var fC=63710088e-1,QCg={centimeters:fC*100,centimetres:fC*100,degrees:fC/111325,feet:fC*3.28084,inches:fC*39.37,kilometers:fC/1e3,kilometres:fC/1e3,meters:fC,metres:fC,miles:fC/1609.344,millimeters:fC*1e3,millimetres:fC*1e3,nauticalmiles:fC/1852,radians:1,yards:fC*1.0936},CCg={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/fC,yards:1.0936133};function w0(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function zU(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!XU(g[0])||!XU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return w0(B,A,I)}function _U(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function XU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function $M(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}var uC=63710088e-1,tCg={centimeters:uC*100,centimetres:uC*100,degrees:uC/111325,feet:uC*3.28084,inches:uC*39.37,kilometers:uC/1e3,kilometres:uC/1e3,meters:uC,metres:uC,miles:uC/1609.344,millimeters:uC*1e3,millimetres:uC*1e3,nauticalmiles:uC/1852,radians:1,yards:uC*1.0936},eCg={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/uC,yards:1.0936133};function Al(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function $U(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return Al(B,A,I)}function V8(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function AS(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function SaA(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function v8(g,A){SaA(g,function(I,B,Q,C,E){var o=I===null?null:I.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(Al(I,Q,{bbox:C,id:E}),B,0)===!1?!1:void 0}var e;switch(o){case"MultiPoint":e="Point";break;case"MultiLineString":e="LineString";break;case"MultiPolygon":e="Polygon";break}for(var D=0;D<I.coordinates.length;D++){var r=I.coordinates[D],n={type:e,coordinates:r};if(A(Al(n,Q),B,D)===!1)return!1}})}function LaA(g){if(!g)throw new Error("geojson is required");var A=[];return v8(g,function(I){HaA(I,A)}),V8(A)}function HaA(g,A){var I=[],B=g.geometry;if(B!==null){switch(B.type){case"Polygon":I=AS(B);break;case"LineString":I=[AS(B)]}I.forEach(function(Q){var C=faA(Q,g.properties);C.forEach(function(E){E.id=A.length,A.push(E)})})}}function faA(g,A){var I=[];return g.reduce(function(B,Q){var C=$U([B,Q],A);return C.bbox=uaA(B,Q),I.push(C),Q}),I}function uaA(g,A){var I=g[0],B=g[1],Q=A[0],C=A[1],E=I<Q?I:Q,o=B<C?B:C,e=I>Q?I:Q,D=B>C?B:C;return[E,o,e,D]}var gS=LaA;function IS(g,A){if(g.type==="Feature")A(g,0);else if(g.type==="FeatureCollection")for(var I=0;I<g.features.length&&A(g.features[I],I)!==!1;I++);}var RP=ft(yP(),1);function LDA(g,A){var I={},B=[];if(g.type==="LineString"&&(g=w0(g)),A.type==="LineString"&&(A=w0(A)),g.type==="Feature"&&A.type==="Feature"&&g.geometry!==null&&A.geometry!==null&&g.geometry.type==="LineString"&&A.geometry.type==="LineString"&&g.geometry.coordinates.length===2&&A.geometry.coordinates.length===2){var Q=FP(g,A);return Q&&B.push(Q),_U(B)}var C=(0,RP.default)();return C.load(gS(A)),IS(gS(g),function(E){IS(C.search(E),function(o){var e=FP(E,o);if(e){var D=$M(e).join(",");I[D]||(I[D]=!0,B.push(e))}})}),_U(B)}function FP(g,A){var I=$M(g),B=$M(A);if(I.length!==2)throw new Error("<intersects> line1 must only contain 2 coordinates");if(B.length!==2)throw new Error("<intersects> line2 must only contain 2 coordinates");var Q=I[0][0],C=I[0][1],E=I[1][0],o=I[1][1],e=B[0][0],D=B[0][1],r=B[1][0],n=B[1][1],G=(n-D)*(E-Q)-(r-e)*(o-C),w=(r-e)*(C-D)-(n-D)*(Q-e),h=(E-Q)*(C-D)-(o-C)*(Q-e);if(G===0)return null;var y=w/G,N=h/G;if(y>=0&&y<=1&&N>=0&&N<=1){var F=Q+y*(E-Q),K=C+y*(o-C);return zU([F,K])}return null}var $a=LDA;var mC=63710088e-1,xCg={centimeters:mC*100,centimetres:mC*100,degrees:mC/111325,feet:mC*3.28084,inches:mC*39.37,kilometers:mC/1e3,kilometres:mC/1e3,meters:mC,metres:mC,miles:mC/1609.344,millimeters:mC*1e3,millimetres:mC*1e3,nauticalmiles:mC/1852,radians:1,yards:mC*1.0936},bCg={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/mC,yards:1.0936133};function k0(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function y0(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!hS(g[0])||!hS(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return k0(B,A,I)}function il(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return k0(B,A,I)}function hS(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function HDA(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function MP(g,A){HDA(g,function(I,B,Q,C,E){var o=I===null?null:I.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(k0(I,Q,{bbox:C,id:E}),B,0)===!1?!1:void 0}var e;switch(o){case"MultiPoint":e="Point";break;case"MultiLineString":e="LineString";break;case"MultiPolygon":e="Polygon";break}for(var D=0;D<I.coordinates.length;D++){var r=I.coordinates[D],n={type:e,coordinates:r};if(A(k0(n,Q),B,D)===!1)return!1}})}function lP(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function fDA(g,A,I){I===void 0&&(I={});var B=y0([1/0,1/0],{dist:1/0}),Q=0;return MP(g,function(C){for(var E=lP(C),o=0;o<E.length-1;o++){var e=y0(E[o]);e.properties.dist=ng(A,e,I);var D=y0(E[o+1]);D.properties.dist=ng(A,D,I);var r=ng(e,D,I),n=Math.max(e.properties.dist,D.properties.dist),G=yI(e,D),w=tQ(A,n,G+90,I),h=tQ(A,n,G-90,I),y=$a(il([w.geometry.coordinates,h.geometry.coordinates]),il([e.geometry.coordinates,D.geometry.coordinates])),N=null;y.features.length>0&&(N=y.features[0],N.properties.dist=ng(A,N,I),N.properties.location=Q+ng(e,N,I)),e.properties.dist<B.properties.dist&&(B=e,B.properties.index=o,B.properties.location=Q),D.properties.dist<B.properties.dist&&(B=D,B.properties.index=o+1,B.properties.location=Q+r),N&&N.properties.dist<B.properties.dist&&(B=N,B.properties.index=o),Q+=r}}),B}var ol=fDA;var F0=class extends Tg{calculateMapCoords(A,I,B){let Q=B.modeConfig;if(!Q||!Q.lock90Degree||!A.length)return I;if(A.length===1){let e=A[0],D=this.getSelectedGeometry(B),r=Vn(D),n=r.type==="FeatureCollection"?r.features:[r],G=Number.MAX_SAFE_INTEGER,w=null;if(n.forEach(h=>{let y=ol(h,e),N=ng(y,e);G>N&&(G=N,w=y)}),w){let h=yI(e,w),y=ng(e,I,{units:"meters"});return tQ(e,y,h,{units:"meters"}).geometry.coordinates}return I}let C=A[A.length-1],[E]=He(A[A.length-2],C,I);return ol(iQ([C,E]),I).geometry.coordinates}getGuides(A){let I=this.getClickSequence(),B={type:"FeatureCollection",features:[]};if(I.length===0||!A.lastPointerMoveEvent)return B;let{mapCoords:Q}=A.lastPointerMoveEvent;return B.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...I,this.calculateMapCoords(I,Q,A)]}}),B}handleClick(A,I){let B=this.getTentativeGuide(I),Q=this.getSelectedGeometry(I);if(!Q){console.warn("A polygon must be selected for splitting");return}let C=this.getClickSequence();B&&B.geometry.type==="LineString"?C.push(B.geometry.coordinates[B.geometry.coordinates.length-1]):this.addClickSequence(A);let E={type:"Point",coordinates:C[C.length-1]},o=jU(E,Q);if(C.length>1&&B&&!o){if(this.resetClickSequence(),$a(B,Q).features.length===0)return;let D=this.splitPolygon(B,I);D&&I.onEdit(D)}}handlePointerMove(A,I){I.onUpdateCursor("cell")}splitPolygon(A,I){let B=this.getSelectedGeometry(I),Q=I.selectedIndexes[0],C=I.modeConfig||{},{gap:E=.1,units:o="centimeters"}=C;E===0&&(E=.1,o="centimeters");let e=UM(A,E,{units:o}),D=bn(B,e);if(!D)return console.warn("Canceling edit. Split Polygon erased"),null;let{type:r,coordinates:n}=D.geometry,G=[];return r==="Polygon"?G=n.map(y=>[y]):G=n.reduce((y,N)=>(N.forEach(F=>{y.push([F])}),y),[]),{updatedData:new FI(I.data).replaceGeometry(Q,{type:"MultiPolygon",coordinates:G}).getObject(),editType:"split",editContext:{featureIndexes:[Q]}}}};var R0=class extends No{constructor(){super(...arguments);d(this,"isPointAdded",!1)}handleDragging(I,B){let Q=OI(I.pointerDownPicks);if(Q){let{featureIndex:C}=Q.properties,{positionIndexes:E}=Q.properties,o=this.coordinatesSize(E,C,B.data);E=this.isPointAdded?this.nextPositionIndexes(E,o):E;let e=this.getPointForPositionIndexes(this.prevPositionIndexes(E,o),C,B.data),D=this.getPointForPositionIndexes(E,C,B.data);if(e&&D){let[r,n]=He(e,D,I.mapCoords),G=new FI(B.data).replacePosition(C,this.prevPositionIndexes(E,o),n).replacePosition(C,E,r).getObject();B.onEdit({updatedData:G,editType:"extruding",editContext:{featureIndexes:[C],positionIndexes:this.nextPositionIndexes(E,o),position:r}}),I.cancelPan()}}}handleStartDragging(I,B){let Q=B.selectedIndexes,C=r0(I.picks);if(Q.length&&C){let{positionIndexes:E,featureIndex:o}=C.properties,e=this.coordinatesSize(E,o,B.data),D=this.getPointForPositionIndexes(this.prevPositionIndexes(E,e),o,B.data),r=this.getPointForPositionIndexes(E,o,B.data);if(D&&r){let n=new FI(B.data);this.isOrthogonal(E,o,e,B.data)||(n=n.addPosition(o,E,r)),this.isOrthogonal(this.prevPositionIndexes(E,e),o,e,B.data)||(n=n.addPosition(o,E,D),this.isPointAdded=!0),B.onEdit({updatedData:n.getObject(),editType:"startExtruding",editContext:{featureIndexes:[o],positionIndexes:E,position:D}})}}}handleStopDragging(I,B){let Q=B.selectedIndexes,C=OI(I.pointerDownPicks);if(Q.length&&C){let{featureIndex:E}=C.properties,{positionIndexes:o}=C.properties,e=this.coordinatesSize(o,E,B.data);o=this.isPointAdded?this.nextPositionIndexes(o,e):o;let D=this.getPointForPositionIndexes(this.prevPositionIndexes(o,e),E,B.data),r=this.getPointForPositionIndexes(o,E,B.data);if(D&&r){let[n,G]=He(D,r,I.mapCoords),w=new FI(B.data).replacePosition(E,this.prevPositionIndexes(o,e),G).replacePosition(E,o,n).getObject();B.onEdit({updatedData:w,editType:"extruded",editContext:{featureIndexes:[E],positionIndexes:o,position:n}})}}this.isPointAdded=!1}coordinatesSize(I,B,{features:Q}){let C=0;if(Array.isArray(I)){let o=Q[B].geometry.coordinates;if(I.length===3){let[e,D]=I;o.length&&o[e].length&&(C=o[e][D].length)}else{let[e]=I;o.length&&o[e].length&&(C=o[e].length)}}return C}getBearing(I,B){let Q=yI(I,B);return Q<0?Math.floor(360+Q):Math.floor(Q)}isOrthogonal(I,B,Q,C){if(!Array.isArray(I))return!1;I[I.length-1]===Q-1&&(I[I.length-1]=0);let E=this.getPointForPositionIndexes(this.prevPositionIndexes(I,Q),B,C),o=this.getPointForPositionIndexes(this.nextPositionIndexes(I,Q),B,C),e=this.getPointForPositionIndexes(I,B,C),D=this.getBearing(e,E),r=this.getBearing(e,o);return[89,90,91,269,270,271].includes(Math.abs(D-r))}nextPositionIndexes(I,B){if(!Array.isArray(I))return[];let Q=[...I];return Q.length&&(Q[Q.length-1]=Q[Q.length-1]===B-1?0:Q[Q.length-1]+1),Q}prevPositionIndexes(I,B){if(!Array.isArray(I))return[];let Q=[...I];return Q.length&&(Q[Q.length-1]=Q[Q.length-1]===0?B-2:Q[Q.length-1]-1),Q}getPointForPositionIndexes(I,B,{features:Q}){let C;if(Array.isArray(I)){let o=Q[B].geometry.coordinates;if(I.length===3){let[e,D,r]=I;o.length&&o[e].length&&(C=o[e][D][r])}else{let[e,D]=I;o.length&&o[e].length&&(C=o[e][D])}}return C}};function uDA({pointerDownScreenCoords:g,screenCoords:A}){return 10*(g[1]-A[1])}var M0=class extends No{makeElevatedEvent(A,I,B){let{minElevation:Q=0,maxElevation:C=2e4,calculateElevationChange:E=uDA}=B.modeConfig||{};if(!A.pointerDownScreenCoords)return A;let o=I.length===3?I[2]:0;return o+=E({pointerDownScreenCoords:A.pointerDownScreenCoords,screenCoords:A.screenCoords}),o=Math.min(o,C),o=Math.max(o,Q),Object.assign({},A,{mapCoords:[I[0],I[1],o]})}handlePointerMove(A,I){let B=OI(A.pointerDownPicks),Q=B?B.geometry.coordinates:A.mapCoords;super.handlePointerMove(this.makeElevatedEvent(A,Q,I),I)}handleStopDragging(A,I){let B=OI(A.picks),Q=B?B.geometry.coordinates:A.mapCoords;super.handleStopDragging(this.makeElevatedEvent(A,Q,I),I)}getCursor(A){let I=super.getCursor(A);return I==="cell"&&(I="ns-resize"),I}static calculateElevationChangeWithViewport(A,{pointerDownScreenCoords:I,screenCoords:B}){return 156543.03392*Math.cos(A.latitude*Math.PI/180)/Math.pow(2,A.zoom)*(I[1]-B[1])/2}};var l0=class extends Tg{createTentativeFeature(A){let{lastPointerMoveEvent:I}=A,B=I?[I.mapCoords]:[];return{type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Point",coordinates:B[0]}}}handleClick({mapCoords:A},I){let B={type:"Point",coordinates:A};I.onEdit(this.getAddFeatureAction(B,I.data))}handlePointerMove(A,I){I.onUpdateCursor("cell"),super.handlePointerMove(A,I)}};function mDA(g,A){if(g===A)return!0;if(Array.isArray(g)){let I=g.length;if(!A||A.length!==I)return!1;for(let B=0;B<I;B++)if(g[B]!==A[B])return!1;return!0}return!1}function AD(g){let A={},I;return B=>{for(let Q in B)if(!mDA(B[Q],A[Q])){I=g(B),A=B;break}return I}}var J0=class extends Tg{constructor(){super(...arguments);d(this,"dist",0);d(this,"position",null);d(this,"elems",[]);d(this,"_getTooltips",AD(({modeConfig:I,dist:B})=>{let Q=[],{formatTooltip:C}=I||{},E;return B&&(C?E=C(B):E=`Distance: ${parseFloat(B).toFixed(2)} kilometers`,Q=[{position:this.position,text:E}]),Q}))}handleClick(I,B){let{picks:Q}=I,C=OI(Q),E=!1;C||(this.addClickSequence(I),E=!0);let o=this.getClickSequence();if(C||this.calculateInfoDraw(o),o.length>1&&C&&Array.isArray(C.properties.positionIndexes)&&C.properties.positionIndexes[0]===o.length-1){this.dist=0;let e={type:"LineString",coordinates:[...o]};this.resetClickSequence();let D=this.getAddFeatureAction(e,B.data);D&&B.onEdit(D)}else E&&B.onEdit({updatedData:B.data,editType:"addTentativePosition",editContext:{position:I.mapCoords}})}handleKeyUp(I,B){let{key:Q}=I;if(Q==="Enter"){let C=this.getClickSequence();if(C.length>1){let E={type:"LineString",coordinates:[...C]};this.resetClickSequence();let o=this.getAddFeatureAction(E,B.data);o&&B.onEdit(o)}}else Q==="Escape"&&(this.resetClickSequence(),B.onEdit({updatedData:B.data,editType:"cancelFeature",editContext:{}}))}getGuides(I){let{lastPointerMoveEvent:B}=I,Q=this.getClickSequence(),C=B?[B.mapCoords]:[],E={type:"FeatureCollection",features:[]},o;Q.length>0&&(o={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...Q,...C]}}),o&&E.features.push(o);let e=Q.map((D,r)=>({type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[r]},geometry:{type:"Point",coordinates:D}}));return E.features.push(...e),E}handlePointerMove(I,B){B.onUpdateCursor("cell")}getTooltips(I){return this._getTooltips({modeConfig:I.modeConfig,dist:this.dist})}calculateInfoDraw(I){I.length>1&&(this.position=I[I.length-1],this.dist+=ng(I[I.length-2],I[I.length-1]))}};var mE=class extends Tg{createTentativeFeature(A){let{lastPointerMoveEvent:I}=A,B=this.getClickSequence(),Q=I?[I.mapCoords]:[],C;return B.length===1||B.length===2?C={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...B,...Q]}}:B.length>2&&(C={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Polygon",coordinates:[[...B,...Q,B[0]]]}}),C}getGuides(A){let I=this.getClickSequence(),B={type:"FeatureCollection",features:[]},Q=this.createTentativeFeature(A);Q&&B.features.push(Q);let C=I.map((E,o)=>({type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[o]},geometry:{type:"Point",coordinates:E}}));return B.features.push(...C),B}handleClick(A,I){let{picks:B}=A,Q=OI(B),C=this.getClickSequence(),E=!1;if(C.length>2&&I.modeConfig&&I.modeConfig.preventOverlappingLines){let e=iQ([C[C.length-1],A.mapCoords]),D=iQ([...C.slice(0,C.length-1)]);$a(e,D).features.length>0&&(E=!0)}let o=!1;if(!Q&&!E&&(this.addClickSequence(A),o=!0),C.length>2&&Q&&Array.isArray(Q.properties.positionIndexes)&&(Q.properties.positionIndexes[0]===0||Q.properties.positionIndexes[0]===C.length-1)){let e={type:"Polygon",coordinates:[[...C,C[0]]]};this.resetClickSequence();let D=this.getAddFeatureOrBooleanPolygonAction(e,I);D&&I.onEdit(D)}else o&&I.onEdit({updatedData:I.data,editType:"addTentativePosition",editContext:{position:A.mapCoords}})}handleKeyUp(A,I){if(A.key==="Enter"){let B=this.getClickSequence();if(B.length>2){let Q={type:"Polygon",coordinates:[[...B,B[0]]]};this.resetClickSequence();let C=this.getAddFeatureOrBooleanPolygonAction(Q,I);C&&I.onEdit(C)}}else A.key==="Escape"&&(this.resetClickSequence(),I.onEdit({updatedData:I.data,editType:"cancelFeature",editContext:{}}))}handlePointerMove(A,I){I.onUpdateCursor("cell"),super.handlePointerMove(A,I)}};var $Q=class extends Tg{handleClick(A,I){I.modeConfig&&I.modeConfig.dragToDraw||(this.addClickSequence(A),this.checkAndFinishPolygon(I))}handleStartDragging(A,I){!I.modeConfig||!I.modeConfig.dragToDraw||(this.addClickSequence(A),A.cancelPan())}handleStopDragging(A,I){!I.modeConfig||!I.modeConfig.dragToDraw||(this.addClickSequence(A),this.checkAndFinishPolygon(I))}checkAndFinishPolygon(A){let I=this.getClickSequence(),B=this.getTentativeGuide(A);if(I.length>1&&B&&B.geometry.type==="Polygon"){let Q={type:"Feature",properties:{shape:B.properties.shape},geometry:{type:"Polygon",coordinates:B.geometry.coordinates}},C=this.getAddFeatureOrBooleanPolygonAction(Q,A);this.resetClickSequence(),C&&A.onEdit(C)}}getGuides(A){let{lastPointerMoveEvent:I,modeConfig:B}=A,Q=this.getClickSequence(),C={type:"FeatureCollection",features:[]};if(Q.length===0||!I)return C;let E=Q[0],o=I.mapCoords,e=this.getTwoClickPolygon(E,o,B);return e&&C.features.push({type:"Feature",properties:{shape:e.properties&&e.properties.shape,guideType:"tentative"},geometry:e.geometry}),C}getTwoClickPolygon(A,I,B){return null}handlePointerMove(A,I){I.onUpdateCursor("cell"),super.handlePointerMove(A,I)}createTentativeFeature(A){let{lastPointerMoveEvent:I}=A,B=this.getClickSequence(),Q=I?[I.mapCoords]:[],C;return B.length===1&&(C=this.getTwoClickPolygon(B[0],Q[0],A.modeConfig)),C}};var Fs=class extends $Q{getTwoClickPolygon(A,I,B){let Q=jQ([A[0],A[1],I[0],I[1]]);return Q.properties=Q.properties||{},Q.properties.shape="Rectangle",Q}};var xC=63710088e-1,ZEg={centimeters:xC*100,centimetres:xC*100,degrees:xC/111325,feet:xC*3.28084,inches:xC*39.37,kilometers:xC/1e3,kilometres:xC/1e3,meters:xC,metres:xC,miles:xC/1609.344,millimeters:xC*1e3,millimetres:xC*1e3,nauticalmiles:xC/1852,radians:1,yards:xC*1.0936},PEg={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/xC,yards:1.0936133};function xDA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function kS(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!NS(g[0])||!NS(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return xDA(B,A,I)}function NS(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function JP(g){return g.type==="Feature"?g.geometry:g}function Y0(g,A,I){I===void 0&&(I={});for(var B=JP(g),Q=B.coordinates,C=0,E=0;E<Q.length&&!(A>=C&&E===Q.length-1);E++)if(C>=A){var o=A-C;if(o){var e=yI(Q[E],Q[E-1])-180,D=tQ(Q[E],o,e,I);return D}else return kS(Q[E])}else C+=ng(Q[E],Q[E+1],I);return kS(Q[Q.length-1])}var K0=class extends $Q{getTwoClickPolygon(A,I,B){let Q=[I[0],A[1]],C=[A[0],I[1]],E=ng(Hg(Q),Hg(A)),o=ng(Hg(C),Hg(A)),e=E<=o?E:o,D=E<=o?Q:C,r=iQ([D,I]),G=Y0(r,e).geometry.coordinates,w=jQ([A[0],A[1],G[0],G[1]]);return w.properties=w.properties||{},w.properties.shape="Square",w}};var p0=class extends $Q{getTwoClickPolygon(A,I,B){let Q=A[0]>I[0]?A[0]+Math.abs(A[0]-I[0]):A[0]-Math.abs(A[0]-I[0]),C=A[1]>I[1]?A[1]+Math.abs(A[1]-I[1]):A[1]-Math.abs(A[1]-I[1]),E=jQ([Q,C,I[0],I[1]]);return E.properties=E.properties||{},E.properties.shape="Rectangle",E}};var q0=class extends $Q{getTwoClickPolygon(A,I,B){let Q=[I[0],A[1]],C=[A[0],I[1]],E=ng(Hg(Q),Hg(A)),o=ng(Hg(C),Hg(A)),e=E<=o?E:o,D=E<=o?Q:C,r=iQ([D,I]),G=Y0(r,e).geometry.coordinates,w=A[0]>G[0]?A[0]+Math.abs(A[0]-G[0]):A[0]-Math.abs(A[0]-G[0]),h=A[1]>G[1]?A[1]+Math.abs(A[1]-G[1]):A[1]-Math.abs(A[1]-G[1]),y=jQ([w,h,G[0],G[1]]);return y.properties=y.properties||{},y.properties.shape="Square",y}};var bC=63710088e-1,cig={centimeters:bC*100,centimetres:bC*100,degrees:bC/111325,feet:bC*3.28084,inches:bC*39.37,kilometers:bC/1e3,kilometres:bC/1e3,meters:bC,metres:bC,miles:bC/1609.344,millimeters:bC*1e3,millimetres:bC*1e3,nauticalmiles:bC/1852,radians:1,yards:bC*1.0936},Gig={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/bC,yards:1.0936133};function bDA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function YP(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return bDA(o,A,I)}function TDA(g,A,I){I===void 0&&(I={});for(var B=I.steps||64,Q=I.properties?I.properties:!Array.isArray(g)&&g.type==="Feature"&&g.properties?g.properties:{},C=[],E=0;E<B;E++)C.push(tQ(g,A,E*-360/B,I).geometry.coordinates);return C.push(C[0]),YP([C],Q)}var d0=TDA;var KP=6378137;function Xn(g){return A8(g,function(A,I){return A+WDA(I)},0)}function WDA(g){var A=0,I;switch(g.type){case"Polygon":return pP(g.coordinates);case"MultiPolygon":for(I=0;I<g.coordinates.length;I++)A+=pP(g.coordinates[I]);return A;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}function pP(g){var A=0;if(g&&g.length>0){A+=Math.abs(qP(g[0]));for(var I=1;I<g.length;I++)A-=Math.abs(qP(g[I]))}return A}function qP(g){var A,I,B,Q,C,E,o,e=0,D=g.length;if(D>2){for(o=0;o<D;o++)o===D-2?(Q=D-2,C=D-1,E=0):o===D-1?(Q=D-1,C=0,E=1):(Q=o,C=o+1,E=o+2),A=g[Q],I=g[C],B=g[E],e+=(yS(B[0])-yS(A[0]))*Math.sin(yS(I[1]));e=e*KP*KP/2}return e}function yS(g){return g*Math.PI/180}var U0=class extends $Q{constructor(){super(...arguments);d(this,"radius",null);d(this,"position",null);d(this,"areaCircle",null);d(this,"_getTooltips",AD(({modeConfig:I,radius:B,areaCircle:Q})=>{let C=[],{formatTooltip:E}=I||{},o;return B&&Q&&(E?o=E(B):o=`Radius: ${parseFloat(B).toFixed(2)} kilometers
1752
+ `},A}updateState(A){super.updateState(A);let{props:I,oldProps:B}=A;(I.color!==B.color||I.opacityScale!==B.opacityScale)&&this.setState({uniforms:{uColor:I.color.map(Q=>Q/255),uOpacityScale:I.opacityScale}})}draw(A){let{uniforms:I}=this.state;super.draw({...A,uniforms:{...A.uniforms,...I}})}};var tM=(g,A,I,B,Q={},C=null)=>async({index:E})=>{let{x:o,y:e,z:D}=E,r=`${g}/pyramid_images/${A}_files/${B+D}/${o}_${e}${I}`,{fetch:n={},...G}=Q,w=async(h,y={})=>{let N={...n,...y};return C?C.fetch(h,N):fetch(h,N)};try{return await bo(r,jG,{...G,fetch:w})}catch(h){let y=ZI(h,{coordinates:`${o},${e},${D}`,url:r,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 y.error==="not_found"||y.error==="network",null}},fd=(g,A,I)=>B=>{let{bbox:{left:Q,bottom:C,right:E,top:o}}=B.tile,{width:e,height:D}=g;return new oM(B,{data:null,image:B.data,bounds:[Et(Q,0,e),Et(C,0,D),Et(E,0,e),Et(o,0,D)],color:A,opacityScale:I})},YZ=g=>A=>{let{bbox:{left:I,bottom:B,right:Q,top:C}}=A.tile,{width:E,height:o}=g;return new cn(A,{data:null,image:A.data,bounds:[Et(I,0,E),Et(B,0,o),Et(Q,0,E),Et(C,0,o)]})};var dn=async(g,A)=>{let{global_base_url:I}=g,{dimensions:B}=g,{landscape_parameters:Q}=g.img,{image_format:C}=g.img.landscape_parameters;return new Kn({id:"global-simple-image-layer",tileSize:B.tileSize,refinementStrategy:"no-overlap",minZoom:-7,maxZoom:0,maxCacheSize:20,extent:[0,0,B.width,B.height],getTileData:tM(I,A.name,C,Q.max_pyramid_zoom,AI,g.aws),renderSubLayers:YZ(B),visible:!0})},KZ=(g,A)=>{g.simple_image_layer=g.simple_image_layer.clone({visible:A})};var Un=(g,A)=>{g.global_base_url=A};var pZ=async(g,A,I,B)=>{let Q=`${g}/pyramid_images/${A}.dzi`,E=await(B!==null?await B.fetch(Q):await fetch(Q,I.fetch)).text(),o=new DOMParser().parseFromString(E,"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 Sn=async(g,A,I)=>{g.dimensions=await pZ(A,I,AI,g.aws)};var Ln=async(g,A,I)=>{let B=`${A}/landscape_parameters.json`,Q=await fetch(B,AI.fetch);g.landscape_parameters=await Q.json()};var ud=async(g,A,I,B,Q,C,E,o,e="",D=0,r=800,n={})=>{D===0&&(D="100%");let G=document.createElement("div");G.style.height=`${r}px`;let w={};if(qn(B),Un(w,I),"accessKeyId"in n){w.aws=new ra({accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey,sessionToken:n.sessionToken,region:"us-east-1",service:"s3"});let M=await w.aws.fetch(`${I}/landscape_parameters.json`);if(!M.ok)throw new Error(`Fetch failed: ${M.statusText}`)}else w.aws=null;w.model=g,w.img={},w.img.image_layer_colors={},w.img.image_layer_sliders={},await Ln(w.img,I),await Sn(w,I,"h_and_e"),w.buttons={},w.buttons.blue="#8797ff",w.buttons.gray="gray",w.buttons.light_gray="#EEEEEE",w.buttons.buttons={};let N={simple_image_layer:await dn(w,{name:"h_and_e",color:[0,0,255]})};w.views=pn();let F=BM(G,D,r),K={target:[Q,C,E],zoom:o};return F.setProps({views:w.views,layers:[N.simple_image_layer],initialViewState:K}),A.appendChild(G),()=>F.finalize()};var ks={NONE:0,FORWARD:1,BACKWARD:2,BOTH:3},qZ=1;var ztA={arrowColor:[0,0,0,1],arrowCount:qZ,arrowStyle:ks.NONE,fillColor:[0,0,0,1],lineColor:[0,0,0,1],lineWidthMeters:5,outlineRadiusMeters:0,opacity:1,zLevel:0};var GC=63710088e-1,ejA={centimeters:GC*100,centimetres:GC*100,degrees:GC/111325,feet:GC*3.28084,inches:GC*39.37,kilometers:GC/1e3,kilometres:GC/1e3,meters:GC,metres:GC,miles:GC/1609.344,millimeters:GC*1e3,millimetres:GC*1e3,nauticalmiles:GC/1852,radians:1,yards:GC*1.0936},ajA={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/GC,yards:1.0936133};function jh(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function Hg(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!md(g[0])||!md(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return jh(B,A,I)}function iQ(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return jh(B,A,I)}function Se(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function md(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function xd(g){return!!g&&g.constructor===Object}var wC=63710088e-1,sjA={centimeters:wC*100,centimetres:wC*100,degrees:wC/111325,feet:wC*3.28084,inches:wC*39.37,kilometers:wC/1e3,kilometres:wC/1e3,meters:wC,metres:wC,miles:wC/1609.344,millimeters:wC*1e3,millimetres:wC*1e3,nauticalmiles:wC/1852,radians:1,yards:wC*1.0936},rjA={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/wC,yards:1.0936133};function bd(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(bd(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function Td(g){var A=[1/0,1/0,-1/0,-1/0];return bd(g,function(I){A[0]>I[0]&&(A[0]=I[0]),A[1]>I[1]&&(A[1]=I[1]),A[2]<I[0]&&(A[2]=I[0]),A[3]<I[1]&&(A[3]=I[1])}),A}Td.default=Td;var Le=Td;var hC=63710088e-1,RjA={centimeters:hC*100,centimetres:hC*100,degrees:hC/111325,feet:hC*3.28084,inches:hC*39.37,kilometers:hC/1e3,kilometres:hC/1e3,meters:hC,metres:hC,miles:hC/1609.344,millimeters:hC*1e3,millimetres:hC*1e3,nauticalmiles:hC/1852,radians:1,yards:hC*1.0936},MjA={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/hC,yards:1.0936133};function _tA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function dZ(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return _tA(o,A,I)}function jQ(g,A){A===void 0&&(A={});var I=Number(g[0]),B=Number(g[1]),Q=Number(g[2]),C=Number(g[3]);if(g.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var E=[I,B],o=[I,C],e=[Q,C],D=[Q,B];return dZ([[E,D,e,o,E]],A.properties,{bbox:g,id:A.id})}var NC=63710088e-1,KjA={centimeters:NC*100,centimetres:NC*100,degrees:NC/111325,feet:NC*3.28084,inches:NC*39.37,kilometers:NC/1e3,kilometres:NC/1e3,meters:NC,metres:NC,miles:NC/1609.344,millimeters:NC*1e3,millimetres:NC*1e3,nauticalmiles:NC/1852,radians:1,yards:NC*1.0936},pjA={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/NC,yards:1.0936133};function $tA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function SZ(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!UZ(g[0])||!UZ(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return $tA(B,A,I)}function UZ(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function AeA(g,A){A===void 0&&(A={});var I=Le(g),B=(I[0]+I[2])/2,Q=(I[1]+I[3])/2;return SZ([B,Q],A.properties,A)}var Wa=AeA;var xn=ft(HZ(),1);var RQ=63710088e-1,fZ={centimeters:RQ*100,centimetres:RQ*100,degrees:RQ/111325,feet:RQ*3.28084,inches:RQ*39.37,kilometers:RQ/1e3,kilometres:RQ/1e3,meters:RQ,metres:RQ,miles:RQ/1609.344,millimeters:RQ*1e3,millimetres:RQ*1e3,nauticalmiles:RQ/1852,radians:1,yards:RQ*1.0936},LjA={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/RQ,yards:1.0936133};function Wd(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function aM(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function uZ(g,A){A===void 0&&(A="kilometers");var I=fZ[A];if(!I)throw new Error(A+" units is invalid");return g*I}function mZ(g,A){A===void 0&&(A="kilometers");var I=fZ[A];if(!I)throw new Error(A+" units is invalid");return g/I}function Zd(g,A){if(g.type==="Feature")A(g,0);else if(g.type==="FeatureCollection")for(var I=0;I<g.features.length&&A(g.features[I],I)!==!1;I++);}function Pd(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function DE(){return new sM}function sM(){this.reset()}sM.prototype={constructor:sM,reset:function(){this.s=this.t=0},add:function(g){xZ(DM,g,this.t),xZ(this,DM.s,this.s),this.s?this.t+=DM.t:this.s=DM.t},valueOf:function(){return this.s}};var DM=new sM;function xZ(g,A,I){var B=g.s=A+I,Q=B-A,C=B-Q;g.t=A-C+(I-Q)}var rg=1e-6;var dg=Math.PI,TB=dg/2,rM=dg/4,MQ=dg*2,kC=180/dg,AB=dg/180,Xg=Math.abs,so=Math.atan,oQ=Math.atan2,tg=Math.cos;var nM=Math.exp;var Xh=Math.log;var eg=Math.sin;var UB=Math.sqrt,zh=Math.tan;function cM(g){return g>1?0:g<-1?dg:Math.acos(g)}function WB(g){return g>1?TB:g<-1?-TB:Math.asin(g)}function yC(){}function GM(g,A){g&&TZ.hasOwnProperty(g.type)&&TZ[g.type](g,A)}var bZ={Feature:function(g,A){GM(g.geometry,A)},FeatureCollection:function(g,A){for(var I=g.features,B=-1,Q=I.length;++B<Q;)GM(I[B].geometry,A)}},TZ={Sphere:function(g,A){A.sphere()},Point:function(g,A){g=g.coordinates,A.point(g[0],g[1],g[2])},MultiPoint:function(g,A){for(var I=g.coordinates,B=-1,Q=I.length;++B<Q;)g=I[B],A.point(g[0],g[1],g[2])},LineString:function(g,A){Od(g.coordinates,A,0)},MultiLineString:function(g,A){for(var I=g.coordinates,B=-1,Q=I.length;++B<Q;)Od(I[B],A,0)},Polygon:function(g,A){WZ(g.coordinates,A)},MultiPolygon:function(g,A){for(var I=g.coordinates,B=-1,Q=I.length;++B<Q;)WZ(I[B],A)},GeometryCollection:function(g,A){for(var I=g.geometries,B=-1,Q=I.length;++B<Q;)GM(I[B],A)}};function Od(g,A,I){var B=-1,Q=g.length-I,C;for(A.lineStart();++B<Q;)C=g[B],A.point(C[0],C[1],C[2]);A.lineEnd()}function WZ(g,A){var I=-1,B=g.length;for(A.polygonStart();++I<B;)Od(g[I],A,1);A.polygonEnd()}function Za(g,A){g&&bZ.hasOwnProperty(g.type)?bZ[g.type](g,A):GM(g,A)}var geA=DE(),XjA=DE();function Hn(g){return[oQ(g[1],g[0]),WB(g[2])]}function ro(g){var A=g[0],I=g[1],B=tg(I);return[B*tg(A),B*eg(A),eg(I)]}function _h(g,A){return g[0]*A[0]+g[1]*A[1]+g[2]*A[2]}function ys(g,A){return[g[1]*A[2]-g[2]*A[1],g[2]*A[0]-g[0]*A[2],g[0]*A[1]-g[1]*A[0]]}function wM(g,A){g[0]+=A[0],g[1]+=A[1],g[2]+=A[2]}function $h(g,A){return[g[0]*A,g[1]*A,g[2]*A]}function fn(g){var A=UB(g[0]*g[0]+g[1]*g[1]+g[2]*g[2]);g[0]/=A,g[1]/=A,g[2]/=A}var E9A=DE();function hM(g,A){function I(B,Q){return B=g(B,Q),A(B[0],B[1])}return g.invert&&A.invert&&(I.invert=function(B,Q){return B=A.invert(B,Q),B&&g.invert(B[0],B[1])}),I}function Vd(g,A){return[g>dg?g-MQ:g<-dg?g+MQ:g,A]}Vd.invert=Vd;function vd(g,A,I){return(g%=MQ)?A||I?hM(PZ(g),OZ(A,I)):PZ(g):A||I?OZ(A,I):Vd}function ZZ(g){return function(A,I){return A+=g,[A>dg?A-MQ:A<-dg?A+MQ:A,I]}}function PZ(g){var A=ZZ(g);return A.invert=ZZ(-g),A}function OZ(g,A){var I=tg(g),B=eg(g),Q=tg(A),C=eg(A);function E(o,e){var D=tg(e),r=tg(o)*D,n=eg(o)*D,G=eg(e),w=G*I+r*B;return[oQ(n*Q-w*C,r*I-G*B),WB(w*Q+n*C)]}return E.invert=function(o,e){var D=tg(e),r=tg(o)*D,n=eg(o)*D,G=eg(e),w=G*Q-n*C;return[oQ(n*Q+G*C,r*I+w*B),WB(w*I-r*B)]},E}function vZ(g,A,I,B,Q,C){if(I){var E=tg(A),o=eg(A),e=B*I;Q==null?(Q=A+B*MQ,C=A-e/2):(Q=VZ(E,Q),C=VZ(E,C),(B>0?Q<C:Q>C)&&(Q+=B*MQ));for(var D,r=Q;B>0?r>C:r<C;r-=e)D=Hn([E,-o*tg(r),-o*eg(r)]),g.point(D[0],D[1])}}function VZ(g,A){A=ro(A),A[0]-=g,fn(A);var I=cM(-A[1]);return((-A[2]<0?-I:I)+MQ-rg)%MQ}function NM(){var g=[],A;return{point:function(I,B){A.push([I,B])},lineStart:function(){g.push(A=[])},lineEnd:yC,rejoin:function(){g.length>1&&g.push(g.pop().concat(g.shift()))},result:function(){var I=g;return g=[],A=null,I}}}function jZ(g,A,I,B,Q,C){var E=g[0],o=g[1],e=A[0],D=A[1],r=0,n=1,G=e-E,w=D-o,h;if(h=I-E,!(!G&&h>0)){if(h/=G,G<0){if(h<r)return;h<n&&(n=h)}else if(G>0){if(h>n)return;h>r&&(r=h)}if(h=Q-E,!(!G&&h<0)){if(h/=G,G<0){if(h>n)return;h>r&&(r=h)}else if(G>0){if(h<r)return;h<n&&(n=h)}if(h=B-o,!(!w&&h>0)){if(h/=w,w<0){if(h<r)return;h<n&&(n=h)}else if(w>0){if(h>n)return;h>r&&(r=h)}if(h=C-o,!(!w&&h<0)){if(h/=w,w<0){if(h>n)return;h>r&&(r=h)}else if(w>0){if(h<r)return;h<n&&(n=h)}return r>0&&(g[0]=E+r*G,g[1]=o+r*w),n<1&&(A[0]=E+n*G,A[1]=o+n*w),!0}}}}}function un(g,A){return Xg(g[0]-A[0])<rg&&Xg(g[1]-A[1])<rg}function kM(g,A,I,B){this.x=g,this.z=A,this.o=I,this.e=B,this.v=!1,this.n=this.p=null}function yM(g,A,I,B,Q){var C=[],E=[],o,e;if(g.forEach(function(h){if(!((y=h.length-1)<=0)){var y,N=h[0],F=h[y],K;if(un(N,F)){for(Q.lineStart(),o=0;o<y;++o)Q.point((N=h[o])[0],N[1]);Q.lineEnd();return}C.push(K=new kM(N,h,null,!0)),E.push(K.o=new kM(N,null,K,!1)),C.push(K=new kM(F,h,null,!1)),E.push(K.o=new kM(F,null,K,!0))}}),!!C.length){for(E.sort(A),XZ(C),XZ(E),o=0,e=E.length;o<e;++o)E[o].e=I=!I;for(var D=C[0],r,n;;){for(var G=D,w=!0;G.v;)if((G=G.n)===D)return;r=G.z,Q.lineStart();do{if(G.v=G.o.v=!0,G.e){if(w)for(o=0,e=r.length;o<e;++o)Q.point((n=r[o])[0],n[1]);else B(G.x,G.n.x,1,Q);G=G.n}else{if(w)for(r=G.p.z,o=r.length-1;o>=0;--o)Q.point((n=r[o])[0],n[1]);else B(G.x,G.p.x,-1,Q);G=G.p}G=G.o,r=G.z,w=!w}while(!G.v);Q.lineEnd()}}}function XZ(g){if(A=g.length){for(var A,I=0,B=g[0],Q;++I<A;)B.n=Q=g[I],Q.p=B,B=Q;B.n=Q=g[0],Q.p=B}}function Pa(g,A){return g<A?-1:g>A?1:g>=A?0:NaN}function jd(g){return g.length===1&&(g=IeA(g)),{left:function(A,I,B,Q){for(B==null&&(B=0),Q==null&&(Q=A.length);B<Q;){var C=B+Q>>>1;g(A[C],I)<0?B=C+1:Q=C}return B},right:function(A,I,B,Q){for(B==null&&(B=0),Q==null&&(Q=A.length);B<Q;){var C=B+Q>>>1;g(A[C],I)>0?Q=C:B=C+1}return B}}}function IeA(g){return function(A,I){return Pa(g(A),I)}}var zZ=jd(Pa),BeA=zZ.right,QeA=zZ.left;var _Z=Array.prototype,EeA=_Z.slice,ieA=_Z.map;var _9A=Math.sqrt(50),$9A=Math.sqrt(10),AXA=Math.sqrt(2);function A0(g){for(var A=g.length,I,B=-1,Q=0,C,E;++B<A;)Q+=g[B].length;for(C=new Array(Q);--A>=0;)for(E=g[A],I=E.length;--I>=0;)C[--Q]=E[I];return C}var g0=1e9,RM=-g0;function Xd(g,A,I,B){function Q(D,r){return g<=D&&D<=I&&A<=r&&r<=B}function C(D,r,n,G){var w=0,h=0;if(D==null||(w=E(D,n))!==(h=E(r,n))||e(D,r)<0^n>0)do G.point(w===0||w===3?g:I,w>1?B:A);while((w=(w+n+4)%4)!==h);else G.point(r[0],r[1])}function E(D,r){return Xg(D[0]-g)<rg?r>0?0:3:Xg(D[0]-I)<rg?r>0?2:1:Xg(D[1]-A)<rg?r>0?1:0:r>0?3:2}function o(D,r){return e(D.x,r.x)}function e(D,r){var n=E(D,1),G=E(r,1);return n!==G?n-G:n===0?r[1]-D[1]:n===1?D[0]-r[0]:n===2?D[1]-r[1]:r[0]-D[0]}return function(D){var r=D,n=NM(),G,w,h,y,N,F,K,M,l,Y,S,T={point:q,lineStart:H,lineEnd:X,polygonStart:J,polygonEnd:v};function q(EA,GA){Q(EA,GA)&&r.point(EA,GA)}function P(){for(var EA=0,GA=0,nA=w.length;GA<nA;++GA)for(var lA=w[GA],dA=1,z=lA.length,yg=lA[0],pg,gI,xA=yg[0],RA=yg[1];dA<z;++dA)pg=xA,gI=RA,yg=lA[dA],xA=yg[0],RA=yg[1],gI<=B?RA>B&&(xA-pg)*(B-gI)>(RA-gI)*(g-pg)&&++EA:RA<=B&&(xA-pg)*(B-gI)<(RA-gI)*(g-pg)&&--EA;return EA}function J(){r=n,G=[],w=[],S=!0}function v(){var EA=P(),GA=S&&EA,nA=(G=A0(G)).length;(GA||nA)&&(D.polygonStart(),GA&&(D.lineStart(),C(null,null,1,D),D.lineEnd()),nA&&yM(G,o,EA,C,D),D.polygonEnd()),r=D,G=w=h=null}function H(){T.point=x,w&&w.push(h=[]),Y=!0,l=!1,K=M=NaN}function X(){G&&(x(y,N),F&&l&&n.rejoin(),G.push(n.result())),T.point=q,l&&r.lineEnd()}function x(EA,GA){var nA=Q(EA,GA);if(w&&h.push([EA,GA]),Y)y=EA,N=GA,F=nA,Y=!1,nA&&(r.lineStart(),r.point(EA,GA));else if(nA&&l)r.point(EA,GA);else{var lA=[K=Math.max(RM,Math.min(g0,K)),M=Math.max(RM,Math.min(g0,M))],dA=[EA=Math.max(RM,Math.min(g0,EA)),GA=Math.max(RM,Math.min(g0,GA))];jZ(lA,dA,g,A,I,B)?(l||(r.lineStart(),r.point(lA[0],lA[1])),r.point(dA[0],dA[1]),nA||r.lineEnd(),S=!1):nA&&(r.lineStart(),r.point(EA,GA),S=!1)}K=EA,M=GA,l=nA}return T}}var zd=DE();function _d(g,A){var I=A[0],B=A[1],Q=[eg(I),-tg(I),0],C=0,E=0;zd.reset();for(var o=0,e=g.length;o<e;++o)if(r=(D=g[o]).length)for(var D,r,n=D[r-1],G=n[0],w=n[1]/2+rM,h=eg(w),y=tg(w),N=0;N<r;++N,G=K,h=l,y=Y,n=F){var F=D[N],K=F[0],M=F[1]/2+rM,l=eg(M),Y=tg(M),S=K-G,T=S>=0?1:-1,q=T*S,P=q>dg,J=h*l;if(zd.add(oQ(J*T*eg(q),y*Y+J*tg(q))),C+=P?S+T*MQ:S,P^G>=I^K>=I){var v=ys(ro(n),ro(F));fn(v);var H=ys(Q,v);fn(H);var X=(P^S>=0?-1:1)*WB(H[2]);(B>X||B===X&&(v[0]||v[1]))&&(E+=P^S>=0?1:-1)}}return(C<-rg||C<rg&&zd<-rg)^E&1}var PzA=DE();function I0(g){return g}var e5A=DE(),a5A=DE();var mn=1/0,MM=mn,B0=-mn,lM=B0,GeA={point:weA,lineStart:yC,lineEnd:yC,polygonStart:yC,polygonEnd:yC,result:function(){var g=[[mn,MM],[B0,lM]];return B0=lM=-(MM=mn=1/0),g}};function weA(g,A){g<mn&&(mn=g),g>B0&&(B0=g),A<MM&&(MM=A),A>lM&&(lM=A)}var JM=GeA;function $d(g){this._context=g}$d.prototype={_radius:4.5,pointRadius:function(g){return this._radius=g,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(g,A){switch(this._point){case 0:{this._context.moveTo(g,A),this._point=1;break}case 1:{this._context.lineTo(g,A);break}default:{this._context.moveTo(g+this._radius,A),this._context.arc(g,A,this._radius,0,MQ);break}}},result:yC};var F5A=DE();function AU(){this._string=[]}AU.prototype={_radius:4.5,_circle:g4(4.5),pointRadius:function(g){return(g=+g)!==this._radius&&(this._radius=g,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(g,A){switch(this._point){case 0:{this._string.push("M",g,",",A),this._point=1;break}case 1:{this._string.push("L",g,",",A);break}default:{this._circle==null&&(this._circle=g4(this._radius)),this._string.push("M",g,",",A,this._circle);break}}},result:function(){if(this._string.length){var g=this._string.join("");return this._string=[],g}else return null}};function g4(g){return"m0,"+g+"a"+g+","+g+" 0 1,1 0,"+-2*g+"a"+g+","+g+" 0 1,1 0,"+2*g+"z"}function YM(g,A,I,B){return function(Q,C){var E=A(C),o=Q.invert(B[0],B[1]),e=NM(),D=A(e),r=!1,n,G,w,h={point:y,lineStart:F,lineEnd:K,polygonStart:function(){h.point=M,h.lineStart=l,h.lineEnd=Y,G=[],n=[]},polygonEnd:function(){h.point=y,h.lineStart=F,h.lineEnd=K,G=A0(G);var S=_d(n,o);G.length?(r||(C.polygonStart(),r=!0),yM(G,NeA,S,I,C)):S&&(r||(C.polygonStart(),r=!0),C.lineStart(),I(null,null,1,C),C.lineEnd()),r&&(C.polygonEnd(),r=!1),G=n=null},sphere:function(){C.polygonStart(),C.lineStart(),I(null,null,1,C),C.lineEnd(),C.polygonEnd()}};function y(S,T){var q=Q(S,T);g(S=q[0],T=q[1])&&C.point(S,T)}function N(S,T){var q=Q(S,T);E.point(q[0],q[1])}function F(){h.point=N,E.lineStart()}function K(){h.point=y,E.lineEnd()}function M(S,T){w.push([S,T]);var q=Q(S,T);D.point(q[0],q[1])}function l(){D.lineStart(),w=[]}function Y(){M(w[0][0],w[0][1]),D.lineEnd();var S=D.clean(),T=e.result(),q,P=T.length,J,v,H;if(w.pop(),n.push(w),w=null,!!P){if(S&1){if(v=T[0],(J=v.length-1)>0){for(r||(C.polygonStart(),r=!0),C.lineStart(),q=0;q<J;++q)C.point((H=v[q])[0],H[1]);C.lineEnd()}return}P>1&&S&2&&T.push(T.pop().concat(T.shift())),G.push(T.filter(heA))}}return h}}function heA(g){return g.length>1}function NeA(g,A){return((g=g.x)[0]<0?g[1]-TB-rg:TB-g[1])-((A=A.x)[0]<0?A[1]-TB-rg:TB-A[1])}var gU=YM(function(){return!0},keA,FeA,[-dg,-TB]);function keA(g){var A=NaN,I=NaN,B=NaN,Q;return{lineStart:function(){g.lineStart(),Q=1},point:function(C,E){var o=C>0?dg:-dg,e=Xg(C-A);Xg(e-dg)<rg?(g.point(A,I=(I+E)/2>0?TB:-TB),g.point(B,I),g.lineEnd(),g.lineStart(),g.point(o,I),g.point(C,I),Q=0):B!==o&&e>=dg&&(Xg(A-B)<rg&&(A-=B*rg),Xg(C-o)<rg&&(C-=o*rg),I=yeA(A,I,C,E),g.point(B,I),g.lineEnd(),g.lineStart(),g.point(o,I),Q=0),g.point(A=C,I=E),B=o},lineEnd:function(){g.lineEnd(),A=I=NaN},clean:function(){return 2-Q}}}function yeA(g,A,I,B){var Q,C,E=eg(g-I);return Xg(E)>rg?so((eg(A)*(C=tg(B))*eg(I)-eg(B)*(Q=tg(A))*eg(g))/(Q*C*E)):(A+B)/2}function FeA(g,A,I,B){var Q;if(g==null)Q=I*TB,B.point(-dg,Q),B.point(0,Q),B.point(dg,Q),B.point(dg,0),B.point(dg,-Q),B.point(0,-Q),B.point(-dg,-Q),B.point(-dg,0),B.point(-dg,Q);else if(Xg(g[0]-A[0])>rg){var C=g[0]<A[0]?dg:-dg;Q=I*C/2,B.point(-C,Q),B.point(0,Q),B.point(C,Q)}else B.point(A[0],A[1])}function I4(g,A){var I=tg(g),B=I>0,Q=Xg(I)>rg;function C(r,n,G,w){vZ(w,g,A,G,r,n)}function E(r,n){return tg(r)*tg(n)>I}function o(r){var n,G,w,h,y;return{lineStart:function(){h=w=!1,y=1},point:function(N,F){var K=[N,F],M,l=E(N,F),Y=B?l?0:D(N,F):l?D(N+(N<0?dg:-dg),F):0;if(!n&&(h=w=l)&&r.lineStart(),l!==w&&(M=e(n,K),(!M||un(n,M)||un(K,M))&&(K[0]+=rg,K[1]+=rg,l=E(K[0],K[1]))),l!==w)y=0,l?(r.lineStart(),M=e(K,n),r.point(M[0],M[1])):(M=e(n,K),r.point(M[0],M[1]),r.lineEnd()),n=M;else if(Q&&n&&B^l){var S;!(Y&G)&&(S=e(K,n,!0))&&(y=0,B?(r.lineStart(),r.point(S[0][0],S[0][1]),r.point(S[1][0],S[1][1]),r.lineEnd()):(r.point(S[1][0],S[1][1]),r.lineEnd(),r.lineStart(),r.point(S[0][0],S[0][1])))}l&&(!n||!un(n,K))&&r.point(K[0],K[1]),n=K,w=l,G=Y},lineEnd:function(){w&&r.lineEnd(),n=null},clean:function(){return y|(h&&w)<<1}}}function e(r,n,G){var w=ro(r),h=ro(n),y=[1,0,0],N=ys(w,h),F=_h(N,N),K=N[0],M=F-K*K;if(!M)return!G&&r;var l=I*F/M,Y=-I*K/M,S=ys(y,N),T=$h(y,l),q=$h(N,Y);wM(T,q);var P=S,J=_h(T,P),v=_h(P,P),H=J*J-v*(_h(T,T)-1);if(!(H<0)){var X=UB(H),x=$h(P,(-J-X)/v);if(wM(x,T),x=Hn(x),!G)return x;var EA=r[0],GA=n[0],nA=r[1],lA=n[1],dA;GA<EA&&(dA=EA,EA=GA,GA=dA);var z=GA-EA,yg=Xg(z-dg)<rg,pg=yg||z<rg;if(!yg&&lA<nA&&(dA=nA,nA=lA,lA=dA),pg?yg?nA+lA>0^x[1]<(Xg(x[0]-EA)<rg?nA:lA):nA<=x[1]&&x[1]<=lA:z>dg^(EA<=x[0]&&x[0]<=GA)){var gI=$h(P,(-J+X)/v);return wM(gI,T),[x,Hn(gI)]}}}function D(r,n){var G=B?g:dg-g,w=0;return r<-G?w|=1:r>G&&(w|=2),n<-G?w|=4:n>G&&(w|=8),w}return YM(E,o,C,B?[0,-g]:[-dg,g-dg])}function Q0(g){return function(A){var I=new IU;for(var B in g)I[B]=g[B];return I.stream=A,I}}function IU(){}IU.prototype={constructor:IU,point:function(g,A){this.stream.point(g,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 C0(g,A,I){var B=A[1][0]-A[0][0],Q=A[1][1]-A[0][1],C=g.clipExtent&&g.clipExtent();g.scale(150).translate([0,0]),C!=null&&g.clipExtent(null),Za(I,g.stream(JM));var E=JM.result(),o=Math.min(B/(E[1][0]-E[0][0]),Q/(E[1][1]-E[0][1])),e=+A[0][0]+(B-o*(E[1][0]+E[0][0]))/2,D=+A[0][1]+(Q-o*(E[1][1]+E[0][1]))/2;return C!=null&&g.clipExtent(C),g.scale(o*150).translate([e,D])}function KM(g,A,I){return C0(g,[[0,0],A],I)}var B4=16,ReA=tg(30*AB);function BU(g,A){return+A?leA(g,A):MeA(g)}function MeA(g){return Q0({point:function(A,I){A=g(A,I),this.stream.point(A[0],A[1])}})}function leA(g,A){function I(B,Q,C,E,o,e,D,r,n,G,w,h,y,N){var F=D-B,K=r-Q,M=F*F+K*K;if(M>4*A&&y--){var l=E+G,Y=o+w,S=e+h,T=UB(l*l+Y*Y+S*S),q=WB(S/=T),P=Xg(Xg(S)-1)<rg||Xg(C-n)<rg?(C+n)/2:oQ(Y,l),J=g(P,q),v=J[0],H=J[1],X=v-B,x=H-Q,EA=K*X-F*x;(EA*EA/M>A||Xg((F*X+K*x)/M-.5)>.3||E*G+o*w+e*h<ReA)&&(I(B,Q,C,E,o,e,v,H,P,l/=T,Y/=T,S,y,N),N.point(v,H),I(v,H,P,l,Y,S,D,r,n,G,w,h,y,N))}}return function(B){var Q,C,E,o,e,D,r,n,G,w,h,y,N={point:F,lineStart:K,lineEnd:l,polygonStart:function(){B.polygonStart(),N.lineStart=Y},polygonEnd:function(){B.polygonEnd(),N.lineStart=K}};function F(q,P){q=g(q,P),B.point(q[0],q[1])}function K(){n=NaN,N.point=M,B.lineStart()}function M(q,P){var J=ro([q,P]),v=g(q,P);I(n,G,r,w,h,y,n=v[0],G=v[1],r=q,w=J[0],h=J[1],y=J[2],B4,B),B.point(n,G)}function l(){N.point=F,B.lineEnd()}function Y(){K(),N.point=S,N.lineEnd=T}function S(q,P){M(Q=q,P),C=n,E=G,o=w,e=h,D=y,N.point=M}function T(){I(n,G,r,w,h,y,C,E,Q,o,e,D,B4,B),N.lineEnd=l,l()}return N}}var JeA=Q0({point:function(g,A){this.stream.point(g*AB,A*AB)}});function no(g){return QU(function(){return g})()}function QU(g){var A,I=150,B=480,Q=250,C,E,o=0,e=0,D=0,r=0,n=0,G,w,h=null,y=gU,N=null,F,K,M,l=I0,Y=.5,S=BU(v,Y),T,q;function P(x){return x=w(x[0]*AB,x[1]*AB),[x[0]*I+C,E-x[1]*I]}function J(x){return x=w.invert((x[0]-C)/I,(E-x[1])/I),x&&[x[0]*kC,x[1]*kC]}function v(x,EA){return x=A(x,EA),[x[0]*I+C,E-x[1]*I]}P.stream=function(x){return T&&q===x?T:T=JeA(y(G,S(l(q=x))))},P.clipAngle=function(x){return arguments.length?(y=+x?I4(h=x*AB,6*AB):(h=null,gU),X()):h*kC},P.clipExtent=function(x){return arguments.length?(l=x==null?(N=F=K=M=null,I0):Xd(N=+x[0][0],F=+x[0][1],K=+x[1][0],M=+x[1][1]),X()):N==null?null:[[N,F],[K,M]]},P.scale=function(x){return arguments.length?(I=+x,H()):I},P.translate=function(x){return arguments.length?(B=+x[0],Q=+x[1],H()):[B,Q]},P.center=function(x){return arguments.length?(o=x[0]%360*AB,e=x[1]%360*AB,H()):[o*kC,e*kC]},P.rotate=function(x){return arguments.length?(D=x[0]%360*AB,r=x[1]%360*AB,n=x.length>2?x[2]%360*AB:0,H()):[D*kC,r*kC,n*kC]},P.precision=function(x){return arguments.length?(S=BU(v,Y=x*x),X()):UB(Y)},P.fitExtent=function(x,EA){return C0(P,x,EA)},P.fitSize=function(x,EA){return KM(P,x,EA)};function H(){w=hM(G=vd(D,r,n),A);var x=A(o,e);return C=B-x[0]*I,E=Q+x[1]*I,X()}function X(){return T=q=null,P}return function(){return A=g.apply(this,arguments),P.invert=A.invert&&J,H()}}function pM(g){return function(A,I){var B=tg(A),Q=tg(I),C=g(B*Q);return[C*Q*eg(A),C*eg(I)]}}function ot(g){return function(A,I){var B=UB(A*A+I*I),Q=g(B),C=eg(Q),E=tg(Q);return[oQ(A*C,B*E),WB(B&&I*C/B)]}}var i4=pM(function(g){return UB(2/(1+g))});i4.invert=ot(function(g){return 2*WB(g/2)});var CU=pM(function(g){return(g=cM(g))&&g/eg(g)});CU.invert=ot(function(g){return g});function EU(){return no(CU).scale(79.4188).clipAngle(180-.001)}function iU(g,A){return[g,Xh(zh((TB+A)/2))]}iU.invert=function(g,A){return[g,2*so(nM(A))-TB]};function qM(g,A){return[g,A]}qM.invert=qM;function o4(g,A){var I=tg(A),B=tg(g)*I;return[I*eg(g)/B,eg(A)/B]}o4.invert=ot(so);function t4(g,A){var I=A*A,B=I*I;return[g*(.8707-.131979*I+B*(-.013791+B*(.003971*I-.001529*B))),A*(1.007226+I*(.015085+B*(-.044475+.028874*I-.005916*B)))]}t4.invert=function(g,A){var I=A,B=25,Q;do{var C=I*I,E=C*C;I-=Q=(I*(1.007226+C*(.015085+E*(-.044475+.028874*C-.005916*E)))-A)/(1.007226+C*(.015085*3+E*(-.044475*7+.028874*9*C-.005916*11*E)))}while(Xg(Q)>rg&&--B>0);return[g/(.8707+(C=I*I)*(-.131979+C*(-.013791+C*C*C*(.003971-.001529*C)))),I]};function e4(g,A){return[tg(A)*eg(g),eg(A)]}e4.invert=ot(WB);function a4(g,A){var I=tg(A),B=1+tg(g)*I;return[I*eg(g)/B,eg(A)/B]}a4.invert=ot(function(g){return 2*so(g)});function D4(g,A){return[Xh(zh((TB+A)/2)),-g]}D4.invert=function(g,A){return[-A,2*so(nM(g))-TB]};function peA(g,A,I){I=I||{};var B=I.units||"kilometers",Q=I.steps||8;if(!g)throw new Error("geojson is required");if(typeof I!="object")throw new Error("options must be an object");if(typeof Q!="number")throw new Error("steps must be an number");if(A===void 0)throw new Error("radius is required");if(Q<=0)throw new Error("steps must be greater than 0");var C=[];switch(g.type){case"GeometryCollection":return Pd(g,function(E){var o=dM(E,A,B,Q);o&&C.push(o)}),aM(C);case"FeatureCollection":return Zd(g,function(E){var o=dM(E,A,B,Q);o&&Zd(o,function(e){e&&C.push(e)})}),aM(C)}return dM(g,A,B,Q)}function dM(g,A,I,B){var Q=g.properties||{},C=g.type==="Feature"?g.geometry:g;if(C.type==="GeometryCollection"){var E=[];return Pd(g,function(y){var N=dM(y,A,I,B);N&&E.push(N)}),aM(E)}var o=qeA(C),e={type:C.type,coordinates:r4(C.coordinates,o)},D=new xn.GeoJSONReader,r=D.read(e),n=uZ(mZ(A,I),"meters"),G=xn.BufferOp.bufferOp(r,n,B),w=new xn.GeoJSONWriter;if(G=w.write(G),!s4(G.coordinates)){var h={type:G.type,coordinates:n4(G.coordinates,o)};return Wd(h,Q)}}function s4(g){return Array.isArray(g[0])?s4(g[0]):isNaN(g[0])}function r4(g,A){return typeof g[0]!="object"?A(g):g.map(function(I){return r4(I,A)})}function n4(g,A){return typeof g[0]!="object"?A.invert(g):g.map(function(I){return n4(I,A)})}function qeA(g){var A=Wa(g).geometry.coordinates,I=[-A[0],-A[1]];return EU().rotate(I).scale(RQ)}var UM=peA;var h4=ft(SM(),1);var FC=63710088e-1,u7A={centimeters:FC*100,centimetres:FC*100,degrees:FC/111325,feet:FC*3.28084,inches:FC*39.37,kilometers:FC/1e3,kilometres:FC/1e3,meters:FC,metres:FC,miles:FC/1609.344,millimeters:FC*1e3,millimetres:FC*1e3,nauticalmiles:FC/1852,radians:1,yards:FC*1.0936},m7A={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/FC,yards:1.0936133};function c4(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function G4(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return c4(o,A,I)}function w4(g,A,I){I===void 0&&(I={});var B={type:"MultiPolygon",coordinates:g};return c4(B,A,I)}function eU(g){return g.type==="Feature"?g.geometry:g}function deA(g,A){var I=eU(g),B=eU(A),Q=g.properties||{},C=h4.default.difference(I.coordinates,B.coordinates);return C.length===0?null:C.length===1?G4(C[0],Q):w4(C,Q)}var bn=deA;var RC=63710088e-1,UeA={centimeters:RC*100,centimetres:RC*100,degrees:RC/111325,feet:RC*3.28084,inches:RC*39.37,kilometers:RC/1e3,kilometres:RC/1e3,meters:RC,metres:RC,miles:RC/1609.344,millimeters:RC*1e3,millimetres:RC*1e3,nauticalmiles:RC/1852,radians:1,yards:RC*1.0936},V7A={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/RC,yards:1.0936133};function N4(g,A){A===void 0&&(A="kilometers");var I=UeA[A];if(!I)throw new Error(A+" units is invalid");return g*I}function E0(g){var A=g%360;return A*Math.PI/180}function aU(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function SeA(g,A,I){I===void 0&&(I={});var B=aU(g),Q=aU(A),C=E0(Q[1]-B[1]),E=E0(Q[0]-B[0]),o=E0(B[1]),e=E0(Q[1]),D=Math.pow(Math.sin(C/2),2)+Math.pow(Math.sin(E/2),2)*Math.cos(o)*Math.cos(e);return N4(2*Math.atan2(Math.sqrt(D),Math.sqrt(1-D)),I.units)}var ng=SeA;var sU=ft(y4(),1);var lC=63710088e-1,ueA={centimeters:lC*100,centimetres:lC*100,degrees:lC/111325,feet:lC*3.28084,inches:lC*39.37,kilometers:lC/1e3,kilometres:lC/1e3,meters:lC,metres:lC,miles:lC/1609.344,millimeters:lC*1e3,millimetres:lC*1e3,nauticalmiles:lC/1852,radians:1,yards:lC*1.0936},w$A={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/lC,yards:1.0936133};function meA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function F4(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!rU(g[0])||!rU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return meA(B,A,I)}function R4(g,A){A===void 0&&(A="kilometers");var I=ueA[A];if(!I)throw new Error(A+" units is invalid");return g/I}function nU(g){var A=g%(2*Math.PI);return A*180/Math.PI}function HM(g){var A=g%360;return A*Math.PI/180}function rU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function M4(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function tQ(g,A,I,B){B===void 0&&(B={});var Q=M4(g),C=HM(Q[0]),E=HM(Q[1]),o=HM(I),e=R4(A,B.units),D=Math.asin(Math.sin(E)*Math.cos(e)+Math.cos(E)*Math.sin(e)*Math.cos(o)),r=C+Math.atan2(Math.sin(o)*Math.sin(e)*Math.cos(E),Math.cos(e)-Math.sin(E)*Math.sin(D)),n=nU(r),G=nU(D);return F4([n,G],B.properties)}var JC=63710088e-1,M$A={centimeters:JC*100,centimetres:JC*100,degrees:JC/111325,feet:JC*3.28084,inches:JC*39.37,kilometers:JC/1e3,kilometres:JC/1e3,meters:JC,metres:JC,miles:JC/1609.344,millimeters:JC*1e3,millimetres:JC*1e3,nauticalmiles:JC/1852,radians:1,yards:JC*1.0936},l$A={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/JC,yards:1.0936133};function l4(g){var A=g%(2*Math.PI);return A*180/Math.PI}function o0(g){var A=g%360;return A*Math.PI/180}function cU(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function yI(g,A,I){if(I===void 0&&(I={}),I.final===!0)return xeA(g,A);var B=cU(g),Q=cU(A),C=o0(B[0]),E=o0(Q[0]),o=o0(B[1]),e=o0(Q[1]),D=Math.sin(E-C)*Math.cos(e),r=Math.cos(o)*Math.sin(e)-Math.sin(o)*Math.cos(e)*Math.cos(E-C);return l4(Math.atan2(D,r))}function xeA(g,A){var I=yI(A,g);return I=(I+180)%360,I}var YC=63710088e-1,J4={centimeters:YC*100,centimetres:YC*100,degrees:YC/111325,feet:YC*3.28084,inches:YC*39.37,kilometers:YC/1e3,kilometres:YC/1e3,meters:YC,metres:YC,miles:YC/1609.344,millimeters:YC*1e3,millimetres:YC*1e3,nauticalmiles:YC/1852,radians:1,yards:YC*1.0936},S$A={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/YC,yards:1.0936133};function Oa(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function wU(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!GU(g[0])||!GU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return Oa(B,A,I)}function fM(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return Oa(B,A,I)}function beA(g,A){A===void 0&&(A="kilometers");var I=J4[A];if(!I)throw new Error(A+" units is invalid");return g*I}function TeA(g,A){A===void 0&&(A="kilometers");var I=J4[A];if(!I)throw new Error(A+" units is invalid");return g/I}function Y4(g,A,I){if(A===void 0&&(A="kilometers"),I===void 0&&(I="kilometers"),!(g>=0))throw new Error("length must be a positive number");return beA(TeA(g,A),I)}function GU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function hU(g,A,I){if(!g)throw new Error("No feature passed");if(!I)throw new Error(".featureOf() requires a name");if(!g||g.type!=="Feature"||!g.geometry)throw new Error("Invalid input to "+I+", Feature with geometry required");if(!g.geometry||g.geometry.type!==A)throw new Error("Invalid input to "+I+": must be a "+A+", given "+g.geometry.type)}function K4(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(K4(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function WeA(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function ZeA(g,A){WeA(g,function(I,B,Q,C,E){var o=I===null?null:I.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(Oa(I,Q,{bbox:C,id:E}),B,0)===!1?!1:void 0}var e;switch(o){case"MultiPoint":e="Point";break;case"MultiLineString":e="LineString";break;case"MultiPolygon":e="Polygon";break}for(var D=0;D<I.coordinates.length;D++){var r=I.coordinates[D],n={type:e,coordinates:r};if(A(Oa(n,Q),B,D)===!1)return!1}})}function p4(g,A){ZeA(g,function(I,B,Q){var C=0;if(I.geometry){var E=I.geometry.type;if(!(E==="Point"||E==="MultiPoint")){var o,e=0,D=0,r=0;if(K4(I,function(n,G,w,h,y){if(o===void 0||B>e||h>D||y>r){o=n,e=B,D=h,r=y,C=0;return}var N=fM([o,n],I.properties);if(A(N,B,Q,y,C)===!1)return!1;C++,o=n})===!1)return!1}}})}var lQ=63710088e-1,q4={centimeters:lQ*100,centimetres:lQ*100,degrees:lQ/111325,feet:lQ*3.28084,inches:lQ*39.37,kilometers:lQ/1e3,kilometres:lQ/1e3,meters:lQ,metres:lQ,miles:lQ/1609.344,millimeters:lQ*1e3,millimetres:lQ*1e3,nauticalmiles:lQ/1852,radians:1,yards:lQ*1.0936},b$A={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/lQ,yards:1.0936133};function PeA(g,A){A===void 0&&(A="kilometers");var I=q4[A];if(!I)throw new Error(A+" units is invalid");return g*I}function OeA(g,A){A===void 0&&(A="kilometers");var I=q4[A];if(!I)throw new Error(A+" units is invalid");return g/I}function d4(g,A,I){if(A===void 0&&(A="kilometers"),I===void 0&&(I="kilometers"),!(g>=0))throw new Error("length must be a positive number");return PeA(OeA(g,A),I)}function NU(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function VeA(g,A,I){I===void 0&&(I={});var B=NU(g),Q=NU(A);Q[0]+=Q[0]-B[0]>180?-360:B[0]-Q[0]>180?360:0;var C=veA(B,Q),E=d4(C,"meters",I.units);return E}function veA(g,A,I){I=I===void 0?lQ:Number(I);var B=I,Q=g[1]*Math.PI/180,C=A[1]*Math.PI/180,E=C-Q,o=Math.abs(A[0]-g[0])*Math.PI/180;o>Math.PI&&(o-=2*Math.PI);var e=Math.log(Math.tan(C/2+Math.PI/4)/Math.tan(Q/2+Math.PI/4)),D=Math.abs(e)>1e-11?E/e:Math.cos(Q),r=Math.sqrt(E*E+D*D*o*o),n=r*B;return n}var Va=VeA;function jeA(g,A,I){if(I===void 0&&(I={}),I.method||(I.method="geodesic"),I.units||(I.units="kilometers"),!g)throw new Error("pt is required");if(Array.isArray(g)?g=wU(g):g.type==="Point"?g=Oa(g):hU(g,"Point","point"),!A)throw new Error("line is required");Array.isArray(A)?A=fM(A):A.type==="LineString"?A=Oa(A):hU(A,"LineString","line");var B=1/0,Q=g.geometry.coordinates;return p4(A,function(C){var E=C.geometry.coordinates[0],o=C.geometry.coordinates[1],e=XeA(Q,E,o,I);e<B&&(B=e)}),Y4(B,"degrees",I.units)}function XeA(g,A,I,B){var Q=[I[0]-A[0],I[1]-A[1]],C=[g[0]-A[0],g[1]-A[1]],E=U4(C,Q);if(E<=0)return kU(g,A,{method:B.method,units:"degrees"});var o=U4(Q,Q);if(o<=E)return kU(g,I,{method:B.method,units:"degrees"});var e=E/o,D=[A[0]+e*Q[0],A[1]+e*Q[1]];return kU(g,D,{method:B.method,units:"degrees"})}function U4(g,A){return g[0]*A[0]+g[1]*A[1]}function kU(g,A,I){return I.method==="planar"?Va(g,A,I):ng(g,A,I)}var yU=jeA;function PI(g,A,I){return(A=DZ(A))in g?Object.defineProperty(g,A,{value:I,enumerable:!0,configurable:!0,writable:!0}):g[A]=I,g}function Tn(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function va(g,A){let I=JZ([],A,g);return lZ(I,I,1/I[3]),I}function t0(g,A,I){return g<A?A:g>I?I:g}function zeA(g){return Math.log(g)*Math.LOG2E}var uM=Math.log2||zeA;function co(g,A){if(!g)throw new Error(A||"@math.gl/web-mercator: assertion failed.")}var Go=Math.PI,L4=Go/4,tt=Go/180,FU=180/Go,e0=512,S4=4003e4,Zn=85.051129,RU=1.5;function mM(g){return Math.pow(2,g)}function et(g){let[A,I]=g;co(Number.isFinite(A)),co(Number.isFinite(I)&&I>=-90&&I<=90,"invalid latitude");let B=A*tt,Q=I*tt,C=e0*(B+Go)/(2*Go),E=e0*(Go+Math.log(Math.tan(L4+Q*.5)))/(2*Go);return[C,E]}function wo(g){let[A,I]=g,B=A/e0*(2*Go)-Go,Q=2*(Math.atan(Math.exp(I/e0*(2*Go)-Go))-L4);return[B*FU,Q*FU]}function MU(g){let{latitude:A,longitude:I,highPrecision:B=!1}=g;co(Number.isFinite(A)&&Number.isFinite(I));let Q=e0,C=Math.cos(A*tt),E=Q/360,o=E/C,e=Q/S4/C,D={unitsPerMeter:[e,e,e],metersPerUnit:[1/e,1/e,1/e],unitsPerDegree:[E,o,e],degreesPerUnit:[1/E,1/o,1/e]};if(B){let r=tt*Math.tan(A*tt)/C,n=E*r/2,G=Q/S4*r,w=G/o*e;D.unitsPerDegree2=[0,n,G],D.unitsPerMeter2=[w,0,w]}return D}function lU(g){let{height:A,pitch:I,bearing:B,altitude:Q,scale:C,center:E}=g,o=Tn();vh(o,o,[0,0,-Q]),yZ(o,o,-I*tt),FZ(o,o,B*tt);let e=C/A;return iM(o,o,[e,e,e]),E&&vh(o,o,wZ([],E)),o}function H4(g){let{width:A,height:I,altitude:B,pitch:Q=0,offset:C,center:E,scale:o,nearZMultiplier:e=1,farZMultiplier:D=1}=g,{fovy:r=Wn(RU)}=g;B!==void 0&&(r=Wn(B));let n=r*tt,G=Q*tt,w=xM(r),h=w;E&&(h+=E[2]*o/Math.cos(G)/I);let y=n*(.5+(C?C[1]:0)/I),N=Math.sin(y)*h/Math.sin(t0(Math.PI/2-G-y,.01,Math.PI-.01)),F=Math.sin(G)*N+h,K=h*10,M=Math.min(F*D,K);return{fov:n,aspect:A/I,focalDistance:w,near:e,far:M}}function JU(g){let{fov:A,aspect:I,near:B,far:Q}=H4(g);return RZ([],A,I,B,Q)}function Wn(g){return 2*Math.atan(.5/g)*FU}function xM(g){return .5/Math.tan(.5*g*tt)}function YU(g,A){let[I,B,Q=0]=g;return co(Number.isFinite(I)&&Number.isFinite(B)&&Number.isFinite(Q)),va(A,[I,B,Q,1])}function bM(g,A,I=0){let[B,Q,C]=g;if(co(Number.isFinite(B)&&Number.isFinite(Q),"invalid pixel coordinate"),Number.isFinite(C))return va(A,[B,Q,C,1]);let E=va(A,[B,Q,0,1]),o=va(A,[B,Q,1,1]),e=E[2],D=o[2],r=e===D?0:((I||0)-e)/(D-e);return CM([],E,o,r)}function TM(g){let{width:A,height:I,bounds:B,minExtent:Q=0,maxZoom:C=24,offset:E=[0,0]}=g,[[o,e],[D,r]]=B,n=_eA(g.padding),G=et([o,t0(r,-Zn,Zn)]),w=et([D,t0(e,-Zn,Zn)]),h=[Math.max(Math.abs(w[0]-G[0]),Q),Math.max(Math.abs(w[1]-G[1]),Q)],y=[A-n.left-n.right-Math.abs(E[0])*2,I-n.top-n.bottom-Math.abs(E[1])*2];co(y[0]>0&&y[1]>0);let N=y[0]/h[0],F=y[1]/h[1],K=(n.right-n.left)/2/N,M=(n.top-n.bottom)/2/F,l=[(w[0]+G[0])/2+K,(w[1]+G[1])/2+M],Y=wo(l),S=Math.min(C,uM(Math.abs(Math.min(N,F))));return co(Number.isFinite(S)),{longitude:Y[0],latitude:Y[1],zoom:S}}function _eA(g=0){return typeof g=="number"?{top:g,bottom:g,left:g,right:g}:(co(Number.isFinite(g.top)&&Number.isFinite(g.bottom)&&Number.isFinite(g.left)&&Number.isFinite(g.right)),g)}var f4=Math.PI/180;function WM(g,A=0){let{width:I,height:B,unproject:Q}=g,C={targetZ:A},E=Q([0,B],C),o=Q([I,B],C),e,D,r=g.fovy?.5*g.fovy*f4:Math.atan(.5/g.altitude),n=(90-g.pitch)*f4;return r>n-.01?(e=u4(g,0,A),D=u4(g,I,A)):(e=Q([0,0],C),D=Q([I,0],C)),[E,o,D,e]}function u4(g,A,I){let{pixelUnprojectionMatrix:B}=g,Q=va(B,[A,0,1,1]),C=va(B,[A,g.height,1,1]),o=(I*g.distanceScales.unitsPerMeter[2]-Q[2])/(C[2]-Q[2]),e=CM([],Q,C,o),D=wo(e);return D.push(I),D}var hi=class g{constructor(A={width:1,height:1}){PI(this,"latitude",void 0),PI(this,"longitude",void 0),PI(this,"zoom",void 0),PI(this,"pitch",void 0),PI(this,"bearing",void 0),PI(this,"altitude",void 0),PI(this,"fovy",void 0),PI(this,"meterOffset",void 0),PI(this,"center",void 0),PI(this,"width",void 0),PI(this,"height",void 0),PI(this,"scale",void 0),PI(this,"distanceScales",void 0),PI(this,"viewMatrix",void 0),PI(this,"projectionMatrix",void 0),PI(this,"viewProjectionMatrix",void 0),PI(this,"pixelProjectionMatrix",void 0),PI(this,"pixelUnprojectionMatrix",void 0),PI(this,"equals",F=>F instanceof g?F.width===this.width&&F.height===this.height&&Hd(F.projectionMatrix,this.projectionMatrix)&&Hd(F.viewMatrix,this.viewMatrix):!1),PI(this,"project",(F,K={})=>{let{topLeft:M=!0}=K,l=this.projectPosition(F),Y=YU(l,this.pixelProjectionMatrix),[S,T]=Y,q=M?T:this.height-T;return F.length===2?[S,q]:[S,q,Y[2]]}),PI(this,"unproject",(F,K={})=>{let{topLeft:M=!0,targetZ:l=void 0}=K,[Y,S,T]=F,q=M?S:this.height-S,P=l&&l*this.distanceScales.unitsPerMeter[2],J=bM([Y,q,T],this.pixelUnprojectionMatrix,P),[v,H,X]=this.unprojectPosition(J);return Number.isFinite(T)?[v,H,X]:Number.isFinite(l)?[v,H,l]:[v,H]}),PI(this,"projectPosition",F=>{let[K,M]=et(F),l=(F[2]||0)*this.distanceScales.unitsPerMeter[2];return[K,M,l]}),PI(this,"unprojectPosition",F=>{let[K,M]=wo(F),l=(F[2]||0)*this.distanceScales.metersPerUnit[2];return[K,M,l]});let{width:I,height:B,altitude:Q=null,fovy:C=null}=A,{latitude:E=0,longitude:o=0,zoom:e=0,pitch:D=0,bearing:r=0,position:n=null,nearZMultiplier:G=.02,farZMultiplier:w=1.01}=A;I=I||1,B=B||1,C===null&&Q===null?(Q=RU,C=Wn(Q)):C===null?C=Wn(Q):Q===null&&(Q=xM(C));let h=mM(e);Q=Math.max(.75,Q);let y=MU({longitude:o,latitude:E}),N=et([o,E]);N.push(0),n&&GZ(N,N,hZ([],n,y.unitsPerMeter)),this.projectionMatrix=JU({width:I,height:B,scale:h,center:N,pitch:D,fovy:C,nearZMultiplier:G,farZMultiplier:w}),this.viewMatrix=lU({height:B,scale:h,center:N,pitch:D,bearing:r,altitude:Q}),this.width=I,this.height=B,this.scale=h,this.latitude=E,this.longitude=o,this.zoom=e,this.pitch=D,this.bearing=r,this.altitude=Q,this.fovy=C,this.center=N,this.meterOffset=n||[0,0,0],this.distanceScales=y,this._initMatrices(),Object.freeze(this)}_initMatrices(){let{width:A,height:I,projectionMatrix:B,viewMatrix:Q}=this,C=Tn();EM(C,C,B),EM(C,C,Q),this.viewProjectionMatrix=C;let E=Tn();iM(E,E,[A/2,-I/2,1]),vh(E,E,[1,-1,0]),EM(E,E,C);let o=kZ(Tn(),E);if(!o)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=E,this.pixelUnprojectionMatrix=o}projectFlat(A){return et(A)}unprojectFlat(A){return wo(A)}getMapCenterByLngLatPosition({lngLat:A,pos:I}){let B=bM(I,this.pixelUnprojectionMatrix),Q=et(A),C=Sd([],Q,cZ([],B)),E=Sd([],this.center,C);return wo(E)}fitBounds(A,I={}){let{width:B,height:Q}=this,{longitude:C,latitude:E,zoom:o}=TM(Object.assign({width:B,height:Q,bounds:A},I));return new g({width:B,height:Q,longitude:C,latitude:E,zoom:o})}getBounds(A){let I=this.getBoundingRegion(A),B=Math.min(...I.map(o=>o[0])),Q=Math.max(...I.map(o=>o[0])),C=Math.min(...I.map(o=>o[1])),E=Math.max(...I.map(o=>o[1]));return[[B,C],[Q,E]]}getBoundingRegion(A={}){return WM(this,A.z||0)}getLocationAtPoint({lngLat:A,pos:I}){return this.getMapCenterByLngLatPosition({lngLat:A,pos:I})}};function m4(g,A,I){let B=g.indexOf(A);return B<0?g:g.slice(0,B)+I+g.slice(B)}var Pn=class extends eE{renderLayers(){let{id:A,getFillColor:I,getStrokeColor:B,getInnerRadius:Q,updateTriggers:C}=this.props;return[new EQ({...this.props,id:`${A}-full`,data:this.props.data,getLineColor:B,updateTriggers:{...C,getStrokeColor:C.getStrokeColor}}),new EQ({...this.props,id:`${A}-inner`,data:this.props.data,getFillColor:I,getRadius:Q,pickable:!1,updateTriggers:{...C,getFillColor:C.getFillColor,getRadius:C.getInnerRadius}})]}};d(Pn,"layerName","JunctionScatterplotLayer"),d(Pn,"defaultProps",{...EQ.defaultProps,getFillColor:A=>[0,0,0,255],getStrokeColor:A=>[255,255,255,255],getInnerRadius:A=>1});var kgg={[ks.NONE]:{forward:!1,backward:!1},[ks.FORWARD]:{forward:!0,backward:!1},[ks.BACKWARD]:{forward:!1,backward:!0},[ks.BOTH]:{forward:!0,backward:!0}};var Z4=ft(SM(),1);var KC=63710088e-1,qgg={centimeters:KC*100,centimetres:KC*100,degrees:KC/111325,feet:KC*3.28084,inches:KC*39.37,kilometers:KC/1e3,kilometres:KC/1e3,meters:KC,metres:KC,miles:KC/1609.344,millimeters:KC*1e3,millimetres:KC*1e3,nauticalmiles:KC/1852,radians:1,yards:KC*1.0936},dgg={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/KC,yards:1.0936133};function b4(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function T4(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return b4(o,A,I)}function W4(g,A,I){I===void 0&&(I={});var B={type:"MultiPolygon",coordinates:g};return b4(B,A,I)}function pU(g){return g.type==="Feature"?g.geometry:g}function QaA(g,A,I){I===void 0&&(I={});var B=pU(g),Q=pU(A),C=Z4.default.union(B.coordinates,Q.coordinates);return C.length===0?null:C.length===1?T4(C[0],I.properties):W4(C,I.properties)}var P4=QaA;var pC=63710088e-1,xgg={centimeters:pC*100,centimetres:pC*100,degrees:pC/111325,feet:pC*3.28084,inches:pC*39.37,kilometers:pC/1e3,kilometres:pC/1e3,meters:pC,metres:pC,miles:pC/1609.344,millimeters:pC*1e3,millimetres:pC*1e3,nauticalmiles:pC/1852,radians:1,yards:pC*1.0936},bgg={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/pC,yards:1.0936133};function O4(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function V4(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return O4(o,A,I)}function v4(g,A,I){I===void 0&&(I={});var B={type:"MultiPolygon",coordinates:g};return O4(B,A,I)}function qU(g){return g.type==="Feature"?g.geometry:g}var j4=ft(SM(),1);function dU(g,A,I){I===void 0&&(I={});var B=qU(g),Q=qU(A),C=j4.default.intersection(B.coordinates,Q.coordinates);return C.length===0?null:C.length===1?V4(C[0],I.properties):v4(C,I.properties)}function CaA(g){if(!g)throw new Error("geojson is required");switch(g.type){case"Feature":return X4(g);case"FeatureCollection":return EaA(g);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return UU(g);default:throw new Error("unknown GeoJSON type")}}function X4(g){var A={type:"Feature"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"properties":case"geometry":return;default:A[I]=g[I]}}),A.properties=z4(g.properties),A.geometry=UU(g.geometry),A}function z4(g){var A={};return g&&Object.keys(g).forEach(function(I){var B=g[I];typeof B=="object"?B===null?A[I]=null:Array.isArray(B)?A[I]=B.map(function(Q){return Q}):A[I]=z4(B):A[I]=B}),A}function EaA(g){var A={type:"FeatureCollection"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"features":return;default:A[I]=g[I]}}),A.features=g.features.map(function(I){return X4(I)}),A}function UU(g){var A={type:g.type};return g.bbox&&(A.bbox=g.bbox),g.type==="GeometryCollection"?(A.geometries=g.geometries.map(function(I){return UU(I)}),A):(A.coordinates=_4(g.coordinates),A)}function _4(g){var A=g;return typeof A[0]!="object"?A.slice():A.map(function(I){return _4(I)})}var PM=CaA;function $4(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function at(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function OM(g){return g.type==="Feature"?g.geometry:g}function a0(g){for(var A=at(g),I=0,B=1,Q,C;B<A.length;)Q=C||A[0],C=A[B],I+=(C[0]-Q[0])*(C[1]+Q[1]),B++;return I>0}function D0(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(D0(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function SU(g,A){if(g.type==="Feature")A(g,0);else if(g.type==="FeatureCollection")for(var I=0;I<g.features.length&&A(g.features[I],I)!==!1;I++);}function s0(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function A8(g,A,I){var B=I;return s0(g,function(Q,C,E,o,e){C===0&&I===void 0?B=Q:B=A(B,Q,C,E,o,e)}),B}function g8(g,A){s0(g,function(I,B,Q,C,E){var o=I===null?null:I.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(jh(I,Q,{bbox:C,id:E}),B,0)===!1?!1:void 0}var e;switch(o){case"MultiPoint":e="Point";break;case"MultiLineString":e="LineString";break;case"MultiPolygon":e="Polygon";break}for(var D=0;D<I.coordinates.length;D++){var r=I.coordinates[D],n={type:e,coordinates:r};if(A(jh(n,Q),B,D)===!1)return!1}})}function iaA(g,A){if(A=A||{},!xd(A))throw new Error("options is invalid");var I=A.reverse||!1,B=A.mutate||!1;if(!g)throw new Error("<geojson> is required");if(typeof I!="boolean")throw new Error("<reverse> must be a boolean");if(typeof B!="boolean")throw new Error("<mutate> must be a boolean");B===!1&&(g=PM(g));var Q=[];switch(g.type){case"GeometryCollection":return s0(g,function(C){VM(C,I)}),g;case"FeatureCollection":return SU(g,function(C){SU(VM(C,I),function(E){Q.push(E)})}),Se(Q)}return VM(g,I)}function VM(g,A){var I=g.type==="Feature"?g.geometry.type:g.type;switch(I){case"GeometryCollection":return s0(g,function(B){VM(B,A)}),g;case"LineString":return I8(at(g),A),g;case"Polygon":return B8(at(g),A),g;case"MultiLineString":return at(g).forEach(function(B){I8(B,A)}),g;case"MultiPolygon":return at(g).forEach(function(B){B8(B,A)}),g;case"Point":case"MultiPoint":return g}}function I8(g,A){a0(g)===A&&g.reverse()}function B8(g,A){a0(g[0])!==A&&g[0].reverse();for(var I=1;I<g.length;I++)a0(g[I])===A&&g[I].reverse()}var Q8=iaA;function vM(g,A,I){if(!Array.isArray(g[0]))return!0;for(let B=0;B<g.length;B++)if(vM(g[B],[...A,B],I)){I(g,A);break}return!1}function He(g,A,I){let B={type:"LineString",coordinates:[g,A]},Q=Hg(I),C=yU(Q,B),E=yI(g,A),e=(I[0]-g[0])*(A[1]-g[1])-(I[1]-g[1])*(A[0]-g[0])<0?E-90:E-270,D=tQ(A,C,e),r=tQ(g,C,e);return[D.geometry.coordinates,r.geometry.coordinates]}function C8(g,A,I,B){let Q=g-I,C=A-B;return Math.sqrt(Q*Q+C*C)}function oaA(g,A,I){return A*I+g*(1-I)}function HU(g,A,I){let B=new hi(I),C=g.geometry.coordinates.map(([T,q,P=0])=>B.project([T,q,P])),[E,o]=B.project(A.geometry.coordinates),e=1/0,D={};C.forEach(([T,q],P)=>{if(P===0)return;let[J,v]=C[P-1],H=v-q,X=T-J,x=J*q-T*v,EA=H*H+X*X,GA=Math.abs(H*E+X*o+x)/Math.sqrt(EA);GA<e&&(e=GA,D={index:P,x0:(X*(X*E-H*o)-H*x)/EA,y0:(H*(-X*E+H*o)-X*x)/EA})});let{index:r,x0:n,y0:G}=D,[w,h,y=0]=C[r-1],[N,F,K=0]=C[r],M=C8(w,h,N,F),Y=C8(w,h,n,G)/M,S=oaA(y,K,Y);return{type:"Feature",geometry:{type:"Point",coordinates:B.unproject([n,G,S])},properties:{dist:e,index:r-1}}}function E8(g,A,I){let B;I&&(B=new hi(I));let Q=Hg([1/0,1/0],{dist:1/0});return!g.geometry?.coordinates.length||g.geometry?.coordinates.length<2||g8(g,C=>{let E=at(C),o=at(A),e,D,r,n,G,w,h;if(E.length>1&&o.length){let N,F;B?(N=E.map(l=>B.project(l)),F=B.project(o)):(N=E,F=o);for(let l=1;l<N.length;l++){if(N[l][0]!==N[l-1][0]){let J=(N[l][1]-N[l-1][1])/(N[l][0]-N[l-1][0]),v=N[l][1]-J*N[l][0];h=Math.abs(J*F[0]+v-F[1])/Math.sqrt(J*J+1)}else h=Math.abs(F[0]-N[l][0]);let Y=Math.pow(N[l][1]-N[l-1][1],2)+Math.pow(N[l][0]-N[l-1][0],2),S=Math.pow(N[l][1]-F[1],2)+Math.pow(N[l][0]-F[0],2),T=Math.pow(N[l-1][1]-F[1],2)+Math.pow(N[l-1][0]-F[0],2),q=Math.pow(h,2),P=S-q+T-q;P>Y&&(h=Math.sqrt(Math.min(S,T))),(e==null||e>h)&&(P>Y?T<S?(D=0,r=1):(r=0,D=1):(D=Math.sqrt(T-q)/Math.sqrt(Y),r=Math.sqrt(S-q)/Math.sqrt(Y)),e=h,w=l)}let K=N[w-1][0]-N[w][0],M=N[w-1][1]-N[w][1];n=N[w-1][0]-K*D,G=N[w-1][1]-M*D}let y={x:n,y:G,idx:w-1,to:D,from:r};if(B){let N=B.unproject([y.x,y.y]);y={x:N[0],y:N[1],idx:w-1,to:D,from:r}}Q=Hg([y.x,y.y],{dist:Math.abs(y.from-y.to),index:y.idx})}),Q}function OI(g){let A=ho(g);return A.length?A[0]:null}function i8(g){return ho(g).find(I=>I.properties.editHandleType==="snap-source")}function o8(g){return g&&g.filter(A=>!A.isGuide)}function fU(g){return ho(g).find(({properties:I})=>I.featureIndex>=0&&I.editHandleType==="existing")}function r0(g){return ho(g).find(({properties:I})=>I.featureIndex>=0&&I.editHandleType==="intermediate")}function ho(g){return g&&g.filter(I=>I.isGuide&&I.object.properties.guideType==="editHandle").map(I=>I.object)||[]}function ja(g,A,I="existing"){let B=[];switch(g.type){case"Point":B=[{type:"Feature",properties:{guideType:"editHandle",editHandleType:I,positionIndexes:[],featureIndex:A},geometry:{type:"Point",coordinates:g.coordinates}}];break;case"MultiPoint":case"LineString":B=B.concat(LU(g.coordinates,[],A,I));break;case"Polygon":case"MultiLineString":for(let Q=0;Q<g.coordinates.length;Q++)B=B.concat(LU(g.coordinates[Q],[Q],A,I)),g.type==="Polygon"&&(B=B.slice(0,-1));break;case"MultiPolygon":for(let Q=0;Q<g.coordinates.length;Q++)for(let C=0;C<g.coordinates[Q].length;C++)B=B.concat(LU(g.coordinates[Q][C],[Q,C],A,I)),B=B.slice(0,-1);break;default:throw Error(`Unhandled geometry type: ${g.type}`)}return B}function LU(g,A,I,B="existing"){let Q=[];for(let C=0;C<g.length;C++){let E=g[C];Q.push({type:"Feature",properties:{guideType:"editHandle",positionIndexes:[...A,C],featureIndex:I,editHandleType:B},geometry:{type:"Point",coordinates:E}})}return Q}function t8(g,A,I){let B=g.geometry.coordinates;if(!B)return null;let Q=B[0].slice(0,4);Q[A%4]=I;let C=Q[(A+2)%4],E=Q[A%4];return Q[(A+1)%4]=[E[0],C[1]],Q[(A+3)%4]=[C[0],E[1]],[[...Q,Q[0]]]}function n0(g,A){return typeof g[0]=="number"?!isNaN(g[0])&&isFinite(g[0])?A(g):g:g.map(I=>n0(I,A)).filter(Boolean)}var FI=class g{constructor(A){d(this,"featureCollection");this.featureCollection=A}getObject(){return this.featureCollection}replacePosition(A,I,B){let Q=this.featureCollection.features[A].geometry,C=Q.type==="Polygon"||Q.type==="MultiPolygon",E={...Q,coordinates:e8(Q.coordinates,I,B,C)};return this.replaceGeometry(A,E)}removePosition(A,I){let B=this.featureCollection.features[A].geometry;if(B.type==="Point")throw Error("Can't remove a position from a Point or there'd be nothing left");if(B.type==="MultiPoint"&&B.coordinates.length<2)throw Error("Can't remove the last point of a MultiPoint or there'd be nothing left");if(B.type==="LineString"&&B.coordinates.length<3)throw Error("Can't remove position. LineString must have at least two positions");if(B.type==="Polygon"&&B.coordinates[0].length<5&&Array.isArray(I)&&I[0]===0)throw Error("Can't remove position. Polygon's outer ring must have at least four positions");if(B.type==="MultiLineString"&&B.coordinates.length===1&&B.coordinates[0].length<3)throw Error("Can't remove position. MultiLineString must have at least two positions");if(B.type==="MultiPolygon"&&B.coordinates.length===1&&B.coordinates[0][0].length<5&&Array.isArray(I)&&I[0]===0&&I[1]===0)throw Error("Can't remove position. MultiPolygon's outer ring must have at least four positions");let Q=B.type==="Polygon"||B.type==="MultiPolygon",C={...B,coordinates:a8(B.coordinates,I,Q)};return taA(C),this.replaceGeometry(A,C)}addPosition(A,I,B){let Q=this.featureCollection.features[A].geometry;if(Q.type==="Point")throw new Error("Unable to add a position to a Point feature");let C=Q.type==="Polygon"||Q.type==="MultiPolygon",E={...Q,coordinates:D8(Q.coordinates,I,B,C)};return this.replaceGeometry(A,E)}replaceGeometry(A,I){let B={...this.featureCollection.features[A],geometry:I},Q={...this.featureCollection,features:[...this.featureCollection.features.slice(0,A),B,...this.featureCollection.features.slice(A+1)]};return new g(Q)}addFeature(A){return this.addFeatures([A])}addFeatures(A){let I={...this.featureCollection,features:[...this.featureCollection.features,...A]};return new g(I)}deleteFeature(A){return this.deleteFeatures([A])}deleteFeatures(A){let I=[...this.featureCollection.features];A.sort();for(let Q=A.length-1;Q>=0;Q--){let C=A[Q];C>=0&&C<I.length&&I.splice(C,1)}let B={...this.featureCollection,features:I};return new g(B)}};function jM(g,A){if(g.length===2&&A.length===3){let I=A[2];return[g[0],g[1],I]}return g}function e8(g,A,I,B){if(!A)return g;if(A.length===0)return jM(I,g);if(A.length===1){let Q=[...g.slice(0,A[0]),jM(I,g[A[0]]),...g.slice(A[0]+1)];return B&&(A[0]===0||A[0]===g.length-1)&&(Q[0]=jM(I,g[0]),Q[g.length-1]=jM(I,g[0])),Q}return[...g.slice(0,A[0]),e8(g[A[0]],A.slice(1,A.length),I,B),...g.slice(A[0]+1)]}function a8(g,A,I){if(!A)return g;if(A.length===0)throw Error("Must specify the index of the position to remove");if(A.length===1){let B=[...g.slice(0,A[0]),...g.slice(A[0]+1)];return I&&(A[0]===0||A[0]===g.length-1)&&(A[0]===0?B[B.length-1]=B[0]:A[0]===g.length-1&&(B[0]=B[B.length-1])),B}return[...g.slice(0,A[0]),a8(g[A[0]],A.slice(1,A.length),I),...g.slice(A[0]+1)]}function D8(g,A,I,B){if(!A)return g;if(A.length===0)throw Error("Must specify the index of the position to remove");return A.length===1?[...g.slice(0,A[0]),I,...g.slice(A[0])]:[...g.slice(0,A[0]),D8(g[A[0]],A.slice(1,A.length),I,B),...g.slice(A[0]+1)]}function taA(g){switch(g.type){case"Polygon":eaA(g);break;case"MultiLineString":aaA(g);break;case"MultiPolygon":DaA(g);break;default:break}}function eaA(g){let A=g.coordinates;for(let I=1;I<A.length;I++)s8(A,I)&&I--}function aaA(g){for(let A=0;A<g.coordinates.length;A++)g.coordinates[A].length===1&&(g.coordinates.splice(A,1),A--)}function DaA(g){for(let A=0;A<g.coordinates.length;A++){let I=g.coordinates[A];I[0].length<=3&&(g.coordinates.splice(A,1),A--);for(let Q=1;Q<I.length;Q++)s8(I,Q)&&Q--}}function s8(g,A){return g[A].length<=3?(g.splice(A,1),!0):!1}var saA={type:"FeatureCollection",features:[]},raA=[],Tg=class{constructor(){d(this,"_clickSequence",[])}getGuides(A){return saA}getTooltips(A){return raA}getSelectedFeature(A){return A.selectedIndexes.length===1?A.data.features[A.selectedIndexes[0]]:null}getSelectedGeometry(A){let I=this.getSelectedFeature(A);return I?I.geometry:null}getSelectedFeaturesAsFeatureCollection(A){let{features:I}=A.data;return{type:"FeatureCollection",features:A.selectedIndexes.map(Q=>I[Q])}}getClickSequence(){return this._clickSequence}addClickSequence({mapCoords:A}){this._clickSequence.push(A)}resetClickSequence(){this._clickSequence=[]}getTentativeGuide(A){return this.getGuides(A).features.find(B=>B.properties&&B.properties.guideType==="tentative")}isSelectionPicked(A,I){if(!A.length)return!1;let B=o8(A).map(({index:E})=>E),Q=ho(A).map(({properties:E})=>E.featureIndex),C=new Set([...B,...Q]);return I.selectedIndexes.some(E=>C.has(E))}rewindPolygon(A){let{geometry:I}=A;return I.type==="Polygon"||I.type==="MultiPolygon"?Q8(A):A}getAddFeatureAction(A,I){let B=A,Q=B.type==="Feature"?B:{type:"Feature",properties:{},geometry:B},C=this.rewindPolygon(Q),E=new FI(I).addFeature(C).getObject();return{updatedData:E,editType:"addFeature",editContext:{featureIndexes:[E.features.length-1]}}}getAddManyFeaturesAction({features:A},I){let B=new FI(I),Q=B.getObject().features.length,C=[];for(let E of A){let{properties:o,geometry:e}=E,D=e;B=B.addFeature({type:"Feature",properties:o,geometry:D}),C.push(Q+C.length)}return{updatedData:B.getObject(),editType:"addFeature",editContext:{featureIndexes:C}}}getAddFeatureOrBooleanPolygonAction(A,I){let B=A,Q=this.getSelectedFeature(I),{modeConfig:C}=I;if(C&&C.booleanOperation){if(!Q||Q.geometry.type!=="Polygon"&&Q.geometry.type!=="MultiPolygon")return console.warn("booleanOperation only supported for single Polygon or MultiPolygon selection"),null;let E=B.type==="Feature"?B:{type:"Feature",geometry:B},o;if(C.booleanOperation==="union")o=P4(Q,E);else if(C.booleanOperation==="difference")o=bn(Q,E);else if(C.booleanOperation==="intersection")o=dU(Q,E);else return console.warn(`Invalid booleanOperation ${C.booleanOperation}`),null;if(!o)return console.warn("Canceling edit. Boolean operation erased entire polygon."),null;let e=I.selectedIndexes[0];return{updatedData:new FI(I.data).replaceGeometry(e,o.geometry).getObject(),editType:"unionGeometry",editContext:{featureIndexes:[e]}}}return this.getAddFeatureAction(A,I.data)}createTentativeFeature(A){return null}handleClick(A,I){}handlePointerMove(A,I){let B=this.createTentativeFeature(I);B&&I.onEdit({updatedData:I.data,editType:"updateTentativeFeature",editContext:{feature:B}})}handleStartDragging(A,I){}handleStopDragging(A,I){}handleDragging(A,I){}handleKeyUp(A,I){A.key==="Escape"&&(this.resetClickSequence(),I.onEdit({updatedData:I.data,editType:"cancelFeature",editContext:{}}))}};function Xa(g,A){return[(g[0]+A[0])/2,(g[1]+A[1])/2]}var JQ=class extends Tg{};var qC=63710088e-1,YIg={centimeters:qC*100,centimetres:qC*100,degrees:qC/111325,feet:qC*3.28084,inches:qC*39.37,kilometers:qC/1e3,kilometres:qC/1e3,meters:qC,metres:qC,miles:qC/1609.344,millimeters:qC*1e3,millimetres:qC*1e3,nauticalmiles:qC/1852,radians:1,yards:qC*1.0936},KIg={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/qC,yards:1.0936133};function r8(g){var A=g%(2*Math.PI);return A*180/Math.PI}function XM(g){var A=g%360;return A*Math.PI/180}function c0(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function naA(g,A,I){I===void 0&&(I={});var B;I.final?B=n8(c0(A),c0(g)):B=n8(c0(g),c0(A));var Q=B>180?-(360-B):B;return Q}function n8(g,A){var I=XM(g[1]),B=XM(A[1]),Q=XM(A[0]-g[0]);Q>Math.PI&&(Q-=2*Math.PI),Q<-Math.PI&&(Q+=2*Math.PI);var C=Math.log(Math.tan(B/2+Math.PI/4)/Math.tan(I/2+Math.PI/4)),E=Math.atan2(Q,C);return(r8(E)+360)%360}var On=naA;var YQ=63710088e-1,c8={centimeters:YQ*100,centimetres:YQ*100,degrees:YQ/111325,feet:YQ*3.28084,inches:YQ*39.37,kilometers:YQ/1e3,kilometres:YQ/1e3,meters:YQ,metres:YQ,miles:YQ/1609.344,millimeters:YQ*1e3,millimetres:YQ*1e3,nauticalmiles:YQ/1852,radians:1,yards:YQ*1.0936},fIg={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/YQ,yards:1.0936133};function caA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function G8(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!uU(g[0])||!uU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return caA(B,A,I)}function GaA(g,A){A===void 0&&(A="kilometers");var I=c8[A];if(!I)throw new Error(A+" units is invalid");return g*I}function waA(g,A){A===void 0&&(A="kilometers");var I=c8[A];if(!I)throw new Error(A+" units is invalid");return g/I}function mU(g){var A=g%360;return A*Math.PI/180}function w8(g,A,I){if(A===void 0&&(A="kilometers"),I===void 0&&(I="kilometers"),!(g>=0))throw new Error("length must be a positive number");return GaA(waA(g,A),I)}function uU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function h8(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function haA(g,A,I,B){B===void 0&&(B={});var Q=A<0,C=w8(Math.abs(A),B.units,"meters");Q&&(C=-Math.abs(C));var E=h8(g),o=NaA(E,C,I);return o[0]+=o[0]-E[0]>180?-360:E[0]-o[0]>180?360:0,G8(o,B.properties)}function NaA(g,A,I,B){B=B===void 0?YQ:Number(B);var Q=A/B,C=g[0]*Math.PI/180,E=mU(g[1]),o=mU(I),e=Q*Math.cos(o),D=E+e;Math.abs(D)>Math.PI/2&&(D=D>0?Math.PI-D:-Math.PI-D);var r=Math.log(Math.tan(D/2+Math.PI/4)/Math.tan(E/2+Math.PI/4)),n=Math.abs(r)>1e-11?e/r:Math.cos(E),G=Q*Math.sin(o)/n,w=C+G;return[(w*180/Math.PI+540)%360-180,D*180/Math.PI]}var Dt=haA;function N8(g,A,I){let B=Wa(g),Q=Dt(B,A,I),C=n0(g.geometry.coordinates,E=>{let o=Va(B.geometry.coordinates,E),e=On(B.geometry.coordinates,E);return Dt(Q.geometry.coordinates,o,e).geometry.coordinates});return g.geometry.coordinates=C,g}var st=class extends Tg{constructor(){super(...arguments);d(this,"_geometryBeforeTranslate");d(this,"_isTranslatable")}handleDragging(I,B){if(this._isTranslatable){if(this._geometryBeforeTranslate){let Q=this.getTranslateAction(I.pointerDownMapCoords,I.mapCoords,"translating",B);Q&&B.onEdit(Q)}I.cancelPan()}}handlePointerMove(I,B){this._isTranslatable=this.isSelectionPicked(I.pointerDownPicks||I.picks,B),this.updateCursor(B)}handleStartDragging(I,B){this._isTranslatable&&(this._geometryBeforeTranslate=this.getSelectedFeaturesAsFeatureCollection(B))}handleStopDragging(I,B){if(this._geometryBeforeTranslate){let Q=this.getTranslateAction(I.pointerDownMapCoords,I.mapCoords,"translated",B);Q&&B.onEdit(Q),this._geometryBeforeTranslate=null}}updateCursor(I){this._isTranslatable?I.onUpdateCursor("move"):I.onUpdateCursor(null)}getTranslateAction(I,B,Q,C){if(!this._geometryBeforeTranslate)return null;let E=new FI(C.data),o=C.selectedIndexes,{viewport:e,screenSpace:D}=C.modeConfig||{};if(e&&D){let r=e.project?e:new hi(e),n=r.project(I),G=r.project(B),w=G[0]-n[0],h=G[1]-n[1];for(let y=0;y<o.length;y++){let N=o[y],F=this._geometryBeforeTranslate.features[y],K=F.geometry.coordinates;K&&(K=n0(K,M=>{let l=r.project(M);return l?(l[0]+=w,l[1]+=h,r.unproject(l)):null}),E=E.replaceGeometry(N,{type:F.geometry.type,coordinates:K}))}}else{let r=Hg(I),n=Hg(B),G=ng(r,n),w=yI(r,n),h=this._geometryBeforeTranslate.features.map(y=>N8(PM(y),G,w));for(let y=0;y<o.length;y++){let N=o[y],F=h[y];E=E.replaceGeometry(N,F.geometry)}}return{updatedData:E.getObject(),editType:Q,editContext:{featureIndexes:o}}}};var No=class extends Tg{getGuides(A){let I=[],{data:B,lastPointerMoveEvent:Q}=A,{features:C}=B,E=Q&&Q.picks,o=Q&&Q.mapCoords;for(let e of A.selectedIndexes)if(e<C.length){let{geometry:D}=C[e];I.push(...ja(D,e))}else console.warn(`selectedFeatureIndexes out of range ${e}`);if(E&&E.length&&o){let D=!fU(E)&&E.find(r=>!r.isGuide);if(D&&!D.object.geometry.type.includes("Point")&&!(A.modeConfig?.lockRectangles&&D.object.properties.shape==="Rectangle")&&A.selectedIndexes.includes(D.index)){let r=null,n=[],G=Hg(o);if(vM(D.object.geometry.coordinates,[],(w,h)=>{let y=iQ(w),N=this.getNearestPoint(y,G,A.modeConfig&&A.modeConfig.viewport);(!r||N.properties.dist<r.properties.dist)&&(r=N,n=h)}),r){let{geometry:{coordinates:w},properties:{index:h}}=r;I.push({type:"Feature",properties:{guideType:"editHandle",editHandleType:"intermediate",featureIndex:D.index,positionIndexes:[...n,h+1]},geometry:{type:"Point",coordinates:w}})}}}return{type:"FeatureCollection",features:I}}getNearestPoint(A,I,B){let{coordinates:Q}=A.geometry;if(Q.some(C=>C.length>2)){if(B)return HU(A,I,B);console.log("Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.")}return E8(A,I,B)}handleClick(A,I){let B=fU(A.picks),Q=r0(A.picks);if(B){let{featureIndex:C,positionIndexes:E}=B.properties,o;try{o=new FI(I.data).removePosition(C,E).getObject()}catch{}o&&I.onEdit({updatedData:o,editType:"removePosition",editContext:{featureIndexes:[C],positionIndexes:E,position:B.geometry.coordinates}})}else if(Q){let{featureIndex:C,positionIndexes:E}=Q.properties,o=I.data.features[C];if(!(I.modeConfig?.lockRectangles&&o?.properties.shape==="Rectangle")){let D=new FI(I.data).addPosition(C,E,Q.geometry.coordinates).getObject();D&&I.onEdit({updatedData:D,editType:"addPosition",editContext:{featureIndexes:[C],positionIndexes:E,position:Q.geometry.coordinates}})}}}handleDragging(A,I){let B=OI(A.pointerDownPicks);B&&(A.cancelPan(),this._dragEditHandle("movePosition",I,B,A))}_dragEditHandle(A,I,B,Q){let C=B.properties,E=I.data.features[C.featureIndex],o;if(I.modeConfig?.lockRectangles&&E.properties.shape==="Rectangle"){let e=t8(E,C.positionIndexes[1],Q.mapCoords);o=new FI(I.data).replaceGeometry(C.featureIndex,{coordinates:e,type:"Polygon"}).getObject()}else o=new FI(I.data).replacePosition(C.featureIndex,C.positionIndexes,Q.mapCoords).getObject();I.onEdit({updatedData:o,editType:A,editContext:{featureIndexes:[C.featureIndex],positionIndexes:C.positionIndexes,position:Q.mapCoords}})}handlePointerMove(A,I){let B=this.getCursor(A);I.onUpdateCursor(B)}handleStartDragging(A,I){let B=I.selectedIndexes,Q=r0(A.picks);if(B.length&&Q){let C=Q.properties,E=new FI(I.data).addPosition(C.featureIndex,C.positionIndexes,A.mapCoords).getObject();I.onEdit({updatedData:E,editType:"addPosition",editContext:{featureIndexes:[C.featureIndex],positionIndexes:C.positionIndexes,position:A.mapCoords}})}}handleStopDragging(A,I){let B=I.selectedIndexes,Q=OI(A.picks);B.length&&Q&&this._dragEditHandle("finishMovePosition",I,Q,A)}getCursor(A){let I=A&&A.picks||[];return ho(I).length?"cell":null}};var dC=63710088e-1,DBg={centimeters:dC*100,centimetres:dC*100,degrees:dC/111325,feet:dC*3.28084,inches:dC*39.37,kilometers:dC/1e3,kilometres:dC/1e3,meters:dC,metres:dC,miles:dC/1609.344,millimeters:dC*1e3,millimetres:dC*1e3,nauticalmiles:dC/1852,radians:1,yards:dC*1.0936},sBg={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/dC,yards:1.0936133};function y8(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function xU(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!k8(g[0])||!k8(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return y8(B,A,I)}function k8(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function bU(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(bU(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function kaA(g,A){A===void 0&&(A={});var I=0,B=0,Q=0;return bU(g,function(C){I+=C[0],B+=C[1],Q++},!0),xU([I/Q,B/Q],A.properties)}var rt=kaA;var UC=63710088e-1,yBg={centimeters:UC*100,centimetres:UC*100,degrees:UC/111325,feet:UC*3.28084,inches:UC*39.37,kilometers:UC/1e3,kilometres:UC/1e3,meters:UC,metres:UC,miles:UC/1609.344,millimeters:UC*1e3,millimetres:UC*1e3,nauticalmiles:UC/1852,radians:1,yards:UC*1.0936},FBg={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/UC,yards:1.0936133};function F8(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function R8(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return F8(B,A,I)}function M8(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function l8(g,A,I){I===void 0&&(I={});var B={type:"MultiLineString",coordinates:g};return F8(B,A,I)}function zM(g){return g.type==="Feature"?g.geometry:g}function Vn(g,A){A===void 0&&(A={});var I=zM(g);switch(!A.properties&&g.type==="Feature"&&(A.properties=g.properties),I.type){case"Polygon":return yaA(I,A);case"MultiPolygon":return FaA(I,A);default:throw new Error("invalid poly")}}function yaA(g,A){A===void 0&&(A={});var I=zM(g),B=I.coordinates,Q=A.properties?A.properties:g.type==="Feature"?g.properties:{};return J8(B,Q)}function FaA(g,A){A===void 0&&(A={});var I=zM(g),B=I.coordinates,Q=A.properties?A.properties:g.type==="Feature"?g.properties:{},C=[];return B.forEach(function(E){C.push(J8(E,Q))}),M8(C)}function J8(g,A){return g.length>1?l8(g,A):R8(g[0],A)}function RaA(g){if(!g)throw new Error("geojson is required");switch(g.type){case"Feature":return Y8(g);case"FeatureCollection":return MaA(g);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return TU(g);default:throw new Error("unknown GeoJSON type")}}function Y8(g){var A={type:"Feature"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"properties":case"geometry":return;default:A[I]=g[I]}}),A.properties=K8(g.properties),A.geometry=TU(g.geometry),A}function K8(g){var A={};return g&&Object.keys(g).forEach(function(I){var B=g[I];typeof B=="object"?B===null?A[I]=null:Array.isArray(B)?A[I]=B.map(function(Q){return Q}):A[I]=K8(B):A[I]=B}),A}function MaA(g){var A={type:"FeatureCollection"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"features":return;default:A[I]=g[I]}}),A.features=g.features.map(function(I){return Y8(I)}),A}function TU(g){var A={type:g.type};return g.bbox&&(A.bbox=g.bbox),g.type==="GeometryCollection"?(A.geometries=g.geometries.map(function(I){return TU(I)}),A):(A.coordinates=p8(g.coordinates),A)}function p8(g){var A=g;return typeof A[0]!="object"?A.slice():A.map(function(I){return p8(I)})}var q8=RaA;var SC=63710088e-1,dBg={centimeters:SC*100,centimetres:SC*100,degrees:SC/111325,feet:SC*3.28084,inches:SC*39.37,kilometers:SC/1e3,kilometres:SC/1e3,meters:SC,metres:SC,miles:SC/1609.344,millimeters:SC*1e3,millimetres:SC*1e3,nauticalmiles:SC/1852,radians:1,yards:SC*1.0936},UBg={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/SC,yards:1.0936133};function d8(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function vn(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!WU(g[0])||!WU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return d8(B,A,I)}function WU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function ZU(g){return!!g&&g.constructor===Object}function PU(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(PU(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function U8(g,A){if(g.type==="Feature")A(g,0);else if(g.type==="FeatureCollection")for(var I=0;I<g.features.length&&A(g.features[I],I)!==!1;I++);}function S8(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function L8(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function H8(g,A){return g.type==="FeatureCollection"?"FeatureCollection":g.type==="GeometryCollection"?"GeometryCollection":g.type==="Feature"&&g.geometry!==null?g.geometry.type:g.type}function laA(g,A,I){if(I=I||{},!ZU(I))throw new Error("options is invalid");var B=I.origin,Q=I.mutate;if(!g)throw new Error("geojson required");if(typeof A!="number"||A===0)throw new Error("invalid factor");var C=Array.isArray(B)||typeof B=="object";return Q!==!0&&(g=q8(g)),g.type==="FeatureCollection"&&!C?(U8(g,function(E,o){g.features[o]=f8(E,A,B)}),g):f8(g,A,B)}function f8(g,A,I){var B=H8(g)==="Point";return I=JaA(g,I),A===1||B||PU(g,function(Q){var C=Va(I,Q),E=On(I,Q),o=C*A,e=L8(Dt(I,o,E));Q[0]=e[0],Q[1]=e[1],Q.length===3&&(Q[2]*=A)}),g}function JaA(g,A){if(A==null&&(A="centroid"),Array.isArray(A)||typeof A=="object")return S8(A);var I=g.bbox?g.bbox:Le(g),B=I[0],Q=I[1],C=I[2],E=I[3];switch(A){case"sw":case"southwest":case"westsouth":case"bottomleft":return vn([B,Q]);case"se":case"southeast":case"eastsouth":case"bottomright":return vn([C,Q]);case"nw":case"northwest":case"westnorth":case"topleft":return vn([B,E]);case"ne":case"northeast":case"eastnorth":case"topright":return vn([C,E]);case"center":return Wa(g);case void 0:case null:case"centroid":return rt(g);default:throw new Error("invalid origin")}}var u8=laA;var fe=class extends Tg{constructor(){super(...arguments);d(this,"_geometryBeingScaled");d(this,"_selectedEditHandle");d(this,"_cornerGuidePoints",[]);d(this,"_cursor");d(this,"_isScaling",!1);d(this,"_isSinglePointGeometrySelected",I=>{let{features:B}=I||{};if(Array.isArray(B)&&B.length===1){let{type:Q}=OM(B[0]);return Q==="Point"}return!1});d(this,"_getOppositeScaleHandle",I=>{let B=I&&I.properties&&Array.isArray(I.properties.positionIndexes)&&I.properties.positionIndexes[0];if(typeof B!="number")return null;let Q=this._cornerGuidePoints.length,C=(B+Q/2)%Q;return this._cornerGuidePoints.find(E=>Array.isArray(E.properties.positionIndexes)?E.properties.positionIndexes[0]===C:!1)||null});d(this,"_getUpdatedData",(I,B)=>{let Q=new FI(I.data),C=I.selectedIndexes;for(let E=0;E<C.length;E++){let o=C[E],e=B.features[E];Q=Q.replaceGeometry(o,e.geometry)}return Q.getObject()});d(this,"isEditHandleSelected",()=>!!this._selectedEditHandle);d(this,"getScaleAction",(I,B,Q,C)=>{if(!this._selectedEditHandle)return null;let E=this._getOppositeScaleHandle(this._selectedEditHandle),o=$4(E),e=YaA(o,I,B),D=u8(this._geometryBeingScaled,e,{origin:o});return{updatedData:this._getUpdatedData(C,D),editType:Q,editContext:{featureIndexes:C.selectedIndexes}}});d(this,"updateCursor",I=>{if(this._selectedEditHandle){this._cursor&&I.onUpdateCursor(this._cursor);let B=this.getSelectedFeaturesAsFeatureCollection(I),Q=rt(B),C=yI(Q,this._selectedEditHandle),E=C<0?C+180:C;E>=0&&E<=90||E>=180&&E<=270?(this._cursor="nesw-resize",I.onUpdateCursor("nesw-resize")):(this._cursor="nwse-resize",I.onUpdateCursor("nwse-resize"))}else I.onUpdateCursor(null),this._cursor=null})}handlePointerMove(I,B){if(!this._isScaling){let Q=OI(I.picks);this._selectedEditHandle=Q&&Q.properties.editHandleType==="scale"?Q:null,this.updateCursor(B)}}handleStartDragging(I,B){this._selectedEditHandle&&(this._isScaling=!0,this._geometryBeingScaled=this.getSelectedFeaturesAsFeatureCollection(B))}handleDragging(I,B){if(!this._isScaling)return;B.onUpdateCursor(this._cursor);let Q=this.getScaleAction(I.pointerDownMapCoords,I.mapCoords,"scaling",B);Q&&B.onEdit(Q),I.cancelPan()}handleStopDragging(I,B){if(this._isScaling){let Q=this.getScaleAction(I.pointerDownMapCoords,I.mapCoords,"scaled",B);Q&&B.onEdit(Q),B.onUpdateCursor(null),this._geometryBeingScaled=null,this._selectedEditHandle=null,this._cursor=null,this._isScaling=!1}}getGuides(I){this._cornerGuidePoints=[];let B=this.getSelectedFeaturesAsFeatureCollection(I);if(this._isSinglePointGeometrySelected(B))return{type:"FeatureCollection",features:[]};let Q=jQ(Le(B));Q.properties.mode="scale";let C=[];return D0(Q,(E,o)=>{if(o<4){let e=Hg(E,{guideType:"editHandle",editHandleType:"scale",positionIndexes:[o]});C.push(e)}}),this._cornerGuidePoints=C,Se([Vn(Q),...this._cornerGuidePoints])}};function YaA(g,A,I){let B=ng(g,A);return ng(g,I)/B}function KaA(g){if(!g)throw new Error("geojson is required");switch(g.type){case"Feature":return m8(g);case"FeatureCollection":return paA(g);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return OU(g);default:throw new Error("unknown GeoJSON type")}}function m8(g){var A={type:"Feature"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"properties":case"geometry":return;default:A[I]=g[I]}}),A.properties=x8(g.properties),A.geometry=OU(g.geometry),A}function x8(g){var A={};return g&&Object.keys(g).forEach(function(I){var B=g[I];typeof B=="object"?B===null?A[I]=null:Array.isArray(B)?A[I]=B.map(function(Q){return Q}):A[I]=x8(B):A[I]=B}),A}function paA(g){var A={type:"FeatureCollection"};return Object.keys(g).forEach(function(I){switch(I){case"type":case"features":return;default:A[I]=g[I]}}),A.features=g.features.map(function(I){return m8(I)}),A}function OU(g){var A={type:g.type};return g.bbox&&(A.bbox=g.bbox),g.type==="GeometryCollection"?(A.geometries=g.geometries.map(function(I){return OU(I)}),A):(A.coordinates=b8(g.coordinates),A)}function b8(g){var A=g;return typeof A[0]!="object"?A.slice():A.map(function(I){return b8(I)})}var T8=KaA;var LC=63710088e-1,sQg={centimeters:LC*100,centimetres:LC*100,degrees:LC/111325,feet:LC*3.28084,inches:LC*39.37,kilometers:LC/1e3,kilometres:LC/1e3,meters:LC,metres:LC,miles:LC/1609.344,millimeters:LC*1e3,millimetres:LC*1e3,nauticalmiles:LC/1852,radians:1,yards:LC*1.0936},rQg={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/LC,yards:1.0936133};function VU(g){return!!g&&g.constructor===Object}function vU(g,A,I){if(g!==null)for(var B,Q,C,E,o,e,D,r=0,n=0,G,w=g.type,h=w==="FeatureCollection",y=w==="Feature",N=h?g.features.length:1,F=0;F<N;F++){D=h?g.features[F].geometry:y?g.geometry:g,G=D?D.type==="GeometryCollection":!1,o=G?D.geometries.length:1;for(var K=0;K<o;K++){var M=0,l=0;if(E=G?D.geometries[K]:D,E!==null){e=E.coordinates;var Y=E.type;switch(r=I&&(Y==="Polygon"||Y==="MultiPolygon")?1:0,Y){case null:break;case"Point":if(A(e,n,F,M,l)===!1)return!1;n++,M++;break;case"LineString":case"MultiPoint":for(B=0;B<e.length;B++){if(A(e[B],n,F,M,l)===!1)return!1;n++,Y==="MultiPoint"&&M++}Y==="LineString"&&M++;break;case"Polygon":case"MultiLineString":for(B=0;B<e.length;B++){for(Q=0;Q<e[B].length-r;Q++){if(A(e[B][Q],n,F,M,l)===!1)return!1;n++}Y==="MultiLineString"&&M++,Y==="Polygon"&&l++}Y==="Polygon"&&M++;break;case"MultiPolygon":for(B=0;B<e.length;B++){for(l=0,Q=0;Q<e[B].length;Q++){for(C=0;C<e[B][Q].length-r;C++){if(A(e[B][Q][C],n,F,M,l)===!1)return!1;n++}l++}M++}break;case"GeometryCollection":for(B=0;B<E.geometries.length;B++)if(vU(E.geometries[B],A,I)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function W8(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function qaA(g,A,I){if(I=I||{},!VU(I))throw new Error("options is invalid");var B=I.pivot,Q=I.mutate;if(!g)throw new Error("geojson is required");if(A==null||isNaN(A))throw new Error("angle is required");return A===0||(B||(B=rt(g)),(Q===!1||Q===void 0)&&(g=T8(g)),vU(g,function(C){var E=On(B,C),o=E+A,e=Va(B,C),D=W8(Dt(B,e,o));C[0]=D[0],C[1]=D[1]})),g}var _M=qaA;var ue=class extends Tg{constructor(){super(...arguments);d(this,"_selectedEditHandle");d(this,"_geometryBeingRotated");d(this,"_isRotating",!1);d(this,"_isSinglePointGeometrySelected",I=>{let{features:B}=I||{};if(Array.isArray(B)&&B.length===1){let{type:Q}=OM(B[0]);return Q==="Point"}return!1});d(this,"getIsRotating",()=>this._isRotating)}getGuides(I){let B=this._geometryBeingRotated||this.getSelectedFeaturesAsFeatureCollection(I);if(this._isSinglePointGeometrySelected(B))return{type:"FeatureCollection",features:[]};if(this._isRotating)return Se([rt(B)]);let Q=jQ(Le(B)),C=null,E=null,o=0;D0(Q,G=>{if(C){let w=Xa(G,C);(!E||w[1]>E[1])&&(E=w);let h=ng(G,C);o=Math.max(o,h)}C=G});let e=E&&[E[0],E[1]+o/1e3],D=iQ([E,e]),r=Hg(e,{guideType:"editHandle",editHandleType:"rotate"}),n=[Vn(Q),r,D];return Se(n)}handleDragging(I,B){if(!this._isRotating)return;let Q=this.getRotateAction(I.pointerDownMapCoords,I.mapCoords,"rotating",B);Q&&B.onEdit(Q),I.cancelPan()}handlePointerMove(I,B){if(!this._isRotating){let Q=OI(I.picks);this._selectedEditHandle=Q&&Q.properties.editHandleType==="rotate"?Q:null}this.updateCursor(B)}handleStartDragging(I,B){this._selectedEditHandle&&(this._isRotating=!0,this._geometryBeingRotated=this.getSelectedFeaturesAsFeatureCollection(B))}handleStopDragging(I,B){if(this._isRotating){let Q=this.getRotateAction(I.pointerDownMapCoords,I.mapCoords,"rotated",B);Q&&B.onEdit(Q),this._geometryBeingRotated=null,this._selectedEditHandle=null,this._isRotating=!1}}updateCursor(I){this._selectedEditHandle?I.onUpdateCursor("crosshair"):I.onUpdateCursor(null)}getRotateAction(I,B,Q,C){if(!this._geometryBeingRotated)return null;let E=rt(this._geometryBeingRotated),o=daA(E,I,B),e=_M(this._geometryBeingRotated,o,{pivot:E}),D=new FI(C.data),r=C.selectedIndexes;for(let n=0;n<r.length;n++){let G=r[n],w=e.features[n];D=D.replaceGeometry(G,w.geometry)}return{updatedData:D.getObject(),editType:Q,editContext:{featureIndexes:r}}}};function daA(g,A,I){let B=yI(g,A);return yI(g,I)-B}var G0=class extends st{handleStartDragging(A,I){super.handleStartDragging(A,I),this._geometryBeforeTranslate&&I.onEdit(this.getAddManyFeaturesAction(this._geometryBeforeTranslate,I.data))}updateCursor(A){this._isTranslatable?A.onUpdateCursor("copy"):A.onUpdateCursor(null)}};var HC=63710088e-1,XQg={centimeters:HC*100,centimetres:HC*100,degrees:HC/111325,feet:HC*3.28084,inches:HC*39.37,kilometers:HC/1e3,kilometres:HC/1e3,meters:HC,metres:HC,miles:HC/1609.344,millimeters:HC*1e3,millimetres:HC*1e3,nauticalmiles:HC/1852,radians:1,yards:HC*1.0936},zQg={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/HC,yards:1.0936133};function Z8(g){if(!g)throw new Error("coord is required");if(!Array.isArray(g)){if(g.type==="Feature"&&g.geometry!==null&&g.geometry.type==="Point")return g.geometry.coordinates;if(g.type==="Point")return g.coordinates}if(Array.isArray(g)&&g.length>=2&&!Array.isArray(g[0])&&!Array.isArray(g[1]))return g;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function P8(g){return g.type==="Feature"?g.geometry:g}function jU(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("point is required");if(!A)throw new Error("polygon is required");var B=Z8(g),Q=P8(A),C=Q.type,E=A.bbox,o=Q.coordinates;if(E&&UaA(B,E)===!1)return!1;C==="Polygon"&&(o=[o]);for(var e=!1,D=0;D<o.length&&!e;D++)if(O8(B,o[D][0],I.ignoreBoundary)){for(var r=!1,n=1;n<o[D].length&&!r;)O8(B,o[D][n],!I.ignoreBoundary)&&(r=!0),n++;r||(e=!0)}return e}function O8(g,A,I){var B=!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 Q=0,C=A.length-1;Q<A.length;C=Q++){var E=A[Q][0],o=A[Q][1],e=A[C][0],D=A[C][1],r=g[1]*(E-e)+o*(e-g[0])+D*(g[0]-E)===0&&(E-g[0])*(e-g[0])<=0&&(o-g[1])*(D-g[1])<=0;if(r)return!I;var n=o>g[1]!=D>g[1]&&g[0]<(e-E)*(g[1]-o)/(D-o)+E;n&&(B=!B)}return B}function UaA(g,A){return A[0]<=g[0]&&A[1]<=g[1]&&A[2]>=g[0]&&A[3]>=g[1]}var fC=63710088e-1,QCg={centimeters:fC*100,centimetres:fC*100,degrees:fC/111325,feet:fC*3.28084,inches:fC*39.37,kilometers:fC/1e3,kilometres:fC/1e3,meters:fC,metres:fC,miles:fC/1609.344,millimeters:fC*1e3,millimetres:fC*1e3,nauticalmiles:fC/1852,radians:1,yards:fC*1.0936},CCg={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/fC,yards:1.0936133};function w0(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function zU(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!XU(g[0])||!XU(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return w0(B,A,I)}function _U(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function XU(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function $M(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}var uC=63710088e-1,tCg={centimeters:uC*100,centimetres:uC*100,degrees:uC/111325,feet:uC*3.28084,inches:uC*39.37,kilometers:uC/1e3,kilometres:uC/1e3,meters:uC,metres:uC,miles:uC/1609.344,millimeters:uC*1e3,millimetres:uC*1e3,nauticalmiles:uC/1852,radians:1,yards:uC*1.0936},eCg={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/uC,yards:1.0936133};function Al(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function $U(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return Al(B,A,I)}function V8(g,A){A===void 0&&(A={});var I={type:"FeatureCollection"};return A.id&&(I.id=A.id),A.bbox&&(I.bbox=A.bbox),I.features=g,I}function AS(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function SaA(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function v8(g,A){SaA(g,function(I,B,Q,C,E){var o=I===null?null:I.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(Al(I,Q,{bbox:C,id:E}),B,0)===!1?!1:void 0}var e;switch(o){case"MultiPoint":e="Point";break;case"MultiLineString":e="LineString";break;case"MultiPolygon":e="Polygon";break}for(var D=0;D<I.coordinates.length;D++){var r=I.coordinates[D],n={type:e,coordinates:r};if(A(Al(n,Q),B,D)===!1)return!1}})}function LaA(g){if(!g)throw new Error("geojson is required");var A=[];return v8(g,function(I){HaA(I,A)}),V8(A)}function HaA(g,A){var I=[],B=g.geometry;if(B!==null){switch(B.type){case"Polygon":I=AS(B);break;case"LineString":I=[AS(B)]}I.forEach(function(Q){var C=faA(Q,g.properties);C.forEach(function(E){E.id=A.length,A.push(E)})})}}function faA(g,A){var I=[];return g.reduce(function(B,Q){var C=$U([B,Q],A);return C.bbox=uaA(B,Q),I.push(C),Q}),I}function uaA(g,A){var I=g[0],B=g[1],Q=A[0],C=A[1],E=I<Q?I:Q,o=B<C?B:C,e=I>Q?I:Q,D=B>C?B:C;return[E,o,e,D]}var gS=LaA;function IS(g,A){if(g.type==="Feature")A(g,0);else if(g.type==="FeatureCollection")for(var I=0;I<g.features.length&&A(g.features[I],I)!==!1;I++);}var RP=ft(yP(),1);function LDA(g,A){var I={},B=[];if(g.type==="LineString"&&(g=w0(g)),A.type==="LineString"&&(A=w0(A)),g.type==="Feature"&&A.type==="Feature"&&g.geometry!==null&&A.geometry!==null&&g.geometry.type==="LineString"&&A.geometry.type==="LineString"&&g.geometry.coordinates.length===2&&A.geometry.coordinates.length===2){var Q=FP(g,A);return Q&&B.push(Q),_U(B)}var C=(0,RP.default)();return C.load(gS(A)),IS(gS(g),function(E){IS(C.search(E),function(o){var e=FP(E,o);if(e){var D=$M(e).join(",");I[D]||(I[D]=!0,B.push(e))}})}),_U(B)}function FP(g,A){var I=$M(g),B=$M(A);if(I.length!==2)throw new Error("<intersects> line1 must only contain 2 coordinates");if(B.length!==2)throw new Error("<intersects> line2 must only contain 2 coordinates");var Q=I[0][0],C=I[0][1],E=I[1][0],o=I[1][1],e=B[0][0],D=B[0][1],r=B[1][0],n=B[1][1],G=(n-D)*(E-Q)-(r-e)*(o-C),w=(r-e)*(C-D)-(n-D)*(Q-e),h=(E-Q)*(C-D)-(o-C)*(Q-e);if(G===0)return null;var y=w/G,N=h/G;if(y>=0&&y<=1&&N>=0&&N<=1){var F=Q+y*(E-Q),K=C+y*(o-C);return zU([F,K])}return null}var $a=LDA;var mC=63710088e-1,xCg={centimeters:mC*100,centimetres:mC*100,degrees:mC/111325,feet:mC*3.28084,inches:mC*39.37,kilometers:mC/1e3,kilometres:mC/1e3,meters:mC,metres:mC,miles:mC/1609.344,millimeters:mC*1e3,millimetres:mC*1e3,nauticalmiles:mC/1852,radians:1,yards:mC*1.0936},bCg={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/mC,yards:1.0936133};function k0(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function y0(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!hS(g[0])||!hS(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return k0(B,A,I)}function il(g,A,I){if(I===void 0&&(I={}),g.length<2)throw new Error("coordinates must be an array of two or more positions");var B={type:"LineString",coordinates:g};return k0(B,A,I)}function hS(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function HDA(g,A){var I,B,Q,C,E,o,e,D,r,n,G=0,w=g.type==="FeatureCollection",h=g.type==="Feature",y=w?g.features.length:1;for(I=0;I<y;I++){for(o=w?g.features[I].geometry:h?g.geometry:g,D=w?g.features[I].properties:h?g.properties:{},r=w?g.features[I].bbox:h?g.bbox:void 0,n=w?g.features[I].id:h?g.id:void 0,e=o?o.type==="GeometryCollection":!1,E=e?o.geometries.length:1,Q=0;Q<E;Q++){if(C=e?o.geometries[Q]:o,C===null){if(A(null,G,D,r,n)===!1)return!1;continue}switch(C.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(A(C,G,D,r,n)===!1)return!1;break}case"GeometryCollection":{for(B=0;B<C.geometries.length;B++)if(A(C.geometries[B],G,D,r,n)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}G++}}function MP(g,A){HDA(g,function(I,B,Q,C,E){var o=I===null?null:I.type;switch(o){case null:case"Point":case"LineString":case"Polygon":return A(k0(I,Q,{bbox:C,id:E}),B,0)===!1?!1:void 0}var e;switch(o){case"MultiPoint":e="Point";break;case"MultiLineString":e="LineString";break;case"MultiPolygon":e="Polygon";break}for(var D=0;D<I.coordinates.length;D++){var r=I.coordinates[D],n={type:e,coordinates:r};if(A(k0(n,Q),B,D)===!1)return!1}})}function lP(g){if(Array.isArray(g))return g;if(g.type==="Feature"){if(g.geometry!==null)return g.geometry.coordinates}else if(g.coordinates)return g.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function fDA(g,A,I){I===void 0&&(I={});var B=y0([1/0,1/0],{dist:1/0}),Q=0;return MP(g,function(C){for(var E=lP(C),o=0;o<E.length-1;o++){var e=y0(E[o]);e.properties.dist=ng(A,e,I);var D=y0(E[o+1]);D.properties.dist=ng(A,D,I);var r=ng(e,D,I),n=Math.max(e.properties.dist,D.properties.dist),G=yI(e,D),w=tQ(A,n,G+90,I),h=tQ(A,n,G-90,I),y=$a(il([w.geometry.coordinates,h.geometry.coordinates]),il([e.geometry.coordinates,D.geometry.coordinates])),N=null;y.features.length>0&&(N=y.features[0],N.properties.dist=ng(A,N,I),N.properties.location=Q+ng(e,N,I)),e.properties.dist<B.properties.dist&&(B=e,B.properties.index=o,B.properties.location=Q),D.properties.dist<B.properties.dist&&(B=D,B.properties.index=o+1,B.properties.location=Q+r),N&&N.properties.dist<B.properties.dist&&(B=N,B.properties.index=o),Q+=r}}),B}var ol=fDA;var F0=class extends Tg{calculateMapCoords(A,I,B){let Q=B.modeConfig;if(!Q||!Q.lock90Degree||!A.length)return I;if(A.length===1){let e=A[0],D=this.getSelectedGeometry(B),r=Vn(D),n=r.type==="FeatureCollection"?r.features:[r],G=Number.MAX_SAFE_INTEGER,w=null;if(n.forEach(h=>{let y=ol(h,e),N=ng(y,e);G>N&&(G=N,w=y)}),w){let h=yI(e,w),y=ng(e,I,{units:"meters"});return tQ(e,y,h,{units:"meters"}).geometry.coordinates}return I}let C=A[A.length-1],[E]=He(A[A.length-2],C,I);return ol(iQ([C,E]),I).geometry.coordinates}getGuides(A){let I=this.getClickSequence(),B={type:"FeatureCollection",features:[]};if(I.length===0||!A.lastPointerMoveEvent)return B;let{mapCoords:Q}=A.lastPointerMoveEvent;return B.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...I,this.calculateMapCoords(I,Q,A)]}}),B}handleClick(A,I){let B=this.getTentativeGuide(I),Q=this.getSelectedGeometry(I);if(!Q){console.warn("A polygon must be selected for splitting");return}let C=this.getClickSequence();B&&B.geometry.type==="LineString"?C.push(B.geometry.coordinates[B.geometry.coordinates.length-1]):this.addClickSequence(A);let E={type:"Point",coordinates:C[C.length-1]},o=jU(E,Q);if(C.length>1&&B&&!o){if(this.resetClickSequence(),$a(B,Q).features.length===0)return;let D=this.splitPolygon(B,I);D&&I.onEdit(D)}}handlePointerMove(A,I){I.onUpdateCursor("cell")}splitPolygon(A,I){let B=this.getSelectedGeometry(I),Q=I.selectedIndexes[0],C=I.modeConfig||{},{gap:E=.1,units:o="centimeters"}=C;E===0&&(E=.1,o="centimeters");let e=UM(A,E,{units:o}),D=bn(B,e);if(!D)return console.warn("Canceling edit. Split Polygon erased"),null;let{type:r,coordinates:n}=D.geometry,G=[];return r==="Polygon"?G=n.map(y=>[y]):G=n.reduce((y,N)=>(N.forEach(F=>{y.push([F])}),y),[]),{updatedData:new FI(I.data).replaceGeometry(Q,{type:"MultiPolygon",coordinates:G}).getObject(),editType:"split",editContext:{featureIndexes:[Q]}}}};var R0=class extends No{constructor(){super(...arguments);d(this,"isPointAdded",!1)}handleDragging(I,B){let Q=OI(I.pointerDownPicks);if(Q){let{featureIndex:C}=Q.properties,{positionIndexes:E}=Q.properties,o=this.coordinatesSize(E,C,B.data);E=this.isPointAdded?this.nextPositionIndexes(E,o):E;let e=this.getPointForPositionIndexes(this.prevPositionIndexes(E,o),C,B.data),D=this.getPointForPositionIndexes(E,C,B.data);if(e&&D){let[r,n]=He(e,D,I.mapCoords),G=new FI(B.data).replacePosition(C,this.prevPositionIndexes(E,o),n).replacePosition(C,E,r).getObject();B.onEdit({updatedData:G,editType:"extruding",editContext:{featureIndexes:[C],positionIndexes:this.nextPositionIndexes(E,o),position:r}}),I.cancelPan()}}}handleStartDragging(I,B){let Q=B.selectedIndexes,C=r0(I.picks);if(Q.length&&C){let{positionIndexes:E,featureIndex:o}=C.properties,e=this.coordinatesSize(E,o,B.data),D=this.getPointForPositionIndexes(this.prevPositionIndexes(E,e),o,B.data),r=this.getPointForPositionIndexes(E,o,B.data);if(D&&r){let n=new FI(B.data);this.isOrthogonal(E,o,e,B.data)||(n=n.addPosition(o,E,r)),this.isOrthogonal(this.prevPositionIndexes(E,e),o,e,B.data)||(n=n.addPosition(o,E,D),this.isPointAdded=!0),B.onEdit({updatedData:n.getObject(),editType:"startExtruding",editContext:{featureIndexes:[o],positionIndexes:E,position:D}})}}}handleStopDragging(I,B){let Q=B.selectedIndexes,C=OI(I.pointerDownPicks);if(Q.length&&C){let{featureIndex:E}=C.properties,{positionIndexes:o}=C.properties,e=this.coordinatesSize(o,E,B.data);o=this.isPointAdded?this.nextPositionIndexes(o,e):o;let D=this.getPointForPositionIndexes(this.prevPositionIndexes(o,e),E,B.data),r=this.getPointForPositionIndexes(o,E,B.data);if(D&&r){let[n,G]=He(D,r,I.mapCoords),w=new FI(B.data).replacePosition(E,this.prevPositionIndexes(o,e),G).replacePosition(E,o,n).getObject();B.onEdit({updatedData:w,editType:"extruded",editContext:{featureIndexes:[E],positionIndexes:o,position:n}})}}this.isPointAdded=!1}coordinatesSize(I,B,{features:Q}){let C=0;if(Array.isArray(I)){let o=Q[B].geometry.coordinates;if(I.length===3){let[e,D]=I;o.length&&o[e].length&&(C=o[e][D].length)}else{let[e]=I;o.length&&o[e].length&&(C=o[e].length)}}return C}getBearing(I,B){let Q=yI(I,B);return Q<0?Math.floor(360+Q):Math.floor(Q)}isOrthogonal(I,B,Q,C){if(!Array.isArray(I))return!1;I[I.length-1]===Q-1&&(I[I.length-1]=0);let E=this.getPointForPositionIndexes(this.prevPositionIndexes(I,Q),B,C),o=this.getPointForPositionIndexes(this.nextPositionIndexes(I,Q),B,C),e=this.getPointForPositionIndexes(I,B,C),D=this.getBearing(e,E),r=this.getBearing(e,o);return[89,90,91,269,270,271].includes(Math.abs(D-r))}nextPositionIndexes(I,B){if(!Array.isArray(I))return[];let Q=[...I];return Q.length&&(Q[Q.length-1]=Q[Q.length-1]===B-1?0:Q[Q.length-1]+1),Q}prevPositionIndexes(I,B){if(!Array.isArray(I))return[];let Q=[...I];return Q.length&&(Q[Q.length-1]=Q[Q.length-1]===0?B-2:Q[Q.length-1]-1),Q}getPointForPositionIndexes(I,B,{features:Q}){let C;if(Array.isArray(I)){let o=Q[B].geometry.coordinates;if(I.length===3){let[e,D,r]=I;o.length&&o[e].length&&(C=o[e][D][r])}else{let[e,D]=I;o.length&&o[e].length&&(C=o[e][D])}}return C}};function uDA({pointerDownScreenCoords:g,screenCoords:A}){return 10*(g[1]-A[1])}var M0=class extends No{makeElevatedEvent(A,I,B){let{minElevation:Q=0,maxElevation:C=2e4,calculateElevationChange:E=uDA}=B.modeConfig||{};if(!A.pointerDownScreenCoords)return A;let o=I.length===3?I[2]:0;return o+=E({pointerDownScreenCoords:A.pointerDownScreenCoords,screenCoords:A.screenCoords}),o=Math.min(o,C),o=Math.max(o,Q),Object.assign({},A,{mapCoords:[I[0],I[1],o]})}handlePointerMove(A,I){let B=OI(A.pointerDownPicks),Q=B?B.geometry.coordinates:A.mapCoords;super.handlePointerMove(this.makeElevatedEvent(A,Q,I),I)}handleStopDragging(A,I){let B=OI(A.picks),Q=B?B.geometry.coordinates:A.mapCoords;super.handleStopDragging(this.makeElevatedEvent(A,Q,I),I)}getCursor(A){let I=super.getCursor(A);return I==="cell"&&(I="ns-resize"),I}static calculateElevationChangeWithViewport(A,{pointerDownScreenCoords:I,screenCoords:B}){return 156543.03392*Math.cos(A.latitude*Math.PI/180)/Math.pow(2,A.zoom)*(I[1]-B[1])/2}};var l0=class extends Tg{createTentativeFeature(A){let{lastPointerMoveEvent:I}=A,B=I?[I.mapCoords]:[];return{type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Point",coordinates:B[0]}}}handleClick({mapCoords:A},I){let B={type:"Point",coordinates:A};I.onEdit(this.getAddFeatureAction(B,I.data))}handlePointerMove(A,I){I.onUpdateCursor("cell"),super.handlePointerMove(A,I)}};function mDA(g,A){if(g===A)return!0;if(Array.isArray(g)){let I=g.length;if(!A||A.length!==I)return!1;for(let B=0;B<I;B++)if(g[B]!==A[B])return!1;return!0}return!1}function AD(g){let A={},I;return B=>{for(let Q in B)if(!mDA(B[Q],A[Q])){I=g(B),A=B;break}return I}}var J0=class extends Tg{constructor(){super(...arguments);d(this,"dist",0);d(this,"position",null);d(this,"elems",[]);d(this,"_getTooltips",AD(({modeConfig:I,dist:B})=>{let Q=[],{formatTooltip:C}=I||{},E;return B&&(C?E=C(B):E=`Distance: ${parseFloat(B).toFixed(2)} kilometers`,Q=[{position:this.position,text:E}]),Q}))}handleClick(I,B){let{picks:Q}=I,C=OI(Q),E=!1;C||(this.addClickSequence(I),E=!0);let o=this.getClickSequence();if(C||this.calculateInfoDraw(o),o.length>1&&C&&Array.isArray(C.properties.positionIndexes)&&C.properties.positionIndexes[0]===o.length-1){this.dist=0;let e={type:"LineString",coordinates:[...o]};this.resetClickSequence();let D=this.getAddFeatureAction(e,B.data);D&&B.onEdit(D)}else E&&B.onEdit({updatedData:B.data,editType:"addTentativePosition",editContext:{position:I.mapCoords}})}handleKeyUp(I,B){let{key:Q}=I;if(Q==="Enter"){let C=this.getClickSequence();if(C.length>1){let E={type:"LineString",coordinates:[...C]};this.resetClickSequence();let o=this.getAddFeatureAction(E,B.data);o&&B.onEdit(o)}}else Q==="Escape"&&(this.resetClickSequence(),B.onEdit({updatedData:B.data,editType:"cancelFeature",editContext:{}}))}getGuides(I){let{lastPointerMoveEvent:B}=I,Q=this.getClickSequence(),C=B?[B.mapCoords]:[],E={type:"FeatureCollection",features:[]},o;Q.length>0&&(o={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...Q,...C]}}),o&&E.features.push(o);let e=Q.map((D,r)=>({type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[r]},geometry:{type:"Point",coordinates:D}}));return E.features.push(...e),E}handlePointerMove(I,B){B.onUpdateCursor("cell")}getTooltips(I){return this._getTooltips({modeConfig:I.modeConfig,dist:this.dist})}calculateInfoDraw(I){I.length>1&&(this.position=I[I.length-1],this.dist+=ng(I[I.length-2],I[I.length-1]))}};var mE=class extends Tg{createTentativeFeature(A){let{lastPointerMoveEvent:I}=A,B=this.getClickSequence(),Q=I?[I.mapCoords]:[],C;return B.length===1||B.length===2?C={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[...B,...Q]}}:B.length>2&&(C={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Polygon",coordinates:[[...B,...Q,B[0]]]}}),C}getGuides(A){let I=this.getClickSequence(),B={type:"FeatureCollection",features:[]},Q=this.createTentativeFeature(A);Q&&B.features.push(Q);let C=I.map((E,o)=>({type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[o]},geometry:{type:"Point",coordinates:E}}));return B.features.push(...C),B}handleClick(A,I){let{picks:B}=A,Q=OI(B),C=this.getClickSequence(),E=!1;if(C.length>2&&I.modeConfig&&I.modeConfig.preventOverlappingLines){let e=iQ([C[C.length-1],A.mapCoords]),D=iQ([...C.slice(0,C.length-1)]);$a(e,D).features.length>0&&(E=!0)}let o=!1;if(!Q&&!E&&(this.addClickSequence(A),o=!0),C.length>2&&Q&&Array.isArray(Q.properties.positionIndexes)&&(Q.properties.positionIndexes[0]===0||Q.properties.positionIndexes[0]===C.length-1)){let e={type:"Polygon",coordinates:[[...C,C[0]]]};this.resetClickSequence();let D=this.getAddFeatureOrBooleanPolygonAction(e,I);D&&I.onEdit(D)}else o&&I.onEdit({updatedData:I.data,editType:"addTentativePosition",editContext:{position:A.mapCoords}})}handleKeyUp(A,I){if(A.key==="Enter"){let B=this.getClickSequence();if(B.length>2){let Q={type:"Polygon",coordinates:[[...B,B[0]]]};this.resetClickSequence();let C=this.getAddFeatureOrBooleanPolygonAction(Q,I);C&&I.onEdit(C)}}else A.key==="Escape"&&(this.resetClickSequence(),I.onEdit({updatedData:I.data,editType:"cancelFeature",editContext:{}}))}handlePointerMove(A,I){I.onUpdateCursor("cell"),super.handlePointerMove(A,I)}};var $Q=class extends Tg{handleClick(A,I){I.modeConfig&&I.modeConfig.dragToDraw||(this.addClickSequence(A),this.checkAndFinishPolygon(I))}handleStartDragging(A,I){!I.modeConfig||!I.modeConfig.dragToDraw||(this.addClickSequence(A),A.cancelPan())}handleStopDragging(A,I){!I.modeConfig||!I.modeConfig.dragToDraw||(this.addClickSequence(A),this.checkAndFinishPolygon(I))}checkAndFinishPolygon(A){let I=this.getClickSequence(),B=this.getTentativeGuide(A);if(I.length>1&&B&&B.geometry.type==="Polygon"){let Q={type:"Feature",properties:{shape:B.properties.shape},geometry:{type:"Polygon",coordinates:B.geometry.coordinates}},C=this.getAddFeatureOrBooleanPolygonAction(Q,A);this.resetClickSequence(),C&&A.onEdit(C)}}getGuides(A){let{lastPointerMoveEvent:I,modeConfig:B}=A,Q=this.getClickSequence(),C={type:"FeatureCollection",features:[]};if(Q.length===0||!I)return C;let E=Q[0],o=I.mapCoords,e=this.getTwoClickPolygon(E,o,B);return e&&C.features.push({type:"Feature",properties:{shape:e.properties&&e.properties.shape,guideType:"tentative"},geometry:e.geometry}),C}getTwoClickPolygon(A,I,B){return null}handlePointerMove(A,I){I.onUpdateCursor("cell"),super.handlePointerMove(A,I)}createTentativeFeature(A){let{lastPointerMoveEvent:I}=A,B=this.getClickSequence(),Q=I?[I.mapCoords]:[],C;return B.length===1&&(C=this.getTwoClickPolygon(B[0],Q[0],A.modeConfig)),C}};var Fs=class extends $Q{getTwoClickPolygon(A,I,B){let Q=jQ([A[0],A[1],I[0],I[1]]);return Q.properties=Q.properties||{},Q.properties.shape="Rectangle",Q}};var xC=63710088e-1,ZEg={centimeters:xC*100,centimetres:xC*100,degrees:xC/111325,feet:xC*3.28084,inches:xC*39.37,kilometers:xC/1e3,kilometres:xC/1e3,meters:xC,metres:xC,miles:xC/1609.344,millimeters:xC*1e3,millimetres:xC*1e3,nauticalmiles:xC/1852,radians:1,yards:xC*1.0936},PEg={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/xC,yards:1.0936133};function xDA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function kS(g,A,I){if(I===void 0&&(I={}),!g)throw new Error("coordinates is required");if(!Array.isArray(g))throw new Error("coordinates must be an Array");if(g.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!NS(g[0])||!NS(g[1]))throw new Error("coordinates must contain numbers");var B={type:"Point",coordinates:g};return xDA(B,A,I)}function NS(g){return!isNaN(g)&&g!==null&&!Array.isArray(g)}function JP(g){return g.type==="Feature"?g.geometry:g}function Y0(g,A,I){I===void 0&&(I={});for(var B=JP(g),Q=B.coordinates,C=0,E=0;E<Q.length&&!(A>=C&&E===Q.length-1);E++)if(C>=A){var o=A-C;if(o){var e=yI(Q[E],Q[E-1])-180,D=tQ(Q[E],o,e,I);return D}else return kS(Q[E])}else C+=ng(Q[E],Q[E+1],I);return kS(Q[Q.length-1])}var K0=class extends $Q{getTwoClickPolygon(A,I,B){let Q=[I[0],A[1]],C=[A[0],I[1]],E=ng(Hg(Q),Hg(A)),o=ng(Hg(C),Hg(A)),e=E<=o?E:o,D=E<=o?Q:C,r=iQ([D,I]),G=Y0(r,e).geometry.coordinates,w=jQ([A[0],A[1],G[0],G[1]]);return w.properties=w.properties||{},w.properties.shape="Square",w}};var p0=class extends $Q{getTwoClickPolygon(A,I,B){let Q=A[0]>I[0]?A[0]+Math.abs(A[0]-I[0]):A[0]-Math.abs(A[0]-I[0]),C=A[1]>I[1]?A[1]+Math.abs(A[1]-I[1]):A[1]-Math.abs(A[1]-I[1]),E=jQ([Q,C,I[0],I[1]]);return E.properties=E.properties||{},E.properties.shape="Rectangle",E}};var q0=class extends $Q{getTwoClickPolygon(A,I,B){let Q=[I[0],A[1]],C=[A[0],I[1]],E=ng(Hg(Q),Hg(A)),o=ng(Hg(C),Hg(A)),e=E<=o?E:o,D=E<=o?Q:C,r=iQ([D,I]),G=Y0(r,e).geometry.coordinates,w=A[0]>G[0]?A[0]+Math.abs(A[0]-G[0]):A[0]-Math.abs(A[0]-G[0]),h=A[1]>G[1]?A[1]+Math.abs(A[1]-G[1]):A[1]-Math.abs(A[1]-G[1]),y=jQ([w,h,G[0],G[1]]);return y.properties=y.properties||{},y.properties.shape="Square",y}};var bC=63710088e-1,cig={centimeters:bC*100,centimetres:bC*100,degrees:bC/111325,feet:bC*3.28084,inches:bC*39.37,kilometers:bC/1e3,kilometres:bC/1e3,meters:bC,metres:bC,miles:bC/1609.344,millimeters:bC*1e3,millimetres:bC*1e3,nauticalmiles:bC/1852,radians:1,yards:bC*1.0936},Gig={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/bC,yards:1.0936133};function bDA(g,A,I){I===void 0&&(I={});var B={type:"Feature"};return(I.id===0||I.id)&&(B.id=I.id),I.bbox&&(B.bbox=I.bbox),B.properties=A||{},B.geometry=g,B}function YP(g,A,I){I===void 0&&(I={});for(var B=0,Q=g;B<Q.length;B++){var C=Q[B];if(C.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var E=0;E<C[C.length-1].length;E++)if(C[C.length-1][E]!==C[0][E])throw new Error("First and last Position are not equivalent.")}var o={type:"Polygon",coordinates:g};return bDA(o,A,I)}function TDA(g,A,I){I===void 0&&(I={});for(var B=I.steps||64,Q=I.properties?I.properties:!Array.isArray(g)&&g.type==="Feature"&&g.properties?g.properties:{},C=[],E=0;E<B;E++)C.push(tQ(g,A,E*-360/B,I).geometry.coordinates);return C.push(C[0]),YP([C],Q)}var d0=TDA;var KP=6378137;function Xn(g){return A8(g,function(A,I){return A+WDA(I)},0)}function WDA(g){var A=0,I;switch(g.type){case"Polygon":return pP(g.coordinates);case"MultiPolygon":for(I=0;I<g.coordinates.length;I++)A+=pP(g.coordinates[I]);return A;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}function pP(g){var A=0;if(g&&g.length>0){A+=Math.abs(qP(g[0]));for(var I=1;I<g.length;I++)A-=Math.abs(qP(g[I]))}return A}function qP(g){var A,I,B,Q,C,E,o,e=0,D=g.length;if(D>2){for(o=0;o<D;o++)o===D-2?(Q=D-2,C=D-1,E=0):o===D-1?(Q=D-1,C=0,E=1):(Q=o,C=o+1,E=o+2),A=g[Q],I=g[C],B=g[E],e+=(yS(B[0])-yS(A[0]))*Math.sin(yS(I[1]));e=e*KP*KP/2}return e}function yS(g){return g*Math.PI/180}var U0=class extends $Q{constructor(){super(...arguments);d(this,"radius",null);d(this,"position",null);d(this,"areaCircle",null);d(this,"_getTooltips",AD(({modeConfig:I,radius:B,areaCircle:Q})=>{let C=[],{formatTooltip:E}=I||{},o;return B&&Q&&(E?o=E(B):o=`Radius: ${parseFloat(B).toFixed(2)} kilometers
1753
1753
 
1754
1754
  Area: ${parseFloat(Q).toFixed(2)}`,C=[{position:this.position,text:o}]),C}))}getTwoClickPolygon(I,B,Q){let{steps:C=64}=Q||{},E={steps:C};this.position=B,C<4&&(console.warn("Minimum steps to draw a circle is 4 "),E.steps=4),this.radius=Math.max(ng(I,B),.001);let o=d0(I,this.radius,E);return o.properties=o.properties||{},o.properties.shape="Circle",this.areaCircle=Xn(o),o}getTooltips(I){return this._getTooltips({modeConfig:I?.modeConfig,radius:this.radius,areaCircle:this.areaCircle})}};var S0=class extends $Q{constructor(){super(...arguments);d(this,"radius",null);d(this,"position",null);d(this,"areaCircle",null);d(this,"diameter",null);d(this,"_getTooltips",AD(({modeConfig:I,radius:B,areaCircle:Q,diameter:C})=>{let E=[],{formatTooltip:o}=I||{},e;return B&&Q&&(o?e=o(B):e=`Radius: ${parseFloat(B).toFixed(2)} kilometers
1755
1755