import{Q as Li}from"./index.9f28707e.js";import{R as as}from"./index.030fe210.js";const or={1:"The view center is not defined",2:"The view resolution is not defined",3:"The view rotation is not defined",4:"`image` and `src` cannot be provided at the same time",5:"`imgSize` must be set when `image` is provided",7:"`format` must be set when `url` is set",8:"Unknown `serverType` configured",9:"`url` must be configured or set using `#setUrl()`",10:"The default `geometryFunction` can only handle `Point` geometries",11:"`options.featureTypes` must be an Array",12:"`options.geometryName` must also be provided when `options.bbox` is set",13:"Invalid corner",14:"Invalid color",15:"Tried to get a value for a key that does not exist in the cache",16:"Tried to set a value for a key that is used already",17:"`resolutions` must be sorted in descending order",18:"Either `origin` or `origins` must be configured, never both",19:"Number of `tileSizes` and `resolutions` must be equal",20:"Number of `origins` and `resolutions` must be equal",22:"Either `tileSize` or `tileSizes` must be configured, never both",24:"Invalid extent or geometry provided as `geometry`",25:"Cannot fit empty extent provided as `geometry`",26:"Features must have an id set",27:"Features must have an id set",28:'`renderMode` must be `"hybrid"` or `"vector"`',30:"The passed `feature` was already added to the source",31:"Tried to enqueue an `element` that was already added to the queue",32:"Transformation matrix cannot be inverted",33:"Invalid units",34:"Invalid geometry layout",36:"Unknown SRS type",37:"Unknown geometry type found",38:"`styleMapValue` has an unknown type",39:"Unknown geometry type",40:"Expected `feature` to have a geometry",41:"Expected an `ol/style/Style` or an array of `ol/style/Style.js`",42:"Question unknown, the answer is 42",43:"Expected `layers` to be an array or a `Collection`",47:"Expected `controls` to be an array or an `ol/Collection`",48:"Expected `interactions` to be an array or an `ol/Collection`",49:"Expected `overlays` to be an array or an `ol/Collection`",50:"`options.featureTypes` should be an Array",51:"Either `url` or `tileJSON` options must be provided",52:"Unknown `serverType` configured",53:"Unknown `tierSizeCalculation` configured",55:"The {-y} placeholder requires a tile grid with extent",56:"mapBrowserEvent must originate from a pointer event",57:"At least 2 conditions are required",59:"Invalid command found in the PBF",60:"Missing or invalid `size`",61:"Cannot determine IIIF Image API version from provided image information JSON",62:"A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`",64:"Layer opacity must be a number",66:"`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`",67:"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both",68:"A VectorTile source can only be rendered if it has a projection compatible with the view projection",69:"`width` or `height` cannot be provided together with `scale`"};class ar extends Error{constructor(t){const e=or[t];super(e),this.code=t,this.name="AssertionError",this.message=e}}const ls=ar;function B(n,t){if(!n)throw new ls(t)}const Y={UNKNOWN:0,INTERSECTING:1,ABOVE:2,RIGHT:4,BELOW:8,LEFT:16};function _t(n){const t=Xt();for(let e=0,i=n.length;es&&(l=l|Y.RIGHT),ar&&(l=l|Y.ABOVE),l===Y.UNKNOWN&&(l=Y.INTERSECTING),l}function Xt(){return[1/0,1/0,-1/0,-1/0]}function ee(n,t,e,i,s){return s?(s[0]=n,s[1]=t,s[2]=e,s[3]=i,s):[n,t,e,i]}function cs(n){return ee(1/0,1/0,-1/0,-1/0,n)}function ze(n,t){const e=n[0],i=n[1];return ee(e,i,e,i,t)}function cr(n,t,e,i,s){const r=cs(s);return gs(r,n,t,e,i)}function us(n,t){return n[0]==t[0]&&n[2]==t[2]&&n[1]==t[1]&&n[3]==t[3]}function ds(n,t){t[0]n[2]&&(n[2]=t[0]),t[1]n[3]&&(n[3]=t[1])}function gs(n,t,e,i,s){for(;e=t[0]&&n[1]<=t[3]&&n[3]>=t[1]}function ps(n){return n[2]=o&&_<=l),!i&&!!(r&Y.RIGHT)&&!(s&Y.RIGHT)&&(m=g-(d-l)*f,i=m>=a&&m<=h),!i&&!!(r&Y.BELOW)&&!(s&Y.BELOW)&&(_=d-(g-a)/f,i=_>=o&&_<=l),!i&&!!(r&Y.LEFT)&&!(s&Y.LEFT)&&(m=g-(d-o)*f,i=m>=a&&m<=h)}return i}function xs(n,t){const e=t.getExtent(),i=ge(n);if(t.canWrapX()&&(i[0]=e[2])){const s=st(e),o=Math.floor((i[0]-e[0])/s)*s;n[0]-=o,n[2]-=o}return n}function yr(n,t){if(t.canWrapX()){const e=t.getExtent();if(!isFinite(n[0])||!isFinite(n[2]))return[[e[0],n[1],e[2],n[3]]];xs(n,t);const i=st(e);if(st(n)>i)return[[e[0],n[1],e[2],n[3]]];if(n[0]e[2])return[[n[0],n[1],e[2],n[3]],[e[0],n[1],n[2]-i,n[3]]]}return[n]}const U={CHANGE:"change",ERROR:"error",BLUR:"blur",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",FOCUS:"focus",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",RESIZE:"resize",TOUCHMOVE:"touchmove",WHEEL:"wheel"};class pr{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}}const xr=pr;class Sr{constructor(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}}const se=Sr;function Rr(n,t,e){let i,s;e=e||_e;let r=0,o=n.length,a=!1;for(;r>1),s=+e(n[i],t),s<0?r=i+1:(o=i,a=!s);return a?r:~r}function _e(n,t){return n>t?1:n0?s-1:s}return i-1}if(e>0){for(let s=1;s0:!1}removeEventListener(t,e){const i=this.listeners_&&this.listeners_[t];if(i){const s=i.indexOf(e);s!==-1&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[s]=me,++this.pendingRemovals_[t]):(i.splice(s,1),i.length===0&&delete this.listeners_[t]))}}}const Cs=Ir;function k(){throw new Error("Unimplemented abstract method.")}let wr=0;function G(n){return n.ol_uid||(n.ol_uid=String(++wr))}function Tr(n){return Math.pow(n,3)}function Mr(n){return 1-Tr(1-n)}function Ar(n){return 3*n*n-2*n*n*n}const Ft=typeof navigator<"u"&&typeof navigator.userAgent<"u"?navigator.userAgent.toLowerCase():"";Ft.includes("firefox");const vr=Ft.includes("safari")&&!Ft.includes("chrom");vr&&(Ft.includes("version/15.4")||/cpu (os|iphone os) 15_4 like mac os x/.test(Ft));Ft.includes("webkit")&&Ft.includes("edge");Ft.includes("macintosh");const bi=typeof WorkerGlobalScope<"u"&&typeof OffscreenCanvas<"u"&&self instanceof WorkerGlobalScope,Lr=typeof Image<"u"&&Image.prototype.decode;(function(){let n=!1;try{const t=Object.defineProperty({},"passive",{get:function(){n=!0}});window.addEventListener("_",null,t),window.removeEventListener("_",null,t)}catch{}return n})();function lt(n,t,e,i){let s;return e&&e.length?s=e.shift():bi?s=new OffscreenCanvas(n||300,t||300):s=document.createElement("canvas"),n&&(s.width=n),t&&(s.height=t),s.getContext("2d",i)}function Fr(n){const t=n.canvas;t.width=1,t.height=1,n.clearRect(0,0,1,1)}const N={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4};function xt(n,t,e,i,s){if(i&&i!==n&&(e=e.bind(i)),s){const o=e;e=function(){n.removeEventListener(t,e),o.apply(this,arguments)}}const r={target:n,type:t,listener:e};return n.addEventListener(t,e),r}function Ye(n,t,e,i){return xt(n,t,e,i,!0)}function St(n){n&&n.target&&(n.target.removeEventListener(n.type,n.listener),Oi(n))}function Dr(n,t,e){const i=n;let s=!0,r=!1,o=!1;const a=[Ye(i,U.LOAD,function(){o=!0,r||t()})];return i.src&&Lr?(r=!0,i.decode().then(function(){s&&t()}).catch(function(l){s&&(o?t():e())})):a.push(Ye(i,U.ERROR,e)),function(){s=!1,a.forEach(St)}}const Es={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};class Or{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=t.extent!==void 0?t.extent:null,this.worldExtent_=t.worldExtent!==void 0?t.worldExtent:null,this.axisOrientation_=t.axisOrientation!==void 0?t.axisOrientation:"enu",this.global_=t.global!==void 0?t.global:!1,this.canWrapX_=!!(this.global_&&this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Es[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!!(t&&this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!!(this.global_&&t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}}const Is=Or,Ae=6378137,qt=Math.PI*Ae,br=[-qt,-qt,qt,qt],kr=[-180,-85,180,85],Ge=Ae*Math.log(Math.tan(Math.PI/2));class jt extends Is{constructor(t){super({code:t,units:"m",extent:br,global:!0,worldExtent:kr,getPointResolution:function(e,i){return e/Math.cosh(i[1]/Ae)}})}}const _n=[new jt("EPSG:3857"),new jt("EPSG:102100"),new jt("EPSG:102113"),new jt("EPSG:900913"),new jt("http://www.opengis.net/def/crs/EPSG/0/3857"),new jt("http://www.opengis.net/gml/srs/epsg.xml#3857")];function Pr(n,t,e){const i=n.length;e=e>1?e:2,t===void 0&&(e>2?t=n.slice():t=new Array(i));for(let s=0;sGe?r=Ge:r<-Ge&&(r=-Ge),t[s+1]=r}return t}function Gr(n,t,e){const i=n.length;e=e>1?e:2,t===void 0&&(e>2?t=n.slice():t=new Array(i));for(let s=0;s1?(e=s,i=r):l>0&&(e+=o*l,i+=a*l)}return Qt(n,t,e,i)}function Qt(n,t,e,i){const s=e-n,r=i-t;return s*s+r*r}function Wt(n){return n*Math.PI/180}function pn(n,t){const e=n%t;return e*t<0?e+t:e}function tt(n,t,e){return n+e*(t-n)}function Vr(n,t){const e=Math.pow(10,t);return Math.round(n*e)/e}function jr(n,t){return n[0]+=+t[0],n[1]+=+t[1],n}function ws(n,t){const e=n[0],i=n[1],s=t[0],r=t[1],o=s[0],a=s[1],l=r[0],h=r[1],c=l-o,u=h-a,d=c===0&&u===0?0:(c*(e-o)+u*(i-a))/(c*c+u*u||0);let g,f;return d<=0?(g=o,f=a):d>=1?(g=l,f=h):(g=o+d*c,f=a+d*u),[g,f]}function ot(n,t){let e=!0;for(let i=n.length-1;i>=0;--i)if(n[i]!=t[i]){e=!1;break}return e}function Ur(n,t){const e=Math.cos(t),i=Math.sin(t),s=n[0]*e-n[1]*i,r=n[1]*e+n[0]*i;return n[0]=s,n[1]=r,n}function pe(n,t){const e=n[0]-t[0],i=n[1]-t[1];return e*e+i*i}function xn(n,t){return Math.sqrt(pe(n,t))}function Zr(n,t){return pe(n,ws(n,t))}function Kr(n,t){if(t.canWrapX()){const e=st(t.getExtent()),i=Hr(n,t,e);i&&(n[0]-=i*e)}return n}function Hr(n,t,e){const i=t.getExtent();let s=0;return t.canWrapX()&&(n[0]i[2])&&(e=e||st(i),s=Math.floor((n[0]-i[0])/e)),s}const ki=63710088e-1;function qr(n,t,e){e=e||ki;const i=Wt(n[1]),s=Wt(t[1]),r=(s-i)/2,o=Wt(t[0]-n[0])/2,a=Math.sin(r)*Math.sin(r)+Math.sin(o)*Math.sin(o)*Math.cos(i)*Math.cos(s);return 2*e*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function ui(n,t){let e=0;for(let i=0,s=n.length;iTs.warn||console.warn(...n)}let Ci=!0;function eo(n){Ci=!(n===void 0?!0:n)}function Ms(n,t){if(t!==void 0){for(let e=0,i=n.length;e=-180&&n[0]<=180&&n[1]>=-90&&n[1]<=90&&(Ci=!1,to("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),n}function Gi(n,t){return n}function Jt(n,t){return n}function ao(){Sn(_n),Sn(yn),ro(yn,_n,Pr,Gr)}ao();const As={PROPERTYCHANGE:"propertychange"};class ii extends Cs{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(U.CHANGE)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,s=new Array(i);for(let r=0;rr&&(h-a)*(r-l)-(s-a)*(c-l)>0&&o++:c<=r&&(h-a)*(r-l)-(s-a)*(c-l)<0&&o--,a=h,l=c}return o!==0}function Fs(n,t,e,i,s,r){if(e.length===0||!kt(n,t,e[0],i,s,r))return!1;for(let o=1,a=e.length;o=s[0]&&r[2]<=s[2]||r[1]>=s[1]&&r[3]<=s[3]?!0:Ls(n,t,e,i,function(o,a){return mr(s,o,a)}):!1}function _o(n,t,e,i,s){return!!(Ni(n,t,e,i,s)||kt(n,t,e,i,s[0],s[1])||kt(n,t,e,i,s[0],s[3])||kt(n,t,e,i,s[2],s[1])||kt(n,t,e,i,s[2],s[3]))}function mo(n,t,e,i,s){if(!_o(n,t,e[0],i,s))return!1;if(e.length===1)return!0;for(let r=1,o=e.length;r0;)this.pop()}extend(t){for(let e=0,i=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new We(Mt.ADD,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){this.unique_&&this.assertUnique_(t);const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let i=0,s=e.length;i=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new We(Mt.REMOVE,e,t)),e}setAt(t,e){const i=this.getLength();if(t>=i){this.insertAt(t,e);return}if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const s=this.array_[t];this.array_[t]=e,this.dispatchEvent(new We(Mt.REMOVE,s,t)),this.dispatchEvent(new We(Mt.ADD,e,t))}updateLength_(){this.set(An.LENGTH,this.array_.length)}assertUnique_(t,e){for(let i=0,s=this.array_.length;i=200&&a.status<300){const h=t.getType();let c;h=="json"||h=="text"?c=a.responseText:h=="xml"?(c=a.responseXML,c||(c=new DOMParser().parseFromString(a.responseText,"application/xml"))):h=="arraybuffer"&&(c=a.response),c?r(t.readFeatures(c,{extent:e,featureProjection:s}),t.readProjection(c)):o()}else o()},a.onerror=o,a.send()}function vn(n,t){return function(e,i,s,r,o){const a=this;Go(n,t,e,i,s,function(l,h){a.addFeatures(l),r!==void 0&&r(l)},o||me)}}class Et extends se{constructor(t,e,i){super(t),this.feature=e,this.features=i}}class No extends uo{constructor(t){t=t||{},super({attributions:t.attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:t.wrapX!==void 0?t.wrapX:!0}),this.on,this.once,this.un,this.loader_=me,this.format_=t.format,this.overlaps_=t.overlaps===void 0?!0:t.overlaps,this.url_=t.url,t.loader!==void 0?this.loader_=t.loader:this.url_!==void 0&&(B(this.format_,7),this.loader_=vn(this.url_,this.format_)),this.strategy_=t.strategy!==void 0?t.strategy:ko;const e=t.useSpatialIndex!==void 0?t.useSpatialIndex:!0;this.featuresRtree_=e?new wi:null,this.loadedExtentsRtree_=new wi,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null;let i,s;Array.isArray(t.features)?s=t.features:t.features&&(i=t.features,s=i.getArray()),!e&&i===void 0&&(i=new Ii(s)),s!==void 0&&this.addFeaturesInternal(s),i!==void 0&&this.bindFeaturesCollection_(i)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=G(t);if(!this.addToIndex_(e,t)){this.featuresCollection_&&this.featuresCollection_.remove(t);return}this.setupChangeEvents_(e,t);const i=t.getGeometry();if(i){const s=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(s,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new Et(Q.ADDFEATURE,t))}setupChangeEvents_(t,e){this.featureChangeKeys_[t]=[xt(e,U.CHANGE,this.handleFeatureChange_,this),xt(e,As.PROPERTYCHANGE,this.handleFeatureChange_,this)]}addToIndex_(t,e){let i=!0;const s=e.getId();return s!==void 0&&(s.toString()in this.idIndex_?i=!1:this.idIndex_[s.toString()]=e),i&&(B(!(t in this.uidIndex_),30),this.uidIndex_[t]=e),i}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],i=[],s=[];for(let r=0,o=t.length;r{e||(e=!0,this.addFeature(i.element),e=!1)}),t.addEventListener(Mt.REMOVE,i=>{e||(e=!0,this.removeFeature(i.element),e=!1)}),this.featuresCollection_=t}clear(t){if(t){for(const i in this.featureChangeKeys_)this.featureChangeKeys_[i].forEach(St);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){const i=s=>{this.removeFeatureInternal(s)};this.featuresRtree_.forEach(i);for(const s in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[s])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new Et(Q.CLEAR);this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const i=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(i,function(s){if(s.getGeometry().intersectsCoordinate(t))return e(s)})}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,function(i){if(i.getGeometry().intersectsExtent(t)){const r=e(i);if(r)return r}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),ye(this.nullGeometryFeatures_)||Di(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,function(i){e.push(i)}),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const s=yr(t,e);return[].concat(...s.map(r=>this.featuresRtree_.getInExtent(r)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const i=t[0],s=t[1];let r=null;const o=[NaN,NaN];let a=1/0;const l=[-1/0,-1/0,1/0,1/0];return e=e||Rs,this.featuresRtree_.forEachInExtent(l,function(h){if(e(h)){const c=h.getGeometry(),u=a;if(a=c.closestPointXY(i,s,o,a),a{--this.loadingExtentsCount_,this.dispatchEvent(new Et(Q.FEATURESLOADEND,void 0,c))},()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Et(Q.FEATURESLOADERROR))}),s.insert(l,{extent:l.slice()}))}this.loading=this.loader_.length<4?!1:this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_;let i;e.forEachInExtent(t,function(s){if(us(s.extent,t))return i=s,!0}),i&&e.remove(i)}removeFeature(t){if(!t)return;const e=G(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t),this.removeFeatureInternal(t)&&this.changed()}removeFeatureInternal(t){const e=G(t),i=this.featureChangeKeys_[e];if(!i)return;i.forEach(St),delete this.featureChangeKeys_[e];const s=t.getId();return s!==void 0&&delete this.idIndex_[s.toString()],delete this.uidIndex_[e],this.dispatchEvent(new Et(Q.REMOVEFEATURE,t)),t}removeFromIdIndex_(t){let e=!1;for(const i in this.idIndex_)if(this.idIndex_[i]===t){delete this.idIndex_[i],e=!0;break}return e}setLoader(t){this.loader_=t}setUrl(t){B(this.format_,7),this.url_=t,this.setLoader(vn(t,this.format_))}}const Wo=No,O={OPACITY:"opacity",VISIBLE:"visible",EXTENT:"extent",Z_INDEX:"zIndex",MAX_RESOLUTION:"maxResolution",MIN_RESOLUTION:"minResolution",MAX_ZOOM:"maxZoom",MIN_ZOOM:"minZoom",SOURCE:"source",MAP:"map"};class Bo extends Dt{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);typeof t.properties=="object"&&(delete e.properties,Object.assign(e,t.properties)),e[O.OPACITY]=t.opacity!==void 0?t.opacity:1,B(typeof e[O.OPACITY]=="number",64),e[O.VISIBLE]=t.visible!==void 0?t.visible:!0,e[O.Z_INDEX]=t.zIndex,e[O.MAX_RESOLUTION]=t.maxResolution!==void 0?t.maxResolution:1/0,e[O.MIN_RESOLUTION]=t.minResolution!==void 0?t.minResolution:0,e[O.MIN_ZOOM]=t.minZoom!==void 0?t.minZoom:-1/0,e[O.MAX_ZOOM]=t.maxZoom!==void 0?t.maxZoom:1/0,this.className_=e.className!==void 0?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:t===void 0?!0:t},i=this.getZIndex();return e.opacity=j(Math.round(this.getOpacity()*100)/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=i===void 0&&!e.managed?1/0:i,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return k()}getLayerStatesArray(t){return k()}getExtent(){return this.get(O.EXTENT)}getMaxResolution(){return this.get(O.MAX_RESOLUTION)}getMinResolution(){return this.get(O.MIN_RESOLUTION)}getMinZoom(){return this.get(O.MIN_ZOOM)}getMaxZoom(){return this.get(O.MAX_ZOOM)}getOpacity(){return this.get(O.OPACITY)}getSourceState(){return k()}getVisible(){return this.get(O.VISIBLE)}getZIndex(){return this.get(O.Z_INDEX)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(O.EXTENT,t)}setMaxResolution(t){this.set(O.MAX_RESOLUTION,t)}setMinResolution(t){this.set(O.MIN_RESOLUTION,t)}setMaxZoom(t){this.set(O.MAX_ZOOM,t)}setMinZoom(t){this.set(O.MIN_ZOOM,t)}setOpacity(t){B(typeof t=="number",64),this.set(O.OPACITY,t)}setVisible(t){this.set(O.VISIBLE,t)}setZIndex(t){this.set(O.Z_INDEX,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}}const Xo=Bo,Se={PRERENDER:"prerender",POSTRENDER:"postrender",PRECOMPOSE:"precompose",POSTCOMPOSE:"postcompose",RENDERCOMPLETE:"rendercomplete"},nt={ANIMATING:0,INTERACTING:1},rt={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function Ln(n,t,e){return function(i,s,r,o,a){if(!i)return;if(!s&&!t)return i;const l=t?0:r[0]*s,h=t?0:r[1]*s,c=a?a[0]:0,u=a?a[1]:0;let d=n[0]+l/2+c,g=n[2]-l/2+c,f=n[1]+h/2+u,_=n[3]-h/2+u;d>g&&(d=(g+d)/2,g=d),f>_&&(f=(_+f)/2,_=f);let m=j(i[0],d,g),y=j(i[1],f,_);if(o&&e&&s){const p=30*s;m+=-p*Math.log(1+Math.max(0,d-i[0])/p)+p*Math.log(1+Math.max(0,i[0]-g)/p),y+=-p*Math.log(1+Math.max(0,f-i[1])/p)+p*Math.log(1+Math.max(0,i[1]-_)/p)}return[m,y]}}function zo(n){return n}function zi(n,t,e,i){const s=st(t)/e[0],r=fe(t)/e[1];return i?Math.min(n,Math.max(s,r)):Math.min(n,Math.min(s,r))}function Yi(n,t,e){let i=Math.min(n,t);const s=50;return i*=Math.log(1+s*Math.max(0,n/t-1))/s+1,e&&(i=Math.max(i,e),i/=Math.log(1+s*Math.max(0,e/n-1))/s+1),j(i,e/2,t*2)}function Yo(n,t,e,i){return t=t!==void 0?t:!0,function(s,r,o,a){if(s!==void 0){const l=n[0],h=n[n.length-1],c=e?zi(l,e,o,i):l;if(a)return t?Yi(s,c,h):j(s,h,c);const u=Math.min(c,s),d=Math.floor(Ss(n,u,r));return n[d]>c&&d1)u=e;else if(d>0){for(let g=0;gs&&(s=h),r=a,o=l}return s}function Ko(n,t,e,i,s){for(let r=0,o=e.length;r0;){const u=h.pop(),d=h.pop();let g=0;const f=n[d],_=n[d+1],m=n[u],y=n[u+1];for(let p=d+i;pg&&(c=p,g=R)}g>s&&(l[(c-t)/i]=1,d+i0&&_>g)&&(f<0&&m0&&m>f)){h=u,c=d;continue}r[o++]=h,r[o++]=c,a=h,l=c,h=u,c=d}return r[o++]=h,r[o++]=c,o}function Jo(n,t,e,i,s,r,o,a){for(let l=0,h=e.length;ly&&(h=(c+u)/2,Fs(n,t,e,i,h,f)&&(m=h,y=p)),c=u}return isNaN(m)&&(m=s[r]),o?(o.push(m,f,y),o):[m,f,y]}function ta(n,t,e,i){for(;t0}function ea(n,t,e,i,s){s=s!==void 0?s:!1;for(let r=0,o=e.length;r1&&typeof arguments[e-1]=="function"&&(i=arguments[e-1],--e);let s=0;for(;s0}getInteracting(){return this.hints_[nt.INTERACTING]>0}cancelAnimations(){this.setHint(nt.ANIMATING,-this.hints_[nt.ANIMATING]);let t;for(let e=0,i=this.animations_.length;e=0;--i){const s=this.animations_[i];let r=!0;for(let o=0,a=s.length;o0?h/l.duration:1;c>=1?(l.complete=!0,c=1):r=!1;const u=l.easing(c);if(l.sourceCenter){const d=l.sourceCenter[0],g=l.sourceCenter[1],f=l.targetCenter[0],_=l.targetCenter[1];this.nextCenter_=l.targetCenter;const m=d+u*(f-d),y=g+u*(_-g);this.targetCenter_=[m,y]}if(l.sourceResolution&&l.targetResolution){const d=u===1?l.targetResolution:l.sourceResolution+u*(l.targetResolution-l.sourceResolution);if(l.anchor){const g=this.getViewportSize_(this.getRotation()),f=this.constraints_.resolution(d,0,g,!0);this.targetCenter_=this.calculateCenterZoom(f,l.anchor)}this.nextResolution_=l.targetResolution,this.targetResolution_=d,this.applyTargetState_(!0)}if(l.sourceRotation!==void 0&&l.targetRotation!==void 0){const d=u===1?pn(l.targetRotation+Math.PI,2*Math.PI)-Math.PI:l.sourceRotation+u*(l.targetRotation-l.sourceRotation);if(l.anchor){const g=this.constraints_.rotation(d,!0);this.targetCenter_=this.calculateCenterRotate(g,l.anchor)}this.nextRotation_=l.targetRotation,this.targetRotation_=d}if(this.applyTargetState_(!0),e=!0,!l.complete)break}if(r){this.animations_[i]=null,this.setHint(nt.ANIMATING,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const o=s[0].callback;o&&Be(o,!0)}}this.animations_=this.animations_.filter(Boolean),e&&this.updateAnimationKey_===void 0&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let i;const s=this.getCenterInternal();return s!==void 0&&(i=[s[0]-e[0],s[1]-e[1]],Ur(i,t-this.getRotation()),jr(i,e)),i}calculateCenterZoom(t,e){let i;const s=this.getCenterInternal(),r=this.getResolution();if(s!==void 0&&r!==void 0){const o=e[0]-t*(e[0]-s[0])/r,a=e[1]-t*(e[1]-s[1])/r;i=[o,a]}return i}getViewportSize_(t){const e=this.viewportSize_;if(t){const i=e[0],s=e[1];return[Math.abs(i*Math.cos(t))+Math.abs(s*Math.sin(t)),Math.abs(i*Math.sin(t))+Math.abs(s*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t&&xe(t,this.getProjection())}getCenterInternal(){return this.get(rt.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return t!==void 0?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){const e=this.calculateExtentInternal(t);return Gi(e,this.getProjection())}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();B(e,1);const i=this.getResolution();B(i!==void 0,2);const s=this.getRotation();return B(s!==void 0,3),gr(e,i,s,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(rt.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(Jt(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const i=st(t)/e[0],s=fe(t)/e[1];return Math.max(i,s)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,s=Math.log(e/i)/Math.log(t);return function(r){return e/Math.pow(t,r*s)}}getRotation(){return this.get(rt.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),i=this.getConstrainedResolution(this.maxResolution_),s=this.minResolution_,r=Math.log(i/s)/e;return function(o){return Math.log(i/o)/e/r}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const i=this.padding_;return i&&(e=[e[0]-i[1]-i[3],e[1]-i[0]-i[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),i=this.getRotation();let s=this.getCenterInternal();const r=this.padding_;if(r){const o=this.getViewportSizeMinusPadding_();s=gi(s,this.getViewportSize_(),[o[0]/2+r[3],o[1]/2+r[0]],e,i)}return{center:s.slice(0),projection:t!==void 0?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:i,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let t;const e=this.getResolution();return e!==void 0&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e=this.minZoom_||0,i,s;if(this.resolutions_){const r=Ss(this.resolutions_,t,1);e=r,i=this.resolutions_[r],r==this.resolutions_.length-1?s=2:s=i/this.resolutions_[r+1]}else i=this.maxResolution_,s=this.zoomFactor_;return e+Math.log(i/t)/Math.log(s)}getResolutionForZoom(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;const e=j(Math.floor(t),0,this.resolutions_.length-2),i=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(i,j(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let i;if(B(Array.isArray(t)||typeof t.getSimplifiedGeometry=="function",24),Array.isArray(t)){B(!ps(t),25);const s=Jt(t,this.getProjection());i=Gn(s)}else if(t.getType()==="Circle"){const s=Jt(t.getExtent(),this.getProjection());i=Gn(s),i.rotate(this.getRotation(),ge(s))}else i=t;this.fitInternal(i,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),i=Math.cos(e),s=Math.sin(-e),r=t.getFlatCoordinates(),o=t.getStride();let a=1/0,l=1/0,h=-1/0,c=-1/0;for(let u=0,d=r.length;u{this.dispatchEvent("sourceready")},0))),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):Promise.resolve([])}getData(t){return!this.renderer_||!this.rendered?null:this.renderer_.getData(t)}isVisible(t){let e;const i=this.getMapInternal();!t&&i&&(t=i.getView()),t instanceof Nn?e={viewState:t.getState(),extent:t.calculateExtent()}:e=t,!e.layerStatesArray&&i&&(e.layerStatesArray=i.getLayerGroup().getLayerStatesArray());let s;e.layerStatesArray?s=e.layerStatesArray.find(o=>o.layer===this):s=this.getLayerState();const r=this.getExtent();return la(s,e.viewState)&&(!r||at(r,e.extent))}getAttributions(t){if(!this.isVisible(t))return[];let e;const i=this.getSource();if(i&&(e=i.getAttributions()),!e)return[];const s=t instanceof Nn?t.getViewStateAndExtent():t;let r=e(s);return Array.isArray(r)||(r=[r]),r}render(t,e){const i=this.getRenderer();return i.prepareFrame(t)?(this.rendered=!0,i.renderFrame(t,e)):null}unrender(){this.rendered=!1}setMapInternal(t){t||this.unrender(),this.set(O.MAP,t)}getMapInternal(){return this.get(O.MAP)}setMap(t){this.mapPrecomposeKey_&&(St(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(St(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=xt(t,Se.PRECOMPOSE,function(e){const s=e.frameState.layerStatesArray,r=this.getLayerState(!1);B(!s.some(function(o){return o.layer===r.layer}),67),s.push(r)},this),this.mapRenderKey_=xt(this,U.CHANGE,t.render,t),this.changed())}setSource(t){this.set(O.SOURCE,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}disposeInternal(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),super.disposeInternal()}}function la(n,t){if(!n.visible)return!1;const e=t.resolution;if(e=n.maxResolution)return!1;const i=t.zoom;return i>n.minZoom&&i<=n.maxZoom}const ha=aa;class ca extends vs{constructor(t){super(),this.ready=!0,this.boundHandleImageChange_=this.handleImageChange_.bind(this),this.layer_=t,this.declutterExecutorGroup=null}getFeatures(t){return k()}getData(t){return null}prepareFrame(t){return k()}renderFrame(t,e){return k()}loadedTileCallback(t,e,i){t[e]||(t[e]={}),t[e][i.tileCoord.toString()]=i}createLoadedTileFinder(t,e,i){return(s,r)=>{const o=this.loadedTileCallback.bind(this,i,s);return t.forEachLoadedTile(e,s,r,o)}}forEachFeatureAtCoordinate(t,e,i,s,r){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){const e=t.target;(e.getState()===N.LOADED||e.getState()===N.ERROR)&&this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return e!=N.LOADED&&e!=N.ERROR&&t.addEventListener(U.CHANGE,this.boundHandleImageChange_),e==N.IDLE&&(t.load(),e=t.getState()),e==N.LOADED}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&t.getSourceState()==="ready"&&t.changed()}disposeInternal(){delete this.layer_,super.disposeInternal()}}const ua=ca;class da extends se{constructor(t,e,i,s){super(t),this.inversePixelTransform=e,this.frameState=i,this.context=s}}const ga=da,fa=/^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i,_a=/^([a-z]*)$|^hsla?\(.*\)$/i;function Ps(n){return typeof n=="string"?n:Gs(n)}function ma(n){const t=document.createElement("div");if(t.style.color=n,t.style.color!==""){document.body.appendChild(t);const e=getComputedStyle(t).color;return document.body.removeChild(t),e}return""}const ya=function(){const t={};let e=0;return function(i){let s;if(t.hasOwnProperty(i))s=t[i];else{if(e>=1024){let r=0;for(const o in t)(r++&3)===0&&(delete t[o],--e)}s=pa(i),t[i]=s,++e}return s}}();function He(n){return Array.isArray(n)?n:ya(n)}function pa(n){let t,e,i,s,r;if(_a.exec(n)&&(n=ma(n)),fa.exec(n)){const o=n.length-1;let a;o<=4?a=1:a=2;const l=o===4||o===8;t=parseInt(n.substr(1+0*a,a),16),e=parseInt(n.substr(1+1*a,a),16),i=parseInt(n.substr(1+2*a,a),16),l?s=parseInt(n.substr(1+3*a,a),16):s=255,a==1&&(t=(t<<4)+t,e=(e<<4)+e,i=(i<<4)+i,l&&(s=(s<<4)+s)),r=[t,e,i,s/255]}else n.startsWith("rgba(")?(r=n.slice(5,-1).split(",").map(Number),Wn(r)):n.startsWith("rgb(")?(r=n.slice(4,-1).split(",").map(Number),r.push(1),Wn(r)):B(!1,14);return r}function Wn(n){return n[0]=j(n[0]+.5|0,0,255),n[1]=j(n[1]+.5|0,0,255),n[2]=j(n[2]+.5|0,0,255),n[3]=j(n[3],0,1),n}function Gs(n){let t=n[0];t!=(t|0)&&(t=t+.5|0);let e=n[1];e!=(e|0)&&(e=e+.5|0);let i=n[2];i!=(i|0)&&(i=i+.5|0);const s=n[3]===void 0?1:Math.round(n[3]*100)/100;return"rgba("+t+","+e+","+i+","+s+")"}const Bn=[];let Zt=null;function xa(){Zt=lt(1,1,void 0,{willReadFrequently:!0})}class Sa extends ua{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=Lt(),this.pixelTransform=Lt(),this.inversePixelTransform=Lt(),this.context=null,this.containerReused=!1,this.pixelContext_=null,this.frameState=null}getImageData(t,e,i){Zt||xa(),Zt.clearRect(0,0,1,1);let s;try{Zt.drawImage(t,e,i,1,1,0,0,1,1),s=Zt.getImageData(0,0,1,1).data}catch{return Zt=null,null}return s}getBackground(t){let i=this.getLayer().getBackground();return typeof i=="function"&&(i=i(t.viewState.resolution)),i||void 0}useContainer(t,e,i){const s=this.getLayer().getClassName();let r,o;if(t&&t.className===s&&(!i||t&&t.style.backgroundColor&&zt(He(t.style.backgroundColor),He(i)))){const a=t.firstElementChild;a instanceof HTMLCanvasElement&&(o=a.getContext("2d"))}if(o&&o.canvas.style.transform===e?(this.container=t,this.context=o,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){r=document.createElement("div"),r.className=s;let a=r.style;a.position="absolute",a.width="100%",a.height="100%",o=lt();const l=o.canvas;r.appendChild(l),a=l.style,a.position="absolute",a.left="0",a.transformOrigin="top left",this.container=r,this.context=o}!this.containerReused&&i&&!this.container.style.backgroundColor&&(this.container.style.backgroundColor=i)}clipUnrotated(t,e,i){const s=ms(i),r=ys(i),o=_s(i),a=fs(i);K(e.coordinateToPixelTransform,s),K(e.coordinateToPixelTransform,r),K(e.coordinateToPixelTransform,o),K(e.coordinateToPixelTransform,a);const l=this.inversePixelTransform;K(l,s),K(l,r),K(l,o),K(l,a),t.save(),t.beginPath(),t.moveTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.lineTo(Math.round(a[0]),Math.round(a[1])),t.clip()}dispatchRenderEvent_(t,e,i){const s=this.getLayer();if(s.hasListener(t)){const r=new ga(t,this.inversePixelTransform,i,e);s.dispatchEvent(r)}}preRender(t,e){this.frameState=e,this.dispatchRenderEvent_(Se.PRERENDER,t,e)}postRender(t,e){this.dispatchRenderEvent_(Se.POSTRENDER,t,e)}getRenderTransform(t,e,i,s,r,o,a){const l=r/2,h=o/2,c=s/e,u=-c,d=-t[0]+a,g=-t[1];return ve(this.tempTransform,l,h,c,u,-i,d,g)}disposeInternal(){delete this.frameState,super.disposeInternal()}}const Ra=Sa,Wl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAYAAADQBxWhAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAJBSURBVEiJ7ZfPa9NgHMaf933j27jazTqRLq02tc0q6E4DZYfCEPwFuwzmwYPiQTz4H3gQ/wBRPHhxetB58CKIbKcNRKig11EGdutoHW6dP7aqXS2NTeKhjQSNW96tKyg+EEieNzyf9/3mG/KGwFY8kmCGmbJA+gD40TpVCKyMwWga8+9yAEAAgB0Ij1gUJ1oIchUxMWUsLD5hiEcSBDi/3cAGFXGru+sNZYaZaguwKWaYKdp8hm2TBdInQbBpYpMPhrimKr/62djgqMcIPxUBhm5c7eeaquhzhSXnYU/Ga47kZgYvDEfBdzAA4L2xoO13jZzqBwD9/cqa836uqeCaqoQf3RysFz+UAUCfzZcAAPp3ozT29K3zfkLV8F2n4TucCKgT9895nbUXFYYuPa7N5Mr29W8rrc3kyl/Gnr1GB5d2HR9Isj27A/pso4RsbzCwXrjxqVQGAN6rKsbq5/La81dZfNPrTiDgslKn7KYRaBIAQDL/4rI+V1jKn7w44TYu1EitkjC05/a1o9Hx0dMAQHycRsfvnem5c/2YSIZr964nfujgPjkZU6RISKYdMpOPaPupfycXyfg7yvsf+u9BrWpVBwDKGCFNz6w0PK8SfmUWhq9MSqFuX315pQYA8wNnH9aXP9ZEMjZVXhvYOBcDbhq6VXkqr8gHesvQ6nS2yDVVcduebKTqdLb4pzFC1fAttHZzvZEqlMDKtBEIAitDDUbT7YQajKYZSl9XaWenDIL4dgOJiSmrsPiS/HTa+AP1A194w/sdsoQRAAAAAElFTkSuQmCC";function Bl(n){return Li({url:"equipment/contractors",method:"get",params:n})}function Xl(n){return Li({url:"equipment/districtsBlocks",method:"get",params:n})}function zl(n){return Li({url:"equipment/cityAndCount",method:"get",params:n})}class Ui{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=je(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const t=this.getScale();return new Ui({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return k()}getImage(t){return k()}getHitDetectionImage(){return k()}getPixelRatio(t){return 1}getImageState(){return k()}getImageSize(){return k()}getOrigin(){return k()}getSize(){return k()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=je(t)}listenImageChange(t){k()}load(){k()}unlistenImageChange(t){k()}}const Ns=Ui;function dt(n){return Array.isArray(n)?Gs(n):n}const Ca=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))",`?\\s*([-,\\"\\'\\sa-z]+?)\\s*$`].join(""),"i"),Xn=["style","variant","weight","size","lineHeight","family"],Ws=function(n){const t=n.match(Ca);if(!t)return null;const e={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let i=0,s=Xn.length;iMath.max(s,$e(n,r)),0);return e[t]=i,i}function wa(n,t){const e=[],i=[],s=[];let r=0,o=0,a=0,l=0;for(let h=0,c=t.length;h<=c;h+=2){const u=t[h];if(u===` `||h===c){r=Math.max(r,o),s.push(o),o=0,a+=l;continue}const d=t[h+1]||n.font,g=$e(d,u);e.push(g),o+=g;const f=Ia(d);i.push(f),l=Math.max(l,f)}return{width:r,height:a,widths:e,heights:i,lineWidths:s}}function Ta(n,t,e,i,s,r,o,a,l,h,c){n.save(),e!==1&&(n.globalAlpha*=e),t&&n.setTransform.apply(n,t),i.contextInstructions?(n.translate(l,h),n.scale(c[0],c[1]),Ma(i,n)):c[0]<0||c[1]<0?(n.translate(l,h),n.scale(c[0],c[1]),n.drawImage(i,s,r,o,a,0,0,o,a)):n.drawImage(i,s,r,o,a,l,h,o*c[0],a*c[1]),n.restore()}function Ma(n,t){const e=n.contextInstructions;for(let i=0,s=e.length;ithis.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const i=this.cache_[e];(t++&3)===0&&!i.hasListener()&&(delete this.cache_[e],--this.cacheSize_)}}}get(t,e,i){const s=Yn(t,e,i);return s in this.cache_?this.cache_[s]:null}set(t,e,i,s){const r=Yn(t,e,i);this.cache_[r]=s,++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}}function Yn(n,t,e){const i=e?Ps(e):"null";return t+":"+n+":"+i}const Vn=new Aa;let ce=null;class va extends Cs{constructor(t,e,i,s,r,o){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=s,this.canvas_={},this.color_=o,this.unlisten_=null,this.imageState_=r,this.size_=i,this.src_=e,this.tainted_}initializeImage_(){this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(this.tainted_===void 0&&this.imageState_===N.LOADED){ce||(ce=lt(1,1,void 0,{willReadFrequently:!0})),ce.drawImage(this.image_,0,0);try{ce.getImageData(0,0,1,1),this.tainted_=!1}catch{ce=null,this.tainted_=!0}}return this.tainted_===!0}dispatchChangeEvent_(){this.dispatchEvent(U.CHANGE)}handleImageError_(){this.imageState_=N.ERROR,this.unlistenImage_(),this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=N.LOADED,this.size_?(this.image_.width=this.size_[0],this.image_.height=this.size_[1]):this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],i=lt(t,e);i.fillRect(0,0,t,e),this.hitDetectionImage_=i.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===N.IDLE){this.image_||this.initializeImage_(),this.imageState_=N.LOADING;try{this.image_.src=this.src_}catch{this.handleImageError_()}this.unlisten_=Dr(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this))}}replaceColor_(t){if(!this.color_||this.canvas_[t]||this.imageState_!==N.LOADED)return;const e=this.image_,i=document.createElement("canvas");i.width=Math.ceil(e.width*t),i.height=Math.ceil(e.height*t);const s=i.getContext("2d");s.scale(t,t),s.drawImage(e,0,0),s.globalCompositeOperation="multiply",s.fillStyle=Ps(this.color_),s.fillRect(0,0,i.width/t,i.height/t),s.globalCompositeOperation="destination-in",s.drawImage(e,0,0),this.canvas_[t]=i}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}function La(n,t,e,i,s,r){let o=Vn.get(t,i,r);return o||(o=new va(n,t,e,i,s,r),Vn.set(t,i,r,o)),o}function jn(n,t,e,i){return e!==void 0&&i!==void 0?[e/n,i/t]:e!==void 0?e/n:i!==void 0?i/t:1}class Ji extends Ns{constructor(t){t=t||{};const e=t.opacity!==void 0?t.opacity:1,i=t.rotation!==void 0?t.rotation:0,s=t.scale!==void 0?t.scale:1,r=t.rotateWithView!==void 0?t.rotateWithView:!1;super({opacity:e,rotation:i,scale:s,displacement:t.displacement!==void 0?t.displacement:[0,0],rotateWithView:r,declutterMode:t.declutterMode}),this.anchor_=t.anchor!==void 0?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=t.anchorOrigin!==void 0?t.anchorOrigin:"top-left",this.anchorXUnits_=t.anchorXUnits!==void 0?t.anchorXUnits:"fraction",this.anchorYUnits_=t.anchorYUnits!==void 0?t.anchorYUnits:"fraction",this.crossOrigin_=t.crossOrigin!==void 0?t.crossOrigin:null;const o=t.img!==void 0?t.img:null;this.imgSize_=t.imgSize;let a=t.src;B(!(a!==void 0&&o),4),B(!o||o&&this.imgSize_,5),(a===void 0||a.length===0)&&o&&(a=o.src||G(o)),B(a!==void 0&&a.length>0,6),B(!((t.width!==void 0||t.height!==void 0)&&t.scale!==void 0),69);const l=t.src!==void 0?N.IDLE:N.LOADED;if(this.color_=t.color!==void 0?He(t.color):null,this.iconImage_=La(o,a,this.imgSize_!==void 0?this.imgSize_:null,this.crossOrigin_,l,this.color_),this.offset_=t.offset!==void 0?t.offset:[0,0],this.offsetOrigin_=t.offsetOrigin!==void 0?t.offsetOrigin:"top-left",this.origin_=null,this.size_=t.size!==void 0?t.size:null,t.width!==void 0||t.height!==void 0){let h,c;if(t.size)[h,c]=t.size;else{const u=this.getImage(1);if(u instanceof HTMLCanvasElement||u.src&&u.complete)h=u.width,c=u.height;else{this.initialOptions_=t;const d=()=>{if(this.unlistenImageChange(d),!this.initialOptions_)return;const g=this.iconImage_.getSize();this.setScale(jn(g[0],g[1],t.width,t.height))};this.listenImageChange(d);return}}h!==void 0&&this.setScale(jn(h,c,t.width,t.height))}}clone(){let t,e,i;return this.initialOptions_?(e=this.initialOptions_.width,i=this.initialOptions_.height):(t=this.getScale(),t=Array.isArray(t)?t.slice():t),new Ji({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,imgSize:this.imgSize_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:t,width:e,height:i,size:this.size_!==null?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const s=this.getSize();if(this.anchorXUnits_=="fraction"||this.anchorYUnits_=="fraction"){if(!s)return null;t=this.anchor_.slice(),this.anchorXUnits_=="fraction"&&(t[0]*=s[0]),this.anchorYUnits_=="fraction"&&(t[1]*=s[1])}if(this.anchorOrigin_!="top-left"){if(!s)return null;t===this.anchor_&&(t=this.anchor_.slice()),(this.anchorOrigin_=="top-right"||this.anchorOrigin_=="bottom-right")&&(t[0]=-t[0]+s[0]),(this.anchorOrigin_=="bottom-left"||this.anchorOrigin_=="bottom-right")&&(t[1]=-t[1]+s[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]-e[0]/i[0],t[1]+e[1]/i[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if(this.offsetOrigin_!="top-left"){const e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),(this.offsetOrigin_=="top-right"||this.offsetOrigin_=="bottom-right")&&(t[0]=i[0]-e[0]-t[0]),(this.offsetOrigin_=="bottom-left"||this.offsetOrigin_=="bottom-right")&&(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){const t=this.getScaleArray();if(this.size_)return this.size_[0]*t[0];if(this.iconImage_.getImageState()==N.LOADED)return this.iconImage_.getSize()[0]*t[0]}getHeight(){const t=this.getScaleArray();if(this.size_)return this.size_[1]*t[1];if(this.iconImage_.getImageState()==N.LOADED)return this.iconImage_.getSize()[1]*t[1]}setScale(t){delete this.initialOptions_,super.setScale(t)}listenImageChange(t){this.iconImage_.addEventListener(U.CHANGE,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(U.CHANGE,t)}}const Ys=Ji;class $i{constructor(t){t=t||{},this.color_=t.color!==void 0?t.color:null,this.lineCap_=t.lineCap,this.lineDash_=t.lineDash!==void 0?t.lineDash:null,this.lineDashOffset_=t.lineDashOffset,this.lineJoin_=t.lineJoin,this.miterLimit_=t.miterLimit,this.width_=t.width}clone(){const t=this.getColor();return new $i({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(t){this.color_=t}setLineCap(t){this.lineCap_=t}setLineDash(t){this.lineDash_=t}setLineDashOffset(t){this.lineDashOffset_=t}setLineJoin(t){this.lineJoin_=t}setMiterLimit(t){this.miterLimit_=t}setWidth(t){this.width_=t}}const ue=$i;class At{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=Un,t.geometry!==void 0&&this.setGeometry(t.geometry),this.fill_=t.fill!==void 0?t.fill:null,this.image_=t.image!==void 0?t.image:null,this.renderer_=t.renderer!==void 0?t.renderer:null,this.hitDetectionRenderer_=t.hitDetectionRenderer!==void 0?t.hitDetectionRenderer:null,this.stroke_=t.stroke!==void 0?t.stroke:null,this.text_=t.text!==void 0?t.text:null,this.zIndex_=t.zIndex}clone(){let t=this.getGeometry();return t&&typeof t=="object"&&(t=t.clone()),new At({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer(),stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(t){this.renderer_=t}setHitDetectionRenderer(t){this.hitDetectionRenderer_=t}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(t){this.fill_=t}getImage(){return this.image_}setImage(t){this.image_=t}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t}getText(){return this.text_}setText(t){this.text_=t}getZIndex(){return this.zIndex_}setGeometry(t){typeof t=="function"?this.geometryFunction_=t:typeof t=="string"?this.geometryFunction_=function(e){return e.get(t)}:t?t!==void 0&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=Un,this.geometry_=t}setZIndex(t){this.zIndex_=t}}function Fa(n){let t;if(typeof n=="function")t=n;else{let e;Array.isArray(n)?e=n:(B(typeof n.getZIndex=="function",41),e=[n]),t=function(){return e}}return t}let fi=null;function Da(n,t){if(!fi){const e=new we({color:"rgba(255,255,255,0.4)"}),i=new ue({color:"#3399CC",width:1.25});fi=[new At({image:new Hi({fill:e,stroke:i,radius:5}),fill:e,stroke:i})]}return fi}function Oa(){const n={},t=[255,255,255,1],e=[0,153,255,1],i=3;return n.Polygon=[new At({fill:new we({color:[255,255,255,.5]})})],n.MultiPolygon=n.Polygon,n.LineString=[new At({stroke:new ue({color:t,width:i+2})}),new At({stroke:new ue({color:e,width:i})})],n.MultiLineString=n.LineString,n.Circle=n.Polygon.concat(n.LineString),n.Point=[new At({image:new Hi({radius:i*2,fill:new we({color:e}),stroke:new ue({color:t,width:i/2})}),zIndex:1/0})],n.MultiPoint=n.Point,n.GeometryCollection=n.Polygon.concat(n.LineString,n.Point),n}function Un(n){return n.getGeometry()}const Ai=At,ba="#333";class Qi{constructor(t){t=t||{},this.font_=t.font,this.rotation_=t.rotation,this.rotateWithView_=t.rotateWithView,this.scale_=t.scale,this.scaleArray_=je(t.scale!==void 0?t.scale:1),this.text_=t.text,this.textAlign_=t.textAlign,this.justify_=t.justify,this.repeat_=t.repeat,this.textBaseline_=t.textBaseline,this.fill_=t.fill!==void 0?t.fill:new we({color:ba}),this.maxAngle_=t.maxAngle!==void 0?t.maxAngle:Math.PI/4,this.placement_=t.placement!==void 0?t.placement:"point",this.overflow_=!!t.overflow,this.stroke_=t.stroke!==void 0?t.stroke:null,this.offsetX_=t.offsetX!==void 0?t.offsetX:0,this.offsetY_=t.offsetY!==void 0?t.offsetY:0,this.backgroundFill_=t.backgroundFill?t.backgroundFill:null,this.backgroundStroke_=t.backgroundStroke?t.backgroundStroke:null,this.padding_=t.padding===void 0?null:t.padding}clone(){const t=this.getScale();return new Qi({font:this.getFont(),placement:this.getPlacement(),repeat:this.getRepeat(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,text:this.getText(),textAlign:this.getTextAlign(),justify:this.getJustify(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0})}getOverflow(){return this.overflow_}getFont(){return this.font_}getMaxAngle(){return this.maxAngle_}getPlacement(){return this.placement_}getRepeat(){return this.repeat_}getOffsetX(){return this.offsetX_}getOffsetY(){return this.offsetY_}getFill(){return this.fill_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getStroke(){return this.stroke_}getText(){return this.text_}getTextAlign(){return this.textAlign_}getJustify(){return this.justify_}getTextBaseline(){return this.textBaseline_}getBackgroundFill(){return this.backgroundFill_}getBackgroundStroke(){return this.backgroundStroke_}getPadding(){return this.padding_}setOverflow(t){this.overflow_=t}setFont(t){this.font_=t}setMaxAngle(t){this.maxAngle_=t}setOffsetX(t){this.offsetX_=t}setOffsetY(t){this.offsetY_=t}setPlacement(t){this.placement_=t}setRepeat(t){this.repeat_=t}setRotateWithView(t){this.rotateWithView_=t}setFill(t){this.fill_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=je(t!==void 0?t:1)}setStroke(t){this.stroke_=t}setText(t){this.text_=t}setTextAlign(t){this.textAlign_=t}setJustify(t){this.justify_=t}setTextBaseline(t){this.textBaseline_=t}setBackgroundFill(t){this.backgroundFill_=t}setBackgroundStroke(t){this.backgroundStroke_=t}setPadding(t){this.padding_=t}}const ka=Qi;function Pa(n,t,e,i,s,r,o){let a,l;const h=(e-t)/i;if(h===1)a=t;else if(h===2)a=t,l=s;else if(h!==0){let c=n[t],u=n[t+1],d=0;const g=[0];for(let m=t+i;m1?o:2,r=r||new Array(o);for(let c=0;c>1;sa&&(this.instructions.push([E.CUSTOM,a,h,t,i,Pt]),this.hitDetectionInstructions.push([E.CUSTOM,a,h,t,s||i,Pt]));break;case"Point":l=t.getFlatCoordinates(),this.coordinates.push(l[0],l[1]),h=this.coordinates.length,this.instructions.push([E.CUSTOM,a,h,t,i]),this.hitDetectionInstructions.push([E.CUSTOM,a,h,t,s||i]);break}this.endGeometry(e)}beginGeometry(t,e){this.beginGeometryInstruction1_=[E.BEGIN_GEOMETRY,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[E.BEGIN_GEOMETRY,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;t.reverse();let e;const i=t.length;let s,r,o=-1;for(e=0;ethis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0}createFill(t){const e=t.fillStyle,i=[E.SET_FILL_STYLE,e];return typeof e!="string"&&i.push(!0),i}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[E.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const i=t.fillStyle;(typeof i!="string"||t.currentFillStyle!=i)&&(i!==void 0&&this.instructions.push(e.call(this,t)),t.currentFillStyle=i)}updateStrokeStyle(t,e){const i=t.strokeStyle,s=t.lineCap,r=t.lineDash,o=t.lineDashOffset,a=t.lineJoin,l=t.lineWidth,h=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=s||r!=t.currentLineDash&&!zt(t.currentLineDash,r)||t.currentLineDashOffset!=o||t.currentLineJoin!=a||t.currentLineWidth!=l||t.currentMiterLimit!=h)&&(i!==void 0&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=s,t.currentLineDash=r,t.currentLineDashOffset=o,t.currentLineJoin=a,t.currentLineWidth=l,t.currentMiterLimit=h)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[E.END_GEOMETRY,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=lr(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;ei(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}}const Fe=Ya;class Va extends Fe{constructor(t,e,i,s){super(t,e,i,s),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),s=t.getStride(),r=this.coordinates.length,o=this.appendFlatPointCoordinates(i,s);this.instructions.push([E.DRAW_IMAGE,r,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([E.DRAW_IMAGE,r,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),s=t.getStride(),r=this.coordinates.length,o=this.appendFlatPointCoordinates(i,s);this.instructions.push([E.DRAW_IMAGE,r,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([E.DRAW_IMAGE,r,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}finish(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,super.finish()}setImageStyle(t,e){const i=t.getAnchor(),s=t.getSize(),r=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=i[0],this.anchorY_=i[1],this.hitDetectionImage_=t.getHitDetectionImage(),this.image_=t.getImage(this.pixelRatio),this.height_=s[1],this.opacity_=t.getOpacity(),this.originX_=r[0],this.originY_=r[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=s[0],this.declutterMode_=t.getDeclutterMode(),this.declutterImageWithText_=e}}const ja=Va;class Ua extends Fe{constructor(t,e,i,s){super(t,e,i,s)}drawFlatCoordinates_(t,e,i,s){const r=this.coordinates.length,o=this.appendFlatLineCoordinates(t,e,i,s,!1,!1),a=[E.MOVE_TO_LINE_TO,r,o];return this.instructions.push(a),this.hitDetectionInstructions.push(a),i}drawLineString(t,e){const i=this.state,s=i.strokeStyle,r=i.lineWidth;if(s===void 0||r===void 0)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([E.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Rt,Ct],Nt);const o=t.getFlatCoordinates(),a=t.getStride();this.drawFlatCoordinates_(o,0,o.length,a),this.hitDetectionInstructions.push(vt),this.endGeometry(e)}drawMultiLineString(t,e){const i=this.state,s=i.strokeStyle,r=i.lineWidth;if(s===void 0||r===void 0)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([E.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Rt,Ct],Nt);const o=t.getEnds(),a=t.getFlatCoordinates(),l=t.getStride();let h=0;for(let c=0,u=o.length;c=n){const f=(n-a+g)/g,_=tt(h,u,f),m=tt(c,d,f);l.push(_,m),r.push(l),l=[_,m],a==n&&(o+=s),a=0}else if(a0&&r.push(l),r}function qa(n,t,e,i,s){let r=e,o=e,a=0,l=0,h=e,c,u,d,g,f,_,m,y,p,x;for(u=e;un&&(l>a&&(a=l,r=h,o=u),l=0,h=u-s)),d=g,m=p,y=x),f=C,_=R}return l+=g,l>a?[h,u]:[r,o]}const ti={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1};class Ja extends Fe{constructor(t,e,i,s){super(t,e,i,s),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[H]={fillStyle:H},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterImageWithText_=void 0}finish(){const t=super.finish();return t.textStates=this.textStates,t.fillStates=this.fillStates,t.strokeStates=this.strokeStates,t}drawText(t,e){const i=this.textFillState_,s=this.textStrokeState_,r=this.textState_;if(this.text_===""||!r||!i&&!s)return;const o=this.coordinates;let a=o.length;const l=t.getType();let h=null,c=t.getStride();if(r.placement==="line"&&(l=="LineString"||l=="MultiLineString"||l=="Polygon"||l=="MultiPolygon")){if(!at(this.getBufferedMaxExtent(),t.getExtent()))return;let u;if(h=t.getFlatCoordinates(),l=="LineString")u=[h.length];else if(l=="MultiLineString")u=t.getEnds();else if(l=="Polygon")u=t.getEnds().slice(0,1);else if(l=="MultiPolygon"){const _=t.getEndss();u=[];for(let m=0,y=_.length;m{const C=o[(y+x)*2]===h[x*c]&&o[(y+x)*2+1]===h[x*c+1];return C||--y,C})}this.saveTextStates_(),(r.backgroundFill||r.backgroundStroke)&&(this.setFillStrokeStyle(r.backgroundFill,r.backgroundStroke),r.backgroundFill&&this.updateFillStyle(this.state,this.createFill),r.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e);let g=r.padding;if(g!=Gt&&(r.scale[0]<0||r.scale[1]<0)){let y=r.padding[0],p=r.padding[1],x=r.padding[2],C=r.padding[3];r.scale[0]<0&&(p=-p,C=-C),r.scale[1]<0&&(y=-y,x=-x),g=[y,p,x,C]}const f=this.pixelRatio;this.instructions.push([E.DRAW_IMAGE,a,d,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,void 0,this.declutterImageWithText_,g==Gt?Gt:g.map(function(y){return y*f}),!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]);const _=1/f,m=this.state.fillStyle;r.backgroundFill&&(this.state.fillStyle=H,this.hitDetectionInstructions.push(this.createFill(this.state))),this.hitDetectionInstructions.push([E.DRAW_IMAGE,a,d,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[_,_],NaN,void 0,this.declutterImageWithText_,g,!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?H:this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]),r.backgroundFill&&(this.state.fillStyle=m,this.hitDetectionInstructions.push(this.createFill(this.state))),this.endGeometry(e)}}saveTextStates_(){const t=this.textStrokeState_,e=this.textState_,i=this.textFillState_,s=this.strokeKey_;t&&(s in this.strokeStates||(this.strokeStates[s]={strokeStyle:t.strokeStyle,lineCap:t.lineCap,lineDashOffset:t.lineDashOffset,lineWidth:t.lineWidth,lineJoin:t.lineJoin,miterLimit:t.miterLimit,lineDash:t.lineDash}));const r=this.textKey_;r in this.textStates||(this.textStates[r]={font:e.font,textAlign:e.textAlign||Ee,justify:e.justify,textBaseline:e.textBaseline||Je,scale:e.scale});const o=this.fillKey_;i&&(o in this.fillStates||(this.fillStates[o]={fillStyle:i.fillStyle}))}drawChars_(t,e){const i=this.textStrokeState_,s=this.textState_,r=this.strokeKey_,o=this.textKey_,a=this.fillKey_;this.saveTextStates_();const l=this.pixelRatio,h=ti[s.textBaseline],c=this.textOffsetY_*l,u=this.text_,d=i?i.lineWidth*Math.abs(s.scale[0])/2:0;this.instructions.push([E.DRAW_CHARS,t,e,h,s.overflow,a,s.maxAngle,l,c,r,d*l,u,o,1]),this.hitDetectionInstructions.push([E.DRAW_CHARS,t,e,h,s.overflow,a&&H,s.maxAngle,1,c,r,d,u,o,1/l])}setTextStyle(t,e){let i,s,r;if(!t)this.text_="";else{const o=t.getFill();o?(s=this.textFillState_,s||(s={},this.textFillState_=s),s.fillStyle=dt(o.getColor()||H)):(s=null,this.textFillState_=s);const a=t.getStroke();if(!a)r=null,this.textStrokeState_=r;else{r=this.textStrokeState_,r||(r={},this.textStrokeState_=r);const f=a.getLineDash(),_=a.getLineDashOffset(),m=a.getWidth(),y=a.getMiterLimit();r.lineCap=a.getLineCap()||qe,r.lineDash=f?f.slice():Rt,r.lineDashOffset=_===void 0?Ct:_,r.lineJoin=a.getLineJoin()||ne,r.lineWidth=m===void 0?Ie:m,r.miterLimit=y===void 0?Re:y,r.strokeStyle=dt(a.getColor()||Ce)}i=this.textState_;const l=t.getFont()||Bs;Ea(l);const h=t.getScaleArray();i.overflow=t.getOverflow(),i.font=l,i.maxAngle=t.getMaxAngle(),i.placement=t.getPlacement(),i.textAlign=t.getTextAlign(),i.repeat=t.getRepeat(),i.justify=t.getJustify(),i.textBaseline=t.getTextBaseline()||Je,i.backgroundFill=t.getBackgroundFill(),i.backgroundStroke=t.getBackgroundStroke(),i.padding=t.getPadding()||Gt,i.scale=h===void 0?[1,1]:h;const c=t.getOffsetX(),u=t.getOffsetY(),d=t.getRotateWithView(),g=t.getRotation();this.text_=t.getText()||"",this.textOffsetX_=c===void 0?0:c,this.textOffsetY_=u===void 0?0:u,this.textRotateWithView_=d===void 0?!1:d,this.textRotation_=g===void 0?0:g,this.strokeKey_=r?(typeof r.strokeStyle=="string"?r.strokeStyle:G(r.strokeStyle))+r.lineCap+r.lineDashOffset+"|"+r.lineWidth+r.lineJoin+r.miterLimit+"["+r.lineDash.join()+"]":"",this.textKey_=i.font+i.scale+(i.textAlign||"?")+(i.repeat||"?")+(i.justify||"?")+(i.textBaseline||"?"),this.fillKey_=s?typeof s.fillStyle=="string"?s.fillStyle:"|"+G(s.fillStyle):""}this.declutterImageWithText_=e}}const $a={Circle:qn,Default:Fe,Image:ja,LineString:Za,Polygon:qn,Text:Ja};class Qa{constructor(t,e,i,s){this.tolerance_=t,this.maxExtent_=e,this.pixelRatio_=s,this.resolution_=i,this.buildersByZIndex_={}}finish(){const t={};for(const e in this.buildersByZIndex_){t[e]=t[e]||{};const i=this.buildersByZIndex_[e];for(const s in i){const r=i[s].finish();t[e][s]=r}}return t}getBuilder(t,e){const i=t!==void 0?t.toString():"0";let s=this.buildersByZIndex_[i];s===void 0&&(s={},this.buildersByZIndex_[i]=s);let r=s[e];if(r===void 0){const o=$a[e];r=new o(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_),s[e]=r}return r}}const Jn=Qa;function tl(n,t,e,i,s,r,o,a,l,h,c,u){let d=n[t],g=n[t+1],f=0,_=0,m=0,y=0;function p(){f=d,_=g,t+=i,d=n[t],g=n[t+1],y+=m,m=Math.sqrt((d-f)*(d-f)+(g-_)*(g-_))}do p();while(tA[2]}else W=C>v;const P=Math.PI,b=[],q=w+i===t;t=w,m=0,y=L,d=n[t],g=n[t+1];let I;if(q){p(),I=Math.atan2(g-_,d-f),W&&(I+=I>0?-P:P);const A=(v+C)/2,M=(F+R)/2;return b[0]=[A,M,(T-r)/2,I,s],b}s=s.replace(/\n/g," ");for(let A=0,M=s.length;A0?-P:P),I!==void 0){let ct=D-I;if(ct+=ct>P?-2*P:ct<-P?2*P:0,Math.abs(ct)>o)return null}I=D;const X=A;let z=0;for(;A0&&n.push(` `,""),n.push(t,""),n}class il{constructor(t,e,i,s){this.overlaps=i,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=s.instructions,this.coordinates=s.coordinates,this.coordinateCache_={},this.renderedTransform_=Lt(),this.hitDetectionInstructions=s.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=s.fillStates||{},this.strokeStates=s.strokeStates||{},this.textStates=s.textStates||{},this.widths_={},this.labels_={}}createLabel(t,e,i,s){const r=t+e+i+s;if(this.labels_[r])return this.labels_[r];const o=s?this.strokeStates[s]:null,a=i?this.fillStates[i]:null,l=this.textStates[e],h=this.pixelRatio,c=[l.scale[0]*h,l.scale[1]*h],u=Array.isArray(t),d=l.justify?ti[l.justify]:_i(Array.isArray(t)?t[0]:t,l.textAlign||Ee),g=s&&o.lineWidth?o.lineWidth:0,f=u?t:t.split(` `).reduce(el,[]),{width:_,height:m,widths:y,heights:p,lineWidths:x}=wa(l,f),C=_+g,R=[],w=(C+2)*c[0],L=(m+g)*c[1],T={width:w<0?Math.floor(w):Math.ceil(w),height:L<0?Math.floor(L):Math.ceil(L),contextInstructions:R};(c[0]!=1||c[1]!=1)&&R.push("scale",c),s&&(R.push("strokeStyle",o.strokeStyle),R.push("lineWidth",g),R.push("lineCap",o.lineCap),R.push("lineJoin",o.lineJoin),R.push("miterLimit",o.miterLimit),R.push("setLineDash",[o.lineDash]),R.push("lineDashOffset",o.lineDashOffset)),i&&R.push("fillStyle",a.fillStyle),R.push("textBaseline","middle"),R.push("textAlign","center");const v=.5-d;let F=d*C+v*g;const W=[],P=[];let b=0,q=0,I=0,A=0,M;for(let D=0,X=f.length;Dt?t-h:r,C=o+c>e?e-c:o,R=f[3]+x*d[0]+f[1],w=f[0]+C*d[1]+f[2],L=y-f[3],T=p-f[0];(_||u!==0)&&(wt[0]=L,Tt[0]=L,wt[1]=T,mt[1]=T,mt[0]=L+R,yt[0]=mt[0],yt[1]=T+w,Tt[1]=yt[1]);let v;return u!==0?(v=ve(Lt(),i,s,1,1,u,-i,-s),K(v,wt),K(v,mt),K(v,yt),K(v,Tt),ee(Math.min(wt[0],mt[0],yt[0],Tt[0]),Math.min(wt[1],mt[1],yt[1],Tt[1]),Math.max(wt[0],mt[0],yt[0],Tt[0]),Math.max(wt[1],mt[1],yt[1],Tt[1]),Ut)):ee(Math.min(L,L+R),Math.min(T,T+w),Math.max(L,L+R),Math.max(T,T+w),Ut),g&&(y=Math.round(y),p=Math.round(p)),{drawImageX:y,drawImageY:p,drawImageW:x,drawImageH:C,originX:h,originY:c,declutterBox:{minX:Ut[0],minY:Ut[1],maxX:Ut[2],maxY:Ut[3],value:m},canvasTransform:v,scale:d}}replayImageOrLabel_(t,e,i,s,r,o,a){const l=!!(o||a),h=s.declutterBox,c=t.canvas,u=a?a[2]*s.scale[0]/2:0;return h.minX-u<=c.width/e&&h.maxX+u>=0&&h.minY-u<=c.height/e&&h.maxY+u>=0&&(l&&this.replayTextBackground_(t,wt,mt,yt,Tt,o,a),Ta(t,s.canvasTransform,r,i,s.originX,s.originY,s.drawImageW,s.drawImageH,s.drawImageX,s.drawImageY,s.scale)),!0}fill_(t){if(this.alignFill_){const e=K(this.renderedTransform_,[0,0]),i=512*this.pixelRatio;t.save(),t.translate(e[0]%i,e[1]%i),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()}setStrokeStyle_(t,e){t.strokeStyle=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.lineDashOffset=e[7],t.setLineDash(e[6])}drawLabelWithPointPlacement_(t,e,i,s){const r=this.textStates[e],o=this.createLabel(t,e,s,i),a=this.strokeStates[i],l=this.pixelRatio,h=_i(Array.isArray(t)?t[0]:t,r.textAlign||Ee),c=ti[r.textBaseline||Je],u=a&&a.lineWidth?a.lineWidth:0,d=o.width/l-2*r.scale[0],g=h*d+2*(.5-h)*u,f=c*o.height/l+2*(.5-c)*u;return{label:o,anchorX:g,anchorY:f}}execute_(t,e,i,s,r,o,a,l){let h;this.pixelCoordinates_&&zt(i,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=Bt(this.coordinates,0,this.coordinates.length,2,i,this.pixelCoordinates_),xo(this.renderedTransform_,i));let c=0;const u=s.length;let d=0,g,f,_,m,y,p,x,C,R,w,L,T,v=0,F=0,W=null,P=null;const b=this.coordinateCache_,q=this.viewRotation_,I=Math.round(Math.atan2(-i[1],i[0])*1e12)/1e12,A={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:q},M=this.instructions!=s||this.overlaps?0:200;let D,X,z,ht;for(;cM&&(this.fill_(t),v=0),F>M&&(t.stroke(),F=0),!v&&!F&&(t.beginPath(),m=NaN,y=NaN),++c;break;case E.CIRCLE:d=S[1];const ct=h[d],Yt=h[d+1],Ks=h[d+2],Hs=h[d+3],en=Ks-ct,nn=Hs-Yt,sn=Math.sqrt(en*en+nn*nn);t.moveTo(ct+sn,Yt),t.arc(ct,Yt,sn,0,2*Math.PI,!0),++c;break;case E.CLOSE_PATH:t.closePath(),++c;break;case E.CUSTOM:d=S[1],g=S[2];const qs=S[3],Js=S[4],rn=S.length==6?S[5]:void 0;A.geometry=qs,A.feature=D,c in b||(b[c]=[]);const re=b[c];rn?rn(h,d,g,2,re):(re[0]=h[d],re[1]=h[d+1],re.length=2),Js(re,A),++c;break;case E.DRAW_IMAGE:d=S[1],g=S[2],C=S[3],f=S[4],_=S[5];let si=S[6];const $s=S[7],Qs=S[8],tr=S[9],on=S[10];let ri=S[11];const er=S[12];let De=S[13];const an=S[14],oe=S[15];if(!C&&S.length>=20){R=S[19],w=S[20],L=S[21],T=S[22];const J=this.drawLabelWithPointPlacement_(R,w,L,T);C=J.label,S[3]=C;const Vt=S[23];f=(J.anchorX-Vt)*this.pixelRatio,S[4]=f;const et=S[24];_=(J.anchorY-et)*this.pixelRatio,S[5]=_,si=C.height,S[6]=si,De=C.width,S[13]=De}let oi;S.length>25&&(oi=S[25]);let ai,Oe,be;S.length>17?(ai=S[16],Oe=S[17],be=S[18]):(ai=Gt,Oe=!1,be=!1),on&&I?ri+=q:!on&&!I&&(ri-=q);let ir=0;for(;d0){if(!o||g!=="Image"&&g!=="Text"||o.includes(R)){const F=(d[T]-3)/4,W=s-F%a,P=s-(F/a|0),b=r(R,w,W*W+P*P);if(b)return b}c.clearRect(0,0,a,a);break}}const _=Object.keys(this.executorsByZIndex_).map(Number);_.sort(_e);let m,y,p,x,C;for(m=_.length-1;m>=0;--m){const R=_[m].toString();for(p=this.executorsByZIndex_[R],y=mi.length-1;y>=0;--y)if(g=mi[y],x=p[g],x!==void 0&&(C=x.executeHitDetection(c,l,i,f,u),C))return C}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const i=e[0],s=e[1],r=e[2],o=e[3],a=[i,s,i,o,r,o,r,s];return Bt(a,0,8,2,t,a),a}isEmpty(){return ye(this.executorsByZIndex_)}execute(t,e,i,s,r,o,a){const l=Object.keys(this.executorsByZIndex_).map(Number);l.sort(_e),this.maxExtent_&&(t.save(),this.clip(t,i)),o=o||mi;let h,c,u,d,g,f;for(a&&l.reverse(),h=0,c=l.length;he)break;let l=i[a];l||(l=[],i[a]=l),l.push(((n+r)*t+(n+o))*4+3),r>0&&l.push(((n-r)*t+(n+o))*4+3),o>0&&(l.push(((n+r)*t+(n-o))*4+3),r>0&&l.push(((n-r)*t+(n-o))*4+3))}const s=[];for(let r=0,o=i.length;ru*this.pixelRatio_),lineDashOffset:(o||Ct)*this.pixelRatio_,lineJoin:a!==void 0?a:ne,lineWidth:(l!==void 0?l:Ie)*this.pixelRatio_,miterLimit:h!==void 0?h:Re,strokeStyle:dt(i||Ce)}}}setImageStyle(t){let e;if(!t||!(e=t.getSize())){this.image_=null;return}const i=t.getPixelRatio(this.pixelRatio_),s=t.getAnchor(),r=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=s[0]*i,this.imageAnchorY_=s[1]*i,this.imageHeight_=e[1]*i,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=r[0],this.imageOriginY_=r[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const o=t.getScaleArray();this.imageScale_=[o[0]*this.pixelRatio_/i,o[1]*this.pixelRatio_/i],this.imageWidth_=e[0]*i}setTextStyle(t){if(!t)this.text_="";else{const e=t.getFill();if(!e)this.textFillState_=null;else{const g=e.getColor();this.textFillState_={fillStyle:dt(g||H)}}const i=t.getStroke();if(!i)this.textStrokeState_=null;else{const g=i.getColor(),f=i.getLineCap(),_=i.getLineDash(),m=i.getLineDashOffset(),y=i.getLineJoin(),p=i.getWidth(),x=i.getMiterLimit();this.textStrokeState_={lineCap:f!==void 0?f:qe,lineDash:_||Rt,lineDashOffset:m||Ct,lineJoin:y!==void 0?y:ne,lineWidth:p!==void 0?p:Ie,miterLimit:x!==void 0?x:Re,strokeStyle:dt(g||Ce)}}const s=t.getFont(),r=t.getOffsetX(),o=t.getOffsetY(),a=t.getRotateWithView(),l=t.getRotation(),h=t.getScaleArray(),c=t.getText(),u=t.getTextAlign(),d=t.getTextBaseline();this.textState_={font:s!==void 0?s:Bs,textAlign:u!==void 0?u:Ee,textBaseline:d!==void 0?d:Je},this.text_=c!==void 0?Array.isArray(c)?c.reduce((g,f,_)=>g+=_%2?" ":f,""):c:"",this.textOffsetX_=r!==void 0?this.pixelRatio_*r:0,this.textOffsetY_=o!==void 0?this.pixelRatio_*o:0,this.textRotateWithView_=a!==void 0?a:!1,this.textRotation_=l!==void 0?l:0,this.textScale_=[this.pixelRatio_*h[0],this.pixelRatio_*h[1]]}}}const al=ol,ut=.5;function ll(n,t,e,i,s,r,o){const a=n[0]*ut,l=n[1]*ut,h=lt(a,l);h.imageSmoothingEnabled=!1;const c=h.canvas,u=new al(h,ut,s,null,o),d=e.length,g=Math.floor((256*256*256-1)/d),f={};for(let m=1;m<=d;++m){const y=e[m-1],p=y.getStyleFunction()||i;if(!p)continue;let x=p(y,r);if(!x)continue;Array.isArray(x)||(x=[x]);const R=(m*g).toString(16).padStart(7,"#00000");for(let w=0,L=x.length;w{if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const i=[this.context.canvas.width,this.context.canvas.height];K(this.pixelTransform,i);const s=this.renderedCenter_,r=this.renderedResolution_,o=this.renderedRotation_,a=this.renderedProjection_,l=this.wrappedRenderedExtent_,h=this.getLayer(),c=[],u=i[0]*ut,d=i[1]*ut;c.push(this.getRenderTransform(s,r,o,ut,u,d,0).slice());const g=h.getSource(),f=a.getExtent();if(g.getWrapX()&&a.canWrapX()&&!Ht(f,l)){let _=l[0];const m=st(f);let y=0,p;for(;_f[2];)++y,p=m*y,c.push(this.getRenderTransform(s,r,o,ut,u,d,p).slice()),_-=m}this.hitDetectionImageData_=ll(i,c,this.renderedFeatures_,h.getStyleFunction(),l,r,o)}e(hl(t,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(t,e,i,s,r){if(!this.replayGroup_)return;const o=e.viewState.resolution,a=e.viewState.rotation,l=this.getLayer(),h={},c=function(g,f,_){const m=G(g),y=h[m];if(y){if(y!==!0&&_u=g.forEachFeatureAtCoordinate(t,o,a,i,c,g===this.declutterExecutorGroup&&e.declutterTree?e.declutterTree.all().map(f=>f.value):null)),u}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),i=e.getSource();if(!i)return!1;const s=t.viewHints[nt.ANIMATING],r=t.viewHints[nt.INTERACTING],o=e.getUpdateWhileAnimating(),a=e.getUpdateWhileInteracting();if(this.ready&&!o&&s||!a&&r)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const l=t.extent,h=t.viewState,c=h.projection,u=h.resolution,d=t.pixelRatio,g=e.getRevision(),f=e.getRenderBuffer();let _=e.getRenderOrder();_===void 0&&(_=ul);const m=h.center.slice(),y=ei(l,f*u),p=y.slice(),x=[y.slice()],C=c.getExtent();if(i.getWrapX()&&c.canWrapX()&&!Ht(C,t.extent)){const I=st(C),A=Math.max(st(y)/2,I);y[0]=C[0]-A,y[2]=C[2]+A,Kr(m,c);const M=xs(x[0],c);M[0]C[0]&&M[2]>C[2]&&x.push([M[0]-I,M[1],M[2]-I,M[3]])}if(this.ready&&this.renderedResolution_==u&&this.renderedRevision_==g&&this.renderedRenderOrder_==_&&Ht(this.wrappedRenderedExtent_,y))return zt(this.renderedExtent_,p)||(this.hitDetectionImageData_=null,this.renderedExtent_=p),this.renderedCenter_=m,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const R=new Jn(vi(u,d),y,u,d);let w;this.getLayer().getDeclutter()&&(w=new Jn(vi(u,d),y,u,d));let L;for(let I=0,A=x.length;I{let A;const M=I.getStyleFunction()||e.getStyleFunction();if(M&&(A=M(I,u)),A){const D=this.renderFeature(I,T,A,R,L,w);v=v&&!D}},W=Gi(y),P=i.getFeaturesInExtent(W);_&&P.sort(_);for(let I=0,A=P.length;I0}}else if(t.type==pt.POINTERDOWN){const i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==pt.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}}const vl=Al,Ll=function(n){const t=n.originalEvent;return t.altKey&&!(t.metaKey||t.ctrlKey)&&!t.shiftKey},Fl=Rs,Dl=function(n){return n.type==pt.SINGLECLICK},Ol=function(n){const t=n.originalEvent;return B(t!==void 0,56),t.isPrimary&&t.button===0},ns=0,de=1,ss=[0,0,0,0],te=[],pi={MODIFYSTART:"modifystart",MODIFYEND:"modifyend"};class xi extends se{constructor(t,e,i){super(t),this.features=e,this.mapBrowserEvent=i}}class bl extends vl{constructor(t){super(t),this.on,this.once,this.un,this.boundHandleFeatureChange_=this.handleFeatureChange_.bind(this),this.condition_=t.condition?t.condition:Ol,this.defaultDeleteCondition_=function(i){return Ll(i)&&Dl(i)},this.deleteCondition_=t.deleteCondition?t.deleteCondition:this.defaultDeleteCondition_,this.insertVertexCondition_=t.insertVertexCondition?t.insertVertexCondition:Fl,this.vertexFeature_=null,this.vertexSegments_=null,this.lastPixel_=[0,0],this.ignoreNextSingleClick_=!1,this.featuresBeingModified_=null,this.rBush_=new wi,this.pixelTolerance_=t.pixelTolerance!==void 0?t.pixelTolerance:10,this.snappedToVertex_=!1,this.changingFeature_=!1,this.dragSegments_=[],this.overlay_=new wl({source:new Wo({useSpatialIndex:!1,wrapX:!!t.wrapX}),style:t.style?t.style:Pl(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.SEGMENT_WRITERS_={Point:this.writePointGeometry_.bind(this),LineString:this.writeLineStringGeometry_.bind(this),LinearRing:this.writeLineStringGeometry_.bind(this),Polygon:this.writePolygonGeometry_.bind(this),MultiPoint:this.writeMultiPointGeometry_.bind(this),MultiLineString:this.writeMultiLineStringGeometry_.bind(this),MultiPolygon:this.writeMultiPolygonGeometry_.bind(this),Circle:this.writeCircleGeometry_.bind(this),GeometryCollection:this.writeGeometryCollectionGeometry_.bind(this)},this.source_=null,this.hitDetection_=null;let e;if(t.features?e=t.features:t.source&&(this.source_=t.source,e=new Ii(this.source_.getFeatures()),this.source_.addEventListener(Q.ADDFEATURE,this.handleSourceAdd_.bind(this)),this.source_.addEventListener(Q.REMOVEFEATURE,this.handleSourceRemove_.bind(this))),!e)throw new Error("The modify interaction requires features, a source or a layer");t.hitDetection&&(this.hitDetection_=t.hitDetection),this.features_=e,this.features_.forEach(this.addFeature_.bind(this)),this.features_.addEventListener(Mt.ADD,this.handleFeatureAdd_.bind(this)),this.features_.addEventListener(Mt.REMOVE,this.handleFeatureRemove_.bind(this)),this.lastPointerEvent_=null,this.delta_=[0,0],this.snapToPointer_=t.snapToPointer===void 0?!this.hitDetection_:t.snapToPointer}addFeature_(t){const e=t.getGeometry();if(e){const s=this.SEGMENT_WRITERS_[e.getType()];s&&s(t,e)}const i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i),t.addEventListener(U.CHANGE,this.boundHandleFeatureChange_)}willModifyFeatures_(t,e){if(!this.featuresBeingModified_){this.featuresBeingModified_=new Ii;const i=this.featuresBeingModified_.getArray();for(let s=0,r=e.length;s=0;--s){const r=i[s];for(let o=this.dragSegments_.length-1;o>=0;--o)this.dragSegments_[o][0]===r&&this.dragSegments_.splice(o,1);e.remove(r)}}setActive(t){this.vertexFeature_&&!t&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),super.setActive(t)}setMap(t){this.overlay_.setMap(t),super.setMap(t)}getOverlay(){return this.overlay_}handleSourceAdd_(t){t.feature&&this.features_.push(t.feature)}handleSourceRemove_(t){t.feature&&this.features_.remove(t.feature)}handleFeatureAdd_(t){this.addFeature_(t.element)}handleFeatureChange_(t){if(!this.changingFeature_){const e=t.target;this.removeFeature_(e),this.addFeature_(e)}}handleFeatureRemove_(t){this.removeFeature_(t.element)}writePointGeometry_(t,e){const i=e.getCoordinates(),s={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),s)}writeMultiPointGeometry_(t,e){const i=e.getCoordinates();for(let s=0,r=i.length;s=0;--h)this.insertVertex_(s[h],r)}return!!this.vertexFeature_}handleUpEvent(t){for(let e=this.dragSegments_.length-1;e>=0;--e){const i=this.dragSegments_[e][0],s=i.geometry;if(s.getType()==="Circle"){const r=s.getCenter(),o=i.featureSegments[0],a=i.featureSegments[1];o.segment[0]=r,o.segment[1]=r,a.segment[0]=r,a.segment[1]=r,this.rBush_.update(ze(r),o);let l=s;this.rBush_.update(l.getExtent(),a)}else this.rBush_.update(_t(i.segment),i)}return this.featuresBeingModified_&&(this.dispatchEvent(new xi(pi.MODIFYEND,this.featuresBeingModified_,t)),this.featuresBeingModified_=null),!1}handlePointerMove_(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map,t.coordinate)}handlePointerAtPixel_(t,e,i){const s=i||e.getCoordinateFromPixel(t);e.getView().getProjection();const r=function(l,h){return rs(s,l)-rs(s,h)};let o,a;if(this.hitDetection_){const l=typeof this.hitDetection_=="object"?h=>h===this.hitDetection_:void 0;e.forEachFeatureAtPixel(t,(h,c,u)=>{u&&(u=new Ei(xe(u.getCoordinates())));const d=u||h.getGeometry();if(d.getType()==="Point"&&h instanceof In&&this.features_.getArray().includes(h)){a=d;const g=h.getGeometry().getFlatCoordinates().slice(0,2);o=[{feature:h,geometry:a,segment:[g,g]}]}return!0},{layerFilter:l})}if(!o){const l=Jt(ze(s,ss)),h=e.getView().getResolution()*this.pixelTolerance_,c=Gi(ei(l,h,ss));o=this.rBush_.getInExtent(c)}if(o&&o.length>0){const l=o.sort(r)[0],h=l.segment;let c=os(s,l);const u=e.getPixelFromCoordinate(c);let d=xn(t,u);if(a||d<=this.pixelTolerance_){const g={};if(g[G(h)]=!0,this.snapToPointer_||(this.delta_[0]=c[0]-s[0],this.delta_[1]=c[1]-s[1]),l.geometry.getType()==="Circle"&&l.index===de)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(c,[l.feature],[l.geometry]);else{const f=e.getPixelFromCoordinate(h[0]),_=e.getPixelFromCoordinate(h[1]),m=pe(u,f),y=pe(u,_);d=Math.sqrt(Math.min(m,y)),this.snappedToVertex_=d<=this.pixelTolerance_,this.snappedToVertex_&&(c=m>y?h[1]:h[0]),this.createOrUpdateVertexFeature_(c,[l.feature],[l.geometry]);const p={};p[G(l.geometry)]=!0;for(let x=1,C=o.length;x=0;--l)o=t[l],g=o[0],f=G(g.feature),g.depth&&(f+="-"+g.depth.join("-")),f in e||(e[f]={}),o[1]===0?(e[f].right=g,e[f].index=g.index):o[1]==1&&(e[f].left=g,e[f].index=g.index+1);for(f in e){switch(d=e[f].right,c=e[f].left,h=e[f].index,u=h-1,c!==void 0?g=c:g=d,u<0&&(u=0),a=g.geometry,r=a.getCoordinates(),s=r,i=!1,a.getType()){case"MultiLineString":r[g.depth[0]].length>2&&(r[g.depth[0]].splice(h,1),i=!0);break;case"LineString":r.length>2&&(r.splice(h,1),i=!0);break;case"MultiPolygon":s=s[g.depth[1]];case"Polygon":s=s[g.depth[0]],s.length>4&&(h==s.length-1&&(h=0),s.splice(h,1),i=!0,h===0&&(s.pop(),s.push(s[0]),u=s.length-1));break}if(i){this.setGeometryCoordinates_(a,r);const _=[];if(c!==void 0&&(this.rBush_.remove(c),_.push(c.segment[0])),d!==void 0&&(this.rBush_.remove(d),_.push(d.segment[1])),c!==void 0&&d!==void 0){const m={depth:g.depth,feature:g.feature,geometry:g.geometry,index:u,segment:_};this.rBush_.insert(_t(m.segment),m)}this.updateSegmentIndices_(a,h,g.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.length=0}}return i}setGeometryCoordinates_(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1}updateSegmentIndices_(t,e,i,s){this.rBush_.forEachInExtent(t.getExtent(),function(r){r.geometry===t&&(i===void 0||r.depth===void 0||zt(r.depth,i))&&r.index>e&&(r.index+=s)})}}function kl(n,t){return n.index-t.index}function rs(n,t,e){const i=t.geometry;if(i.getType()==="Circle"){let r=i;if(t.index===de){const o=pe(r.getCenter(),V(n)),a=Math.sqrt(o)-r.getRadius();return a*a}}const s=V(n);return te[0]=V(t.segment[0]),te[1]=V(t.segment[1]),Zr(s,te)}function os(n,t,e){const i=t.geometry;if(i.getType()==="Circle"&&t.index===de)return xe(i.getClosestPoint(V(n)));const s=V(n);return te[0]=V(t.segment[0]),te[1]=V(t.segment[1]),xe(ws(s,te))}function Pl(){const n=Oa();return function(t,e){return n.Point}}const Vl=bl;export{Hi as C,we as F,Yl as L,Vl as M,Ei as P,zs as R,Ai as S,ka as T,Wo as V,Wl as _,zl as a,Xl as b,ue as c,wl as d,Jr as e,$r as f,Bl as g};