bbl-mapbox-react 0.0.24 → 0.0.26

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/dist/index.cjs CHANGED
@@ -54,7 +54,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
54
54
  z-index: 9999;
55
55
  transform: translate(-50%, -50%);
56
56
  opacity: 0.8;
57
- `;let i=document.createElement(`img`);i.src=e.icon,i.style.width=`${r}px`,i.style.height=`${e.size||e.height||r}px`,i.style.objectFit=`contain`,n.appendChild(i),document.body.appendChild(n),ot.current=n;let a=e=>{ot.current&&(ot.current.style.left=`${e.clientX}px`,ot.current.style.top=`${e.clientY}px`)};document.addEventListener(`mousemove`,a),n.dataset.cleanup=`true`,n._cleanup=()=>{document.removeEventListener(`mousemove`,a)}}else t&&(t.getCanvas().style.cursor=``)},[]),$=(0,c.useCallback)(()=>{if(ot.current){let e=ot.current._cleanup;e&&e(),ot.current.remove(),ot.current=null}let e=z.current;e&&(e.getCanvas().style.cursor=``)},[]),Tt=(0,c.useCallback)((e,t,n)=>{if(!e.getSource(t)){if(!e.getStyle().glyphs){let t=e.style,n=`/gis-fonts/{fontstack}/{range}.pbf`;t.glyphs=n,t.stylesheet&&(t.stylesheet.glyphs=n)}e.addSource(t,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:n,type:`symbol`,source:t,filter:[`==`,`$type`,`Point`],layout:{"text-field":[`get`,`label`],"text-size":12,"text-font":[`Open Sans Bold`,`Arial Unicode MS Bold`],"text-allow-overlap":!0,"text-rotation-alignment":`map`,"text-offset":[0,-.8]},paint:{"text-color":`#ffffff`,"text-halo-color":`rgba(0, 0, 0, 0.8)`,"text-halo-width":1}})}},[]),Et=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`rect-preview-source`)||(e.addSource(`rect-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`rect-preview-fill`,type:`fill`,source:`rect-preview-source`,paint:{"fill-color":`#3388ff`,"fill-opacity":.1}}),e.addLayer({id:`rect-preview-line`,type:`line`,source:`rect-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),Tt(e,`rect-preview-measure-source`,`rect-preview-measure-label`)))},[Tt]),Dt=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`rect-preview-source`);if(!r)return;let[i,a]=e,[o,s]=t,c=[[Math.min(i,o),Math.max(a,s)],[Math.max(i,o),Math.max(a,s)],[Math.max(i,o),Math.min(a,s)],[Math.min(i,o),Math.min(a,s)],[Math.min(i,o),Math.max(a,s)]];r.setData({type:`Feature`,geometry:{type:`Polygon`,coordinates:[c]},properties:{}});let l=Je.current,u=l?.strokeColor??`#3388ff`,d=l?.strokeWidth??2,f=l?.fillColor??`#3388ff`,p=l?.fillOpacity??.1;n.getLayer(`rect-preview-line`)&&(n.setPaintProperty(`rect-preview-line`,`line-color`,u),n.setPaintProperty(`rect-preview-line`,`line-width`,d)),n.getLayer(`rect-preview-fill`)&&(n.setPaintProperty(`rect-preview-fill`,`fill-color`,f),n.setPaintProperty(`rect-preview-fill`,`fill-opacity`,p));let m=n.getSource(`rect-preview-measure-source`);if(m){let e=On.current,t=[],n=c[0],r=c[1],i=c[2];if(e?.showArea){let e=[(n[0]+i[0])/2,(n[1]+i[1])/2],a=O(n,r),o=O(r,i);t.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:A(a*o)}})}if(e?.showLength){let e=[(n[0]+r[0])/2,(n[1]+r[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:j(O(n,r))}});let a=[(r[0]+i[0])/2,(r[1]+i[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:a},properties:{label:j(O(r,i))}})}m.setData({type:`FeatureCollection`,features:t})}},[]),Ot=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`rect-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`rect-preview-measure-source`);n&&n.setData({type:`FeatureCollection`,features:[]})},[]),kt=(0,c.useCallback)(()=>{qe(null),Ot()},[Ot]),At=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`circle-preview-source`)||(e.addSource(`circle-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`circle-preview-fill`,type:`fill`,source:`circle-preview-source`,paint:{"fill-color":`#3388ff`,"fill-opacity":.1}}),e.addLayer({id:`circle-preview-line`,type:`line`,source:`circle-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),Tt(e,`circle-preview-measure-source`,`circle-preview-measure-label`),e.getSource(`circle-preview-radius-source`)||(e.addSource(`circle-preview-radius-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`circle-preview-radius-line`,type:`line`,source:`circle-preview-radius-source`,paint:{"line-color":`#ffffff`,"line-width":1,"line-opacity":1,"line-dasharray":[4,4]}}))))},[Tt]),jt=(0,c.useCallback)((e,t,n=64)=>{let[r,i]=e,a=[],o=t/6371e3,s=i*Math.PI/180;for(let e=0;e<=n;e++){let t=e/n*2*Math.PI,c=o*Math.cos(t),l=o*Math.sin(t)/Math.cos(s),u=i+c*180/Math.PI,d=r+l*180/Math.PI;a.push([d,u])}return a},[]),Mt=(0,c.useCallback)((e,t)=>{let[n,r]=e,[i,a]=t,o=(a-r)*Math.PI/180,s=(i-n)*Math.PI/180,c=Math.sin(o/2)*Math.sin(o/2)+Math.cos(r*Math.PI/180)*Math.cos(a*Math.PI/180)*Math.sin(s/2)*Math.sin(s/2);return 6371e3*(2*Math.atan2(Math.sqrt(c),Math.sqrt(1-c)))},[]),Nt=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`circle-preview-source`);if(!r)return;let i=Mt(e,t),a=jt(e,i);r.setData({type:`Feature`,geometry:{type:`Polygon`,coordinates:[a]},properties:{}});let o=J.current,s=o?.strokeColor??`#3388ff`,c=o?.strokeWidth??2,l=o?.fillColor??`#3388ff`,u=o?.fillOpacity??.1;n.getLayer(`circle-preview-line`)&&(n.setPaintProperty(`circle-preview-line`,`line-color`,s),n.setPaintProperty(`circle-preview-line`,`line-width`,c)),n.getLayer(`circle-preview-fill`)&&(n.setPaintProperty(`circle-preview-fill`,`fill-color`,l),n.setPaintProperty(`circle-preview-fill`,`fill-opacity`,u));let d=On.current,f=[],p=[];if(d?.showArea){let t=Math.PI*i*i;f.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:A(t)}})}if(d?.showRadius){let t=J.current?.radiusAngle??90,n=D(e,i,t),r=[(e[0]+n[0])/2,(e[1]+n[1])/2];p.push({type:`Feature`,geometry:{type:`LineString`,coordinates:[e,n]},properties:{}}),f.push({type:`Feature`,geometry:{type:`Point`,coordinates:r},properties:{label:j(i)}})}let m=n.getSource(`circle-preview-measure-source`);m&&m.setData({type:`FeatureCollection`,features:f});let h=n.getSource(`circle-preview-radius-source`);h&&h.setData({type:`FeatureCollection`,features:p})},[Mt,jt]),Pt=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`circle-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`circle-preview-measure-source`);n&&n.setData({type:`FeatureCollection`,features:[]});let r=e.getSource(`circle-preview-radius-source`);r&&r.setData({type:`FeatureCollection`,features:[]})},[]),Ft=(0,c.useCallback)(()=>{Y.current=null,Pt()},[Pt]),It=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`polygon-preview-source`)||(e.addSource(`polygon-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`polygon-preview-fill`,type:`fill`,source:`polygon-preview-source`,paint:{"fill-color":`#3388ff`,"fill-opacity":.1}}),e.addLayer({id:`polygon-preview-line`,type:`line`,source:`polygon-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),e.addSource(`polygon-vertices-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`polygon-vertices`,type:`circle`,source:`polygon-vertices-source`,paint:{"circle-radius":5,"circle-color":`#3388ff`,"circle-stroke-color":`#ffffff`,"circle-stroke-width":2}}),Tt(e,`polygon-preview-measure-source`,`polygon-preview-measure-label`)))},[Tt]),Lt=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`polygon-preview-source`),i=n.getSource(`polygon-vertices-source`);if(!r||!i)return;let a=[...e,t];if(a.length>=3){let e=[...a,a[0]];r.setData({type:`Feature`,geometry:{type:`Polygon`,coordinates:[e]},properties:{}})}else a.length===2?r.setData({type:`Feature`,geometry:{type:`LineString`,coordinates:a},properties:{}}):r.setData({type:`FeatureCollection`,features:[]});i.setData({type:`FeatureCollection`,features:e.map(e=>({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{}}))});let o=X.current,s=o?.strokeColor??`#3388ff`,c=o?.strokeWidth??2,l=o?.fillColor??`#3388ff`,u=o?.fillOpacity??.1;n.getLayer(`polygon-preview-line`)&&(n.setPaintProperty(`polygon-preview-line`,`line-color`,s),n.setPaintProperty(`polygon-preview-line`,`line-width`,c)),n.getLayer(`polygon-preview-fill`)&&(n.setPaintProperty(`polygon-preview-fill`,`fill-color`,l),n.setPaintProperty(`polygon-preview-fill`,`fill-opacity`,u)),n.getLayer(`polygon-vertices`)&&n.setPaintProperty(`polygon-vertices`,`circle-color`,s);let d=n.getSource(`polygon-preview-measure-source`);if(d){let e=On.current,t=[];if(e?.showArea&&a.length>=3){let e=[...a,a[0]],n=ee(e),r=0,i=0;for(let e of a)r+=e[0],i+=e[1];r/=a.length,i/=a.length,t.push({type:`Feature`,geometry:{type:`Point`,coordinates:[r,i]},properties:{label:A(n)}})}if(e?.showLength&&a.length>=2){for(let e=0;e<a.length-1;e++){let n=a[e],r=a[e+1],i=[(n[0]+r[0])/2,(n[1]+r[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:i},properties:{label:j(O(n,r))}})}if(a.length>=3){let e=a[a.length-1],n=a[0],r=[(e[0]+n[0])/2,(e[1]+n[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:r},properties:{label:j(O(e,n))}})}}d.setData({type:`FeatureCollection`,features:t})}},[]),Rt=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`polygon-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`polygon-vertices-source`);n&&n.setData({type:`FeatureCollection`,features:[]});let r=e.getSource(`polygon-preview-measure-source`);r&&r.setData({type:`FeatureCollection`,features:[]})},[]),zt=(0,c.useCallback)(()=>{Z.current=[],Rt()},[Rt]),Bt=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`square-preview-source`)||(e.addSource(`square-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`square-preview-fill`,type:`fill`,source:`square-preview-source`,paint:{"fill-color":`#3388ff`,"fill-opacity":.1}}),e.addLayer({id:`square-preview-line`,type:`line`,source:`square-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),Tt(e,`square-preview-measure-source`,`square-preview-measure-label`)))},[Tt]),Vt=(0,c.useCallback)((e,t)=>{let[n,r]=e,i=t/2/6371e3,a=r*Math.PI/180,o=i*180/Math.PI,s=i*180/Math.PI/Math.cos(a);return[[n-s,r+o],[n+s,r+o],[n+s,r-o],[n-s,r-o],[n-s,r+o]]},[]),Ht=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`square-preview-source`);if(!r)return;let i=Mt(e,t)*2,a=Vt(e,i);r.setData({type:`Feature`,geometry:{type:`Polygon`,coordinates:[a]},properties:{}});let o=nt.current,s=o?.strokeColor??`#3388ff`,c=o?.strokeWidth??2,l=o?.fillColor??`#3388ff`,u=o?.fillOpacity??.1;n.getLayer(`square-preview-line`)&&(n.setPaintProperty(`square-preview-line`,`line-color`,s),n.setPaintProperty(`square-preview-line`,`line-width`,c)),n.getLayer(`square-preview-fill`)&&(n.setPaintProperty(`square-preview-fill`,`fill-color`,l),n.setPaintProperty(`square-preview-fill`,`fill-opacity`,u));let d=n.getSource(`square-preview-measure-source`);if(d){let t=On.current,n=[];if(t?.showArea&&n.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:A(i*i)}}),t?.showLength){let e=[(a[1][0]+a[2][0])/2,(a[1][1]+a[2][1])/2];n.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:j(i)}})}d.setData({type:`FeatureCollection`,features:n})}},[Mt,Vt]),Ut=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`square-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`square-preview-measure-source`);n&&n.setData({type:`FeatureCollection`,features:[]})},[]),Wt=(0,c.useCallback)(()=>{rt.current=null,Ut()},[Ut]),Gt=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`polyline-preview-source`)||(e.addSource(`polyline-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`polyline-preview-line`,type:`line`,source:`polyline-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),e.addSource(`polyline-vertices-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`polyline-vertices`,type:`circle`,source:`polyline-vertices-source`,paint:{"circle-radius":5,"circle-color":`#3388ff`,"circle-stroke-color":`#ffffff`,"circle-stroke-width":2}}),Tt(e,`polyline-preview-measure-source`,`polyline-preview-measure-label`)))},[Tt]),Kt=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`polyline-preview-source`),i=n.getSource(`polyline-vertices-source`);if(!r||!i)return;let a=[...e,t];a.length>=2?r.setData({type:`Feature`,geometry:{type:`LineString`,coordinates:a},properties:{}}):r.setData({type:`FeatureCollection`,features:[]}),i.setData({type:`FeatureCollection`,features:e.map(e=>({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{}}))});let o=it.current,s=o?.strokeColor??`#3388ff`,c=o?.strokeWidth??2;n.getLayer(`polyline-preview-line`)&&(n.setPaintProperty(`polyline-preview-line`,`line-color`,s),n.setPaintProperty(`polyline-preview-line`,`line-width`,c)),n.getLayer(`polyline-vertices`)&&n.setPaintProperty(`polyline-vertices`,`circle-color`,s);let l=n.getSource(`polyline-preview-measure-source`);if(l){let e=On.current,t=[];if(e?.showLength&&a.length>=2)for(let e=0;e<a.length-1;e++){let n=a[e],r=a[e+1],i=[(n[0]+r[0])/2,(n[1]+r[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:i},properties:{label:j(O(n,r))}})}l.setData({type:`FeatureCollection`,features:t})}},[]),qt=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`polyline-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`polyline-vertices-source`);n&&n.setData({type:`FeatureCollection`,features:[]});let r=e.getSource(`polyline-preview-measure-source`);r&&r.setData({type:`FeatureCollection`,features:[]})},[]),Jt=(0,c.useCallback)(()=>{at.current=[],qt()},[qt]),Yt=(0,c.useCallback)(e=>{W(e),wt(e),e?(G(`marker`),kt(),Ft(),zt(),Wt(),Jt()):G(null)},[wt,kt,Ft,zt,Wt,Jt]),Xt=(0,c.useCallback)(e=>{if(G(e),e===`rectangle`){W(null),$(),Ft(),zt(),Wt(),Jt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else if(e===`circle`){W(null),$(),kt(),zt(),Wt(),Jt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else if(e===`polygon`){W(null),$(),kt(),Ft(),Wt(),Jt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else if(e===`square`){W(null),$(),kt(),Ft(),zt(),Jt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else if(e===`polyline`){W(null),$(),kt(),Ft(),zt(),Wt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else e===`marker`?(kt(),Ft(),zt(),Wt(),Jt()):(W(null),$(),kt(),Ft(),zt(),Wt(),Jt())},[$,kt,Ft,zt,Wt,Jt]),Zt=(0,c.useCallback)(e=>{if(e!==`picker`){let e=f.value&&isFinite(f.value.lng)&&isFinite(f.value.lat),t=f.showMarker!==!1;(!e||!t)&&St(),Ue(null)}e!==`edit`&&(W(null),G(null),kt(),Jt(),$()),Ve(e)},[St,$,kt,Jt]),Qt=(0,c.useCallback)(()=>Be,[Be]),$t=(0,c.useCallback)(()=>He,[He]),en=(0,c.useCallback)(()=>{St(),Ue(null)},[St]);(0,c.useEffect)(()=>{if(!Re)return;let e=f.value;if(e&&isFinite(e.lng)&&isFinite(e.lat)){let t=[e.lng,e.lat];Ue(e),xt(t)}},[f.value,xt,Re]);let tn=e=>`mode`in e,nn=(0,c.useCallback)(e=>{if(Ve(`edit`),St(),Ue(null),q.current=!0,tn(e)){if(e.mode===`marker`)e.markerStyle?(Xe.current=e.markerStyle,Je.current=null,J.current=null,X.current=null,nt.current=null,it.current=null,W(null),G(`marker`),e.markerStyle.src&&e.markerStyle.width?wt({id:`custom`,name:e.markerStyle.name||`Marker`,icon:e.markerStyle.src,width:e.markerStyle.width}):$()):e.template&&(Xe.current=null,Je.current=null,J.current=null,X.current=null,nt.current=null,it.current=null,W(e.template),G(`marker`),wt(e.template));else if(e.mode===`rectangle`){Je.current=e.rectangleStyle||null,Xe.current=null,J.current=null,X.current=null,nt.current=null,it.current=null,W(null),G(`rectangle`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}else if(e.mode===`circle`){J.current=e.circleStyle||null,Je.current=null,Xe.current=null,X.current=null,nt.current=null,it.current=null,W(null),G(`circle`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}else if(e.mode===`polygon`){X.current=e.polygonStyle||null,Je.current=null,Xe.current=null,J.current=null,nt.current=null,it.current=null,W(null),G(`polygon`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}else if(e.mode===`square`){nt.current=e.squareStyle||null,Je.current=null,Xe.current=null,J.current=null,X.current=null,it.current=null,W(null),G(`square`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}else if(e.mode===`polyline`){it.current=e.polylineStyle||null,Je.current=null,Xe.current=null,J.current=null,X.current=null,nt.current=null,W(null),G(`polyline`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}}else W(e),G(`marker`),wt(e),Je.current=null,Xe.current=null,J.current=null,X.current=null,nt.current=null,it.current=null},[St,wt,$]);(0,c.useImperativeHandle)(t,()=>({startAnimation:dt,stopAnimation:ft,toggleAnimation:pt,getMap:()=>z.current,openPopup:e=>ht(e,`programmatic`),closePopup:gt,closeAllPopups:_t,isPopupOpen:vt,toggleUnitTrajectory:mt,flyTo:yt,flyToEntities:bt,getMode:Qt,setMode:Zt,getPickedLocation:$t,clearPickedLocation:en,startDrawing:nn,getRenderer:e=>B.current.get(e),setEditingEntities:e=>{for(let t of ut.current)e.map(String).includes(String(t))||B.current.get(t)?.setEditing?.(!1);for(let t of e)B.current.get(t)?.setEditing?.(!0);Q.current&&=(B.current.get(Q.current.entityId)?.cancelEditPreview?.(),null),lt(e)},getEditingEntities:()=>ut.current,startRoutePlanning:e=>{Se.current?.startPlanning(e)},getRoadHighlightControl:()=>we.current}),[dt,ft,pt,ht,gt,_t,vt,mt,yt,bt,Qt,Zt,$t,en,nn]);let rn=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=new Set(v.map(e=>e.id)),n=new Set(B.current.keys());for(let e of n)t.has(e)||(B.current.get(e)?.destroy(),B.current.delete(e));let r=new Set(y.map(String));for(let t of v){let n=S(t,b),i=B.current.get(n.id);if(i)if(n.type===`radar`&&i instanceof oe)i.update(n);else if(n.type===`image`&&i instanceof ce)i.update(n);else if(n.type===`marker`&&i instanceof le)i.update(n);else if(n.type===`unit`&&i instanceof ue)i.update(n);else if(n.type===`polygon`&&i instanceof de)i.update(n);else if(n.type===`circle`)if(n.fillType===`radial-gradient`)if(i instanceof ge)i.update(n);else{i.destroy();let t=new ge(e,n,C,w,T,E);B.current.set(n.id,t),t.setSelected(r.has(String(n.id)))}else if(i instanceof me)i.update(n);else{i.destroy();let t=new me(e,n,C,w,T,E);B.current.set(n.id,t),t.setSelected(r.has(String(n.id)))}else (n.type===`square`&&i instanceof ve||n.type===`rectangle`&&i instanceof be||n.type===`polyline`&&i instanceof fe)&&i.update(n);else{let t=null;n.type===`radar`?t=new oe(e,n,C,w):n.type===`image`?t=new ce(e,n,C,w):n.type===`marker`?t=new le(e,n,C,w):n.type===`unit`?t=new ue(e,n,C,w):n.type===`polygon`?t=new de(e,n,C,w,T,k):n.type===`circle`?t=n.fillType===`radial-gradient`?new ge(e,n,C,w,T,E):new me(e,n,C,w,T,E):n.type===`square`?t=new ve(e,n,C,w,T,k):n.type===`rectangle`?t=new be(e,n,C,w,T,k):n.type===`polyline`&&(t=new fe(e,n,C,w,k)),t&&(B.current.set(n.id,t),t.setSelected(r.has(String(n.id))),ut.current.map(String).includes(String(n.id))&&t.setEditing?.(!0))}}for(let e of ut.current){let t=B.current.get(e);t&&t.setEditing?.(!0)}},[v,y,b,C,w,T,E,k]),an=(0,c.useCallback)(()=>{for(let e of B.current.values())e.destroy();B.current.clear()},[]),on=(0,c.useCallback)(e=>{let t=e.getStyle();if(!t?.layers)return;let n=[`polygon-`,`polyline-`,`circle-`,`square-`,`rectangle-`,`radar-`,`image-`,`unit-`,`marker-`];for(let e of t.layers)if(n.some(t=>e.id.startsWith(t)))return e.id},[]),sn=(0,c.useCallback)(e=>{let t=_,n={"raster-opacity":e.opacity??1},r=e.brightness??t?.brightness,i=e.saturation??t?.saturation,a=e.contrast??t?.contrast,o=e.hueRotate??t?.hueRotate;return r!==void 0&&(n[`raster-brightness-min`]=0,n[`raster-brightness-max`]=r),i!==void 0&&(n[`raster-saturation`]=i),a!==void 0&&(n[`raster-contrast`]=a),o!==void 0&&(n[`raster-hue-rotate`]=o),n},[_]),cn=(0,c.useCallback)((e,t)=>{let n=`base-layer-source-${t.id}`,r=`base-layer-${t.id}`,i={type:`raster`,tiles:[t.url],tileSize:t.tileSize??256,minzoom:t.minzoom??0,maxzoom:t.maxzoom??22,scheme:t.scheme??`xyz`};t.bounds&&(i.bounds=t.bounds),t.attribution&&(i.attribution=t.attribution),e.addSource(n,i);let a=on(e);e.addLayer({id:r,type:`raster`,source:n,paint:sn(t),layout:{visibility:t.visible===!1?`none`:`visible`}},a)},[on,sn]),ln=(0,c.useCallback)(async(e,t)=>{try{let n=await(await fetch(t.url)).json(),r=`base-layer-source-${t.id}`,i=`base-layer-${t.id}`;if(!De.current.has(t.id))return;let a=n.format===`pbf`||n.vector_layers,o=on(e);if(a){let t={type:`vector`,tiles:n.tiles,minzoom:n.minzoom??0,maxzoom:n.maxzoom??22};n.bounds&&(t.bounds=n.bounds),n.attribution&&(t.attribution=n.attribution),e.addSource(r,t)}else e.addSource(r,{type:`raster`,tiles:n.tiles,tileSize:t.tileSize??n.tileSize??256,minzoom:n.minzoom??0,maxzoom:n.maxzoom??22,bounds:n.bounds,attribution:n.attribution}),e.addLayer({id:i,type:`raster`,source:r,paint:sn(t),layout:{visibility:t.visible===!1?`none`:`visible`}},o)}catch(e){console.error(`Failed to load TileJSON from ${t.url}:`,e)}},[on,sn]),un=(0,c.useCallback)(async(e,t)=>{try{let n=await(await fetch(t.url)).json();if(!De.current.has(t.id))return;if(n.sources)for(let[r,i]of Object.entries(n.sources)){let n=`base-layer-source-${t.id}-${r}`;e.getSource(n)||e.addSource(n,i)}let r=on(e);if(n.layers)for(let i of n.layers){let n=`base-layer-${t.id}-${i.id}`;if(e.getLayer(n))continue;let a={...i,id:n,source:i.source?`base-layer-source-${t.id}-${i.source}`:void 0};i.type===`raster`&&(a.paint={...a.paint,...sn(t)}),t.visible===!1&&(a.layout={...a.layout,visibility:`none`}),e.addLayer(a,r)}if(n.glyphs&&!e.getStyle().glyphs){let t=e.style;t.glyphs=n.glyphs,t.stylesheet&&(t.stylesheet.glyphs=n.glyphs)}}catch(e){console.error(`Failed to load Style JSON from ${t.url}:`,e)}},[on,sn]),dn=(0,c.useCallback)((e,t)=>{let n=e.getStyle();if(!n)return;let r=`base-layer-${t}`,i=n.layers?.filter(e=>e.id.startsWith(r))??[];for(let t of i)e.getLayer(t.id)&&e.removeLayer(t.id);let a=`base-layer-source-${t}`,o=n.sources??{};for(let t of Object.keys(o))t.startsWith(a)&&e.getSource(t)&&e.removeSource(t)},[]),fn=(0,c.useCallback)(e=>{let t=z.current;if(!t)return;let n=new Set(e.map(e=>e.id)),r=De.current;for(let e of r)n.has(e)||(dn(t,e),r.delete(e));for(let n of e)if(r.has(n.id)){let e=`base-layer-${n.id}`;if(t.getLayer(e)){let r=sn(n);for(let[n,i]of Object.entries(r))t.setPaintProperty(e,n,i);t.setLayoutProperty(e,`visibility`,n.visible===!1?`none`:`visible`)}}else switch(r.add(n.id),n.type){case`raster`:cn(t,n);break;case`tilejson`:ln(t,n);break;case`style`:un(t,n);break;default:{let e=n;e.url&&cn(t,{...e,type:`raster`})}}},[cn,ln,un,dn,sn]),pn=(0,c.useCallback)(e=>{let t=e;for(;t;){let e=t.getAttribute?.(`data-entity-id`);if(e)return e;t=t.parentElement}return null},[]),mn=(0,c.useCallback)(e=>{let t=[e.lngLat.lng,e.lngLat.lat],n={x:e.point.x,y:e.point.y},r=Sn.current;if(r===`picker`){let e={lng:t[0],lat:t[1]};Ue(e),xt(t),Cn.current?.(e);return}if(st.current)return;if(r===`edit`){let e=Tn.current;if(e===`rectangle`){let e=En.current;if(!e)qe(t);else{let n=Je.current,r=S({...n,id:n?.id??Ct(),type:`rectangle`,bounds:[e,t]},b);Ot();let i=z.current;if(i&&!B.current.has(r.id)){let e=new be(i,r,C,w,T,k);B.current.set(r.id,e)}Dn.current.onRectangleAdd?.(r),qe(null),Je.current=null,q.current&&(q.current=!1,G(null),i&&(i.getCanvas().style.cursor=``))}return}if(e===`circle`){let e=Y.current;if(!e)Y.current={center:t};else{let n=Mt(e.center,t),r=J.current,i=S({...r,id:r?.id??Ct(),type:`circle`,center:e.center,radius:n},b);Pt();let a=z.current;if(a&&!B.current.has(i.id)){let e=new me(a,i,C,w,T,E);B.current.set(i.id,e)}Dn.current.onCircleAdd?.(i),Y.current=null,J.current=null,q.current&&(q.current=!1,G(null),a&&(a.getCanvas().style.cursor=``))}return}if(e===`polygon`){let e=Z.current;if(e.length>=3){let n=e[0];if(Mt(n,t)<20){let t=X.current,n=S({...t,id:t?.id??Ct(),type:`polygon`,coordinates:[...e]},b);Rt();let r=z.current;if(r&&!B.current.has(n.id)){let e=new de(r,n,C,w,T,k);B.current.set(n.id,e)}Dn.current.onPolygonAdd?.(n),Z.current=[],X.current=null,q.current&&(q.current=!1,G(null),r&&(r.getCanvas().style.cursor=``));return}}Z.current=[...e,t];return}if(e===`square`){let e=rt.current;if(!e)rt.current={center:t};else{let n=Mt(e.center,t)*2,r=nt.current,i=S({...r,id:r?.id??Ct(),type:`square`,center:e.center,length:n},b);Ut();let a=z.current;if(a&&!B.current.has(i.id)){let e=new ve(a,i,C,w,T,k);B.current.set(i.id,e)}Dn.current.onSquareAdd?.(i),rt.current=null,nt.current=null,q.current&&(q.current=!1,G(null),a&&(a.getCanvas().style.cursor=``))}return}if(e===`polyline`){at.current=[...at.current,t];return}let n=Xe.current;if(n&&n.src&&n.width){let e={...n,id:n.id??Ct(),type:`marker`,center:t,src:n.src,width:n.width};Dn.current.onMarkerAdd?.(e),W(null),G(null),$(),Xe.current=null,q.current=!1;return}let r=wn.current;if(r){let e={id:Ct(),type:`marker`,name:r.name,center:t,src:r.icon,width:r.size||r.width||32};r.customData!==void 0&&(e.customData=r.customData),Dn.current.onMarkerAdd?.(e),W(null),G(null),$(),q.current=!1;return}}if(ut.current.length>0){let e=z.current?.getZoom()??12;if(Q.current){let{entityId:e,activeHandle:n}=Q.current,r=B.current.get(e);if(r?.applyHandleMove){let e=r.applyHandleMove(n,t);Dn.current.onEntityEdit?.(e)}Q.current=null;return}for(let n of ut.current){let r=B.current.get(n);if(!r?.getEditHandleAt)continue;let i=r.getEditHandleAt(t,e);if(i){if(i.type===`midpoint`&&r.addVertex){let e=r.addVertex(i.index,i.position);Dn.current.onEntityEdit?.(e),Q.current={entityId:n,activeHandle:{type:`vertex`,index:i.index+1,position:i.position}}}else Q.current={entityId:n,activeHandle:i};return}}}let i=yn.current,a=bn.current,o=xn.current,s=pn(e.originalEvent.target);if(s){let e=i.find(e=>String(e.id)===s);if(e){if(a?.(e),e.popup){let t=e.popup.content??L?.(e);t&&et(e.popup,I,t).trigger===`click`&&o(s,`click`,n)}return}}for(let[t,r]of B.current){let s=r.getLabelLayerId();if(s&&z.current?.getLayer(s)&&z.current.queryRenderedFeatures(e.point,{layers:[s]}).length>0){let e=i.find(e=>e.id===t);if(e){if(a?.(e),e.popup){let r=e.popup.content??L?.(e);r&&et(e.popup,I,r).trigger===`click`&&o(t,`click`,n)}return}}}for(let[e,r]of B.current)if(r.isPointInEntity(t)){let t=i.find(t=>t.id===e);if(t){if(a?.(t),t.popup){let r=t.popup.content??L?.(t);r&&et(t.popup,I,r).trigger===`click`&&o(e,`click`,n)}return}}},[I,L,pn]),hn=(0,c.useCallback)(e=>{let t=[e.lngLat.lng,e.lngLat.lat];if(Q.current){let{entityId:e,activeHandle:n}=Q.current;B.current.get(e)?.updateEditPreview?.(n,t);return}let n=Tn.current,r=En.current;n===`rectangle`&&r&&Dt(r,t);let i=Y.current;n===`circle`&&i&&Nt(i.center,t);let a=Z.current;n===`polygon`&&a.length>0&&Lt(a,t);let o=rt.current;n===`square`&&o&&Ht(o.center,t);let s=at.current;n===`polyline`&&s.length>0&&Kt(s,t);let c=yn.current,l=xn.current;for(let[e,n]of B.current)if(n.isPointInEntity(t)){let t=c.find(t=>t.id===e);if(!t?.popup)continue;let n=t.popup.content??L?.(t);if(!n)continue;let r=et(t.popup,I,n);if(r.trigger===`hover`){Me.current&&clearTimeout(Me.current),Me.current=window.setTimeout(()=>{l(e,`hover`)},r.hoverDelay);return}}if(Me.current&&=(clearTimeout(Me.current),null),H?.openedBy===`hover`){let e=B.current.get(H.entityId);e&&!e.isPointInEntity(t)&&gt(H.entityId)}},[I,L,H,gt,Dt,Nt,Lt,Ht,Kt]),gn=(0,c.useCallback)(e=>{if(e.preventDefault(),st.current)return;if(ut.current.length>0){let t=[e.lngLat.lng,e.lngLat.lat];if(Q.current){B.current.get(Q.current.entityId)?.cancelEditPreview?.(),Q.current=null;return}let n=z.current?.getZoom()??12;for(let e of ut.current){let r=B.current.get(e);if(!r?.getEditHandleAt||!r.deleteVertex)continue;let i=r.getEditHandleAt(t,n);if(i&&i.type===`vertex`){let e=r.deleteVertex(i.index);e&&Dn.current.onEntityEdit?.(e);return}}}if(Sn.current!==`edit`)return;if(wn.current){W(null),G(null),$();return}let t=Tn.current;if(t===`rectangle`){if(En.current)qe(null),Ot();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}if(t===`circle`){if(Y.current)Y.current=null,Pt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}if(t===`polygon`){let e=Z.current;if(e.length>=3){let t=X.current,n=S({...t,id:t?.id??Ct(),type:`polygon`,coordinates:[...e]},b);Rt();let r=z.current;if(r&&!B.current.has(n.id)){let e=new de(r,n,C,w,T,k);B.current.set(n.id,e)}Dn.current.onPolygonAdd?.(n),Z.current=[],X.current=null,q.current&&(q.current=!1,G(null),r&&(r.getCanvas().style.cursor=``))}else if(e.length>0)Z.current=[],Rt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}if(t===`square`){if(rt.current)rt.current=null,Ut();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}if(t===`polyline`){let e=at.current;if(e.length>=2){let t=it.current,n=S({...t,id:t?.id??Ct(),type:`polyline`,coordinates:[...e]},b);qt();let r=z.current;if(r&&!B.current.has(n.id)){let e=new fe(r,n,C,w,k);B.current.set(n.id,e)}Dn.current.onPolylineAdd?.(n),at.current=[],it.current=null,q.current&&(q.current=!1,G(null),r&&(r.getCanvas().style.cursor=``))}else if(e.length>0)at.current=[],qt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}let n=[e.lngLat.lng,e.lngLat.lat],r={x:e.point.x,y:e.point.y},i=yn.current,a=pn(e.originalEvent.target);if(a){let e=i.find(e=>String(e.id)===a);if(e){_n(e,r,n);return}}for(let[t,a]of B.current){let o=a.getLabelLayerId();if(o&&z.current?.getLayer(o)&&z.current.queryRenderedFeatures(e.point,{layers:[o]}).length>0){let e=i.find(e=>e.id===t);if(e){_n(e,r,n);return}}}for(let[e,t]of B.current)if(t.isPointInEntity(n)){let t=i.find(t=>t.id===e);if(t){_n(t,r,n);return}}},[pn,$,Ot,Pt,Rt,Ut,qt]),_n=(0,c.useCallback)((e,t,n)=>{let r=ye.current?.getBoundingClientRect(),i=r?{x:t.x+r.left,y:t.y+r.top}:t;Pe({position:i,lngLat:n,items:[{key:`delete`,label:`删除`,icon:(0,p.jsx)(`img`,{src:Ie,alt:`delete`,style:{width:`18px`,flexShrink:0}}),danger:!0,onClick:()=>{Dn.current.onEntityDelete?.(e)}}]})},[]),vn=(0,c.useCallback)(()=>{Pe(null)},[]);(0,c.useEffect)(()=>{let e=document.createElement(`div`);return e.id=`mapbox-popup-container-${Date.now()}`,e.style.cssText=`
57
+ `;let i=document.createElement(`img`);i.src=e.icon,i.style.width=`${r}px`,i.style.height=`${e.size||e.height||r}px`,i.style.objectFit=`contain`,n.appendChild(i),document.body.appendChild(n),ot.current=n;let a=e=>{ot.current&&(ot.current.style.left=`${e.clientX}px`,ot.current.style.top=`${e.clientY}px`)};document.addEventListener(`mousemove`,a),n.dataset.cleanup=`true`,n._cleanup=()=>{document.removeEventListener(`mousemove`,a)}}else t&&(t.getCanvas().style.cursor=``)},[]),$=(0,c.useCallback)(()=>{if(ot.current){let e=ot.current._cleanup;e&&e(),ot.current.remove(),ot.current=null}let e=z.current;e&&(e.getCanvas().style.cursor=``)},[]),Tt=(0,c.useCallback)((e,t,n)=>{if(!e.getSource(t)){if(!e.getStyle().glyphs){let t=e.style,n=`/gis-fonts/{fontstack}/{range}.pbf`;t.glyphs=n,t.stylesheet&&(t.stylesheet.glyphs=n)}e.addSource(t,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:n,type:`symbol`,source:t,filter:[`==`,`$type`,`Point`],layout:{"text-field":[`get`,`label`],"text-size":12,"text-font":[`Open Sans Bold`,`Arial Unicode MS Bold`],"text-allow-overlap":!0,"text-rotation-alignment":`map`,"text-offset":[0,-.8]},paint:{"text-color":`#ffffff`,"text-halo-color":`rgba(0, 0, 0, 0.8)`,"text-halo-width":1}})}},[]),Et=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`rect-preview-source`)||(e.addSource(`rect-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`rect-preview-fill`,type:`fill`,source:`rect-preview-source`,paint:{"fill-color":`#3388ff`,"fill-opacity":.1}}),e.addLayer({id:`rect-preview-line`,type:`line`,source:`rect-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),Tt(e,`rect-preview-measure-source`,`rect-preview-measure-label`)))},[Tt]),Dt=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`rect-preview-source`);if(!r)return;let[i,a]=e,[o,s]=t,c=[[Math.min(i,o),Math.max(a,s)],[Math.max(i,o),Math.max(a,s)],[Math.max(i,o),Math.min(a,s)],[Math.min(i,o),Math.min(a,s)],[Math.min(i,o),Math.max(a,s)]];r.setData({type:`Feature`,geometry:{type:`Polygon`,coordinates:[c]},properties:{}});let l=Je.current,u=l?.strokeColor??`#3388ff`,d=l?.strokeWidth??2,f=l?.fillColor??`#3388ff`,p=l?.fillOpacity??.1;n.getLayer(`rect-preview-line`)&&(n.setPaintProperty(`rect-preview-line`,`line-color`,u),n.setPaintProperty(`rect-preview-line`,`line-width`,d)),n.getLayer(`rect-preview-fill`)&&(n.setPaintProperty(`rect-preview-fill`,`fill-color`,f),n.setPaintProperty(`rect-preview-fill`,`fill-opacity`,p));let m=n.getSource(`rect-preview-measure-source`);if(m){let e=Mn.current,t=[],n=c[0],r=c[1],i=c[2];if(e?.showArea){let e=[(n[0]+i[0])/2,(n[1]+i[1])/2],a=O(n,r),o=O(r,i);t.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:A(a*o)}})}if(e?.showLength){let e=[(n[0]+r[0])/2,(n[1]+r[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:j(O(n,r))}});let a=[(r[0]+i[0])/2,(r[1]+i[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:a},properties:{label:j(O(r,i))}})}m.setData({type:`FeatureCollection`,features:t})}},[]),Ot=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`rect-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`rect-preview-measure-source`);n&&n.setData({type:`FeatureCollection`,features:[]})},[]),kt=(0,c.useCallback)(()=>{qe(null),Ot()},[Ot]),At=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`circle-preview-source`)||(e.addSource(`circle-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`circle-preview-fill`,type:`fill`,source:`circle-preview-source`,paint:{"fill-color":`#3388ff`,"fill-opacity":.1}}),e.addLayer({id:`circle-preview-line`,type:`line`,source:`circle-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),Tt(e,`circle-preview-measure-source`,`circle-preview-measure-label`),e.getSource(`circle-preview-radius-source`)||(e.addSource(`circle-preview-radius-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`circle-preview-radius-line`,type:`line`,source:`circle-preview-radius-source`,paint:{"line-color":`#ffffff`,"line-width":1,"line-opacity":1,"line-dasharray":[4,4]}}))))},[Tt]),jt=(0,c.useCallback)((e,t,n=64)=>{let[r,i]=e,a=[],o=t/6371e3,s=i*Math.PI/180;for(let e=0;e<=n;e++){let t=e/n*2*Math.PI,c=o*Math.cos(t),l=o*Math.sin(t)/Math.cos(s),u=i+c*180/Math.PI,d=r+l*180/Math.PI;a.push([d,u])}return a},[]),Mt=(0,c.useCallback)((e,t)=>{let[n,r]=e,[i,a]=t,o=(a-r)*Math.PI/180,s=(i-n)*Math.PI/180,c=Math.sin(o/2)*Math.sin(o/2)+Math.cos(r*Math.PI/180)*Math.cos(a*Math.PI/180)*Math.sin(s/2)*Math.sin(s/2);return 6371e3*(2*Math.atan2(Math.sqrt(c),Math.sqrt(1-c)))},[]),Nt=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`circle-preview-source`);if(!r)return;let i=Mt(e,t),a=jt(e,i);r.setData({type:`Feature`,geometry:{type:`Polygon`,coordinates:[a]},properties:{}});let o=J.current,s=o?.strokeColor??`#3388ff`,c=o?.strokeWidth??2,l=o?.fillColor??`#3388ff`,u=o?.fillOpacity??.1;n.getLayer(`circle-preview-line`)&&(n.setPaintProperty(`circle-preview-line`,`line-color`,s),n.setPaintProperty(`circle-preview-line`,`line-width`,c)),n.getLayer(`circle-preview-fill`)&&(n.setPaintProperty(`circle-preview-fill`,`fill-color`,l),n.setPaintProperty(`circle-preview-fill`,`fill-opacity`,u));let d=Mn.current,f=[],p=[];if(d?.showArea){let t=Math.PI*i*i;f.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:A(t)}})}if(d?.showRadius){let t=J.current?.radiusAngle??90,n=D(e,i,t),r=[(e[0]+n[0])/2,(e[1]+n[1])/2];p.push({type:`Feature`,geometry:{type:`LineString`,coordinates:[e,n]},properties:{}}),f.push({type:`Feature`,geometry:{type:`Point`,coordinates:r},properties:{label:j(i)}})}let m=n.getSource(`circle-preview-measure-source`);m&&m.setData({type:`FeatureCollection`,features:f});let h=n.getSource(`circle-preview-radius-source`);h&&h.setData({type:`FeatureCollection`,features:p})},[Mt,jt]),Pt=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`circle-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`circle-preview-measure-source`);n&&n.setData({type:`FeatureCollection`,features:[]});let r=e.getSource(`circle-preview-radius-source`);r&&r.setData({type:`FeatureCollection`,features:[]})},[]),Ft=(0,c.useCallback)(()=>{Y.current=null,Pt()},[Pt]),It=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`polygon-preview-source`)||(e.addSource(`polygon-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`polygon-preview-fill`,type:`fill`,source:`polygon-preview-source`,paint:{"fill-color":`#3388ff`,"fill-opacity":.1}}),e.addLayer({id:`polygon-preview-line`,type:`line`,source:`polygon-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),e.addSource(`polygon-vertices-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`polygon-vertices`,type:`circle`,source:`polygon-vertices-source`,paint:{"circle-radius":5,"circle-color":`#3388ff`,"circle-stroke-color":`#ffffff`,"circle-stroke-width":2}}),Tt(e,`polygon-preview-measure-source`,`polygon-preview-measure-label`)))},[Tt]),Lt=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`polygon-preview-source`),i=n.getSource(`polygon-vertices-source`);if(!r||!i)return;let a=[...e,t];if(a.length>=3){let e=[...a,a[0]];r.setData({type:`Feature`,geometry:{type:`Polygon`,coordinates:[e]},properties:{}})}else a.length===2?r.setData({type:`Feature`,geometry:{type:`LineString`,coordinates:a},properties:{}}):r.setData({type:`FeatureCollection`,features:[]});i.setData({type:`FeatureCollection`,features:e.map(e=>({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{}}))});let o=X.current,s=o?.strokeColor??`#3388ff`,c=o?.strokeWidth??2,l=o?.fillColor??`#3388ff`,u=o?.fillOpacity??.1;n.getLayer(`polygon-preview-line`)&&(n.setPaintProperty(`polygon-preview-line`,`line-color`,s),n.setPaintProperty(`polygon-preview-line`,`line-width`,c)),n.getLayer(`polygon-preview-fill`)&&(n.setPaintProperty(`polygon-preview-fill`,`fill-color`,l),n.setPaintProperty(`polygon-preview-fill`,`fill-opacity`,u)),n.getLayer(`polygon-vertices`)&&n.setPaintProperty(`polygon-vertices`,`circle-color`,s);let d=n.getSource(`polygon-preview-measure-source`);if(d){let e=Mn.current,t=[];if(e?.showArea&&a.length>=3){let e=[...a,a[0]],n=ee(e),r=0,i=0;for(let e of a)r+=e[0],i+=e[1];r/=a.length,i/=a.length,t.push({type:`Feature`,geometry:{type:`Point`,coordinates:[r,i]},properties:{label:A(n)}})}if(e?.showLength&&a.length>=2){for(let e=0;e<a.length-1;e++){let n=a[e],r=a[e+1],i=[(n[0]+r[0])/2,(n[1]+r[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:i},properties:{label:j(O(n,r))}})}if(a.length>=3){let e=a[a.length-1],n=a[0],r=[(e[0]+n[0])/2,(e[1]+n[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:r},properties:{label:j(O(e,n))}})}}d.setData({type:`FeatureCollection`,features:t})}},[]),Rt=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`polygon-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`polygon-vertices-source`);n&&n.setData({type:`FeatureCollection`,features:[]});let r=e.getSource(`polygon-preview-measure-source`);r&&r.setData({type:`FeatureCollection`,features:[]})},[]),zt=(0,c.useCallback)(()=>{Z.current=[],Rt()},[Rt]),Bt=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`square-preview-source`)||(e.addSource(`square-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`square-preview-fill`,type:`fill`,source:`square-preview-source`,paint:{"fill-color":`#3388ff`,"fill-opacity":.1}}),e.addLayer({id:`square-preview-line`,type:`line`,source:`square-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),Tt(e,`square-preview-measure-source`,`square-preview-measure-label`)))},[Tt]),Vt=(0,c.useCallback)((e,t)=>{let[n,r]=e,i=t/2/6371e3,a=r*Math.PI/180,o=i*180/Math.PI,s=i*180/Math.PI/Math.cos(a);return[[n-s,r+o],[n+s,r+o],[n+s,r-o],[n-s,r-o],[n-s,r+o]]},[]),Ht=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`square-preview-source`);if(!r)return;let i=Mt(e,t)*2,a=Vt(e,i);r.setData({type:`Feature`,geometry:{type:`Polygon`,coordinates:[a]},properties:{}});let o=nt.current,s=o?.strokeColor??`#3388ff`,c=o?.strokeWidth??2,l=o?.fillColor??`#3388ff`,u=o?.fillOpacity??.1;n.getLayer(`square-preview-line`)&&(n.setPaintProperty(`square-preview-line`,`line-color`,s),n.setPaintProperty(`square-preview-line`,`line-width`,c)),n.getLayer(`square-preview-fill`)&&(n.setPaintProperty(`square-preview-fill`,`fill-color`,l),n.setPaintProperty(`square-preview-fill`,`fill-opacity`,u));let d=n.getSource(`square-preview-measure-source`);if(d){let t=Mn.current,n=[];if(t?.showArea&&n.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:A(i*i)}}),t?.showLength){let e=[(a[1][0]+a[2][0])/2,(a[1][1]+a[2][1])/2];n.push({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{label:j(i)}})}d.setData({type:`FeatureCollection`,features:n})}},[Mt,Vt]),Ut=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`square-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`square-preview-measure-source`);n&&n.setData({type:`FeatureCollection`,features:[]})},[]),Wt=(0,c.useCallback)(()=>{rt.current=null,Ut()},[Ut]),Gt=(0,c.useCallback)(()=>{let e=z.current;e&&(e.getSource(`polyline-preview-source`)||(e.addSource(`polyline-preview-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`polyline-preview-line`,type:`line`,source:`polyline-preview-source`,paint:{"line-color":`#3388ff`,"line-width":2,"line-dasharray":[4,4]}}),e.addSource(`polyline-vertices-source`,{type:`geojson`,data:{type:`FeatureCollection`,features:[]}}),e.addLayer({id:`polyline-vertices`,type:`circle`,source:`polyline-vertices-source`,paint:{"circle-radius":5,"circle-color":`#3388ff`,"circle-stroke-color":`#ffffff`,"circle-stroke-width":2}}),Tt(e,`polyline-preview-measure-source`,`polyline-preview-measure-label`)))},[Tt]),Kt=(0,c.useCallback)((e,t)=>{let n=z.current;if(!n)return;let r=n.getSource(`polyline-preview-source`),i=n.getSource(`polyline-vertices-source`);if(!r||!i)return;let a=[...e,t];a.length>=2?r.setData({type:`Feature`,geometry:{type:`LineString`,coordinates:a},properties:{}}):r.setData({type:`FeatureCollection`,features:[]}),i.setData({type:`FeatureCollection`,features:e.map(e=>({type:`Feature`,geometry:{type:`Point`,coordinates:e},properties:{}}))});let o=it.current,s=o?.strokeColor??`#3388ff`,c=o?.strokeWidth??2;n.getLayer(`polyline-preview-line`)&&(n.setPaintProperty(`polyline-preview-line`,`line-color`,s),n.setPaintProperty(`polyline-preview-line`,`line-width`,c)),n.getLayer(`polyline-vertices`)&&n.setPaintProperty(`polyline-vertices`,`circle-color`,s);let l=n.getSource(`polyline-preview-measure-source`);if(l){let e=Mn.current,t=[];if(e?.showLength&&a.length>=2)for(let e=0;e<a.length-1;e++){let n=a[e],r=a[e+1],i=[(n[0]+r[0])/2,(n[1]+r[1])/2];t.push({type:`Feature`,geometry:{type:`Point`,coordinates:i},properties:{label:j(O(n,r))}})}l.setData({type:`FeatureCollection`,features:t})}},[]),qt=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=e.getSource(`polyline-preview-source`);t&&t.setData({type:`FeatureCollection`,features:[]});let n=e.getSource(`polyline-vertices-source`);n&&n.setData({type:`FeatureCollection`,features:[]});let r=e.getSource(`polyline-preview-measure-source`);r&&r.setData({type:`FeatureCollection`,features:[]})},[]),Jt=(0,c.useCallback)(()=>{at.current=[],qt()},[qt]),Yt=(0,c.useCallback)(e=>{W(e),wt(e),e?(G(`marker`),kt(),Ft(),zt(),Wt(),Jt()):G(null)},[wt,kt,Ft,zt,Wt,Jt]),Xt=(0,c.useCallback)(e=>{if(G(e),e===`rectangle`){W(null),$(),Ft(),zt(),Wt(),Jt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else if(e===`circle`){W(null),$(),kt(),zt(),Wt(),Jt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else if(e===`polygon`){W(null),$(),kt(),Ft(),Wt(),Jt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else if(e===`square`){W(null),$(),kt(),Ft(),zt(),Jt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else if(e===`polyline`){W(null),$(),kt(),Ft(),zt(),Wt();let e=z.current;e&&(e.getCanvas().style.cursor=`crosshair`)}else e===`marker`?(kt(),Ft(),zt(),Wt(),Jt()):(W(null),$(),kt(),Ft(),zt(),Wt(),Jt())},[$,kt,Ft,zt,Wt,Jt]),Zt=(0,c.useCallback)(e=>{if(e!==`picker`){let e=f.value&&isFinite(f.value.lng)&&isFinite(f.value.lat),t=f.showMarker!==!1;(!e||!t)&&St(),Ue(null)}e!==`edit`&&(W(null),G(null),kt(),Jt(),$()),Ve(e)},[St,$,kt,Jt]),Qt=(0,c.useCallback)(()=>Be,[Be]),$t=(0,c.useCallback)(()=>He,[He]),en=(0,c.useCallback)(()=>{St(),Ue(null)},[St]),tn=(0,c.useRef)(null),nn=(0,c.useRef)(`display`),rn=(0,c.useRef)({}),an=(0,c.useCallback)((e={})=>(tn.current&&=(tn.current(null),null),new Promise(t=>{tn.current=t,nn.current=En.current,rn.current=e,Zt(`picker`)})),[Zt]);(0,c.useEffect)(()=>{if(!Re)return;let e=f.value;if(e&&isFinite(e.lng)&&isFinite(e.lat)){let t=[e.lng,e.lat];Ue(e),xt(t)}},[f.value,xt,Re]);let on=e=>`mode`in e,sn=(0,c.useCallback)(e=>{if(Ve(`edit`),St(),Ue(null),q.current=!0,on(e)){if(e.mode===`marker`)e.markerStyle?(Xe.current=e.markerStyle,Je.current=null,J.current=null,X.current=null,nt.current=null,it.current=null,W(null),G(`marker`),e.markerStyle.src&&e.markerStyle.width?wt({id:`custom`,name:e.markerStyle.name||`Marker`,icon:e.markerStyle.src,width:e.markerStyle.width}):$()):e.template&&(Xe.current=null,Je.current=null,J.current=null,X.current=null,nt.current=null,it.current=null,W(e.template),G(`marker`),wt(e.template));else if(e.mode===`rectangle`){Je.current=e.rectangleStyle||null,Xe.current=null,J.current=null,X.current=null,nt.current=null,it.current=null,W(null),G(`rectangle`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}else if(e.mode===`circle`){J.current=e.circleStyle||null,Je.current=null,Xe.current=null,X.current=null,nt.current=null,it.current=null,W(null),G(`circle`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}else if(e.mode===`polygon`){X.current=e.polygonStyle||null,Je.current=null,Xe.current=null,J.current=null,nt.current=null,it.current=null,W(null),G(`polygon`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}else if(e.mode===`square`){nt.current=e.squareStyle||null,Je.current=null,Xe.current=null,J.current=null,X.current=null,it.current=null,W(null),G(`square`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}else if(e.mode===`polyline`){it.current=e.polylineStyle||null,Je.current=null,Xe.current=null,J.current=null,X.current=null,nt.current=null,W(null),G(`polyline`),$();let t=z.current;t&&(t.getCanvas().style.cursor=`crosshair`)}}else W(e),G(`marker`),wt(e),Je.current=null,Xe.current=null,J.current=null,X.current=null,nt.current=null,it.current=null},[St,wt,$]);(0,c.useImperativeHandle)(t,()=>({startAnimation:dt,stopAnimation:ft,toggleAnimation:pt,getMap:()=>z.current,openPopup:e=>ht(e,`programmatic`),closePopup:gt,closeAllPopups:_t,isPopupOpen:vt,toggleUnitTrajectory:mt,flyTo:yt,flyToEntities:bt,getMode:Qt,setMode:Zt,getPickedLocation:$t,clearPickedLocation:en,startDrawing:sn,getRenderer:e=>B.current.get(e),setEditingEntities:e=>{for(let t of ut.current)e.map(String).includes(String(t))||B.current.get(t)?.setEditing?.(!1);for(let t of e)B.current.get(t)?.setEditing?.(!0);Q.current&&=(B.current.get(Q.current.entityId)?.cancelEditPreview?.(),null),lt(e)},getEditingEntities:()=>ut.current,startPicking:an,startRoutePlanning:e=>{Se.current?.startPlanning(e)},getRoadHighlightControl:()=>we.current}),[dt,ft,pt,ht,gt,_t,vt,mt,yt,bt,Qt,Zt,$t,en,sn,an]);let cn=(0,c.useCallback)(()=>{let e=z.current;if(!e)return;let t=new Set(v.map(e=>e.id)),n=new Set(B.current.keys());for(let e of n)t.has(e)||(B.current.get(e)?.destroy(),B.current.delete(e));let r=new Set(y.map(String));for(let t of v){let n=S(t,b),i=B.current.get(n.id);if(i)if(n.type===`radar`&&i instanceof oe)i.update(n);else if(n.type===`image`&&i instanceof ce)i.update(n);else if(n.type===`marker`&&i instanceof le)i.update(n);else if(n.type===`unit`&&i instanceof ue)i.update(n);else if(n.type===`polygon`&&i instanceof de)i.update(n);else if(n.type===`circle`)if(n.fillType===`radial-gradient`)if(i instanceof ge)i.update(n);else{i.destroy();let t=new ge(e,n,C,w,T,E);B.current.set(n.id,t),t.setSelected(r.has(String(n.id)))}else if(i instanceof me)i.update(n);else{i.destroy();let t=new me(e,n,C,w,T,E);B.current.set(n.id,t),t.setSelected(r.has(String(n.id)))}else (n.type===`square`&&i instanceof ve||n.type===`rectangle`&&i instanceof be||n.type===`polyline`&&i instanceof fe)&&i.update(n);else{let t=null;n.type===`radar`?t=new oe(e,n,C,w):n.type===`image`?t=new ce(e,n,C,w):n.type===`marker`?t=new le(e,n,C,w):n.type===`unit`?t=new ue(e,n,C,w):n.type===`polygon`?t=new de(e,n,C,w,T,k):n.type===`circle`?t=n.fillType===`radial-gradient`?new ge(e,n,C,w,T,E):new me(e,n,C,w,T,E):n.type===`square`?t=new ve(e,n,C,w,T,k):n.type===`rectangle`?t=new be(e,n,C,w,T,k):n.type===`polyline`&&(t=new fe(e,n,C,w,k)),t&&(B.current.set(n.id,t),t.setSelected(r.has(String(n.id))),ut.current.map(String).includes(String(n.id))&&t.setEditing?.(!0))}}for(let e of ut.current){let t=B.current.get(e);t&&t.setEditing?.(!0)}},[v,y,b,C,w,T,E,k]),ln=(0,c.useCallback)(()=>{for(let e of B.current.values())e.destroy();B.current.clear()},[]),un=(0,c.useCallback)(e=>{let t=e.getStyle();if(!t?.layers)return;let n=[`polygon-`,`polyline-`,`circle-`,`square-`,`rectangle-`,`radar-`,`image-`,`unit-`,`marker-`];for(let e of t.layers)if(n.some(t=>e.id.startsWith(t)))return e.id},[]),dn=(0,c.useCallback)(e=>{let t=_,n={"raster-opacity":e.opacity??1},r=e.brightness??t?.brightness,i=e.saturation??t?.saturation,a=e.contrast??t?.contrast,o=e.hueRotate??t?.hueRotate;return r!==void 0&&(n[`raster-brightness-min`]=0,n[`raster-brightness-max`]=r),i!==void 0&&(n[`raster-saturation`]=i),a!==void 0&&(n[`raster-contrast`]=a),o!==void 0&&(n[`raster-hue-rotate`]=o),n},[_]),fn=(0,c.useCallback)((e,t)=>{let n=`base-layer-source-${t.id}`,r=`base-layer-${t.id}`,i={type:`raster`,tiles:[t.url],tileSize:t.tileSize??256,minzoom:t.minzoom??0,maxzoom:t.maxzoom??22,scheme:t.scheme??`xyz`};t.bounds&&(i.bounds=t.bounds),t.attribution&&(i.attribution=t.attribution),e.addSource(n,i);let a=un(e);e.addLayer({id:r,type:`raster`,source:n,paint:dn(t),layout:{visibility:t.visible===!1?`none`:`visible`}},a)},[un,dn]),pn=(0,c.useCallback)(async(e,t)=>{try{let n=await(await fetch(t.url)).json(),r=`base-layer-source-${t.id}`,i=`base-layer-${t.id}`;if(!De.current.has(t.id))return;let a=n.format===`pbf`||n.vector_layers,o=un(e);if(a){let t={type:`vector`,tiles:n.tiles,minzoom:n.minzoom??0,maxzoom:n.maxzoom??22};n.bounds&&(t.bounds=n.bounds),n.attribution&&(t.attribution=n.attribution),e.addSource(r,t)}else e.addSource(r,{type:`raster`,tiles:n.tiles,tileSize:t.tileSize??n.tileSize??256,minzoom:n.minzoom??0,maxzoom:n.maxzoom??22,bounds:n.bounds,attribution:n.attribution}),e.addLayer({id:i,type:`raster`,source:r,paint:dn(t),layout:{visibility:t.visible===!1?`none`:`visible`}},o)}catch(e){console.error(`Failed to load TileJSON from ${t.url}:`,e)}},[un,dn]),mn=(0,c.useCallback)(async(e,t)=>{try{let n=await(await fetch(t.url)).json();if(!De.current.has(t.id))return;if(n.sources)for(let[r,i]of Object.entries(n.sources)){let n=`base-layer-source-${t.id}-${r}`;e.getSource(n)||e.addSource(n,i)}let r=un(e);if(n.layers)for(let i of n.layers){let n=`base-layer-${t.id}-${i.id}`;if(e.getLayer(n))continue;let a={...i,id:n,source:i.source?`base-layer-source-${t.id}-${i.source}`:void 0};i.type===`raster`&&(a.paint={...a.paint,...dn(t)}),t.visible===!1&&(a.layout={...a.layout,visibility:`none`}),e.addLayer(a,r)}if(n.glyphs&&!e.getStyle().glyphs){let t=e.style;t.glyphs=n.glyphs,t.stylesheet&&(t.stylesheet.glyphs=n.glyphs)}}catch(e){console.error(`Failed to load Style JSON from ${t.url}:`,e)}},[un,dn]),hn=(0,c.useCallback)((e,t)=>{let n=e.getStyle();if(!n)return;let r=`base-layer-${t}`,i=n.layers?.filter(e=>e.id.startsWith(r))??[];for(let t of i)e.getLayer(t.id)&&e.removeLayer(t.id);let a=`base-layer-source-${t}`,o=n.sources??{};for(let t of Object.keys(o))t.startsWith(a)&&e.getSource(t)&&e.removeSource(t)},[]),gn=(0,c.useCallback)(e=>{let t=z.current;if(!t)return;let n=new Set(e.map(e=>e.id)),r=De.current;for(let e of r)n.has(e)||(hn(t,e),r.delete(e));for(let n of e)if(r.has(n.id)){let e=`base-layer-${n.id}`;if(t.getLayer(e)){let r=dn(n);for(let[n,i]of Object.entries(r))t.setPaintProperty(e,n,i);t.setLayoutProperty(e,`visibility`,n.visible===!1?`none`:`visible`)}}else switch(r.add(n.id),n.type){case`raster`:fn(t,n);break;case`tilejson`:pn(t,n);break;case`style`:mn(t,n);break;default:{let e=n;e.url&&fn(t,{...e,type:`raster`})}}},[fn,pn,mn,hn,dn]),_n=(0,c.useCallback)(e=>{let t=e;for(;t;){let e=t.getAttribute?.(`data-entity-id`);if(e)return e;t=t.parentElement}return null},[]),vn=(0,c.useCallback)(e=>{let t=[e.lngLat.lng,e.lngLat.lat],n={x:e.point.x,y:e.point.y},r=En.current;if(r===`picker`){let e={lng:t[0],lat:t[1]};Ue(e),xt(t),Dn.current?.(e),tn.current&&(tn.current(e),tn.current=null,St(),Ue(null),Zt(nn.current));return}if(st.current)return;if(r===`edit`){let e=kn.current;if(e===`rectangle`){let e=An.current;if(!e)qe(t);else{let n=Je.current,r=S({...n,id:n?.id??Ct(),type:`rectangle`,bounds:[e,t]},b);Ot();let i=z.current;if(i&&!B.current.has(r.id)){let e=new be(i,r,C,w,T,k);B.current.set(r.id,e)}jn.current.onRectangleAdd?.(r),qe(null),Je.current=null,q.current&&(q.current=!1,G(null),i&&(i.getCanvas().style.cursor=``))}return}if(e===`circle`){let e=Y.current;if(!e)Y.current={center:t};else{let n=Mt(e.center,t),r=J.current,i=S({...r,id:r?.id??Ct(),type:`circle`,center:e.center,radius:n},b);Pt();let a=z.current;if(a&&!B.current.has(i.id)){let e=new me(a,i,C,w,T,E);B.current.set(i.id,e)}jn.current.onCircleAdd?.(i),Y.current=null,J.current=null,q.current&&(q.current=!1,G(null),a&&(a.getCanvas().style.cursor=``))}return}if(e===`polygon`){let e=Z.current;if(e.length>=3){let n=e[0];if(Mt(n,t)<20){let t=X.current,n=S({...t,id:t?.id??Ct(),type:`polygon`,coordinates:[...e]},b);Rt();let r=z.current;if(r&&!B.current.has(n.id)){let e=new de(r,n,C,w,T,k);B.current.set(n.id,e)}jn.current.onPolygonAdd?.(n),Z.current=[],X.current=null,q.current&&(q.current=!1,G(null),r&&(r.getCanvas().style.cursor=``));return}}Z.current=[...e,t];return}if(e===`square`){let e=rt.current;if(!e)rt.current={center:t};else{let n=Mt(e.center,t)*2,r=nt.current,i=S({...r,id:r?.id??Ct(),type:`square`,center:e.center,length:n},b);Ut();let a=z.current;if(a&&!B.current.has(i.id)){let e=new ve(a,i,C,w,T,k);B.current.set(i.id,e)}jn.current.onSquareAdd?.(i),rt.current=null,nt.current=null,q.current&&(q.current=!1,G(null),a&&(a.getCanvas().style.cursor=``))}return}if(e===`polyline`){at.current=[...at.current,t];return}let n=Xe.current;if(n&&n.src&&n.width){let e={...n,id:n.id??Ct(),type:`marker`,center:t,src:n.src,width:n.width};jn.current.onMarkerAdd?.(e),W(null),G(null),$(),Xe.current=null,q.current=!1;return}let r=On.current;if(r){let e={id:Ct(),type:`marker`,name:r.name,center:t,src:r.icon,width:r.size||r.width||32};r.customData!==void 0&&(e.customData=r.customData),jn.current.onMarkerAdd?.(e),W(null),G(null),$(),q.current=!1;return}}if(ut.current.length>0){let e=z.current?.getZoom()??12;if(Q.current){let{entityId:e,activeHandle:n}=Q.current,r=B.current.get(e);if(r?.applyHandleMove){let e=r.applyHandleMove(n,t);jn.current.onEntityEdit?.(e)}Q.current=null;return}for(let n of ut.current){let r=B.current.get(n);if(!r?.getEditHandleAt)continue;let i=r.getEditHandleAt(t,e);if(i){if(i.type===`midpoint`&&r.addVertex){let e=r.addVertex(i.index,i.position);jn.current.onEntityEdit?.(e),Q.current={entityId:n,activeHandle:{type:`vertex`,index:i.index+1,position:i.position}}}else Q.current={entityId:n,activeHandle:i};return}}}let i=Cn.current,a=wn.current,o=Tn.current,s=_n(e.originalEvent.target);if(s){let e=i.find(e=>String(e.id)===s);if(e){if(a?.(e),e.popup){let t=e.popup.content??L?.(e);t&&et(e.popup,I,t).trigger===`click`&&o(s,`click`,n)}return}}for(let[t,r]of B.current){let s=r.getLabelLayerId();if(s&&z.current?.getLayer(s)&&z.current.queryRenderedFeatures(e.point,{layers:[s]}).length>0){let e=i.find(e=>e.id===t);if(e){if(a?.(e),e.popup){let r=e.popup.content??L?.(e);r&&et(e.popup,I,r).trigger===`click`&&o(t,`click`,n)}return}}}for(let[e,r]of B.current)if(r.isPointInEntity(t)){let t=i.find(t=>t.id===e);if(t){if(a?.(t),t.popup){let r=t.popup.content??L?.(t);r&&et(t.popup,I,r).trigger===`click`&&o(e,`click`,n)}return}}},[I,L,_n]),yn=(0,c.useCallback)(e=>{let t=[e.lngLat.lng,e.lngLat.lat];if(Q.current){let{entityId:e,activeHandle:n}=Q.current;B.current.get(e)?.updateEditPreview?.(n,t);return}let n=kn.current,r=An.current;n===`rectangle`&&r&&Dt(r,t);let i=Y.current;n===`circle`&&i&&Nt(i.center,t);let a=Z.current;n===`polygon`&&a.length>0&&Lt(a,t);let o=rt.current;n===`square`&&o&&Ht(o.center,t);let s=at.current;n===`polyline`&&s.length>0&&Kt(s,t);let c=Cn.current,l=Tn.current;for(let[e,n]of B.current)if(n.isPointInEntity(t)){let t=c.find(t=>t.id===e);if(!t?.popup)continue;let n=t.popup.content??L?.(t);if(!n)continue;let r=et(t.popup,I,n);if(r.trigger===`hover`){Me.current&&clearTimeout(Me.current),Me.current=window.setTimeout(()=>{l(e,`hover`)},r.hoverDelay);return}}if(Me.current&&=(clearTimeout(Me.current),null),H?.openedBy===`hover`){let e=B.current.get(H.entityId);e&&!e.isPointInEntity(t)&&gt(H.entityId)}},[I,L,H,gt,Dt,Nt,Lt,Ht,Kt]),bn=(0,c.useCallback)(e=>{if(e.preventDefault(),tn.current){tn.current(null),tn.current=null,St(),Ue(null),Zt(nn.current);return}if(st.current)return;if(ut.current.length>0){let t=[e.lngLat.lng,e.lngLat.lat];if(Q.current){B.current.get(Q.current.entityId)?.cancelEditPreview?.(),Q.current=null;return}let n=z.current?.getZoom()??12;for(let e of ut.current){let r=B.current.get(e);if(!r?.getEditHandleAt||!r.deleteVertex)continue;let i=r.getEditHandleAt(t,n);if(i&&i.type===`vertex`){let e=r.deleteVertex(i.index);e&&jn.current.onEntityEdit?.(e);return}}}if(En.current!==`edit`)return;if(On.current){W(null),G(null),$();return}let t=kn.current;if(t===`rectangle`){if(An.current)qe(null),Ot();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}if(t===`circle`){if(Y.current)Y.current=null,Pt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}if(t===`polygon`){let e=Z.current;if(e.length>=3){let t=X.current,n=S({...t,id:t?.id??Ct(),type:`polygon`,coordinates:[...e]},b);Rt();let r=z.current;if(r&&!B.current.has(n.id)){let e=new de(r,n,C,w,T,k);B.current.set(n.id,e)}jn.current.onPolygonAdd?.(n),Z.current=[],X.current=null,q.current&&(q.current=!1,G(null),r&&(r.getCanvas().style.cursor=``))}else if(e.length>0)Z.current=[],Rt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}if(t===`square`){if(rt.current)rt.current=null,Ut();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}if(t===`polyline`){let e=at.current;if(e.length>=2){let t=it.current,n=S({...t,id:t?.id??Ct(),type:`polyline`,coordinates:[...e]},b);qt();let r=z.current;if(r&&!B.current.has(n.id)){let e=new fe(r,n,C,w,k);B.current.set(n.id,e)}jn.current.onPolylineAdd?.(n),at.current=[],it.current=null,q.current&&(q.current=!1,G(null),r&&(r.getCanvas().style.cursor=``))}else if(e.length>0)at.current=[],qt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}return}let n=[e.lngLat.lng,e.lngLat.lat],r={x:e.point.x,y:e.point.y},i=Cn.current,a=_n(e.originalEvent.target);if(a){let e=i.find(e=>String(e.id)===a);if(e){xn(e,r,n);return}}for(let[t,a]of B.current){let o=a.getLabelLayerId();if(o&&z.current?.getLayer(o)&&z.current.queryRenderedFeatures(e.point,{layers:[o]}).length>0){let e=i.find(e=>e.id===t);if(e){xn(e,r,n);return}}}for(let[e,t]of B.current)if(t.isPointInEntity(n)){let t=i.find(t=>t.id===e);if(t){xn(t,r,n);return}}},[_n,$,Ot,Pt,Rt,Ut,qt]),xn=(0,c.useCallback)((e,t,n)=>{let r=ye.current?.getBoundingClientRect(),i=r?{x:t.x+r.left,y:t.y+r.top}:t;Pe({position:i,lngLat:n,items:[{key:`delete`,label:`删除`,icon:(0,p.jsx)(`img`,{src:Ie,alt:`delete`,style:{width:`18px`,flexShrink:0}}),danger:!0,onClick:()=>{jn.current.onEntityDelete?.(e)}}]})},[]),Sn=(0,c.useCallback)(()=>{Pe(null)},[]);(0,c.useEffect)(()=>{let e=document.createElement(`div`);return e.id=`mapbox-popup-container-${Date.now()}`,e.style.cssText=`
58
58
  position: fixed;
59
59
  top: 0;
60
60
  left: 0;
@@ -70,4 +70,4 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
70
70
  pointer-events: none;
71
71
  height: 100%;
72
72
  z-index: ${(I?.zIndex??1e3)+100};
73
- `,document.body.appendChild(e),Fe.current=e,()=>{document.body.contains(e)&&document.body.removeChild(e)}},[I?.zIndex]);let yn=(0,c.useRef)(v);yn.current=v;let bn=(0,c.useRef)(se);bn.current=se;let xn=(0,c.useRef)(ht);xn.current=ht;let Sn=(0,c.useRef)(Be);Sn.current=Be;let Cn=(0,c.useRef)(m);Cn.current=m;let wn=(0,c.useRef)(We);wn.current=We;let Tn=(0,c.useRef)(Ge);Tn.current=Ge;let En=(0,c.useRef)(K);En.current=K;let Dn=(0,c.useRef)(d);Dn.current=d;let On=(0,c.useRef)(b);On.current=b,(0,c.useEffect)(()=>{let e=e=>{if(e.key===`Escape`&&Q.current){B.current.get(Q.current.entityId)?.cancelEditPreview?.(),Q.current=null;return}if(e.key===`Escape`&&Be===`edit`){if(We&&(W(null),G(null),$()),Ge===`rectangle`)if(K)qe(null),Ot();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}if(Ge===`circle`)if(Y.current)Y.current=null,Pt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}if(Ge===`polygon`)if(Z.current.length>0)Z.current=[],Rt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}if(Ge===`square`)if(rt.current)rt.current=null,Ut();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}if(Ge===`polyline`)if(at.current.length>0)at.current=[],qt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}}};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[Be,We,Ge,K,$,Ot,Pt,Rt,Ut,qt]),(0,c.useEffect)(()=>{let e=z.current;if(!e||!H)return;let t=H.entityId,n=H.config,r=()=>{let r=yn.current.find(e=>e.id===t);if(!r){_t();return}let{position:i}=tt(r,n,e,void 0,je.current);je.current&&(je.current.style.left=`${i.x}px`,je.current.style.top=`${i.y}px`)},i=setTimeout(()=>{r()},50);return e.on(`move`,r),e.on(`zoom`,r),e.on(`rotate`,r),e.on(`pitch`,r),()=>{clearTimeout(i),e.off(`move`,r),e.off(`zoom`,r),e.off(`rotate`,r),e.off(`pitch`,r)}},[H?.entityId,_t]),(0,c.useEffect)(()=>{let e=z.current,t=ye.current;if(!e||!Ne||!t)return;let n=Ne.lngLat,r=()=>{let r=e.project(n),i=t.clientWidth,a=t.clientHeight;if(r.x<0||r.x>i||r.y<0||r.y>a){vn();return}let o=t.getBoundingClientRect(),s=r.x+o.left,c=r.y+o.top;Le.current&&(Le.current.style.left=`${s}px`,Le.current.style.top=`${c}px`)};return e.on(`move`,r),e.on(`zoom`,r),e.on(`rotate`,r),e.on(`pitch`,r),()=>{e.off(`move`,r),e.off(`zoom`,r),e.off(`rotate`,r),e.off(`pitch`,r)}},[Ne?.lngLat,vn]),(0,c.useEffect)(()=>{if(!ye.current)return;let e={version:8,sources:{},layers:[]},{dragPan:t=!0,scrollZoom:c=!0,doubleClickZoom:u=!0,touchZoomRotate:d=!0,keyboard:f=!0,dragRotate:p=!0,pitchWithRotate:m=!0,touchPitch:_=!0,boxZoom:y=!0}=h,b=new l.default.Map({container:ye.current,style:o||e,center:n,zoom:r,pitch:i,bearing:a,maxBounds:s,dragPan:t,scrollZoom:c,doubleClickZoom:u,touchZoomRotate:d,keyboard:f,dragRotate:p,pitchWithRotate:m,touchPitch:_,boxZoom:y,transformRequest:(e,t)=>{if(t===`Glyphs`){let t=e.match(/\/fonts\/([^/]+)\/(\d+-\d+)\.pbf/);if(t){let e=decodeURIComponent(t[1]),n=t[2],r=e.split(`,`)[0].trim();return{url:`/gis-fonts/${encodeURIComponent(r)}/${n}.pbf`}}}return{url:e}}});return z.current=b,b.on(`load`,()=>{if(!b.getStyle().glyphs){let e=b.style,t=`/gis-fonts/{fontstack}/{range}.pbf`;e.glyphs=t,e.stylesheet&&(e.stylesheet.glyphs=t)}V.current.clear(),v.forEach(e=>{V.current.set(e.id,e)}),fn(g),rn(),Et(),At(),It(),Bt(),Gt(),ze(b),ae?.(b)}),b.on(`click`,mn),b.on(`mousemove`,hn),b.on(`contextmenu`,gn),()=>{b.off(`click`,mn),b.off(`mousemove`,hn),b.off(`contextmenu`,gn),an(),St(),$(),kt(),Jt(),b.remove(),z.current=null}},[]),(0,c.useEffect)(()=>{if(z.current){if(!z.current.isStyleLoaded()){z.current.once(`load`,()=>{V.current.clear(),v.forEach(e=>{V.current.set(e.id,e)}),rn()});return}V.current.clear(),v.forEach(e=>{V.current.set(e.id,e)}),rn()}},[v,rn]),(0,c.useEffect)(()=>{!z.current||!z.current.isStyleLoaded()||(an(),rn())},[C,w,T,E,k,an,rn]),(0,c.useEffect)(()=>{if(z.current){if(!z.current.isStyleLoaded()){z.current.once(`load`,()=>{fn(g)});return}fn(g)}},[g,fn]);let kn=(0,c.useRef)(void 0),An=(0,c.useRef)(!0),jn=(0,c.useRef)(g);jn.current=g;let Mn=(0,c.useRef)(fn);Mn.current=fn;let Nn=(0,c.useRef)(an);Nn.current=an;let Pn=(0,c.useRef)(rn);Pn.current=rn;let Fn=(0,c.useRef)(Et);Fn.current=Et;let In=(0,c.useRef)(At);In.current=At;let Ln=(0,c.useRef)(It);Ln.current=It;let Rn=(0,c.useRef)(Bt);Rn.current=Bt;let zn=(0,c.useRef)(Gt);zn.current=Gt,(0,c.useEffect)(()=>{let e=z.current;if(!e)return;let t=o||{version:8,sources:{},layers:[]};if(An.current){An.current=!1,kn.current=o;return}kn.current!==o&&(kn.current=o,e.setStyle(t),e.once(`style.load`,()=>{if(!e.getStyle().glyphs){let t=e.style,n=`/gis-fonts/{fontstack}/{range}.pbf`;t.glyphs=n,t.stylesheet&&(t.stylesheet.glyphs=n)}De.current.clear(),Mn.current(jn.current),Nn.current(),Pn.current(),Fn.current(),In.current(),Ln.current(),Rn.current(),zn.current()}))},[o]),(0,c.useEffect)(()=>{let e=new Set(y.map(String));for(let[t,n]of B.current)n.setSelected(e.has(String(t)))},[y]);let Bn=(0,c.useRef)({});(0,c.useEffect)(()=>{let e=z.current;if(!e)return;let t=Bn.current,o=n&&(t.center?.[0]!==n[0]||t.center?.[1]!==n[1]),s=t.zoom!==r,c=t.pitch!==i,l=t.bearing!==a;!o&&!s&&!c&&!l||(Bn.current={center:n,zoom:r,pitch:i,bearing:a},e.jumpTo({center:n,zoom:r,pitch:i,bearing:a}))},[n,r,i,a]);let Vn=(()=>M===!1?null:M===!0?{enabled:!0}:M)(),Hn=(()=>N===!1?null:N===!0?{enabled:!0}:N)(),Un=(()=>te===!1?null:te===!0?{enabled:!0}:te)(),Wn=(()=>{if(P===!1)return null;let e,t,n;if(g&&g.length>0){let r=g.find(e=>e.hasRoadNetwork===!0)||g[0];if(r.type===`style`){let t=z.current?.getStyle();if(t?.sources){let n=`base-layer-source-${r.id}-`,i=Object.keys(t.sources).find(e=>e.startsWith(n));i&&(e=i)}}else e=`base-layer-source-${r.id}`;t=r.roadNetworkSourceLayer||`road`,n=r.roadNetworkClassField}return P===!0?{enabled:!0,source:e,sourceLayer:t,classField:n}:{...P,source:P.source||e,sourceLayer:P.sourceLayer||t,classField:P.classField||n}})(),Gn=(()=>F?F===!0?{enabled:!0}:F:null)(),Kn=(()=>ne?ne===!0?{enabled:!0}:ne:null)(),qn=(()=>re||null)(),Jn=(0,c.useMemo)(()=>{let e=[];for(let t of g)if(t.applyRasterPaint)if(t.type===`style`){let n=z.current;if(n){let r=`base-layer-${t.id}-`,i=n.getStyle();if(i?.layers)for(let t of i.layers)t.id.startsWith(r)&&t.type===`raster`&&e.push(t.id)}}else e.push(`base-layer-${t.id}`);return e},[g,Re]);return(0,p.jsxs)(`div`,{className:`comp-mapbox ${Be===`picker`?`comp-mapbox--picker-mode`:``} ${he}`,style:_e,children:[(0,p.jsx)(`div`,{ref:ye,className:`comp-mapbox__map`}),Be===`picker`&&f.showCrosshair===!0&&(0,p.jsxs)(`div`,{className:`comp-mapbox__crosshair`,children:[(0,p.jsx)(`div`,{className:`comp-mapbox__crosshair-h`,style:f.crosshairColor?{backgroundColor:f.crosshairColor}:void 0}),(0,p.jsx)(`div`,{className:`comp-mapbox__crosshair-v`,style:f.crosshairColor?{backgroundColor:f.crosshairColor}:void 0})]}),Be===`edit`&&d.showEditTools!==!1&&(d.markerTemplates&&d.markerTemplates.length>0||d.showRectangleTool||d.showCircleTool||d.showPolygonTool||d.showSquareTool||d.showPolylineTool)||Wn&&Wn.enabled!==!1||qn&&qn.enabled!==!1?(0,p.jsxs)(`div`,{className:`comp-mapbox__edit-controls`,children:[Be===`edit`&&d.showEditTools!==!1&&(d.markerTemplates&&d.markerTemplates.length>0||d.showRectangleTool||d.showCircleTool||d.showPolygonTool||d.showSquareTool||d.showPolylineTool)&&(0,p.jsx)(Ze,{markerTemplates:d.markerTemplates||[],selectedTemplate:We,onTemplateSelect:Yt,drawMode:Ge,onDrawModeChange:Xt,showRectangleTool:d.showRectangleTool,showCircleTool:d.showCircleTool,showPolygonTool:d.showPolygonTool,showSquareTool:d.showSquareTool,showPolylineTool:d.showPolylineTool}),(0,p.jsx)(ke,{ref:we,map:Re,showButton:!!(Wn&&Wn.enabled!==!1),highlightWidth:Wn?.highlightWidth,defaultRoadTypes:Wn?.defaultRoadTypes,defaultMinWidth:Wn?.defaultMinWidth,source:Wn?.source,sourceLayer:Wn?.sourceLayer,classField:Wn?.classField,className:Wn?.className,style:Wn?.style}),qn&&qn.enabled!==!1&&(0,p.jsx)($e,{ref:Se,map:Re,pointCount:qn.pointCount,showPointCountInput:qn.showPointCountInput,visualType:qn.visualType,onSelectFinished:qn.onSelectFinished})]}):null,(Vn?.enabled!==!1||Hn?.enabled!==!1||Un?.enabled!==!1||Gn&&Gn.enabled!==!1||Kn&&Kn.enabled!==!1)&&(0,p.jsxs)(`div`,{className:`comp-mapbox__controls`,children:[Vn&&Vn.enabled!==!1&&(0,p.jsx)(Ce,{map:Re,precision:Vn.precision,className:Vn.className,style:Vn.style}),Hn&&Hn.enabled!==!1&&(0,p.jsx)(Te,{map:Re,maxWidth:Hn.maxWidth,unit:Hn.unit,className:Hn.className,style:Hn.style}),Gn&&Gn.enabled!==!1&&(0,p.jsx)(Ke,{map:Re,entityConfig:b,onDrawModeChange:e=>{st.current=e},className:Gn.className,style:Gn.style}),Kn&&Kn.enabled!==!1&&(0,p.jsx)(Ye,{map:Re,value:_,onChange:ie,rasterPaintLayerIds:Jn,className:Kn.className,style:Kn.style}),Un&&Un.enabled!==!1&&(0,p.jsx)(Ee,{map:Re,initialCenter:n,initialZoom:r,initialPitch:i,initialBearing:a,duration:Un.duration,className:Un.className,style:Un.style})]}),!(qn&&qn.enabled!==!1)&&(0,p.jsx)($e,{ref:Se,map:Re,showButton:!1}),H&&Ae.current&&(0,p.jsx)(xe,{popupState:H,onClose:()=>gt(H.entityId),portalContainer:Ae.current,popupRef:je}),Ne&&Fe.current&&(0,p.jsx)(Qe,{menuState:Ne,onClose:vn,portalContainer:Fe.current,menuRef:Le})]})});st.displayName=`Mapbox`,exports.BaseCanvasRenderer=ne,exports.COLOR_SCHEMES=C,exports.CanvasCircleRenderer=ge,exports.CanvasImageRenderer=ce,exports.CanvasRadarRenderer=oe,exports.CircleRenderer=me,exports.ContextMenu=Qe,exports.CoordinateDisplay=Ce,exports.DEFAULT_NAME_CONFIG=h,exports.DEFAULT_SELECT_NAME_CONFIG=g,exports.EditControl=Ze,exports.EntityPopup=xe,exports.Mapbox=st,exports.MarkerRenderer=le,exports.POPUP_DEFAULTS=T,exports.PolygonRenderer=de,exports.PolylineRenderer=fe,exports.RADAR_DEFAULTS=w,exports.ROAD_TYPE_OPTIONS=E,exports.RectangleRenderer=be,exports.ResetViewControl=Ee,exports.RoadHighlightControl=ke,exports.ScaleControl=Te,exports.SquareRenderer=ve,exports.UnitRenderer=ue,exports.bearing=k,exports.calculatePopupPosition=tt,exports.confidenceToOpacity=F,exports.destinationPoint=D,exports.distance=O,exports.mergePopupConfig=et,exports.resolveNameConfig=x;
73
+ `,document.body.appendChild(e),Fe.current=e,()=>{document.body.contains(e)&&document.body.removeChild(e)}},[I?.zIndex]);let Cn=(0,c.useRef)(v);Cn.current=v;let wn=(0,c.useRef)(se);wn.current=se;let Tn=(0,c.useRef)(ht);Tn.current=ht;let En=(0,c.useRef)(Be);En.current=Be;let Dn=(0,c.useRef)(m);Dn.current=m;let On=(0,c.useRef)(We);On.current=We;let kn=(0,c.useRef)(Ge);kn.current=Ge;let An=(0,c.useRef)(K);An.current=K;let jn=(0,c.useRef)(d);jn.current=d;let Mn=(0,c.useRef)(b);Mn.current=b,(0,c.useEffect)(()=>{let e=e=>{if(e.key===`Escape`&&Q.current){B.current.get(Q.current.entityId)?.cancelEditPreview?.(),Q.current=null;return}if(e.key===`Escape`&&Be===`edit`){if(We&&(W(null),G(null),$()),Ge===`rectangle`)if(K)qe(null),Ot();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}if(Ge===`circle`)if(Y.current)Y.current=null,Pt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}if(Ge===`polygon`)if(Z.current.length>0)Z.current=[],Rt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}if(Ge===`square`)if(rt.current)rt.current=null,Ut();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}if(Ge===`polyline`)if(at.current.length>0)at.current=[],qt();else{G(null);let e=z.current;e&&(e.getCanvas().style.cursor=``)}}};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[Be,We,Ge,K,$,Ot,Pt,Rt,Ut,qt]),(0,c.useEffect)(()=>{let e=z.current;if(!e||!H)return;let t=H.entityId,n=H.config,r=()=>{let r=Cn.current.find(e=>e.id===t);if(!r){_t();return}let{position:i}=tt(r,n,e,void 0,je.current);je.current&&(je.current.style.left=`${i.x}px`,je.current.style.top=`${i.y}px`)},i=setTimeout(()=>{r()},50);return e.on(`move`,r),e.on(`zoom`,r),e.on(`rotate`,r),e.on(`pitch`,r),()=>{clearTimeout(i),e.off(`move`,r),e.off(`zoom`,r),e.off(`rotate`,r),e.off(`pitch`,r)}},[H?.entityId,_t]),(0,c.useEffect)(()=>{let e=z.current,t=ye.current;if(!e||!Ne||!t)return;let n=Ne.lngLat,r=()=>{let r=e.project(n),i=t.clientWidth,a=t.clientHeight;if(r.x<0||r.x>i||r.y<0||r.y>a){Sn();return}let o=t.getBoundingClientRect(),s=r.x+o.left,c=r.y+o.top;Le.current&&(Le.current.style.left=`${s}px`,Le.current.style.top=`${c}px`)};return e.on(`move`,r),e.on(`zoom`,r),e.on(`rotate`,r),e.on(`pitch`,r),()=>{e.off(`move`,r),e.off(`zoom`,r),e.off(`rotate`,r),e.off(`pitch`,r)}},[Ne?.lngLat,Sn]),(0,c.useEffect)(()=>{if(!ye.current)return;let e={version:8,sources:{},layers:[]},{dragPan:t=!0,scrollZoom:c=!0,doubleClickZoom:u=!0,touchZoomRotate:d=!0,keyboard:f=!0,dragRotate:p=!0,pitchWithRotate:m=!0,touchPitch:_=!0,boxZoom:y=!0}=h,b=new l.default.Map({container:ye.current,style:o||e,center:n,zoom:r,pitch:i,bearing:a,maxBounds:s,dragPan:t,scrollZoom:c,doubleClickZoom:u,touchZoomRotate:d,keyboard:f,dragRotate:p,pitchWithRotate:m,touchPitch:_,boxZoom:y,transformRequest:(e,t)=>{if(t===`Glyphs`){let t=e.match(/\/fonts\/([^/]+)\/(\d+-\d+)\.pbf/);if(t){let e=decodeURIComponent(t[1]),n=t[2],r=e.split(`,`)[0].trim();return{url:`/gis-fonts/${encodeURIComponent(r)}/${n}.pbf`}}}return{url:e}}});return z.current=b,b.on(`load`,()=>{if(!b.getStyle().glyphs){let e=b.style,t=`/gis-fonts/{fontstack}/{range}.pbf`;e.glyphs=t,e.stylesheet&&(e.stylesheet.glyphs=t)}V.current.clear(),v.forEach(e=>{V.current.set(e.id,e)}),gn(g),cn(),Et(),At(),It(),Bt(),Gt(),ze(b),ae?.(b)}),b.on(`click`,vn),b.on(`mousemove`,yn),b.on(`contextmenu`,bn),()=>{b.off(`click`,vn),b.off(`mousemove`,yn),b.off(`contextmenu`,bn),ln(),St(),$(),kt(),Jt(),b.remove(),z.current=null}},[]),(0,c.useEffect)(()=>{if(z.current){if(!z.current.isStyleLoaded()){z.current.once(`load`,()=>{V.current.clear(),v.forEach(e=>{V.current.set(e.id,e)}),cn()});return}V.current.clear(),v.forEach(e=>{V.current.set(e.id,e)}),cn()}},[v,cn]),(0,c.useEffect)(()=>{!z.current||!z.current.isStyleLoaded()||(ln(),cn())},[C,w,T,E,k,ln,cn]),(0,c.useEffect)(()=>{if(z.current){if(!z.current.isStyleLoaded()){z.current.once(`load`,()=>{gn(g)});return}gn(g)}},[g,gn]);let Nn=(0,c.useRef)(void 0),Pn=(0,c.useRef)(!0),Fn=(0,c.useRef)(g);Fn.current=g;let In=(0,c.useRef)(gn);In.current=gn;let Ln=(0,c.useRef)(ln);Ln.current=ln;let Rn=(0,c.useRef)(cn);Rn.current=cn;let zn=(0,c.useRef)(Et);zn.current=Et;let Bn=(0,c.useRef)(At);Bn.current=At;let Vn=(0,c.useRef)(It);Vn.current=It;let Hn=(0,c.useRef)(Bt);Hn.current=Bt;let Un=(0,c.useRef)(Gt);Un.current=Gt,(0,c.useEffect)(()=>{let e=z.current;if(!e)return;let t=o||{version:8,sources:{},layers:[]};if(Pn.current){Pn.current=!1,Nn.current=o;return}Nn.current!==o&&(Nn.current=o,e.setStyle(t),e.once(`style.load`,()=>{if(!e.getStyle().glyphs){let t=e.style,n=`/gis-fonts/{fontstack}/{range}.pbf`;t.glyphs=n,t.stylesheet&&(t.stylesheet.glyphs=n)}De.current.clear(),In.current(Fn.current),Ln.current(),Rn.current(),zn.current(),Bn.current(),Vn.current(),Hn.current(),Un.current()}))},[o]),(0,c.useEffect)(()=>{let e=new Set(y.map(String));for(let[t,n]of B.current)n.setSelected(e.has(String(t)))},[y]);let Wn=(0,c.useRef)({});(0,c.useEffect)(()=>{let e=z.current;if(!e)return;let t=Wn.current,o=n&&(t.center?.[0]!==n[0]||t.center?.[1]!==n[1]),s=t.zoom!==r,c=t.pitch!==i,l=t.bearing!==a;!o&&!s&&!c&&!l||(Wn.current={center:n,zoom:r,pitch:i,bearing:a},e.jumpTo({center:n,zoom:r,pitch:i,bearing:a}))},[n,r,i,a]);let Gn=(()=>M===!1?null:M===!0?{enabled:!0}:M)(),Kn=(()=>N===!1?null:N===!0?{enabled:!0}:N)(),qn=(()=>te===!1?null:te===!0?{enabled:!0}:te)(),Jn=(()=>{if(P===!1)return null;let e,t,n;if(g&&g.length>0){let r=g.find(e=>e.hasRoadNetwork===!0)||g[0];if(r.type===`style`){let t=z.current?.getStyle();if(t?.sources){let n=`base-layer-source-${r.id}-`,i=Object.keys(t.sources).find(e=>e.startsWith(n));i&&(e=i)}}else e=`base-layer-source-${r.id}`;t=r.roadNetworkSourceLayer||`road`,n=r.roadNetworkClassField}return P===!0?{enabled:!0,source:e,sourceLayer:t,classField:n}:{...P,source:P.source||e,sourceLayer:P.sourceLayer||t,classField:P.classField||n}})(),Yn=(()=>F?F===!0?{enabled:!0}:F:null)(),Xn=(()=>ne?ne===!0?{enabled:!0}:ne:null)(),Zn=(()=>re||null)(),Qn=(0,c.useMemo)(()=>{let e=[];for(let t of g)if(t.applyRasterPaint)if(t.type===`style`){let n=z.current;if(n){let r=`base-layer-${t.id}-`,i=n.getStyle();if(i?.layers)for(let t of i.layers)t.id.startsWith(r)&&t.type===`raster`&&e.push(t.id)}}else e.push(`base-layer-${t.id}`);return e},[g,Re]);return(0,p.jsxs)(`div`,{className:`comp-mapbox ${Be===`picker`?`comp-mapbox--picker-mode`:``} ${he}`,style:_e,children:[(0,p.jsx)(`div`,{ref:ye,className:`comp-mapbox__map`}),Be===`picker`&&f.showCrosshair===!0&&(0,p.jsxs)(`div`,{className:`comp-mapbox__crosshair`,children:[(0,p.jsx)(`div`,{className:`comp-mapbox__crosshair-h`,style:f.crosshairColor?{backgroundColor:f.crosshairColor}:void 0}),(0,p.jsx)(`div`,{className:`comp-mapbox__crosshair-v`,style:f.crosshairColor?{backgroundColor:f.crosshairColor}:void 0})]}),(0,p.jsxs)(`div`,{className:`comp-mapbox__edit-controls${Be===`edit`&&d.showEditTools!==!1&&(d.markerTemplates&&d.markerTemplates.length>0||d.showRectangleTool||d.showCircleTool||d.showPolygonTool||d.showSquareTool||d.showPolylineTool)||Jn&&Jn.enabled!==!1||Zn&&Zn.enabled!==!1?``:` comp-mapbox__edit-controls--hidden`}`,children:[Be===`edit`&&d.showEditTools!==!1&&(d.markerTemplates&&d.markerTemplates.length>0||d.showRectangleTool||d.showCircleTool||d.showPolygonTool||d.showSquareTool||d.showPolylineTool)&&(0,p.jsx)(Ze,{markerTemplates:d.markerTemplates||[],selectedTemplate:We,onTemplateSelect:Yt,drawMode:Ge,onDrawModeChange:Xt,showRectangleTool:d.showRectangleTool,showCircleTool:d.showCircleTool,showPolygonTool:d.showPolygonTool,showSquareTool:d.showSquareTool,showPolylineTool:d.showPolylineTool}),(0,p.jsx)(ke,{ref:we,map:Re,showButton:!!(Jn&&Jn.enabled!==!1),highlightWidth:Jn?.highlightWidth,defaultRoadTypes:Jn?.defaultRoadTypes,defaultMinWidth:Jn?.defaultMinWidth,source:Jn?.source,sourceLayer:Jn?.sourceLayer,classField:Jn?.classField,className:Jn?.className,style:Jn?.style}),Zn&&Zn.enabled!==!1&&(0,p.jsx)($e,{ref:Se,map:Re,pointCount:Zn.pointCount,showPointCountInput:Zn.showPointCountInput,visualType:Zn.visualType,onSelectFinished:Zn.onSelectFinished})]}),(Gn?.enabled!==!1||Kn?.enabled!==!1||qn?.enabled!==!1||Yn&&Yn.enabled!==!1||Xn&&Xn.enabled!==!1)&&(0,p.jsxs)(`div`,{className:`comp-mapbox__controls`,children:[Gn&&Gn.enabled!==!1&&(0,p.jsx)(Ce,{map:Re,precision:Gn.precision,className:Gn.className,style:Gn.style}),Kn&&Kn.enabled!==!1&&(0,p.jsx)(Te,{map:Re,maxWidth:Kn.maxWidth,unit:Kn.unit,className:Kn.className,style:Kn.style}),Yn&&Yn.enabled!==!1&&(0,p.jsx)(Ke,{map:Re,entityConfig:b,onDrawModeChange:e=>{st.current=e},className:Yn.className,style:Yn.style}),Xn&&Xn.enabled!==!1&&(0,p.jsx)(Ye,{map:Re,value:_,onChange:ie,rasterPaintLayerIds:Qn,className:Xn.className,style:Xn.style}),qn&&qn.enabled!==!1&&(0,p.jsx)(Ee,{map:Re,initialCenter:n,initialZoom:r,initialPitch:i,initialBearing:a,duration:qn.duration,className:qn.className,style:qn.style})]}),!(Zn&&Zn.enabled!==!1)&&(0,p.jsx)($e,{ref:Se,map:Re,showButton:!1}),H&&Ae.current&&(0,p.jsx)(xe,{popupState:H,onClose:()=>gt(H.entityId),portalContainer:Ae.current,popupRef:je}),Ne&&Fe.current&&(0,p.jsx)(Qe,{menuState:Ne,onClose:Sn,portalContainer:Fe.current,menuRef:Le})]})});st.displayName=`Mapbox`,exports.BaseCanvasRenderer=ne,exports.COLOR_SCHEMES=C,exports.CanvasCircleRenderer=ge,exports.CanvasImageRenderer=ce,exports.CanvasRadarRenderer=oe,exports.CircleRenderer=me,exports.ContextMenu=Qe,exports.CoordinateDisplay=Ce,exports.DEFAULT_NAME_CONFIG=h,exports.DEFAULT_SELECT_NAME_CONFIG=g,exports.EditControl=Ze,exports.EntityPopup=xe,exports.Mapbox=st,exports.MarkerRenderer=le,exports.POPUP_DEFAULTS=T,exports.PolygonRenderer=de,exports.PolylineRenderer=fe,exports.RADAR_DEFAULTS=w,exports.ROAD_TYPE_OPTIONS=E,exports.RectangleRenderer=be,exports.ResetViewControl=Ee,exports.RoadHighlightControl=ke,exports.ScaleControl=Te,exports.SquareRenderer=ve,exports.UnitRenderer=ue,exports.bearing=k,exports.calculatePopupPosition=tt,exports.confidenceToOpacity=F,exports.destinationPoint=D,exports.distance=O,exports.mergePopupConfig=et,exports.resolveNameConfig=x;
package/dist/index.css CHANGED
@@ -1,2 +1,2 @@
1
- .comp-mapbox{--mapbox-primary-color:#38f;--mapbox-selected-color:#fc0;--mapbox-selected-glow-color:#f60;--mapbox-text-color:#fff;--mapbox-text-secondary-color:#fff9;--mapbox-text-dark-color:#333;--mapbox-danger-color:#e53935;--mapbox-control-bg:#00000080;--mapbox-control-bg-hover:#ffffff1a;--mapbox-control-border-color:#ffffff4d;--mapbox-control-border-color-hover:#ffffff80;--mapbox-control-active-bg:#3388ff4d;--mapbox-control-active-border:#38fc;--mapbox-popup-bg:#fff;--mapbox-popup-shadow:0 4px 12px #00000026;--mapbox-popup-close-bg:#0000000d;--mapbox-popup-close-bg-hover:#0000001a;--mapbox-context-menu-bg:#fff;--mapbox-context-menu-shadow:0 2px 12px #00000026,0 0 1px #0000001a;--mapbox-context-menu-hover-bg:#0000000d;--mapbox-context-menu-danger-hover-bg:#e5393514;--mapbox-trajectory-color:#0f8;--mapbox-marker-label-color:#fff;--mapbox-marker-label-shadow:0 0 2px #000c,0 0 2px #000c,0 0 1px #000c,0 0 1px #000c;--mapbox-marker-label-selected-shadow:0 0 4px #f60,0 0 4px #f60,0 0 2px #f60,0 0 2px #f60;--mapbox-road-highlight-active-bg:#f603;--mapbox-road-highlight-active-border:#ff660080;--mapbox-control-radius:4px;--mapbox-control-gap:24px;--mapbox-control-padding-x:16px;--mapbox-control-padding-y:6px;--mapbox-control-btn-padding-x:12px;--mapbox-control-btn-padding-y:4px;--mapbox-font-size:12px;--mapbox-font-size-sm:11px;--mapbox-font-family:Arial,sans-serif;--mapbox-popup-radius:8px;--mapbox-context-menu-radius:6px;--mapbox-picker-marker-size:24px;--mapbox-transition-duration:.2s;--mapbox-control-z-index:10;--mapbox-popup-z-index:1000;--mapbox-context-menu-z-index:1100;width:100%;height:100%;position:relative;overflow:hidden}.comp-mapbox__map{width:100%;height:100%;position:absolute;top:0;left:0}.comp-mapbox__map .mapboxgl-ctrl-logo,.comp-mapbox__map .mapboxgl-ctrl-attrib{display:none!important}.comp-mapbox--picker-mode .mapboxgl-canvas-container.mapboxgl-interactive{cursor:crosshair!important}.comp-mapbox__controls{align-items:center;gap:var(--mapbox-control-gap);background-color:var(--mapbox-control-bg);padding:var(--mapbox-control-padding-y)var(--mapbox-control-padding-x);border-radius:var(--mapbox-control-radius);z-index:var(--mapbox-control-z-index);font-family:monospace;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.comp-mapbox__edit-controls{background-color:var(--mapbox-control-bg);padding:var(--mapbox-control-padding-y)var(--mapbox-control-padding-x);border-radius:var(--mapbox-control-radius);z-index:var(--mapbox-control-z-index);align-items:center;gap:12px;display:flex;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}.comp-mapbox__crosshair{pointer-events:none;z-index:5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.comp-mapbox__crosshair-h,.comp-mapbox__crosshair-v{background-color:var(--mapbox-primary-color);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.comp-mapbox__crosshair-h{width:20px;height:2px}.comp-mapbox__crosshair-v{width:2px;height:20px}.mapbox-picker-marker{flex-direction:column;align-items:center;display:flex}.mapbox-picker-marker .marker-inner{width:var(--mapbox-picker-marker-size);height:var(--mapbox-picker-marker-size);cursor:crosshair;border:2px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px #0000004d}.mapbox-picker-marker .marker-label{white-space:nowrap;paint-order:stroke fill;pointer-events:none;margin-top:4px;font-size:14px;font-weight:700}.mapbox-marker-container{pointer-events:auto;cursor:pointer;flex-direction:column;align-items:center;display:flex;position:relative}.mapbox-marker-label{color:var(--mapbox-marker-label-color);text-shadow:none;-webkit-text-stroke:1.5px #000c;paint-order:stroke fill;white-space:nowrap;pointer-events:auto;cursor:pointer;margin-top:4px;font-size:14px;font-weight:700}.mapbox-marker-label--selected{color:var(--mapbox-selected-color);-webkit-text-stroke:3px #f60}.mapbox-marker-placeholder{opacity:0;white-space:nowrap;pointer-events:none;margin-bottom:4px;font-size:14px;font-weight:700}.mapbox-unit-status{pointer-events:none;margin-bottom:4px;position:absolute;bottom:90%;left:50%;transform:translate(-50%)}.mapbox-control-btn{padding:var(--mapbox-control-btn-padding-y)var(--mapbox-control-btn-padding-x);font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);cursor:pointer;transition:all var(--mapbox-transition-duration);pointer-events:auto;background-color:#0000;flex-shrink:0;justify-content:center;align-items:center;gap:4px;display:flex}.mapbox-control-btn:hover{background-color:var(--mapbox-control-bg-hover);border-color:var(--mapbox-control-border-color-hover)}.mapbox-control-btn--active,.mapbox-control-btn--active:hover{background-color:var(--mapbox-control-active-bg);border-color:var(--mapbox-control-active-border)}.mapbox-control-btn__icon{flex-shrink:0;width:14px;height:14px}.mapbox-control-btn__icon--lg{width:18px;height:18px}.mapbox-control-btn__icon--xl{width:22px;height:22px}.mapboxgl-map{-webkit-tap-highlight-color:#0000;font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;position:relative;overflow:hidden}.mapboxgl-canvas{position:absolute;top:0;left:0}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom,.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-left,.mapboxgl-ctrl-right,.mapboxgl-ctrl-top,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;z-index:2;position:absolute}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top{top:0;left:50%;transform:translate(-50%)}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-right{top:50%;right:0;transform:translateY(-50%)}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl-bottom{bottom:0;left:50%;transform:translate(-50%)}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-left{top:50%;left:0;transform:translateY(-50%)}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.mapboxgl-ctrl-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-bottom .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,.mapboxgl-ctrl-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px buttontext}}.mapboxgl-ctrl-group button{background-color:initial;box-sizing:border-box;cursor:pointer;border:0;outline:none;width:29px;height:29px;padding:0;display:block;overflow:hidden}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;width:100%;height:100%;display:block}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:initial}.mapboxgl-ctrl-group button+button{border-top:1px solid buttontext}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:#0000000d}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M3.3335 11.6666C3.3335 12.5871 4.07969 13.3333 5.00016 13.3333C5.92064 13.3333 6.66683 12.5871 6.66683 11.6666L6.66683 6.66659L11.6668 6.66659C12.5873 6.66659 13.3335 5.92039 13.3335 4.99992C13.3335 4.07944 12.5873 3.33325 11.6668 3.33325H3.3335V11.6666Z' fill='currentColor'/%3E%3Cpath d='M26.6668 11.6666C26.6668 12.5871 25.9206 13.3333 25.0002 13.3333C24.0797 13.3333 23.3335 12.5871 23.3335 11.6666L23.3335 6.66659L18.3335 6.66659C17.413 6.66659 16.6668 5.92039 16.6668 4.99992C16.6668 4.07944 17.413 3.33325 18.3335 3.33325H26.6668L26.6668 11.6666Z' fill='currentColor'/%3E%3Cpath d='M13.3335 24.9999C13.3335 25.9204 12.5873 26.6666 11.6668 26.6666H3.3335V18.3333C3.3335 17.4128 4.07969 16.6666 5.00016 16.6666C5.92064 16.6666 6.66683 17.4128 6.66683 18.3333V23.3333H11.6668C12.5873 23.3333 13.3335 24.0794 13.3335 24.9999Z' fill='currentColor'/%3E%3Cpath d='M18.3335 26.6666C17.413 26.6666 16.6668 25.9204 16.6668 24.9999C16.6668 24.0794 17.413 23.3333 18.3335 23.3333H23.3335V18.3333C23.3335 17.4128 24.0797 16.6666 25.0002 16.6666C25.9206 16.6666 26.6668 17.4128 26.6668 18.3333V26.6666H18.3335Z' fill='currentColor'/%3E%3C/svg%3E");background-size:26px 26px}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle.mapboxgl-ctrl-level-button-selected .mapboxgl-ctrl-icon{filter:invert()brightness()}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:2s linear infinite mapboxgl-spin}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;width:88px;height:23px;margin:0 0 -4px -4px;display:block;overflow:hidden}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:initial;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{box-sizing:initial;background-color:#fff;border-radius:12px;min-height:20px;margin:10px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{visibility:visible;padding:2px 28px 2px 8px}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{box-sizing:border-box;cursor:pointer;background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;outline:none;width:24px;height:24px;display:none;position:absolute;top:0;right:0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:#000000bf;text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{margin-left:2px;font-weight:700}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{box-sizing:border-box;color:#333;white-space:nowrap;background-color:#ffffffbf;border:2px solid #333;border-top:#333;padding:0 5px;font-size:10px}.mapboxgl-popup{pointer-events:none;will-change:transform;display:flex;position:absolute;top:0;left:0}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{z-index:1;border:10px solid #0000;width:0;height:0}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{border-top:none;border-bottom-color:#fff;align-self:center}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{border-top:none;border-bottom-color:#fff;border-left:none;align-self:flex-start}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{border-top:none;border-bottom-color:#fff;border-right:none;align-self:flex-end}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{border-top-color:#fff;border-bottom:none;align-self:center}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{border-top-color:#fff;border-bottom:none;border-left:none;align-self:flex-start}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{border-top-color:#fff;border-bottom:none;border-right:none;align-self:flex-end}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{border-left:none;border-right-color:#fff;align-self:center}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{border-left-color:#fff;border-right:none;align-self:center}.mapboxgl-popup-close-button{background-color:initial;cursor:pointer;border:0;border-radius:0 3px 0 0;position:absolute;top:0;right:0}.mapboxgl-popup-close-button:hover{background-color:#0000000d}.mapboxgl-popup-content{pointer-events:auto;background:#fff;border-radius:3px;padding:10px 10px 15px;position:relative;box-shadow:0 1px 2px #0000001a}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{opacity:1;will-change:transform;transition:opacity .2s;position:absolute;top:0;left:0}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;width:15px;height:15px}.mapboxgl-user-location-dot:before{content:"";animation:2s infinite mapboxgl-user-location-dot-pulse;position:absolute}.mapboxgl-user-location-dot:after{box-sizing:border-box;content:"";border:2px solid #fff;border-radius:50%;width:19px;height:19px;position:absolute;top:-2px;left:-2px;box-shadow:0 0 3px #00000059}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{width:0;height:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{content:"";border-bottom:7.5px solid #4aa1eb;position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid #0000;transform:translateY(-28px)skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid #0000;transform:translate(7.5px,-28px)skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;width:1px;height:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{opacity:.5;background:#fff;border:2px dotted #202020;width:0;height:0;position:absolute;top:0;left:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{color:#fff;opacity:0;pointer-events:none;text-align:center;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;transition:opacity .75s ease-in-out 1s;display:flex;position:absolute;top:0;left:0}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-ctrl-separator{background-color:#e0e0e0;height:1px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button{color:#333;width:50px;height:50px;font-size:18px;font-weight:700}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:last-child{border-bottom-right-radius:8px;border-bottom-left-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:hover{background-color:#f5f5f5}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected{color:#fff;background-color:#4a5568}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected:hover{background-color:#2d3748}.entity-popup{background:#fff;border-radius:8px;position:relative;box-shadow:0 4px 12px #00000026}.entity-popup__close{cursor:pointer;color:#666;background:#0000000d;border:none;border-radius:4px;width:24px;height:24px;font-size:20px;line-height:1;transition:all .2s;position:absolute;top:8px;right:8px}.entity-popup__close:hover{color:#333;background:#0000001a}.entity-popup__content{padding:16px}.entity-popup--entering.animation-fade{animation:.2s ease-out forwards popup-fade-in}.entity-popup--entering.animation-scale{animation:.2s cubic-bezier(.34,1.56,.64,1) forwards popup-scale-in}.entity-popup--entering.animation-fade-scale{animation:.25s ease-out forwards popup-fade-scale-in}.entity-popup--exiting.animation-fade{animation:.15s ease-in forwards popup-fade-out}.entity-popup--exiting.animation-scale{animation:.15s ease-in forwards popup-scale-out}.entity-popup--exiting.animation-fade-scale{animation:.2s ease-in forwards popup-fade-scale-out}@keyframes popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes popup-fade-out{0%{opacity:1}to{opacity:0}}@keyframes popup-scale-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes popup-fade-scale-in{0%{opacity:0;transform:scale(.9)translateY(-5px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes popup-fade-scale-out{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.95)translateY(-3px)}}.mapbox-coordinate-display{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;transition:opacity .2s;display:flex}.mapbox-coordinate-display:hover{opacity:.8}.mapbox-coordinate-display--copied{opacity:1}.mapbox-coordinate-display{min-width:240px}.mapbox-coordinate-display__icon{flex-shrink:0;width:14px;height:14px}.mapbox-coordinate-display__content{gap:16px;display:flex}.mapbox-coordinate-display__item{min-width:110px}.mapbox-coordinate-display__copied{color:#fff;text-align:center;min-width:236px}.mapbox-scale-control{pointer-events:none;justify-content:space-between;align-items:center;gap:8px;min-width:180px;display:flex}.mapbox-scale-control__bar-wrapper{align-items:center;gap:8px;display:flex}.mapbox-scale-control__icon{flex-shrink:0;width:18px}.mapbox-scale-control__bar{background-color:var(--mapbox-text-color);height:2px;position:relative}.mapbox-scale-control__tick{background-color:var(--mapbox-text-color);width:2px;height:10px;position:absolute;top:-4px}.mapbox-scale-control__tick--left{left:0}.mapbox-scale-control__tick--right{right:0}.mapbox-scale-control__label{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);white-space:nowrap;min-width:40px}.mapbox-reset-view-control__icon{width:14px;height:14px}.mapbox-road-highlight-control{pointer-events:auto;flex-direction:column;display:flex;position:relative}.mapbox-road-highlight-control__btn{min-width:100px}.mapbox-road-highlight-control__btn--active,.mapbox-road-highlight-control__btn--active:hover{background-color:var(--mapbox-road-highlight-active-bg);border-color:var(--mapbox-road-highlight-active-border)}.mapbox-road-highlight-control__btn-icon{flex-shrink:0;width:22px}.mapbox-road-highlight-control__panel{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);color:var(--mapbox-text-color);font-size:var(--mapbox-font-size);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#000000e6;min-width:220px;margin-bottom:8px;padding:12px;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #00000080}.mapbox-road-highlight-control__panel-header{border-bottom:1px solid #fff3;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.mapbox-road-highlight-control__panel-title{font-size:13px;font-weight:700}.mapbox-road-highlight-control__scroll{max-height:240px;margin-bottom:12px;padding-right:4px;overflow-y:auto}.mapbox-road-highlight-control__scroll::-webkit-scrollbar{width:6px}.mapbox-road-highlight-control__scroll::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.mapbox-road-highlight-control__scroll::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.mapbox-road-highlight-control__scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.mapbox-road-highlight-control__type-list{flex-direction:column;gap:4px;display:flex}.mapbox-road-highlight-control__type-item{transition:background-color var(--mapbox-transition-duration);cursor:pointer;border-radius:3px;align-items:center;gap:8px;min-height:28px;padding:6px 8px;display:flex}.mapbox-road-highlight-control__type-item:hover{background-color:var(--mapbox-control-bg-hover)}.mapbox-road-highlight-control__color-indicator{vertical-align:middle;border-radius:2px;flex-shrink:0;width:14px;height:14px;display:inline-block;box-shadow:0 0 0 1px #fff3}.mapbox-road-highlight-control__type-label{font-size:var(--mapbox-font-size);color:var(--mapbox-text-color);vertical-align:middle}.mapbox-road-highlight-control__tip{font-size:var(--mapbox-font-size-sm);color:#64b5f6;background-color:#2196f326;border-radius:3px;padding:8px;line-height:1.4}.mapbox-road-highlight-control__warning{font-size:var(--mapbox-font-size-sm);color:#ffc107;background-color:#ffc10733;border-radius:3px;margin-top:8px;padding:6px}.mapbox-road-highlight-control .arco-checkbox{padding:0;line-height:1}.mapbox-road-highlight-control .arco-checkbox-icon{width:14px;height:14px}.road-highlight-popup .mapboxgl-popup-content{background:#fffffff2;border-radius:6px;padding:10px 12px;box-shadow:0 2px 10px #0003}.road-highlight-popup .mapboxgl-popup-tip{border-top-color:#fffffff2}.road-highlight-popup__content{min-width:160px;font-size:12px;line-height:1.6}.road-highlight-popup__title{color:#333;border-bottom:1px solid #eee;margin-bottom:8px;padding-bottom:6px;font-size:13px;font-weight:700}.road-highlight-popup__info{color:#666}.road-highlight-popup__row{justify-content:space-between;margin-bottom:4px;display:flex}.road-highlight-popup__value{color:#333}.mapbox-measure-control{pointer-events:auto;flex-direction:column;display:flex;position:relative}.mapbox-measure-control__btn{min-width:90px}.mapbox-measure-control__btn--active,.mapbox-measure-control__btn--active:hover{background-color:var(--mapbox-control-active-bg);border-color:var(--mapbox-control-active-border)}.mapbox-measure-control__btn-icon{flex-shrink:0;width:16px;height:15px}.mapbox-measure-control__panel{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);color:var(--mapbox-text-color);font-size:var(--mapbox-font-size);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background-color:#000000eb;min-width:360px;margin-bottom:8px;padding:12px;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #00000080}.mapbox-measure-control__section-title{color:#ffffff80;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:11px}.mapbox-measure-control__settings{border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;display:flex}.mapbox-measure-control__settings .arco-checkbox{padding:0;line-height:1}.mapbox-measure-control__settings .arco-checkbox .arco-checkbox-text{font-size:var(--mapbox-font-size);color:var(--mapbox-text-color)}.mapbox-measure-control__settings .arco-checkbox-icon{width:14px;height:14px}.mapbox-measure-control__tools{border-bottom:1px solid #ffffff1a;align-items:center;gap:6px;margin-bottom:12px;padding-bottom:10px;display:flex}.mapbox-measure-control__tool-btn{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);cursor:pointer;width:32px;height:28px;transition:all var(--mapbox-transition-duration);background-color:#0000;justify-content:center;align-items:center;padding:0;display:flex}.mapbox-measure-control__tool-btn img{-o-object-fit:contain;object-fit:contain;width:14px;height:14px}.mapbox-measure-control__tool-btn:hover{background-color:var(--mapbox-control-bg-hover);border-color:var(--mapbox-control-border-color-hover)}.mapbox-measure-control__tool-btn--active,.mapbox-measure-control__tool-btn--active:hover{background-color:var(--mapbox-control-active-bg);border-color:var(--mapbox-control-active-border)}.mapbox-measure-control__tool-btn--danger{color:#ff6b6b;margin-left:auto}.mapbox-measure-control__tool-btn--danger img{width:12px;height:12px}.mapbox-measure-control__tool-btn--danger:hover{background-color:#ff6b6b26;border-color:#ff6b6b66}.mapbox-measure-control__list{max-height:200px;padding-right:4px;overflow-y:auto}.mapbox-measure-control__list::-webkit-scrollbar{width:6px}.mapbox-measure-control__list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.mapbox-measure-control__list::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.mapbox-measure-control__list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.mapbox-measure-control__table{border-collapse:collapse;width:100%;font-size:11px}.mapbox-measure-control__table th,.mapbox-measure-control__table td{text-align:left;white-space:nowrap;padding:4px 6px}.mapbox-measure-control__table th{color:#ffffff80;border-bottom:1px solid #ffffff1a;font-weight:400}.mapbox-measure-control__table td{color:var(--mapbox-text-color);border-bottom:1px solid #ffffff0d}.mapbox-measure-control__table tr:hover td{background-color:#ffffff0d}.mapbox-measure-control__table tr.mapbox-measure-control__table-row{cursor:pointer}.mapbox-measure-control__delete-btn{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:all .15s;display:inline-flex}.mapbox-measure-control__delete-btn img{width:12px;height:12px}.mapbox-measure-control__delete-btn:hover{opacity:1;background-color:#ff6b6b33}.mapbox-measure-control__empty{text-align:center;color:#ffffff4d;padding:16px 0;font-size:11px}.mapbox-raster-paint-control{pointer-events:auto;flex-direction:column;display:flex;position:relative}.mapbox-raster-paint-control__btn{min-width:70px}.mapbox-raster-paint-control__btn--active,.mapbox-raster-paint-control__btn--active:hover{background-color:var(--mapbox-control-active-bg);border-color:var(--mapbox-control-active-border)}.mapbox-raster-paint-control__btn-icon{flex-shrink:0;width:16px;height:15px}.mapbox-raster-paint-control__panel{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);color:var(--mapbox-text-color);font-size:var(--mapbox-font-size);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background-color:#000000eb;min-width:280px;margin-bottom:8px;padding:12px;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #00000080}.mapbox-raster-paint-control__slider-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.mapbox-raster-paint-control__slider-row:last-of-type{margin-bottom:0}.mapbox-raster-paint-control__label{color:#ffffffb3;text-align:right;flex-shrink:0;width:50px;font-size:11px}.mapbox-raster-paint-control__slider{flex:1;min-width:0}.mapbox-raster-paint-control__slider .arco-slider-bar{background-color:var(--mapbox-control-active-bg)}.mapbox-raster-paint-control__slider .arco-slider-button{width:12px;height:12px}.mapbox-raster-paint-control__value{color:#ffffff80;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;width:40px;font-size:11px}.mapbox-raster-paint-control__reset{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);color:#fff9;cursor:pointer;width:100%;transition:all var(--mapbox-transition-duration);background-color:#0000;justify-content:center;align-items:center;margin-top:12px;padding:4px 0;font-size:11px;display:flex}.mapbox-raster-paint-control__reset:hover{background-color:var(--mapbox-control-bg-hover);border-color:var(--mapbox-control-border-color-hover);color:var(--mapbox-text-color)}.mapbox-edit-control{position:relative}.mapbox-edit-control .mapbox-edit-control__btn-group{-moz-column-gap:12px;align-items:center;column-gap:12px;display:flex}.mapbox-edit-control__btn-icon{-o-object-fit:contain;object-fit:contain;width:14px;height:14px}.mapbox-edit-control__btn-icon--lg{width:18px;height:18px}.mapbox-edit-control__panel{border-radius:var(--mapbox-context-menu-radius);z-index:100;background-color:#000000d9;min-width:160px;position:absolute;bottom:calc(100% + 8px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.mapbox-edit-control__panel-header{font-size:var(--mapbox-font-size-sm);color:var(--mapbox-text-secondary-color);border-bottom:1px solid #ffffff1a;padding:8px 12px}.mapbox-edit-control__template-list{padding:8px}.mapbox-edit-control__template-item{border-radius:var(--mapbox-control-radius);cursor:pointer;background-color:#0000;border:1px solid #0000;align-items:center;gap:8px;padding:6px 8px;transition:all .15s;display:flex}.mapbox-edit-control__template-item:hover{background-color:var(--mapbox-control-bg-hover)}.mapbox-edit-control__template-item--selected{background-color:var(--mapbox-control-active-bg);border-color:#3388ff80}.mapbox-edit-control__template-item--selected:hover{background-color:var(--mapbox-control-active-bg)}.mapbox-edit-control__template-icon{-o-object-fit:contain;object-fit:contain;width:24px;height:24px}.mapbox-edit-control__template-name{font-size:var(--mapbox-font-size);color:var(--mapbox-text-color)}.context-menu{z-index:10000;background:#fff;border-radius:6px;min-width:120px;padding:4px 0;animation:.15s ease-out context-menu-fade-in;box-shadow:0 2px 12px #00000026,0 0 1px #0000001a}.context-menu__item{cursor:pointer;color:#333;align-items:center;padding:8px 12px;font-size:14px;transition:background-color .15s;display:flex}.context-menu__item:hover{background-color:#0000000d}.context-menu__item--danger{color:#e53935}.context-menu__item--danger:hover{background-color:#e5393514}.context-menu__item-icon{align-items:center;margin-right:8px;font-size:16px;display:flex}.context-menu__item-label{flex:1}@keyframes context-menu-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.mapbox-route-planning-control{pointer-events:auto;flex-direction:column;display:flex;position:relative}.mapbox-route-planning-control--floating{z-index:10;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}.mapbox-route-planning-control__btn{min-width:80px}.mapbox-route-planning-control__btn--active,.mapbox-route-planning-control__btn--active:hover{background-color:#4a90d94d;border-color:#4a90d999}.mapbox-route-planning-control__btn--planning{opacity:.7;cursor:wait}.mapbox-route-planning-control__btn--planning:hover{background-color:#0000}.mapbox-route-planning-control__btn-icon{flex-shrink:0;width:14px;margin-right:4px;transform:scale(1.4)}.mapbox-route-planning-control__panel{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background-color:#000000e6;min-width:200px;margin-bottom:8px;padding:12px;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #00000080}.mapbox-route-planning-control__panel-header{border-bottom:1px solid #ffffff1a;margin-bottom:10px;padding-bottom:8px}.mapbox-route-planning-control__panel-title{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);font-weight:500}.mapbox-route-planning-control__panel-body{flex-direction:column;gap:10px;display:flex}.mapbox-route-planning-control__panel-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.mapbox-route-planning-control__panel-label{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);white-space:nowrap}.mapbox-route-planning-control__panel-value{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:#ffffffb3}.mapbox-route-planning-control__panel-input{width:56px;height:26px;font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);text-align:center;background-color:#ffffff1a;outline:none;padding:2px 6px}.mapbox-route-planning-control__panel-input:focus{border-color:#4a90d999}.mapbox-route-planning-control__panel-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mapbox-route-planning-control__panel-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mapbox-route-planning-control__panel-input{-moz-appearance:textfield}.mapbox-route-planning-control__panel-tip{font-size:11px;font-family:var(--mapbox-font-family);color:#fff6}.mapbox-route-planning-control__panel-start{width:100%;height:30px;font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:#fff;border-radius:var(--mapbox-control-radius);cursor:pointer;background-color:#4a90d9cc;border:none;padding:0 12px;transition:background-color .2s}.mapbox-route-planning-control__panel-start:hover{background-color:#4a90d9}.mapbox-route-planning-control__panel-start:disabled{opacity:.4;cursor:not-allowed}.route-planning-temp-marker{color:#fff;cursor:default;background-color:#4a90d9;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex;box-shadow:0 2px 6px #0000004d}
1
+ .comp-mapbox{--mapbox-primary-color:#38f;--mapbox-selected-color:#fc0;--mapbox-selected-glow-color:#f60;--mapbox-text-color:#fff;--mapbox-text-secondary-color:#fff9;--mapbox-text-dark-color:#333;--mapbox-danger-color:#e53935;--mapbox-control-bg:#00000080;--mapbox-control-bg-hover:#ffffff1a;--mapbox-control-border-color:#ffffff4d;--mapbox-control-border-color-hover:#ffffff80;--mapbox-control-active-bg:#3388ff4d;--mapbox-control-active-border:#38fc;--mapbox-popup-bg:#fff;--mapbox-popup-shadow:0 4px 12px #00000026;--mapbox-popup-close-bg:#0000000d;--mapbox-popup-close-bg-hover:#0000001a;--mapbox-context-menu-bg:#fff;--mapbox-context-menu-shadow:0 2px 12px #00000026,0 0 1px #0000001a;--mapbox-context-menu-hover-bg:#0000000d;--mapbox-context-menu-danger-hover-bg:#e5393514;--mapbox-trajectory-color:#0f8;--mapbox-marker-label-color:#fff;--mapbox-marker-label-shadow:0 0 2px #000c,0 0 2px #000c,0 0 1px #000c,0 0 1px #000c;--mapbox-marker-label-selected-shadow:0 0 4px #f60,0 0 4px #f60,0 0 2px #f60,0 0 2px #f60;--mapbox-road-highlight-active-bg:#f603;--mapbox-road-highlight-active-border:#ff660080;--mapbox-control-radius:4px;--mapbox-control-gap:24px;--mapbox-control-padding-x:16px;--mapbox-control-padding-y:6px;--mapbox-control-btn-padding-x:12px;--mapbox-control-btn-padding-y:4px;--mapbox-font-size:12px;--mapbox-font-size-sm:11px;--mapbox-font-family:Arial,sans-serif;--mapbox-popup-radius:8px;--mapbox-context-menu-radius:6px;--mapbox-picker-marker-size:24px;--mapbox-transition-duration:.2s;--mapbox-control-z-index:10;--mapbox-popup-z-index:1000;--mapbox-context-menu-z-index:1100;width:100%;height:100%;position:relative;overflow:hidden}.comp-mapbox__map{width:100%;height:100%;position:absolute;top:0;left:0}.comp-mapbox__map .mapboxgl-ctrl-logo,.comp-mapbox__map .mapboxgl-ctrl-attrib{display:none!important}.comp-mapbox--picker-mode .mapboxgl-canvas-container.mapboxgl-interactive{cursor:crosshair!important}.comp-mapbox__controls{align-items:center;gap:var(--mapbox-control-gap);background-color:var(--mapbox-control-bg);padding:var(--mapbox-control-padding-y)var(--mapbox-control-padding-x);border-radius:var(--mapbox-control-radius);z-index:var(--mapbox-control-z-index);font-family:monospace;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.comp-mapbox__edit-controls{background-color:var(--mapbox-control-bg);padding:var(--mapbox-control-padding-y)var(--mapbox-control-padding-x);border-radius:var(--mapbox-control-radius);z-index:var(--mapbox-control-z-index);align-items:center;gap:12px;display:flex;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}.comp-mapbox__edit-controls--hidden{z-index:-100;pointer-events:none;opacity:0}.comp-mapbox__crosshair{pointer-events:none;z-index:5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.comp-mapbox__crosshair-h,.comp-mapbox__crosshair-v{background-color:var(--mapbox-primary-color);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.comp-mapbox__crosshair-h{width:20px;height:2px}.comp-mapbox__crosshair-v{width:2px;height:20px}.mapbox-picker-marker{flex-direction:column;align-items:center;display:flex}.mapbox-picker-marker .marker-inner{width:var(--mapbox-picker-marker-size);height:var(--mapbox-picker-marker-size);cursor:crosshair;border:2px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px #0000004d}.mapbox-picker-marker .marker-label{white-space:nowrap;paint-order:stroke fill;pointer-events:none;margin-top:4px;font-size:14px;font-weight:700}.mapbox-marker-container{pointer-events:auto;cursor:pointer;flex-direction:column;align-items:center;display:flex;position:relative}.mapbox-marker-label{color:var(--mapbox-marker-label-color);text-shadow:none;-webkit-text-stroke:1.5px #000c;paint-order:stroke fill;white-space:nowrap;pointer-events:auto;cursor:pointer;margin-top:4px;font-size:14px;font-weight:700}.mapbox-marker-label--selected{color:var(--mapbox-selected-color);-webkit-text-stroke:3px #f60}.mapbox-marker-placeholder{opacity:0;white-space:nowrap;pointer-events:none;margin-bottom:4px;font-size:14px;font-weight:700}.mapbox-unit-status{pointer-events:none;margin-bottom:4px;position:absolute;bottom:90%;left:50%;transform:translate(-50%)}.mapbox-control-btn{padding:var(--mapbox-control-btn-padding-y)var(--mapbox-control-btn-padding-x);font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);cursor:pointer;transition:all var(--mapbox-transition-duration);pointer-events:auto;background-color:#0000;flex-shrink:0;justify-content:center;align-items:center;gap:4px;display:flex}.mapbox-control-btn:hover{background-color:var(--mapbox-control-bg-hover);border-color:var(--mapbox-control-border-color-hover)}.mapbox-control-btn--active,.mapbox-control-btn--active:hover{background-color:var(--mapbox-control-active-bg);border-color:var(--mapbox-control-active-border)}.mapbox-control-btn__icon{flex-shrink:0;width:14px;height:14px}.mapbox-control-btn__icon--lg{width:18px;height:18px}.mapbox-control-btn__icon--xl{width:22px;height:22px}.mapboxgl-map{-webkit-tap-highlight-color:#0000;font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;position:relative;overflow:hidden}.mapboxgl-canvas{position:absolute;top:0;left:0}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom,.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-left,.mapboxgl-ctrl-right,.mapboxgl-ctrl-top,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;z-index:2;position:absolute}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top{top:0;left:50%;transform:translate(-50%)}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-right{top:50%;right:0;transform:translateY(-50%)}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl-bottom{bottom:0;left:50%;transform:translate(-50%)}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-left{top:50%;left:0;transform:translateY(-50%)}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.mapboxgl-ctrl-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-bottom .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,.mapboxgl-ctrl-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px buttontext}}.mapboxgl-ctrl-group button{background-color:initial;box-sizing:border-box;cursor:pointer;border:0;outline:none;width:29px;height:29px;padding:0;display:block;overflow:hidden}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;width:100%;height:100%;display:block}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:initial}.mapboxgl-ctrl-group button+button{border-top:1px solid buttontext}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:#0000000d}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M3.3335 11.6666C3.3335 12.5871 4.07969 13.3333 5.00016 13.3333C5.92064 13.3333 6.66683 12.5871 6.66683 11.6666L6.66683 6.66659L11.6668 6.66659C12.5873 6.66659 13.3335 5.92039 13.3335 4.99992C13.3335 4.07944 12.5873 3.33325 11.6668 3.33325H3.3335V11.6666Z' fill='currentColor'/%3E%3Cpath d='M26.6668 11.6666C26.6668 12.5871 25.9206 13.3333 25.0002 13.3333C24.0797 13.3333 23.3335 12.5871 23.3335 11.6666L23.3335 6.66659L18.3335 6.66659C17.413 6.66659 16.6668 5.92039 16.6668 4.99992C16.6668 4.07944 17.413 3.33325 18.3335 3.33325H26.6668L26.6668 11.6666Z' fill='currentColor'/%3E%3Cpath d='M13.3335 24.9999C13.3335 25.9204 12.5873 26.6666 11.6668 26.6666H3.3335V18.3333C3.3335 17.4128 4.07969 16.6666 5.00016 16.6666C5.92064 16.6666 6.66683 17.4128 6.66683 18.3333V23.3333H11.6668C12.5873 23.3333 13.3335 24.0794 13.3335 24.9999Z' fill='currentColor'/%3E%3Cpath d='M18.3335 26.6666C17.413 26.6666 16.6668 25.9204 16.6668 24.9999C16.6668 24.0794 17.413 23.3333 18.3335 23.3333H23.3335V18.3333C23.3335 17.4128 24.0797 16.6666 25.0002 16.6666C25.9206 16.6666 26.6668 17.4128 26.6668 18.3333V26.6666H18.3335Z' fill='currentColor'/%3E%3C/svg%3E");background-size:26px 26px}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle.mapboxgl-ctrl-level-button-selected .mapboxgl-ctrl-icon{filter:invert()brightness()}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:2s linear infinite mapboxgl-spin}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;width:88px;height:23px;margin:0 0 -4px -4px;display:block;overflow:hidden}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:initial;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{box-sizing:initial;background-color:#fff;border-radius:12px;min-height:20px;margin:10px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{visibility:visible;padding:2px 28px 2px 8px}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{box-sizing:border-box;cursor:pointer;background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;outline:none;width:24px;height:24px;display:none;position:absolute;top:0;right:0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:#000000bf;text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{margin-left:2px;font-weight:700}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{box-sizing:border-box;color:#333;white-space:nowrap;background-color:#ffffffbf;border:2px solid #333;border-top:#333;padding:0 5px;font-size:10px}.mapboxgl-popup{pointer-events:none;will-change:transform;display:flex;position:absolute;top:0;left:0}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{z-index:1;border:10px solid #0000;width:0;height:0}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{border-top:none;border-bottom-color:#fff;align-self:center}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{border-top:none;border-bottom-color:#fff;border-left:none;align-self:flex-start}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{border-top:none;border-bottom-color:#fff;border-right:none;align-self:flex-end}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{border-top-color:#fff;border-bottom:none;align-self:center}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{border-top-color:#fff;border-bottom:none;border-left:none;align-self:flex-start}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{border-top-color:#fff;border-bottom:none;border-right:none;align-self:flex-end}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{border-left:none;border-right-color:#fff;align-self:center}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{border-left-color:#fff;border-right:none;align-self:center}.mapboxgl-popup-close-button{background-color:initial;cursor:pointer;border:0;border-radius:0 3px 0 0;position:absolute;top:0;right:0}.mapboxgl-popup-close-button:hover{background-color:#0000000d}.mapboxgl-popup-content{pointer-events:auto;background:#fff;border-radius:3px;padding:10px 10px 15px;position:relative;box-shadow:0 1px 2px #0000001a}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{opacity:1;will-change:transform;transition:opacity .2s;position:absolute;top:0;left:0}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;width:15px;height:15px}.mapboxgl-user-location-dot:before{content:"";animation:2s infinite mapboxgl-user-location-dot-pulse;position:absolute}.mapboxgl-user-location-dot:after{box-sizing:border-box;content:"";border:2px solid #fff;border-radius:50%;width:19px;height:19px;position:absolute;top:-2px;left:-2px;box-shadow:0 0 3px #00000059}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{width:0;height:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{content:"";border-bottom:7.5px solid #4aa1eb;position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid #0000;transform:translateY(-28px)skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid #0000;transform:translate(7.5px,-28px)skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;width:1px;height:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{opacity:.5;background:#fff;border:2px dotted #202020;width:0;height:0;position:absolute;top:0;left:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{color:#fff;opacity:0;pointer-events:none;text-align:center;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;transition:opacity .75s ease-in-out 1s;display:flex;position:absolute;top:0;left:0}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-ctrl-separator{background-color:#e0e0e0;height:1px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button{color:#333;width:50px;height:50px;font-size:18px;font-weight:700}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:last-child{border-bottom-right-radius:8px;border-bottom-left-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:hover{background-color:#f5f5f5}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected{color:#fff;background-color:#4a5568}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected:hover{background-color:#2d3748}.entity-popup{background:#fff;border-radius:8px;position:relative;box-shadow:0 4px 12px #00000026}.entity-popup__close{cursor:pointer;color:#666;background:#0000000d;border:none;border-radius:4px;width:24px;height:24px;font-size:20px;line-height:1;transition:all .2s;position:absolute;top:8px;right:8px}.entity-popup__close:hover{color:#333;background:#0000001a}.entity-popup__content{padding:16px}.entity-popup--entering.animation-fade{animation:.2s ease-out forwards popup-fade-in}.entity-popup--entering.animation-scale{animation:.2s cubic-bezier(.34,1.56,.64,1) forwards popup-scale-in}.entity-popup--entering.animation-fade-scale{animation:.25s ease-out forwards popup-fade-scale-in}.entity-popup--exiting.animation-fade{animation:.15s ease-in forwards popup-fade-out}.entity-popup--exiting.animation-scale{animation:.15s ease-in forwards popup-scale-out}.entity-popup--exiting.animation-fade-scale{animation:.2s ease-in forwards popup-fade-scale-out}@keyframes popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes popup-fade-out{0%{opacity:1}to{opacity:0}}@keyframes popup-scale-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes popup-fade-scale-in{0%{opacity:0;transform:scale(.9)translateY(-5px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes popup-fade-scale-out{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.95)translateY(-3px)}}.mapbox-coordinate-display{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;transition:opacity .2s;display:flex}.mapbox-coordinate-display:hover{opacity:.8}.mapbox-coordinate-display--copied{opacity:1}.mapbox-coordinate-display{min-width:240px}.mapbox-coordinate-display__icon{flex-shrink:0;width:14px;height:14px}.mapbox-coordinate-display__content{gap:16px;display:flex}.mapbox-coordinate-display__item{min-width:110px}.mapbox-coordinate-display__copied{color:#fff;text-align:center;min-width:236px}.mapbox-scale-control{pointer-events:none;justify-content:space-between;align-items:center;gap:8px;min-width:180px;display:flex}.mapbox-scale-control__bar-wrapper{align-items:center;gap:8px;display:flex}.mapbox-scale-control__icon{flex-shrink:0;width:18px}.mapbox-scale-control__bar{background-color:var(--mapbox-text-color);height:2px;position:relative}.mapbox-scale-control__tick{background-color:var(--mapbox-text-color);width:2px;height:10px;position:absolute;top:-4px}.mapbox-scale-control__tick--left{left:0}.mapbox-scale-control__tick--right{right:0}.mapbox-scale-control__label{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);white-space:nowrap;min-width:40px}.mapbox-reset-view-control__icon{width:14px;height:14px}.mapbox-road-highlight-control{pointer-events:auto;flex-direction:column;display:flex;position:relative}.mapbox-road-highlight-control__btn{min-width:100px}.mapbox-road-highlight-control__btn--active,.mapbox-road-highlight-control__btn--active:hover{background-color:var(--mapbox-road-highlight-active-bg);border-color:var(--mapbox-road-highlight-active-border)}.mapbox-road-highlight-control__btn-icon{flex-shrink:0;width:22px}.mapbox-road-highlight-control__panel{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);color:var(--mapbox-text-color);font-size:var(--mapbox-font-size);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#000000e6;min-width:220px;margin-bottom:8px;padding:12px;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #00000080}.mapbox-road-highlight-control__panel-header{border-bottom:1px solid #fff3;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.mapbox-road-highlight-control__panel-title{font-size:13px;font-weight:700}.mapbox-road-highlight-control__scroll{max-height:240px;margin-bottom:12px;padding-right:4px;overflow-y:auto}.mapbox-road-highlight-control__scroll::-webkit-scrollbar{width:6px}.mapbox-road-highlight-control__scroll::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.mapbox-road-highlight-control__scroll::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.mapbox-road-highlight-control__scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.mapbox-road-highlight-control__type-list{flex-direction:column;gap:4px;display:flex}.mapbox-road-highlight-control__type-item{transition:background-color var(--mapbox-transition-duration);cursor:pointer;border-radius:3px;align-items:center;gap:8px;min-height:28px;padding:6px 8px;display:flex}.mapbox-road-highlight-control__type-item:hover{background-color:var(--mapbox-control-bg-hover)}.mapbox-road-highlight-control__color-indicator{vertical-align:middle;border-radius:2px;flex-shrink:0;width:14px;height:14px;display:inline-block;box-shadow:0 0 0 1px #fff3}.mapbox-road-highlight-control__type-label{font-size:var(--mapbox-font-size);color:var(--mapbox-text-color);vertical-align:middle}.mapbox-road-highlight-control__tip{font-size:var(--mapbox-font-size-sm);color:#64b5f6;background-color:#2196f326;border-radius:3px;padding:8px;line-height:1.4}.mapbox-road-highlight-control__warning{font-size:var(--mapbox-font-size-sm);color:#ffc107;background-color:#ffc10733;border-radius:3px;margin-top:8px;padding:6px}.mapbox-road-highlight-control .arco-checkbox{padding:0;line-height:1}.mapbox-road-highlight-control .arco-checkbox-icon{width:14px;height:14px}.road-highlight-popup .mapboxgl-popup-content{background:#fffffff2;border-radius:6px;padding:10px 12px;box-shadow:0 2px 10px #0003}.road-highlight-popup .mapboxgl-popup-tip{border-top-color:#fffffff2}.road-highlight-popup__content{min-width:160px;font-size:12px;line-height:1.6}.road-highlight-popup__title{color:#333;border-bottom:1px solid #eee;margin-bottom:8px;padding-bottom:6px;font-size:13px;font-weight:700}.road-highlight-popup__info{color:#666}.road-highlight-popup__row{justify-content:space-between;margin-bottom:4px;display:flex}.road-highlight-popup__value{color:#333}.mapbox-measure-control{pointer-events:auto;flex-direction:column;display:flex;position:relative}.mapbox-measure-control__btn{min-width:90px}.mapbox-measure-control__btn--active,.mapbox-measure-control__btn--active:hover{background-color:var(--mapbox-control-active-bg);border-color:var(--mapbox-control-active-border)}.mapbox-measure-control__btn-icon{flex-shrink:0;width:16px;height:15px}.mapbox-measure-control__panel{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);color:var(--mapbox-text-color);font-size:var(--mapbox-font-size);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background-color:#000000eb;min-width:360px;margin-bottom:8px;padding:12px;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #00000080}.mapbox-measure-control__section-title{color:#ffffff80;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:11px}.mapbox-measure-control__settings{border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;display:flex}.mapbox-measure-control__settings .arco-checkbox{padding:0;line-height:1}.mapbox-measure-control__settings .arco-checkbox .arco-checkbox-text{font-size:var(--mapbox-font-size);color:var(--mapbox-text-color)}.mapbox-measure-control__settings .arco-checkbox-icon{width:14px;height:14px}.mapbox-measure-control__tools{border-bottom:1px solid #ffffff1a;align-items:center;gap:6px;margin-bottom:12px;padding-bottom:10px;display:flex}.mapbox-measure-control__tool-btn{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);cursor:pointer;width:32px;height:28px;transition:all var(--mapbox-transition-duration);background-color:#0000;justify-content:center;align-items:center;padding:0;display:flex}.mapbox-measure-control__tool-btn img{-o-object-fit:contain;object-fit:contain;width:14px;height:14px}.mapbox-measure-control__tool-btn:hover{background-color:var(--mapbox-control-bg-hover);border-color:var(--mapbox-control-border-color-hover)}.mapbox-measure-control__tool-btn--active,.mapbox-measure-control__tool-btn--active:hover{background-color:var(--mapbox-control-active-bg);border-color:var(--mapbox-control-active-border)}.mapbox-measure-control__tool-btn--danger{color:#ff6b6b;margin-left:auto}.mapbox-measure-control__tool-btn--danger img{width:12px;height:12px}.mapbox-measure-control__tool-btn--danger:hover{background-color:#ff6b6b26;border-color:#ff6b6b66}.mapbox-measure-control__list{max-height:200px;padding-right:4px;overflow-y:auto}.mapbox-measure-control__list::-webkit-scrollbar{width:6px}.mapbox-measure-control__list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.mapbox-measure-control__list::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.mapbox-measure-control__list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.mapbox-measure-control__table{border-collapse:collapse;width:100%;font-size:11px}.mapbox-measure-control__table th,.mapbox-measure-control__table td{text-align:left;white-space:nowrap;padding:4px 6px}.mapbox-measure-control__table th{color:#ffffff80;border-bottom:1px solid #ffffff1a;font-weight:400}.mapbox-measure-control__table td{color:var(--mapbox-text-color);border-bottom:1px solid #ffffff0d}.mapbox-measure-control__table tr:hover td{background-color:#ffffff0d}.mapbox-measure-control__table tr.mapbox-measure-control__table-row{cursor:pointer}.mapbox-measure-control__delete-btn{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:all .15s;display:inline-flex}.mapbox-measure-control__delete-btn img{width:12px;height:12px}.mapbox-measure-control__delete-btn:hover{opacity:1;background-color:#ff6b6b33}.mapbox-measure-control__empty{text-align:center;color:#ffffff4d;padding:16px 0;font-size:11px}.mapbox-raster-paint-control{pointer-events:auto;flex-direction:column;display:flex;position:relative}.mapbox-raster-paint-control__btn{min-width:70px}.mapbox-raster-paint-control__btn--active,.mapbox-raster-paint-control__btn--active:hover{background-color:var(--mapbox-control-active-bg);border-color:var(--mapbox-control-active-border)}.mapbox-raster-paint-control__btn-icon{flex-shrink:0;width:16px;height:15px}.mapbox-raster-paint-control__panel{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);color:var(--mapbox-text-color);font-size:var(--mapbox-font-size);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background-color:#000000eb;min-width:280px;margin-bottom:8px;padding:12px;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #00000080}.mapbox-raster-paint-control__slider-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.mapbox-raster-paint-control__slider-row:last-of-type{margin-bottom:0}.mapbox-raster-paint-control__label{color:#ffffffb3;text-align:right;flex-shrink:0;width:50px;font-size:11px}.mapbox-raster-paint-control__slider{flex:1;min-width:0}.mapbox-raster-paint-control__slider .arco-slider-bar{background-color:var(--mapbox-control-active-bg)}.mapbox-raster-paint-control__slider .arco-slider-button{width:12px;height:12px}.mapbox-raster-paint-control__value{color:#ffffff80;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;width:40px;font-size:11px}.mapbox-raster-paint-control__reset{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);color:#fff9;cursor:pointer;width:100%;transition:all var(--mapbox-transition-duration);background-color:#0000;justify-content:center;align-items:center;margin-top:12px;padding:4px 0;font-size:11px;display:flex}.mapbox-raster-paint-control__reset:hover{background-color:var(--mapbox-control-bg-hover);border-color:var(--mapbox-control-border-color-hover);color:var(--mapbox-text-color)}.mapbox-edit-control{position:relative}.mapbox-edit-control .mapbox-edit-control__btn-group{-moz-column-gap:12px;align-items:center;column-gap:12px;display:flex}.mapbox-edit-control__btn-icon{-o-object-fit:contain;object-fit:contain;width:14px;height:14px}.mapbox-edit-control__btn-icon--lg{width:18px;height:18px}.mapbox-edit-control__panel{border-radius:var(--mapbox-context-menu-radius);z-index:100;background-color:#000000d9;min-width:160px;position:absolute;bottom:calc(100% + 8px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.mapbox-edit-control__panel-header{font-size:var(--mapbox-font-size-sm);color:var(--mapbox-text-secondary-color);border-bottom:1px solid #ffffff1a;padding:8px 12px}.mapbox-edit-control__template-list{padding:8px}.mapbox-edit-control__template-item{border-radius:var(--mapbox-control-radius);cursor:pointer;background-color:#0000;border:1px solid #0000;align-items:center;gap:8px;padding:6px 8px;transition:all .15s;display:flex}.mapbox-edit-control__template-item:hover{background-color:var(--mapbox-control-bg-hover)}.mapbox-edit-control__template-item--selected{background-color:var(--mapbox-control-active-bg);border-color:#3388ff80}.mapbox-edit-control__template-item--selected:hover{background-color:var(--mapbox-control-active-bg)}.mapbox-edit-control__template-icon{-o-object-fit:contain;object-fit:contain;width:24px;height:24px}.mapbox-edit-control__template-name{font-size:var(--mapbox-font-size);color:var(--mapbox-text-color)}.context-menu{z-index:10000;background:#fff;border-radius:6px;min-width:120px;padding:4px 0;animation:.15s ease-out context-menu-fade-in;box-shadow:0 2px 12px #00000026,0 0 1px #0000001a}.context-menu__item{cursor:pointer;color:#333;align-items:center;padding:8px 12px;font-size:14px;transition:background-color .15s;display:flex}.context-menu__item:hover{background-color:#0000000d}.context-menu__item--danger{color:#e53935}.context-menu__item--danger:hover{background-color:#e5393514}.context-menu__item-icon{align-items:center;margin-right:8px;font-size:16px;display:flex}.context-menu__item-label{flex:1}@keyframes context-menu-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.mapbox-route-planning-control{pointer-events:auto;flex-direction:column;display:flex;position:relative}.mapbox-route-planning-control--floating{z-index:10;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}.mapbox-route-planning-control__btn{min-width:80px}.mapbox-route-planning-control__btn--active,.mapbox-route-planning-control__btn--active:hover{background-color:#4a90d94d;border-color:#4a90d999}.mapbox-route-planning-control__btn--planning{opacity:.7;cursor:wait}.mapbox-route-planning-control__btn--planning:hover{background-color:#0000}.mapbox-route-planning-control__btn-icon{flex-shrink:0;width:14px;margin-right:4px;transform:scale(1.4)}.mapbox-route-planning-control__panel{border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background-color:#000000e6;min-width:200px;margin-bottom:8px;padding:12px;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #00000080}.mapbox-route-planning-control__panel-header{border-bottom:1px solid #ffffff1a;margin-bottom:10px;padding-bottom:8px}.mapbox-route-planning-control__panel-title{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);font-weight:500}.mapbox-route-planning-control__panel-body{flex-direction:column;gap:10px;display:flex}.mapbox-route-planning-control__panel-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.mapbox-route-planning-control__panel-label{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);white-space:nowrap}.mapbox-route-planning-control__panel-value{font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:#ffffffb3}.mapbox-route-planning-control__panel-input{width:56px;height:26px;font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:var(--mapbox-text-color);border:1px solid var(--mapbox-control-border-color);border-radius:var(--mapbox-control-radius);text-align:center;background-color:#ffffff1a;outline:none;padding:2px 6px}.mapbox-route-planning-control__panel-input:focus{border-color:#4a90d999}.mapbox-route-planning-control__panel-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mapbox-route-planning-control__panel-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mapbox-route-planning-control__panel-input{-moz-appearance:textfield}.mapbox-route-planning-control__panel-tip{font-size:11px;font-family:var(--mapbox-font-family);color:#fff6}.mapbox-route-planning-control__panel-start{width:100%;height:30px;font-size:var(--mapbox-font-size);font-family:var(--mapbox-font-family);color:#fff;border-radius:var(--mapbox-control-radius);cursor:pointer;background-color:#4a90d9cc;border:none;padding:0 12px;transition:background-color .2s}.mapbox-route-planning-control__panel-start:hover{background-color:#4a90d9}.mapbox-route-planning-control__panel-start:disabled{opacity:.4;cursor:not-allowed}.route-planning-temp-marker{color:#fff;cursor:default;background-color:#4a90d9;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex;box-shadow:0 2px 6px #0000004d}
2
2
  /*$vite$:1*/
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Mapbox } from './Mapbox';
2
- export type { MapboxProps, MapboxRef, MapEntity, BaseEntity, RadarEntity, ImageEntity, MarkerEntity, BaseMarkerEntity, UnitEntity, PolygonEntity, PolylineEntity, CircleEntity, SquareEntity, RectangleEntity, EntityId, Location, PopupConfig, PopupDefaults, PopupTrigger, PopupAnimation, PopupPosition, PopupState, LayerConfig, RasterLayerConfig, StyleLayerConfig, TileJSONLayerConfig, LayerType, TileScheme, CoordinateDisplayConfig, ScaleControlConfig, ResetViewControlConfig, RoadHighlightControlConfig, RoadClass, RoadTypeOption, InteractionOptions, EditHandleType, EditHandle, MapMode, DrawMode, DrawingOptions, MarkerStyleOptions, RectangleStyleOptions, CircleStyleOptions, PolygonStyleOptions, PolylineStyleOptions, SquareStyleOptions, PickerResult, PickerModeConfig, EditModeConfig, MarkerTemplate, RenderContext, ColorScheme, CircleFillType, CircleGradientAnimation, NameConfig, RoadHighlightControlRef, } from './types';
2
+ export type { MapboxProps, MapboxRef, MapEntity, BaseEntity, RadarEntity, ImageEntity, MarkerEntity, BaseMarkerEntity, UnitEntity, PolygonEntity, PolylineEntity, CircleEntity, SquareEntity, RectangleEntity, EntityId, Location, PopupConfig, PopupDefaults, PopupTrigger, PopupAnimation, PopupPosition, PopupState, LayerConfig, RasterLayerConfig, StyleLayerConfig, TileJSONLayerConfig, LayerType, TileScheme, CoordinateDisplayConfig, ScaleControlConfig, ResetViewControlConfig, RoadHighlightControlConfig, RoadClass, RoadTypeOption, InteractionOptions, EditHandleType, EditHandle, MapMode, DrawMode, DrawingOptions, MarkerStyleOptions, RectangleStyleOptions, CircleStyleOptions, PolygonStyleOptions, PolylineStyleOptions, SquareStyleOptions, PickerResult, PickerModeConfig, StartPickingOptions, EditModeConfig, MarkerTemplate, RenderContext, ColorScheme, CircleFillType, CircleGradientAnimation, NameConfig, RoadHighlightControlRef, } from './types';
3
3
  export { COLOR_SCHEMES, RADAR_DEFAULTS, POPUP_DEFAULTS, ROAD_TYPE_OPTIONS, DEFAULT_NAME_CONFIG, DEFAULT_SELECT_NAME_CONFIG, resolveNameConfig } from './types';
4
4
  export { EntityPopup } from './components/EntityPopup';
5
5
  export { CoordinateDisplay } from './components/CoordinateDisplay';